<?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>222076</bug_id>
          
          <creation_ts>2021-02-17 14:47:49 -0800</creation_ts>
          <short_desc>PCM: Request signature for unlinkable token using attributionSourceNonce</short_desc>
          <delta_ts>2021-02-18 15:28:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>221291</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="John Wilander">wilander</reporter>
          <assigned_to name="John Wilander">wilander</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1730550</commentid>
    <comment_count>0</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-02-17 14:47:49 -0800</bug_when>
    <thetext>The attributionSourceNonce from the anchor tag should be transferred to the network process and used to initiate token signing from the source server.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730551</commentid>
    <comment_count>1</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-02-17 14:48:01 -0800</bug_when>
    <thetext>&lt;rdar://73581651&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730580</commentid>
    <comment_count>2</comment_count>
      <attachid>420731</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-02-17 15:13:40 -0800</bug_when>
    <thetext>Created attachment 420731
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730705</commentid>
    <comment_count>3</comment_count>
      <attachid>420781</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-02-17 18:50:06 -0800</bug_when>
    <thetext>Created attachment 420781
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730706</commentid>
    <comment_count>4</comment_count>
      <attachid>420781</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-02-17 18:50:46 -0800</bug_when>
    <thetext>Comment on attachment 420781
Patch

Fixed content extensions layout test failure (renamed TestRunner function).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730740</commentid>
    <comment_count>5</comment_count>
      <attachid>420798</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-02-17 22:25:07 -0800</bug_when>
    <thetext>Created attachment 420798
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730741</commentid>
    <comment_count>6</comment_count>
      <attachid>420798</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-02-17 22:26:46 -0800</bug_when>
    <thetext>Comment on attachment 420798
Patch

Fixed a bad search+replace in the failing layout test send-attribution-conversion-request.html where the URL mistakingly ended with the new signToken.php instead of the correct, pre-existing conversionReport.php.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730742</commentid>
    <comment_count>7</comment_count>
      <attachid>420799</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-02-17 22:38:38 -0800</bug_when>
    <thetext>Created attachment 420799
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730743</commentid>
    <comment_count>8</comment_count>
      <attachid>420799</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-02-17 22:39:35 -0800</bug_when>
    <thetext>Comment on attachment 420799
Patch

Rebased to see if I can get it to apply cleanly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730859</commentid>
    <comment_count>9</comment_count>
      <attachid>420799</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-02-18 08:36:12 -0800</bug_when>
    <thetext>Comment on attachment 420799
Patch

Thanks for the review, Chris!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730957</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-18 11:44:44 -0800</bug_when>
    <thetext>Committed r273088: &lt;https://commits.webkit.org/r273088&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 420799.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420731</attachid>
            <date>2021-02-17 15:13:40 -0800</date>
            <delta_ts>2021-02-17 18:50:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222076-20210217151339.patch</filename>
            <type>text/plain</type>
            <size>73178</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTdjNTQ4MmI0ZjIzNjIw
NWU4ODM3NTdhMWQyNjM2ZDI2YmIyY2RmNi4uZmNkYzc1ZjkzMWEyODU3NmNmYWYxNzIyZGY3YzU2
MGZlM2MyMDg2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTAyLTE3ICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBDTTogUmVxdWVzdCBz
aWduYXR1cmUgZm9yIHVubGlua2FibGUgdG9rZW4gdXNpbmcgYXR0cmlidXRpb25Tb3VyY2VOb25j
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMDc2
CisgICAgICAgIDxyZGFyOi8vNzM1ODE2NTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9zdG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LXdpdGgtc291cmNlLW5vbmNlLmh0
bWwKKworICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmhhbmRsZUNsaWNrKToKKyAgICAgICAgICAgIEFkb3B0
aW9uIG9mIHJlbmFtZWQgZnVuY3Rpb24gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0dHJpYnV0
aW9uUmVwb3J0VVJMKCkuCisgICAgICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Ojp0b2tlblNp
Z25hdHVyZVVSTCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6dG9rZW5TaWduYXR1cmVKU09OIGNvbnN0KToKKyAgICAgICAgICAgIE5ldyBmdW5jdGlv
bnMgdG8gZmFjaWxpdGF0ZSB0aGUgcmVxdWVzdCBmb3IgYSB0b2tlbiBzaWduYXR1cmUuCisgICAg
ICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6YXR0cmlidXRpb25SZXBvcnRV
UkwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0
dHJpYnV0aW9uUmVwb3J0SlNPTiBjb25zdCk6CisgICAgICAgICAgICBSZW5hbWVkIGZ1bmN0aW9u
cyB0byBtYWtlIHRoZW0gZGlzdGluY3QgZnJvbSB0aGVpciB0b2tlbiBzaWduaW5nIHBlZXJzLgor
ICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnJlcG9ydFVSTCBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
anNvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpk
ZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVt
ZXJhbFNvdXJjZU5vbmNlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlOjpkZWNvZGUpOgorICAgICAg
ICAgICAgRW5jb2RlIGFuZCBkZWNvZGUgdG8gZmFjaWxpdGF0ZSB0cmFuc2ZlciBvdmVyIElQQy4K
KwogMjAyMS0wMi0xNyAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgW2lPU10gdXBkYXRlIG1lZGlhIGNvbnRyb2xzIHRvIHVzZSBuZXcgU0YgU3ltYm9scwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCBjYTdjMzU4NzlhYWFlZDJmZjVmYmZmNjE3MjYzNDMwNjY2NGJmODFlLi41ZDJiYWU0
NjczOTJkYzNkZjgyMjNiOTM4ZGM1OGRmOTAxOTc3ZWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDYx
IEBACisyMDIxLTAyLTE3ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisg
ICAgICAgIFBDTTogUmVxdWVzdCBzaWduYXR1cmUgZm9yIHVubGlua2FibGUgdG9rZW4gdXNpbmcg
YXR0cmlidXRpb25Tb3VyY2VOb25jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIyMDc2CisgICAgICAgIDxyZGFyOi8vNzM1ODE2NTE+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtYWtl
cyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnN0b3JlVW5hdHRyaWJ1dGVkKCkgbG9v
aworICAgICAgICBmb3IgaW5jb21pbmcgc291cmNlIG5vbmNlcyBhbmQgaWYgZm91bmQsIGNhbGwg
dGhlIG5ldyBmdW5jdGlvbgorICAgICAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6
OmdldFNpZ25lZFVubGlua2FibGVUb2tlbigpLgorCisgICAgICAgIEEgbmV3IHN0YXRpYyBmdW5j
dGlvbiBnZW5lcmF0ZU5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKCkgd2FzIGFkZGVkCisg
ICAgICAgIHRvIHJldXNlIGNvZGUgYmV0d2VlbiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXI6OmdldFNpZ25lZFVubGlua2FibGVUb2tlbigpCisgICAgICAgIGFuZCB0aGUgZXhpc3Rpbmcg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlQ29udmVyc2lvblJlcXVlc3QoKS4K
KworICAgICAgICBUbyBlbmFibGVkIHRlc3RpbmcsIHRoZXJlIGlzIGEgbmV3IGZ1bmN0aW9uIGNh
bGxlZAorICAgICAgICBOZXR3b3JrU2Vzc2lvbjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRU
b2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcoKSBhbmQKKyAgICAgICAgZnVuY3Rpb24gc2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZygpIHdhcyByZW5hbWVk
CisgICAgICAgIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxG
b3JUZXN0aW5nKCkgaW4gTmV0d29ya1Byb2Nlc3MsCisgICAgICAgIE5ldHdvcmtTZXNzaW9uLCBX
S1BhZ2VQcml2YXRlLCBXS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZywgYW5kCisgICAgICAgIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlciB0byBhbGlnbiB3aXRoIHRoZSBuYW1pbmcgdXNl
ZCBpbiBvdGhlciBwbGFjZXMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9u
UmVwb3J0VVJMRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpz
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Nlc3Npb246OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JU
ZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OnNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Nlc3Npb246OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lv
blVSTEZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VyOjpzdG9yZVVuYXR0cmlidXRlZCk6CisgICAgICAgIChXZWJLaXQ6OmdlbmVyYXRl
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmdldFNpZ25lZFVubGlua2FibGVUb2tlbik6CisgICAg
ICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6ZmlyZUNvbnZlcnNp
b25SZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyOjpzZXRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnNldEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9y
VGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
cjo6c2V0Q29udmVyc2lvblVSTEZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlU2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcpOgorICAgICAgICAoV0tQYWdl
U2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3Rpbmcp
OgorICAgICAgICAoV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJM
Rm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVBy
aXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVG
b3JUZXN0aW5nLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0
aW5nLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50
QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVS
TEZvclRlc3Rpbmc6Y29tcGxldGlvbkhhbmRsZXI6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5n
KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisKIDIwMjEt
MDItMTcgIFRydWl0dCBTYXZlbGwgIDx0c2F2ZWxsQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLCByZXZlcnRpbmcgcjI3MjkwNS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9y
RWxlbWVudC5jcHAKaW5kZXggZWMzZDkwYmVjMjlkMzM4N2ViYzhiMjNhZGM2MmFmYmM3MzMyOGQ1
NC4uMDFiYjFkMTdkNTJmOWNmZWVhOGMwMWJlOTBkMzM2ODc1NjllZDJhZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTUyNyw3ICs1MjcsNyBAQCB2b2lk
IEhUTUxBbmNob3JFbGVtZW50OjpoYW5kbGVDbGljayhFdmVudCYgZXZlbnQpCiAgICAgYXV0byBw
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9IHBhcnNlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsK
ICAgICAvLyBBIG1hdGNoaW5nIGNvbnZlcnNpb24gZXZlbnQgbmVlZHMgdG8gaGFwcGVuIGJlZm9y
ZSB0aGUgY29tcGxldGUgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudAogICAgIC8vIFVSTCBjYW4g
YmUgY3JlYXRlZC4gVGh1cywgaXQgc2hvdWxkIGJlIGVtcHR5IGZvciBub3cuCi0gICAgQVNTRVJU
KCFwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCB8fCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+cmVw
b3J0VVJMKCkuaXNOdWxsKCkpOworICAgIEFTU0VSVCghcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQg
fHwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQtPmF0dHJpYnV0aW9uUmVwb3J0VVJMKCkuaXNOdWxs
KCkpOwogICAgIAogICAgIGZyYW1lLT5sb2FkZXIoKS5jaGFuZ2VMb2NhdGlvbihjb21wbGV0ZWRV
UkwsIGVmZmVjdGl2ZVRhcmdldCwgJmV2ZW50LCByZWZlcnJlclBvbGljeSwgZG9jdW1lbnQoKS5z
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9Qcm9wYWdhdGUoKSwgbmV3RnJhbWVPcGVuZXJQ
b2xpY3ksIGRvd25sb2FkQXR0cmlidXRlLCBzeXN0ZW1QcmV2aWV3SW5mbywgV1RGTW92ZShwcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1By
aXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAppbmRleCAzMjAwNDcwZDg3ZDVmODUwY2Q0NWFlZWNl
YzcxZDg5Y2ViY2VjODRlLi5lOTQyYzMxOGRmMjI3N2NmNjVhMGI4ZTQwMzI2NTRiMzk1MDZiNDI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGNv
bnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUcmlnZ2VyQXR0cmlidXRpb25QYXRoW10g
PSAiLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvdHJpZ2dlci1hdHRyaWJ1
dGlvbi8iOworc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNp
Z25hdHVyZVBhdGhbXSA9ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC9z
aWduLXVubGlua2FibGUtdG9rZW4vIjsKIHN0YXRpYyBjb25zdCBjaGFyIHByaXZhdGVDbGlja01l
YXN1cmVtZW50UmVwb3J0QXR0cmlidXRpb25QYXRoW10gPSAiLy53ZWxsLWtub3duL3ByaXZhdGUt
Y2xpY2stbWVhc3VyZW1lbnQvcmVwb3J0LWF0dHJpYnV0aW9uLyI7CiBjb25zdCBzaXplX3QgcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblRyaWdnZXJEYXRhUGF0aFNlZ21lbnRTaXpl
ID0gMjsKIGNvbnN0IHNpemVfdCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFByaW9yaXR5UGF0aFNl
Z21lbnRTaXplID0gMjsKQEAgLTExNCw3ICsxMTUsMzcgQEAgYm9vbCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6aGFzSGlnaGVyUHJpb3JpdHlUaGFuKGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVt
ZW4KICAgICByZXR1cm4gbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhLT5wcmlvcml0eSA+IG90aGVy
Lm1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YS0+cHJpb3JpdHk7CiB9CiAKLVVSTCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6cmVwb3J0VVJMKCkgY29uc3QKK1VSTCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6dG9rZW5TaWduYXR1cmVVUkwoKSBjb25zdAoreworICAgIGlmICghbV9lcGhlbWVyYWxT
b3VyY2VOb25jZSB8fCAhbV9lcGhlbWVyYWxTb3VyY2VOb25jZS0+aXNWYWxpZCgpKQorICAgICAg
ICByZXR1cm4gVVJMKCk7CisKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCJodHRwczovLyIpOworICAgIGJ1aWxkZXIuYXBwZW5kKG1fc291cmNl
U2l0ZS5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7CisgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKHByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVQYXRoKTsKKworICAgIFVS
TCB1cmwgeyBVUkwoKSwgYnVpbGRlci50b1N0cmluZygpIH07CisgICAgaWYgKHVybC5pc1ZhbGlk
KCkpCisgICAgICAgIHJldHVybiB1cmw7CisKKyAgICByZXR1cm4gVVJMKCk7Cit9CisKK1JlZjxK
U09OOjpPYmplY3Q+IFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojp0b2tlblNpZ25hdHVyZUpTT04o
KSBjb25zdAoreworICAgIGF1dG8gcmVwb3J0RGV0YWlscyA9IEpTT046Ok9iamVjdDo6Y3JlYXRl
KCk7CisgICAgaWYgKCFtX2VwaGVtZXJhbFNvdXJjZU5vbmNlIHx8ICFtX2VwaGVtZXJhbFNvdXJj
ZU5vbmNlLT5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiByZXBvcnREZXRhaWxzOworCisgICAg
cmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2VfZW5nYWdlbWVudF90eXBlIl9zLCAiY2xp
Y2siX3MpOworICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygic291cmNlX25vbmNlIl9zLCBt
X2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5ub25jZSk7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0U3Ry
aW5nKCJ1bmxpbmthYmxlX3Rva2VuIl9zLCAiVE9ETyJfcyk7CisgICAgcmVwb3J0RGV0YWlscy0+
c2V0SW50ZWdlcigidmVyc2lvbiJfcywgMik7CisgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7Cit9
CisKK1VSTCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6YXR0cmlidXRpb25SZXBvcnRVUkwoKSBj
b25zdAogewogICAgIGlmICghaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gVVJMKCk7CkBAIC0x
MzEsNyArMTYyLDcgQEAgVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpyZXBvcnRVUkwoKSBj
b25zdAogICAgIHJldHVybiBVUkwoKTsKIH0KIAotUmVmPEpTT046Ok9iamVjdD4gUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6Ompzb24oKSBjb25zdAorUmVmPEpTT046Ok9iamVjdD4gUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OmF0dHJpYnV0aW9uUmVwb3J0SlNPTigpIGNvbnN0CiB7CiAgICAgYXV0
byByZXBvcnREZXRhaWxzID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKICAgICBpZiAoIW1fYXR0
cmlidXRpb25UcmlnZ2VyRGF0YSB8fCAhaXNWYWxpZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaAppbmRleCBhNGM5NmNhMWUwYTRkMDBiMmFh
ZjFjYzU2OTMzMjk3OWE5ZjgyNTIwLi42OWU2NTM1MmQ0NWIwNTczYjljNDMzYmI0ZDY0Y2FiMGRl
ZGZlMDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQuaApAQCAtMjIxLDYgKzIyMSw5IEBAIHB1YmxpYzoKICAgICAgICAgfQogCiAgICAgICAg
IFN0cmluZyBub25jZTsKKworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0
YXRpYyBPcHRpb25hbDxFcGhlbWVyYWxTb3VyY2VOb25jZT4gZGVjb2RlKERlY29kZXImKTsKICAg
ICB9OwogCiAgICAgc3RydWN0IFByaW9yaXR5IHsKQEAgLTI3NCw4ICsyNzcsMTAgQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBFeHBlY3RlZDxBdHRyaWJ1dGlvblRyaWdnZXJE
YXRhLCBTdHJpbmc+IHBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnN0IFVSTCYgcmVkaXJlY3RV
UkwpOwogICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPFNlY29uZHM+IGF0dHJpYnV0ZUFuZEdl
dEVhcmxpZXN0VGltZVRvU2VuZChBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYpOwogICAgIFdFQkNP
UkVfRVhQT1JUIGJvb2wgaGFzSGlnaGVyUHJpb3JpdHlUaGFuKGNvbnN0IFByaXZhdGVDbGlja01l
YXN1cmVtZW50JikgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgVVJMIHJlcG9ydFVSTCgpIGNv
bnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxKU09OOjpPYmplY3Q+IGpzb24oKSBjb25zdDsK
KyAgICBXRUJDT1JFX0VYUE9SVCBVUkwgdG9rZW5TaWduYXR1cmVVUkwoKSBjb25zdDsKKyAgICBX
RUJDT1JFX0VYUE9SVCBSZWY8SlNPTjo6T2JqZWN0PiB0b2tlblNpZ25hdHVyZUpTT04oKSBjb25z
dDsKKyAgICBXRUJDT1JFX0VYUE9SVCBVUkwgYXR0cmlidXRpb25SZXBvcnRVUkwoKSBjb25zdDsK
KyAgICBXRUJDT1JFX0VYUE9SVCBSZWY8SlNPTjo6T2JqZWN0PiBhdHRyaWJ1dGlvblJlcG9ydEpT
T04oKSBjb25zdDsKICAgICBjb25zdCBTb3VyY2VTaXRlJiBzb3VyY2VTaXRlKCkgY29uc3QgeyBy
ZXR1cm4gbV9zb3VyY2VTaXRlOyB9OwogICAgIGNvbnN0IEF0dHJpYnV0ZU9uU2l0ZSYgYXR0cmli
dXRlT25TaXRlKCkgY29uc3QgeyByZXR1cm4gbV9hdHRyaWJ1dGVPblNpdGU7IH07CiAgICAgdm9p
ZCBzZXRFcGhlbWVyYWxTb3VyY2VOb25jZShFcGhlbWVyYWxTb3VyY2VOb25jZSYmIG5vbmNlKSB7
IG1fZXBoZW1lcmFsU291cmNlTm9uY2UgPSBXVEZNb3ZlKG5vbmNlKTsgfTsKQEAgLTMxOCw2ICsz
MjMsNyBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlcikgY29uc3QKICAgICAgICAgPDwgbV9zb3VyY2VEZXNjcmlwdGlvbgogICAgICAgICA8PCBt
X3B1cmNoYXNlcgogICAgICAgICA8PCBtX3RpbWVPZkFkQ2xpY2sKKyAgICAgICAgPDwgbV9lcGhl
bWVyYWxTb3VyY2VOb25jZQogICAgICAgICA8PCBtX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEKICAg
ICAgICAgPDwgbV9lYXJsaWVzdFRpbWVUb1NlbmQ7CiB9CkBAIC0zNTQsNyArMzYwLDEyIEBAIE9w
dGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
ZGVjb2RlKERlY29kZXImIGRlY29kCiAgICAgZGVjb2RlciA+PiB0aW1lT2ZBZENsaWNrOwogICAg
IGlmICghdGltZU9mQWRDbGljaykKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAK
KworICAgIE9wdGlvbmFsPE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJjZU5vbmNlPj4gZXBoZW1lcmFs
U291cmNlTm9uY2U7CisgICAgZGVjb2RlciA+PiBlcGhlbWVyYWxTb3VyY2VOb25jZTsKKyAgICBp
ZiAoIWVwaGVtZXJhbFNvdXJjZU5vbmNlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CiAgICAgT3B0aW9uYWw8T3B0aW9uYWw8QXR0cmlidXRpb25UcmlnZ2VyRGF0YT4+IGF0dHJpYnV0
aW9uVHJpZ2dlckRhdGE7CiAgICAgZGVjb2RlciA+PiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhOwog
ICAgIGlmICghYXR0cmlidXRpb25UcmlnZ2VyRGF0YSkKQEAgLTM3MywxMiArMzg0LDMwIEBAIE9w
dGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
ZGVjb2RlKERlY29kZXImIGRlY29kCiAgICAgICAgIFdURk1vdmUoKnB1cmNoYXNlciksCiAgICAg
ICAgIFdURk1vdmUoKnRpbWVPZkFkQ2xpY2spCiAgICAgfTsKKyAgICBhdHRyaWJ1dGlvbi5tX2Vw
aGVtZXJhbFNvdXJjZU5vbmNlID0gV1RGTW92ZSgqZXBoZW1lcmFsU291cmNlTm9uY2UpOwogICAg
IGF0dHJpYnV0aW9uLm1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YSA9IFdURk1vdmUoKmF0dHJpYnV0
aW9uVHJpZ2dlckRhdGEpOwogICAgIGF0dHJpYnV0aW9uLm1fZWFybGllc3RUaW1lVG9TZW5kID0g
V1RGTW92ZSgqZWFybGllc3RUaW1lVG9TZW5kKTsKICAgICAKICAgICByZXR1cm4gYXR0cmlidXRp
b247CiB9CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0Cit7CisgICAgZW5jb2RlciA8PCBub25jZTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4KK09wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25j
ZT4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlOjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxTdHJpbmc+IG5vbmNlOworICAgIGRl
Y29kZXIgPj4gbm9uY2U7CisgICAgaWYgKCFub25jZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKyAgICAKKyAgICByZXR1cm4gRXBoZW1lcmFsU291cmNlTm9uY2UgeyBXVEZNb3ZlKCpu
b25jZSkgfTsKK30KKwogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcAppbmRleCA3YTkzMTk0OGEwNTZlYjkyZWNiZDNmMmQyNzRkZjE0NGRmMDFhOTVl
Li4xNGE2YmY3NDRiM2U1N2U2ZDViZDA3YTg2NTIzOTY2YzZkOTJkNTI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMjYwNywxMCAr
MjYwNywxOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjptYXJrQXR0cmlidXRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoUAogICAgIGNvbXBsZXRpb25IYW5kbGVy
KCk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
Q29udmVyc2lvblVSTEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwmJiB1
cmwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQg
TmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVV
UkxGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMJiYgdXJsLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8q
IHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQotICAgICAgICBzZXNzaW9uLT5z
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdURk1vdmUo
dXJsKSk7CisgICAgICAgIHNlc3Npb24tPnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5T
aWduYXR1cmVVUkxGb3JUZXN0aW5nKFdURk1vdmUodXJsKSk7CisgICAgCisgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBVUkwmJiB1cmwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Np
b25JRCkpCisgICAgICAgIHNlc3Npb24tPnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmli
dXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKFdURk1vdmUodXJsKSk7CiAgICAgCiAgICAgY29tcGxl
dGlvbkhhbmRsZXIoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuaAppbmRleCAxMTI2MmE4NTZiMTM4MTMxNjkyYzI1NTQ4MmIzYmE2NTc0NDVlYjIx
Li4yYjI0YjgzMmZiMjQ3Mzg1ZjJkNGUwYmMyNzg3YTBkMWQwOGIxZTMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0zNDIsNyArMzQyLDgg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRp
bWVyRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIG1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nl
c3Npb25SZXN0YXJ0KFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwotICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVz
dGluZyhQQUw6OlNlc3Npb25JRCwgVVJMJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CisgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9y
VGVzdGluZyhQQUw6OlNlc3Npb25JRCwgVVJMJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CisgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0
VVJMRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgVVJMJiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAgICAgdm9pZCBtYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVk
Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
IAogICAgIFJlZlB0cjxXZWJDb3JlOjpTdG9yYWdlUXVvdGFNYW5hZ2VyPiBzdG9yYWdlUXVvdGFN
YW5hZ2VyKFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1l
c3NhZ2VzLmluCmluZGV4IDU4YjNlNGM4NjhjNzAxMmNkYjM1NjU2ZWFhYmYyYjYxODFmMmJjN2Uu
LmUwNzQ3Y2QyYTI2MTM5Y2ZmODZmNWU1ODEwNjdjYWJhYzFlMWVkYTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5p
bgpAQCAtMTY3LDcgKzE2Nyw4IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJl
Y2VpdmVyIHsKICAgICBTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JU
ZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSkgLT4gKCkgQXN5bmMK
ICAgICBNYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRl
c3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwogICAgIFNpbXVsYXRl
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCkgLT4gKCkgQXN5bmMKLSAgICBTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNp
b25VUkxGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIHVybCkgLT4gKCkg
QXN5bmMKKyAgICBTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9y
VGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCB1cmwpIC0+ICgpIEFzeW5jCisg
ICAgU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3Rp
bmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgdXJsKSAtPiAoKSBBc3luYwogICAgIE1h
cmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKICAgICBHZXRMb2NhbFN0b3JhZ2VPcmlnaW5EZXRh
aWxzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKFZlY3RvcjxXZWJLaXQ6OkxvY2FsU3Rv
cmFnZURhdGFiYXNlVHJhY2tlcjo6T3JpZ2luRGV0YWlscz4gZGV0YWlscykgQXN5bmMKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRleCAz
OWQyMjAwZjRjMDY4ZjYwMzYxY2ZlMTFkNzc4ODkwYmUwNDJhNzYyLi44NGIwNTY4YmZlZDEwMTk5
NTNjZDM0NDAwYWI3MjdhMjZiNzhiYzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApAQCAtMzM4LDkgKzMzOCwxNCBAQCB2b2lkIE5ldHdv
cmtTZXNzaW9uOjptYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJl
ZEZvclRlc3RpbmcoQwogICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50KCkubWFya0F0dHJpYnV0
ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBOZXR3b3JrU2Vzc2lvbjo6c2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhVUkwmJiB1cmwpCit2b2lkIE5l
dHdvcmtTZXNzaW9uOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJM
Rm9yVGVzdGluZyhVUkwmJiB1cmwpCiB7Ci0gICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS5z
ZXRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhXVEZNb3ZlKHVybCkpOworICAgIHByaXZhdGVDbGlj
a01lYXN1cmVtZW50KCkuc2V0VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKFdURk1vdmUodXJs
KSk7Cit9CisKK3ZvaWQgTmV0d29ya1Nlc3Npb246OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKFVSTCYmIHVybCkKK3sKKyAgICBwcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCgpLnNldEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZyhXVEZN
b3ZlKHVybCkpOwogfQogCiB2b2lkIE5ldHdvcmtTZXNzaW9uOjptYXJrUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKaW5kZXggZTg2YTg1NGQyOTU5OGJhYWI3NTdhMWQzMWYz
YmEyOWFlZjliM2M4Ni4uODQzODE3ZmE3Njk5ZGExOGM5MjAwMmQwNDIxZTYwNTFlNDc5YjU4NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaApAQCAt
MTIzLDcgKzEyMyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRGb3JSZWdpc3RyYWJsZURvbWFpbihXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmKTsK
ICAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3Rp
bmcoYm9vbCB2YWx1ZSk7CiAgICAgdm9pZCBtYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
LSAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rp
bmcoVVJMJiYpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25h
dHVyZVVSTEZvclRlc3RpbmcoVVJMJiYpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoVVJMJiYpOwogICAgIHZvaWQgbWFy
a1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKICAgICB2b2lk
IGZpcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRpbWVySW1tZWRpYXRlbHkoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXIuY3BwCmluZGV4IGNmZWI2NjU4ZDM4ZDRkZDYxZWY4MTg2YjMzNjM4
N2EyYzQxZmExMjAuLmIwM2U5NzAyMjZlMTQ3ODVlOWVmZDQ2MzBlMGIyYTEwNTNhNjBhODYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBTb3VyY2VTaXRlID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OlNvdXJjZVNpdGU7CiB1c2luZyBBdHRyaWJ1dGVPblNpdGUgPSBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6QXR0cmlidXRlT25TaXRlOwogdXNpbmcgQXR0cmlidXRpb25UcmlnZ2VyRGF0YSA9
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhOwordXNpbmcg
RXBoZW1lcmFsU291cmNlTm9uY2UgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFs
U291cmNlTm9uY2U7CiAKIGNvbnN0ZXhwciBTZWNvbmRzIGRlYnVnTW9kZVNlY29uZHNVbnRpbFNl
bmQgeyAxMF9zIH07CiAKQEAgLTczLDYgKzc0LDkgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1hbmFnZXI6OnN0b3JlVW5hdHRyaWJ1dGVkKFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYK
IAogICAgIGNsZWFyRXhwaXJlZCgpOwogCisgICAgaWYgKGF0dHJpYnV0aW9uLmVwaGVtZXJhbFNv
dXJjZU5vbmNlKCkpCisgICAgICAgIGdldFNpZ25lZFVubGlua2FibGVUb2tlbihhdHRyaWJ1dGlv
bik7CisKICAgICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nl
c3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VM
ZXZlbDo6TG9nLCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIFN0b3JpbmcgYW4gYWQgY2xp
Y2suIl9zKTsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCkBAIC04MSw2
ICs4NSw2NyBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c3RvcmVVbmF0
dHJpYnV0ZWQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJgogI2VuZGlmCiB9CiAKK3N0YXRpYyBO
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBnZW5lcmF0ZU5ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzKFVSTCYmIHVybCwgUmVmPEpTT046Ok9iamVjdD4ganNvblBheWxvYWQsIFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpQY21EYXRhQ2FycmllZCBkYXRhVHlwZUNhcnJpZWQpCit7Cisg
ICAgc3RhdGljIHVpbnQ2NF90IGlkZW50aWZpZXIgPSAwOworICAgIAorICAgIFJlc291cmNlUmVx
dWVzdCByZXF1ZXN0IHsgV1RGTW92ZSh1cmwpIH07CisgICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9k
KCJQT1NUIl9zKTsKKyAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFt
ZTo6Q2FjaGVDb250cm9sLCBXZWJDb3JlOjpIVFRQSGVhZGVyVmFsdWVzOjptYXhBZ2UwKCkpOwor
ICAgIHJlcXVlc3Quc2V0SFRUUENvbnRlbnRUeXBlKFdlYkNvcmU6OkhUVFBIZWFkZXJWYWx1ZXM6
OmFwcGxpY2F0aW9uSlNPTkNvbnRlbnRUeXBlKCkpOworICAgIHJlcXVlc3Quc2V0SFRUUEJvZHko
V2ViQ29yZTo6Rm9ybURhdGE6OmNyZWF0ZShqc29uUGF5bG9hZC0+dG9KU09OU3RyaW5nKCkudXRm
OCgpLmRhdGEoKSkpOworCisgICAgRmV0Y2hPcHRpb25zIG9wdGlvbnM7CisgICAgb3B0aW9ucy5j
cmVkZW50aWFscyA9IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6Ok9taXQ7CisgICAgb3B0aW9u
cy5yZWRpcmVjdCA9IEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6OkVycm9yOworCisgICAgTmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnM7CisgICAgbG9hZFBhcmFtZXRl
cnMuaWRlbnRpZmllciA9ICsraWRlbnRpZmllcjsKKyAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0
ID0gcmVxdWVzdDsKKyAgICBsb2FkUGFyYW1ldGVycy5wYXJlbnRQSUQgPSBwcmVzZW50aW5nQXBw
bGljYXRpb25QSUQoKTsKKyAgICBsb2FkUGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSA9IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpFcGhlbWVyYWxTdGF0ZWxlc3M7CisgICAgbG9h
ZFBhcmFtZXRlcnMub3B0aW9ucyA9IG9wdGlvbnM7CisgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxk
Q2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCA9IHRydWU7CisgICAgbG9hZFBhcmFt
ZXRlcnMuc2hvdWxkUmVzdHJpY3RIVFRQUmVzcG9uc2VBY2Nlc3MgPSBmYWxzZTsKKyAgICBsb2Fk
UGFyYW1ldGVycy5wY21EYXRhQ2FycmllZCA9IGRhdGFUeXBlQ2FycmllZDsKKyAgICAKKyAgICBy
ZXR1cm4gbG9hZFBhcmFtZXRlcnM7Cit9CisKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YW5hZ2VyOjpnZXRTaWduZWRVbmxpbmthYmxlVG9rZW4oY29uc3QgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQmIGF0dHJpYnV0aW9uKQoreworICAgIGlmICghZmVhdHVyZUVuYWJsZWQoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgYXV0byB0b2tlblNpZ25hdHVyZVVSTCA9IGF0dHJpYnV0aW9uLnRv
a2VuU2lnbmF0dXJlVVJMKCk7CisgICAgYXV0byBwY21EYXRhQ2FycmllZCA9IFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpQY21EYXRhQ2FycmllZDo6UGVyc29uYWxseUlkZW50aWZpYWJsZTsKKyAg
ICBpZiAobV90b2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcpIHsKKyAgICAgICAgdG9rZW5TaWdu
YXR1cmVVUkwgPSAqbV90b2tlblNpZ25hdHVyZVVSTEZvclRlc3Rpbmc7CisgICAgICAgIHBjbURh
dGFDYXJyaWVkID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlBjbURhdGFDYXJyaWVkOjpOb25Q
ZXJzb25hbGx5SWRlbnRpZmlhYmxlOworICAgIH0KKworICAgIGlmICh0b2tlblNpZ25hdHVyZVVS
TC5pc0VtcHR5KCkgfHwgIXRva2VuU2lnbmF0dXJlVVJMLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgYXV0byBsb2FkUGFyYW1ldGVycyA9IGdlbmVyYXRlTmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnMoV1RGTW92ZSh0b2tlblNpZ25hdHVyZVVSTCksIGF0dHJpYnV0aW9uLnRv
a2VuU2lnbmF0dXJlSlNPTigpLCBwY21EYXRhQ2FycmllZCk7CisKKyAgICBSRUxFQVNFX0xPR19J
TkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiQWJvdXQgdG8gZmlyZSBhIHVubGlua2FibGUg
dG9rZW4gc2lnbmluZyByZXF1ZXN0LiIpOworICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2Fz
dENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpMb2csICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVu
dF0gQWJvdXQgdG8gZmlyZSBhIHVubGlua2FibGUgdG9rZW4gc2lnbmluZyByZXF1ZXN0LiJfcyk7
CisKKyAgICBtX3BpbmdMb2FkRnVuY3Rpb24oV1RGTW92ZShsb2FkUGFyYW1ldGVycyksIFt3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYg
ZXJyb3IsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKSB7CisgICAg
ICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKCFl
cnJvci5pc051bGwoKSkgeworICAgICAgICAgICAgd2Vha1RoaXMtPm1fbmV0d29ya1Byb2Nlc3Mt
PmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKHdlYWtUaGlzLT5tX3Nlc3Npb25JRCwgTWVzc2FnZVNv
dXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1ha2VT
dHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBSZWNlaXZlZCBlcnJvcjogJyJfcywg
ZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKSwgIicgZm9yIHVubGlua2FibGUgdG9rZW4gc2ln
bmluZyByZXF1ZXN0LiJfcykpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICAvLyBGSVhNRTogUmVjZWl2ZSBhbmQgc3RvcmUgdGhlIHNpZ25lZCB1bmxp
bmthYmxlIHRva2VuLCByZGFyOi8vNzM1ODIwMzIuCisgICAgfSk7CisKK30KKwogdm9pZCBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmhhbmRsZUF0dHJpYnV0aW9uKEF0dHJpYnV0aW9u
VHJpZ2dlckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBjb25zdCBVUkwmIHJlcXVlc3RV
UkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0KQogewog
ICAgIGlmICghZmVhdHVyZUVuYWJsZWQoKSkKQEAgLTEzOCwzMyArMjAzLDExIEBAIHZvaWQgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlQ29udmVyc2lvblJlcXVlc3QoY29uc3Qg
UHJpdmF0ZUNsaWNrTWVhCiAgICAgaWYgKCFmZWF0dXJlRW5hYmxlZCgpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBhdXRvIGF0dHJpYnV0aW9uVVJMID0gbV9hdHRyaWJ1dGlvbkJhc2VVUkxGb3JU
ZXN0aW5nID8gKm1fYXR0cmlidXRpb25CYXNlVVJMRm9yVGVzdGluZyA6IGF0dHJpYnV0aW9uLnJl
cG9ydFVSTCgpOworICAgIGF1dG8gYXR0cmlidXRpb25VUkwgPSBtX2F0dHJpYnV0aW9uUmVwb3J0
QmFzZVVSTEZvclRlc3RpbmcgPyAqbV9hdHRyaWJ1dGlvblJlcG9ydEJhc2VVUkxGb3JUZXN0aW5n
IDogYXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRVUkwoKTsKICAgICBpZiAoYXR0cmlidXRp
b25VUkwuaXNFbXB0eSgpIHx8ICFhdHRyaWJ1dGlvblVSTC5pc1ZhbGlkKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0IHsgV1RGTW92ZShhdHRyaWJ1dGlv
blVSTCkgfTsKLSAgICAKLSAgICByZXF1ZXN0LnNldEhUVFBNZXRob2QoIlBPU1QiX3MpOwotICAg
IHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDYWNoZUNvbnRyb2ws
IFdlYkNvcmU6OkhUVFBIZWFkZXJWYWx1ZXM6Om1heEFnZTAoKSk7Ci0KLSAgICByZXF1ZXN0LnNl
dEhUVFBDb250ZW50VHlwZShXZWJDb3JlOjpIVFRQSGVhZGVyVmFsdWVzOjphcHBsaWNhdGlvbkpT
T05Db250ZW50VHlwZSgpKTsKLSAgICByZXF1ZXN0LnNldEhUVFBCb2R5KFdlYkNvcmU6OkZvcm1E
YXRhOjpjcmVhdGUoYXR0cmlidXRpb24uanNvbigpLT50b0pTT05TdHJpbmcoKS51dGY4KCkuZGF0
YSgpKSk7Ci0KLSAgICBGZXRjaE9wdGlvbnMgb3B0aW9uczsKLSAgICBvcHRpb25zLmNyZWRlbnRp
YWxzID0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6T21pdDsKLSAgICBvcHRpb25zLnJlZGly
ZWN0ID0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6RXJyb3I7Ci0KLSAgICBzdGF0aWMgdWludDY0
X3QgaWRlbnRpZmllciA9IDA7Ci0gICAgCi0gICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMgbG9hZFBhcmFtZXRlcnM7Ci0gICAgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllciA9ICsraWRl
bnRpZmllcjsKLSAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKLSAgICBsb2Fk
UGFyYW1ldGVycy5wYXJlbnRQSUQgPSBwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKTsKLSAgICBs
b2FkUGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IFN0b3JlZENyZWRlbnRpYWxz
UG9saWN5OjpFcGhlbWVyYWxTdGF0ZWxlc3M7Ci0gICAgbG9hZFBhcmFtZXRlcnMub3B0aW9ucyA9
IG9wdGlvbnM7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNU
b0hUVFBSZWRpcmVjdCA9IHRydWU7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkUmVzdHJpY3RI
VFRQUmVzcG9uc2VBY2Nlc3MgPSBmYWxzZTsKLSAgICBsb2FkUGFyYW1ldGVycy5wY21EYXRhQ2Fy
cmllZCA9IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQY21EYXRhQ2FycmllZDo6
Tm9uUGVyc29uYWxseUlkZW50aWZpYWJsZTsKKyAgICBhdXRvIGxvYWRQYXJhbWV0ZXJzID0gZ2Vu
ZXJhdGVOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyhXVEZNb3ZlKGF0dHJpYnV0aW9uVVJM
KSwgYXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRKU09OKCksIFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpQY21EYXRhQ2FycmllZDo6Tm9uUGVyc29uYWxseUlkZW50aWZpYWJsZSk7CiAKICAg
ICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiQWJvdXQgdG8gZmly
ZSBhbiBhdHRyaWJ1dGlvbiByZXF1ZXN0LiIpOwogICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2Fk
Y2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpMb2csICJbUHJpdmF0ZSBDbGljayBNZWFzdXJl
bWVudF0gQWJvdXQgdG8gZmlyZSBhbiBhdHRyaWJ1dGlvbiByZXF1ZXN0LiJfcyk7CkBAIC0yOTMs
MTIgKzMzNiwyMCBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6dG9TdHJp
bmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmCiAgICAgY29tcGxldGlvbkhhbmRs
ZXIoIlxuTm8gc3RvcmVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQgZGF0YS5cbiJfcyk7CiB9
CiAKLXZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzZXRDb252ZXJzaW9uVVJM
Rm9yVGVzdGluZyhVUkwmJiB0ZXN0VVJMKQordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXI6OnNldFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyhVUkwmJiB0ZXN0VVJMKQorewor
ICAgIGlmICh0ZXN0VVJMLmlzRW1wdHkoKSkKKyAgICAgICAgbV90b2tlblNpZ25hdHVyZVVSTEZv
clRlc3RpbmcgPSB7IH07CisgICAgZWxzZQorICAgICAgICBtX3Rva2VuU2lnbmF0dXJlVVJMRm9y
VGVzdGluZyA9IFdURk1vdmUodGVzdFVSTCk7Cit9CisKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyOjpzZXRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoVVJMJiYgdGVz
dFVSTCkKIHsKICAgICBpZiAodGVzdFVSTC5pc0VtcHR5KCkpCi0gICAgICAgIG1fYXR0cmlidXRp
b25CYXNlVVJMRm9yVGVzdGluZyA9IHsgfTsKKyAgICAgICAgbV9hdHRyaWJ1dGlvblJlcG9ydEJh
c2VVUkxGb3JUZXN0aW5nID0geyB9OwogICAgIGVsc2UKLSAgICAgICAgbV9hdHRyaWJ1dGlvbkJh
c2VVUkxGb3JUZXN0aW5nID0gV1RGTW92ZSh0ZXN0VVJMKTsKKyAgICAgICAgbV9hdHRyaWJ1dGlv
blJlcG9ydEJhc2VVUkxGb3JUZXN0aW5nID0gV1RGTW92ZSh0ZXN0VVJMKTsKIH0KIAogdm9pZCBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6Om1hcmtBbGxVbmF0dHJpYnV0ZWRBc0V4cGly
ZWRGb3JUZXN0aW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oCmluZGV4IDk2ZDBiNjgyNTY0
MGVmNzYxY2EzMGUyYjljMmViYmMzYTEzYjE0MjQuLmM1ZGU4NjdjODNlNGZiMjQ2YzRhMGUzYzAx
ZmE1ZDE2OTc1YzlkYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaApAQCAtNjEsMTIgKzYx
LDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIHRvU3RyaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U3RyaW5nKT4mJikgY29uc3Q7CiAgICAgdm9pZCBzZXRQaW5nTG9hZEZ1bmN0aW9uKEZ1bmN0aW9u
PHZvaWQoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYpPiYmKT4mJiBwaW5nTG9hZEZ1bmN0aW9uKSB7IG1fcGluZ0xvYWRGdW5jdGlv
biA9IFdURk1vdmUocGluZ0xvYWRGdW5jdGlvbik7IH0KICAgICB2b2lkIHNldE92ZXJyaWRlVGlt
ZXJGb3JUZXN0aW5nKGJvb2wgdmFsdWUpIHsgbV9pc1J1bm5pbmdUZXN0ID0gdmFsdWU7IH0KLSAg
ICB2b2lkIHNldENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFVSTCYmKTsKKyAgICB2b2lkIHNldFRv
a2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyhVUkwmJik7CisgICAgdm9pZCBzZXRBdHRyaWJ1dGlv
blJlcG9ydFVSTEZvclRlc3RpbmcoVVJMJiYpOwogICAgIHZvaWQgbWFya0FsbFVuYXR0cmlidXRl
ZEFzRXhwaXJlZEZvclRlc3RpbmcoKTsKICAgICB2b2lkIG1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgc3RhcnRUaW1lcihTZWNvbmRzKTsKIAogcHJpdmF0ZToKKyAgICB2
b2lkIGdldFNpZ25lZFVubGlua2FibGVUb2tlbihjb25zdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCYpOwogICAgIHZvaWQgY2xlYXJTZW50QXR0cmlidXRpb24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQmJik7CiAgICAgdm9pZCBhdHRyaWJ1dGUoY29uc3QgU291cmNlU2l0ZSYsIGNvbnN0IEF0dHJp
YnV0ZU9uU2l0ZSYsIEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJik7CiAgICAgdm9pZCBmaXJlQ29u
dmVyc2lvblJlcXVlc3QoY29uc3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmKTsKQEAgLTc3LDcg
Kzc5LDggQEAgcHJpdmF0ZToKIAogICAgIFdlYkNvcmU6OlRpbWVyIG1fZmlyZVBlbmRpbmdBdHRy
aWJ1dGlvblJlcXVlc3RzVGltZXI7CiAgICAgYm9vbCBtX2lzUnVubmluZ1Rlc3QgeyBmYWxzZSB9
OwotICAgIE9wdGlvbmFsPFVSTD4gbV9hdHRyaWJ1dGlvbkJhc2VVUkxGb3JUZXN0aW5nOworICAg
IE9wdGlvbmFsPFVSTD4gbV90b2tlblNpZ25hdHVyZVVSTEZvclRlc3Rpbmc7CisgICAgT3B0aW9u
YWw8VVJMPiBtX2F0dHJpYnV0aW9uUmVwb3J0QmFzZVVSTEZvclRlc3Rpbmc7CiAgICAgV2Vha1B0
cjxOZXR3b3JrU2Vzc2lvbj4gbV9uZXR3b3JrU2Vzc2lvbjsKICAgICBSZWY8TmV0d29ya1Byb2Nl
c3M+IG1fbmV0d29ya1Byb2Nlc3M7CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCA2MmE1NGI3NDZjM2Fi
MmYxYWIzMmNlZDcxNDY0YzRjNGRkZjFlOWQ2Li5jYzdmZjBiMTI1MjA2MTY3YjY3NWQ3ZGQ1OTFl
M2I4NTdmYmM2MTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAK
QEAgLTI5NDUsOSArMjk0NSwxNiBAQCB2b2lkIFdLUGFnZVNpbXVsYXRlUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1Nlc3Npb25SZXN0YXJ0KFdLUGFnZVJlZiBwYWdlLCBXS1BhZ2VTaQogICAgIH0pOwog
fQogCi12b2lkIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZv
clRlc3RpbmcoV0tQYWdlUmVmIHBhZ2UsIFdLVVJMUmVmIFVSTFJlZiwgV0tQYWdlU2V0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNr
LCB2b2lkKiBjYWxsYmFja0NvbnRleHQpCit2b2lkIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1
cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1VSTFJl
ZiBVUkxSZWYsIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVV
UkxGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCkKIHsK
LSAgICB0b0ltcGwocGFnZSktPnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVS
TEZvclRlc3RpbmcoVVJMKFVSTCgpLCB0b1dURlN0cmluZyhVUkxSZWYpKSwgW2NhbGxiYWNrQ29u
dGV4dCwgY2FsbGJhY2tdICgpIHsKKyAgICB0b0ltcGwocGFnZSktPnNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKFVSTChVUkwoKSwgdG9XVEZTdHJp
bmcoVVJMUmVmKSksIFtjYWxsYmFja0NvbnRleHQsIGNhbGxiYWNrXSAoKSB7CisgICAgICAgIGNh
bGxiYWNrKGNhbGxiYWNrQ29udGV4dCk7CisgICAgfSk7Cit9CisKK3ZvaWQgV0tQYWdlU2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoV0tQYWdl
UmVmIHBhZ2UsIFdLVVJMUmVmIFVSTFJlZiwgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCog
Y2FsbGJhY2tDb250ZXh0KQoreworICAgIHRvSW1wbChwYWdlKS0+c2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoVVJMKFVSTCgpLCB0b1dURlN0
cmluZyhVUkxSZWYpKSwgW2NhbGxiYWNrQ29udGV4dCwgY2FsbGJhY2tdICgpIHsKICAgICAgICAg
Y2FsbGJhY2soY2FsbGJhY2tDb250ZXh0KTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaAppbmRleCA3MDNkNjE5YzVhYzJiODdiMTdk
NjA4YjhhZTYyNDM5OTI3MDA3ZWUzLi4yOGE4MmY2N2I5ZWI2ZmFkOTQzZjM3MTM2OWEyMDY0MTA3
MzEyMTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0
ZS5oCkBAIC0xNzksOCArMTc5LDEwIEBAIHR5cGVkZWYgdm9pZCAoKldLUGFnZU1hcmtBdHRyaWJ1
dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZ0Z1CiBXS19FWFBP
UlQgdm9pZCBXS1BhZ2VNYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhw
aXJlZEZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2UsIFdLUGFnZU1hcmtBdHRyaWJ1dGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2
b2lkKiBjYWxsYmFja0NvbnRleHQpOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlU2ltdWxhdGVSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJlc3RhcnRGdW5jdGlvbikodm9pZCogZnVuY3Rpb25D
b250ZXh0KTsKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZVNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1Nlc3Npb25SZXN0YXJ0KFdLUGFnZVJlZiBwYWdlLCBXS1BhZ2VTaW11bGF0ZVJlc291cmNl
TG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydEZ1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxs
YmFja0NvbnRleHQpOwotdHlwZWRlZiB2b2lkICgqV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZ0Z1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRl
eHQpOwotV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252
ZXJzaW9uVVJMRm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwgV0tVUkxSZWYgdXJsU3RyaW5nLCBX
S1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nRnVu
Y3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCk7Cit0eXBlZGVmIHZvaWQgKCpX
S1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGlu
Z0Z1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOworV0tfRVhQT1JUIHZvaWQgV0tQYWdl
U2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcoV0tQ
YWdlUmVmIHBhZ2UsIFdLVVJMUmVmIHVybFN0cmluZywgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9p
ZCogY2FsbGJhY2tDb250ZXh0KTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZVNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nRnVuY3Rpb24pKHZvaWQq
IGZ1bmN0aW9uQ29udGV4dCk7CitXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwg
V0tVUkxSZWYgdXJsU3RyaW5nLCBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJp
YnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFj
a0NvbnRleHQpOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlTWFya1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50c0FzRXhwaXJlZEZvclRlc3RpbmdGdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsK
IFdLX0VYUE9SVCB2b2lkIFdLUGFnZU1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGly
ZWRGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1BhZ2VNYXJrUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFj
a0NvbnRleHQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oCmluZGV4IDk3NDQzNDEwMWY4
NGVjNTI0OTE4YWJjMTRjM2YzMWZiN2FiZTZiY2IuLjMyMTg1NmM5NmNiMDliNDkxNjM0MGI3ZDA2
MGI4NDc1ODI5MjNjNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oCkBAIC04NSw2ICs4
NSw2IEBAIHR5cGVkZWYgZW51bSB7CiAtIChOU051bWJlciAqKV9zdXNwZW5kTWVkaWFQbGF5YmFj
a0NvdW50ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKIAogLSAodm9pZClfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVy
Rm9yVGVzdGluZzooQk9PTClvdmVycmlkZVRpbWVyIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4p
KHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dENvbnZlcnNpb25VUkxGb3JUZXN0aW5nOihOU1VSTCAqKXVybCBjb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfc2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3Rpbmc6KE5TVVJMICopdXJsIGNvbXBs
ZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBlbmQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5n
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3Rpbmcu
bW0KaW5kZXggMGZhNWRiMGZmZWUzZmI2OWFkOWU5MTI1ZjFkMTU0YmNhY2JkZThiMC4uOThmMThm
ODRlZjE2MzE4MDcwNWRmNTkyZjdlNzQyMTAzNzg5YmU3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0KQEAgLTMwMiw5
ICszMDIsOSBAQCAtICh2b2lkKV9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGlt
ZXJGb3JUZXN0aW5nOihCT09MKW92ZXJyaWRlVGltZXIgYwogICAgIH0pOwogfQogCi0tICh2b2lk
KV9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nOihOU1VS
TCAqKXVybCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxl
cgorLSAodm9pZClfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVS
TEZvclRlc3Rpbmc6KE5TVVJMICopdXJsIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQp
KWNvbXBsZXRpb25IYW5kbGVyCiB7Ci0gICAgX3BhZ2UtPnNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcodXJsLCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtl
QmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7CisgICAgX3BhZ2UtPnNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKHVybCwgW2NvbXBsZXRp
b25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0gewogICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcigpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKaW5kZXggZjk2M2M4NjlkYTdlMzY3MmQzN2FkNjViMzcwZmVjYzg2N2My
YjJiOS4uNDA1NDMwY2I1YjMzZDllZTcwYjI1ZGQyNDg4MmFmM2VhNjEyMjc3MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMDAwNSw5ICsxMDAwNSwxNCBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6c2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lv
blJlc3RhcnQoQ29tcGxldGlvbkhhbmRsZQogICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3Jr
UHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNp
bXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KG1fd2Vic2l0ZURhdGFT
dG9yZS0+c2Vzc2lvbklEKCkpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxG
b3JUZXN0aW5nKGNvbnN0IFVSTCYgdXJsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcoY29uc3QgVVJMJiB1cmwsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICB3ZWJzaXRlRGF0
YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzOjpTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JU
ZXN0aW5nKG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCksIHVybCksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKKyAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3Mo
KS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyhtX3dlYnNpdGVEYXRh
U3RvcmUtPnNlc3Npb25JRCgpLCB1cmwpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9
CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0
aW9uUmVwb3J0VVJMRm9yVGVzdGluZyhjb25zdCBVUkwmIHVybCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5u
ZXR3b3JrUHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6OlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0
aW5nKG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCksIHVybCksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6Om1hcmtQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
aW5kZXggMjkyNDA2YzliZjZjYWU3NzFiZGQxYzI5MWE2NWIzZWQxMzBmYzBlYS4uZmFmNTMwNTgy
NTBhMmZkMjdlMGNjNzVkYzQxOWY5NGMzODlmM2M1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKQEAgLTE2ODgsNyArMTY4OCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIG1hcmtBdHRyaWJ1dGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U2Vzc2lvblJlc3RhcnQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoY29uc3QgVVJM
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKGNvbnN0IFVSTCYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZyhjb25zdCBVUkwmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgbWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50
c0FzRXhwaXJlZEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogI2lm
IEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDQ4MDI4OGZiMTMyN2U3MTM2YjgzMzgxZGVhMWZjOGRkYzZm
MDM4ZGQuLjIxMDM2NTkzMzcyMTc3ZWNlZmI5NGFiNDY2MmY3MmMyM2U5YTVhYTIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBA
QAorMjAyMS0wMi0xNyAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBQQ006IFJlcXVlc3Qgc2lnbmF0dXJlIGZvciB1bmxpbmthYmxlIHRva2VuIHVzaW5nIGF0
dHJpYnV0aW9uU291cmNlTm9uY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMjA3NgorICAgICAgICA8cmRhcjovLzczNTgxNjUxPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBjaGFuZ2VzIHRvIHRo
ZSBUZXN0UnVubmVyIGFyZToKKyAgICAgICAgLSBSZW5hbWUgc2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZygpIHRvCisgICAgICAgIHNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKCkgdG8gYWxpZ24gd2l0
aCBvdGhlcgorICAgICAgICBuYW1pbmcgYW5kIG1ha2UgaXQgY2xlYXIgdGhhdCBpdCBkb2VzLgor
ICAgICAgICAtIEFkZCB0aGUgbmV3IHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWdu
YXR1cmVVUkxGb3JUZXN0aW5nKCkgdXNlZCBmb3IKKyAgICAgICAgdGVzdGluZyB0aGUgdG9rZW4g
c2lnbmluZyByZXF1ZXN0LgorCisgICAgICAgIFRoZSBjaGFuZ2VzIHRvIEFQSSB0ZXN0cyBhcmUg
dG8gYWRvcHQgcmVuYW1lZCBmdW5jdGlvbnMgaW4KKyAgICAgICAgV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6CisgICAgICAgIC0gcmVwb3J0VVJMKCkgcmVuYW1lZCBhdHRyaWJ1dGlv
blJlcG9ydFVSTCgpLgorICAgICAgICAtIGpzb24oKSByZW5hbWVkIGF0dHJpYnV0aW9uUmVwb3J0
SlNPTigpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRy
aWJ1dGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoK
KyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tl
blNpZ25hdHVyZVVSTEZvclRlc3RpbmcpOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZyk6Cisg
ICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVy
c2lvblVSTEZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcpOgorICAgICAg
ICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1
dGlvblJlcG9ydFVSTEZvclRlc3RpbmcpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6
c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyk6IERlbGV0
ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpU
ZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1
bmRsZSk6CisKIDIwMjEtMDItMTcgIFNhbSBTbmVkZG9uICA8Z3NuZWRkZXJzQGFwcGxlLmNvbT4K
IAogICAgICAgICBBZGQgZGVwcmVjYXRpb24gbm90aWNlcyB0byBiZWxpZXZlZC11bnVzZWQgY29t
bWFuZHMgaW4gd2Via2l0LXBhdGNoCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJkMmY5ZTYy
NzY5MDZlNWY1NDBhZjQ5MTI4ODU2MzYzMjY1YjVjOWUuLjc2Y2U4Njk1NTRlYmQ5NzQ3ZjQ0ODQz
YTU1ODkyMDBiZDg2ZWI3NTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzExLDYgKzIz
MTEsNyBAQAogCQk2M0E2MUI4QTFGQUQyMDREMDBGMDY4ODUgLyogZGlzcGxheS1tb2RlLmh0bWwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0
bWw7IHBhdGggPSAiZGlzcGxheS1tb2RlLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk2M0Y2NjgyMDFGOTdDM0FBMDAzMkVFNTEgLyogQXBwbGljYXRpb25NYW5pZmVzdC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFwcGxpY2F0aW9uTWFuaWZlc3QubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTZCMEEwN0Y2MjFGQTlDMkIwMEQ1NzM5MSAvKiBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZCMjVBNzUxMjVEQzhENEUw
MDcwNzQ0RiAvKiBFdmVudEF0dHJpYnV0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gRXZlbnRBdHRyaWJ1dGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNkIzMDYxMDUyMThBMzcyOTAwRjVBODAyIC8qIENsb3NpbmdXZWJWaWV3Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gQ2xvc2luZ1dlYlZpZXcubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTZCNEU4NjFCMjIyMEE1NTIwMDIyRjM4OSAvKiBSZWdpc3RyYWJsZURvbWFp
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWdpc3RyYWJsZURvbWFpbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCOUFCRTExMjA4Njk1MkYwMEQ3NURFNiAvKiBIVFRQUGFy
c2Vycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVFRQUGFyc2Vycy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0zMzEyLDYgKzMzMTMsNyBAQAogCQkJCUY0NjEyOEQ2MjExRTQ4
OUMwMEQ5RkFEQiAvKiBEcmFnQW5kRHJvcFRlc3RzLm1tICovLAogCQkJCUExNTUwMjI4MUUwNTAy
MEIwMEEyNEM1NyAvKiBEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxzLm1tICovLAogCQkJ
CUY0NEQwNjQ2MUYzOTVDNEQwMDFBMEUyOSAvKiBFZGl0b3JTdGF0ZVRlc3RzLm1tICovLAorCQkJ
CTZCMjVBNzUxMjVEQzhENEUwMDcwNzQ0RiAvKiBFdmVudEF0dHJpYnV0aW9uLm1tICovLAogCQkJ
CUNEQTI5QjI4MjBGRDJBOTkwMEYxNUNFRCAvKiBFeGl0RnVsbHNjcmVlbk9uRW50ZXJQaVAubW0g
Ki8sCiAJCQkJMUQxMkJFQkYyNDVCRUY4NTAwNEMwQjdBIC8qIEV4aXRQaVBPblN1c3BlbmRWaWRl
b0VsZW1lbnQubW0gKi8sCiAJCQkJMkQ4MTA0Q0IxQkVDMTNFNzAwMjBEQTQ2IC8qIEZpbmRJblBh
Z2UubW0gKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAppbmRleCA3Y2Q3NzViNGM2MDQyMGVm
YWUxZGUxNjc0MTgxZDBlOTFmOWU2MmIzLi5iNzMyNjMzNDRmZTFmNmU5ZWIwZTQyYTI2ZTcyYzRm
YjJmMzkwZjM2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKQEAgLTQ2LDExICs0NiwxMSBA
QCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZE1pblZhbHVlcykKICAgICBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpTb3VyY2VJRChtaW42Qml0VmFsdWUpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNl
U2l0ZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25T
aXRlIHsgZXhhbXBsZVVSTCB9IH07CiAgICAgYXR0cmlidXRpb24uYXR0cmlidXRlQW5kR2V0RWFy
bGllc3RUaW1lVG9TZW5kKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhKG1pbjZCaXRWYWx1ZSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KG1p
bjZCaXRWYWx1ZSkpKTsKIAotICAgIGF1dG8gYXR0cmlidXRpb25VUkwgPSBhdHRyaWJ1dGlvbi5y
ZXBvcnRVUkwoKTsKKyAgICBhdXRvIGF0dHJpYnV0aW9uVVJMID0gYXR0cmlidXRpb24uYXR0cmli
dXRpb25SZXBvcnRVUkwoKTsKICAgICAKICAgICBBU1NFUlRfRVEoYXR0cmlidXRpb25VUkwuc3Ry
aW5nKCksICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFz
dXJlbWVudC9yZXBvcnQtYXR0cmlidXRpb24vIik7CiAKLSAgICBBU1NFUlRfRVEoYXR0cmlidXRp
b24uanNvbigpLT50b0pTT05TdHJpbmcoKSwgIntcInNvdXJjZV9lbmdhZ2VtZW50X3R5cGVcIjpc
ImNsaWNrXCIsXCJzb3VyY2Vfc2l0ZVwiOlwid2Via2l0Lm9yZ1wiLFwic291cmNlX2lkXCI6MCxc
ImF0dHJpYnV0ZWRfb25fc2l0ZVwiOlwiZXhhbXBsZS5jb21cIixcInRyaWdnZXJfZGF0YVwiOjAs
XCJ2ZXJzaW9uXCI6MX0iKTsKKyAgICBBU1NFUlRfRVEoYXR0cmlidXRpb24uYXR0cmlidXRpb25S
ZXBvcnRKU09OKCktPnRvSlNPTlN0cmluZygpLCAie1wic291cmNlX2VuZ2FnZW1lbnRfdHlwZVwi
OlwiY2xpY2tcIixcInNvdXJjZV9zaXRlXCI6XCJ3ZWJraXQub3JnXCIsXCJzb3VyY2VfaWRcIjow
LFwiYXR0cmlidXRlZF9vbl9zaXRlXCI6XCJleGFtcGxlLmNvbVwiLFwidHJpZ2dlcl9kYXRhXCI6
MCxcInZlcnNpb25cIjoxfSIpOwogfQogCiBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBW
YWxpZE1pZFZhbHVlcykKQEAgLTU4LDExICs1OCwxMSBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1
cmVtZW50LCBWYWxpZE1pZFZhbHVlcykKICAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRy
aWJ1dGlvbiB7IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRCgodWludDMyX3QpMTky
KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUgeyB3ZWJLaXRVUkwgfSwgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0ZSB7IGV4YW1wbGVVUkwgfSB9Owog
ICAgIGF0dHJpYnV0aW9uLmF0dHJpYnV0ZUFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSgodWludDMyX3QpOSwgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KCh1aW50MzJfdCkyMikpKTsKIAotICAgIGF1
dG8gYXR0cmlidXRpb25VUkwgPSBhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKTsKKyAgICBhdXRvIGF0
dHJpYnV0aW9uVVJMID0gYXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRVUkwoKTsKICAgICAK
ICAgICBBU1NFUlRfRVEoYXR0cmlidXRpb25VUkwuc3RyaW5nKCksICJodHRwczovL3dlYmtpdC5v
cmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC9yZXBvcnQtYXR0cmlidXRp
b24vIik7CiAKLSAgICBBU1NFUlRfRVEoYXR0cmlidXRpb24uanNvbigpLT50b0pTT05TdHJpbmco
KSwgIntcInNvdXJjZV9lbmdhZ2VtZW50X3R5cGVcIjpcImNsaWNrXCIsXCJzb3VyY2Vfc2l0ZVwi
Olwid2Via2l0Lm9yZ1wiLFwic291cmNlX2lkXCI6MTkyLFwiYXR0cmlidXRlZF9vbl9zaXRlXCI6
XCJleGFtcGxlLmNvbVwiLFwidHJpZ2dlcl9kYXRhXCI6OSxcInZlcnNpb25cIjoxfSIpOworICAg
IEFTU0VSVF9FUShhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydEpTT04oKS0+dG9KU09OU3Ry
aW5nKCksICJ7XCJzb3VyY2VfZW5nYWdlbWVudF90eXBlXCI6XCJjbGlja1wiLFwic291cmNlX3Np
dGVcIjpcIndlYmtpdC5vcmdcIixcInNvdXJjZV9pZFwiOjE5MixcImF0dHJpYnV0ZWRfb25fc2l0
ZVwiOlwiZXhhbXBsZS5jb21cIixcInRyaWdnZXJfZGF0YVwiOjksXCJ2ZXJzaW9uXCI6MX0iKTsK
IH0KIAogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgVmFsaWRNYXhWYWx1ZXMpCkBAIC03
MCwxMSArNzAsMTEgQEAgVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgVmFsaWRNYXhWYWx1
ZXMpCiAgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6U291cmNlSUQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlE
OjpNYXhFbnRyb3B5KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUgeyB3ZWJL
aXRVUkwgfSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0ZSB7IGV4YW1w
bGVVUkwgfSB9OwogICAgIGF0dHJpYnV0aW9uLmF0dHJpYnV0ZUFuZEdldEVhcmxpZXN0VGltZVRv
U2VuZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YShQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YTo6TWF4RW50cm9weSwg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpQcmlvcml0eTo6TWF4RW50cm9weSkpKTsKIAotICAgIGF1dG8gYXR0cmlidXRpb25VUkwgPSBh
dHRyaWJ1dGlvbi5yZXBvcnRVUkwoKTsKKyAgICBhdXRvIGF0dHJpYnV0aW9uVVJMID0gYXR0cmli
dXRpb24uYXR0cmlidXRpb25SZXBvcnRVUkwoKTsKICAgICAKICAgICBBU1NFUlRfRVEoYXR0cmli
dXRpb25VUkwuc3RyaW5nKCksICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0
ZS1jbGljay1tZWFzdXJlbWVudC9yZXBvcnQtYXR0cmlidXRpb24vIik7CiAKLSAgICBBU1NFUlRf
RVEoYXR0cmlidXRpb24uanNvbigpLT50b0pTT05TdHJpbmcoKSwgIntcInNvdXJjZV9lbmdhZ2Vt
ZW50X3R5cGVcIjpcImNsaWNrXCIsXCJzb3VyY2Vfc2l0ZVwiOlwid2Via2l0Lm9yZ1wiLFwic291
cmNlX2lkXCI6MjU1LFwiYXR0cmlidXRlZF9vbl9zaXRlXCI6XCJleGFtcGxlLmNvbVwiLFwidHJp
Z2dlcl9kYXRhXCI6MTUsXCJ2ZXJzaW9uXCI6MX0iKTsKKyAgICBBU1NFUlRfRVEoYXR0cmlidXRp
b24uYXR0cmlidXRpb25SZXBvcnRKU09OKCktPnRvSlNPTlN0cmluZygpLCAie1wic291cmNlX2Vu
Z2FnZW1lbnRfdHlwZVwiOlwiY2xpY2tcIixcInNvdXJjZV9zaXRlXCI6XCJ3ZWJraXQub3JnXCIs
XCJzb3VyY2VfaWRcIjoyNTUsXCJhdHRyaWJ1dGVkX29uX3NpdGVcIjpcImV4YW1wbGUuY29tXCIs
XCJ0cmlnZ2VyX2RhdGFcIjoxNSxcInZlcnNpb25cIjoxfSIpOwogfQogCiBURVNUKFByaXZhdGVD
bGlja01lYXN1cmVtZW50LCBFYXJsaWVzdFRpbWVUb1NlbmRBdHRyaWJ1dGlvbk1pbmltdW1EZWxh
eSkKQEAgLTEzNiw3ICsxMzYsNyBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZh
bGlkU291cmNlSUQpCiAgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OlNvdXJjZUlEOjpNYXhFbnRyb3B5ICsgMSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3Vy
Y2VTaXRlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVP
blNpdGUgeyBleGFtcGxlVVJMIH0gfTsKICAgICBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGVBbmRHZXRF
YXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJp
Z2dlckRhdGEoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE6
Ok1heEVudHJvcHksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6UHJpb3JpdHk6Ok1heEVudHJvcHkpKSk7CiAKLSAgICBBU1NFUlRfVFJV
RShhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKS5pc0VtcHR5KCkpOworICAgIEFTU0VSVF9UUlVFKGF0
dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKIH0KIAogVEVTVChQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZFNvdXJjZUhvc3QpCkBAIC0xNDQsNyArMTQ0
LDcgQEAgVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZFNvdXJjZUhvc3QpCiAg
ICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6U291cmNlSUQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEOjpNYXhF
bnRyb3B5KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUgeyBlbXB0eVVSTCB9
LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlIHsgZXhhbXBsZVVSTCB9
IH07CiAgICAgYXR0cmlidXRpb24uYXR0cmlidXRlQW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhKFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhOjpNYXhFbnRyb3B5LCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHkoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9y
aXR5OjpNYXhFbnRyb3B5KSkpOwogCi0gICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24ucmVwb3J0
VVJMKCkuaXNFbXB0eSgpKTsKKyAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlv
blJlcG9ydFVSTCgpLmlzRW1wdHkoKSk7CiB9CiAKIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQsIEludmFsaWREZXN0aW5hdGlvbkhvc3QpCkBAIC0xNTIsNyArMTUyLDcgQEAgVEVTVChQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZERlc3RpbmF0aW9uSG9zdCkKICAgICBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpT
b3VyY2VJRChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQ6Ok1heEVudHJvcHkgKyAx
KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUgeyB3ZWJLaXRVUkwgfSwgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0ZSB7IGVtcHR5VVJMIH0gfTsKICAg
ICBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGVBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEoUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE6Ok1heEVudHJvcHksIFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHk6Ok1h
eEVudHJvcHkpKSk7CiAKLSAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKS5p
c0VtcHR5KCkpOworICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0
VVJMKCkuaXNFbXB0eSgpKTsKIH0KIAogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgQXR0
cmlidXRpb25UcmlnZ2VyRGF0YSkKQEAgLTE2MCw3ICsxNjAsNyBAQCBURVNUKFByaXZhdGVDbGlj
a01lYXN1cmVtZW50LCBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhKQogICAgIFByaXZhdGVDbGlja01l
YXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlE
KFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRDo6TWF4RW50cm9weSksIFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUgeyBleGFtcGxlVVJMIH0gfTsKICAgICBhdHRyaWJ1
dGlvbi5hdHRyaWJ1dGVBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEoKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpB
dHRyaWJ1dGlvblRyaWdnZXJEYXRhOjpNYXhFbnRyb3B5ICsgMSksIFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHk6Ok1heEVu
dHJvcHkpKSk7CiAKLSAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKS5pc0Vt
cHR5KCkpOworICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0VVJM
KCkuaXNFbXB0eSgpKTsKIH0KIAogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxp
ZFByaW9yaXR5KQpAQCAtMTY4LDE0ICsxNjgsMTQgQEAgVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCwgSW52YWxpZFByaW9yaXR5KQogICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJp
YnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEKFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpTb3VyY2VJRDo6TWF4RW50cm9weSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpTb3VyY2VTaXRlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRy
aWJ1dGVPblNpdGUgeyBleGFtcGxlVVJMIH0gfTsKICAgICBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGVB
bmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0
aW9uVHJpZ2dlckRhdGEoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGE6Ok1heEVudHJvcHksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHk6Ok1heEVudHJvcHkgKyAxKSkpOwogCi0gICAg
QVNTRVJUX1RSVUUoYXR0cmlidXRpb24ucmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKKyAgICBBU1NF
UlRfVFJVRShhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydFVSTCgpLmlzRW1wdHkoKSk7CiB9
CiAKIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRNaXNzaW5nQ29udmVyc2lv
bikKIHsKICAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpTb3VyY2VJRChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNl
SUQ6Ok1heEVudHJvcHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSB7IHdl
YktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlIHsgZXhh
bXBsZVVSTCB9IH07CiAKLSAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKS5p
c0VtcHR5KCkpOworICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0
VVJMKCkuaXNFbXB0eSgpKTsKICAgICBBU1NFUlRfRkFMU0UoYXR0cmlidXRpb24uZWFybGllc3RU
aW1lVG9TZW5kKCkpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KaW5kZXggY2U0ZTJkZjE2ODUzMTMy
M2FiOTcyZDc3ZDQ5MzVhOTNhOWJmMjM2Zi4uZDg1ZjdkMTMzN2JmNGFhMGM1NDNmNGY4Zjk5MmQx
ZTk4ZjA1MjkzZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpAQCAtMTA2LDcgKzEwNiw3IEBAIFRFU1Qo
RXZlbnRBdHRyaWJ1dGlvbiwgQmFzaWMpCiAgICAgd2ViVmlldy5fdWlFdmVudEF0dHJpYnV0aW9u
ID0gKFVJRXZlbnRBdHRyaWJ1dGlvbiAqKWF0dHJpYnV0aW9uOwogICAgIFt3ZWJWaWV3LmNvbmZp
Z3VyYXRpb24ud2Vic2l0ZURhdGFTdG9yZSBfc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJs
ZWQ6WUVTXTsKICAgICBbd2ViVmlldy5jb25maWd1cmF0aW9uLndlYnNpdGVEYXRhU3RvcmUgX2Fs
bG93VExTQ2VydGlmaWNhdGVDaGFpbjpAWyhpZCl0ZXN0Q2VydGlmaWNhdGUoKS5nZXQoKV0gZm9y
SG9zdDpzZXJ2ZXJVUkwuaG9zdF07Ci0gICAgW3dlYlZpZXcgX3NldFByaXZhdGVDbGlja01lYXN1
cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rpbmc6c2VydmVyVVJMIGNvbXBsZXRpb25IYW5kbGVy
Ol57CisgICAgW3dlYlZpZXcgX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25S
ZXBvcnRVUkxGb3JUZXN0aW5nOnNlcnZlclVSTCBjb21wbGV0aW9uSGFuZGxlcjpeewogICAgICAg
ICBbd2ViVmlldyBfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVz
dGluZzpZRVMgY29tcGxldGlvbkhhbmRsZXI6XnsKICAgICAgICAgICAgIE5TU3RyaW5nICpodG1s
ID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCI8c2NyaXB0PmZldGNoKCclQGNvbnZlcnNp
b25SZXF1ZXN0QmVmb3JlUmVkaXJlY3QnLHttb2RlOiduby1jb3JzJ30pPC9zY3JpcHQ+Iiwgc2Vy
dmVyVVJMXTsKICAgICAgICAgICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOmh0bWwgYmFzZVVS
TDpleGFtcGxlVVJMXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IGEwNzFlY2RkZDll
NDM0ODNmZTc3MTk2ODZjMzVhNGYzN2I4YjFiYzcuLmZiOGZjNDYyNTU1NmJiMGY1MTMyZmFiNmRm
MWY2NWNmNDA5ZmYyMDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtNDAzLDcgKzQw
Myw4IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICB1bmRlZmluZWQgc2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhib29sZWFuIHZhbHVlKTsKICAg
ICB1bmRlZmluZWQgbWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGly
ZWRGb3JUZXN0aW5nKCk7CiAgICAgdW5kZWZpbmVkIHNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1Nlc3Npb25SZXN0YXJ0KCk7Ci0gICAgdW5kZWZpbmVkIHNldFByaXZhdGVDbGlja01lYXN1
cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoRE9NU3RyaW5nIHVybCk7CisgICAgdW5kZWZp
bmVkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5n
KERPTVN0cmluZyB1cmwpOworICAgIHVuZGVmaW5lZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZyhET01TdHJpbmcgdXJsKTsKICAgICB1bmRl
ZmluZWQgbWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsK
IAogICAgIC8vIFNwZWVjaFJlY29nbml0aW9uCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCA4NjRjY2UyODU5N2E0MThk
ODlhNTM1N2RjOTIwMGNjZDAxOTRjN2Q1Li5jMDE3ZmMwZjRiM2MyZTdkZjNmMTg5ODliMDdhNjgy
ZjBjMmFjNjQ4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTIwMjUsOSArMjAyNSwxNSBAQCB2b2lkIFRlc3RSdW5u
ZXI6OnNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KCkKICAgICBw
b3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgiU2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U2Vzc2lvblJlc3RhcnQiKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKEpTU3RyaW5nUmVmIHVybFN0cmluZykK
K3ZvaWQgVGVzdFJ1bm5lcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVy
ZVVSTEZvclRlc3RpbmcoSlNTdHJpbmdSZWYgdXJsU3RyaW5nKQogewotICAgIHBvc3RTeW5jaHJv
bm91c1BhZ2VNZXNzYWdlKCJTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxG
b3JUZXN0aW5nIiwKKyAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgiU2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmciLAorICAgICAgICBhZG9w
dFdLKFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHRvV1RGU3RyaW5nKHVybFN0cmluZykudXRm
OCgpLmRhdGEoKSkpKTsKK30KKwordm9pZCBUZXN0UnVubmVyOjpzZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZyhKU1N0cmluZ1JlZiB1cmxTdHJp
bmcpCit7CisgICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoIlNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nIiwKICAgICAgICAgYWRvcHRX
SyhXS1VSTENyZWF0ZVdpdGhVVEY4Q1N0cmluZyh0b1dURlN0cmluZyh1cmxTdHJpbmcpLnV0Zjgo
KS5kYXRhKCkpKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggYmNmNzEwYjdiODU0NjlmOWJjNjkyMDQxMjgyNzE0
NmQyM2IzYmM5Ny4uMmQzODA1YzA2ZmRhOGYyNDk5ODgxNWMxMTlmYjBmZWRhYzM3ZDA2ZCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmgKQEAgLTUxMiw3ICs1MTIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhclByaXZhdGVDbGlj
a01lYXN1cmVtZW50KCk7CiAgICAgdm9pZCBjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50c1Ro
cm91Z2hXZWJzaXRlRGF0YVJlbW92YWwoKTsKICAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1
cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1ZSk7Ci0gICAgdm9pZCBzZXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKEpTU3RyaW5nUmVm
KTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxG
b3JUZXN0aW5nKEpTU3RyaW5nUmVmKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKEpTU3RyaW5nUmVmKTsKICAgICB2b2lk
IG1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CiAgICAg
dm9pZCBtYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRl
c3RpbmcoKTsKICAgICB2b2lkIHNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25S
ZXN0YXJ0KCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4
IGIzZjNiOTMzZDlkYWYwMDZlMGZmODczMjQ0ZTc1YTkzNmY3MjI4ZDguLjUxNmJkOWM2ZDQ5ODZl
ZGY3YTk1NjBlNDIyNzljYjNhNWUwODZmMzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwCkBAIC0zNjMwLDEwICszNjMwLDE3IEBAIHZvaWQgVGVzdENvbnRyb2xs
ZXI6OnNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KCkKICAgICBy
dW5VbnRpbChjYWxsYmFja0NvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKIH0KIAotdm9pZCBUZXN0
Q29udHJvbGxlcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVz
dGluZyhXS1VSTFJlZiB1cmwpCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyhXS1VSTFJlZiB1cmwpCiB7CiAg
ICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2tDb250ZXh0IGNhbGxiYWNrQ29u
dGV4dCgqdGhpcyk7Ci0gICAgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJz
aW9uVVJMRm9yVGVzdGluZyhtX21haW5XZWJWaWV3LT5wYWdlKCksIHVybCwgcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2ssICZjYWxsYmFja0NvbnRleHQpOworICAgIFdLUGFnZVNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKG1fbWFp
bldlYlZpZXctPnBhZ2UoKSwgdXJsLCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZvaWRDYWxsYmFj
aywgJmNhbGxiYWNrQ29udGV4dCk7CisgICAgcnVuVW50aWwoY2FsbGJhY2tDb250ZXh0LmRvbmUs
IG5vVGltZW91dCk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKFdLVVJMUmVmIHVybCkKK3sK
KyAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZvaWRDYWxsYmFja0NvbnRleHQgY2FsbGJhY2tD
b250ZXh0KCp0aGlzKTsKKyAgICBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJp
YnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZyhtX21haW5XZWJWaWV3LT5wYWdlKCksIHVybCwgcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2ssICZjYWxsYmFja0NvbnRleHQpOwogICAg
IHJ1blVudGlsKGNhbGxiYWNrQ29udGV4dC5kb25lLCBub1RpbWVvdXQpOwogfQogCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggODE4YzJiNGVjNGE1NjJiYzA2N2E0
ZjNkNWNlYmJjZGJkMDVjMDQ3Yy4uOTFlZjlkNTlmNzBiYjMyM2U1MzQ3Y2Y3ZTM1ZmY0NTk0MWU3
M2JjMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5o
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMzQ2LDcg
KzM0Niw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3Zl
cnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1ZSk7CiAgICAgdm9pZCBtYXJrQXR0cmlidXRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKICAgICB2b2lk
IHNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KCk7Ci0gICAgdm9p
ZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdLVVJM
UmVmKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVV
UkxGb3JUZXN0aW5nKFdLVVJMUmVmKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKFdLVVJMUmVmKTsKICAgICB2b2lkIG1h
cmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CiAKICAgICB2
b2lkIGRpZFNldEFwcEJvdW5kRG9tYWlucygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCA1NTAzNTVjN2I4Yjk4NDg0YTdkMjhjZjU1OTVmNjM4
NzUxN2JmNGJhLi4wZjA5MjI3MzgzZTVlZjIyZDJjYjQ4NDNhOGZhNDM0NjAyNmI0MTBhIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMTMzOCwxMCArMTMz
OCwxNiBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZl
U3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgICAgICBUZXN0Q29udHJvbGxlcjo6
c2luZ2xldG9uKCkuc2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJlc3RhcnQo
KTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQotICAgIAotICAgIGlmIChXS1N0cmlu
Z0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyIpKSB7CisKKyAgICBpZiAoV0tTdHJpbmdJc0Vx
dWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nIikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlw
ZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS1VSTEdldFR5cGVJRCgpKTsKKyAgICAgICAgVGVzdENvbnRy
b2xsZXI6OnNpbmdsZXRvbigpLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1
cmVVUkxGb3JUZXN0aW5nKHN0YXRpY19jYXN0PFdLVVJMUmVmPihtZXNzYWdlQm9keSkpOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9V
VEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmli
dXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nIikpIHsKICAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlE
KG1lc3NhZ2VCb2R5KSA9PSBXS1VSTEdldFR5cGVJRCgpKTsKLSAgICAgICAgVGVzdENvbnRyb2xs
ZXI6OnNpbmdsZXRvbigpLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZv
clRlc3Rpbmcoc3RhdGljX2Nhc3Q8V0tVUkxSZWY+KG1lc3NhZ2VCb2R5KSk7CisgICAgICAgIFRl
c3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJp
YnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZyhzdGF0aWNfY2FzdDxXS1VSTFJlZj4obWVzc2FnZUJv
ZHkpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDhjOGI3MDUx
YWI4NjYyZWYyNGJmOWRkZmJlOTliNzQ0OTYzNTAxNS4uZjAxN2NkZTJjNzVmNzQ0NDcxOGRjMjQz
NmYzOGVmYWZhZDQxM2Q5NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTAyLTE3ICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBDTTogUmVxdWVzdCBz
aWduYXR1cmUgZm9yIHVubGlua2FibGUgdG9rZW4gdXNpbmcgYXR0cmlidXRpb25Tb3VyY2VOb25j
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMDc2
CisgICAgICAgIDxyZGFyOi8vNzM1ODE2NTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbDoKKyAgICAgICAg
ICAgIEFkb3B0aW9uIG9mIHJlbmFtZWQgVGVzdFJ1bm5lciBmdW5jdGlvbiBzZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZygpLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvZXhwaXJlZC1hdHRyaWJ1dGlvbi1y
ZXBvcnQtZ2V0cy1zZW50LW9uLXNlc3Npb24tc3RhcnQuaHRtbDoKKyAgICAgICAgICAgIEFkb3B0
aW9uIG9mIHJlbmFtZWQgVGVzdFJ1bm5lciBmdW5jdGlvbiBzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZygpLgorICAgICAgICAqIGh0dHAvdGVz
dHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2dldENvbnZlcnNpb25EYXRhLnBo
cDoKKyAgICAgICAgICAgIEFkb3B0aW9uIG9mIHJlbmFtZWQgVGVzdFJ1bm5lciBmdW5jdGlvbiBz
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZygp
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2Vz
L2dldFRva2VuU2lnbmluZ0RhdGEucGhwOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9zaWduVG9rZW4ucGhwOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy90b2tl
blNpZ25pbmdGaWxlUGF0aC5waHA6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3V0aWwuanM6CisgICAgICAgICh0ZWFyRG93bkFu
ZEZpbmlzaCk6CisgICAgICAgICAgICBBZG9wdGlvbiBvZiByZW5hbWVkIFRlc3RSdW5uZXIgZnVu
Y3Rpb24gc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRl
c3RpbmcoKS4KKyAgICAgICAgICAgIE5vdyBhbHNvIGNhbGxzIHNldFByaXZhdGVDbGlja01lYXN1
cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKCkuCisgICAgICAgICogaHR0cC90ZXN0
cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVx
dWVzdC5odG1sOgorICAgICAgICAgICAgQWRvcHRpb24gb2YgcmVuYW1lZCBUZXN0UnVubmVyIGZ1
bmN0aW9uIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JU
ZXN0aW5nKCkuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9z
dG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LXdpdGgtc291cmNlLW5vbmNlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9zdG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LXdpdGgtc291cmNlLW5vbmNlLmh0bWw6
IEFkZGVkLgorCiAyMDIxLTAyLTE3ICBSb2JlcnQgSmVubmVyICA8amVubmVyQGFwcGxlLmNvbT4K
IAogICAgICAgICBSRUdSRVNTSU9OIChyMjcyODQyKTogWyBCaWdTdXIgV2syIF0gaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2Utc2Vla2FibGUu
aHRtbCBpcyBhIGZsYWtleSB0ZXh0IGZhaWx1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29udmVyc2lvbi1kaXNhYmxlZC1pbi1l
cGhlbWVyYWwtc2Vzc2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9jb252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0
bWwKaW5kZXggMDFmMDAyZTBmZmZiMTkxMmI2NmU2ZmJlMWJlNjE3NTY5YTdlMWRhMS4uYzg1MDdh
MmU5NGI5MjQ2ODA3ODY1MDkwYWEwNjM3MDUzZDM4NTVjMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb252ZXJzaW9uLWRpc2FibGVk
LWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1z
ZXNzaW9uLmh0bWwKQEAgLTE4LDcgKzE4LDcgQEAKICAgICBwcmVwYXJlVGVzdCgpOwogCiAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5waHA/
bm9uY2U9IiArIG5vbmNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZygiaHR0cDovLzEyNy4wLjAuMTo4
MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0LnBo
cD9ub25jZT0iICsgbm9uY2UpOwogCiAgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1l
bnRJRCkgewogICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVs
ZW1lbnRJRCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L2V4cGlyZWQtYXR0cmlidXRpb24tcmVwb3J0LWdldHMtc2VudC1vbi1zZXNz
aW9uLXN0YXJ0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L2V4cGlyZWQtYXR0cmlidXRpb24tcmVwb3J0LWdldHMtc2VudC1vbi1zZXNzaW9uLXN0
YXJ0Lmh0bWwKaW5kZXggZTE4MzY2ZDNkOTEwYWQzZTE1YjkxNzU4ZGE3YmIzYzNjZGIyYTc2ZC4u
YTQ5ZjM4ZDdkZTMyOTY3ZDU3NDQ3ODFhMzhiOGUzY2ViZTY2YjU2MyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWF0dHJp
YnV0aW9uLXJlcG9ydC1nZXRzLXNlbnQtb24tc2Vzc2lvbi1zdGFydC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvZXhwaXJlZC1hdHRyaWJ1
dGlvbi1yZXBvcnQtZ2V0cy1zZW50LW9uLXNlc3Npb24tc3RhcnQuaHRtbApAQCAtMTgsNyArMTgs
NyBAQAogICAgIHByZXBhcmVUZXN0KCk7CiAKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
LSAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25V
UkxGb3JUZXN0aW5nKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhwP25vbmNlPSIgKyBub25jZSk7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9y
dFVSTEZvclRlc3RpbmcoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5waHA/bm9uY2U9IiArIG5vbmNlKTsKICAg
ICB9CiAKICAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291
cmNlcy9nZXRDb252ZXJzaW9uRGF0YS5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9nZXRDb252ZXJzaW9uRGF0YS5waHAKaW5kZXgg
YTliZDNkZmQ2YmJjMGQwZjMzNmU5ZGFlZThjMDBiOTU1YTAzZGVkOC4uMDM4ODhhZmI5MzE4MWZj
OGNmODM4NGEzYzA3Yzg2NGRlNTRmYjVlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvZ2V0Q29udmVyc2lvbkRhdGEu
cGhwCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
cmVzb3VyY2VzL2dldENvbnZlcnNpb25EYXRhLnBocApAQCAtNDUsNyArNDUsNyBAQCBpZiAoaXNz
ZXQoJF9HRVRbJ2VuZFRlc3QnXSkpIHsKICAgICBlY2hvICJpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsiOwogICAgIGVjaG8gIiAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsiOwogICAgIGVjaG8g
IiAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZv
clRlc3RpbmcoZmFsc2UpOyI7Ci0gICAgZWNobyAiICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZygnJyk7IjsKKyAgICBlY2hvICIg
ICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0
VVJMRm9yVGVzdGluZygnJyk7IjsKICAgICBlY2hvICJ9IjsKICAgICBlY2hvICI8L3NjcmlwdD4i
OwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9yZXNvdXJjZXMvZ2V0VG9rZW5TaWduaW5nRGF0YS5waHAgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9nZXRUb2tlblNpZ25p
bmdEYXRhLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWNlZWYyNTA5MTZhODg1Y2U3ZTNhYTVlYzVhZjM3NzRj
NWMxZTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvZ2V0VG9rZW5TaWduaW5nRGF0YS5waHAKQEAgLTAs
MCArMSw1NCBAQAorPD9waHAKK3JlcXVpcmVfb25jZSAndG9rZW5TaWduaW5nRmlsZVBhdGgucGhw
JzsKKworJG5vVGltZW91dCA9IFRydWU7CiskdGltZW91dE1zZWNzID0gMDsKK2lmIChpc3NldCgk
X0dFVFsndGltZW91dF9tcyddKSkgeworICAgICRub1RpbWVvdXQgPSBGYWxzZTsKKyAgICAkdGlt
ZW91dE1zZWNzID0gKGludCkgJF9HRVRbJ3RpbWVvdXRfbXMnXTsKK30KKworJHRva2VuU2lnbmlu
Z0ZpbGVGb3VuZCA9IEZhbHNlOword2hpbGUgKCRub1RpbWVvdXQgfHwgJHRpbWVvdXRNc2VjcyA+
IDApIHsKKyAgICBpZiAoZmlsZV9leGlzdHMoJHRva2VuU2lnbmluZ0ZpbGVQYXRoKSkgeworICAg
ICAgICAkdG9rZW5TaWduaW5nRmlsZUZvdW5kID0gVHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorICAgICRzbGVlcE1zZWNzID0gMTA7CisgICAgdXNsZWVwKCRzbGVlcE1zZWNzICogMTAwMCk7
CisgICAgaWYgKCEkbm9UaW1lb3V0KSB7CisgICAgICAgICR0aW1lb3V0TXNlY3MgLT0gJHNsZWVw
TXNlY3M7CisgICAgfQorICAgIC8vIGZpbGVfZXhpc3RzKCkgY2FjaGVzIHJlc3VsdHMsIHdlIHdh
bnQgdG8gaW52YWxpZGF0ZSB0aGUgY2FjaGUuCisgICAgY2xlYXJzdGF0Y2FjaGUoKTsKK30KKwor
CitlY2hvICI8aHRtbD48Ym9keT5cbiI7CisKK2lmICgkdG9rZW5TaWduaW5nRmlsZUZvdW5kKSB7
CisgICAgZWNobyAiVG9rZW4gc2lnbmluZyByZXF1ZXN0IHJlY2VpdmVkLiI7CisgICAgJHRva2Vu
U2lnbmluZ0ZpbGUgPSBmb3BlbigkdG9rZW5TaWduaW5nRmlsZVBhdGgsICdyJyk7CisgICAgd2hp
bGUgKCRsaW5lID0gZmdldHMoJHRva2VuU2lnbmluZ0ZpbGUpKSB7CisgICAgICAgIGVjaG8gIjxi
cj4iOworICAgICAgICBlY2hvIHRyaW0oJGxpbmUpOworICAgIH0KKyAgICBlY2hvICI8YnI+IjsK
KyAgICBmY2xvc2UoJHRva2VuU2lnbmluZ0ZpbGUpOworICAgIHVubGluaygkdG9rZW5TaWduaW5n
RmlsZVBhdGgpOworfSBlbHNlIHsKKyAgICBlY2hvICJUb2tlbiBzaWduaW5nIHJlcXVlc3Qgbm90
IHJlY2VpdmVkIC0gdGltZWQgb3V0Ljxicj4iOworfQorCitpZiAoaXNzZXQoJF9HRVRbJ2VuZFRl
c3QnXSkpIHsKKyAgICBlY2hvICI8c2NyaXB0PiI7CisgICAgZWNobyAiaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7IjsKKyAgICBlY2hvICIgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGZhbHNlKTsiOworICAgIGVjaG8gIiAgICB0
ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JU
ZXN0aW5nKCcnKTsiOworICAgIGVjaG8gIiAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsiOwor
ICAgIGVjaG8gIn0iOworICAgIGVjaG8gIjwvc2NyaXB0PiI7Cit9CisKK2VjaG8gIjwvYm9keT48
L2h0bWw+IjsKKz8+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVD
bGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9zaWduVG9rZW4ucGhwIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvc2lnblRva2VuLnBocApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41MTRlYWIyZGQ2YjM1M2RiYjhhMDgyM2ViNDJkYzRiNWVhNWUwYjU5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9yZXNvdXJjZXMvc2lnblRva2VuLnBocApAQCAtMCwwICsxLDQ0IEBACis8P3BocAorcmVx
dWlyZV9vbmNlICJ0b2tlblNpZ25pbmdGaWxlUGF0aC5waHAiOworCiskdG9rZW5TaWduaW5nRmls
ZSA9IGZvcGVuKCR0b2tlblNpZ25pbmdGaWxlUGF0aCAuICIudG1wIiwgJ3cnKTsKKyRodHRwSGVh
ZGVycyA9ICRfU0VSVkVSOworJGNvb2tpZXNGb3VuZCA9IGZhbHNlOworCitpZiAoJHZhbHVlID0g
JGh0dHBIZWFkZXJzWyJIVFRQX0hPU1QiXSkgeworICAgIGZ3cml0ZSgkdG9rZW5TaWduaW5nRmls
ZSwgIkhUVFBfSE9TVDogJHZhbHVlXG4iKTsKK30KKworaWYgKCR2YWx1ZSA9ICRodHRwSGVhZGVy
c1siSFRUUF9DT09LSUUiXSkgeworICAgIGZ3cml0ZSgkdG9rZW5TaWduaW5nRmlsZSwgIkNvb2tp
ZXMgaW4gdG9rZW4gc2lnbmluZyByZXF1ZXN0OiAkdmFsdWVcbiIpOworICAgICRjb29raWVzRm91
bmQgPSB0cnVlOworfQorCitpZiAoJHZhbHVlID0gJGh0dHBIZWFkZXJzWyJDT05URU5UX1RZUEUi
XSkgeworICAgIGZ3cml0ZSgkdG9rZW5TaWduaW5nRmlsZSwgIkNvbnRlbnQgdHlwZTogJHZhbHVl
XG4iKTsKK30KKworaWYgKCR2YWx1ZSA9ICRodHRwSGVhZGVyc1siUkVRVUVTVF9VUkkiXSkgewor
ICAgICR2YWx1ZSA9ICRodHRwSGVhZGVyc1siUkVRVUVTVF9VUkkiXTsKKyAgICAkcG9zaXRpb25P
ZkR1bW15ID0gc3RycG9zKCR2YWx1ZSwgIj9kdW1teT0iKTsKKyAgICBpZiAoJHBvc2l0aW9uT2ZE
dW1teSA9PT0gZmFsc2UpCisgICAgICAgICRvdXRwdXRVUkwgPSAkdmFsdWU7CisgICAgZWxzZQor
ICAgICAgICAkb3V0cHV0VVJMID0gc3Vic3RyKCR2YWx1ZSwgMCwgJHBvc2l0aW9uT2ZEdW1teSk7
CisgICAgZndyaXRlKCR0b2tlblNpZ25pbmdGaWxlLCAiUkVRVUVTVF9VUkk6ICRvdXRwdXRVUkxc
biIpOworfQorCitpZiAoISRjb29raWVzRm91bmQpIHsKKyAgICBmd3JpdGUoJHRva2VuU2lnbmlu
Z0ZpbGUsICJObyBjb29raWVzIGluIHRva2VuIHNpZ25pbmcgcmVxdWVzdC5cbiIpOworfQorCisk
cmVxdWVzdEJvZHkgPSBmaWxlX2dldF9jb250ZW50cygicGhwOi8vaW5wdXQiKTsKK2Z3cml0ZSgk
dG9rZW5TaWduaW5nRmlsZSwgIlJlcXVlc3QgYm9keTpcbiRyZXF1ZXN0Qm9keVxuIik7CisKK2Zj
bG9zZSgkdG9rZW5TaWduaW5nRmlsZSk7CityZW5hbWUoJHRva2VuU2lnbmluZ0ZpbGVQYXRoIC4g
Ii50bXAiLCAkdG9rZW5TaWduaW5nRmlsZVBhdGgpOworCitoZWFkZXIoIkhUVFAvMS4xIDIwMSBD
cmVhdGVkIik7CitzZXRjb29raWUoImNvb2tpZVNldEluVG9rZW5TaWduaW5nUmVzcG9uc2UiLCAi
MSIsIDAsICIvIik7CisKKz8+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy90b2tlblNpZ25pbmdGaWxlUGF0aC5waHAg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNl
cy90b2tlblNpZ25pbmdGaWxlUGF0aC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzJmNTlkYTFlOWVlNDIxNmFi
NDA5M2FhZWEyNzhjMGNmNTJlYTRmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3Rva2VuU2lnbmluZ0Zp
bGVQYXRoLnBocApAQCAtMCwwICsxLDkgQEAKKzw/cGhwCityZXF1aXJlX29uY2UgJy4uLy4uL3Jl
c291cmNlcy9wb3J0YWJpbGl0eUxheWVyLnBocCc7CisKK2lmIChpc3NldCgkX0dFVFsiZHVtbXki
XSkpCisgICAgJHRva2VuU2lnbmluZ0ZpbGVOYW1lID0gIi9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFRva2VuU2lnbmluZ1JlcXVlc3QiIC4gJF9HRVRbImR1bW15Il0gLiAiLnR4dCI7CitlbHNlCisg
ICAgJHRva2VuU2lnbmluZ0ZpbGVOYW1lID0gIi9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2Vu
U2lnbmluZ1JlcXVlc3QudHh0IjsKKyR0b2tlblNpZ25pbmdGaWxlUGF0aCA9IHN5c19nZXRfdGVt
cF9kaXIoKSAuICR0b2tlblNpZ25pbmdGaWxlTmFtZTsKKz8+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy91dGlsLmpz
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJj
ZXMvdXRpbC5qcwppbmRleCA1N2IzMzZhOTk5N2Y3ZWE5ZjJkYmFlZThjY2E2NjFjOTRhZGQyMTc2
Li44YmI2NmI0ZDJjODU5MDcwYjNhNGViNzk1NjRmYmJiMGRmNGQ4ZjhkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy91
dGlsLmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvcmVzb3VyY2VzL3V0aWwuanMKQEAgLTExLDcgKzExLDggQEAgZnVuY3Rpb24gdGVhckRvd25B
bmRGaW5pc2goKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHRlc3RS
dW5uZXIuc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoZmFsc2UpOwogICAgICAgICB0ZXN0UnVu
bmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoZmFs
c2UpOwotICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVy
c2lvblVSTEZvclRlc3RpbmcoIiIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKCIiKTsKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9y
VGVzdGluZygiIik7CiAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgIH0KIH0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2VuZC1hdHRyaWJ1dGlvbi1jb252
ZXJzaW9uLXJlcXVlc3QuaHRtbAppbmRleCBhZDhkODhjYzlkNjE5ZjI5MzA4MjBlNTYwYTM1NTFj
MDZiNjRmMzdjLi4zYWQ4ZThiYTBiYmNlZjAzZjI0ZWFlOTk1M2UwMjA2YWVkYmEyMjQ1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Nl
bmQtYXR0cmlidXRpb24tY29udmVyc2lvbi1yZXF1ZXN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZl
cnNpb24tcmVxdWVzdC5odG1sCkBAIC0xOSw3ICsxOSw3IEBACiAKICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKICAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKHRydWUpOwotICAgICAgICB0ZXN0UnVubmVyLnNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJl
cG9ydC5waHA/bm9uY2U9IiArIG5vbmNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZygiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9zaWduVG9rZW4u
cGhwP25vbmNlPSIgKyBub25jZSk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVt
ZW50KGVsZW1lbnRJRCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LXdpdGgt
c291cmNlLW5vbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUtcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC13aXRoLXNv
dXJjZS1ub25jZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTJkYjI0NDkzMzYwOWM3ZWRlMzI2
ZGFmZjM3ZWYwYjAzMTFkMjNiMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUtcHJpdmF0ZS1jbGljay1tZWFzdXJl
bWVudC13aXRoLXNvdXJjZS1ub25jZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMSBAQAorVGVz
dHMgdGhhdCB0aGUgcHJlc2VuY2Ugb2YgYSBzb3VyY2Ugbm9uY2UgdHJpZ2dlcnMgYSB0b2tlbiBz
aWduaW5nIHJlcXVlc3QuCisKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+Jwor
LS0tLS0tLS0KK1Rva2VuIHNpZ25pbmcgcmVxdWVzdCByZWNlaXZlZC4KK0hUVFBfSE9TVDogMTI3
LjAuMC4xOjgwMDAKK0NvbnRlbnQgdHlwZTogYXBwbGljYXRpb24vanNvbgorUkVRVUVTVF9VUkk6
IC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvc2lnblRva2VuLnBocAorTm8gY29v
a2llcyBpbiB0b2tlbiBzaWduaW5nIHJlcXVlc3QuCitSZXF1ZXN0IGJvZHk6Cit7InNvdXJjZV9l
bmdhZ2VtZW50X3R5cGUiOiJjbGljayIsInNvdXJjZV9ub25jZSI6IkFCQ0RFRmFiY2RlZjAxMjM0
NTY3ODkiLCJ1bmxpbmthYmxlX3Rva2VuIjoiVE9ETyIsInZlcnNpb24iOjJ9CisKK1VuYXR0cmli
dXRlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50czoKK1dlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50IDEKK1NvdXJjZSBzaXRlOiAxMjcuMC4wLjEKK0F0dHJpYnV0ZSBvbiBzaXRlOiBs
b2NhbGhvc3QKK1NvdXJjZSBJRDogMworTm8gYXR0cmlidXRpb24gdHJpZ2dlciBkYXRhLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9z
dG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LXdpdGgtc291cmNlLW5vbmNlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXByaXZh
dGUtY2xpY2stbWVhc3VyZW1lbnQtd2l0aC1zb3VyY2Utbm9uY2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
YzcwNjU2NDEzNDg2NDBhNGM4NDlhOTc5MDhiZDM3ZjZkZGRlZDkwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9yZS1w
cml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LXdpdGgtc291cmNlLW5vbmNlLmh0bWwKQEAgLTAsMCAr
MSw2NiBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxl
eGlibGVWaWV3cG9ydD10cnVlIFByaXZhdGVDbGlja01lYXN1cmVtZW50RnJhdWRQcmV2ZW50aW9u
RW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBj
aGFyc2V0PSJVVEYtOCI+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRo
PWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KKyAgICA8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Cis8ZGl2IGlkPSJkZXNjcmlwdGlv
biI+VGVzdHMgdGhhdCB0aGUgcHJlc2VuY2Ugb2YgYSBzb3VyY2Ugbm9uY2UgdHJpZ2dlcnMgYSB0
b2tlbiBzaWduaW5nIHJlcXVlc3QuPC9kaXY+Cis8YSBpZD0idGFyZ2V0TGluayIgYXR0cmlidXRp
b25zb3VyY2VpZD0iMyIgYXR0cmlidXRlb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIgYXR0cmli
dXRpb25zb3VyY2Vub25jZT0iQUJDREVGYWJjZGVmMDEyMzQ1Njc4OSI+TGluazwvYT48YnI+Cis8
ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBpZiAoIXdpbmRvdy5sb2NhdGlv
bi5zZWFyY2gpCisgICAgICAgIHByZXBhcmVUZXN0KCk7CisKKyAgICBmdW5jdGlvbiBhY3RpdmF0
ZUVsZW1lbnQoZWxlbWVudElEKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9m
ZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkg
PSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAg
VUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAg
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJU
ZXh0ID0gIkZBSUwgUHJvbWlzZSByZWplY3RlZC4iOworICAgICAgICAgICAgICAgIHRlYXJEb3du
QW5kRmluaXNoKCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gYXBwZW5kSWZyYW1lKHVybCwgb25sb2FkQ2FsbGJhY2spIHsKKyAgICAgICAgbGV0IGlm
cmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAg
aWZyYW1lRWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAgIGlmIChvbmxvYWRDYWxsYmFjaykKKyAg
ICAgICAgICAgIGlmcmFtZUVsZW1lbnQub25sb2FkID0gb25sb2FkQ2FsbGJhY2s7CisgICAgICAg
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gYXBwZW5kVG9rZW5TaWduYXR1cmVJZnJhbWVBbmRGaW5pc2goZHVtbXkpIHsKKyAg
ICAgICAgYXBwZW5kSWZyYW1lKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvcmVzb3VyY2VzL2dldFRva2VuU2lnbmluZ0RhdGEucGhwP3RpbWVvdXRfbXM9NDAw
MCZkdW1teT0iICsgZHVtbXksIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5k
dW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHku
cmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAg
ICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgICAgIGlmICghd2luZG93LmxvY2F0aW9uLnNlYXJjaCkgeworICAgICAgICAgICAgICAg
IGNvbnN0IGN1cnJlbnRUaW1lTWlsbGlzID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTsKKyAgICAg
ICAgICAgICAgICBjb25zdCBoaWdoRW50cm9weUJpdHMgPSBjdXJyZW50VGltZU1pbGxpcyAtIChN
YXRoLmZsb29yKGN1cnJlbnRUaW1lTWlsbGlzIC8gMTAwMDAwMCkgKiAxMDAwMDAwKTsKKyAgICAg
ICAgICAgICAgICBjb25zdCBkdW1teSA9IGhpZ2hFbnRyb3B5Qml0cyArICIiICsgTWF0aC5mbG9v
cihNYXRoLnJhbmRvbSgpICogMTAwKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKCJodHRwOi8v
MTI3LjAuMC4xOjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3NpZ25Ub2tl
bi5waHA/ZHVtbXk9IiArIGR1bW15KTsKKyAgICAgICAgICAgICAgICB0YXJnZXRMaW5rLmhyZWYg
PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXBy
aXZhdGUtY2xpY2stbWVhc3VyZW1lbnQtd2l0aC1zb3VyY2Utbm9uY2UuaHRtbD9kdW1teT0iICsg
ZHVtbXk7CisgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7Cisg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxldCBwYXJhbXMgPSBuZXcgVVJM
U2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpOworICAgICAgICAgICAgICAgIGFw
cGVuZFRva2VuU2lnbmF0dXJlSWZyYW1lQW5kRmluaXNoKHBhcmFtcy5nZXQoImR1bW15IikpOwor
ICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsK
KyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420781</attachid>
            <date>2021-02-17 18:50:06 -0800</date>
            <delta_ts>2021-02-17 22:25:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222076-20210217185005.patch</filename>
            <type>text/plain</type>
            <size>74280</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTdjNTQ4MmI0ZjIzNjIw
NWU4ODM3NTdhMWQyNjM2ZDI2YmIyY2RmNi4uOTJiYjY3MGM0MzExYTAyYjk1YTQ2MjNiZDUzY2I3
NGFkNDc3NGEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTAyLTE3ICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBDTTogUmVxdWVzdCBz
aWduYXR1cmUgZm9yIHVubGlua2FibGUgdG9rZW4gdXNpbmcgYXR0cmlidXRpb25Tb3VyY2VOb25j
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMDc2
CisgICAgICAgIDxyZGFyOi8vNzM1ODE2NTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMg
RHVtZXouCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9zdG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LXdpdGgtc291cmNlLW5vbmNlLmh0bWwK
KworICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmhhbmRsZUNsaWNrKToKKyAgICAgICAgICAgIEFkb3B0aW9u
IG9mIHJlbmFtZWQgZnVuY3Rpb24gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0dHJpYnV0aW9u
UmVwb3J0VVJMKCkuCisgICAgICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Ojp0b2tlblNpZ25h
dHVyZVVSTCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6dG9rZW5TaWduYXR1cmVKU09OIGNvbnN0KToKKyAgICAgICAgICAgIE5ldyBmdW5jdGlvbnMg
dG8gZmFjaWxpdGF0ZSB0aGUgcmVxdWVzdCBmb3IgYSB0b2tlbiBzaWduYXR1cmUuCisgICAgICAg
IChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6YXR0cmlidXRpb25SZXBvcnRVUkwg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0dHJp
YnV0aW9uUmVwb3J0SlNPTiBjb25zdCk6CisgICAgICAgICAgICBSZW5hbWVkIGZ1bmN0aW9ucyB0
byBtYWtlIHRoZW0gZGlzdGluY3QgZnJvbSB0aGVpciB0b2tlbiBzaWduaW5nIHBlZXJzLgorICAg
ICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnJlcG9ydFVSTCBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6anNv
biBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpkZWNv
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJh
bFNvdXJjZU5vbmNlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlOjpkZWNvZGUpOgorICAgICAgICAg
ICAgRW5jb2RlIGFuZCBkZWNvZGUgdG8gZmFjaWxpdGF0ZSB0cmFuc2ZlciBvdmVyIElQQy4KKwog
MjAyMS0wMi0xNyAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAg
W2lPU10gdXBkYXRlIG1lZGlhIGNvbnRyb2xzIHRvIHVzZSBuZXcgU0YgU3ltYm9scwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCBjYTdjMzU4NzlhYWFlZDJmZjVmYmZmNjE3MjYzNDMwNjY2NGJmODFlLi4zOGY3YTE5Mzhm
NDY3MjQwZTY1MTYyYWJmNjUyMmUyNjMzOTQ2ZDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBA
CisyMDIxLTAyLTE3ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAg
ICAgIFBDTTogUmVxdWVzdCBzaWduYXR1cmUgZm9yIHVubGlua2FibGUgdG9rZW4gdXNpbmcgYXR0
cmlidXRpb25Tb3VyY2VOb25jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjIyMDc2CisgICAgICAgIDxyZGFyOi8vNzM1ODE2NTE+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgVGhpcyBwYXRjaCBtYWtlcyBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnN0b3JlVW5hdHRyaWJ1dGVkKCkgbG9vaworICAg
ICAgICBmb3IgaW5jb21pbmcgc291cmNlIG5vbmNlcyBhbmQgaWYgZm91bmQsIGNhbGwgdGhlIG5l
dyBmdW5jdGlvbgorICAgICAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmdldFNp
Z25lZFVubGlua2FibGVUb2tlbigpLgorCisgICAgICAgIEEgbmV3IHN0YXRpYyBmdW5jdGlvbiBn
ZW5lcmF0ZU5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKCkgd2FzIGFkZGVkCisgICAgICAg
IHRvIHJldXNlIGNvZGUgYmV0d2VlbiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6Omdl
dFNpZ25lZFVubGlua2FibGVUb2tlbigpCisgICAgICAgIGFuZCB0aGUgZXhpc3RpbmcgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlQ29udmVyc2lvblJlcXVlc3QoKS4KKworICAg
ICAgICBUbyBlbmFibGVkIHRlc3RpbmcsIHRoZXJlIGlzIGEgbmV3IGZ1bmN0aW9uIGNhbGxlZAor
ICAgICAgICBOZXR3b3JrU2Vzc2lvbjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNp
Z25hdHVyZVVSTEZvclRlc3RpbmcoKSBhbmQKKyAgICAgICAgZnVuY3Rpb24gc2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZygpIHdhcyByZW5hbWVkCisgICAg
ICAgIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0
aW5nKCkgaW4gTmV0d29ya1Byb2Nlc3MsCisgICAgICAgIE5ldHdvcmtTZXNzaW9uLCBXS1BhZ2VQ
cml2YXRlLCBXS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZywgYW5kCisgICAgICAgIFByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlciB0byBhbGlnbiB3aXRoIHRoZSBuYW1pbmcgdXNlZCBpbiBv
dGhlciBwbGFjZXMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0
VVJMRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Np
b246OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5n
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OnNldFByaXZhdGVDbGlja01lYXN1
cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Nlc3Npb246OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZv
clRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyOjpzdG9yZVVuYXR0cmlidXRlZCk6CisgICAgICAgIChXZWJLaXQ6OmdlbmVyYXRlTmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXI6OmdldFNpZ25lZFVubGlua2FibGVUb2tlbik6CisgICAgICAgIChX
ZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6ZmlyZUNvbnZlcnNpb25SZXF1
ZXN0KToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpz
ZXRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnNldEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGlu
Zyk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c2V0
Q29udmVyc2lvblVSTEZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcpOgorICAgICAgICAoV0tQYWdlU2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcpOgorICAg
ICAgICAoV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVz
dGluZyk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0
aW5nLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1t
OgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmli
dXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAo
LVtXS1dlYlZpZXcgX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRl
c3Rpbmc6Y29tcGxldGlvbkhhbmRsZXI6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmli
dXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisKIDIwMjEtMDItMTcg
IFRydWl0dCBTYXZlbGwgIDx0c2F2ZWxsQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
LCByZXZlcnRpbmcgcjI3MjkwNS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEFuY2hvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5jcHAKaW5kZXggZWMzZDkwYmVjMjlkMzM4N2ViYzhiMjNhZGM2MmFmYmM3MzMyOGQ1NC4uMDFi
YjFkMTdkNTJmOWNmZWVhOGMwMWJlOTBkMzM2ODc1NjllZDJhZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTUyNyw3ICs1MjcsNyBAQCB2b2lkIEhUTUxB
bmNob3JFbGVtZW50OjpoYW5kbGVDbGljayhFdmVudCYgZXZlbnQpCiAgICAgYXV0byBwcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCA9IHBhcnNlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKICAgICAv
LyBBIG1hdGNoaW5nIGNvbnZlcnNpb24gZXZlbnQgbmVlZHMgdG8gaGFwcGVuIGJlZm9yZSB0aGUg
Y29tcGxldGUgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudAogICAgIC8vIFVSTCBjYW4gYmUgY3Jl
YXRlZC4gVGh1cywgaXQgc2hvdWxkIGJlIGVtcHR5IGZvciBub3cuCi0gICAgQVNTRVJUKCFwcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCB8fCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+cmVwb3J0VVJM
KCkuaXNOdWxsKCkpOworICAgIEFTU0VSVCghcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgfHwgcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQtPmF0dHJpYnV0aW9uUmVwb3J0VVJMKCkuaXNOdWxsKCkpOwog
ICAgIAogICAgIGZyYW1lLT5sb2FkZXIoKS5jaGFuZ2VMb2NhdGlvbihjb21wbGV0ZWRVUkwsIGVm
ZmVjdGl2ZVRhcmdldCwgJmV2ZW50LCByZWZlcnJlclBvbGljeSwgZG9jdW1lbnQoKS5zaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9Qcm9wYWdhdGUoKSwgbmV3RnJhbWVPcGVuZXJQb2xpY3ks
IGRvd25sb2FkQXR0cmlidXRlLCBzeXN0ZW1QcmV2aWV3SW5mbywgV1RGTW92ZShwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50LmNwcAppbmRleCAzMjAwNDcwZDg3ZDVmODUwY2Q0NWFlZWNlYzcxZDg5
Y2ViY2VjODRlLi5lOTQyYzMxOGRmMjI3N2NmNjVhMGI4ZTQwMzI2NTRiMzk1MDZiNDI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAK
QEAgLTM3LDYgKzM3LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IGNo
YXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUcmlnZ2VyQXR0cmlidXRpb25QYXRoW10gPSAiLy53
ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvdHJpZ2dlci1hdHRyaWJ1dGlvbi8i
Oworc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVy
ZVBhdGhbXSA9ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC9zaWduLXVu
bGlua2FibGUtdG9rZW4vIjsKIHN0YXRpYyBjb25zdCBjaGFyIHByaXZhdGVDbGlja01lYXN1cmVt
ZW50UmVwb3J0QXR0cmlidXRpb25QYXRoW10gPSAiLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2st
bWVhc3VyZW1lbnQvcmVwb3J0LWF0dHJpYnV0aW9uLyI7CiBjb25zdCBzaXplX3QgcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblRyaWdnZXJEYXRhUGF0aFNlZ21lbnRTaXplID0gMjsK
IGNvbnN0IHNpemVfdCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFByaW9yaXR5UGF0aFNlZ21lbnRT
aXplID0gMjsKQEAgLTExNCw3ICsxMTUsMzcgQEAgYm9vbCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6aGFzSGlnaGVyUHJpb3JpdHlUaGFuKGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVtZW4KICAg
ICByZXR1cm4gbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhLT5wcmlvcml0eSA+IG90aGVyLm1fYXR0
cmlidXRpb25UcmlnZ2VyRGF0YS0+cHJpb3JpdHk7CiB9CiAKLVVSTCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6cmVwb3J0VVJMKCkgY29uc3QKK1VSTCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
dG9rZW5TaWduYXR1cmVVUkwoKSBjb25zdAoreworICAgIGlmICghbV9lcGhlbWVyYWxTb3VyY2VO
b25jZSB8fCAhbV9lcGhlbWVyYWxTb3VyY2VOb25jZS0+aXNWYWxpZCgpKQorICAgICAgICByZXR1
cm4gVVJMKCk7CisKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJodHRwczovLyIpOworICAgIGJ1aWxkZXIuYXBwZW5kKG1fc291cmNlU2l0ZS5y
ZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKHBy
aXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVQYXRoKTsKKworICAgIFVSTCB1cmwg
eyBVUkwoKSwgYnVpbGRlci50b1N0cmluZygpIH07CisgICAgaWYgKHVybC5pc1ZhbGlkKCkpCisg
ICAgICAgIHJldHVybiB1cmw7CisKKyAgICByZXR1cm4gVVJMKCk7Cit9CisKK1JlZjxKU09OOjpP
YmplY3Q+IFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojp0b2tlblNpZ25hdHVyZUpTT04oKSBjb25z
dAoreworICAgIGF1dG8gcmVwb3J0RGV0YWlscyA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7Cisg
ICAgaWYgKCFtX2VwaGVtZXJhbFNvdXJjZU5vbmNlIHx8ICFtX2VwaGVtZXJhbFNvdXJjZU5vbmNl
LT5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiByZXBvcnREZXRhaWxzOworCisgICAgcmVwb3J0
RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2VfZW5nYWdlbWVudF90eXBlIl9zLCAiY2xpY2siX3Mp
OworICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygic291cmNlX25vbmNlIl9zLCBtX2VwaGVt
ZXJhbFNvdXJjZU5vbmNlLT5ub25jZSk7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJ1
bmxpbmthYmxlX3Rva2VuIl9zLCAiVE9ETyJfcyk7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0SW50
ZWdlcigidmVyc2lvbiJfcywgMik7CisgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7Cit9CisKK1VS
TCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6YXR0cmlidXRpb25SZXBvcnRVUkwoKSBjb25zdAog
ewogICAgIGlmICghaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gVVJMKCk7CkBAIC0xMzEsNyAr
MTYyLDcgQEAgVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpyZXBvcnRVUkwoKSBjb25zdAog
ICAgIHJldHVybiBVUkwoKTsKIH0KIAotUmVmPEpTT046Ok9iamVjdD4gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6Ompzb24oKSBjb25zdAorUmVmPEpTT046Ok9iamVjdD4gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OmF0dHJpYnV0aW9uUmVwb3J0SlNPTigpIGNvbnN0CiB7CiAgICAgYXV0byByZXBv
cnREZXRhaWxzID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKICAgICBpZiAoIW1fYXR0cmlidXRp
b25UcmlnZ2VyRGF0YSB8fCAhaXNWYWxpZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaAppbmRleCBhNGM5NmNhMWUwYTRkMDBiMmFhZjFjYzU2
OTMzMjk3OWE5ZjgyNTIwLi42OWU2NTM1MmQ0NWIwNTczYjljNDMzYmI0ZDY0Y2FiMGRlZGZlMDAy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQu
aApAQCAtMjIxLDYgKzIyMSw5IEBAIHB1YmxpYzoKICAgICAgICAgfQogCiAgICAgICAgIFN0cmlu
ZyBub25jZTsKKworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBP
cHRpb25hbDxFcGhlbWVyYWxTb3VyY2VOb25jZT4gZGVjb2RlKERlY29kZXImKTsKICAgICB9Owog
CiAgICAgc3RydWN0IFByaW9yaXR5IHsKQEAgLTI3NCw4ICsyNzcsMTAgQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBFeHBlY3RlZDxBdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBT
dHJpbmc+IHBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnN0IFVSTCYgcmVkaXJlY3RVUkwpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPFNlY29uZHM+IGF0dHJpYnV0ZUFuZEdldEVhcmxp
ZXN0VGltZVRvU2VuZChBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIGJvb2wgaGFzSGlnaGVyUHJpb3JpdHlUaGFuKGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVt
ZW50JikgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgVVJMIHJlcG9ydFVSTCgpIGNvbnN0Owot
ICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxKU09OOjpPYmplY3Q+IGpzb24oKSBjb25zdDsKKyAgICBX
RUJDT1JFX0VYUE9SVCBVUkwgdG9rZW5TaWduYXR1cmVVUkwoKSBjb25zdDsKKyAgICBXRUJDT1JF
X0VYUE9SVCBSZWY8SlNPTjo6T2JqZWN0PiB0b2tlblNpZ25hdHVyZUpTT04oKSBjb25zdDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBVUkwgYXR0cmlidXRpb25SZXBvcnRVUkwoKSBjb25zdDsKKyAgICBX
RUJDT1JFX0VYUE9SVCBSZWY8SlNPTjo6T2JqZWN0PiBhdHRyaWJ1dGlvblJlcG9ydEpTT04oKSBj
b25zdDsKICAgICBjb25zdCBTb3VyY2VTaXRlJiBzb3VyY2VTaXRlKCkgY29uc3QgeyByZXR1cm4g
bV9zb3VyY2VTaXRlOyB9OwogICAgIGNvbnN0IEF0dHJpYnV0ZU9uU2l0ZSYgYXR0cmlidXRlT25T
aXRlKCkgY29uc3QgeyByZXR1cm4gbV9hdHRyaWJ1dGVPblNpdGU7IH07CiAgICAgdm9pZCBzZXRF
cGhlbWVyYWxTb3VyY2VOb25jZShFcGhlbWVyYWxTb3VyY2VOb25jZSYmIG5vbmNlKSB7IG1fZXBo
ZW1lcmFsU291cmNlTm9uY2UgPSBXVEZNb3ZlKG5vbmNlKTsgfTsKQEAgLTMxOCw2ICszMjMsNyBA
QCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKICAgICAgICAgPDwgbV9zb3VyY2VEZXNjcmlwdGlvbgogICAgICAgICA8PCBtX3B1cmNo
YXNlcgogICAgICAgICA8PCBtX3RpbWVPZkFkQ2xpY2sKKyAgICAgICAgPDwgbV9lcGhlbWVyYWxT
b3VyY2VOb25jZQogICAgICAgICA8PCBtX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEKICAgICAgICAg
PDwgbV9lYXJsaWVzdFRpbWVUb1NlbmQ7CiB9CkBAIC0zNTQsNyArMzYwLDEyIEBAIE9wdGlvbmFs
PFByaXZhdGVDbGlja01lYXN1cmVtZW50PiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6ZGVjb2Rl
KERlY29kZXImIGRlY29kCiAgICAgZGVjb2RlciA+PiB0aW1lT2ZBZENsaWNrOwogICAgIGlmICgh
dGltZU9mQWRDbGljaykKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAKKworICAg
IE9wdGlvbmFsPE9wdGlvbmFsPEVwaGVtZXJhbFNvdXJjZU5vbmNlPj4gZXBoZW1lcmFsU291cmNl
Tm9uY2U7CisgICAgZGVjb2RlciA+PiBlcGhlbWVyYWxTb3VyY2VOb25jZTsKKyAgICBpZiAoIWVw
aGVtZXJhbFNvdXJjZU5vbmNlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCiAgICAg
T3B0aW9uYWw8T3B0aW9uYWw8QXR0cmlidXRpb25UcmlnZ2VyRGF0YT4+IGF0dHJpYnV0aW9uVHJp
Z2dlckRhdGE7CiAgICAgZGVjb2RlciA+PiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhOwogICAgIGlm
ICghYXR0cmlidXRpb25UcmlnZ2VyRGF0YSkKQEAgLTM3MywxMiArMzg0LDMwIEBAIE9wdGlvbmFs
PFByaXZhdGVDbGlja01lYXN1cmVtZW50PiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6ZGVjb2Rl
KERlY29kZXImIGRlY29kCiAgICAgICAgIFdURk1vdmUoKnB1cmNoYXNlciksCiAgICAgICAgIFdU
Rk1vdmUoKnRpbWVPZkFkQ2xpY2spCiAgICAgfTsKKyAgICBhdHRyaWJ1dGlvbi5tX2VwaGVtZXJh
bFNvdXJjZU5vbmNlID0gV1RGTW92ZSgqZXBoZW1lcmFsU291cmNlTm9uY2UpOwogICAgIGF0dHJp
YnV0aW9uLm1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YSA9IFdURk1vdmUoKmF0dHJpYnV0aW9uVHJp
Z2dlckRhdGEpOwogICAgIGF0dHJpYnV0aW9uLm1fZWFybGllc3RUaW1lVG9TZW5kID0gV1RGTW92
ZSgqZWFybGllc3RUaW1lVG9TZW5kKTsKICAgICAKICAgICByZXR1cm4gYXR0cmlidXRpb247CiB9
CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpFcGhlbWVyYWxTb3VyY2VOb25jZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7
CisgICAgZW5jb2RlciA8PCBub25jZTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09w
dGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VOb25jZT4gUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlOjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxTdHJpbmc+IG5vbmNlOworICAgIGRlY29kZXIg
Pj4gbm9uY2U7CisgICAgaWYgKCFub25jZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KyAgICAKKyAgICByZXR1cm4gRXBoZW1lcmFsU291cmNlTm9uY2UgeyBXVEZNb3ZlKCpub25jZSkg
fTsKK30KKwogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcAppbmRleCA3YTkzMTk0OGEwNTZlYjkyZWNiZDNmMmQyNzRkZjE0NGRmMDFhOTVlLi4xNGE2
YmY3NDRiM2U1N2U2ZDViZDA3YTg2NTIzOTY2YzZkOTJkNTI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMjYwNywxMCArMjYwNywx
OCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjptYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoUAogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9
CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVy
c2lvblVSTEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwmJiB1cmwsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29y
a1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JU
ZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMJiYgdXJsLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIHNlc3Np
b24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQotICAgICAgICBzZXNzaW9uLT5zZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdURk1vdmUodXJsKSk7
CisgICAgICAgIHNlc3Npb24tPnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1
cmVVUkxGb3JUZXN0aW5nKFdURk1vdmUodXJsKSk7CisgICAgCisgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBVUkwmJiB1cmwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkp
CisgICAgICAgIHNlc3Npb24tPnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25S
ZXBvcnRVUkxGb3JUZXN0aW5nKFdURk1vdmUodXJsKSk7CiAgICAgCiAgICAgY29tcGxldGlvbkhh
bmRsZXIoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaAppbmRleCAxMTI2MmE4NTZiMTM4MTMxNjkyYzI1NTQ4MmIzYmE2NTc0NDVlYjIxLi4yYjI0
YjgzMmZiMjQ3Mzg1ZjJkNGUwYmMyNzg3YTBkMWQwOGIxZTMxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0zNDIsNyArMzQyLDggQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9y
VGVzdGluZyhQQUw6OlNlc3Npb25JRCwgYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKICAgICB2b2lkIG1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRz
QXNFeHBpcmVkRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKICAgICB2b2lkIHNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25S
ZXN0YXJ0KFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAg
IHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhQ
QUw6OlNlc3Npb25JRCwgVVJMJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAg
dm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGlu
ZyhQQUw6OlNlc3Npb25JRCwgVVJMJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Cisg
ICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9y
VGVzdGluZyhQQUw6OlNlc3Npb25JRCwgVVJMJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAgICAgdm9pZCBtYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVz
dGluZyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAg
IFJlZlB0cjxXZWJDb3JlOjpTdG9yYWdlUXVvdGFNYW5hZ2VyPiBzdG9yYWdlUXVvdGFNYW5hZ2Vy
KFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2Vz
LmluCmluZGV4IDU4YjNlNGM4NjhjNzAxMmNkYjM1NjU2ZWFhYmYyYjYxODFmMmJjN2UuLmUwNzQ3
Y2QyYTI2MTM5Y2ZmODZmNWU1ODEwNjdjYWJhYzFlMWVkYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAt
MTY3LDcgKzE2Nyw4IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVy
IHsKICAgICBTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSkgLT4gKCkgQXN5bmMKICAgICBN
YXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3Rpbmco
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwogICAgIFNpbXVsYXRlUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkg
LT4gKCkgQXN5bmMKLSAgICBTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxG
b3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIHVybCkgLT4gKCkgQXN5bmMK
KyAgICBTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGlu
ZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCB1cmwpIC0+ICgpIEFzeW5jCisgICAgU2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgdXJsKSAtPiAoKSBBc3luYwogICAgIE1hcmtQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkgLT4gKCkgQXN5bmMKICAgICBHZXRMb2NhbFN0b3JhZ2VPcmlnaW5EZXRhaWxzKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKFZlY3RvcjxXZWJLaXQ6OkxvY2FsU3RvcmFnZURh
dGFiYXNlVHJhY2tlcjo6T3JpZ2luRGV0YWlscz4gZGV0YWlscykgQXN5bmMKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRleCAzOWQyMjAw
ZjRjMDY4ZjYwMzYxY2ZlMTFkNzc4ODkwYmUwNDJhNzYyLi44NGIwNTY4YmZlZDEwMTk5NTNjZDM0
NDAwYWI3MjdhMjZiNzhiYzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTZXNzaW9uLmNwcApAQCAtMzM4LDkgKzMzOCwxNCBAQCB2b2lkIE5ldHdvcmtTZXNz
aW9uOjptYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRl
c3RpbmcoQwogICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50KCkubWFya0F0dHJpYnV0ZWRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKIH0KIAotdm9pZCBOZXR3b3JrU2Vzc2lvbjo6c2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhVUkwmJiB1cmwpCit2b2lkIE5ldHdvcmtT
ZXNzaW9uOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVz
dGluZyhVUkwmJiB1cmwpCiB7Ci0gICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS5zZXRDb252
ZXJzaW9uVVJMRm9yVGVzdGluZyhXVEZNb3ZlKHVybCkpOworICAgIHByaXZhdGVDbGlja01lYXN1
cmVtZW50KCkuc2V0VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKFdURk1vdmUodXJsKSk7Cit9
CisKK3ZvaWQgTmV0d29ya1Nlc3Npb246OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmli
dXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKFVSTCYmIHVybCkKK3sKKyAgICBwcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCgpLnNldEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZyhXVEZNb3ZlKHVy
bCkpOwogfQogCiB2b2lkIE5ldHdvcmtTZXNzaW9uOjptYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRzQXNFeHBpcmVkRm9yVGVzdGluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTZXNzaW9uLmgKaW5kZXggZTg2YTg1NGQyOTU5OGJhYWI3NTdhMWQzMWYzYmEyOWFl
ZjliM2M4Ni4uODQzODE3ZmE3Njk5ZGExOGM5MjAwMmQwNDIxZTYwNTFlNDc5YjU4NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaApAQCAtMTIzLDcg
KzEyMyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRG
b3JSZWdpc3RyYWJsZURvbWFpbihXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmKTsKICAgICB2
b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9v
bCB2YWx1ZSk7CiAgICAgdm9pZCBtYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50
c0FzRXhwaXJlZEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2
b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoVVJM
JiYpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVS
TEZvclRlc3RpbmcoVVJMJiYpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRB
dHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoVVJMJiYpOwogICAgIHZvaWQgbWFya1ByaXZh
dGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKICAgICB2b2lkIGZpcmVQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudFRpbWVySW1tZWRpYXRlbHkoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1hbmFnZXIuY3BwCmluZGV4IGNmZWI2NjU4ZDM4ZDRkZDYxZWY4MTg2YjMzNjM4N2EyYzQx
ZmExMjAuLmIwM2U5NzAyMjZlMTQ3ODVlOWVmZDQ2MzBlMGIyYTEwNTNhNjBhODYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlci5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAgdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiB1c2luZyBTb3VyY2VTaXRlID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNv
dXJjZVNpdGU7CiB1c2luZyBBdHRyaWJ1dGVPblNpdGUgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6QXR0cmlidXRlT25TaXRlOwogdXNpbmcgQXR0cmlidXRpb25UcmlnZ2VyRGF0YSA9IFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhOwordXNpbmcgRXBoZW1l
cmFsU291cmNlTm9uY2UgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFsU291cmNl
Tm9uY2U7CiAKIGNvbnN0ZXhwciBTZWNvbmRzIGRlYnVnTW9kZVNlY29uZHNVbnRpbFNlbmQgeyAx
MF9zIH07CiAKQEAgLTczLDYgKzc0LDkgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXI6OnN0b3JlVW5hdHRyaWJ1dGVkKFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYKIAogICAg
IGNsZWFyRXhwaXJlZCgpOwogCisgICAgaWYgKGF0dHJpYnV0aW9uLmVwaGVtZXJhbFNvdXJjZU5v
bmNlKCkpCisgICAgICAgIGdldFNpZ25lZFVubGlua2FibGVUb2tlbihhdHRyaWJ1dGlvbik7CisK
ICAgICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nlc3Npb25J
RCwgTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6
TG9nLCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIFN0b3JpbmcgYW4gYWQgY2xpY2suIl9z
KTsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCkBAIC04MSw2ICs4NSw2
NyBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c3RvcmVVbmF0dHJpYnV0
ZWQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJgogI2VuZGlmCiB9CiAKK3N0YXRpYyBOZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycyBnZW5lcmF0ZU5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0
ZXJzKFVSTCYmIHVybCwgUmVmPEpTT046Ok9iamVjdD4ganNvblBheWxvYWQsIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpQY21EYXRhQ2FycmllZCBkYXRhVHlwZUNhcnJpZWQpCit7CisgICAgc3Rh
dGljIHVpbnQ2NF90IGlkZW50aWZpZXIgPSAwOworICAgIAorICAgIFJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0IHsgV1RGTW92ZSh1cmwpIH07CisgICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9kKCJQT1NU
Il9zKTsKKyAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6Q2Fj
aGVDb250cm9sLCBXZWJDb3JlOjpIVFRQSGVhZGVyVmFsdWVzOjptYXhBZ2UwKCkpOworICAgIHJl
cXVlc3Quc2V0SFRUUENvbnRlbnRUeXBlKFdlYkNvcmU6OkhUVFBIZWFkZXJWYWx1ZXM6OmFwcGxp
Y2F0aW9uSlNPTkNvbnRlbnRUeXBlKCkpOworICAgIHJlcXVlc3Quc2V0SFRUUEJvZHkoV2ViQ29y
ZTo6Rm9ybURhdGE6OmNyZWF0ZShqc29uUGF5bG9hZC0+dG9KU09OU3RyaW5nKCkudXRmOCgpLmRh
dGEoKSkpOworCisgICAgRmV0Y2hPcHRpb25zIG9wdGlvbnM7CisgICAgb3B0aW9ucy5jcmVkZW50
aWFscyA9IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6Ok9taXQ7CisgICAgb3B0aW9ucy5yZWRp
cmVjdCA9IEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6OkVycm9yOworCisgICAgTmV0d29ya1Jlc291
cmNlTG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnM7CisgICAgbG9hZFBhcmFtZXRlcnMuaWRl
bnRpZmllciA9ICsraWRlbnRpZmllcjsKKyAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVx
dWVzdDsKKyAgICBsb2FkUGFyYW1ldGVycy5wYXJlbnRQSUQgPSBwcmVzZW50aW5nQXBwbGljYXRp
b25QSUQoKTsKKyAgICBsb2FkUGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IFN0
b3JlZENyZWRlbnRpYWxzUG9saWN5OjpFcGhlbWVyYWxTdGF0ZWxlc3M7CisgICAgbG9hZFBhcmFt
ZXRlcnMub3B0aW9ucyA9IG9wdGlvbnM7CisgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJS
ZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCA9IHRydWU7CisgICAgbG9hZFBhcmFtZXRlcnMu
c2hvdWxkUmVzdHJpY3RIVFRQUmVzcG9uc2VBY2Nlc3MgPSBmYWxzZTsKKyAgICBsb2FkUGFyYW1l
dGVycy5wY21EYXRhQ2FycmllZCA9IGRhdGFUeXBlQ2FycmllZDsKKyAgICAKKyAgICByZXR1cm4g
bG9hZFBhcmFtZXRlcnM7Cit9CisKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
OjpnZXRTaWduZWRVbmxpbmthYmxlVG9rZW4oY29uc3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQm
IGF0dHJpYnV0aW9uKQoreworICAgIGlmICghZmVhdHVyZUVuYWJsZWQoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgYXV0byB0b2tlblNpZ25hdHVyZVVSTCA9IGF0dHJpYnV0aW9uLnRva2VuU2ln
bmF0dXJlVVJMKCk7CisgICAgYXV0byBwY21EYXRhQ2FycmllZCA9IFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpQY21EYXRhQ2FycmllZDo6UGVyc29uYWxseUlkZW50aWZpYWJsZTsKKyAgICBpZiAo
bV90b2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcpIHsKKyAgICAgICAgdG9rZW5TaWduYXR1cmVV
UkwgPSAqbV90b2tlblNpZ25hdHVyZVVSTEZvclRlc3Rpbmc7CisgICAgICAgIHBjbURhdGFDYXJy
aWVkID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlBjbURhdGFDYXJyaWVkOjpOb25QZXJzb25h
bGx5SWRlbnRpZmlhYmxlOworICAgIH0KKworICAgIGlmICh0b2tlblNpZ25hdHVyZVVSTC5pc0Vt
cHR5KCkgfHwgIXRva2VuU2lnbmF0dXJlVVJMLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgYXV0byBsb2FkUGFyYW1ldGVycyA9IGdlbmVyYXRlTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMoV1RGTW92ZSh0b2tlblNpZ25hdHVyZVVSTCksIGF0dHJpYnV0aW9uLnRva2VuU2ln
bmF0dXJlSlNPTigpLCBwY21EYXRhQ2FycmllZCk7CisKKyAgICBSRUxFQVNFX0xPR19JTkZPKFBy
aXZhdGVDbGlja01lYXN1cmVtZW50LCAiQWJvdXQgdG8gZmlyZSBhIHVubGlua2FibGUgdG9rZW4g
c2lnbmluZyByZXF1ZXN0LiIpOworICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNv
bGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCwgTWVzc2FnZUxldmVsOjpMb2csICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQWJv
dXQgdG8gZmlyZSBhIHVubGlua2FibGUgdG9rZW4gc2lnbmluZyByZXF1ZXN0LiJfcyk7CisKKyAg
ICBtX3BpbmdMb2FkRnVuY3Rpb24oV1RGTW92ZShsb2FkUGFyYW1ldGVycyksIFt3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKCp0aGlzKV0oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3Is
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKSB7CisgICAgICAgIGlm
ICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKCFlcnJvci5p
c051bGwoKSkgeworICAgICAgICAgICAgd2Vha1RoaXMtPm1fbmV0d29ya1Byb2Nlc3MtPmJyb2Fk
Y2FzdENvbnNvbGVNZXNzYWdlKHdlYWtUaGlzLT5tX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1ha2VTdHJpbmco
IltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBSZWNlaXZlZCBlcnJvcjogJyJfcywgZXJyb3Iu
bG9jYWxpemVkRGVzY3JpcHRpb24oKSwgIicgZm9yIHVubGlua2FibGUgdG9rZW4gc2lnbmluZyBy
ZXF1ZXN0LiJfcykpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICAvLyBGSVhNRTogUmVjZWl2ZSBhbmQgc3RvcmUgdGhlIHNpZ25lZCB1bmxpbmthYmxl
IHRva2VuLCByZGFyOi8vNzM1ODIwMzIuCisgICAgfSk7CisKK30KKwogdm9pZCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hbmFnZXI6OmhhbmRsZUF0dHJpYnV0aW9uKEF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0KQogewogICAgIGlm
ICghZmVhdHVyZUVuYWJsZWQoKSkKQEAgLTEzOCwzMyArMjAzLDExIEBAIHZvaWQgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlQ29udmVyc2lvblJlcXVlc3QoY29uc3QgUHJpdmF0
ZUNsaWNrTWVhCiAgICAgaWYgKCFmZWF0dXJlRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBhdXRvIGF0dHJpYnV0aW9uVVJMID0gbV9hdHRyaWJ1dGlvbkJhc2VVUkxGb3JUZXN0aW5n
ID8gKm1fYXR0cmlidXRpb25CYXNlVVJMRm9yVGVzdGluZyA6IGF0dHJpYnV0aW9uLnJlcG9ydFVS
TCgpOworICAgIGF1dG8gYXR0cmlidXRpb25VUkwgPSBtX2F0dHJpYnV0aW9uUmVwb3J0QmFzZVVS
TEZvclRlc3RpbmcgPyAqbV9hdHRyaWJ1dGlvblJlcG9ydEJhc2VVUkxGb3JUZXN0aW5nIDogYXR0
cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRVUkwoKTsKICAgICBpZiAoYXR0cmlidXRpb25VUkwu
aXNFbXB0eSgpIHx8ICFhdHRyaWJ1dGlvblVSTC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0IHsgV1RGTW92ZShhdHRyaWJ1dGlvblVSTCkg
fTsKLSAgICAKLSAgICByZXF1ZXN0LnNldEhUVFBNZXRob2QoIlBPU1QiX3MpOwotICAgIHJlcXVl
c3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDYWNoZUNvbnRyb2wsIFdlYkNv
cmU6OkhUVFBIZWFkZXJWYWx1ZXM6Om1heEFnZTAoKSk7Ci0KLSAgICByZXF1ZXN0LnNldEhUVFBD
b250ZW50VHlwZShXZWJDb3JlOjpIVFRQSGVhZGVyVmFsdWVzOjphcHBsaWNhdGlvbkpTT05Db250
ZW50VHlwZSgpKTsKLSAgICByZXF1ZXN0LnNldEhUVFBCb2R5KFdlYkNvcmU6OkZvcm1EYXRhOjpj
cmVhdGUoYXR0cmlidXRpb24uanNvbigpLT50b0pTT05TdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7
Ci0KLSAgICBGZXRjaE9wdGlvbnMgb3B0aW9uczsKLSAgICBvcHRpb25zLmNyZWRlbnRpYWxzID0g
RmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6T21pdDsKLSAgICBvcHRpb25zLnJlZGlyZWN0ID0g
RmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6RXJyb3I7Ci0KLSAgICBzdGF0aWMgdWludDY0X3QgaWRl
bnRpZmllciA9IDA7Ci0gICAgCi0gICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbG9h
ZFBhcmFtZXRlcnM7Ci0gICAgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllciA9ICsraWRlbnRpZmll
cjsKLSAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKLSAgICBsb2FkUGFyYW1l
dGVycy5wYXJlbnRQSUQgPSBwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKTsKLSAgICBsb2FkUGFy
YW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5
OjpFcGhlbWVyYWxTdGF0ZWxlc3M7Ci0gICAgbG9hZFBhcmFtZXRlcnMub3B0aW9ucyA9IG9wdGlv
bnM7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBS
ZWRpcmVjdCA9IHRydWU7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkUmVzdHJpY3RIVFRQUmVz
cG9uc2VBY2Nlc3MgPSBmYWxzZTsKLSAgICBsb2FkUGFyYW1ldGVycy5wY21EYXRhQ2FycmllZCA9
IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQY21EYXRhQ2FycmllZDo6Tm9uUGVy
c29uYWxseUlkZW50aWZpYWJsZTsKKyAgICBhdXRvIGxvYWRQYXJhbWV0ZXJzID0gZ2VuZXJhdGVO
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyhXVEZNb3ZlKGF0dHJpYnV0aW9uVVJMKSwgYXR0
cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRKU09OKCksIFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpQY21EYXRhQ2FycmllZDo6Tm9uUGVyc29uYWxseUlkZW50aWZpYWJsZSk7CiAKICAgICBSRUxF
QVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiQWJvdXQgdG8gZmlyZSBhbiBh
dHRyaWJ1dGlvbiByZXF1ZXN0LiIpOwogICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENv
bnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCwgTWVzc2FnZUxldmVsOjpMb2csICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0g
QWJvdXQgdG8gZmlyZSBhbiBhdHRyaWJ1dGlvbiByZXF1ZXN0LiJfcyk7CkBAIC0yOTMsMTIgKzMz
NiwyMCBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6dG9TdHJpbmcoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmCiAgICAgY29tcGxldGlvbkhhbmRsZXIoIlxu
Tm8gc3RvcmVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQgZGF0YS5cbiJfcyk7CiB9CiAKLXZv
aWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzZXRDb252ZXJzaW9uVVJMRm9yVGVz
dGluZyhVUkwmJiB0ZXN0VVJMKQordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6
OnNldFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyhVUkwmJiB0ZXN0VVJMKQoreworICAgIGlm
ICh0ZXN0VVJMLmlzRW1wdHkoKSkKKyAgICAgICAgbV90b2tlblNpZ25hdHVyZVVSTEZvclRlc3Rp
bmcgPSB7IH07CisgICAgZWxzZQorICAgICAgICBtX3Rva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGlu
ZyA9IFdURk1vdmUodGVzdFVSTCk7Cit9CisKK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YW5hZ2VyOjpzZXRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoVVJMJiYgdGVzdFVSTCkK
IHsKICAgICBpZiAodGVzdFVSTC5pc0VtcHR5KCkpCi0gICAgICAgIG1fYXR0cmlidXRpb25CYXNl
VVJMRm9yVGVzdGluZyA9IHsgfTsKKyAgICAgICAgbV9hdHRyaWJ1dGlvblJlcG9ydEJhc2VVUkxG
b3JUZXN0aW5nID0geyB9OwogICAgIGVsc2UKLSAgICAgICAgbV9hdHRyaWJ1dGlvbkJhc2VVUkxG
b3JUZXN0aW5nID0gV1RGTW92ZSh0ZXN0VVJMKTsKKyAgICAgICAgbV9hdHRyaWJ1dGlvblJlcG9y
dEJhc2VVUkxGb3JUZXN0aW5nID0gV1RGTW92ZSh0ZXN0VVJMKTsKIH0KIAogdm9pZCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6Om1hcmtBbGxVbmF0dHJpYnV0ZWRBc0V4cGlyZWRGb3JU
ZXN0aW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oCmluZGV4IDk2ZDBiNjgyNTY0MGVmNzYx
Y2EzMGUyYjljMmViYmMzYTEzYjE0MjQuLmM1ZGU4NjdjODNlNGZiMjQ2YzRhMGUzYzAxZmE1ZDE2
OTc1YzlkYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaApAQCAtNjEsMTIgKzYxLDE0IEBA
IHB1YmxpYzoKICAgICB2b2lkIHRvU3RyaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5n
KT4mJikgY29uc3Q7CiAgICAgdm9pZCBzZXRQaW5nTG9hZEZ1bmN0aW9uKEZ1bmN0aW9uPHZvaWQo
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYpPiYmKT4mJiBwaW5nTG9hZEZ1bmN0aW9uKSB7IG1fcGluZ0xvYWRGdW5jdGlvbiA9IFdU
Rk1vdmUocGluZ0xvYWRGdW5jdGlvbik7IH0KICAgICB2b2lkIHNldE92ZXJyaWRlVGltZXJGb3JU
ZXN0aW5nKGJvb2wgdmFsdWUpIHsgbV9pc1J1bm5pbmdUZXN0ID0gdmFsdWU7IH0KLSAgICB2b2lk
IHNldENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFVSTCYmKTsKKyAgICB2b2lkIHNldFRva2VuU2ln
bmF0dXJlVVJMRm9yVGVzdGluZyhVUkwmJik7CisgICAgdm9pZCBzZXRBdHRyaWJ1dGlvblJlcG9y
dFVSTEZvclRlc3RpbmcoVVJMJiYpOwogICAgIHZvaWQgbWFya0FsbFVuYXR0cmlidXRlZEFzRXhw
aXJlZEZvclRlc3RpbmcoKTsKICAgICB2b2lkIG1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwogICAgIHZvaWQgc3RhcnRUaW1lcihTZWNvbmRzKTsKIAogcHJpdmF0ZToKKyAgICB2b2lkIGdl
dFNpZ25lZFVubGlua2FibGVUb2tlbihjb25zdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYpOwog
ICAgIHZvaWQgY2xlYXJTZW50QXR0cmlidXRpb24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJik7
CiAgICAgdm9pZCBhdHRyaWJ1dGUoY29uc3QgU291cmNlU2l0ZSYsIGNvbnN0IEF0dHJpYnV0ZU9u
U2l0ZSYsIEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJik7CiAgICAgdm9pZCBmaXJlQ29udmVyc2lv
blJlcXVlc3QoY29uc3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmKTsKQEAgLTc3LDcgKzc5LDgg
QEAgcHJpdmF0ZToKIAogICAgIFdlYkNvcmU6OlRpbWVyIG1fZmlyZVBlbmRpbmdBdHRyaWJ1dGlv
blJlcXVlc3RzVGltZXI7CiAgICAgYm9vbCBtX2lzUnVubmluZ1Rlc3QgeyBmYWxzZSB9OwotICAg
IE9wdGlvbmFsPFVSTD4gbV9hdHRyaWJ1dGlvbkJhc2VVUkxGb3JUZXN0aW5nOworICAgIE9wdGlv
bmFsPFVSTD4gbV90b2tlblNpZ25hdHVyZVVSTEZvclRlc3Rpbmc7CisgICAgT3B0aW9uYWw8VVJM
PiBtX2F0dHJpYnV0aW9uUmVwb3J0QmFzZVVSTEZvclRlc3Rpbmc7CiAgICAgV2Vha1B0cjxOZXR3
b3JrU2Vzc2lvbj4gbV9uZXR3b3JrU2Vzc2lvbjsKICAgICBSZWY8TmV0d29ya1Byb2Nlc3M+IG1f
bmV0d29ya1Byb2Nlc3M7CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCA2MmE1NGI3NDZjM2FiMmYxYWIz
MmNlZDcxNDY0YzRjNGRkZjFlOWQ2Li5jYzdmZjBiMTI1MjA2MTY3YjY3NWQ3ZGQ1OTFlM2I4NTdm
YmM2MTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTI5
NDUsOSArMjk0NSwxNiBAQCB2b2lkIFdLUGFnZVNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1Nlc3Npb25SZXN0YXJ0KFdLUGFnZVJlZiBwYWdlLCBXS1BhZ2VTaQogICAgIH0pOwogfQogCi12
b2lkIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rp
bmcoV0tQYWdlUmVmIHBhZ2UsIFdLVVJMUmVmIFVSTFJlZiwgV0tQYWdlU2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lk
KiBjYWxsYmFja0NvbnRleHQpCit2b2lkIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1VSTFJlZiBVUkxS
ZWYsIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JU
ZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCkKIHsKLSAgICB0
b0ltcGwocGFnZSktPnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRl
c3RpbmcoVVJMKFVSTCgpLCB0b1dURlN0cmluZyhVUkxSZWYpKSwgW2NhbGxiYWNrQ29udGV4dCwg
Y2FsbGJhY2tdICgpIHsKKyAgICB0b0ltcGwocGFnZSktPnNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKFVSTChVUkwoKSwgdG9XVEZTdHJpbmcoVVJM
UmVmKSksIFtjYWxsYmFja0NvbnRleHQsIGNhbGxiYWNrXSAoKSB7CisgICAgICAgIGNhbGxiYWNr
KGNhbGxiYWNrQ29udGV4dCk7CisgICAgfSk7Cit9CisKK3ZvaWQgV0tQYWdlU2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoV0tQYWdlUmVmIHBh
Z2UsIFdLVVJMUmVmIFVSTFJlZiwgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRy
aWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJh
Y2tDb250ZXh0KQoreworICAgIHRvSW1wbChwYWdlKS0+c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoVVJMKFVSTCgpLCB0b1dURlN0cmluZyhV
UkxSZWYpKSwgW2NhbGxiYWNrQ29udGV4dCwgY2FsbGJhY2tdICgpIHsKICAgICAgICAgY2FsbGJh
Y2soY2FsbGJhY2tDb250ZXh0KTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaAppbmRleCA3MDNkNjE5YzVhYzJiODdiMTdkNjA4Yjhh
ZTYyNDM5OTI3MDA3ZWUzLi4yOGE4MmY2N2I5ZWI2ZmFkOTQzZjM3MTM2OWEyMDY0MTA3MzEyMTNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oCkBA
IC0xNzksOCArMTc5LDEwIEBAIHR5cGVkZWYgdm9pZCAoKldLUGFnZU1hcmtBdHRyaWJ1dGVkUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZ0Z1CiBXS19FWFBPUlQgdm9p
ZCBXS1BhZ2VNYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZv
clRlc3RpbmcoV0tQYWdlUmVmIHBhZ2UsIFdLUGFnZU1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBj
YWxsYmFja0NvbnRleHQpOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlU2ltdWxhdGVSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU2Vzc2lvblJlc3RhcnRGdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0
KTsKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZVNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nl
c3Npb25SZXN0YXJ0KFdLUGFnZVJlZiBwYWdlLCBXS1BhZ2VTaW11bGF0ZVJlc291cmNlTG9hZFN0
YXRpc3RpY3NTZXNzaW9uUmVzdGFydEZ1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja0Nv
bnRleHQpOwotdHlwZWRlZiB2b2lkICgqV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRD
b252ZXJzaW9uVVJMRm9yVGVzdGluZ0Z1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwot
V0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9u
VVJMRm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwgV0tVUkxSZWYgdXJsU3RyaW5nLCBXS1BhZ2VT
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nRnVuY3Rpb24g
Y2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCk7Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VT
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZ0Z1bmN0
aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOworV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcoV0tQYWdlUmVm
IHBhZ2UsIFdLVVJMUmVmIHVybFN0cmluZywgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2Fs
bGJhY2tDb250ZXh0KTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZVNldFByaXZhdGVDbGlja01lYXN1
cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nRnVuY3Rpb24pKHZvaWQqIGZ1bmN0
aW9uQ29udGV4dCk7CitXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwgV0tVUkxS
ZWYgdXJsU3RyaW5nLCBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9u
UmVwb3J0VVJMRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja0NvbnRl
eHQpOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlTWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0Fz
RXhwaXJlZEZvclRlc3RpbmdGdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsKIFdLX0VY
UE9SVCB2b2lkIFdLUGFnZU1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JU
ZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1BhZ2VNYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRz
QXNFeHBpcmVkRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja0NvbnRl
eHQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oCmluZGV4IDk3NDQzNDEwMWY4NGVjNTI0
OTE4YWJjMTRjM2YzMWZiN2FiZTZiY2IuLjMyMTg1NmM5NmNiMDliNDkxNjM0MGI3ZDA2MGI4NDc1
ODI5MjNjNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oCkBAIC04NSw2ICs4NSw2IEBA
IHR5cGVkZWYgZW51bSB7CiAtIChOU051bWJlciAqKV9zdXNwZW5kTWVkaWFQbGF5YmFja0NvdW50
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IAogLSAodm9pZClfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVz
dGluZzooQk9PTClvdmVycmlkZVRpbWVyIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQp
KWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZl
cnNpb25VUkxGb3JUZXN0aW5nOihOU1VSTCAqKXVybCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZChe
KSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3Rpbmc6KE5TVVJMICopdXJsIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBlbmQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0KaW5k
ZXggMGZhNWRiMGZmZWUzZmI2OWFkOWU5MTI1ZjFkMTU0YmNhY2JkZThiMC4uOThmMThmODRlZjE2
MzE4MDcwNWRmNTkyZjdlNzQyMTAzNzg5YmU3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0KQEAgLTMwMiw5ICszMDIs
OSBAQCAtICh2b2lkKV9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JU
ZXN0aW5nOihCT09MKW92ZXJyaWRlVGltZXIgYwogICAgIH0pOwogfQogCi0tICh2b2lkKV9zZXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nOihOU1VSTCAqKXVy
bCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcgorLSAo
dm9pZClfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRl
c3Rpbmc6KE5TVVJMICopdXJsIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBs
ZXRpb25IYW5kbGVyCiB7Ci0gICAgX3BhZ2UtPnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29u
dmVyc2lvblVSTEZvclRlc3RpbmcodXJsLCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQ
dHIoY29tcGxldGlvbkhhbmRsZXIpXSB7CisgICAgX3BhZ2UtPnNldFByaXZhdGVDbGlja01lYXN1
cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKHVybCwgW2NvbXBsZXRpb25IYW5k
bGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0gewogICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcigpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKaW5kZXggZjk2M2M4NjlkYTdlMzY3MmQzN2FkNjViMzcwZmVjYzg2N2MyYjJiOS4u
NDA1NDMwY2I1YjMzZDllZTcwYjI1ZGQyNDg4MmFmM2VhNjEyMjc3MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMDAwNSw5ICsxMDAwNSwxNCBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6c2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJlc3Rh
cnQoQ29tcGxldGlvbkhhbmRsZQogICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3JrUHJvY2Vz
cygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNpbXVsYXRl
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KG1fd2Vic2l0ZURhdGFTdG9yZS0+
c2Vzc2lvbklEKCkpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgV2Vi
UGFnZVByb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0
aW5nKGNvbnN0IFVSTCYgdXJsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRU
b2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcoY29uc3QgVVJMJiB1cmwsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICB3ZWJzaXRlRGF0YVN0b3Jl
KCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5n
KG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCksIHVybCksIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKKyAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyhtX3dlYnNpdGVEYXRhU3RvcmUt
PnNlc3Npb25JRCgpLCB1cmwpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKK3Zv
aWQgV2ViUGFnZVByb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVw
b3J0VVJMRm9yVGVzdGluZyhjb25zdCBVUkwmIHVybCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3Jr
UHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKG1f
d2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCksIHVybCksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6Om1hcmtQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXgg
MjkyNDA2YzliZjZjYWU3NzFiZGQxYzI5MWE2NWIzZWQxMzBmYzBlYS4uZmFmNTMwNTgyNTBhMmZk
MjdlMGNjNzVkYzQxOWY5NGMzODlmM2M1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKQEAgLTE2ODgsNyArMTY4OCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1ZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIG1hcmtBdHRyaWJ1dGVkUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogICAgIHZvaWQgc2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lv
blJlc3RhcnQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoY29uc3QgVVJMJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1
cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKGNvbnN0IFVSTCYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0
dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZyhjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogICAgIHZvaWQgbWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhw
aXJlZEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogI2lmIEVOQUJM
RShTUEVFQ0hfU1lOVEhFU0lTKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDQ4MDI4OGZiMTMyN2U3MTM2YjgzMzgxZGVhMWZjOGRkYzZmMDM4ZGQu
LjVmYzg4OTQwOWEyNTRlZjkyN2MzNDE0YTExZTZkNzY1Nzg2MjhmZGIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAy
MS0wMi0xNyAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBQ
Q006IFJlcXVlc3Qgc2lnbmF0dXJlIGZvciB1bmxpbmthYmxlIHRva2VuIHVzaW5nIGF0dHJpYnV0
aW9uU291cmNlTm9uY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMjA3NgorICAgICAgICA8cmRhcjovLzczNTgxNjUxPgorCisgICAgICAgIFJldmll
d2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIFRoZSBjaGFuZ2VzIHRvIHRoZSBUZXN0UnVu
bmVyIGFyZToKKyAgICAgICAgLSBSZW5hbWUgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252
ZXJzaW9uVVJMRm9yVGVzdGluZygpIHRvCisgICAgICAgIHNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKCkgdG8gYWxpZ24gd2l0aCBvdGhlcgor
ICAgICAgICBuYW1pbmcgYW5kIG1ha2UgaXQgY2xlYXIgdGhhdCBpdCBkb2VzLgorICAgICAgICAt
IEFkZCB0aGUgbmV3IHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxG
b3JUZXN0aW5nKCkgdXNlZCBmb3IKKyAgICAgICAgdGVzdGluZyB0aGUgdG9rZW4gc2lnbmluZyBy
ZXF1ZXN0LgorCisgICAgICAgIFRoZSBjaGFuZ2VzIHRvIEFQSSB0ZXN0cyBhcmUgdG8gYWRvcHQg
cmVuYW1lZCBmdW5jdGlvbnMgaW4KKyAgICAgICAgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6CisgICAgICAgIC0gcmVwb3J0VVJMKCkgcmVuYW1lZCBhdHRyaWJ1dGlvblJlcG9ydFVS
TCgpLgorICAgICAgICAtIGpzb24oKSByZW5hbWVkIGF0dHJpYnV0aW9uUmVwb3J0SlNPTigpLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5t
bToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAg
KFdUUjo6VGVzdFJ1bm5lcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVy
ZVVSTEZvclRlc3RpbmcpOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZyk6CisgICAgICAgIChX
VFI6OlRlc3RSdW5uZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZv
clRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcpOgorICAgICAgICAoV1RSOjpU
ZXN0Q29udHJvbGxlcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9y
dFVSTEZvclRlc3RpbmcpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2Nh
dGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisK
IDIwMjEtMDItMTcgIFNhbSBTbmVkZG9uICA8Z3NuZWRkZXJzQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgZGVwcmVjYXRpb24gbm90aWNlcyB0byBiZWxpZXZlZC11bnVzZWQgY29tbWFuZHMgaW4g
d2Via2l0LXBhdGNoCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJkMmY5ZTYyNzY5MDZlNWY1
NDBhZjQ5MTI4ODU2MzYzMjY1YjVjOWUuLjc2Y2U4Njk1NTRlYmQ5NzQ3ZjQ0ODQzYTU1ODkyMDBi
ZDg2ZWI3NTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzExLDYgKzIzMTEsNyBAQAog
CQk2M0E2MUI4QTFGQUQyMDREMDBGMDY4ODUgLyogZGlzcGxheS1tb2RlLmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGgg
PSAiZGlzcGxheS1tb2RlLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2M0Y2
NjgyMDFGOTdDM0FBMDAzMkVFNTEgLyogQXBwbGljYXRpb25NYW5pZmVzdC5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IEFwcGxpY2F0aW9uTWFuaWZlc3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTZCMEEwN0Y2MjFGQTlDMkIwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZCMjVBNzUxMjVEQzhENEUwMDcwNzQ0RiAv
KiBFdmVudEF0dHJpYnV0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gRXZlbnRBdHRyaWJ1dGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NkIzMDYxMDUyMThBMzcyOTAwRjVBODAyIC8qIENsb3NpbmdXZWJWaWV3Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gQ2xvc2luZ1dlYlZpZXcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTZCNEU4NjFCMjIyMEE1NTIwMDIyRjM4OSAvKiBSZWdpc3RyYWJsZURvbWFpbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZWdpc3RyYWJsZURvbWFpbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTZCOUFCRTExMjA4Njk1MkYwMEQ3NURFNiAvKiBIVFRQUGFyc2Vycy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBIVFRQUGFyc2Vycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0zMzEyLDYgKzMzMTMsNyBAQAogCQkJCUY0NjEyOEQ2MjExRTQ4OUMwMEQ5RkFE
QiAvKiBEcmFnQW5kRHJvcFRlc3RzLm1tICovLAogCQkJCUExNTUwMjI4MUUwNTAyMEIwMEEyNEM1
NyAvKiBEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxzLm1tICovLAogCQkJCUY0NEQwNjQ2
MUYzOTVDNEQwMDFBMEUyOSAvKiBFZGl0b3JTdGF0ZVRlc3RzLm1tICovLAorCQkJCTZCMjVBNzUx
MjVEQzhENEUwMDcwNzQ0RiAvKiBFdmVudEF0dHJpYnV0aW9uLm1tICovLAogCQkJCUNEQTI5QjI4
MjBGRDJBOTkwMEYxNUNFRCAvKiBFeGl0RnVsbHNjcmVlbk9uRW50ZXJQaVAubW0gKi8sCiAJCQkJ
MUQxMkJFQkYyNDVCRUY4NTAwNEMwQjdBIC8qIEV4aXRQaVBPblN1c3BlbmRWaWRlb0VsZW1lbnQu
bW0gKi8sCiAJCQkJMkQ4MTA0Q0IxQkVDMTNFNzAwMjBEQTQ2IC8qIEZpbmRJblBhZ2UubW0gKi8s
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1By
aXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAppbmRleCA3Y2Q3NzViNGM2MDQyMGVmYWUxZGUxNjc0
MTgxZDBlOTFmOWU2MmIzLi5iNzMyNjMzNDRmZTFmNmU5ZWIwZTQyYTI2ZTcyYzRmYjJmMzkwZjM2
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKQEAgLTQ2LDExICs0NiwxMSBAQCBURVNUKFBy
aXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZE1pblZhbHVlcykKICAgICBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJ
RChtaW42Qml0VmFsdWUpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSB7IHdl
YktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlIHsgZXhh
bXBsZVVSTCB9IH07CiAgICAgYXR0cmlidXRpb24uYXR0cmlidXRlQW5kR2V0RWFybGllc3RUaW1l
VG9TZW5kKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhKG1p
bjZCaXRWYWx1ZSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KG1pbjZCaXRWYWx1
ZSkpKTsKIAotICAgIGF1dG8gYXR0cmlidXRpb25VUkwgPSBhdHRyaWJ1dGlvbi5yZXBvcnRVUkwo
KTsKKyAgICBhdXRvIGF0dHJpYnV0aW9uVVJMID0gYXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBv
cnRVUkwoKTsKICAgICAKICAgICBBU1NFUlRfRVEoYXR0cmlidXRpb25VUkwuc3RyaW5nKCksICJo
dHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC9y
ZXBvcnQtYXR0cmlidXRpb24vIik7CiAKLSAgICBBU1NFUlRfRVEoYXR0cmlidXRpb24uanNvbigp
LT50b0pTT05TdHJpbmcoKSwgIntcInNvdXJjZV9lbmdhZ2VtZW50X3R5cGVcIjpcImNsaWNrXCIs
XCJzb3VyY2Vfc2l0ZVwiOlwid2Via2l0Lm9yZ1wiLFwic291cmNlX2lkXCI6MCxcImF0dHJpYnV0
ZWRfb25fc2l0ZVwiOlwiZXhhbXBsZS5jb21cIixcInRyaWdnZXJfZGF0YVwiOjAsXCJ2ZXJzaW9u
XCI6MX0iKTsKKyAgICBBU1NFUlRfRVEoYXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRKU09O
KCktPnRvSlNPTlN0cmluZygpLCAie1wic291cmNlX2VuZ2FnZW1lbnRfdHlwZVwiOlwiY2xpY2tc
IixcInNvdXJjZV9zaXRlXCI6XCJ3ZWJraXQub3JnXCIsXCJzb3VyY2VfaWRcIjowLFwiYXR0cmli
dXRlZF9vbl9zaXRlXCI6XCJleGFtcGxlLmNvbVwiLFwidHJpZ2dlcl9kYXRhXCI6MCxcInZlcnNp
b25cIjoxfSIpOwogfQogCiBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZE1pZFZh
bHVlcykKQEAgLTU4LDExICs1OCwxMSBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBW
YWxpZE1pZFZhbHVlcykKICAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRCgodWludDMyX3QpMTkyKSwgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUgeyB3ZWJLaXRVUkwgfSwgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0ZSB7IGV4YW1wbGVVUkwgfSB9OwogICAgIGF0dHJp
YnV0aW9uLmF0dHJpYnV0ZUFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSgodWludDMyX3QpOSwgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OlByaW9yaXR5KCh1aW50MzJfdCkyMikpKTsKIAotICAgIGF1dG8gYXR0cmli
dXRpb25VUkwgPSBhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKTsKKyAgICBhdXRvIGF0dHJpYnV0aW9u
VVJMID0gYXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRVUkwoKTsKICAgICAKICAgICBBU1NF
UlRfRVEoYXR0cmlidXRpb25VUkwuc3RyaW5nKCksICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwt
a25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC9yZXBvcnQtYXR0cmlidXRpb24vIik7CiAK
LSAgICBBU1NFUlRfRVEoYXR0cmlidXRpb24uanNvbigpLT50b0pTT05TdHJpbmcoKSwgIntcInNv
dXJjZV9lbmdhZ2VtZW50X3R5cGVcIjpcImNsaWNrXCIsXCJzb3VyY2Vfc2l0ZVwiOlwid2Via2l0
Lm9yZ1wiLFwic291cmNlX2lkXCI6MTkyLFwiYXR0cmlidXRlZF9vbl9zaXRlXCI6XCJleGFtcGxl
LmNvbVwiLFwidHJpZ2dlcl9kYXRhXCI6OSxcInZlcnNpb25cIjoxfSIpOworICAgIEFTU0VSVF9F
UShhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydEpTT04oKS0+dG9KU09OU3RyaW5nKCksICJ7
XCJzb3VyY2VfZW5nYWdlbWVudF90eXBlXCI6XCJjbGlja1wiLFwic291cmNlX3NpdGVcIjpcIndl
YmtpdC5vcmdcIixcInNvdXJjZV9pZFwiOjE5MixcImF0dHJpYnV0ZWRfb25fc2l0ZVwiOlwiZXhh
bXBsZS5jb21cIixcInRyaWdnZXJfZGF0YVwiOjksXCJ2ZXJzaW9uXCI6MX0iKTsKIH0KIAogVEVT
VChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgVmFsaWRNYXhWYWx1ZXMpCkBAIC03MCwxMSArNzAs
MTEgQEAgVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgVmFsaWRNYXhWYWx1ZXMpCiAgICAg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6U291cmNlSUQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEOjpNYXhFbnRy
b3B5KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUgeyB3ZWJLaXRVUkwgfSwg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0ZSB7IGV4YW1wbGVVUkwgfSB9
OwogICAgIGF0dHJpYnV0aW9uLmF0dHJpYnV0ZUFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YShQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YTo6TWF4RW50cm9weSwgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0
eTo6TWF4RW50cm9weSkpKTsKIAotICAgIGF1dG8gYXR0cmlidXRpb25VUkwgPSBhdHRyaWJ1dGlv
bi5yZXBvcnRVUkwoKTsKKyAgICBhdXRvIGF0dHJpYnV0aW9uVVJMID0gYXR0cmlidXRpb24uYXR0
cmlidXRpb25SZXBvcnRVUkwoKTsKICAgICAKICAgICBBU1NFUlRfRVEoYXR0cmlidXRpb25VUkwu
c3RyaW5nKCksICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1t
ZWFzdXJlbWVudC9yZXBvcnQtYXR0cmlidXRpb24vIik7CiAKLSAgICBBU1NFUlRfRVEoYXR0cmli
dXRpb24uanNvbigpLT50b0pTT05TdHJpbmcoKSwgIntcInNvdXJjZV9lbmdhZ2VtZW50X3R5cGVc
IjpcImNsaWNrXCIsXCJzb3VyY2Vfc2l0ZVwiOlwid2Via2l0Lm9yZ1wiLFwic291cmNlX2lkXCI6
MjU1LFwiYXR0cmlidXRlZF9vbl9zaXRlXCI6XCJleGFtcGxlLmNvbVwiLFwidHJpZ2dlcl9kYXRh
XCI6MTUsXCJ2ZXJzaW9uXCI6MX0iKTsKKyAgICBBU1NFUlRfRVEoYXR0cmlidXRpb24uYXR0cmli
dXRpb25SZXBvcnRKU09OKCktPnRvSlNPTlN0cmluZygpLCAie1wic291cmNlX2VuZ2FnZW1lbnRf
dHlwZVwiOlwiY2xpY2tcIixcInNvdXJjZV9zaXRlXCI6XCJ3ZWJraXQub3JnXCIsXCJzb3VyY2Vf
aWRcIjoyNTUsXCJhdHRyaWJ1dGVkX29uX3NpdGVcIjpcImV4YW1wbGUuY29tXCIsXCJ0cmlnZ2Vy
X2RhdGFcIjoxNSxcInZlcnNpb25cIjoxfSIpOwogfQogCiBURVNUKFByaXZhdGVDbGlja01lYXN1
cmVtZW50LCBFYXJsaWVzdFRpbWVUb1NlbmRBdHRyaWJ1dGlvbk1pbmltdW1EZWxheSkKQEAgLTEz
Niw3ICsxMzYsNyBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkU291cmNl
SUQpCiAgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6U291cmNlSUQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlE
OjpNYXhFbnRyb3B5ICsgMSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlIHsg
d2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUgeyBl
eGFtcGxlVVJMIH0gfTsKICAgICBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGVBbmRHZXRFYXJsaWVzdFRp
bWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEo
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE6Ok1heEVudHJv
cHksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6UHJpb3JpdHk6Ok1heEVudHJvcHkpKSk7CiAKLSAgICBBU1NFUlRfVFJVRShhdHRyaWJ1
dGlvbi5yZXBvcnRVUkwoKS5pc0VtcHR5KCkpOworICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9u
LmF0dHJpYnV0aW9uUmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKIH0KIAogVEVTVChQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCwgSW52YWxpZFNvdXJjZUhvc3QpCkBAIC0xNDQsNyArMTQ0LDcgQEAgVEVT
VChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZFNvdXJjZUhvc3QpCiAgICAgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
U291cmNlSUQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEOjpNYXhFbnRyb3B5KSwg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUgeyBlbXB0eVVSTCB9LCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlIHsgZXhhbXBsZVVSTCB9IH07CiAgICAg
YXR0cmlidXRpb24uYXR0cmlidXRlQW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhKFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhOjpNYXhFbnRyb3B5LCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6UHJpb3JpdHkoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5OjpNYXhF
bnRyb3B5KSkpOwogCi0gICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24ucmVwb3J0VVJMKCkuaXNF
bXB0eSgpKTsKKyAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydFVS
TCgpLmlzRW1wdHkoKSk7CiB9CiAKIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFs
aWREZXN0aW5hdGlvbkhvc3QpCkBAIC0xNTIsNyArMTUyLDcgQEAgVEVTVChQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCwgSW52YWxpZERlc3RpbmF0aW9uSG9zdCkKICAgICBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRChQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQ6Ok1heEVudHJvcHkgKyAxKSwgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUgeyB3ZWJLaXRVUkwgfSwgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0ZSB7IGVtcHR5VVJMIH0gfTsKICAgICBhdHRyaWJ1
dGlvbi5hdHRyaWJ1dGVBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0
dHJpYnV0aW9uVHJpZ2dlckRhdGE6Ok1heEVudHJvcHksIFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHk6Ok1heEVudHJvcHkp
KSk7CiAKLSAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKS5pc0VtcHR5KCkp
OworICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0VVJMKCkuaXNF
bXB0eSgpKTsKIH0KIAogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgQXR0cmlidXRpb25U
cmlnZ2VyRGF0YSkKQEAgLTE2MCw3ICsxNjAsNyBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVt
ZW50LCBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhKQogICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50
IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEKFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpTb3VyY2VJRDo6TWF4RW50cm9weSksIFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpTb3VyY2VTaXRlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpBdHRyaWJ1dGVPblNpdGUgeyBleGFtcGxlVVJMIH0gfTsKICAgICBhdHRyaWJ1dGlvbi5hdHRy
aWJ1dGVBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0
dHJpYnV0aW9uVHJpZ2dlckRhdGEoKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlv
blRyaWdnZXJEYXRhOjpNYXhFbnRyb3B5ICsgMSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQ
cmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHk6Ok1heEVudHJvcHkpKSk7
CiAKLSAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKS5pc0VtcHR5KCkpOwor
ICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0VVJMKCkuaXNFbXB0
eSgpKTsKIH0KIAogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZFByaW9yaXR5
KQpAQCAtMTY4LDE0ICsxNjgsMTQgQEAgVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52
YWxpZFByaW9yaXR5KQogICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEKFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpTb3VyY2VJRDo6TWF4RW50cm9weSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VT
aXRlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNp
dGUgeyBleGFtcGxlVVJMIH0gfTsKICAgICBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGVBbmRHZXRFYXJs
aWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE6Ok1h
eEVudHJvcHksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6UHJpb3JpdHk6Ok1heEVudHJvcHkgKyAxKSkpOwogCi0gICAgQVNTRVJUX1RS
VUUoYXR0cmlidXRpb24ucmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKKyAgICBBU1NFUlRfVFJVRShh
dHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydFVSTCgpLmlzRW1wdHkoKSk7CiB9CiAKIFRFU1Qo
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRNaXNzaW5nQ29udmVyc2lvbikKIHsKICAg
ICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpTb3VyY2VJRChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQ6Ok1heEVu
dHJvcHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSB7IHdlYktpdFVSTCB9
LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlIHsgZXhhbXBsZVVSTCB9
IH07CiAKLSAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKS5pc0VtcHR5KCkp
OworICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0VVJMKCkuaXNF
bXB0eSgpKTsKICAgICBBU1NFUlRfRkFMU0UoYXR0cmlidXRpb24uZWFybGllc3RUaW1lVG9TZW5k
KCkpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0V2ZW50QXR0cmlidXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KaW5kZXggY2U0ZTJkZjE2ODUzMTMyM2FiOTcyZDc3
ZDQ5MzVhOTNhOWJmMjM2Zi4uZDg1ZjdkMTMzN2JmNGFhMGM1NDNmNGY4Zjk5MmQxZTk4ZjA1Mjkz
ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVu
dEF0dHJpYnV0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpAQCAtMTA2LDcgKzEwNiw3IEBAIFRFU1QoRXZlbnRBdHRy
aWJ1dGlvbiwgQmFzaWMpCiAgICAgd2ViVmlldy5fdWlFdmVudEF0dHJpYnV0aW9uID0gKFVJRXZl
bnRBdHRyaWJ1dGlvbiAqKWF0dHJpYnV0aW9uOwogICAgIFt3ZWJWaWV3LmNvbmZpZ3VyYXRpb24u
d2Vic2l0ZURhdGFTdG9yZSBfc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQ6WUVTXTsK
ICAgICBbd2ViVmlldy5jb25maWd1cmF0aW9uLndlYnNpdGVEYXRhU3RvcmUgX2FsbG93VExTQ2Vy
dGlmaWNhdGVDaGFpbjpAWyhpZCl0ZXN0Q2VydGlmaWNhdGUoKS5nZXQoKV0gZm9ySG9zdDpzZXJ2
ZXJVUkwuaG9zdF07Ci0gICAgW3dlYlZpZXcgX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29u
dmVyc2lvblVSTEZvclRlc3Rpbmc6c2VydmVyVVJMIGNvbXBsZXRpb25IYW5kbGVyOl57CisgICAg
W3dlYlZpZXcgX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxG
b3JUZXN0aW5nOnNlcnZlclVSTCBjb21wbGV0aW9uSGFuZGxlcjpeewogICAgICAgICBbd2ViVmll
dyBfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZzpZRVMg
Y29tcGxldGlvbkhhbmRsZXI6XnsKICAgICAgICAgICAgIE5TU3RyaW5nICpodG1sID0gW05TU3Ry
aW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCI8c2NyaXB0PmZldGNoKCclQGNvbnZlcnNpb25SZXF1ZXN0
QmVmb3JlUmVkaXJlY3QnLHttb2RlOiduby1jb3JzJ30pPC9zY3JpcHQ+Iiwgc2VydmVyVVJMXTsK
ICAgICAgICAgICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOmh0bWwgYmFzZVVSTDpleGFtcGxl
VVJMXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IGEwNzFlY2RkZDllNDM0ODNmZTc3
MTk2ODZjMzVhNGYzN2I4YjFiYzcuLmZiOGZjNDYyNTU1NmJiMGY1MTMyZmFiNmRmMWY2NWNmNDA5
ZmYyMDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtNDAzLDcgKzQwMyw4IEBAIGlu
dGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICB1bmRlZmluZWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhib29sZWFuIHZhbHVlKTsKICAgICB1bmRlZmlu
ZWQgbWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0
aW5nKCk7CiAgICAgdW5kZWZpbmVkIHNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Np
b25SZXN0YXJ0KCk7Ci0gICAgdW5kZWZpbmVkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29u
dmVyc2lvblVSTEZvclRlc3RpbmcoRE9NU3RyaW5nIHVybCk7CisgICAgdW5kZWZpbmVkIHNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKERPTVN0cmlu
ZyB1cmwpOworICAgIHVuZGVmaW5lZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0
aW9uUmVwb3J0VVJMRm9yVGVzdGluZyhET01TdHJpbmcgdXJsKTsKICAgICB1bmRlZmluZWQgbWFy
a1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKIAogICAgIC8v
IFNwZWVjaFJlY29nbml0aW9uCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCA4NjRjY2UyODU5N2E0MThkODlhNTM1N2Rj
OTIwMGNjZDAxOTRjN2Q1Li5jMDE3ZmMwZjRiM2MyZTdkZjNmMTg5ODliMDdhNjgyZjBjMmFjNjQ4
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHAKQEAgLTIwMjUsOSArMjAyNSwxNSBAQCB2b2lkIFRlc3RSdW5uZXI6OnNpbXVs
YXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KCkKICAgICBwb3N0U3luY2hy
b25vdXNQYWdlTWVzc2FnZSgiU2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJl
c3RhcnQiKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKEpTU3RyaW5nUmVmIHVybFN0cmluZykKK3ZvaWQgVGVz
dFJ1bm5lcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRl
c3RpbmcoSlNTdHJpbmdSZWYgdXJsU3RyaW5nKQogewotICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VN
ZXNzYWdlKCJTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5n
IiwKKyAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgiU2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmciLAorICAgICAgICBhZG9wdFdLKFdLVVJM
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKHRvV1RGU3RyaW5nKHVybFN0cmluZykudXRmOCgpLmRhdGEo
KSkpKTsKK30KKwordm9pZCBUZXN0UnVubmVyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0
dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZyhKU1N0cmluZ1JlZiB1cmxTdHJpbmcpCit7Cisg
ICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoIlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nIiwKICAgICAgICAgYWRvcHRXSyhXS1VSTENy
ZWF0ZVdpdGhVVEY4Q1N0cmluZyh0b1dURlN0cmluZyh1cmxTdHJpbmcpLnV0ZjgoKS5kYXRhKCkp
KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmgKaW5kZXggYmNmNzEwYjdiODU0NjlmOWJjNjkyMDQxMjgyNzE0NmQyM2IzYmM5
Ny4uMmQzODA1YzA2ZmRhOGYyNDk5ODgxNWMxMTlmYjBmZWRhYzM3ZDA2ZCAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTUx
Miw3ICs1MTIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhclByaXZhdGVDbGlja01lYXN1cmVt
ZW50KCk7CiAgICAgdm9pZCBjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50c1Rocm91Z2hXZWJz
aXRlRGF0YVJlbW92YWwoKTsKICAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3Zl
cnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1ZSk7Ci0gICAgdm9pZCBzZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKEpTU3RyaW5nUmVmKTsKKyAgICB2
b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5n
KEpTU3RyaW5nUmVmKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmli
dXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKEpTU3RyaW5nUmVmKTsKICAgICB2b2lkIG1hcmtQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CiAgICAgdm9pZCBtYXJr
QXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsK
ICAgICB2b2lkIHNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KCk7
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGIzZjNiOTMz
ZDlkYWYwMDZlMGZmODczMjQ0ZTc1YTkzNmY3MjI4ZDguLjUxNmJkOWM2ZDQ5ODZlZGY3YTk1NjBl
NDIyNzljYjNhNWUwODZmMzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwCkBAIC0zNjMwLDEwICszNjMwLDE3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNpbXVs
YXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KCkKICAgICBydW5VbnRpbChj
YWxsYmFja0NvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKIH0KIAotdm9pZCBUZXN0Q29udHJvbGxl
cjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhXS1VS
TFJlZiB1cmwpCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyhXS1VSTFJlZiB1cmwpCiB7CiAgICAgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2tDb250ZXh0IGNhbGxiYWNrQ29udGV4dCgqdGhp
cyk7Ci0gICAgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9y
VGVzdGluZyhtX21haW5XZWJWaWV3LT5wYWdlKCksIHVybCwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRWb2lkQ2FsbGJhY2ssICZjYWxsYmFja0NvbnRleHQpOworICAgIFdLUGFnZVNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKG1fbWFpbldlYlZpZXct
PnBhZ2UoKSwgdXJsLCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZvaWRDYWxsYmFjaywgJmNhbGxi
YWNrQ29udGV4dCk7CisgICAgcnVuVW50aWwoY2FsbGJhY2tDb250ZXh0LmRvbmUsIG5vVGltZW91
dCk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKFdLVVJMUmVmIHVybCkKK3sKKyAgICBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudFZvaWRDYWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0
aGlzKTsKKyAgICBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVw
b3J0VVJMRm9yVGVzdGluZyhtX21haW5XZWJWaWV3LT5wYWdlKCksIHVybCwgcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2ssICZjYWxsYmFja0NvbnRleHQpOwogICAgIHJ1blVudGls
KGNhbGxiYWNrQ29udGV4dC5kb25lLCBub1RpbWVvdXQpOwogfQogCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggODE4YzJiNGVjNGE1NjJiYzA2N2E0ZjNkNWNlYmJj
ZGJkMDVjMDQ3Yy4uOTFlZjlkNTlmNzBiYjMyM2U1MzQ3Y2Y3ZTM1ZmY0NTk0MWU3M2JjMCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMzQ2LDcgKzM0Niw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1l
ckZvclRlc3RpbmcoYm9vbCB2YWx1ZSk7CiAgICAgdm9pZCBtYXJrQXR0cmlidXRlZFByaXZhdGVD
bGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKICAgICB2b2lkIHNpbXVsYXRl
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KCk7Ci0gICAgdm9pZCBzZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdLVVJMUmVmKTsKKyAg
ICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0
aW5nKFdLVVJMUmVmKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmli
dXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKFdLVVJMUmVmKTsKICAgICB2b2lkIG1hcmtQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CiAKICAgICB2b2lkIGRpZFNl
dEFwcEJvdW5kRG9tYWlucygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcAppbmRleCA1NTAzNTVjN2I4Yjk4NDg0YTdkMjhjZjU1OTVmNjM4NzUxN2JmNGJh
Li4wZjA5MjI3MzgzZTVlZjIyZDJjYjQ4NDNhOGZhNDM0NjAyNmI0MTBhIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMTMzOCwxMCArMTMzOCwxNiBAQCBX
S1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25v
dXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9u
KCkuc2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJlc3RhcnQoKTsKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQotICAgIAotICAgIGlmIChXS1N0cmluZ0lzRXF1YWxU
b1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252
ZXJzaW9uVVJMRm9yVGVzdGluZyIpKSB7CisKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4
Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWdu
YXR1cmVVUkxGb3JUZXN0aW5nIikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3Nh
Z2VCb2R5KSA9PSBXS1VSTEdldFR5cGVJRCgpKTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNp
bmdsZXRvbigpLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JU
ZXN0aW5nKHN0YXRpY19jYXN0PFdLVVJMUmVmPihtZXNzYWdlQm9keSkpOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmlu
ZyhtZXNzYWdlTmFtZSwgIlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBv
cnRVUkxGb3JUZXN0aW5nIikpIHsKICAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VC
b2R5KSA9PSBXS1VSTEdldFR5cGVJRCgpKTsKLSAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmds
ZXRvbigpLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rpbmco
c3RhdGljX2Nhc3Q8V0tVUkxSZWY+KG1lc3NhZ2VCb2R5KSk7CisgICAgICAgIFRlc3RDb250cm9s
bGVyOjpzaW5nbGV0b24oKS5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVw
b3J0VVJMRm9yVGVzdGluZyhzdGF0aWNfY2FzdDxXS1VSTFJlZj4obWVzc2FnZUJvZHkpKTsKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDhjOGI3MDUxYWI4NjYyZWYy
NGJmOWRkZmJlOTliNzQ0OTYzNTAxNS4uNTcxZWE2YzdhMWEwOWNhMWIyZGVjM2NkN2IxM2M0Zjcw
YjQ0MzAzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTAyLTE3ICBKb2huIFdpbGFuZGVy
ICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBDTTogUmVxdWVzdCBzaWduYXR1cmUg
Zm9yIHVubGlua2FibGUgdG9rZW4gdXNpbmcgYXR0cmlidXRpb25Tb3VyY2VOb25jZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMDc2CisgICAgICAg
IDxyZGFyOi8vNzM1ODE2NTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisK
KyAgICAgICAgKiBodHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLXByaXZhdGUtY2xp
Y2stbWVhc3VyZW1lbnQuaHRtbDoKKyAgICAgICAgICAgIEFkb3B0aW9uIG9mIHJlbmFtZWQgVGVz
dFJ1bm5lciBmdW5jdGlvbiBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVw
b3J0VVJMRm9yVGVzdGluZygpLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1sOgor
ICAgICAgICAgICAgQWRvcHRpb24gb2YgcmVuYW1lZCBUZXN0UnVubmVyIGZ1bmN0aW9uIHNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKCkuCisg
ICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWF0dHJp
YnV0aW9uLXJlcG9ydC1nZXRzLXNlbnQtb24tc2Vzc2lvbi1zdGFydC5odG1sOgorICAgICAgICAg
ICAgQWRvcHRpb24gb2YgcmVuYW1lZCBUZXN0UnVubmVyIGZ1bmN0aW9uIHNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKCkuCisgICAgICAgICog
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvZ2V0Q29udmVyc2lv
bkRhdGEucGhwOgorICAgICAgICAgICAgQWRvcHRpb24gb2YgcmVuYW1lZCBUZXN0UnVubmVyIGZ1
bmN0aW9uIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JU
ZXN0aW5nKCkuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9y
ZXNvdXJjZXMvZ2V0VG9rZW5TaWduaW5nRGF0YS5waHA6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3NpZ25Ub2tlbi5waHA6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3Vy
Y2VzL3Rva2VuU2lnbmluZ0ZpbGVQYXRoLnBocDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvdXRpbC5qczoKKyAgICAgICAgKHRl
YXJEb3duQW5kRmluaXNoKToKKyAgICAgICAgICAgIEFkb3B0aW9uIG9mIHJlbmFtZWQgVGVzdFJ1
bm5lciBmdW5jdGlvbiBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0
VVJMRm9yVGVzdGluZygpLgorICAgICAgICAgICAgTm93IGFsc28gY2FsbHMgc2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcoKS4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlbmQtYXR0cmlidXRpb24tY29udmVy
c2lvbi1yZXF1ZXN0Lmh0bWw6CisgICAgICAgICAgICBBZG9wdGlvbiBvZiByZW5hbWVkIFRlc3RS
dW5uZXIgZnVuY3Rpb24gc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9y
dFVSTEZvclRlc3RpbmcoKS4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L3N0b3JlLXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQtd2l0aC1zb3VyY2Utbm9uY2Ut
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L3N0b3JlLXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQtd2l0aC1zb3VyY2Utbm9u
Y2UuaHRtbDogQWRkZWQuCisKIDIwMjEtMDItMTcgIFJvYmVydCBKZW5uZXIgIDxqZW5uZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNzI4NDIpOiBbIEJpZ1N1ciBXazIgXSBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1z
ZWVrYWJsZS5odG1sIGlzIGEgZmxha2V5IHRleHQgZmFpbHVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9ibG9jay1wcml2YXRlLWNsaWNrLW1l
YXN1cmVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25z
L2Jsb2NrLXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQuaHRtbAppbmRleCA1NWQyY2NiOTU0MzM5
YmQ2MjA3YmJhNzk1MTg5MTkzOTYyMTAxMGM1Li4wZTc2NWM4ZDBmMjJmMWEyYmMzMzNlNzhlMjY3
YjY5YzY5NmZjNzNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NvbnRlbnRl
eHRlbnNpb25zL2Jsb2NrLXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLXByaXZhdGUtY2xpY2st
bWVhc3VyZW1lbnQuaHRtbApAQCAtMTUsNyArMTUsNyBAQAogCiAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRP
dmVycmlkZVRpbWVyRm9yVGVzdGluZyh0cnVlKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKCJodHRwOi8vMTI3LjAu
MC4xOjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBv
cnQucGhwIik7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRB
dHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5waHAiKTsKICAg
ICB9CiAKICAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvbnZl
cnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29udmVyc2lvbi1kaXNhYmxlZC1pbi1l
cGhlbWVyYWwtc2Vzc2lvbi5odG1sCmluZGV4IDAxZjAwMmUwZmZmYjE5MTJiNjZlNmZiZTFiZTYx
NzU2OWE3ZTFkYTEuLmM4NTA3YTJlOTRiOTI0NjgwNzg2NTA5MGFhMDYzNzA1M2QzODU1YzEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
Y29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29udmVyc2lvbi1kaXNh
YmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1sCkBAIC0xOCw3ICsxOCw3IEBACiAgICAgcHJl
cGFyZVRlc3QoKTsKIAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1
bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKCJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2Nv
bnZlcnNpb25SZXBvcnQucGhwP25vbmNlPSIgKyBub25jZSk7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3Rpbmco
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMv
Y29udmVyc2lvblJlcG9ydC5waHA/bm9uY2U9IiArIG5vbmNlKTsKIAogICAgIGZ1bmN0aW9uIGFj
dGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsKICAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWF0dHJpYnV0aW9uLXJlcG9y
dC1nZXRzLXNlbnQtb24tc2Vzc2lvbi1zdGFydC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWF0dHJpYnV0aW9uLXJlcG9ydC1nZXRz
LXNlbnQtb24tc2Vzc2lvbi1zdGFydC5odG1sCmluZGV4IGUxODM2NmQzZDkxMGFkM2UxNWI5MTc1
OGRhN2JiM2MzY2RiMmE3NmQuLmE0OWYzOGQ3ZGUzMjk2N2Q1NzQ0NzgxYTM4YjhlM2NlYmU2NmI1
NjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvZXhwaXJlZC1hdHRyaWJ1dGlvbi1yZXBvcnQtZ2V0cy1zZW50LW9uLXNlc3Npb24tc3Rh
cnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L2V4cGlyZWQtYXR0cmlidXRpb24tcmVwb3J0LWdldHMtc2VudC1vbi1zZXNzaW9uLXN0YXJ0
Lmh0bWwKQEAgLTE4LDcgKzE4LDcgQEAKICAgICBwcmVwYXJlVGVzdCgpOwogCiAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZygiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0LnBocD9ub25j
ZT0iICsgbm9uY2UpOworICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhwP25v
bmNlPSIgKyBub25jZSk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVs
ZW1lbnRJRCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvZ2V0Q29udmVyc2lvbkRhdGEucGhwIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvZ2V0Q29udmVy
c2lvbkRhdGEucGhwCmluZGV4IGE5YmQzZGZkNmJiYzBkMGYzMzZlOWRhZWU4YzAwYjk1NWEwM2Rl
ZDguLjAzODg4YWZiOTMxODFmYzhjZjgzODRhM2MwN2M4NjRkZTU0ZmI1ZTYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2Vz
L2dldENvbnZlcnNpb25EYXRhLnBocAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9nZXRDb252ZXJzaW9uRGF0YS5waHAKQEAgLTQ1
LDcgKzQ1LDcgQEAgaWYgKGlzc2V0KCRfR0VUWydlbmRUZXN0J10pKSB7CiAgICAgZWNobyAiaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7IjsKICAgICBlY2hvICIgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7IjsKICAgICBlY2hvICIgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGZhbHNlKTsiOwotICAgIGVjaG8gIiAgICB0ZXN0
UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rpbmco
JycpOyI7CisgICAgZWNobyAiICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoJycpOyI7CiAgICAgZWNobyAifSI7CiAg
ICAgZWNobyAiPC9zY3JpcHQ+IjsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2dldFRva2VuU2lnbmluZ0RhdGEu
cGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNv
dXJjZXMvZ2V0VG9rZW5TaWduaW5nRGF0YS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjljZWVmMjUwOTE2YTg4
NWNlN2UzYWE1ZWM1YWYzNzc0YzVjMWU0NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2dldFRva2VuU2ln
bmluZ0RhdGEucGhwCkBAIC0wLDAgKzEsNTQgQEAKKzw/cGhwCityZXF1aXJlX29uY2UgJ3Rva2Vu
U2lnbmluZ0ZpbGVQYXRoLnBocCc7CisKKyRub1RpbWVvdXQgPSBUcnVlOworJHRpbWVvdXRNc2Vj
cyA9IDA7CitpZiAoaXNzZXQoJF9HRVRbJ3RpbWVvdXRfbXMnXSkpIHsKKyAgICAkbm9UaW1lb3V0
ID0gRmFsc2U7CisgICAgJHRpbWVvdXRNc2VjcyA9IChpbnQpICRfR0VUWyd0aW1lb3V0X21zJ107
Cit9CisKKyR0b2tlblNpZ25pbmdGaWxlRm91bmQgPSBGYWxzZTsKK3doaWxlICgkbm9UaW1lb3V0
IHx8ICR0aW1lb3V0TXNlY3MgPiAwKSB7CisgICAgaWYgKGZpbGVfZXhpc3RzKCR0b2tlblNpZ25p
bmdGaWxlUGF0aCkpIHsKKyAgICAgICAgJHRva2VuU2lnbmluZ0ZpbGVGb3VuZCA9IFRydWU7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICAkc2xlZXBNc2VjcyA9IDEwOworICAgIHVzbGVlcCgk
c2xlZXBNc2VjcyAqIDEwMDApOworICAgIGlmICghJG5vVGltZW91dCkgeworICAgICAgICAkdGlt
ZW91dE1zZWNzIC09ICRzbGVlcE1zZWNzOworICAgIH0KKyAgICAvLyBmaWxlX2V4aXN0cygpIGNh
Y2hlcyByZXN1bHRzLCB3ZSB3YW50IHRvIGludmFsaWRhdGUgdGhlIGNhY2hlLgorICAgIGNsZWFy
c3RhdGNhY2hlKCk7Cit9CisKKworZWNobyAiPGh0bWw+PGJvZHk+XG4iOworCitpZiAoJHRva2Vu
U2lnbmluZ0ZpbGVGb3VuZCkgeworICAgIGVjaG8gIlRva2VuIHNpZ25pbmcgcmVxdWVzdCByZWNl
aXZlZC4iOworICAgICR0b2tlblNpZ25pbmdGaWxlID0gZm9wZW4oJHRva2VuU2lnbmluZ0ZpbGVQ
YXRoLCAncicpOworICAgIHdoaWxlICgkbGluZSA9IGZnZXRzKCR0b2tlblNpZ25pbmdGaWxlKSkg
eworICAgICAgICBlY2hvICI8YnI+IjsKKyAgICAgICAgZWNobyB0cmltKCRsaW5lKTsKKyAgICB9
CisgICAgZWNobyAiPGJyPiI7CisgICAgZmNsb3NlKCR0b2tlblNpZ25pbmdGaWxlKTsKKyAgICB1
bmxpbmsoJHRva2VuU2lnbmluZ0ZpbGVQYXRoKTsKK30gZWxzZSB7CisgICAgZWNobyAiVG9rZW4g
c2lnbmluZyByZXF1ZXN0IG5vdCByZWNlaXZlZCAtIHRpbWVkIG91dC48YnI+IjsKK30KKworaWYg
KGlzc2V0KCRfR0VUWydlbmRUZXN0J10pKSB7CisgICAgZWNobyAiPHNjcmlwdD4iOworICAgIGVj
aG8gImlmICh3aW5kb3cudGVzdFJ1bm5lcikgeyI7CisgICAgZWNobyAiICAgIHRlc3RSdW5uZXIu
c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhmYWxzZSk7
IjsKKyAgICBlY2hvICIgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRv
a2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZygnJyk7IjsKKyAgICBlY2hvICIgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7IjsKKyAgICBlY2hvICJ9IjsKKyAgICBlY2hvICI8L3NjcmlwdD4iOwor
fQorCitlY2hvICI8L2JvZHk+PC9odG1sPiI7Cis/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvc2lnblRva2VuLnBo
cCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3Vy
Y2VzL3NpZ25Ub2tlbi5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTE0ZWFiMmRkNmIzNTNkYmI4YTA4MjNlYjQy
ZGM0YjVlYTVlMGI1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3NpZ25Ub2tlbi5waHAKQEAgLTAsMCAr
MSw0NCBAQAorPD9waHAKK3JlcXVpcmVfb25jZSAidG9rZW5TaWduaW5nRmlsZVBhdGgucGhwIjsK
KworJHRva2VuU2lnbmluZ0ZpbGUgPSBmb3BlbigkdG9rZW5TaWduaW5nRmlsZVBhdGggLiAiLnRt
cCIsICd3Jyk7CiskaHR0cEhlYWRlcnMgPSAkX1NFUlZFUjsKKyRjb29raWVzRm91bmQgPSBmYWxz
ZTsKKworaWYgKCR2YWx1ZSA9ICRodHRwSGVhZGVyc1siSFRUUF9IT1NUIl0pIHsKKyAgICBmd3Jp
dGUoJHRva2VuU2lnbmluZ0ZpbGUsICJIVFRQX0hPU1Q6ICR2YWx1ZVxuIik7Cit9CisKK2lmICgk
dmFsdWUgPSAkaHR0cEhlYWRlcnNbIkhUVFBfQ09PS0lFIl0pIHsKKyAgICBmd3JpdGUoJHRva2Vu
U2lnbmluZ0ZpbGUsICJDb29raWVzIGluIHRva2VuIHNpZ25pbmcgcmVxdWVzdDogJHZhbHVlXG4i
KTsKKyAgICAkY29va2llc0ZvdW5kID0gdHJ1ZTsKK30KKworaWYgKCR2YWx1ZSA9ICRodHRwSGVh
ZGVyc1siQ09OVEVOVF9UWVBFIl0pIHsKKyAgICBmd3JpdGUoJHRva2VuU2lnbmluZ0ZpbGUsICJD
b250ZW50IHR5cGU6ICR2YWx1ZVxuIik7Cit9CisKK2lmICgkdmFsdWUgPSAkaHR0cEhlYWRlcnNb
IlJFUVVFU1RfVVJJIl0pIHsKKyAgICAkdmFsdWUgPSAkaHR0cEhlYWRlcnNbIlJFUVVFU1RfVVJJ
Il07CisgICAgJHBvc2l0aW9uT2ZEdW1teSA9IHN0cnBvcygkdmFsdWUsICI/ZHVtbXk9Iik7Cisg
ICAgaWYgKCRwb3NpdGlvbk9mRHVtbXkgPT09IGZhbHNlKQorICAgICAgICAkb3V0cHV0VVJMID0g
JHZhbHVlOworICAgIGVsc2UKKyAgICAgICAgJG91dHB1dFVSTCA9IHN1YnN0cigkdmFsdWUsIDAs
ICRwb3NpdGlvbk9mRHVtbXkpOworICAgIGZ3cml0ZSgkdG9rZW5TaWduaW5nRmlsZSwgIlJFUVVF
U1RfVVJJOiAkb3V0cHV0VVJMXG4iKTsKK30KKworaWYgKCEkY29va2llc0ZvdW5kKSB7CisgICAg
ZndyaXRlKCR0b2tlblNpZ25pbmdGaWxlLCAiTm8gY29va2llcyBpbiB0b2tlbiBzaWduaW5nIHJl
cXVlc3QuXG4iKTsKK30KKworJHJlcXVlc3RCb2R5ID0gZmlsZV9nZXRfY29udGVudHMoInBocDov
L2lucHV0Iik7Citmd3JpdGUoJHRva2VuU2lnbmluZ0ZpbGUsICJSZXF1ZXN0IGJvZHk6XG4kcmVx
dWVzdEJvZHlcbiIpOworCitmY2xvc2UoJHRva2VuU2lnbmluZ0ZpbGUpOworcmVuYW1lKCR0b2tl
blNpZ25pbmdGaWxlUGF0aCAuICIudG1wIiwgJHRva2VuU2lnbmluZ0ZpbGVQYXRoKTsKKworaGVh
ZGVyKCJIVFRQLzEuMSAyMDEgQ3JlYXRlZCIpOworc2V0Y29va2llKCJjb29raWVTZXRJblRva2Vu
U2lnbmluZ1Jlc3BvbnNlIiwgIjEiLCAwLCAiLyIpOworCis/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvdG9rZW5T
aWduaW5nRmlsZVBhdGgucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9yZXNvdXJjZXMvdG9rZW5TaWduaW5nRmlsZVBhdGgucGhwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjcyZjU5ZGExZTllZTQyMTZhYjQwOTNhYWVhMjc4YzBjZjUyZWE0ZjcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291
cmNlcy90b2tlblNpZ25pbmdGaWxlUGF0aC5waHAKQEAgLTAsMCArMSw5IEBACis8P3BocAorcmVx
dWlyZV9vbmNlICcuLi8uLi9yZXNvdXJjZXMvcG9ydGFiaWxpdHlMYXllci5waHAnOworCitpZiAo
aXNzZXQoJF9HRVRbImR1bW15Il0pKQorICAgICR0b2tlblNpZ25pbmdGaWxlTmFtZSA9ICIvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25pbmdSZXF1ZXN0IiAuICRfR0VUWyJkdW1teSJd
IC4gIi50eHQiOworZWxzZQorICAgICR0b2tlblNpZ25pbmdGaWxlTmFtZSA9ICIvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRUb2tlblNpZ25pbmdSZXF1ZXN0LnR4dCI7CiskdG9rZW5TaWduaW5nRmls
ZVBhdGggPSBzeXNfZ2V0X3RlbXBfZGlyKCkgLiAkdG9rZW5TaWduaW5nRmlsZU5hbWU7Cis/Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9yZXNvdXJjZXMvdXRpbC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvcmVzb3VyY2VzL3V0aWwuanMKaW5kZXggNTdiMzM2YTk5OTdmN2VhOWYyZGJh
ZWU4Y2NhNjYxYzk0YWRkMjE3Ni4uOGJiNjZiNGQyYzg1OTA3MGIzYTRlYjc5NTY0ZmJiYjBkZjRk
OGY4ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9yZXNvdXJjZXMvdXRpbC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy91dGlsLmpzCkBAIC0xMSw3ICsxMSw4IEBA
IGZ1bmN0aW9uIHRlYXJEb3duQW5kRmluaXNoKCkgewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgewogICAgICAgICB0ZXN0UnVubmVyLnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGZhbHNl
KTsKICAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRl
VGltZXJGb3JUZXN0aW5nKGZhbHNlKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKCIiKTsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVz
dGluZygiIik7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRU
b2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcoIiIpOwogICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L3NlbmQtYXR0cmlidXRpb24tY29udmVyc2lvbi1yZXF1ZXN0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Nl
bmQtYXR0cmlidXRpb24tY29udmVyc2lvbi1yZXF1ZXN0Lmh0bWwKaW5kZXggYWQ4ZDg4Y2M5ZDYx
OWYyOTMwODIwZTU2MGEzNTUxYzA2YjY0ZjM3Yy4uM2FkOGU4YmEwYmJjZWYwM2YyNGVhZTk5NTNl
MDIwNmFlZGJhMjI0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vu
ZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbApAQCAtMTksNyArMTksNyBAQAog
CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyh0cnVlKTsKLSAgICAg
ICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JU
ZXN0aW5nKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVz
b3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhwP25vbmNlPSIgKyBub25jZSk7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZv
clRlc3RpbmcoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9y
ZXNvdXJjZXMvc2lnblRva2VuLnBocD9ub25jZT0iICsgbm9uY2UpOwogICAgIH0KIAogICAgIGZ1
bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUtcHJpdmF0ZS1jbGlj
ay1tZWFzdXJlbWVudC13aXRoLXNvdXJjZS1ub25jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXByaXZhdGUtY2xpY2st
bWVhc3VyZW1lbnQtd2l0aC1zb3VyY2Utbm9uY2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUy
ZGIyNDQ5MzM2MDljN2VkZTMyNmRhZmYzN2VmMGIwMzExZDIzYjMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXBy
aXZhdGUtY2xpY2stbWVhc3VyZW1lbnQtd2l0aC1zb3VyY2Utbm9uY2UtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMjEgQEAKK1Rlc3RzIHRoYXQgdGhlIHByZXNlbmNlIG9mIGEgc291cmNlIG5vbmNl
IHRyaWdnZXJzIGEgdG9rZW4gc2lnbmluZyByZXF1ZXN0LgorCisKKworLS0tLS0tLS0KK0ZyYW1l
OiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitUb2tlbiBzaWduaW5nIHJlcXVlc3QgcmVjZWl2
ZWQuCitIVFRQX0hPU1Q6IDEyNy4wLjAuMTo4MDAwCitDb250ZW50IHR5cGU6IGFwcGxpY2F0aW9u
L2pzb24KK1JFUVVFU1RfVVJJOiAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3Np
Z25Ub2tlbi5waHAKK05vIGNvb2tpZXMgaW4gdG9rZW4gc2lnbmluZyByZXF1ZXN0LgorUmVxdWVz
dCBib2R5OgoreyJzb3VyY2VfZW5nYWdlbWVudF90eXBlIjoiY2xpY2siLCJzb3VyY2Vfbm9uY2Ui
OiJBQkNERUZhYmNkZWYwMTIzNDU2Nzg5IiwidW5saW5rYWJsZV90b2tlbiI6IlRPRE8iLCJ2ZXJz
aW9uIjoyfQorCitVbmF0dHJpYnV0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6CitXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAxCitTb3VyY2Ugc2l0ZTogMTI3LjAuMC4xCitB
dHRyaWJ1dGUgb24gc2l0ZTogbG9jYWxob3N0CitTb3VyY2UgSUQ6IDMKK05vIGF0dHJpYnV0aW9u
IHRyaWdnZXIgZGF0YS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUtcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC13aXRoLXNv
dXJjZS1ub25jZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9zdG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LXdpdGgtc291cmNlLW5vbmNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYWM3MDY1NjQxMzQ4NjQwYTRjODQ5YTk3OTA4YmQzN2Y2ZGRkZWQ5
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvc3RvcmUtcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC13aXRoLXNvdXJjZS1u
b25jZS5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEZyYXVkUHJldmVudGlvbkVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWwgbGFuZz0iZW4iPgor
PGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxtZXRhIG5hbWU9InZpZXdw
b3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1z
Y2FsYWJsZT1ubyI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxw
ZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgor
PGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRoYXQgdGhlIHByZXNlbmNlIG9mIGEgc291cmNl
IG5vbmNlIHRyaWdnZXJzIGEgdG9rZW4gc2lnbmluZyByZXF1ZXN0LjwvZGl2PgorPGEgaWQ9InRh
cmdldExpbmsiIGF0dHJpYnV0aW9uc291cmNlaWQ9IjMiIGF0dHJpYnV0ZW9uPSJodHRwOi8vbG9j
YWxob3N0OjgwMDAiIGF0dHJpYnV0aW9uc291cmNlbm9uY2U9IkFCQ0RFRmFiY2RlZjAxMjM0NTY3
ODkiPkxpbms8L2E+PGJyPgorPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KKzxzY3JpcHQ+CisgICAg
aWYgKCF3aW5kb3cubG9jYXRpb24uc2VhcmNoKQorICAgICAgICBwcmVwYXJlVGVzdCgpOworCisg
ICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgeworICAgICAgICB2YXIgZWxl
bWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7CisgICAgICAgIHZhciBj
ZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Cisg
ICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhl
aWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSku
dGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKKyAgICAg
ICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgfQorICAgICAgICAp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIGFwcGVuZElmcmFtZSh1cmwsIG9ubG9hZENhbGxiYWNr
KSB7CisgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
aWZyYW1lIik7CisgICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAo
b25sb2FkQ2FsbGJhY2spCisgICAgICAgICAgICBpZnJhbWVFbGVtZW50Lm9ubG9hZCA9IG9ubG9h
ZENhbGxiYWNrOworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1l
bnQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFwcGVuZFRva2VuU2lnbmF0dXJlSWZyYW1lQW5k
RmluaXNoKGR1bW15KSB7CisgICAgICAgIGFwcGVuZElmcmFtZSgiaHR0cDovLzEyNy4wLjAuMTo4
MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9nZXRUb2tlblNpZ25pbmdEYXRh
LnBocD90aW1lb3V0X21zPTQwMDAmZHVtbXk9IiArIGR1bW15LCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgICAg
ICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXRMaW5rIikpOworICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAg
fSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICBpZiAoIXdpbmRvdy5sb2NhdGlvbi5zZWFyY2gp
IHsKKyAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50VGltZU1pbGxpcyA9IChuZXcgRGF0ZSgp
KS5nZXRUaW1lKCk7CisgICAgICAgICAgICAgICAgY29uc3QgaGlnaEVudHJvcHlCaXRzID0gY3Vy
cmVudFRpbWVNaWxsaXMgLSAoTWF0aC5mbG9vcihjdXJyZW50VGltZU1pbGxpcyAvIDEwMDAwMDAp
ICogMTAwMDAwMCk7CisgICAgICAgICAgICAgICAgY29uc3QgZHVtbXkgPSBoaWdoRW50cm9weUJp
dHMgKyAiIiArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMCk7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJM
Rm9yVGVzdGluZygiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L3Jlc291cmNlcy9zaWduVG9rZW4ucGhwP2R1bW15PSIgKyBkdW1teSk7CisgICAgICAgICAgICAg
ICAgdGFyZ2V0TGluay5ocmVmID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9zdG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LXdpdGgtc291cmNlLW5v
bmNlLmh0bWw/ZHVtbXk9IiArIGR1bW15OworICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVu
dCgidGFyZ2V0TGluayIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBs
ZXQgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTsK
KyAgICAgICAgICAgICAgICBhcHBlbmRUb2tlblNpZ25hdHVyZUlmcmFtZUFuZEZpbmlzaChwYXJh
bXMuZ2V0KCJkdW1teSIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJ
TCBObyB0ZXN0UnVubmVyLiI7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420798</attachid>
            <date>2021-02-17 22:25:07 -0800</date>
            <delta_ts>2021-02-17 22:38:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222076-20210217222506.patch</filename>
            <type>text/plain</type>
            <size>74695</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTdjNTQ4MmI0ZjIzNjIw
NWU4ODM3NTdhMWQyNjM2ZDI2YmIyY2RmNi4uOTJiYjY3MGM0MzExYTAyYjk1YTQ2MjNiZDUzY2I3
NGFkNDc3NGEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTAyLTE3ICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBDTTogUmVxdWVzdCBz
aWduYXR1cmUgZm9yIHVubGlua2FibGUgdG9rZW4gdXNpbmcgYXR0cmlidXRpb25Tb3VyY2VOb25j
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMDc2
CisgICAgICAgIDxyZGFyOi8vNzM1ODE2NTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMg
RHVtZXouCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9zdG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LXdpdGgtc291cmNlLW5vbmNlLmh0bWwK
KworICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmhhbmRsZUNsaWNrKToKKyAgICAgICAgICAgIEFkb3B0aW9u
IG9mIHJlbmFtZWQgZnVuY3Rpb24gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0dHJpYnV0aW9u
UmVwb3J0VVJMKCkuCisgICAgICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Ojp0b2tlblNpZ25h
dHVyZVVSTCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6dG9rZW5TaWduYXR1cmVKU09OIGNvbnN0KToKKyAgICAgICAgICAgIE5ldyBmdW5jdGlvbnMg
dG8gZmFjaWxpdGF0ZSB0aGUgcmVxdWVzdCBmb3IgYSB0b2tlbiBzaWduYXR1cmUuCisgICAgICAg
IChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6YXR0cmlidXRpb25SZXBvcnRVUkwg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0dHJp
YnV0aW9uUmVwb3J0SlNPTiBjb25zdCk6CisgICAgICAgICAgICBSZW5hbWVkIGZ1bmN0aW9ucyB0
byBtYWtlIHRoZW0gZGlzdGluY3QgZnJvbSB0aGVpciB0b2tlbiBzaWduaW5nIHBlZXJzLgorICAg
ICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnJlcG9ydFVSTCBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6anNv
biBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpkZWNv
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJh
bFNvdXJjZU5vbmNlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlOjpkZWNvZGUpOgorICAgICAgICAg
ICAgRW5jb2RlIGFuZCBkZWNvZGUgdG8gZmFjaWxpdGF0ZSB0cmFuc2ZlciBvdmVyIElQQy4KKwog
MjAyMS0wMi0xNyAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAg
W2lPU10gdXBkYXRlIG1lZGlhIGNvbnRyb2xzIHRvIHVzZSBuZXcgU0YgU3ltYm9scwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCBjYTdjMzU4NzlhYWFlZDJmZjVmYmZmNjE3MjYzNDMwNjY2NGJmODFlLi5iZWUwM2FhYTk0
NDVjM2ZkODlkZTMxZTMwODY2NDljMTZjOWYyNmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBA
CisyMDIxLTAyLTE3ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAg
ICAgIFBDTTogUmVxdWVzdCBzaWduYXR1cmUgZm9yIHVubGlua2FibGUgdG9rZW4gdXNpbmcgYXR0
cmlidXRpb25Tb3VyY2VOb25jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjIyMDc2CisgICAgICAgIDxyZGFyOi8vNzM1ODE2NTE+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgVGhpcyBwYXRjaCBtYWtlcyBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnN0b3JlVW5hdHRyaWJ1dGVkKCkgbG9vaworICAg
ICAgICBmb3IgaW5jb21pbmcgc291cmNlIG5vbmNlcyBhbmQgaWYgZm91bmQsIGNhbGwgdGhlIG5l
dyBmdW5jdGlvbgorICAgICAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmdldFNp
Z25lZFVubGlua2FibGVUb2tlbigpLgorCisgICAgICAgIEEgbmV3IHN0YXRpYyBmdW5jdGlvbiBn
ZW5lcmF0ZU5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKCkgd2FzIGFkZGVkCisgICAgICAg
IHRvIHJldXNlIGNvZGUgYmV0d2VlbiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6Omdl
dFNpZ25lZFVubGlua2FibGVUb2tlbigpCisgICAgICAgIGFuZCB0aGUgZXhpc3RpbmcgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlQ29udmVyc2lvblJlcXVlc3QoKS4KKworICAg
ICAgICBUbyBlbmFibGUgdGVzdGluZywgdGhlcmUgaXMgYSBuZXcgZnVuY3Rpb24gY2FsbGVkCisg
ICAgICAgIE5ldHdvcmtTZXNzaW9uOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2ln
bmF0dXJlVVJMRm9yVGVzdGluZygpIGFuZAorICAgICAgICBmdW5jdGlvbiBzZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKCkgd2FzIHJlbmFtZWQKKyAgICAg
ICAgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3Rp
bmcoKSBpbiBOZXR3b3JrUHJvY2VzcywKKyAgICAgICAgTmV0d29ya1Nlc3Npb24sIFdLUGFnZVBy
aXZhdGUsIFdLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLCBhbmQKKyAgICAgICAgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyIHRvIGFsaWduIHdpdGggdGhlIG5hbWluZyB1c2VkIGluIG90
aGVyIHBsYWNlcy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1
cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRV
UkxGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcpOiBEZWxldGVkLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lv
bjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3Rpbmcp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrU2Vzc2lvbjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9y
VGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b24uaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXI6OnN0b3JlVW5hdHRyaWJ1dGVkKToKKyAgICAgICAgKFdlYktpdDo6Z2VuZXJhdGVOZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlcjo6Z2V0U2lnbmVkVW5saW5rYWJsZVRva2VuKToKKyAgICAgICAgKFdl
YktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlQ29udmVyc2lvblJlcXVl
c3QpOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnNl
dFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlcjo6c2V0QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5n
KToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzZXRD
b252ZXJzaW9uVVJMRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyk6CisgICAgICAgIChXS1BhZ2VTZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZyk6CisgICAg
ICAgIChXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0
aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3Rp
bmcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW06
CisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1
dGlvblJlcG9ydFVSTEZvclRlc3Rpbmc6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgt
W1dLV2ViVmlldyBfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVz
dGluZzpjb21wbGV0aW9uSGFuZGxlcjpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1
dGlvblJlcG9ydFVSTEZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcpOiBEZWxl
dGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKwogMjAyMS0wMi0xNyAg
VHJ1aXR0IFNhdmVsbCAgPHRzYXZlbGxAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJldmVydGluZyByMjcyOTA1LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QW5jaG9yRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50
LmNwcAppbmRleCBlYzNkOTBiZWMyOWQzMzg3ZWJjOGIyM2FkYzYyYWZiYzczMzI4ZDU0Li4wMWJi
MWQxN2Q1MmY5Y2ZlZWE4YzAxYmU5MGQzMzY4NzU2OWVkMmFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcApAQCAtNTI3LDcgKzUyNyw3IEBAIHZvaWQgSFRNTEFu
Y2hvckVsZW1lbnQ6OmhhbmRsZUNsaWNrKEV2ZW50JiBldmVudCkKICAgICBhdXRvIHByaXZhdGVD
bGlja01lYXN1cmVtZW50ID0gcGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwogICAgIC8v
IEEgbWF0Y2hpbmcgY29udmVyc2lvbiBldmVudCBuZWVkcyB0byBoYXBwZW4gYmVmb3JlIHRoZSBj
b21wbGV0ZSBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50CiAgICAgLy8gVVJMIGNhbiBiZSBjcmVh
dGVkLiBUaHVzLCBpdCBzaG91bGQgYmUgZW1wdHkgZm9yIG5vdy4KLSAgICBBU1NFUlQoIXByaXZh
dGVDbGlja01lYXN1cmVtZW50IHx8IHByaXZhdGVDbGlja01lYXN1cmVtZW50LT5yZXBvcnRVUkwo
KS5pc051bGwoKSk7CisgICAgQVNTRVJUKCFwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCB8fCBwcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC0+YXR0cmlidXRpb25SZXBvcnRVUkwoKS5pc051bGwoKSk7CiAg
ICAgCiAgICAgZnJhbWUtPmxvYWRlcigpLmNoYW5nZUxvY2F0aW9uKGNvbXBsZXRlZFVSTCwgZWZm
ZWN0aXZlVGFyZ2V0LCAmZXZlbnQsIHJlZmVycmVyUG9saWN5LCBkb2N1bWVudCgpLnNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3lUb1Byb3BhZ2F0ZSgpLCBuZXdGcmFtZU9wZW5lclBvbGljeSwg
ZG93bmxvYWRBdHRyaWJ1dGUsIHN5c3RlbVByZXZpZXdJbmZvLCBXVEZNb3ZlKHByaXZhdGVDbGlj
a01lYXN1cmVtZW50KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuY3BwCmluZGV4IDMyMDA0NzBkODdkNWY4NTBjZDQ1YWVlY2VjNzFkODlj
ZWJjZWM4NGUuLmU5NDJjMzE4ZGYyMjc3Y2Y2NWEwYjhlNDAzMjY1NGIzOTUwNmI0MjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcApA
QCAtMzcsNiArMzcsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3QgY2hh
ciBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRyaWdnZXJBdHRyaWJ1dGlvblBhdGhbXSA9ICIvLndl
bGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC90cmlnZ2VyLWF0dHJpYnV0aW9uLyI7
CitzdGF0aWMgY29uc3QgY2hhciBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJl
UGF0aFtdID0gIi8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50L3NpZ24tdW5s
aW5rYWJsZS10b2tlbi8iOwogc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRSZXBvcnRBdHRyaWJ1dGlvblBhdGhbXSA9ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1t
ZWFzdXJlbWVudC9yZXBvcnQtYXR0cmlidXRpb24vIjsKIGNvbnN0IHNpemVfdCBwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHJpZ2dlckRhdGFQYXRoU2VnbWVudFNpemUgPSAyOwog
Y29uc3Qgc2l6ZV90IHByaXZhdGVDbGlja01lYXN1cmVtZW50UHJpb3JpdHlQYXRoU2VnbWVudFNp
emUgPSAyOwpAQCAtMTE0LDcgKzExNSwzNyBAQCBib29sIFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpoYXNIaWdoZXJQcmlvcml0eVRoYW4oY29uc3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbgogICAg
IHJldHVybiBtX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEtPnByaW9yaXR5ID4gb3RoZXIubV9hdHRy
aWJ1dGlvblRyaWdnZXJEYXRhLT5wcmlvcml0eTsKIH0KIAotVVJMIFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpyZXBvcnRVUkwoKSBjb25zdAorVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojp0
b2tlblNpZ25hdHVyZVVSTCgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2VwaGVtZXJhbFNvdXJjZU5v
bmNlIHx8ICFtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVy
biBVUkwoKTsKKworICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoImh0dHBzOi8vIik7CisgICAgYnVpbGRlci5hcHBlbmQobV9zb3VyY2VTaXRlLnJl
Z2lzdHJhYmxlRG9tYWluLnN0cmluZygpKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwocHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVBhdGgpOworCisgICAgVVJMIHVybCB7
IFVSTCgpLCBidWlsZGVyLnRvU3RyaW5nKCkgfTsKKyAgICBpZiAodXJsLmlzVmFsaWQoKSkKKyAg
ICAgICAgcmV0dXJuIHVybDsKKworICAgIHJldHVybiBVUkwoKTsKK30KKworUmVmPEpTT046Ok9i
amVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRva2VuU2lnbmF0dXJlSlNPTigpIGNvbnN0
Cit7CisgICAgYXV0byByZXBvcnREZXRhaWxzID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKKyAg
ICBpZiAoIW1fZXBoZW1lcmFsU291cmNlTm9uY2UgfHwgIW1fZXBoZW1lcmFsU291cmNlTm9uY2Ut
PmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7CisKKyAgICByZXBvcnRE
ZXRhaWxzLT5zZXRTdHJpbmcoInNvdXJjZV9lbmdhZ2VtZW50X3R5cGUiX3MsICJjbGljayJfcyk7
CisgICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2Vfbm9uY2UiX3MsIG1fZXBoZW1l
cmFsU291cmNlTm9uY2UtPm5vbmNlKTsKKyAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoInVu
bGlua2FibGVfdG9rZW4iX3MsICJUT0RPIl9zKTsKKyAgICByZXBvcnREZXRhaWxzLT5zZXRJbnRl
Z2VyKCJ2ZXJzaW9uIl9zLCAyKTsKKyAgICByZXR1cm4gcmVwb3J0RGV0YWlsczsKK30KKworVVJM
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydFVSTCgpIGNvbnN0CiB7
CiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBVUkwoKTsKQEAgLTEzMSw3ICsx
NjIsNyBAQCBVUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnJlcG9ydFVSTCgpIGNvbnN0CiAg
ICAgcmV0dXJuIFVSTCgpOwogfQogCi1SZWY8SlNPTjo6T2JqZWN0PiBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6anNvbigpIGNvbnN0CitSZWY8SlNPTjo6T2JqZWN0PiBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6YXR0cmlidXRpb25SZXBvcnRKU09OKCkgY29uc3QKIHsKICAgICBhdXRvIHJlcG9y
dERldGFpbHMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwogICAgIGlmICghbV9hdHRyaWJ1dGlv
blRyaWdnZXJEYXRhIHx8ICFpc1ZhbGlkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oCmluZGV4IGE0Yzk2Y2ExZTBhNGQwMGIyYWFmMWNjNTY5
MzMyOTc5YTlmODI1MjAuLjY5ZTY1MzUyZDQ1YjA1NzNiOWM0MzNiYjRkNjRjYWIwZGVkZmUwMDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5o
CkBAIC0yMjEsNiArMjIxLDkgQEAgcHVibGljOgogICAgICAgICB9CiAKICAgICAgICAgU3RyaW5n
IG5vbmNlOworCisgICAgICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImKSBjb25zdDsKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9w
dGlvbmFsPEVwaGVtZXJhbFNvdXJjZU5vbmNlPiBkZWNvZGUoRGVjb2RlciYpOwogICAgIH07CiAK
ICAgICBzdHJ1Y3QgUHJpb3JpdHkgewpAQCAtMjc0LDggKzI3NywxMCBAQCBwdWJsaWM6CiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIEV4cGVjdGVkPEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIFN0
cmluZz4gcGFyc2VBdHRyaWJ1dGlvblJlcXVlc3QoY29uc3QgVVJMJiByZWRpcmVjdFVSTCk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8U2Vjb25kcz4gYXR0cmlidXRlQW5kR2V0RWFybGll
c3RUaW1lVG9TZW5kKEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJik7CiAgICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCBoYXNIaWdoZXJQcmlvcml0eVRoYW4oY29uc3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQmKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBVUkwgcmVwb3J0VVJMKCkgY29uc3Q7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgUmVmPEpTT046Ok9iamVjdD4ganNvbigpIGNvbnN0OworICAgIFdF
QkNPUkVfRVhQT1JUIFVSTCB0b2tlblNpZ25hdHVyZVVSTCgpIGNvbnN0OworICAgIFdFQkNPUkVf
RVhQT1JUIFJlZjxKU09OOjpPYmplY3Q+IHRva2VuU2lnbmF0dXJlSlNPTigpIGNvbnN0OworICAg
IFdFQkNPUkVfRVhQT1JUIFVSTCBhdHRyaWJ1dGlvblJlcG9ydFVSTCgpIGNvbnN0OworICAgIFdF
QkNPUkVfRVhQT1JUIFJlZjxKU09OOjpPYmplY3Q+IGF0dHJpYnV0aW9uUmVwb3J0SlNPTigpIGNv
bnN0OwogICAgIGNvbnN0IFNvdXJjZVNpdGUmIHNvdXJjZVNpdGUoKSBjb25zdCB7IHJldHVybiBt
X3NvdXJjZVNpdGU7IH07CiAgICAgY29uc3QgQXR0cmlidXRlT25TaXRlJiBhdHRyaWJ1dGVPblNp
dGUoKSBjb25zdCB7IHJldHVybiBtX2F0dHJpYnV0ZU9uU2l0ZTsgfTsKICAgICB2b2lkIHNldEVw
aGVtZXJhbFNvdXJjZU5vbmNlKEVwaGVtZXJhbFNvdXJjZU5vbmNlJiYgbm9uY2UpIHsgbV9lcGhl
bWVyYWxTb3VyY2VOb25jZSA9IFdURk1vdmUobm9uY2UpOyB9OwpAQCAtMzE4LDYgKzMyMyw3IEBA
IHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogICAgICAgICA8PCBtX3NvdXJjZURlc2NyaXB0aW9uCiAgICAgICAgIDw8IG1fcHVyY2hh
c2VyCiAgICAgICAgIDw8IG1fdGltZU9mQWRDbGljaworICAgICAgICA8PCBtX2VwaGVtZXJhbFNv
dXJjZU5vbmNlCiAgICAgICAgIDw8IG1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YQogICAgICAgICA8
PCBtX2VhcmxpZXN0VGltZVRvU2VuZDsKIH0KQEAgLTM1NCw3ICszNjAsMTIgQEAgT3B0aW9uYWw8
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpkZWNvZGUo
RGVjb2RlciYgZGVjb2QKICAgICBkZWNvZGVyID4+IHRpbWVPZkFkQ2xpY2s7CiAgICAgaWYgKCF0
aW1lT2ZBZENsaWNrKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIAorCisgICAg
T3B0aW9uYWw8T3B0aW9uYWw8RXBoZW1lcmFsU291cmNlTm9uY2U+PiBlcGhlbWVyYWxTb3VyY2VO
b25jZTsKKyAgICBkZWNvZGVyID4+IGVwaGVtZXJhbFNvdXJjZU5vbmNlOworICAgIGlmICghZXBo
ZW1lcmFsU291cmNlTm9uY2UpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKICAgICBP
cHRpb25hbDxPcHRpb25hbDxBdHRyaWJ1dGlvblRyaWdnZXJEYXRhPj4gYXR0cmlidXRpb25Ucmln
Z2VyRGF0YTsKICAgICBkZWNvZGVyID4+IGF0dHJpYnV0aW9uVHJpZ2dlckRhdGE7CiAgICAgaWYg
KCFhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKQpAQCAtMzczLDEyICszODQsMzAgQEAgT3B0aW9uYWw8
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpkZWNvZGUo
RGVjb2RlciYgZGVjb2QKICAgICAgICAgV1RGTW92ZSgqcHVyY2hhc2VyKSwKICAgICAgICAgV1RG
TW92ZSgqdGltZU9mQWRDbGljaykKICAgICB9OworICAgIGF0dHJpYnV0aW9uLm1fZXBoZW1lcmFs
U291cmNlTm9uY2UgPSBXVEZNb3ZlKCplcGhlbWVyYWxTb3VyY2VOb25jZSk7CiAgICAgYXR0cmli
dXRpb24ubV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhID0gV1RGTW92ZSgqYXR0cmlidXRpb25Ucmln
Z2VyRGF0YSk7CiAgICAgYXR0cmlidXRpb24ubV9lYXJsaWVzdFRpbWVUb1NlbmQgPSBXVEZNb3Zl
KCplYXJsaWVzdFRpbWVUb1NlbmQpOwogICAgIAogICAgIHJldHVybiBhdHRyaWJ1dGlvbjsKIH0K
IAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OkVwaGVtZXJhbFNvdXJjZU5vbmNlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sK
KyAgICBlbmNvZGVyIDw8IG5vbmNlOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0
aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlPiBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFsU291cmNlTm9uY2U6OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPFN0cmluZz4gbm9uY2U7CisgICAgZGVjb2RlciA+
PiBub25jZTsKKyAgICBpZiAoIW5vbmNlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
ICAgIAorICAgIHJldHVybiBFcGhlbWVyYWxTb3VyY2VOb25jZSB7IFdURk1vdmUoKm5vbmNlKSB9
OworfQorCiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwCmluZGV4IDdhOTMxOTQ4YTA1NmViOTJlY2JkM2YyZDI3NGRmMTQ0ZGYwMWE5NWUuLjE0YTZi
Zjc0NGIzZTU3ZTZkNWJkMDdhODY1MjM5NjZjNmQ5MmQ1MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0yNjA3LDEwICsyNjA3LDE4
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6Om1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhQCiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0K
IAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJz
aW9uVVJMRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCYmIHVybCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3Jr
UHJvY2Vzczo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRl
c3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwmJiB1cmwsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byogc2Vzc2lv
biA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpCi0gICAgICAgIHNlc3Npb24tPnNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoV1RGTW92ZSh1cmwpKTsK
KyAgICAgICAgc2Vzc2lvbi0+c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVy
ZVVSTEZvclRlc3RpbmcoV1RGTW92ZSh1cmwpKTsKKyAgICAKKyAgICBjb21wbGV0aW9uSGFuZGxl
cigpOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFVSTCYmIHVybCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQoreworICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkK
KyAgICAgICAgc2Vzc2lvbi0+c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJl
cG9ydFVSTEZvclRlc3RpbmcoV1RGTW92ZSh1cmwpKTsKICAgICAKICAgICBjb21wbGV0aW9uSGFu
ZGxlcigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5oCmluZGV4IDExMjYyYTg1NmIxMzgxMzE2OTJjMjU1NDgyYjNiYTY1NzQ0NWViMjEuLjJiMjRi
ODMyZmIyNDczODVmMmQ0ZTBiYzI3ODdhMGQxZDA4YjFlMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTM0Miw3ICszNDIsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JU
ZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgbWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNB
c0V4cGlyZWRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgc2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJl
c3RhcnQoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAg
dm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFBB
TDo6U2Vzc2lvbklELCBVUkwmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2
b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklELCBVUkwmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAg
ICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JU
ZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBVUkwmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIG1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0
aW5nKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAgICAg
UmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VRdW90YU1hbmFnZXI+IHN0b3JhZ2VRdW90YU1hbmFnZXIo
UEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMu
aW4KaW5kZXggNThiM2U0Yzg2OGM3MDEyY2RiMzU2NTZlYWFiZjJiNjE4MWYyYmM3ZS4uZTA3NDdj
ZDJhMjYxMzljZmY4NmY1ZTU4MTA2N2NhYmFjMWUxZWRhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0x
NjcsNyArMTY3LDggQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIg
ewogICAgIFNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3Rpbmco
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlKSAtPiAoKSBBc3luYwogICAgIE1h
cmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCiAgICAgU2ltdWxhdGVSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJlc3RhcnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAt
PiAoKSBBc3luYwotICAgIFNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZv
clRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgdXJsKSAtPiAoKSBBc3luYwor
ICAgIFNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIHVybCkgLT4gKCkgQXN5bmMKKyAgICBTZXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCB1cmwpIC0+ICgpIEFzeW5jCiAgICAgTWFya1ByaXZh
dGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKSAtPiAoKSBBc3luYwogICAgIEdldExvY2FsU3RvcmFnZU9yaWdpbkRldGFpbHMoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoVmVjdG9yPFdlYktpdDo6TG9jYWxTdG9yYWdlRGF0
YWJhc2VUcmFja2VyOjpPcmlnaW5EZXRhaWxzPiBkZXRhaWxzKSBBc3luYwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4IDM5ZDIyMDBm
NGMwNjhmNjAzNjFjZmUxMWQ3Nzg4OTBiZTA0MmE3NjIuLjg0YjA1NjhiZmVkMTAxOTk1M2NkMzQ0
MDBhYjcyN2EyNmI3OGJjMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uY3BwCkBAIC0zMzgsOSArMzM4LDE0IEBAIHZvaWQgTmV0d29ya1Nlc3Np
b246Om1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVz
dGluZyhDCiAgICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS5tYXJrQXR0cmlidXRlZFByaXZh
dGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOwogfQogCi12b2lkIE5ldHdvcmtTZXNzaW9uOjpzZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFVSTCYmIHVybCkKK3ZvaWQgTmV0d29ya1Nl
c3Npb246OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0
aW5nKFVSTCYmIHVybCkKIHsKLSAgICBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpLnNldENvbnZl
cnNpb25VUkxGb3JUZXN0aW5nKFdURk1vdmUodXJsKSk7CisgICAgcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQoKS5zZXRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcoV1RGTW92ZSh1cmwpKTsKK30K
Kwordm9pZCBOZXR3b3JrU2Vzc2lvbjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1
dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoVVJMJiYgdXJsKQoreworICAgIHByaXZhdGVDbGlja01l
YXN1cmVtZW50KCkuc2V0QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKFdURk1vdmUodXJs
KSk7CiB9CiAKIHZvaWQgTmV0d29ya1Nlc3Npb246Om1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dHNBc0V4cGlyZWRGb3JUZXN0aW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uaAppbmRleCBlODZhODU0ZDI5NTk4YmFhYjc1N2ExZDMxZjNiYTI5YWVm
OWIzYzg2Li44NDM4MTdmYTc2OTlkYTE4YzkyMDAyZDA0MjFlNjA1MWU0NzliNTg1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCkBAIC0xMjMsNyAr
MTIzLDggQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZv
clJlZ2lzdHJhYmxlRG9tYWluKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYpOwogICAgIHZv
aWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhib29s
IHZhbHVlKTsKICAgICB2b2lkIG1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRz
QXNFeHBpcmVkRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZv
aWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhVUkwm
Jik7CisgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJM
Rm9yVGVzdGluZyhVUkwmJik7CisgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0
dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZyhVUkwmJik7CiAgICAgdm9pZCBtYXJrUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpOwogICAgIHZvaWQgZmlyZVBy
aXZhdGVDbGlja01lYXN1cmVtZW50VGltZXJJbW1lZGlhdGVseSgpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlci5jcHAKaW5kZXggY2ZlYjY2NThkMzhkNGRkNjFlZjgxODZiMzM2Mzg3YTJjNDFm
YTEyMC4uYjAzZTk3MDIyNmUxNDc4NWU5ZWZkNDYzMGUwYjJhMTA1M2E2MGE4NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYW5hZ2VyLmNwcApAQCAtNDcsNiArNDcsNyBAQCB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIHVzaW5nIFNvdXJjZVNpdGUgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291
cmNlU2l0ZTsKIHVzaW5nIEF0dHJpYnV0ZU9uU2l0ZSA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpBdHRyaWJ1dGVPblNpdGU7CiB1c2luZyBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhID0gUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE7Cit1c2luZyBFcGhlbWVy
YWxTb3VyY2VOb25jZSA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxTb3VyY2VO
b25jZTsKIAogY29uc3RleHByIFNlY29uZHMgZGVidWdNb2RlU2Vjb25kc1VudGlsU2VuZCB7IDEw
X3MgfTsKIApAQCAtNzMsNiArNzQsOSBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlcjo6c3RvcmVVbmF0dHJpYnV0ZWQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJgogCiAgICAg
Y2xlYXJFeHBpcmVkKCk7CiAKKyAgICBpZiAoYXR0cmlidXRpb24uZXBoZW1lcmFsU291cmNlTm9u
Y2UoKSkKKyAgICAgICAgZ2V0U2lnbmVkVW5saW5rYWJsZVRva2VuKGF0dHJpYnV0aW9uKTsKKwog
ICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklE
LCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpM
b2csICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gU3RvcmluZyBhbiBhZCBjbGljay4iX3Mp
OwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKQEAgLTgxLDYgKzg1LDY3
IEBAIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzdG9yZVVuYXR0cmlidXRl
ZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmCiAjZW5kaWYKIH0KIAorc3RhdGljIE5ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGdlbmVyYXRlTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMoVVJMJiYgdXJsLCBSZWY8SlNPTjo6T2JqZWN0PiBqc29uUGF5bG9hZCwgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OlBjbURhdGFDYXJyaWVkIGRhdGFUeXBlQ2FycmllZCkKK3sKKyAgICBzdGF0
aWMgdWludDY0X3QgaWRlbnRpZmllciA9IDA7CisgICAgCisgICAgUmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QgeyBXVEZNb3ZlKHVybCkgfTsKKyAgICByZXF1ZXN0LnNldEhUVFBNZXRob2QoIlBPU1Qi
X3MpOworICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDYWNo
ZUNvbnRyb2wsIFdlYkNvcmU6OkhUVFBIZWFkZXJWYWx1ZXM6Om1heEFnZTAoKSk7CisgICAgcmVx
dWVzdC5zZXRIVFRQQ29udGVudFR5cGUoV2ViQ29yZTo6SFRUUEhlYWRlclZhbHVlczo6YXBwbGlj
YXRpb25KU09OQ29udGVudFR5cGUoKSk7CisgICAgcmVxdWVzdC5zZXRIVFRQQm9keShXZWJDb3Jl
OjpGb3JtRGF0YTo6Y3JlYXRlKGpzb25QYXlsb2FkLT50b0pTT05TdHJpbmcoKS51dGY4KCkuZGF0
YSgpKSk7CisKKyAgICBGZXRjaE9wdGlvbnMgb3B0aW9uczsKKyAgICBvcHRpb25zLmNyZWRlbnRp
YWxzID0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6T21pdDsKKyAgICBvcHRpb25zLnJlZGly
ZWN0ID0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6RXJyb3I7CisKKyAgICBOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVyczsKKyAgICBsb2FkUGFyYW1ldGVycy5pZGVu
dGlmaWVyID0gKytpZGVudGlmaWVyOworICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1
ZXN0OworICAgIGxvYWRQYXJhbWV0ZXJzLnBhcmVudFBJRCA9IHByZXNlbnRpbmdBcHBsaWNhdGlv
blBJRCgpOworICAgIGxvYWRQYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gU3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3k6OkVwaGVtZXJhbFN0YXRlbGVzczsKKyAgICBsb2FkUGFyYW1l
dGVycy5vcHRpb25zID0gb3B0aW9uczsKKyAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRDbGVhclJl
ZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0ID0gdHJ1ZTsKKyAgICBsb2FkUGFyYW1ldGVycy5z
aG91bGRSZXN0cmljdEhUVFBSZXNwb25zZUFjY2VzcyA9IGZhbHNlOworICAgIGxvYWRQYXJhbWV0
ZXJzLnBjbURhdGFDYXJyaWVkID0gZGF0YVR5cGVDYXJyaWVkOworICAgIAorICAgIHJldHVybiBs
b2FkUGFyYW1ldGVyczsKK30KKwordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6
OmdldFNpZ25lZFVubGlua2FibGVUb2tlbihjb25zdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYg
YXR0cmlidXRpb24pCit7CisgICAgaWYgKCFmZWF0dXJlRW5hYmxlZCgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBhdXRvIHRva2VuU2lnbmF0dXJlVVJMID0gYXR0cmlidXRpb24udG9rZW5TaWdu
YXR1cmVVUkwoKTsKKyAgICBhdXRvIHBjbURhdGFDYXJyaWVkID0gUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OlBjbURhdGFDYXJyaWVkOjpQZXJzb25hbGx5SWRlbnRpZmlhYmxlOworICAgIGlmICht
X3Rva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZykgeworICAgICAgICB0b2tlblNpZ25hdHVyZVVS
TCA9ICptX3Rva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZzsKKyAgICAgICAgcGNtRGF0YUNhcnJp
ZWQgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UGNtRGF0YUNhcnJpZWQ6Ok5vblBlcnNvbmFs
bHlJZGVudGlmaWFibGU7CisgICAgfQorCisgICAgaWYgKHRva2VuU2lnbmF0dXJlVVJMLmlzRW1w
dHkoKSB8fCAhdG9rZW5TaWduYXR1cmVVUkwuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBhdXRvIGxvYWRQYXJhbWV0ZXJzID0gZ2VuZXJhdGVOZXR3b3JrUmVzb3VyY2VMb2FkUGFy
YW1ldGVycyhXVEZNb3ZlKHRva2VuU2lnbmF0dXJlVVJMKSwgYXR0cmlidXRpb24udG9rZW5TaWdu
YXR1cmVKU09OKCksIHBjbURhdGFDYXJyaWVkKTsKKworICAgIFJFTEVBU0VfTE9HX0lORk8oUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJBYm91dCB0byBmaXJlIGEgdW5saW5rYWJsZSB0b2tlbiBz
aWduaW5nIHJlcXVlc3QuIik7CisgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29s
ZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50LCBNZXNzYWdlTGV2ZWw6OkxvZywgIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBBYm91
dCB0byBmaXJlIGEgdW5saW5rYWJsZSB0b2tlbiBzaWduaW5nIHJlcXVlc3QuIl9zKTsKKworICAg
IG1fcGluZ0xvYWRGdW5jdGlvbihXVEZNb3ZlKGxvYWRQYXJhbWV0ZXJzKSwgW3dlYWtUaGlzID0g
bWFrZVdlYWtQdHIoKnRoaXMpXShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpIHsKKyAgICAgICAgaWYg
KCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoIWVycm9yLmlz
TnVsbCgpKSB7CisgICAgICAgICAgICB3ZWFrVGhpcy0+bV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRj
YXN0Q29uc29sZU1lc3NhZ2Uod2Vha1RoaXMtPm1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpFcnJvciwgbWFrZVN0cmluZygi
W1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIFJlY2VpdmVkIGVycm9yOiAnIl9zLCBlcnJvci5s
b2NhbGl6ZWREZXNjcmlwdGlvbigpLCAiJyBmb3IgdW5saW5rYWJsZSB0b2tlbiBzaWduaW5nIHJl
cXVlc3QuIl9zKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisg
ICAgICAgIC8vIEZJWE1FOiBSZWNlaXZlIGFuZCBzdG9yZSB0aGUgc2lnbmVkIHVubGlua2FibGUg
dG9rZW4sIHJkYXI6Ly83MzU4MjAzMi4KKyAgICB9KTsKKworfQorCiB2b2lkIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlcjo6aGFuZGxlQXR0cmlidXRpb24oQXR0cmlidXRpb25UcmlnZ2Vy
RGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJlcXVlc3QpCiB7CiAgICAgaWYg
KCFmZWF0dXJlRW5hYmxlZCgpKQpAQCAtMTM4LDMzICsyMDMsMTEgQEAgdm9pZCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hbmFnZXI6OmZpcmVDb252ZXJzaW9uUmVxdWVzdChjb25zdCBQcml2YXRl
Q2xpY2tNZWEKICAgICBpZiAoIWZlYXR1cmVFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGF1dG8gYXR0cmlidXRpb25VUkwgPSBtX2F0dHJpYnV0aW9uQmFzZVVSTEZvclRlc3Rpbmcg
PyAqbV9hdHRyaWJ1dGlvbkJhc2VVUkxGb3JUZXN0aW5nIDogYXR0cmlidXRpb24ucmVwb3J0VVJM
KCk7CisgICAgYXV0byBhdHRyaWJ1dGlvblVSTCA9IG1fYXR0cmlidXRpb25SZXBvcnRCYXNlVVJM
Rm9yVGVzdGluZyA/ICptX2F0dHJpYnV0aW9uUmVwb3J0QmFzZVVSTEZvclRlc3RpbmcgOiBhdHRy
aWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydFVSTCgpOwogICAgIGlmIChhdHRyaWJ1dGlvblVSTC5p
c0VtcHR5KCkgfHwgIWF0dHJpYnV0aW9uVVJMLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgeyBXVEZNb3ZlKGF0dHJpYnV0aW9uVVJMKSB9
OwotICAgIAotICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZCgiUE9TVCJfcyk7Ci0gICAgcmVxdWVz
dC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNhY2hlQ29udHJvbCwgV2ViQ29y
ZTo6SFRUUEhlYWRlclZhbHVlczo6bWF4QWdlMCgpKTsKLQotICAgIHJlcXVlc3Quc2V0SFRUUENv
bnRlbnRUeXBlKFdlYkNvcmU6OkhUVFBIZWFkZXJWYWx1ZXM6OmFwcGxpY2F0aW9uSlNPTkNvbnRl
bnRUeXBlKCkpOwotICAgIHJlcXVlc3Quc2V0SFRUUEJvZHkoV2ViQ29yZTo6Rm9ybURhdGE6OmNy
ZWF0ZShhdHRyaWJ1dGlvbi5qc29uKCktPnRvSlNPTlN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsK
LQotICAgIEZldGNoT3B0aW9ucyBvcHRpb25zOwotICAgIG9wdGlvbnMuY3JlZGVudGlhbHMgPSBG
ZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpPbWl0OwotICAgIG9wdGlvbnMucmVkaXJlY3QgPSBG
ZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpFcnJvcjsKLQotICAgIHN0YXRpYyB1aW50NjRfdCBpZGVu
dGlmaWVyID0gMDsKLSAgICAKLSAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBsb2Fk
UGFyYW1ldGVyczsKLSAgICBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyID0gKytpZGVudGlmaWVy
OwotICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0OwotICAgIGxvYWRQYXJhbWV0
ZXJzLnBhcmVudFBJRCA9IHByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpOwotICAgIGxvYWRQYXJh
bWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6
OkVwaGVtZXJhbFN0YXRlbGVzczsKLSAgICBsb2FkUGFyYW1ldGVycy5vcHRpb25zID0gb3B0aW9u
czsKLSAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJl
ZGlyZWN0ID0gdHJ1ZTsKLSAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRSZXN0cmljdEhUVFBSZXNw
b25zZUFjY2VzcyA9IGZhbHNlOwotICAgIGxvYWRQYXJhbWV0ZXJzLnBjbURhdGFDYXJyaWVkID0g
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlBjbURhdGFDYXJyaWVkOjpOb25QZXJz
b25hbGx5SWRlbnRpZmlhYmxlOworICAgIGF1dG8gbG9hZFBhcmFtZXRlcnMgPSBnZW5lcmF0ZU5l
dHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKFdURk1vdmUoYXR0cmlidXRpb25VUkwpLCBhdHRy
aWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydEpTT04oKSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OlBjbURhdGFDYXJyaWVkOjpOb25QZXJzb25hbGx5SWRlbnRpZmlhYmxlKTsKIAogICAgIFJFTEVB
U0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJBYm91dCB0byBmaXJlIGFuIGF0
dHJpYnV0aW9uIHJlcXVlc3QuIik7CiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29u
c29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkxvZywgIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBB
Ym91dCB0byBmaXJlIGFuIGF0dHJpYnV0aW9uIHJlcXVlc3QuIl9zKTsKQEAgLTI5MywxMiArMzM2
LDIwIEBAIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjp0b1N0cmluZyhDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYKICAgICBjb21wbGV0aW9uSGFuZGxlcigiXG5O
byBzdG9yZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudCBkYXRhLlxuIl9zKTsKIH0KIAotdm9p
ZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnNldENvbnZlcnNpb25VUkxGb3JUZXN0
aW5nKFVSTCYmIHRlc3RVUkwpCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6
c2V0VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKFVSTCYmIHRlc3RVUkwpCit7CisgICAgaWYg
KHRlc3RVUkwuaXNFbXB0eSgpKQorICAgICAgICBtX3Rva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGlu
ZyA9IHsgfTsKKyAgICBlbHNlCisgICAgICAgIG1fdG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5n
ID0gV1RGTW92ZSh0ZXN0VVJMKTsKK30KKwordm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXI6OnNldEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZyhVUkwmJiB0ZXN0VVJMKQog
ewogICAgIGlmICh0ZXN0VVJMLmlzRW1wdHkoKSkKLSAgICAgICAgbV9hdHRyaWJ1dGlvbkJhc2VV
UkxGb3JUZXN0aW5nID0geyB9OworICAgICAgICBtX2F0dHJpYnV0aW9uUmVwb3J0QmFzZVVSTEZv
clRlc3RpbmcgPSB7IH07CiAgICAgZWxzZQotICAgICAgICBtX2F0dHJpYnV0aW9uQmFzZVVSTEZv
clRlc3RpbmcgPSBXVEZNb3ZlKHRlc3RVUkwpOworICAgICAgICBtX2F0dHJpYnV0aW9uUmVwb3J0
QmFzZVVSTEZvclRlc3RpbmcgPSBXVEZNb3ZlKHRlc3RVUkwpOwogfQogCiB2b2lkIFByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlcjo6bWFya0FsbFVuYXR0cmlidXRlZEFzRXhwaXJlZEZvclRl
c3RpbmcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmgKaW5kZXggOTZkMGI2ODI1NjQwZWY3NjFj
YTMwZTJiOWMyZWJiYzNhMTNiMTQyNC4uYzVkZTg2N2M4M2U0ZmIyNDZjNGEwZTNjMDFmYTVkMTY5
NzVjOWRhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oCkBAIC02MSwxMiArNjEsMTQgQEAg
cHVibGljOgogICAgIHZvaWQgdG9TdHJpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcp
PiYmKSBjb25zdDsKICAgICB2b2lkIHNldFBpbmdMb2FkRnVuY3Rpb24oRnVuY3Rpb248dm9pZChO
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJik+JiYpPiYmIHBpbmdMb2FkRnVuY3Rpb24pIHsgbV9waW5nTG9hZEZ1bmN0aW9uID0gV1RG
TW92ZShwaW5nTG9hZEZ1bmN0aW9uKTsgfQogICAgIHZvaWQgc2V0T3ZlcnJpZGVUaW1lckZvclRl
c3RpbmcoYm9vbCB2YWx1ZSkgeyBtX2lzUnVubmluZ1Rlc3QgPSB2YWx1ZTsgfQotICAgIHZvaWQg
c2V0Q29udmVyc2lvblVSTEZvclRlc3RpbmcoVVJMJiYpOworICAgIHZvaWQgc2V0VG9rZW5TaWdu
YXR1cmVVUkxGb3JUZXN0aW5nKFVSTCYmKTsKKyAgICB2b2lkIHNldEF0dHJpYnV0aW9uUmVwb3J0
VVJMRm9yVGVzdGluZyhVUkwmJik7CiAgICAgdm9pZCBtYXJrQWxsVW5hdHRyaWJ1dGVkQXNFeHBp
cmVkRm9yVGVzdGluZygpOwogICAgIHZvaWQgbWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCBzdGFydFRpbWVyKFNlY29uZHMpOwogCiBwcml2YXRlOgorICAgIHZvaWQgZ2V0
U2lnbmVkVW5saW5rYWJsZVRva2VuKGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVtZW50Jik7CiAg
ICAgdm9pZCBjbGVhclNlbnRBdHRyaWJ1dGlvbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmKTsK
ICAgICB2b2lkIGF0dHJpYnV0ZShjb25zdCBTb3VyY2VTaXRlJiwgY29uc3QgQXR0cmlidXRlT25T
aXRlJiwgQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmKTsKICAgICB2b2lkIGZpcmVDb252ZXJzaW9u
UmVxdWVzdChjb25zdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYpOwpAQCAtNzcsNyArNzksOCBA
QCBwcml2YXRlOgogCiAgICAgV2ViQ29yZTo6VGltZXIgbV9maXJlUGVuZGluZ0F0dHJpYnV0aW9u
UmVxdWVzdHNUaW1lcjsKICAgICBib29sIG1faXNSdW5uaW5nVGVzdCB7IGZhbHNlIH07Ci0gICAg
T3B0aW9uYWw8VVJMPiBtX2F0dHJpYnV0aW9uQmFzZVVSTEZvclRlc3Rpbmc7CisgICAgT3B0aW9u
YWw8VVJMPiBtX3Rva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZzsKKyAgICBPcHRpb25hbDxVUkw+
IG1fYXR0cmlidXRpb25SZXBvcnRCYXNlVVJMRm9yVGVzdGluZzsKICAgICBXZWFrUHRyPE5ldHdv
cmtTZXNzaW9uPiBtX25ldHdvcmtTZXNzaW9uOwogICAgIFJlZjxOZXR3b3JrUHJvY2Vzcz4gbV9u
ZXR3b3JrUHJvY2VzczsKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDYyYTU0Yjc0NmMzYWIyZjFhYjMy
Y2VkNzE0NjRjNGM0ZGRmMWU5ZDYuLmNjN2ZmMGIxMjUyMDYxNjdiNjc1ZDdkZDU5MWUzYjg1N2Zi
YzYxMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMjk0
NSw5ICsyOTQ1LDE2IEBAIHZvaWQgV0tQYWdlU2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U2Vzc2lvblJlc3RhcnQoV0tQYWdlUmVmIHBhZ2UsIFdLUGFnZVNpCiAgICAgfSk7CiB9CiAKLXZv
aWQgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGlu
ZyhXS1BhZ2VSZWYgcGFnZSwgV0tVUkxSZWYgVVJMUmVmLCBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQq
IGNhbGxiYWNrQ29udGV4dCkKK3ZvaWQgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRU
b2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2UsIFdLVVJMUmVmIFVSTFJl
ZiwgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRl
c3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KQogewotICAgIHRv
SW1wbChwYWdlKS0+c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVz
dGluZyhVUkwoVVJMKCksIHRvV1RGU3RyaW5nKFVSTFJlZikpLCBbY2FsbGJhY2tDb250ZXh0LCBj
YWxsYmFja10gKCkgeworICAgIHRvSW1wbChwYWdlKS0+c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcoVVJMKFVSTCgpLCB0b1dURlN0cmluZyhVUkxS
ZWYpKSwgW2NhbGxiYWNrQ29udGV4dCwgY2FsbGJhY2tdICgpIHsKKyAgICAgICAgY2FsbGJhY2so
Y2FsbGJhY2tDb250ZXh0KTsKKyAgICB9KTsKK30KKwordm9pZCBXS1BhZ2VTZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFn
ZSwgV0tVUkxSZWYgVVJMUmVmLCBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJp
YnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFj
a0NvbnRleHQpCit7CisgICAgdG9JbXBsKHBhZ2UpLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZyhVUkwoVVJMKCksIHRvV1RGU3RyaW5nKFVS
TFJlZikpLCBbY2FsbGJhY2tDb250ZXh0LCBjYWxsYmFja10gKCkgewogICAgICAgICBjYWxsYmFj
ayhjYWxsYmFja0NvbnRleHQpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oCmluZGV4IDcwM2Q2MTljNWFjMmI4N2IxN2Q2MDhiOGFl
NjI0Mzk5MjcwMDdlZTMuLjI4YTgyZjY3YjllYjZmYWQ5NDNmMzcxMzY5YTIwNjQxMDczMTIxM2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmgKQEAg
LTE3OSw4ICsxNzksMTAgQEAgdHlwZWRlZiB2b2lkICgqV0tQYWdlTWFya0F0dHJpYnV0ZWRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nRnUKIFdLX0VYUE9SVCB2b2lk
IFdLUGFnZU1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9y
VGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwgV0tQYWdlTWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNh
bGxiYWNrQ29udGV4dCk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VTaW11bGF0ZVJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydEZ1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQp
OwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vz
c2lvblJlc3RhcnQoV0tQYWdlUmVmIHBhZ2UsIFdLUGFnZVNpbXVsYXRlUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1Nlc3Npb25SZXN0YXJ0RnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29u
dGV4dCk7Ci10eXBlZGVmIHZvaWQgKCpXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
bnZlcnNpb25VUkxGb3JUZXN0aW5nRnVuY3Rpb24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7Ci1X
S19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25V
UkxGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1VSTFJlZiB1cmxTdHJpbmcsIFdLUGFnZVNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmdGdW5jdGlvbiBj
YWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZVNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nRnVuY3Rp
b24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CitXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyhXS1BhZ2VSZWYg
cGFnZSwgV0tVUkxSZWYgdXJsU3RyaW5nLCBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxs
YmFja0NvbnRleHQpOwordHlwZWRlZiB2b2lkICgqV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmdGdW5jdGlvbikodm9pZCogZnVuY3Rp
b25Db250ZXh0KTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1VSTFJl
ZiB1cmxTdHJpbmcsIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25S
ZXBvcnRVUkxGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4
dCk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VNYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNF
eHBpcmVkRm9yVGVzdGluZ0Z1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwogV0tfRVhQ
T1JUIHZvaWQgV0tQYWdlTWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRl
c3RpbmcoV0tQYWdlUmVmIHBhZ2UsIFdLUGFnZU1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNB
c0V4cGlyZWRGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4
dCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlRm9yVGVzdGluZy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmgKaW5kZXggOTc0NDM0MTAxZjg0ZWM1MjQ5
MThhYmMxNGMzZjMxZmI3YWJlNmJjYi4uMzIxODU2Yzk2Y2IwOWI0OTE2MzQwYjdkMDYwYjg0NzU4
MjkyM2M2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmgKQEAgLTg1LDYgKzg1LDYgQEAg
dHlwZWRlZiBlbnVtIHsKIC0gKE5TTnVtYmVyICopX3N1c3BlbmRNZWRpYVBsYXliYWNrQ291bnRl
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwog
CiAtICh2b2lkKV9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0
aW5nOihCT09MKW92ZXJyaWRlVGltZXIgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkp
Y29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVy
c2lvblVSTEZvclRlc3Rpbmc6KE5TVVJMICopdXJsIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4p
KHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZzooTlNVUkwgKil1cmwgY29tcGxldGlvbkhh
bmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQppbmRl
eCAwZmE1ZGIwZmZlZTNmYjY5YWQ5ZTkxMjVmMWQxNTRiY2FjYmRlOGIwLi45OGYxOGY4NGVmMTYz
MTgwNzA1ZGY1OTJmN2U3NDIxMDM3ODliZTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQpAQCAtMzAyLDkgKzMwMiw5
IEBAIC0gKHZvaWQpX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRl
c3Rpbmc6KEJPT0wpb3ZlcnJpZGVUaW1lciBjCiAgICAgfSk7CiB9CiAKLS0gKHZvaWQpX3NldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rpbmc6KE5TVVJMICopdXJs
IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCistICh2
b2lkKV9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVz
dGluZzooTlNVUkwgKil1cmwgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxl
dGlvbkhhbmRsZXIKIHsKLSAgICBfcGFnZS0+c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252
ZXJzaW9uVVJMRm9yVGVzdGluZyh1cmwsIFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0
cihjb21wbGV0aW9uSGFuZGxlcildIHsKKyAgICBfcGFnZS0+c2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcodXJsLCBbY29tcGxldGlvbkhhbmRs
ZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7CiAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAppbmRleCBmOTYzYzg2OWRhN2UzNjcyZDM3YWQ2NWIzNzBmZWNjODY3YzJiMmI5Li40
MDU0MzBjYjViMzNkOWVlNzBiMjVkZDI0ODgyYWYzZWE2MTIyNzcwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEwMDA1LDkgKzEwMDA1LDE0IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpzaW11bGF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFy
dChDb21wbGV0aW9uSGFuZGxlCiAgICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNz
KCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2ltdWxhdGVS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJlc3RhcnQobV93ZWJzaXRlRGF0YVN0b3JlLT5z
ZXNzaW9uSUQoKSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBXZWJQ
YWdlUHJveHk6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rp
bmcoY29uc3QgVVJMJiB1cmwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRv
a2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyhjb25zdCBVUkwmIHVybCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHdlYnNpdGVEYXRhU3RvcmUo
KS5uZXR3b3JrUHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3M6OlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rpbmco
bV93ZWJzaXRlRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSwgdXJsKSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3JrUHJvY2VzcygpLnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKG1fd2Vic2l0ZURhdGFTdG9yZS0+
c2Vzc2lvbklEKCksIHVybCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwordm9p
ZCBXZWJQYWdlUHJveHk6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBv
cnRVUkxGb3JUZXN0aW5nKGNvbnN0IFVSTCYgdXJsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQ
cm9jZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcobV93
ZWJzaXRlRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSwgdXJsKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6bWFya1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAy
OTI0MDZjOWJmNmNhZTc3MWJkZDFjMjkxYTY1YjNlZDEzMGZjMGVhLi5mYWY1MzA1ODI1MGEyZmQy
N2UwY2M3NWRjNDE5Zjk0YzM4OWYzYzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaApAQCAtMTY4OCw3ICsxNjg4LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhib29sIHZhbHVlLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgbWFya0F0dHJpYnV0ZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAgICAgdm9pZCBzaW11bGF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9u
UmVzdGFydChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhjb25zdCBVUkwmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcoY29uc3QgVVJMJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0
cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAgICAgdm9pZCBtYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBp
cmVkRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAjaWYgRU5BQkxF
KFNQRUVDSF9TWU5USEVTSVMpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggNDgwMjg4ZmIxMzI3ZTcxMzZiODMzODFkZWExZmM4ZGRjNmYwMzhkZC4u
NWZjODg5NDA5YTI1NGVmOTI3YzM0MTRhMTFlNmQ3NjU3ODYyOGZkYiAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIx
LTAyLTE3ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBD
TTogUmVxdWVzdCBzaWduYXR1cmUgZm9yIHVubGlua2FibGUgdG9rZW4gdXNpbmcgYXR0cmlidXRp
b25Tb3VyY2VOb25jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjIyMDc2CisgICAgICAgIDxyZGFyOi8vNzM1ODE2NTE+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgVGhlIGNoYW5nZXMgdG8gdGhlIFRlc3RSdW5u
ZXIgYXJlOgorICAgICAgICAtIFJlbmFtZSBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZl
cnNpb25VUkxGb3JUZXN0aW5nKCkgdG8KKyAgICAgICAgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoKSB0byBhbGlnbiB3aXRoIG90aGVyCisg
ICAgICAgIG5hbWluZyBhbmQgbWFrZSBpdCBjbGVhciB0aGF0IGl0IGRvZXMuCisgICAgICAgIC0g
QWRkIHRoZSBuZXcgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZv
clRlc3RpbmcoKSB1c2VkIGZvcgorICAgICAgICB0ZXN0aW5nIHRoZSB0b2tlbiBzaWduaW5nIHJl
cXVlc3QuCisKKyAgICAgICAgVGhlIGNoYW5nZXMgdG8gQVBJIHRlc3RzIGFyZSB0byBhZG9wdCBy
ZW5hbWVkIGZ1bmN0aW9ucyBpbgorICAgICAgICBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDoKKyAgICAgICAgLSByZXBvcnRVUkwoKSByZW5hbWVkIGF0dHJpYnV0aW9uUmVwb3J0VVJM
KCkuCisgICAgICAgIC0ganNvbigpIHJlbmFtZWQgYXR0cmlidXRpb25SZXBvcnRKU09OKCkuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1t
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAo
V1RSOjpUZXN0UnVubmVyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJl
VVJMRm9yVGVzdGluZyk6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKToKKyAgICAgICAgKFdU
Ujo6VGVzdFJ1bm5lcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9y
VGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyk6CisgICAgICAgIChXVFI6OlRl
c3RDb250cm9sbGVyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0
VVJMRm9yVGVzdGluZyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0
aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwog
MjAyMS0wMi0xNyAgU2FtIFNuZWRkb24gIDxnc25lZGRlcnNAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBkZXByZWNhdGlvbiBub3RpY2VzIHRvIGJlbGlldmVkLXVudXNlZCBjb21tYW5kcyBpbiB3
ZWJraXQtcGF0Y2gKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMmQyZjllNjI3NjkwNmU1ZjU0
MGFmNDkxMjg4NTYzNjMyNjViNWM5ZS4uNzZjZTg2OTU1NGViZDk3NDdmNDQ4NDNhNTU4OTIwMGJk
ODZlYjc1MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIzMTEsNiArMjMxMSw3IEBACiAJ
CTYzQTYxQjhBMUZBRDIwNEQwMEYwNjg4NSAvKiBkaXNwbGF5LW1vZGUuaHRtbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9
ICJkaXNwbGF5LW1vZGUuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYzRjY2
ODIwMUY5N0MzQUEwMDMyRUU1MSAvKiBBcHBsaWNhdGlvbk1hbmlmZXN0Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gQXBwbGljYXRpb25NYW5pZmVzdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNkIwQTA3RjYyMUZBOUMyQjAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkIyNUE3NTEyNURDOEQ0RTAwNzA3NDRGIC8q
IEV2ZW50QXR0cmlidXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBFdmVudEF0dHJpYnV0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
QjMwNjEwNTIxOEEzNzI5MDBGNUE4MDIgLyogQ2xvc2luZ1dlYlZpZXcubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBDbG9zaW5nV2ViVmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNkI0RTg2MUIyMjIwQTU1MjAwMjJGMzg5IC8qIFJlZ2lzdHJhYmxlRG9tYWluLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlZ2lzdHJhYmxlRG9tYWluLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNkI5QUJFMTEyMDg2OTUyRjAwRDc1REU2IC8qIEhUVFBQYXJzZXJzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEhUVFBQYXJzZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTMzMTIsNiArMzMxMyw3IEBACiAJCQkJRjQ2MTI4RDYyMTFFNDg5QzAwRDlGQURC
IC8qIERyYWdBbmREcm9wVGVzdHMubW0gKi8sCiAJCQkJQTE1NTAyMjgxRTA1MDIwQjAwQTI0QzU3
IC8qIER1cGxpY2F0ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbHMubW0gKi8sCiAJCQkJRjQ0RDA2NDYx
RjM5NUM0RDAwMUEwRTI5IC8qIEVkaXRvclN0YXRlVGVzdHMubW0gKi8sCisJCQkJNkIyNUE3NTEy
NURDOEQ0RTAwNzA3NDRGIC8qIEV2ZW50QXR0cmlidXRpb24ubW0gKi8sCiAJCQkJQ0RBMjlCMjgy
MEZEMkE5OTAwRjE1Q0VEIC8qIEV4aXRGdWxsc2NyZWVuT25FbnRlclBpUC5tbSAqLywKIAkJCQkx
RDEyQkVCRjI0NUJFRjg1MDA0QzBCN0EgLyogRXhpdFBpUE9uU3VzcGVuZFZpZGVvRWxlbWVudC5t
bSAqLywKIAkJCQkyRDgxMDRDQjFCRUMxM0U3MDAyMERBNDYgLyogRmluZEluUGFnZS5tbSAqLywK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCmluZGV4IDdjZDc3NWI0YzYwNDIwZWZhZTFkZTE2NzQx
ODFkMGU5MWY5ZTYyYjMuLmI3MzI2MzM0NGZlMWY2ZTllYjBlNDJhMjZlNzJjNGZiMmYzOTBmMzYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcApAQCAtNDYsMTEgKzQ2LDExIEBAIFRFU1QoUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQsIFZhbGlkTWluVmFsdWVzKQogICAgIFByaXZhdGVDbGlja01l
YXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlE
KG1pbjZCaXRWYWx1ZSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlIHsgd2Vi
S2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUgeyBleGFt
cGxlVVJMIH0gfTsKICAgICBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGVBbmRHZXRFYXJsaWVzdFRpbWVU
b1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEobWlu
NkJpdFZhbHVlLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHkobWluNkJpdFZhbHVl
KSkpOwogCi0gICAgYXV0byBhdHRyaWJ1dGlvblVSTCA9IGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgp
OworICAgIGF1dG8gYXR0cmlidXRpb25VUkwgPSBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9y
dFVSTCgpOwogICAgIAogICAgIEFTU0VSVF9FUShhdHRyaWJ1dGlvblVSTC5zdHJpbmcoKSwgImh0
dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50L3Jl
cG9ydC1hdHRyaWJ1dGlvbi8iKTsKIAotICAgIEFTU0VSVF9FUShhdHRyaWJ1dGlvbi5qc29uKCkt
PnRvSlNPTlN0cmluZygpLCAie1wic291cmNlX2VuZ2FnZW1lbnRfdHlwZVwiOlwiY2xpY2tcIixc
InNvdXJjZV9zaXRlXCI6XCJ3ZWJraXQub3JnXCIsXCJzb3VyY2VfaWRcIjowLFwiYXR0cmlidXRl
ZF9vbl9zaXRlXCI6XCJleGFtcGxlLmNvbVwiLFwidHJpZ2dlcl9kYXRhXCI6MCxcInZlcnNpb25c
IjoxfSIpOworICAgIEFTU0VSVF9FUShhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydEpTT04o
KS0+dG9KU09OU3RyaW5nKCksICJ7XCJzb3VyY2VfZW5nYWdlbWVudF90eXBlXCI6XCJjbGlja1wi
LFwic291cmNlX3NpdGVcIjpcIndlYmtpdC5vcmdcIixcInNvdXJjZV9pZFwiOjAsXCJhdHRyaWJ1
dGVkX29uX3NpdGVcIjpcImV4YW1wbGUuY29tXCIsXCJ0cmlnZ2VyX2RhdGFcIjowLFwidmVyc2lv
blwiOjF9Iik7CiB9CiAKIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIFZhbGlkTWlkVmFs
dWVzKQpAQCAtNTgsMTEgKzU4LDExIEBAIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIFZh
bGlkTWlkVmFsdWVzKQogICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEKCh1aW50MzJfdCkxOTIpLCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlIHsgZXhhbXBsZVVSTCB9IH07CiAgICAgYXR0cmli
dXRpb24uYXR0cmlidXRlQW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhKCh1aW50MzJfdCk5LCBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6UHJpb3JpdHkoKHVpbnQzMl90KTIyKSkpOwogCi0gICAgYXV0byBhdHRyaWJ1
dGlvblVSTCA9IGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpOworICAgIGF1dG8gYXR0cmlidXRpb25V
UkwgPSBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydFVSTCgpOwogICAgIAogICAgIEFTU0VS
VF9FUShhdHRyaWJ1dGlvblVSTC5zdHJpbmcoKSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1r
bm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50L3JlcG9ydC1hdHRyaWJ1dGlvbi8iKTsKIAot
ICAgIEFTU0VSVF9FUShhdHRyaWJ1dGlvbi5qc29uKCktPnRvSlNPTlN0cmluZygpLCAie1wic291
cmNlX2VuZ2FnZW1lbnRfdHlwZVwiOlwiY2xpY2tcIixcInNvdXJjZV9zaXRlXCI6XCJ3ZWJraXQu
b3JnXCIsXCJzb3VyY2VfaWRcIjoxOTIsXCJhdHRyaWJ1dGVkX29uX3NpdGVcIjpcImV4YW1wbGUu
Y29tXCIsXCJ0cmlnZ2VyX2RhdGFcIjo5LFwidmVyc2lvblwiOjF9Iik7CisgICAgQVNTRVJUX0VR
KGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0SlNPTigpLT50b0pTT05TdHJpbmcoKSwgIntc
InNvdXJjZV9lbmdhZ2VtZW50X3R5cGVcIjpcImNsaWNrXCIsXCJzb3VyY2Vfc2l0ZVwiOlwid2Vi
a2l0Lm9yZ1wiLFwic291cmNlX2lkXCI6MTkyLFwiYXR0cmlidXRlZF9vbl9zaXRlXCI6XCJleGFt
cGxlLmNvbVwiLFwidHJpZ2dlcl9kYXRhXCI6OSxcInZlcnNpb25cIjoxfSIpOwogfQogCiBURVNU
KFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZE1heFZhbHVlcykKQEAgLTcwLDExICs3MCwx
MSBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZE1heFZhbHVlcykKICAgICBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpTb3VyY2VJRChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQ6Ok1heEVudHJv
cHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSB7IHdlYktpdFVSTCB9LCBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlIHsgZXhhbXBsZVVSTCB9IH07
CiAgICAgYXR0cmlidXRpb24uYXR0cmlidXRlQW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhKFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhOjpNYXhFbnRyb3B5LCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6UHJpb3JpdHkoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5
OjpNYXhFbnRyb3B5KSkpOwogCi0gICAgYXV0byBhdHRyaWJ1dGlvblVSTCA9IGF0dHJpYnV0aW9u
LnJlcG9ydFVSTCgpOworICAgIGF1dG8gYXR0cmlidXRpb25VUkwgPSBhdHRyaWJ1dGlvbi5hdHRy
aWJ1dGlvblJlcG9ydFVSTCgpOwogICAgIAogICAgIEFTU0VSVF9FUShhdHRyaWJ1dGlvblVSTC5z
dHJpbmcoKSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1l
YXN1cmVtZW50L3JlcG9ydC1hdHRyaWJ1dGlvbi8iKTsKIAotICAgIEFTU0VSVF9FUShhdHRyaWJ1
dGlvbi5qc29uKCktPnRvSlNPTlN0cmluZygpLCAie1wic291cmNlX2VuZ2FnZW1lbnRfdHlwZVwi
OlwiY2xpY2tcIixcInNvdXJjZV9zaXRlXCI6XCJ3ZWJraXQub3JnXCIsXCJzb3VyY2VfaWRcIjoy
NTUsXCJhdHRyaWJ1dGVkX29uX3NpdGVcIjpcImV4YW1wbGUuY29tXCIsXCJ0cmlnZ2VyX2RhdGFc
IjoxNSxcInZlcnNpb25cIjoxfSIpOworICAgIEFTU0VSVF9FUShhdHRyaWJ1dGlvbi5hdHRyaWJ1
dGlvblJlcG9ydEpTT04oKS0+dG9KU09OU3RyaW5nKCksICJ7XCJzb3VyY2VfZW5nYWdlbWVudF90
eXBlXCI6XCJjbGlja1wiLFwic291cmNlX3NpdGVcIjpcIndlYmtpdC5vcmdcIixcInNvdXJjZV9p
ZFwiOjI1NSxcImF0dHJpYnV0ZWRfb25fc2l0ZVwiOlwiZXhhbXBsZS5jb21cIixcInRyaWdnZXJf
ZGF0YVwiOjE1LFwidmVyc2lvblwiOjF9Iik7CiB9CiAKIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQsIEVhcmxpZXN0VGltZVRvU2VuZEF0dHJpYnV0aW9uTWluaW11bURlbGF5KQpAQCAtMTM2
LDcgKzEzNiw3IEBAIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRTb3VyY2VJ
RCkKICAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpTb3VyY2VJRChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQ6
Ok1heEVudHJvcHkgKyAxKSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUgeyB3
ZWJLaXRVUkwgfSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0ZSB7IGV4
YW1wbGVVUkwgfSB9OwogICAgIGF0dHJpYnV0aW9uLmF0dHJpYnV0ZUFuZEdldEVhcmxpZXN0VGlt
ZVRvU2VuZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YShQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YTo6TWF4RW50cm9w
eSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpQcmlvcml0eTo6TWF4RW50cm9weSkpKTsKIAotICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0
aW9uLnJlcG9ydFVSTCgpLmlzRW1wdHkoKSk7CisgICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24u
YXR0cmlidXRpb25SZXBvcnRVUkwoKS5pc0VtcHR5KCkpOwogfQogCiBURVNUKFByaXZhdGVDbGlj
a01lYXN1cmVtZW50LCBJbnZhbGlkU291cmNlSG9zdCkKQEAgLTE0NCw3ICsxNDQsNyBAQCBURVNU
KFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkU291cmNlSG9zdCkKICAgICBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpT
b3VyY2VJRChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQ6Ok1heEVudHJvcHkpLCBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSB7IGVtcHR5VVJMIH0sIFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUgeyBleGFtcGxlVVJMIH0gfTsKICAgICBh
dHRyaWJ1dGlvbi5hdHRyaWJ1dGVBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEoUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE6Ok1heEVudHJvcHksIFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHk6Ok1heEVu
dHJvcHkpKSk7CiAKLSAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKS5pc0Vt
cHR5KCkpOworICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0VVJM
KCkuaXNFbXB0eSgpKTsKIH0KIAogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxp
ZERlc3RpbmF0aW9uSG9zdCkKQEAgLTE1Miw3ICsxNTIsNyBAQCBURVNUKFByaXZhdGVDbGlja01l
YXN1cmVtZW50LCBJbnZhbGlkRGVzdGluYXRpb25Ib3N0KQogICAgIFByaXZhdGVDbGlja01lYXN1
cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEKFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRDo6TWF4RW50cm9weSArIDEpLCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlIHsgZW1wdHlVUkwgfSB9OwogICAgIGF0dHJpYnV0
aW9uLmF0dHJpYnV0ZUFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0
cmlidXRpb25UcmlnZ2VyRGF0YTo6TWF4RW50cm9weSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OlByaW9yaXR5KFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eTo6TWF4RW50cm9weSkp
KTsKIAotICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpLmlzRW1wdHkoKSk7
CisgICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRVUkwoKS5pc0Vt
cHR5KCkpOwogfQogCiBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBBdHRyaWJ1dGlvblRy
aWdnZXJEYXRhKQpAQCAtMTYwLDcgKzE2MCw3IEBAIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQsIEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpCiAgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQg
YXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQoUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEOjpNYXhFbnRyb3B5KSwgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OlNvdXJjZVNpdGUgeyB3ZWJLaXRVUkwgfSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OkF0dHJpYnV0ZU9uU2l0ZSB7IGV4YW1wbGVVUkwgfSB9OwogICAgIGF0dHJpYnV0aW9uLmF0dHJp
YnV0ZUFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0
cmlidXRpb25UcmlnZ2VyRGF0YSgoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9u
VHJpZ2dlckRhdGE6Ok1heEVudHJvcHkgKyAxKSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlBy
aW9yaXR5KFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eTo6TWF4RW50cm9weSkpKTsK
IAotICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpLmlzRW1wdHkoKSk7Cisg
ICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRVUkwoKS5pc0VtcHR5
KCkpOwogfQogCiBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkUHJpb3JpdHkp
CkBAIC0xNjgsMTQgKzE2OCwxNCBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZh
bGlkUHJpb3JpdHkpCiAgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OlNvdXJjZUlEOjpNYXhFbnRyb3B5KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNp
dGUgeyB3ZWJLaXRVUkwgfSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0
ZSB7IGV4YW1wbGVVUkwgfSB9OwogICAgIGF0dHJpYnV0aW9uLmF0dHJpYnV0ZUFuZEdldEVhcmxp
ZXN0VGltZVRvU2VuZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2Vy
RGF0YShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YTo6TWF4
RW50cm9weSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpQcmlvcml0eTo6TWF4RW50cm9weSArIDEpKSk7CiAKLSAgICBBU1NFUlRfVFJV
RShhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKS5pc0VtcHR5KCkpOworICAgIEFTU0VSVF9UUlVFKGF0
dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKIH0KIAogVEVTVChQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZE1pc3NpbmdDb252ZXJzaW9uKQogewogICAg
IFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OlNvdXJjZUlEKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRDo6TWF4RW50
cm9weSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlIHsgd2ViS2l0VVJMIH0s
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUgeyBleGFtcGxlVVJMIH0g
fTsKIAotICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpLmlzRW1wdHkoKSk7
CisgICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRVUkwoKS5pc0Vt
cHR5KCkpOwogICAgIEFTU0VSVF9GQUxTRShhdHRyaWJ1dGlvbi5lYXJsaWVzdFRpbWVUb1NlbmQo
KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvRXZlbnRBdHRyaWJ1dGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQppbmRleCBjZTRlMmRmMTY4NTMxMzIzYWI5NzJkNzdk
NDkzNWE5M2E5YmYyMzZmLi5kODVmN2QxMzM3YmY0YWEwYzU0M2Y0ZjhmOTkyZDFlOThmMDUyOTNl
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50
QXR0cmlidXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9FdmVudEF0dHJpYnV0aW9uLm1tCkBAIC0xMDYsNyArMTA2LDcgQEAgVEVTVChFdmVudEF0dHJp
YnV0aW9uLCBCYXNpYykKICAgICB3ZWJWaWV3Ll91aUV2ZW50QXR0cmlidXRpb24gPSAoVUlFdmVu
dEF0dHJpYnV0aW9uICopYXR0cmlidXRpb247CiAgICAgW3dlYlZpZXcuY29uZmlndXJhdGlvbi53
ZWJzaXRlRGF0YVN0b3JlIF9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDpZRVNdOwog
ICAgIFt3ZWJWaWV3LmNvbmZpZ3VyYXRpb24ud2Vic2l0ZURhdGFTdG9yZSBfYWxsb3dUTFNDZXJ0
aWZpY2F0ZUNoYWluOkBbKGlkKXRlc3RDZXJ0aWZpY2F0ZSgpLmdldCgpXSBmb3JIb3N0OnNlcnZl
clVSTC5ob3N0XTsKLSAgICBbd2ViVmlldyBfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252
ZXJzaW9uVVJMRm9yVGVzdGluZzpzZXJ2ZXJVUkwgY29tcGxldGlvbkhhbmRsZXI6XnsKKyAgICBb
d2ViVmlldyBfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZv
clRlc3Rpbmc6c2VydmVyVVJMIGNvbXBsZXRpb25IYW5kbGVyOl57CiAgICAgICAgIFt3ZWJWaWV3
IF9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nOllFUyBj
b21wbGV0aW9uSGFuZGxlcjpeewogICAgICAgICAgICAgTlNTdHJpbmcgKmh0bWwgPSBbTlNTdHJp
bmcgc3RyaW5nV2l0aEZvcm1hdDpAIjxzY3JpcHQ+ZmV0Y2goJyVAY29udmVyc2lvblJlcXVlc3RC
ZWZvcmVSZWRpcmVjdCcse21vZGU6J25vLWNvcnMnfSk8L3NjcmlwdD4iLCBzZXJ2ZXJVUkxdOwog
ICAgICAgICAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6aHRtbCBiYXNlVVJMOmV4YW1wbGVV
UkxdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggYTA3MWVjZGRkOWU0MzQ4M2ZlNzcx
OTY4NmMzNWE0ZjM3YjhiMWJjNy4uZmI4ZmM0NjI1NTU2YmIwZjUxMzJmYWI2ZGYxZjY1Y2Y0MDlm
ZjIwNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC00MDMsNyArNDAzLDggQEAgaW50
ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIHVuZGVmaW5lZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJvb2xlYW4gdmFsdWUpOwogICAgIHVuZGVmaW5l
ZCBtYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3Rp
bmcoKTsKICAgICB1bmRlZmluZWQgc2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lv
blJlc3RhcnQoKTsKLSAgICB1bmRlZmluZWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252
ZXJzaW9uVVJMRm9yVGVzdGluZyhET01TdHJpbmcgdXJsKTsKKyAgICB1bmRlZmluZWQgc2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcoRE9NU3RyaW5n
IHVybCk7CisgICAgdW5kZWZpbmVkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRp
b25SZXBvcnRVUkxGb3JUZXN0aW5nKERPTVN0cmluZyB1cmwpOwogICAgIHVuZGVmaW5lZCBtYXJr
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpOwogCiAgICAgLy8g
U3BlZWNoUmVjb2duaXRpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDg2NGNjZTI4NTk3YTQxOGQ4OWE1MzU3ZGM5
MjAwY2NkMDE5NGM3ZDUuLmMwMTdmYzBmNGIzYzJlN2RmM2YxODk4OWIwN2E2ODJmMGMyYWM2NDgg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcApAQCAtMjAyNSw5ICsyMDI1LDE1IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2ltdWxh
dGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJlc3RhcnQoKQogICAgIHBvc3RTeW5jaHJv
bm91c1BhZ2VNZXNzYWdlKCJTaW11bGF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVz
dGFydCIpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
Q29udmVyc2lvblVSTEZvclRlc3RpbmcoSlNTdHJpbmdSZWYgdXJsU3RyaW5nKQordm9pZCBUZXN0
UnVubmVyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVz
dGluZyhKU1N0cmluZ1JlZiB1cmxTdHJpbmcpCiB7Ci0gICAgcG9zdFN5bmNocm9ub3VzUGFnZU1l
c3NhZ2UoIlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rpbmci
LAorICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJTZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyIsCisgICAgICAgIGFkb3B0V0soV0tVUkxD
cmVhdGVXaXRoVVRGOENTdHJpbmcodG9XVEZTdHJpbmcodXJsU3RyaW5nKS51dGY4KCkuZGF0YSgp
KSkpOworfQorCit2b2lkIFRlc3RSdW5uZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0
cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKEpTU3RyaW5nUmVmIHVybFN0cmluZykKK3sKKyAg
ICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgiU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRB
dHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmciLAogICAgICAgICBhZG9wdFdLKFdLVVJMQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKHRvV1RGU3RyaW5nKHVybFN0cmluZykudXRmOCgpLmRhdGEoKSkp
KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuaAppbmRleCBiY2Y3MTBiN2I4NTQ2OWY5YmM2OTIwNDEyODI3MTQ2ZDIzYjNiYzk3
Li4yZDM4MDVjMDZmZGE4ZjI0OTk4ODE1YzExOWZiMGZlZGFjMzdkMDZkIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtNTEy
LDcgKzUxMiw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQoKTsKICAgICB2b2lkIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdlYnNp
dGVEYXRhUmVtb3ZhbCgpOwogICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVy
cmlkZVRpbWVyRm9yVGVzdGluZyhib29sIHZhbHVlKTsKLSAgICB2b2lkIHNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoSlNTdHJpbmdSZWYpOworICAgIHZv
aWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3Rpbmco
SlNTdHJpbmdSZWYpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1
dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoSlNTdHJpbmdSZWYpOwogICAgIHZvaWQgbWFya1ByaXZh
dGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKICAgICB2b2lkIG1hcmtB
dHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpOwog
ICAgIHZvaWQgc2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJlc3RhcnQoKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggYjNmM2I5MzNk
OWRhZjAwNmUwZmY4NzMyNDRlNzVhOTM2ZjcyMjhkOC4uNTE2YmQ5YzZkNDk4NmVkZjdhOTU2MGU0
MjI3OWNiM2E1ZTA4NmYzMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAKQEAgLTM2MzAsMTAgKzM2MzAsMTcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6c2ltdWxh
dGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJlc3RhcnQoKQogICAgIHJ1blVudGlsKGNh
bGxiYWNrQ29udGV4dC5kb25lLCBub1RpbWVvdXQpOwogfQogCi12b2lkIFRlc3RDb250cm9sbGVy
OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdLVVJM
UmVmIHVybCkKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKFdLVVJMUmVmIHVybCkKIHsKICAgICBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudFZvaWRDYWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlz
KTsKLSAgICBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JU
ZXN0aW5nKG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgdXJsLCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFZvaWRDYWxsYmFjaywgJmNhbGxiYWNrQ29udGV4dCk7CisgICAgV0tQYWdlU2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcobV9tYWluV2ViVmlldy0+
cGFnZSgpLCB1cmwsIHByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNrLCAmY2FsbGJh
Y2tDb250ZXh0KTsKKyAgICBydW5VbnRpbChjYWxsYmFja0NvbnRleHQuZG9uZSwgbm9UaW1lb3V0
KTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRB
dHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoV0tVUkxSZWYgdXJsKQoreworICAgIFByaXZh
dGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNrQ29udGV4dCBjYWxsYmFja0NvbnRleHQoKnRo
aXMpOworICAgIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBv
cnRVUkxGb3JUZXN0aW5nKG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgdXJsLCBwcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFZvaWRDYWxsYmFjaywgJmNhbGxiYWNrQ29udGV4dCk7CiAgICAgcnVuVW50aWwo
Y2FsbGJhY2tDb250ZXh0LmRvbmUsIG5vVGltZW91dCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCA4MThjMmI0ZWM0YTU2MmJjMDY3YTRmM2Q1Y2ViYmNk
YmQwNWMwNDdjLi45MWVmOWQ1OWY3MGJiMzIzZTUzNDdjZjdlMzVmZjQ1OTQxZTczYmMwIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0zNDYsNyArMzQ2LDggQEAg
cHVibGljOgogICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVy
Rm9yVGVzdGluZyhib29sIHZhbHVlKTsKICAgICB2b2lkIG1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpOwogICAgIHZvaWQgc2ltdWxhdGVS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJlc3RhcnQoKTsKLSAgICB2b2lkIHNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoV0tVUkxSZWYpOworICAg
IHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3Rp
bmcoV0tVUkxSZWYpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1
dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoV0tVUkxSZWYpOwogICAgIHZvaWQgbWFya1ByaXZhdGVD
bGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKIAogICAgIHZvaWQgZGlkU2V0
QXBwQm91bmREb21haW5zKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9j
YXRpb24uY3BwCmluZGV4IDU1MDM1NWM3YjhiOTg0ODRhN2QyOGNmNTU5NWY2Mzg3NTE3YmY0YmEu
LjBmMDkyMjczODNlNWVmMjJkMmNiNDg0M2E4ZmE0MzQ2MDI2YjQxMGEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0xMzM4LDEwICsxMzM4LDE2IEBAIFdL
UmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91
c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24o
KS5zaW11bGF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydCgpOwogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgCi0gICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRv
VVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZl
cnNpb25VUkxGb3JUZXN0aW5nIikpIHsKKworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25h
dHVyZVVSTEZvclRlc3RpbmciKSkgeworICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2Fn
ZUJvZHkpID09IFdLVVJMR2V0VHlwZUlEKCkpOworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2lu
Z2xldG9uKCkuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRl
c3Rpbmcoc3RhdGljX2Nhc3Q8V0tVUkxSZWY+KG1lc3NhZ2VCb2R5KSk7CisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIH0KKworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5n
KG1lc3NhZ2VOYW1lLCAiU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9y
dFVSTEZvclRlc3RpbmciKSkgewogICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJv
ZHkpID09IFdLVVJMR2V0VHlwZUlEKCkpOwotICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xl
dG9uKCkuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhz
dGF0aWNfY2FzdDxXS1VSTFJlZj4obWVzc2FnZUJvZHkpKTsKKyAgICAgICAgVGVzdENvbnRyb2xs
ZXI6OnNpbmdsZXRvbigpLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBv
cnRVUkxGb3JUZXN0aW5nKHN0YXRpY19jYXN0PFdLVVJMUmVmPihtZXNzYWdlQm9keSkpOwogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwOGM4YjcwNTFhYjg2NjJlZjI0
YmY5ZGRmYmU5OWI3NDQ5NjM1MDE1Li41NzFlYTZjN2ExYTA5Y2ExYjJkZWMzY2Q3YjEzYzRmNzBi
NDQzMDNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjEtMDItMTcgIEpvaG4gV2lsYW5kZXIg
IDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUENNOiBSZXF1ZXN0IHNpZ25hdHVyZSBm
b3IgdW5saW5rYWJsZSB0b2tlbiB1c2luZyBhdHRyaWJ1dGlvblNvdXJjZU5vbmNlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwNzYKKyAgICAgICAg
PHJkYXI6Ly83MzU4MTY1MT4KKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKwor
ICAgICAgICAqIGh0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvYmxvY2stcHJpdmF0ZS1jbGlj
ay1tZWFzdXJlbWVudC5odG1sOgorICAgICAgICAgICAgQWRvcHRpb24gb2YgcmVuYW1lZCBUZXN0
UnVubmVyIGZ1bmN0aW9uIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBv
cnRVUkxGb3JUZXN0aW5nKCkuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9jb252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWw6Cisg
ICAgICAgICAgICBBZG9wdGlvbiBvZiByZW5hbWVkIFRlc3RSdW5uZXIgZnVuY3Rpb24gc2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoKS4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQtYXR0cmli
dXRpb24tcmVwb3J0LWdldHMtc2VudC1vbi1zZXNzaW9uLXN0YXJ0Lmh0bWw6CisgICAgICAgICAg
ICBBZG9wdGlvbiBvZiByZW5hbWVkIFRlc3RSdW5uZXIgZnVuY3Rpb24gc2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoKS4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9nZXRDb252ZXJzaW9u
RGF0YS5waHA6CisgICAgICAgICAgICBBZG9wdGlvbiBvZiByZW5hbWVkIFRlc3RSdW5uZXIgZnVu
Y3Rpb24gc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRl
c3RpbmcoKS4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jl
c291cmNlcy9nZXRUb2tlblNpZ25pbmdEYXRhLnBocDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvc2lnblRva2VuLnBocDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJj
ZXMvdG9rZW5TaWduaW5nRmlsZVBhdGgucGhwOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy91dGlsLmpzOgorICAgICAgICAodGVh
ckRvd25BbmRGaW5pc2gpOgorICAgICAgICAgICAgQWRvcHRpb24gb2YgcmVuYW1lZCBUZXN0UnVu
bmVyIGZ1bmN0aW9uIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRV
UkxGb3JUZXN0aW5nKCkuCisgICAgICAgICAgICBOb3cgYWxzbyBjYWxscyBzZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZygpLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJz
aW9uLXJlcXVlc3QuaHRtbDoKKyAgICAgICAgICAgIEFkb3B0aW9uIG9mIHJlbmFtZWQgVGVzdFJ1
bm5lciBmdW5jdGlvbiBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0
VVJMRm9yVGVzdGluZygpLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvc3RvcmUtcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC13aXRoLXNvdXJjZS1ub25jZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvc3RvcmUtcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC13aXRoLXNvdXJjZS1ub25j
ZS5odG1sOiBBZGRlZC4KKwogMjAyMS0wMi0xNyAgUm9iZXJ0IEplbm5lciAgPGplbm5lckBhcHBs
ZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI3Mjg0Mik6IFsgQmlnU3VyIFdrMiBdIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXNl
ZWthYmxlLmh0bWwgaXMgYSBmbGFrZXkgdGV4dCBmYWlsdXJlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLXByaXZhdGUtY2xpY2stbWVh
c3VyZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMv
YmxvY2stcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC5odG1sCmluZGV4IDU1ZDJjY2I5NTQzMzli
ZDYyMDdiYmE3OTUxODkxOTM5NjIxMDEwYzUuLjBlNzY1YzhkMGYyMmYxYTJiYzMzM2U3OGUyNjdi
NjljNjk2ZmM3M2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4
dGVuc2lvbnMvYmxvY2stcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvYmxvY2stcHJpdmF0ZS1jbGljay1t
ZWFzdXJlbWVudC5odG1sCkBAIC0xNSw3ICsxNSw3IEBACiAKICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKICAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92
ZXJyaWRlVGltZXJGb3JUZXN0aW5nKHRydWUpOwotICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9y
dC5waHAiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0
dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZygiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0LnBocCIpOwogICAg
IH0KIAogICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29udmVy
c2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb252ZXJzaW9uLWRpc2FibGVkLWluLWVw
aGVtZXJhbC1zZXNzaW9uLmh0bWwKaW5kZXggMDFmMDAyZTBmZmZiMTkxMmI2NmU2ZmJlMWJlNjE3
NTY5YTdlMWRhMS4uYzg1MDdhMmU5NGI5MjQ2ODA3ODY1MDkwYWEwNjM3MDUzZDM4NTVjMSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9j
b252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb252ZXJzaW9uLWRpc2Fi
bGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWwKQEAgLTE4LDcgKzE4LDcgQEAKICAgICBwcmVw
YXJlVGVzdCgpOwogCiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVu
bmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29u
dmVyc2lvblJlcG9ydC5waHA/bm9uY2U9IiArIG5vbmNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZygi
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9j
b252ZXJzaW9uUmVwb3J0LnBocD9ub25jZT0iICsgbm9uY2UpOwogCiAgICAgZnVuY3Rpb24gYWN0
aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgewogICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQtYXR0cmlidXRpb24tcmVwb3J0
LWdldHMtc2VudC1vbi1zZXNzaW9uLXN0YXJ0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQtYXR0cmlidXRpb24tcmVwb3J0LWdldHMt
c2VudC1vbi1zZXNzaW9uLXN0YXJ0Lmh0bWwKaW5kZXggZTE4MzY2ZDNkOTEwYWQzZTE1YjkxNzU4
ZGE3YmIzYzNjZGIyYTc2ZC4uYTQ5ZjM4ZDdkZTMyOTY3ZDU3NDQ3ODFhMzhiOGUzY2ViZTY2YjU2
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9leHBpcmVkLWF0dHJpYnV0aW9uLXJlcG9ydC1nZXRzLXNlbnQtb24tc2Vzc2lvbi1zdGFy
dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvZXhwaXJlZC1hdHRyaWJ1dGlvbi1yZXBvcnQtZ2V0cy1zZW50LW9uLXNlc3Npb24tc3RhcnQu
aHRtbApAQCAtMTgsNyArMTgsNyBAQAogICAgIHByZXBhcmVUZXN0KCk7CiAKICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhwP25vbmNl
PSIgKyBub25jZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5waHA/bm9u
Y2U9IiArIG5vbmNlKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxl
bWVudElEKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L3Jlc291cmNlcy9nZXRDb252ZXJzaW9uRGF0YS5waHAgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9nZXRDb252ZXJz
aW9uRGF0YS5waHAKaW5kZXggYTliZDNkZmQ2YmJjMGQwZjMzNmU5ZGFlZThjMDBiOTU1YTAzZGVk
OC4uMDM4ODhhZmI5MzE4MWZjOGNmODM4NGEzYzA3Yzg2NGRlNTRmYjVlNiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMv
Z2V0Q29udmVyc2lvbkRhdGEucGhwCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2dldENvbnZlcnNpb25EYXRhLnBocApAQCAtNDUs
NyArNDUsNyBAQCBpZiAoaXNzZXQoJF9HRVRbJ2VuZFRlc3QnXSkpIHsKICAgICBlY2hvICJpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsiOwogICAgIGVjaG8gIiAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsiOwogICAgIGVjaG8gIiAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoZmFsc2UpOyI7Ci0gICAgZWNobyAiICAgIHRlc3RS
dW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZygn
Jyk7IjsKKyAgICBlY2hvICIgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZygnJyk7IjsKICAgICBlY2hvICJ9IjsKICAg
ICBlY2hvICI8L3NjcmlwdD4iOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvZ2V0VG9rZW5TaWduaW5nRGF0YS5w
aHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291
cmNlcy9nZXRUb2tlblNpZ25pbmdEYXRhLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWNlZWYyNTA5MTZhODg1
Y2U3ZTNhYTVlYzVhZjM3NzRjNWMxZTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvZ2V0VG9rZW5TaWdu
aW5nRGF0YS5waHAKQEAgLTAsMCArMSw1NCBAQAorPD9waHAKK3JlcXVpcmVfb25jZSAndG9rZW5T
aWduaW5nRmlsZVBhdGgucGhwJzsKKworJG5vVGltZW91dCA9IFRydWU7CiskdGltZW91dE1zZWNz
ID0gMDsKK2lmIChpc3NldCgkX0dFVFsndGltZW91dF9tcyddKSkgeworICAgICRub1RpbWVvdXQg
PSBGYWxzZTsKKyAgICAkdGltZW91dE1zZWNzID0gKGludCkgJF9HRVRbJ3RpbWVvdXRfbXMnXTsK
K30KKworJHRva2VuU2lnbmluZ0ZpbGVGb3VuZCA9IEZhbHNlOword2hpbGUgKCRub1RpbWVvdXQg
fHwgJHRpbWVvdXRNc2VjcyA+IDApIHsKKyAgICBpZiAoZmlsZV9leGlzdHMoJHRva2VuU2lnbmlu
Z0ZpbGVQYXRoKSkgeworICAgICAgICAkdG9rZW5TaWduaW5nRmlsZUZvdW5kID0gVHJ1ZTsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorICAgICRzbGVlcE1zZWNzID0gMTA7CisgICAgdXNsZWVwKCRz
bGVlcE1zZWNzICogMTAwMCk7CisgICAgaWYgKCEkbm9UaW1lb3V0KSB7CisgICAgICAgICR0aW1l
b3V0TXNlY3MgLT0gJHNsZWVwTXNlY3M7CisgICAgfQorICAgIC8vIGZpbGVfZXhpc3RzKCkgY2Fj
aGVzIHJlc3VsdHMsIHdlIHdhbnQgdG8gaW52YWxpZGF0ZSB0aGUgY2FjaGUuCisgICAgY2xlYXJz
dGF0Y2FjaGUoKTsKK30KKworCitlY2hvICI8aHRtbD48Ym9keT5cbiI7CisKK2lmICgkdG9rZW5T
aWduaW5nRmlsZUZvdW5kKSB7CisgICAgZWNobyAiVG9rZW4gc2lnbmluZyByZXF1ZXN0IHJlY2Vp
dmVkLiI7CisgICAgJHRva2VuU2lnbmluZ0ZpbGUgPSBmb3BlbigkdG9rZW5TaWduaW5nRmlsZVBh
dGgsICdyJyk7CisgICAgd2hpbGUgKCRsaW5lID0gZmdldHMoJHRva2VuU2lnbmluZ0ZpbGUpKSB7
CisgICAgICAgIGVjaG8gIjxicj4iOworICAgICAgICBlY2hvIHRyaW0oJGxpbmUpOworICAgIH0K
KyAgICBlY2hvICI8YnI+IjsKKyAgICBmY2xvc2UoJHRva2VuU2lnbmluZ0ZpbGUpOworICAgIHVu
bGluaygkdG9rZW5TaWduaW5nRmlsZVBhdGgpOworfSBlbHNlIHsKKyAgICBlY2hvICJUb2tlbiBz
aWduaW5nIHJlcXVlc3Qgbm90IHJlY2VpdmVkIC0gdGltZWQgb3V0Ljxicj4iOworfQorCitpZiAo
aXNzZXQoJF9HRVRbJ2VuZFRlc3QnXSkpIHsKKyAgICBlY2hvICI8c2NyaXB0PiI7CisgICAgZWNo
byAiaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7IjsKKyAgICBlY2hvICIgICAgdGVzdFJ1bm5lci5z
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGZhbHNlKTsi
OworICAgIGVjaG8gIiAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9r
ZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKCcnKTsiOworICAgIGVjaG8gIiAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsiOworICAgIGVjaG8gIn0iOworICAgIGVjaG8gIjwvc2NyaXB0PiI7Cit9
CisKK2VjaG8gIjwvYm9keT48L2h0bWw+IjsKKz8+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9zaWduVG9rZW4ucGhw
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJj
ZXMvc2lnblRva2VuLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MTRlYWIyZGQ2YjM1M2RiYjhhMDgyM2ViNDJk
YzRiNWVhNWUwYjU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvc2lnblRva2VuLnBocApAQCAtMCwwICsx
LDQ0IEBACis8P3BocAorcmVxdWlyZV9vbmNlICJ0b2tlblNpZ25pbmdGaWxlUGF0aC5waHAiOwor
CiskdG9rZW5TaWduaW5nRmlsZSA9IGZvcGVuKCR0b2tlblNpZ25pbmdGaWxlUGF0aCAuICIudG1w
IiwgJ3cnKTsKKyRodHRwSGVhZGVycyA9ICRfU0VSVkVSOworJGNvb2tpZXNGb3VuZCA9IGZhbHNl
OworCitpZiAoJHZhbHVlID0gJGh0dHBIZWFkZXJzWyJIVFRQX0hPU1QiXSkgeworICAgIGZ3cml0
ZSgkdG9rZW5TaWduaW5nRmlsZSwgIkhUVFBfSE9TVDogJHZhbHVlXG4iKTsKK30KKworaWYgKCR2
YWx1ZSA9ICRodHRwSGVhZGVyc1siSFRUUF9DT09LSUUiXSkgeworICAgIGZ3cml0ZSgkdG9rZW5T
aWduaW5nRmlsZSwgIkNvb2tpZXMgaW4gdG9rZW4gc2lnbmluZyByZXF1ZXN0OiAkdmFsdWVcbiIp
OworICAgICRjb29raWVzRm91bmQgPSB0cnVlOworfQorCitpZiAoJHZhbHVlID0gJGh0dHBIZWFk
ZXJzWyJDT05URU5UX1RZUEUiXSkgeworICAgIGZ3cml0ZSgkdG9rZW5TaWduaW5nRmlsZSwgIkNv
bnRlbnQgdHlwZTogJHZhbHVlXG4iKTsKK30KKworaWYgKCR2YWx1ZSA9ICRodHRwSGVhZGVyc1si
UkVRVUVTVF9VUkkiXSkgeworICAgICR2YWx1ZSA9ICRodHRwSGVhZGVyc1siUkVRVUVTVF9VUkki
XTsKKyAgICAkcG9zaXRpb25PZkR1bW15ID0gc3RycG9zKCR2YWx1ZSwgIj9kdW1teT0iKTsKKyAg
ICBpZiAoJHBvc2l0aW9uT2ZEdW1teSA9PT0gZmFsc2UpCisgICAgICAgICRvdXRwdXRVUkwgPSAk
dmFsdWU7CisgICAgZWxzZQorICAgICAgICAkb3V0cHV0VVJMID0gc3Vic3RyKCR2YWx1ZSwgMCwg
JHBvc2l0aW9uT2ZEdW1teSk7CisgICAgZndyaXRlKCR0b2tlblNpZ25pbmdGaWxlLCAiUkVRVUVT
VF9VUkk6ICRvdXRwdXRVUkxcbiIpOworfQorCitpZiAoISRjb29raWVzRm91bmQpIHsKKyAgICBm
d3JpdGUoJHRva2VuU2lnbmluZ0ZpbGUsICJObyBjb29raWVzIGluIHRva2VuIHNpZ25pbmcgcmVx
dWVzdC5cbiIpOworfQorCiskcmVxdWVzdEJvZHkgPSBmaWxlX2dldF9jb250ZW50cygicGhwOi8v
aW5wdXQiKTsKK2Z3cml0ZSgkdG9rZW5TaWduaW5nRmlsZSwgIlJlcXVlc3QgYm9keTpcbiRyZXF1
ZXN0Qm9keVxuIik7CisKK2ZjbG9zZSgkdG9rZW5TaWduaW5nRmlsZSk7CityZW5hbWUoJHRva2Vu
U2lnbmluZ0ZpbGVQYXRoIC4gIi50bXAiLCAkdG9rZW5TaWduaW5nRmlsZVBhdGgpOworCitoZWFk
ZXIoIkhUVFAvMS4xIDIwMSBDcmVhdGVkIik7CitzZXRjb29raWUoImNvb2tpZVNldEluVG9rZW5T
aWduaW5nUmVzcG9uc2UiLCAiMSIsIDAsICIvIik7CisKKz8+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy90b2tlblNp
Z25pbmdGaWxlUGF0aC5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L3Jlc291cmNlcy90b2tlblNpZ25pbmdGaWxlUGF0aC5waHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzJmNTlkYTFlOWVlNDIxNmFiNDA5M2FhZWEyNzhjMGNmNTJlYTRmNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3Vy
Y2VzL3Rva2VuU2lnbmluZ0ZpbGVQYXRoLnBocApAQCAtMCwwICsxLDkgQEAKKzw/cGhwCityZXF1
aXJlX29uY2UgJy4uLy4uL3Jlc291cmNlcy9wb3J0YWJpbGl0eUxheWVyLnBocCc7CisKK2lmIChp
c3NldCgkX0dFVFsiZHVtbXkiXSkpCisgICAgJHRva2VuU2lnbmluZ0ZpbGVOYW1lID0gIi9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmluZ1JlcXVlc3QiIC4gJF9HRVRbImR1bW15Il0g
LiAiLnR4dCI7CitlbHNlCisgICAgJHRva2VuU2lnbmluZ0ZpbGVOYW1lID0gIi9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudFRva2VuU2lnbmluZ1JlcXVlc3QudHh0IjsKKyR0b2tlblNpZ25pbmdGaWxl
UGF0aCA9IHN5c19nZXRfdGVtcF9kaXIoKSAuICR0b2tlblNpZ25pbmdGaWxlTmFtZTsKKz8+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L3Jlc291cmNlcy91dGlsLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9yZXNvdXJjZXMvdXRpbC5qcwppbmRleCA1N2IzMzZhOTk5N2Y3ZWE5ZjJkYmFl
ZThjY2E2NjFjOTRhZGQyMTc2Li44YmI2NmI0ZDJjODU5MDcwYjNhNGViNzk1NjRmYmJiMGRmNGQ4
ZjhkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L3Jlc291cmNlcy91dGlsLmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3V0aWwuanMKQEAgLTExLDcgKzExLDggQEAg
ZnVuY3Rpb24gdGVhckRvd25BbmRGaW5pc2goKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoZmFsc2Up
OwogICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVU
aW1lckZvclRlc3RpbmcoZmFsc2UpOwotICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoIiIpOworICAgICAgICB0ZXN0UnVu
bmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0
aW5nKCIiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRv
a2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZygiIik7CiAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3Qu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vu
ZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbAppbmRleCBhZDhkODhjYzlkNjE5
ZjI5MzA4MjBlNTYwYTM1NTFjMDZiNjRmMzdjLi43NTdjZjdiMzU3Nzc4MWRmZjk3MmU2ZjUzMzUw
NzJhZTc4MWExZDRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVD
bGlja01lYXN1cmVtZW50L3NlbmQtYXR0cmlidXRpb24tY29udmVyc2lvbi1yZXF1ZXN0Lmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZW5k
LWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC5odG1sCkBAIC0xOSw3ICsxOSw2IEBACiAK
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKHRydWUpOwotICAgICAg
ICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRl
c3RpbmcoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNv
dXJjZXMvY29udmVyc2lvblJlcG9ydC5waHA/bm9uY2U9IiArIG5vbmNlKTsKICAgICB9CiAKICAg
ICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7CkBAIC02MCw2ICs1OSw3IEBA
CiAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CiAgICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdv
IikgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5waHA/bm9u
Y2U9IiArIG5vbmNlKTsKICAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaW1nIik7CiAgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNy
YyA9ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291
cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTImbm9uY2U9IiAr
IG5vbmNlOwogICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0
b3JlLXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQtd2l0aC1zb3VyY2Utbm9uY2UtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9y
ZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LXdpdGgtc291cmNlLW5vbmNlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41MmRiMjQ0OTMzNjA5YzdlZGUzMjZkYWZmMzdlZjBiMDMxMWQyM2IzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9zdG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LXdpdGgtc291cmNlLW5vbmNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIxIEBACitUZXN0cyB0aGF0IHRoZSBwcmVzZW5jZSBv
ZiBhIHNvdXJjZSBub25jZSB0cmlnZ2VycyBhIHRva2VuIHNpZ25pbmcgcmVxdWVzdC4KKworCisK
Ky0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorVG9rZW4gc2lnbmlu
ZyByZXF1ZXN0IHJlY2VpdmVkLgorSFRUUF9IT1NUOiAxMjcuMC4wLjE6ODAwMAorQ29udGVudCB0
eXBlOiBhcHBsaWNhdGlvbi9qc29uCitSRVFVRVNUX1VSSTogL3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L3Jlc291cmNlcy9zaWduVG9rZW4ucGhwCitObyBjb29raWVzIGluIHRva2VuIHNpZ25pbmcg
cmVxdWVzdC4KK1JlcXVlc3QgYm9keToKK3sic291cmNlX2VuZ2FnZW1lbnRfdHlwZSI6ImNsaWNr
Iiwic291cmNlX25vbmNlIjoiQUJDREVGYWJjZGVmMDEyMzQ1Njc4OSIsInVubGlua2FibGVfdG9r
ZW4iOiJUT0RPIiwidmVyc2lvbiI6Mn0KKworVW5hdHRyaWJ1dGVkIFByaXZhdGUgQ2xpY2sgTWVh
c3VyZW1lbnRzOgorV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgMQorU291cmNlIHNp
dGU6IDEyNy4wLjAuMQorQXR0cmlidXRlIG9uIHNpdGU6IGxvY2FsaG9zdAorU291cmNlIElEOiAz
CitObyBhdHRyaWJ1dGlvbiB0cmlnZ2VyIGRhdGEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXByaXZhdGUtY2xpY2stbWVh
c3VyZW1lbnQtd2l0aC1zb3VyY2Utbm9uY2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUtcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC13
aXRoLXNvdXJjZS1ub25jZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjNzA2NTY0MTM0ODY0MGE0Yzg0OWE5
NzkwOGJkMzdmNmRkZGVkOTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXByaXZhdGUtY2xpY2stbWVhc3VyZW1l
bnQtd2l0aC1zb3VyY2Utbm9uY2UuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IURPQ1RZUEUgaHRt
bD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRGcmF1ZFByZXZlbnRpb25FbmFibGVkPXRydWUgXSAtLT4KKzxo
dG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8
bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFs
LXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0
KHJ1blRlc3QsIDApIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0aGF0IHRoZSBwcmVz
ZW5jZSBvZiBhIHNvdXJjZSBub25jZSB0cmlnZ2VycyBhIHRva2VuIHNpZ25pbmcgcmVxdWVzdC48
L2Rpdj4KKzxhIGlkPSJ0YXJnZXRMaW5rIiBhdHRyaWJ1dGlvbnNvdXJjZWlkPSIzIiBhdHRyaWJ1
dGVvbj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIiBhdHRyaWJ1dGlvbnNvdXJjZW5vbmNlPSJBQkNE
RUZhYmNkZWYwMTIzNDU2Nzg5Ij5MaW5rPC9hPjxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+
Cis8c2NyaXB0PgorICAgIGlmICghd2luZG93LmxvY2F0aW9uLnNlYXJjaCkKKyAgICAgICAgcHJl
cGFyZVRlc3QoKTsKKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsK
KyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQp
OworICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zm
c2V0V2lkdGggLyAyOworICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsg
ZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNl
bnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBQcm9taXNlIHJl
amVjdGVkLiI7CisgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhcHBlbmRJZnJhbWUodXJs
LCBvbmxvYWRDYWxsYmFjaykgeworICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9IHVy
bDsKKyAgICAgICAgaWYgKG9ubG9hZENhbGxiYWNrKQorICAgICAgICAgICAgaWZyYW1lRWxlbWVu
dC5vbmxvYWQgPSBvbmxvYWRDYWxsYmFjazsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhcHBlbmRUb2tlblNp
Z25hdHVyZUlmcmFtZUFuZEZpbmlzaChkdW1teSkgeworICAgICAgICBhcHBlbmRJZnJhbWUoImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvZ2V0
VG9rZW5TaWduaW5nRGF0YS5waHA/dGltZW91dF9tcz00MDAwJmR1bW15PSIgKyBkdW1teSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCgpOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKKyAgICAgICAgICAgIHRlYXJEb3duQW5kRmlu
aXNoKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Cisg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgaWYgKCF3aW5kb3cu
bG9jYXRpb24uc2VhcmNoKSB7CisgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFRpbWVNaWxs
aXMgPSAobmV3IERhdGUoKSkuZ2V0VGltZSgpOworICAgICAgICAgICAgICAgIGNvbnN0IGhpZ2hF
bnRyb3B5Qml0cyA9IGN1cnJlbnRUaW1lTWlsbGlzIC0gKE1hdGguZmxvb3IoY3VycmVudFRpbWVN
aWxsaXMgLyAxMDAwMDAwKSAqIDEwMDAwMDApOworICAgICAgICAgICAgICAgIGNvbnN0IGR1bW15
ID0gaGlnaEVudHJvcHlCaXRzICsgIiIgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAp
OworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRU
b2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvc2lnblRva2VuLnBocD9kdW1teT0iICsgZHVtbXkp
OworICAgICAgICAgICAgICAgIHRhcmdldExpbmsuaHJlZiA9ICJodHRwOi8vbG9jYWxob3N0Ojgw
MDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUtcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVu
dC13aXRoLXNvdXJjZS1ub25jZS5odG1sP2R1bW15PSIgKyBkdW1teTsKKyAgICAgICAgICAgICAg
ICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKKyAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93Lmxv
Y2F0aW9uLnNlYXJjaCk7CisgICAgICAgICAgICAgICAgYXBwZW5kVG9rZW5TaWduYXR1cmVJZnJh
bWVBbmRGaW5pc2gocGFyYW1zLmdldCgiZHVtbXkiKSk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iiku
aW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOworICAgICAgICB9CisgICAgfQorPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420799</attachid>
            <date>2021-02-17 22:38:38 -0800</date>
            <delta_ts>2021-02-18 11:44:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222076-20210217223837.patch</filename>
            <type>text/plain</type>
            <size>74743</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjdmY2MyM2VhYzZlMzA1
NmJjNjYwYmVhNDYwOGU3OWRlZWUxYmIyYy4uOWI2MGYxOGY3YTRhMGY4MjZkNDQ4YTI1MDdhMzEy
Y2MzYmY5NjIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTAyLTE3ICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBDTTogUmVxdWVzdCBz
aWduYXR1cmUgZm9yIHVubGlua2FibGUgdG9rZW4gdXNpbmcgYXR0cmlidXRpb25Tb3VyY2VOb25j
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMDc2
CisgICAgICAgIDxyZGFyOi8vNzM1ODE2NTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMg
RHVtZXouCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9zdG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LXdpdGgtc291cmNlLW5vbmNlLmh0bWwK
KworICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmhhbmRsZUNsaWNrKToKKyAgICAgICAgICAgIEFkb3B0aW9u
IG9mIHJlbmFtZWQgZnVuY3Rpb24gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0dHJpYnV0aW9u
UmVwb3J0VVJMKCkuCisgICAgICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Ojp0b2tlblNpZ25h
dHVyZVVSTCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6dG9rZW5TaWduYXR1cmVKU09OIGNvbnN0KToKKyAgICAgICAgICAgIE5ldyBmdW5jdGlvbnMg
dG8gZmFjaWxpdGF0ZSB0aGUgcmVxdWVzdCBmb3IgYSB0b2tlbiBzaWduYXR1cmUuCisgICAgICAg
IChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6YXR0cmlidXRpb25SZXBvcnRVUkwg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0dHJp
YnV0aW9uUmVwb3J0SlNPTiBjb25zdCk6CisgICAgICAgICAgICBSZW5hbWVkIGZ1bmN0aW9ucyB0
byBtYWtlIHRoZW0gZGlzdGluY3QgZnJvbSB0aGVpciB0b2tlbiBzaWduaW5nIHBlZXJzLgorICAg
ICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnJlcG9ydFVSTCBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6anNv
biBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpkZWNv
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJh
bFNvdXJjZU5vbmNlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlOjpkZWNvZGUpOgorICAgICAgICAg
ICAgRW5jb2RlIGFuZCBkZWNvZGUgdG8gZmFjaWxpdGF0ZSB0cmFuc2ZlciBvdmVyIElQQy4KKwog
MjAyMS0wMi0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIEZpeCBhIGZldyBpc3N1ZXMgd2l0aCBSYW5nZVJlc3BvbnNlR2VuZXJhdG9yCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDA3Y2Y3NjBjZGQwODc3ZjY1OTVjM2I4NjY4NTMzZWIxMTE0ODg2YzUuLjgxMWI5
NzA2YzA1YzAxMmY1YWZkZTc2ZmNiYjJmNzJiNDI1ZTA1ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NjEgQEAKKzIwMjEtMDItMTcgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisK
KyAgICAgICAgUENNOiBSZXF1ZXN0IHNpZ25hdHVyZSBmb3IgdW5saW5rYWJsZSB0b2tlbiB1c2lu
ZyBhdHRyaWJ1dGlvblNvdXJjZU5vbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjIwNzYKKyAgICAgICAgPHJkYXI6Ly83MzU4MTY1MT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICBUaGlzIHBhdGNoIG1ha2Vz
IFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c3RvcmVVbmF0dHJpYnV0ZWQoKSBsb29r
CisgICAgICAgIGZvciBpbmNvbWluZyBzb3VyY2Ugbm9uY2VzIGFuZCBpZiBmb3VuZCwgY2FsbCB0
aGUgbmV3IGZ1bmN0aW9uCisgICAgICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6
Z2V0U2lnbmVkVW5saW5rYWJsZVRva2VuKCkuCisKKyAgICAgICAgQSBuZXcgc3RhdGljIGZ1bmN0
aW9uIGdlbmVyYXRlTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMoKSB3YXMgYWRkZWQKKyAg
ICAgICAgdG8gcmV1c2UgY29kZSBiZXR3ZWVuIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
cjo6Z2V0U2lnbmVkVW5saW5rYWJsZVRva2VuKCkKKyAgICAgICAgYW5kIHRoZSBleGlzdGluZyBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmZpcmVDb252ZXJzaW9uUmVxdWVzdCgpLgor
CisgICAgICAgIFRvIGVuYWJsZSB0ZXN0aW5nLCB0aGVyZSBpcyBhIG5ldyBmdW5jdGlvbiBjYWxs
ZWQKKyAgICAgICAgTmV0d29ya1Nlc3Npb246OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9r
ZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKCkgYW5kCisgICAgICAgIGZ1bmN0aW9uIHNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoKSB3YXMgcmVuYW1lZAor
ICAgICAgICBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9y
VGVzdGluZygpIGluIE5ldHdvcmtQcm9jZXNzLAorICAgICAgICBOZXR3b3JrU2Vzc2lvbiwgV0tQ
YWdlUHJpdmF0ZSwgV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcsIGFuZAorICAgICAgICBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIgdG8gYWxpZ24gd2l0aCB0aGUgbmFtaW5nIHVzZWQg
aW4gb3RoZXIgcGxhY2VzLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJl
cG9ydFVSTEZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyk6IERlbGV0ZWQu
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtT
ZXNzaW9uOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVz
dGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpzZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtTZXNzaW9uOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25V
UkxGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbi5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlcjo6c3RvcmVVbmF0dHJpYnV0ZWQpOgorICAgICAgICAoV2ViS2l0OjpnZW5lcmF0ZU5l
dHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpnZXRTaWduZWRVbmxpbmthYmxlVG9rZW4pOgorICAgICAg
ICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmZpcmVDb252ZXJzaW9u
UmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
cjo6c2V0VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzZXRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRl
c3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6
OnNldENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZVNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKToKKyAgICAgICAgKFdLUGFnZVNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKToK
KyAgICAgICAgKFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZv
clRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2
YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9y
VGVzdGluZy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGlu
Zy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0
dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZzpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxG
b3JUZXN0aW5nOmNvbXBsZXRpb25IYW5kbGVyOl0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0
dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyk6
IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorCiAyMDIxLTAy
LTE3ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAg
IFtDb29yZGluYXRlZEdyYXBoaWNzXSBUaGUgd2hvbGUgY29udGVudCBpcyB1bm5lY2Vzc2FyaWx5
IHJlcGFpbnRlZCBieSBhbmltYXRpb25zIGluIG5vbi1BQyBtb2RlIHBhZ2VzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCmluZGV4IGVjM2Q5MGJlYzI5ZDMzODdlYmM4
YjIzYWRjNjJhZmJjNzMzMjhkNTQuLjAxYmIxZDE3ZDUyZjljZmVlYThjMDFiZTkwZDMzNjg3NTY5
ZWQyYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCkBAIC01
MjcsNyArNTI3LDcgQEAgdm9pZCBIVE1MQW5jaG9yRWxlbWVudDo6aGFuZGxlQ2xpY2soRXZlbnQm
IGV2ZW50KQogICAgIGF1dG8gcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBwYXJzZVByaXZhdGVD
bGlja01lYXN1cmVtZW50KCk7CiAgICAgLy8gQSBtYXRjaGluZyBjb252ZXJzaW9uIGV2ZW50IG5l
ZWRzIHRvIGhhcHBlbiBiZWZvcmUgdGhlIGNvbXBsZXRlIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1l
bnQKICAgICAvLyBVUkwgY2FuIGJlIGNyZWF0ZWQuIFRodXMsIGl0IHNob3VsZCBiZSBlbXB0eSBm
b3Igbm93LgotICAgIEFTU0VSVCghcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgfHwgcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQtPnJlcG9ydFVSTCgpLmlzTnVsbCgpKTsKKyAgICBBU1NFUlQoIXByaXZh
dGVDbGlja01lYXN1cmVtZW50IHx8IHByaXZhdGVDbGlja01lYXN1cmVtZW50LT5hdHRyaWJ1dGlv
blJlcG9ydFVSTCgpLmlzTnVsbCgpKTsKICAgICAKICAgICBmcmFtZS0+bG9hZGVyKCkuY2hhbmdl
TG9jYXRpb24oY29tcGxldGVkVVJMLCBlZmZlY3RpdmVUYXJnZXQsICZldmVudCwgcmVmZXJyZXJQ
b2xpY3ksIGRvY3VtZW50KCkuc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvUHJvcGFnYXRl
KCksIG5ld0ZyYW1lT3BlbmVyUG9saWN5LCBkb3dubG9hZEF0dHJpYnV0ZSwgc3lzdGVtUHJldmll
d0luZm8sIFdURk1vdmUocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKaW5kZXggMzIwMDQ3
MGQ4N2Q1Zjg1MGNkNDVhZWVjZWM3MWQ4OWNlYmNlYzg0ZS4uZTk0MmMzMThkZjIyNzdjZjY1YTBi
OGU0MDMyNjU0YjM5NTA2YjQyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1By
aXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCkBAIC0zNyw2ICszNyw3IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIHN0YXRpYyBjb25zdCBjaGFyIHByaXZhdGVDbGlja01lYXN1cmVtZW50VHJpZ2dl
ckF0dHJpYnV0aW9uUGF0aFtdID0gIi8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVt
ZW50L3RyaWdnZXItYXR0cmlidXRpb24vIjsKK3N0YXRpYyBjb25zdCBjaGFyIHByaXZhdGVDbGlj
a01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVQYXRoW10gPSAiLy53ZWxsLWtub3duL3ByaXZhdGUt
Y2xpY2stbWVhc3VyZW1lbnQvc2lnbi11bmxpbmthYmxlLXRva2VuLyI7CiBzdGF0aWMgY29uc3Qg
Y2hhciBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFJlcG9ydEF0dHJpYnV0aW9uUGF0aFtdID0gIi8u
d2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50L3JlcG9ydC1hdHRyaWJ1dGlvbi8i
OwogY29uc3Qgc2l6ZV90IHByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UcmlnZ2Vy
RGF0YVBhdGhTZWdtZW50U2l6ZSA9IDI7CiBjb25zdCBzaXplX3QgcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRQcmlvcml0eVBhdGhTZWdtZW50U2l6ZSA9IDI7CkBAIC0xMTQsNyArMTE1LDM3IEBAIGJv
b2wgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Omhhc0hpZ2hlclByaW9yaXR5VGhhbihjb25zdCBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVuCiAgICAgcmV0dXJuIG1fYXR0cmlidXRpb25UcmlnZ2VyRGF0
YS0+cHJpb3JpdHkgPiBvdGhlci5tX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEtPnByaW9yaXR5Owog
fQogCi1VUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnJlcG9ydFVSTCgpIGNvbnN0CitVUkwg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRva2VuU2lnbmF0dXJlVVJMKCkgY29uc3QKK3sKKyAg
ICBpZiAoIW1fZXBoZW1lcmFsU291cmNlTm9uY2UgfHwgIW1fZXBoZW1lcmFsU291cmNlTm9uY2Ut
PmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIFVSTCgpOworCisgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiaHR0cHM6Ly8iKTsKKyAgICBidWls
ZGVyLmFwcGVuZChtX3NvdXJjZVNpdGUucmVnaXN0cmFibGVEb21haW4uc3RyaW5nKCkpOworICAg
IGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbChwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0
dXJlUGF0aCk7CisKKyAgICBVUkwgdXJsIHsgVVJMKCksIGJ1aWxkZXIudG9TdHJpbmcoKSB9Owor
ICAgIGlmICh1cmwuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gdXJsOworCisgICAgcmV0dXJu
IFVSTCgpOworfQorCitSZWY8SlNPTjo6T2JqZWN0PiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
dG9rZW5TaWduYXR1cmVKU09OKCkgY29uc3QKK3sKKyAgICBhdXRvIHJlcG9ydERldGFpbHMgPSBK
U09OOjpPYmplY3Q6OmNyZWF0ZSgpOworICAgIGlmICghbV9lcGhlbWVyYWxTb3VyY2VOb25jZSB8
fCAhbV9lcGhlbWVyYWxTb3VyY2VOb25jZS0+aXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gcmVw
b3J0RGV0YWlsczsKKworICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygic291cmNlX2VuZ2Fn
ZW1lbnRfdHlwZSJfcywgImNsaWNrIl9zKTsKKyAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmco
InNvdXJjZV9ub25jZSJfcywgbV9lcGhlbWVyYWxTb3VyY2VOb25jZS0+bm9uY2UpOworICAgIHJl
cG9ydERldGFpbHMtPnNldFN0cmluZygidW5saW5rYWJsZV90b2tlbiJfcywgIlRPRE8iX3MpOwor
ICAgIHJlcG9ydERldGFpbHMtPnNldEludGVnZXIoInZlcnNpb24iX3MsIDIpOworICAgIHJldHVy
biByZXBvcnREZXRhaWxzOworfQorCitVUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0dHJp
YnV0aW9uUmVwb3J0VVJMKCkgY29uc3QKIHsKICAgICBpZiAoIWlzVmFsaWQoKSkKICAgICAgICAg
cmV0dXJuIFVSTCgpOwpAQCAtMTMxLDcgKzE2Miw3IEBAIFVSTCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6cmVwb3J0VVJMKCkgY29uc3QKICAgICByZXR1cm4gVVJMKCk7CiB9CiAKLVJlZjxKU09O
OjpPYmplY3Q+IFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpqc29uKCkgY29uc3QKK1JlZjxKU09O
OjpPYmplY3Q+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydEpTT04o
KSBjb25zdAogewogICAgIGF1dG8gcmVwb3J0RGV0YWlscyA9IEpTT046Ok9iamVjdDo6Y3JlYXRl
KCk7CiAgICAgaWYgKCFtX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEgfHwgIWlzVmFsaWQoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKaW5kZXgg
YTRjOTZjYTFlMGE0ZDAwYjJhYWYxY2M1NjkzMzI5NzlhOWY4MjUyMC4uNjllNjUzNTJkNDViMDU3
M2I5YzQzM2JiNGQ2NGNhYjBkZWRmZTAwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKQEAgLTIyMSw2ICsyMjEsOSBAQCBwdWJsaWM6CiAg
ICAgICAgIH0KIAogICAgICAgICBTdHJpbmcgbm9uY2U7CisKKyAgICAgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgICAgICB0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8RXBoZW1lcmFsU291cmNlTm9uY2U+IGRl
Y29kZShEZWNvZGVyJik7CiAgICAgfTsKIAogICAgIHN0cnVjdCBQcmlvcml0eSB7CkBAIC0yNzQs
OCArMjc3LDEwIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgRXhwZWN0ZWQ8
QXR0cmlidXRpb25UcmlnZ2VyRGF0YSwgU3RyaW5nPiBwYXJzZUF0dHJpYnV0aW9uUmVxdWVzdChj
b25zdCBVUkwmIHJlZGlyZWN0VVJMKTsKICAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxTZWNv
bmRzPiBhdHRyaWJ1dGVBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoQXR0cmlidXRpb25UcmlnZ2Vy
RGF0YSYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGhhc0hpZ2hlclByaW9yaXR5VGhhbihj
b25zdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JU
IFVSTCByZXBvcnRVUkwoKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBSZWY8SlNPTjo6T2Jq
ZWN0PiBqc29uKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgVVJMIHRva2VuU2lnbmF0dXJl
VVJMKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVmPEpTT046Ok9iamVjdD4gdG9rZW5T
aWduYXR1cmVKU09OKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgVVJMIGF0dHJpYnV0aW9u
UmVwb3J0VVJMKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVmPEpTT046Ok9iamVjdD4g
YXR0cmlidXRpb25SZXBvcnRKU09OKCkgY29uc3Q7CiAgICAgY29uc3QgU291cmNlU2l0ZSYgc291
cmNlU2l0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlU2l0ZTsgfTsKICAgICBjb25zdCBBdHRy
aWJ1dGVPblNpdGUmIGF0dHJpYnV0ZU9uU2l0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXR0cmlidXRl
T25TaXRlOyB9OwogICAgIHZvaWQgc2V0RXBoZW1lcmFsU291cmNlTm9uY2UoRXBoZW1lcmFsU291
cmNlTm9uY2UmJiBub25jZSkgeyBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlID0gV1RGTW92ZShub25j
ZSk7IH07CkBAIC0zMTgsNiArMzIzLDcgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgICAgIDw8IG1fc291cmNlRGVzY3Jp
cHRpb24KICAgICAgICAgPDwgbV9wdXJjaGFzZXIKICAgICAgICAgPDwgbV90aW1lT2ZBZENsaWNr
CisgICAgICAgIDw8IG1fZXBoZW1lcmFsU291cmNlTm9uY2UKICAgICAgICAgPDwgbV9hdHRyaWJ1
dGlvblRyaWdnZXJEYXRhCiAgICAgICAgIDw8IG1fZWFybGllc3RUaW1lVG9TZW5kOwogfQpAQCAt
MzU0LDcgKzM2MCwxMiBAQCBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OmRlY29kZShEZWNvZGVyJiBkZWNvZAogICAgIGRlY29kZXIgPj4g
dGltZU9mQWRDbGljazsKICAgICBpZiAoIXRpbWVPZkFkQ2xpY2spCiAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7Ci0gICAgCisKKyAgICBPcHRpb25hbDxPcHRpb25hbDxFcGhlbWVyYWxTb3Vy
Y2VOb25jZT4+IGVwaGVtZXJhbFNvdXJjZU5vbmNlOworICAgIGRlY29kZXIgPj4gZXBoZW1lcmFs
U291cmNlTm9uY2U7CisgICAgaWYgKCFlcGhlbWVyYWxTb3VyY2VOb25jZSkKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKwogICAgIE9wdGlvbmFsPE9wdGlvbmFsPEF0dHJpYnV0aW9uVHJp
Z2dlckRhdGE+PiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhOwogICAgIGRlY29kZXIgPj4gYXR0cmli
dXRpb25UcmlnZ2VyRGF0YTsKICAgICBpZiAoIWF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpCkBAIC0z
NzMsMTIgKzM4NCwzMCBAQCBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OmRlY29kZShEZWNvZGVyJiBkZWNvZAogICAgICAgICBXVEZNb3Zl
KCpwdXJjaGFzZXIpLAogICAgICAgICBXVEZNb3ZlKCp0aW1lT2ZBZENsaWNrKQogICAgIH07Cisg
ICAgYXR0cmlidXRpb24ubV9lcGhlbWVyYWxTb3VyY2VOb25jZSA9IFdURk1vdmUoKmVwaGVtZXJh
bFNvdXJjZU5vbmNlKTsKICAgICBhdHRyaWJ1dGlvbi5tX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEg
PSBXVEZNb3ZlKCphdHRyaWJ1dGlvblRyaWdnZXJEYXRhKTsKICAgICBhdHRyaWJ1dGlvbi5tX2Vh
cmxpZXN0VGltZVRvU2VuZCA9IFdURk1vdmUoKmVhcmxpZXN0VGltZVRvU2VuZCk7CiAgICAgCiAg
ICAgcmV0dXJuIGF0dHJpYnV0aW9uOwogfQogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9p
ZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBoZW1lcmFsU291cmNlTm9uY2U6OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbm9uY2U7Cit9CisKK3Rl
bXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
RXBoZW1lcmFsU291cmNlTm9uY2U+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVyYWxT
b3VyY2VOb25jZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8U3Ry
aW5nPiBub25jZTsKKyAgICBkZWNvZGVyID4+IG5vbmNlOworICAgIGlmICghbm9uY2UpCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgCisgICAgcmV0dXJuIEVwaGVtZXJhbFNvdXJj
ZU5vbmNlIHsgV1RGTW92ZSgqbm9uY2UpIH07Cit9CisKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
CiB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhOjpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggN2E5MzE5NDhhMDU2ZWI5MmVjYmQz
ZjJkMjc0ZGYxNDRkZjAxYTk1ZS4uMTRhNmJmNzQ0YjNlNTdlNmQ1YmQwN2E4NjUyMzk2NmM2ZDky
ZDUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHAKQEAgLTI2MDcsMTAgKzI2MDcsMTggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6bWFya0F0
dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFAKICAg
ICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgVVJMJiYgdXJsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFVSTCYmIHVybCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkK
LSAgICAgICAgc2Vzc2lvbi0+c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJM
Rm9yVGVzdGluZyhXVEZNb3ZlKHVybCkpOworICAgICAgICBzZXNzaW9uLT5zZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyhXVEZNb3ZlKHVybCkpOwor
ICAgIAorICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6
OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMJiYgdXJsLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBu
ZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQorICAgICAgICBzZXNzaW9uLT5zZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZyhXVEZNb3ZlKHVybCkp
OwogICAgIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggMTEyNjJhODU2YjEzODEzMTY5MmMy
NTU0ODJiM2JhNjU3NDQ1ZWIyMS4uMmIyNGI4MzJmYjI0NzM4NWYyZDRlMGJjMjc4N2EwZDFkMDhi
MWUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aApAQCAtMzQyLDcgKzM0Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGJvb2wgdmFs
dWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBtYXJrQXR0cmlidXRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoUEFMOjpTZXNzaW9u
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzaW11bGF0ZVJlc291
cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydChQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
Q29udmVyc2lvblVSTEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFVSTCYmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRU
b2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFVSTCYmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFVSTCYmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgbWFya1ByaXZhdGVDbGlja01l
YXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICBSZWZQdHI8V2ViQ29yZTo6U3RvcmFnZVF1b3RhTWFu
YWdlcj4gc3RvcmFnZVF1b3RhTWFuYWdlcihQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6
Q2xpZW50T3JpZ2luJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA1OGIzZTRjODY4YzcwMTJjZGIzNTY1
NmVhYWJmMmI2MTgxZjJiYzdlLi5lMDc0N2NkMmEyNjEzOWNmZjg2ZjVlNTgxMDY3Y2FiYWMxZTFl
ZGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTE2Nyw3ICsxNjcsOCBAQCBtZXNzYWdlcyAtPiBOZXR3
b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wg
dmFsdWUpIC0+ICgpIEFzeW5jCiAgICAgTWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkg
QXN5bmMKICAgICBTaW11bGF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydChQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCi0gICAgU2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFVSTCB1cmwpIC0+ICgpIEFzeW5jCisgICAgU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRU
b2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwg
dXJsKSAtPiAoKSBBc3luYworICAgIFNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRp
b25SZXBvcnRVUkxGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIHVybCkg
LT4gKCkgQXN5bmMKICAgICBNYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9y
VGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCiAgICAgR2V0TG9j
YWxTdG9yYWdlT3JpZ2luRGV0YWlscyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChWZWN0
b3I8V2ViS2l0OjpMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXI6Ok9yaWdpbkRldGFpbHM+IGRl
dGFpbHMpIEFzeW5jCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbi5jcHAKaW5kZXggMzlkMjIwMGY0YzA2OGY2MDM2MWNmZTExZDc3ODg5MGJlMDQyYTc2
Mi4uODRiMDU2OGJmZWQxMDE5OTUzY2QzNDQwMGFiNzI3YTI2Yjc4YmMwYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTMzOCw5ICsz
MzgsMTQgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbjo6bWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKEMKICAgICBwcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCgpLm1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9y
VGVzdGluZyhXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgTmV0d29ya1Nl
c3Npb246OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rpbmco
VVJMJiYgdXJsKQordm9pZCBOZXR3b3JrU2Vzc2lvbjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcoVVJMJiYgdXJsKQogewotICAgIHByaXZhdGVD
bGlja01lYXN1cmVtZW50KCkuc2V0Q29udmVyc2lvblVSTEZvclRlc3RpbmcoV1RGTW92ZSh1cmwp
KTsKKyAgICBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpLnNldFRva2VuU2lnbmF0dXJlVVJMRm9y
VGVzdGluZyhXVEZNb3ZlKHVybCkpOworfQorCit2b2lkIE5ldHdvcmtTZXNzaW9uOjpzZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZyhVUkwmJiB1
cmwpCit7CisgICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS5zZXRBdHRyaWJ1dGlvblJlcG9y
dFVSTEZvclRlc3RpbmcoV1RGTW92ZSh1cmwpKTsKIH0KIAogdm9pZCBOZXR3b3JrU2Vzc2lvbjo6
bWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4IGU4NmE4NTRk
Mjk1OThiYWFiNzU3YTFkMzFmM2JhMjlhZWY5YjNjODYuLjg0MzgxN2ZhNzY5OWRhMThjOTIwMDJk
MDQyMWU2MDUxZTQ3OWI1ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtTZXNzaW9uLmgKQEAgLTEyMyw3ICsxMjMsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVh
clByaXZhdGVDbGlja01lYXN1cmVtZW50Rm9yUmVnaXN0cmFibGVEb21haW4oV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4mJik7CiAgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92
ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJvb2wgdmFsdWUpOwogICAgIHZvaWQgbWFya0F0dHJpYnV0
ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
bnZlcnNpb25VUkxGb3JUZXN0aW5nKFVSTCYmKTsKKyAgICB2b2lkIHNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKFVSTCYmKTsKKyAgICB2b2lkIHNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKFVS
TCYmKTsKICAgICB2b2lkIG1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JU
ZXN0aW5nKCk7CiAgICAgdm9pZCBmaXJlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUaW1lckltbWVk
aWF0ZWx5KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcAppbmRleCBjZmViNjY1OGQz
OGQ0ZGQ2MWVmODE4NmIzMzYzODdhMmM0MWZhMTIwLi5iMDNlOTcwMjI2ZTE0Nzg1ZTllZmQ0NjMw
ZTBiMmExMDUzYTYwYTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwCkBAIC00Nyw2
ICs0Nyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgU291cmNlU2l0ZSA9IFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlOwogdXNpbmcgQXR0cmlidXRlT25TaXRl
ID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0ZTsKIHVzaW5nIEF0dHJp
YnV0aW9uVHJpZ2dlckRhdGEgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25U
cmlnZ2VyRGF0YTsKK3VzaW5nIEVwaGVtZXJhbFNvdXJjZU5vbmNlID0gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlOwogCiBjb25zdGV4cHIgU2Vjb25kcyBkZWJ1
Z01vZGVTZWNvbmRzVW50aWxTZW5kIHsgMTBfcyB9OwogCkBAIC03Myw2ICs3NCw5IEBAIHZvaWQg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzdG9yZVVuYXR0cmlidXRlZChQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCYmCiAKICAgICBjbGVhckV4cGlyZWQoKTsKIAorICAgIGlmIChhdHRy
aWJ1dGlvbi5lcGhlbWVyYWxTb3VyY2VOb25jZSgpKQorICAgICAgICBnZXRTaWduZWRVbmxpbmth
YmxlVG9rZW4oYXR0cmlidXRpb24pOworCiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0
Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkxvZywgIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50
XSBTdG9yaW5nIGFuIGFkIGNsaWNrLiJfcyk7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQpAQCAtODEsNiArODUsNjcgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXI6OnN0b3JlVW5hdHRyaWJ1dGVkKFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYKICNl
bmRpZgogfQogCitzdGF0aWMgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgZ2VuZXJhdGVO
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyhVUkwmJiB1cmwsIFJlZjxKU09OOjpPYmplY3Q+
IGpzb25QYXlsb2FkLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UGNtRGF0YUNhcnJpZWQgZGF0
YVR5cGVDYXJyaWVkKQoreworICAgIHN0YXRpYyB1aW50NjRfdCBpZGVudGlmaWVyID0gMDsKKyAg
ICAKKyAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCB7IFdURk1vdmUodXJsKSB9OworICAgIHJl
cXVlc3Quc2V0SFRUUE1ldGhvZCgiUE9TVCJfcyk7CisgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVy
RmllbGQoSFRUUEhlYWRlck5hbWU6OkNhY2hlQ29udHJvbCwgV2ViQ29yZTo6SFRUUEhlYWRlclZh
bHVlczo6bWF4QWdlMCgpKTsKKyAgICByZXF1ZXN0LnNldEhUVFBDb250ZW50VHlwZShXZWJDb3Jl
OjpIVFRQSGVhZGVyVmFsdWVzOjphcHBsaWNhdGlvbkpTT05Db250ZW50VHlwZSgpKTsKKyAgICBy
ZXF1ZXN0LnNldEhUVFBCb2R5KFdlYkNvcmU6OkZvcm1EYXRhOjpjcmVhdGUoanNvblBheWxvYWQt
PnRvSlNPTlN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKworICAgIEZldGNoT3B0aW9ucyBvcHRp
b25zOworICAgIG9wdGlvbnMuY3JlZGVudGlhbHMgPSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxz
OjpPbWl0OworICAgIG9wdGlvbnMucmVkaXJlY3QgPSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpF
cnJvcjsKKworICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJz
OworICAgIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIgPSArK2lkZW50aWZpZXI7CisgICAgbG9h
ZFBhcmFtZXRlcnMucmVxdWVzdCA9IHJlcXVlc3Q7CisgICAgbG9hZFBhcmFtZXRlcnMucGFyZW50
UElEID0gcHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCk7CisgICAgbG9hZFBhcmFtZXRlcnMuc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RXBoZW1lcmFs
U3RhdGVsZXNzOworICAgIGxvYWRQYXJhbWV0ZXJzLm9wdGlvbnMgPSBvcHRpb25zOworICAgIGxv
YWRQYXJhbWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QgPSB0
cnVlOworICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFJlc3RyaWN0SFRUUFJlc3BvbnNlQWNjZXNz
ID0gZmFsc2U7CisgICAgbG9hZFBhcmFtZXRlcnMucGNtRGF0YUNhcnJpZWQgPSBkYXRhVHlwZUNh
cnJpZWQ7CisgICAgCisgICAgcmV0dXJuIGxvYWRQYXJhbWV0ZXJzOworfQorCit2b2lkIFByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Z2V0U2lnbmVkVW5saW5rYWJsZVRva2VuKGNvbnN0
IFByaXZhdGVDbGlja01lYXN1cmVtZW50JiBhdHRyaWJ1dGlvbikKK3sKKyAgICBpZiAoIWZlYXR1
cmVFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gdG9rZW5TaWduYXR1cmVV
UkwgPSBhdHRyaWJ1dGlvbi50b2tlblNpZ25hdHVyZVVSTCgpOworICAgIGF1dG8gcGNtRGF0YUNh
cnJpZWQgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UGNtRGF0YUNhcnJpZWQ6OlBlcnNvbmFs
bHlJZGVudGlmaWFibGU7CisgICAgaWYgKG1fdG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKSB7
CisgICAgICAgIHRva2VuU2lnbmF0dXJlVVJMID0gKm1fdG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0
aW5nOworICAgICAgICBwY21EYXRhQ2FycmllZCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQ
Y21EYXRhQ2FycmllZDo6Tm9uUGVyc29uYWxseUlkZW50aWZpYWJsZTsKKyAgICB9CisKKyAgICBp
ZiAodG9rZW5TaWduYXR1cmVVUkwuaXNFbXB0eSgpIHx8ICF0b2tlblNpZ25hdHVyZVVSTC5pc1Zh
bGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gbG9hZFBhcmFtZXRlcnMgPSBnZW5l
cmF0ZU5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKFdURk1vdmUodG9rZW5TaWduYXR1cmVV
UkwpLCBhdHRyaWJ1dGlvbi50b2tlblNpZ25hdHVyZUpTT04oKSwgcGNtRGF0YUNhcnJpZWQpOwor
CisgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkFib3V0IHRv
IGZpcmUgYSB1bmxpbmthYmxlIHRva2VuIHNpZ25pbmcgcmVxdWVzdC4iKTsKKyAgICBtX25ldHdv
cmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNv
dXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6TG9nLCAiW1ByaXZh
dGUgQ2xpY2sgTWVhc3VyZW1lbnRdIEFib3V0IHRvIGZpcmUgYSB1bmxpbmthYmxlIHRva2VuIHNp
Z25pbmcgcmVxdWVzdC4iX3MpOworCisgICAgbV9waW5nTG9hZEZ1bmN0aW9uKFdURk1vdmUobG9h
ZFBhcmFtZXRlcnMpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSkgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIGlmICghZXJyb3IuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgIHdlYWtUaGlz
LT5tX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZSh3ZWFrVGhpcy0+bV9z
ZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdl
TGV2ZWw6OkVycm9yLCBtYWtlU3RyaW5nKCJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gUmVj
ZWl2ZWQgZXJyb3I6ICciX3MsIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCksICInIGZvciB1
bmxpbmthYmxlIHRva2VuIHNpZ25pbmcgcmVxdWVzdC4iX3MpKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gRklYTUU6IFJlY2VpdmUgYW5kIHN0
b3JlIHRoZSBzaWduZWQgdW5saW5rYWJsZSB0b2tlbiwgcmRhcjovLzczNTgyMDMyLgorICAgIH0p
OworCit9CisKIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpoYW5kbGVBdHRy
aWJ1dGlvbihBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSwg
Y29uc3QgVVJMJiByZXF1ZXN0VVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJl
ZGlyZWN0UmVxdWVzdCkKIHsKICAgICBpZiAoIWZlYXR1cmVFbmFibGVkKCkpCkBAIC0xMzgsMzMg
KzIwMywxMSBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6ZmlyZUNvbnZl
cnNpb25SZXF1ZXN0KGNvbnN0IFByaXZhdGVDbGlja01lYQogICAgIGlmICghZmVhdHVyZUVuYWJs
ZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBhdHRyaWJ1dGlvblVSTCA9IG1fYXR0
cmlidXRpb25CYXNlVVJMRm9yVGVzdGluZyA/ICptX2F0dHJpYnV0aW9uQmFzZVVSTEZvclRlc3Rp
bmcgOiBhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKTsKKyAgICBhdXRvIGF0dHJpYnV0aW9uVVJMID0g
bV9hdHRyaWJ1dGlvblJlcG9ydEJhc2VVUkxGb3JUZXN0aW5nID8gKm1fYXR0cmlidXRpb25SZXBv
cnRCYXNlVVJMRm9yVGVzdGluZyA6IGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0VVJMKCk7
CiAgICAgaWYgKGF0dHJpYnV0aW9uVVJMLmlzRW1wdHkoKSB8fCAhYXR0cmlidXRpb25VUkwuaXNW
YWxpZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCB7
IFdURk1vdmUoYXR0cmlidXRpb25VUkwpIH07Ci0gICAgCi0gICAgcmVxdWVzdC5zZXRIVFRQTWV0
aG9kKCJQT1NUIl9zKTsKLSAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVy
TmFtZTo6Q2FjaGVDb250cm9sLCBXZWJDb3JlOjpIVFRQSGVhZGVyVmFsdWVzOjptYXhBZ2UwKCkp
OwotCi0gICAgcmVxdWVzdC5zZXRIVFRQQ29udGVudFR5cGUoV2ViQ29yZTo6SFRUUEhlYWRlclZh
bHVlczo6YXBwbGljYXRpb25KU09OQ29udGVudFR5cGUoKSk7Ci0gICAgcmVxdWVzdC5zZXRIVFRQ
Qm9keShXZWJDb3JlOjpGb3JtRGF0YTo6Y3JlYXRlKGF0dHJpYnV0aW9uLmpzb24oKS0+dG9KU09O
U3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOwotCi0gICAgRmV0Y2hPcHRpb25zIG9wdGlvbnM7Ci0g
ICAgb3B0aW9ucy5jcmVkZW50aWFscyA9IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6Ok9taXQ7
Ci0gICAgb3B0aW9ucy5yZWRpcmVjdCA9IEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6OkVycm9yOwot
Ci0gICAgc3RhdGljIHVpbnQ2NF90IGlkZW50aWZpZXIgPSAwOwotICAgIAotICAgIE5ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzOwotICAgIGxvYWRQYXJhbWV0ZXJz
LmlkZW50aWZpZXIgPSArK2lkZW50aWZpZXI7Ci0gICAgbG9hZFBhcmFtZXRlcnMucmVxdWVzdCA9
IHJlcXVlc3Q7Ci0gICAgbG9hZFBhcmFtZXRlcnMucGFyZW50UElEID0gcHJlc2VudGluZ0FwcGxp
Y2F0aW9uUElEKCk7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kg
PSBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RXBoZW1lcmFsU3RhdGVsZXNzOwotICAgIGxvYWRQ
YXJhbWV0ZXJzLm9wdGlvbnMgPSBvcHRpb25zOwotICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QgPSB0cnVlOwotICAgIGxvYWRQYXJhbWV0
ZXJzLnNob3VsZFJlc3RyaWN0SFRUUFJlc3BvbnNlQWNjZXNzID0gZmFsc2U7Ci0gICAgbG9hZFBh
cmFtZXRlcnMucGNtRGF0YUNhcnJpZWQgPSBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6UGNtRGF0YUNhcnJpZWQ6Ok5vblBlcnNvbmFsbHlJZGVudGlmaWFibGU7CisgICAgYXV0byBs
b2FkUGFyYW1ldGVycyA9IGdlbmVyYXRlTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMoV1RG
TW92ZShhdHRyaWJ1dGlvblVSTCksIGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0SlNPTigp
LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UGNtRGF0YUNhcnJpZWQ6Ok5vblBlcnNvbmFsbHlJ
ZGVudGlmaWFibGUpOwogCiAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCwgIkFib3V0IHRvIGZpcmUgYW4gYXR0cmlidXRpb24gcmVxdWVzdC4iKTsKICAgICBtX25l
dHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2Fn
ZVNvdXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6TG9nLCAiW1By
aXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIEFib3V0IHRvIGZpcmUgYW4gYXR0cmlidXRpb24gcmVx
dWVzdC4iX3MpOwpAQCAtMjkzLDEyICszMzYsMjAgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1hbmFnZXI6OnRvU3RyaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJgog
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCJcbk5vIHN0b3JlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVt
ZW50IGRhdGEuXG4iX3MpOwogfQogCi12b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
cjo6c2V0Q29udmVyc2lvblVSTEZvclRlc3RpbmcoVVJMJiYgdGVzdFVSTCkKK3ZvaWQgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzZXRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3Rpbmco
VVJMJiYgdGVzdFVSTCkKK3sKKyAgICBpZiAodGVzdFVSTC5pc0VtcHR5KCkpCisgICAgICAgIG1f
dG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nID0geyB9OworICAgIGVsc2UKKyAgICAgICAgbV90
b2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcgPSBXVEZNb3ZlKHRlc3RVUkwpOworfQorCit2b2lk
IFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c2V0QXR0cmlidXRpb25SZXBvcnRVUkxG
b3JUZXN0aW5nKFVSTCYmIHRlc3RVUkwpCiB7CiAgICAgaWYgKHRlc3RVUkwuaXNFbXB0eSgpKQot
ICAgICAgICBtX2F0dHJpYnV0aW9uQmFzZVVSTEZvclRlc3RpbmcgPSB7IH07CisgICAgICAgIG1f
YXR0cmlidXRpb25SZXBvcnRCYXNlVVJMRm9yVGVzdGluZyA9IHsgfTsKICAgICBlbHNlCi0gICAg
ICAgIG1fYXR0cmlidXRpb25CYXNlVVJMRm9yVGVzdGluZyA9IFdURk1vdmUodGVzdFVSTCk7Cisg
ICAgICAgIG1fYXR0cmlidXRpb25SZXBvcnRCYXNlVVJMRm9yVGVzdGluZyA9IFdURk1vdmUodGVz
dFVSTCk7CiB9CiAKIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjptYXJrQWxs
VW5hdHRyaWJ1dGVkQXNFeHBpcmVkRm9yVGVzdGluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIu
aAppbmRleCA5NmQwYjY4MjU2NDBlZjc2MWNhMzBlMmI5YzJlYmJjM2ExM2IxNDI0Li5jNWRlODY3
YzgzZTRmYjI0NmM0YTBlM2MwMWZhNWQxNjk3NWM5ZGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyLmgKQEAgLTYxLDEyICs2MSwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCB0b1N0cmluZyhDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpIGNvbnN0OwogICAgIHZvaWQgc2V0UGluZ0xv
YWRGdW5jdGlvbihGdW5jdGlvbjx2b2lkKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKT4mJik+JiYgcGluZ0xvYWRGdW5jdGlvbikg
eyBtX3BpbmdMb2FkRnVuY3Rpb24gPSBXVEZNb3ZlKHBpbmdMb2FkRnVuY3Rpb24pOyB9CiAgICAg
dm9pZCBzZXRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhib29sIHZhbHVlKSB7IG1faXNSdW5uaW5n
VGVzdCA9IHZhbHVlOyB9Ci0gICAgdm9pZCBzZXRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhVUkwm
Jik7CisgICAgdm9pZCBzZXRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcoVVJMJiYpOworICAg
IHZvaWQgc2V0QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKFVSTCYmKTsKICAgICB2b2lk
IG1hcmtBbGxVbmF0dHJpYnV0ZWRBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CiAgICAgdm9pZCBtYXJr
QXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHN0YXJ0VGltZXIoU2Vjb25kcyk7
CiAKIHByaXZhdGU6CisgICAgdm9pZCBnZXRTaWduZWRVbmxpbmthYmxlVG9rZW4oY29uc3QgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQmKTsKICAgICB2b2lkIGNsZWFyU2VudEF0dHJpYnV0aW9uKFBy
aXZhdGVDbGlja01lYXN1cmVtZW50JiYpOwogICAgIHZvaWQgYXR0cmlidXRlKGNvbnN0IFNvdXJj
ZVNpdGUmLCBjb25zdCBBdHRyaWJ1dGVPblNpdGUmLCBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYp
OwogICAgIHZvaWQgZmlyZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnN0IFByaXZhdGVDbGlja01lYXN1
cmVtZW50Jik7CkBAIC03Nyw3ICs3OSw4IEBAIHByaXZhdGU6CiAKICAgICBXZWJDb3JlOjpUaW1l
ciBtX2ZpcmVQZW5kaW5nQXR0cmlidXRpb25SZXF1ZXN0c1RpbWVyOwogICAgIGJvb2wgbV9pc1J1
bm5pbmdUZXN0IHsgZmFsc2UgfTsKLSAgICBPcHRpb25hbDxVUkw+IG1fYXR0cmlidXRpb25CYXNl
VVJMRm9yVGVzdGluZzsKKyAgICBPcHRpb25hbDxVUkw+IG1fdG9rZW5TaWduYXR1cmVVUkxGb3JU
ZXN0aW5nOworICAgIE9wdGlvbmFsPFVSTD4gbV9hdHRyaWJ1dGlvblJlcG9ydEJhc2VVUkxGb3JU
ZXN0aW5nOwogICAgIFdlYWtQdHI8TmV0d29ya1Nlc3Npb24+IG1fbmV0d29ya1Nlc3Npb247CiAg
ICAgUmVmPE5ldHdvcmtQcm9jZXNzPiBtX25ldHdvcmtQcm9jZXNzOwogICAgIFBBTDo6U2Vzc2lv
bklEIG1fc2Vzc2lvbklEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAK
aW5kZXggNjJhNTRiNzQ2YzNhYjJmMWFiMzJjZWQ3MTQ2NGM0YzRkZGYxZTlkNi4uY2M3ZmYwYjEy
NTIwNjE2N2I2NzVkN2RkNTkxZTNiODU3ZmJjNjExMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0yOTQ1LDkgKzI5NDUsMTYgQEAgdm9pZCBXS1BhZ2VTaW11
bGF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydChXS1BhZ2VSZWYgcGFnZSwg
V0tQYWdlU2kKICAgICB9KTsKIH0KIAotdm9pZCBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1VSTFJlZiBVUkxS
ZWYsIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rp
bmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KQordm9pZCBXS1BhZ2VT
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyhXS1Bh
Z2VSZWYgcGFnZSwgV0tVUkxSZWYgVVJMUmVmLCBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBj
YWxsYmFja0NvbnRleHQpCiB7Ci0gICAgdG9JbXBsKHBhZ2UpLT5zZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFVSTChVUkwoKSwgdG9XVEZTdHJpbmcoVVJM
UmVmKSksIFtjYWxsYmFja0NvbnRleHQsIGNhbGxiYWNrXSAoKSB7CisgICAgdG9JbXBsKHBhZ2Up
LT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyhV
UkwoVVJMKCksIHRvV1RGU3RyaW5nKFVSTFJlZikpLCBbY2FsbGJhY2tDb250ZXh0LCBjYWxsYmFj
a10gKCkgeworICAgICAgICBjYWxsYmFjayhjYWxsYmFja0NvbnRleHQpOworICAgIH0pOworfQor
Cit2b2lkIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRV
UkxGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1VSTFJlZiBVUkxSZWYsIFdLUGFnZVNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nRnVuY3Rp
b24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCkKK3sKKyAgICB0b0ltcGwocGFnZSkt
PnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5n
KFVSTChVUkwoKSwgdG9XVEZTdHJpbmcoVVJMUmVmKSksIFtjYWxsYmFja0NvbnRleHQsIGNhbGxi
YWNrXSAoKSB7CiAgICAgICAgIGNhbGxiYWNrKGNhbGxiYWNrQ29udGV4dCk7CiAgICAgfSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmgKaW5kZXgg
NzAzZDYxOWM1YWMyYjg3YjE3ZDYwOGI4YWU2MjQzOTkyNzAwN2VlMy4uMjhhODJmNjdiOWViNmZh
ZDk0M2YzNzEzNjlhMjA2NDEwNzMxMjEzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZVByaXZhdGUuaApAQCAtMTc5LDggKzE3OSwxMCBAQCB0eXBlZGVmIHZvaWQg
KCpXS1BhZ2VNYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZv
clRlc3RpbmdGdQogV0tfRVhQT1JUIHZvaWQgV0tQYWdlTWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1BhZ2VN
YXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmdG
dW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KTsKIHR5cGVkZWYgdm9pZCAo
KldLUGFnZVNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0RnVuY3Rp
b24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VTaW11bGF0
ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydChXS1BhZ2VSZWYgcGFnZSwgV0tQ
YWdlU2ltdWxhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2Vzc2lvblJlc3RhcnRGdW5jdGlvbiBj
YWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KTsKLXR5cGVkZWYgdm9pZCAoKldLUGFnZVNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmdGdW5jdGlvbiko
dm9pZCogZnVuY3Rpb25Db250ZXh0KTsKLVdLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2UsIFdL
VVJMUmVmIHVybFN0cmluZywgV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJz
aW9uVVJMRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja0NvbnRleHQp
OwordHlwZWRlZiB2b2lkICgqV0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNp
Z25hdHVyZVVSTEZvclRlc3RpbmdGdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsKK1dL
X0VYUE9SVCB2b2lkIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1
cmVVUkxGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1VSTFJlZiB1cmxTdHJpbmcsIFdLUGFn
ZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nRnVu
Y3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCk7Cit0eXBlZGVmIHZvaWQgKCpX
S1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVz
dGluZ0Z1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOworV0tfRVhQT1JUIHZvaWQgV0tQ
YWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3Rp
bmcoV0tQYWdlUmVmIHBhZ2UsIFdLVVJMUmVmIHVybFN0cmluZywgV0tQYWdlU2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmdGdW5jdGlvbiBjYWxs
YmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZU1hcmtQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nRnVuY3Rpb24pKHZvaWQq
IGZ1bmN0aW9uQ29udGV4dCk7CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VNYXJrUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwgV0tQYWdlTWFy
a1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmdGdW5jdGlvbiBjYWxs
YmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3Rpbmcu
aAppbmRleCA5NzQ0MzQxMDFmODRlYzUyNDkxOGFiYzE0YzNmMzFmYjdhYmU2YmNiLi4zMjE4NTZj
OTZjYjA5YjQ5MTYzNDBiN2QwNjBiODQ3NTgyOTIzYzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRl
c3RpbmcuaApAQCAtODUsNiArODUsNiBAQCB0eXBlZGVmIGVudW0gewogLSAoTlNOdW1iZXIgKilf
c3VzcGVuZE1lZGlhUGxheWJhY2tDb3VudGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQpX3NldFByaXZhdGVDbGlja01lYXN1
cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3Rpbmc6KEJPT0wpb3ZlcnJpZGVUaW1lciBjb21wbGV0
aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClfc2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZzooTlNVUkwgKil1cmwg
Y29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQp
X3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5n
OihOU1VSTCAqKXVybCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9u
SGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3VGVzdGluZy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdUZXN0aW5nLm1tCmluZGV4IDBmYTVkYjBmZmVlM2ZiNjlhZDllOTEyNWYxZDE1
NGJjYWNiZGU4YjAuLjk4ZjE4Zjg0ZWYxNjMxODA3MDVkZjU5MmY3ZTc0MjEwMzc4OWJlN2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0
aW5nLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdU
ZXN0aW5nLm1tCkBAIC0zMDIsOSArMzAyLDkgQEAgLSAodm9pZClfc2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZzooQk9PTClvdmVycmlkZVRpbWVyIGMKICAg
ICB9KTsKIH0KIAotLSAodm9pZClfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9u
VVJMRm9yVGVzdGluZzooTlNVUkwgKil1cmwgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9p
ZCkpY29tcGxldGlvbkhhbmRsZXIKKy0gKHZvaWQpX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50
QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nOihOU1VSTCAqKXVybCBjb21wbGV0aW9uSGFu
ZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcgogewotICAgIF9wYWdlLT5zZXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKHVybCwgW2NvbXBs
ZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0geworICAgIF9w
YWdlLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVz
dGluZyh1cmwsIFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFu
ZGxlcildIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICB9KTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDhkNzQyYTg0ZDQzYTNhOTk0
NTUwYmFlYTg5NmEwM2U3MTIzMDJjNDguLjkzM2ZlNjBiNmI1OTZkNTAxZTcwMTU1MWZlNGI4NTcy
ZmQ0ZjdlNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAt
MTAwMDYsOSArMTAwMDYsMTQgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNpbXVsYXRlUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KENvbXBsZXRpb25IYW5kbGUKICAgICB3ZWJzaXRl
RGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
Ok5ldHdvcmtQcm9jZXNzOjpTaW11bGF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVz
dGFydChtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpKSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6c2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhjb25zdCBVUkwmIHVybCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKGNvbnN0
IFVSTCYgdXJsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7Ci0gICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgp
LCB1cmwpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgd2Vic2l0ZURhdGFTdG9y
ZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3Jr
UHJvY2Vzczo6U2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRl
c3RpbmcobV93ZWJzaXRlRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSwgdXJsKSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoY29uc3QgVVJMJiB1cmws
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICB3
ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0
aW9uUmVwb3J0VVJMRm9yVGVzdGluZyhtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCB1
cmwpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5
OjptYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDI5MjQwNmM5YmY2Y2FlNzcxYmRkMWMyOTFhNjViM2Vk
MTMwZmMwZWEuLmZhZjUzMDU4MjUwYTJmZDI3ZTBjYzc1ZGM0MTlmOTRjMzg5ZjNjNTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNjg4LDcgKzE2ODgsOCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJG
b3JUZXN0aW5nKGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBtYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRl
c3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNpbXVsYXRlUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7Ci0gICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxG
b3JUZXN0aW5nKGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAg
dm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGlu
Zyhjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoY29u
c3QgVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIG1hcmtQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxYTc0Y2EyNjk1Y2FiNGQz
ZDZlNzVhNDE3YTExOWZjOTJmNzQzMjBiLi5kZWRjYjM1ZDk0N2YwYTQ5MzU0ZmZjNWY0NWM5NDgz
MTMzZmI2Nzc3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMjEtMDItMTcgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRl
ckBhcHBsZS5jb20+CisKKyAgICAgICAgUENNOiBSZXF1ZXN0IHNpZ25hdHVyZSBmb3IgdW5saW5r
YWJsZSB0b2tlbiB1c2luZyBhdHRyaWJ1dGlvblNvdXJjZU5vbmNlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwNzYKKyAgICAgICAgPHJkYXI6Ly83
MzU4MTY1MT4KKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICBU
aGUgY2hhbmdlcyB0byB0aGUgVGVzdFJ1bm5lciBhcmU6CisgICAgICAgIC0gUmVuYW1lIHNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoKSB0bworICAgICAg
ICBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGlu
ZygpIHRvIGFsaWduIHdpdGggb3RoZXIKKyAgICAgICAgbmFtaW5nIGFuZCBtYWtlIGl0IGNsZWFy
IHRoYXQgaXQgZG9lcy4KKyAgICAgICAgLSBBZGQgdGhlIG5ldyBzZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZygpIHVzZWQgZm9yCisgICAgICAgIHRl
c3RpbmcgdGhlIHRva2VuIHNpZ25pbmcgcmVxdWVzdC4KKworICAgICAgICBUaGUgY2hhbmdlcyB0
byBBUEkgdGVzdHMgYXJlIHRvIGFkb3B0IHJlbmFtZWQgZnVuY3Rpb25zIGluCisgICAgICAgIFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OgorICAgICAgICAtIHJlcG9ydFVSTCgpIHJl
bmFtZWQgYXR0cmlidXRpb25SZXBvcnRVUkwoKS4KKyAgICAgICAgLSBqc29uKCkgcmVuYW1lZCBh
dHRyaWJ1dGlvblJlcG9ydEpTT04oKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0V2ZW50QXR0cmlidXRpb24ubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rl
c3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKToKKyAgICAgICAgKFdUUjo6
VGVzdFJ1bm5lcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVS
TEZvclRlc3RpbmcpOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENv
bnRyb2xsZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JU
ZXN0aW5nKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKToKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZv
clRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoK
KyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3Nh
Z2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorCiAyMDIxLTAyLTE3ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVkdWNlIGV4cGxpY2l0IHVzYWdlIG9mIFtvYmpDIGF1
dG9yZWxlYXNlXSBpbiBXZWJLaXQgZXZlbiBmdXJ0aGVyCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDJkMmY5ZTYyNzY5MDZlNWY1NDBhZjQ5MTI4ODU2MzYzMjY1YjVjOWUuLjc2Y2U4Njk1NTRl
YmQ5NzQ3ZjQ0ODQzYTU1ODkyMDBiZDg2ZWI3NTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0yMzExLDYgKzIzMTEsNyBAQAogCQk2M0E2MUI4QTFGQUQyMDREMDBGMDY4ODUgLyogZGlzcGxh
eS1tb2RlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiZGlzcGxheS1tb2RlLmh0bWwiOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk2M0Y2NjgyMDFGOTdDM0FBMDAzMkVFNTEgLyogQXBwbGljYXRpb25N
YW5pZmVzdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFwcGxpY2F0aW9uTWFuaWZlc3QubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCMEEwN0Y2MjFGQTlDMkIwMEQ1NzM5MSAv
KiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZCMjVB
NzUxMjVEQzhENEUwMDcwNzQ0RiAvKiBFdmVudEF0dHJpYnV0aW9uLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRXZlbnRBdHRyaWJ1dGlvbi5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkIzMDYxMDUyMThBMzcyOTAwRjVBODAyIC8qIENsb3NpbmdX
ZWJWaWV3Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ2xvc2luZ1dlYlZpZXcubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCNEU4NjFCMjIyMEE1NTIwMDIyRjM4OSAvKiBSZWdp
c3RyYWJsZURvbWFpbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWdpc3RyYWJsZURvbWFpbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCOUFCRTExMjA4Njk1MkYwMEQ3NURF
NiAvKiBIVFRQUGFyc2Vycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVFRQUGFyc2Vycy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMzEyLDYgKzMzMTMsNyBAQAogCQkJCUY0
NjEyOEQ2MjExRTQ4OUMwMEQ5RkFEQiAvKiBEcmFnQW5kRHJvcFRlc3RzLm1tICovLAogCQkJCUEx
NTUwMjI4MUUwNTAyMEIwMEEyNEM1NyAvKiBEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxz
Lm1tICovLAogCQkJCUY0NEQwNjQ2MUYzOTVDNEQwMDFBMEUyOSAvKiBFZGl0b3JTdGF0ZVRlc3Rz
Lm1tICovLAorCQkJCTZCMjVBNzUxMjVEQzhENEUwMDcwNzQ0RiAvKiBFdmVudEF0dHJpYnV0aW9u
Lm1tICovLAogCQkJCUNEQTI5QjI4MjBGRDJBOTkwMEYxNUNFRCAvKiBFeGl0RnVsbHNjcmVlbk9u
RW50ZXJQaVAubW0gKi8sCiAJCQkJMUQxMkJFQkYyNDVCRUY4NTAwNEMwQjdBIC8qIEV4aXRQaVBP
blN1c3BlbmRWaWRlb0VsZW1lbnQubW0gKi8sCiAJCQkJMkQ4MTA0Q0IxQkVDMTNFNzAwMjBEQTQ2
IC8qIEZpbmRJblBhZ2UubW0gKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAppbmRleCA3Y2Q3
NzViNGM2MDQyMGVmYWUxZGUxNjc0MTgxZDBlOTFmOWU2MmIzLi5iNzMyNjMzNDRmZTFmNmU5ZWIw
ZTQyYTI2ZTcyYzRmYjJmMzkwZjM2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKQEAgLTQ2
LDExICs0NiwxMSBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZE1pblZhbHVl
cykKICAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpTb3VyY2VJRChtaW42Qml0VmFsdWUpLCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6U291cmNlU2l0ZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
QXR0cmlidXRlT25TaXRlIHsgZXhhbXBsZVVSTCB9IH07CiAgICAgYXR0cmlidXRpb24uYXR0cmli
dXRlQW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRy
aWJ1dGlvblRyaWdnZXJEYXRhKG1pbjZCaXRWYWx1ZSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OlByaW9yaXR5KG1pbjZCaXRWYWx1ZSkpKTsKIAotICAgIGF1dG8gYXR0cmlidXRpb25VUkwgPSBh
dHRyaWJ1dGlvbi5yZXBvcnRVUkwoKTsKKyAgICBhdXRvIGF0dHJpYnV0aW9uVVJMID0gYXR0cmli
dXRpb24uYXR0cmlidXRpb25SZXBvcnRVUkwoKTsKICAgICAKICAgICBBU1NFUlRfRVEoYXR0cmli
dXRpb25VUkwuc3RyaW5nKCksICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0
ZS1jbGljay1tZWFzdXJlbWVudC9yZXBvcnQtYXR0cmlidXRpb24vIik7CiAKLSAgICBBU1NFUlRf
RVEoYXR0cmlidXRpb24uanNvbigpLT50b0pTT05TdHJpbmcoKSwgIntcInNvdXJjZV9lbmdhZ2Vt
ZW50X3R5cGVcIjpcImNsaWNrXCIsXCJzb3VyY2Vfc2l0ZVwiOlwid2Via2l0Lm9yZ1wiLFwic291
cmNlX2lkXCI6MCxcImF0dHJpYnV0ZWRfb25fc2l0ZVwiOlwiZXhhbXBsZS5jb21cIixcInRyaWdn
ZXJfZGF0YVwiOjAsXCJ2ZXJzaW9uXCI6MX0iKTsKKyAgICBBU1NFUlRfRVEoYXR0cmlidXRpb24u
YXR0cmlidXRpb25SZXBvcnRKU09OKCktPnRvSlNPTlN0cmluZygpLCAie1wic291cmNlX2VuZ2Fn
ZW1lbnRfdHlwZVwiOlwiY2xpY2tcIixcInNvdXJjZV9zaXRlXCI6XCJ3ZWJraXQub3JnXCIsXCJz
b3VyY2VfaWRcIjowLFwiYXR0cmlidXRlZF9vbl9zaXRlXCI6XCJleGFtcGxlLmNvbVwiLFwidHJp
Z2dlcl9kYXRhXCI6MCxcInZlcnNpb25cIjoxfSIpOwogfQogCiBURVNUKFByaXZhdGVDbGlja01l
YXN1cmVtZW50LCBWYWxpZE1pZFZhbHVlcykKQEAgLTU4LDExICs1OCwxMSBAQCBURVNUKFByaXZh
dGVDbGlja01lYXN1cmVtZW50LCBWYWxpZE1pZFZhbHVlcykKICAgICBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRCgo
dWludDMyX3QpMTkyKSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUgeyB3ZWJL
aXRVUkwgfSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0ZSB7IGV4YW1w
bGVVUkwgfSB9OwogICAgIGF0dHJpYnV0aW9uLmF0dHJpYnV0ZUFuZEdldEVhcmxpZXN0VGltZVRv
U2VuZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSgodWlu
dDMyX3QpOSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KCh1aW50MzJfdCkyMikp
KTsKIAotICAgIGF1dG8gYXR0cmlidXRpb25VUkwgPSBhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKTsK
KyAgICBhdXRvIGF0dHJpYnV0aW9uVVJMID0gYXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRV
UkwoKTsKICAgICAKICAgICBBU1NFUlRfRVEoYXR0cmlidXRpb25VUkwuc3RyaW5nKCksICJodHRw
czovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC9yZXBv
cnQtYXR0cmlidXRpb24vIik7CiAKLSAgICBBU1NFUlRfRVEoYXR0cmlidXRpb24uanNvbigpLT50
b0pTT05TdHJpbmcoKSwgIntcInNvdXJjZV9lbmdhZ2VtZW50X3R5cGVcIjpcImNsaWNrXCIsXCJz
b3VyY2Vfc2l0ZVwiOlwid2Via2l0Lm9yZ1wiLFwic291cmNlX2lkXCI6MTkyLFwiYXR0cmlidXRl
ZF9vbl9zaXRlXCI6XCJleGFtcGxlLmNvbVwiLFwidHJpZ2dlcl9kYXRhXCI6OSxcInZlcnNpb25c
IjoxfSIpOworICAgIEFTU0VSVF9FUShhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydEpTT04o
KS0+dG9KU09OU3RyaW5nKCksICJ7XCJzb3VyY2VfZW5nYWdlbWVudF90eXBlXCI6XCJjbGlja1wi
LFwic291cmNlX3NpdGVcIjpcIndlYmtpdC5vcmdcIixcInNvdXJjZV9pZFwiOjE5MixcImF0dHJp
YnV0ZWRfb25fc2l0ZVwiOlwiZXhhbXBsZS5jb21cIixcInRyaWdnZXJfZGF0YVwiOjksXCJ2ZXJz
aW9uXCI6MX0iKTsKIH0KIAogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgVmFsaWRNYXhW
YWx1ZXMpCkBAIC03MCwxMSArNzAsMTEgQEAgVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwg
VmFsaWRNYXhWYWx1ZXMpCiAgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24g
eyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OlNvdXJjZUlEOjpNYXhFbnRyb3B5KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJj
ZVNpdGUgeyB3ZWJLaXRVUkwgfSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9u
U2l0ZSB7IGV4YW1wbGVVUkwgfSB9OwogICAgIGF0dHJpYnV0aW9uLmF0dHJpYnV0ZUFuZEdldEVh
cmxpZXN0VGltZVRvU2VuZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25Ucmln
Z2VyRGF0YShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YTo6
TWF4RW50cm9weSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpQcmlvcml0eTo6TWF4RW50cm9weSkpKTsKIAotICAgIGF1dG8gYXR0cmli
dXRpb25VUkwgPSBhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKTsKKyAgICBhdXRvIGF0dHJpYnV0aW9u
VVJMID0gYXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRVUkwoKTsKICAgICAKICAgICBBU1NF
UlRfRVEoYXR0cmlidXRpb25VUkwuc3RyaW5nKCksICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwt
a25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC9yZXBvcnQtYXR0cmlidXRpb24vIik7CiAK
LSAgICBBU1NFUlRfRVEoYXR0cmlidXRpb24uanNvbigpLT50b0pTT05TdHJpbmcoKSwgIntcInNv
dXJjZV9lbmdhZ2VtZW50X3R5cGVcIjpcImNsaWNrXCIsXCJzb3VyY2Vfc2l0ZVwiOlwid2Via2l0
Lm9yZ1wiLFwic291cmNlX2lkXCI6MjU1LFwiYXR0cmlidXRlZF9vbl9zaXRlXCI6XCJleGFtcGxl
LmNvbVwiLFwidHJpZ2dlcl9kYXRhXCI6MTUsXCJ2ZXJzaW9uXCI6MX0iKTsKKyAgICBBU1NFUlRf
RVEoYXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRKU09OKCktPnRvSlNPTlN0cmluZygpLCAi
e1wic291cmNlX2VuZ2FnZW1lbnRfdHlwZVwiOlwiY2xpY2tcIixcInNvdXJjZV9zaXRlXCI6XCJ3
ZWJraXQub3JnXCIsXCJzb3VyY2VfaWRcIjoyNTUsXCJhdHRyaWJ1dGVkX29uX3NpdGVcIjpcImV4
YW1wbGUuY29tXCIsXCJ0cmlnZ2VyX2RhdGFcIjoxNSxcInZlcnNpb25cIjoxfSIpOwogfQogCiBU
RVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBFYXJsaWVzdFRpbWVUb1NlbmRBdHRyaWJ1dGlv
bk1pbmltdW1EZWxheSkKQEAgLTEzNiw3ICsxMzYsNyBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1
cmVtZW50LCBJbnZhbGlkU291cmNlSUQpCiAgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0
cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQoUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OlNvdXJjZUlEOjpNYXhFbnRyb3B5ICsgMSksIFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpTb3VyY2VTaXRlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpBdHRyaWJ1dGVPblNpdGUgeyBleGFtcGxlVVJMIH0gfTsKICAgICBhdHRyaWJ1dGlvbi5hdHRy
aWJ1dGVBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0
dHJpYnV0aW9uVHJpZ2dlckRhdGEoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9u
VHJpZ2dlckRhdGE6Ok1heEVudHJvcHksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0
eShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHk6Ok1heEVudHJvcHkpKSk7CiAKLSAg
ICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKS5pc0VtcHR5KCkpOworICAgIEFT
U0VSVF9UUlVFKGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsK
IH0KIAogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZFNvdXJjZUhvc3QpCkBA
IC0xNDQsNyArMTQ0LDcgQEAgVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZFNv
dXJjZUhvc3QpCiAgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNv
dXJjZUlEOjpNYXhFbnRyb3B5KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUg
eyBlbXB0eVVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlIHsg
ZXhhbXBsZVVSTCB9IH07CiAgICAgYXR0cmlidXRpb24uYXR0cmlidXRlQW5kR2V0RWFybGllc3RU
aW1lVG9TZW5kKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRh
KFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhOjpNYXhFbnRy
b3B5LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHkoUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OlByaW9yaXR5OjpNYXhFbnRyb3B5KSkpOwogCi0gICAgQVNTRVJUX1RSVUUoYXR0cmli
dXRpb24ucmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKKyAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlv
bi5hdHRyaWJ1dGlvblJlcG9ydFVSTCgpLmlzRW1wdHkoKSk7CiB9CiAKIFRFU1QoUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQsIEludmFsaWREZXN0aW5hdGlvbkhvc3QpCkBAIC0xNTIsNyArMTUyLDcg
QEAgVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZERlc3RpbmF0aW9uSG9zdCkK
ICAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpTb3VyY2VJRChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQ6Ok1h
eEVudHJvcHkgKyAxKSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUgeyB3ZWJL
aXRVUkwgfSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0ZSB7IGVtcHR5
VVJMIH0gfTsKICAgICBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGVBbmRHZXRFYXJsaWVzdFRpbWVUb1Nl
bmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEoUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE6Ok1heEVudHJvcHksIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
UHJpb3JpdHk6Ok1heEVudHJvcHkpKSk7CiAKLSAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5y
ZXBvcnRVUkwoKS5pc0VtcHR5KCkpOworICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLmF0dHJp
YnV0aW9uUmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKIH0KIAogVEVTVChQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCwgQXR0cmlidXRpb25UcmlnZ2VyRGF0YSkKQEAgLTE2MCw3ICsxNjAsNyBAQCBURVNU
KFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhKQogICAgIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OlNvdXJjZUlEKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRDo6TWF4RW50cm9w
eSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlIHsgd2ViS2l0VVJMIH0sIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUgeyBleGFtcGxlVVJMIH0gfTsK
ICAgICBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGVBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEoKFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhOjpNYXhFbnRyb3B5ICsgMSksIFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJp
b3JpdHk6Ok1heEVudHJvcHkpKSk7CiAKLSAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5yZXBv
cnRVUkwoKS5pc0VtcHR5KCkpOworICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLmF0dHJpYnV0
aW9uUmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKIH0KIAogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCwgSW52YWxpZFByaW9yaXR5KQpAQCAtMTY4LDE0ICsxNjgsMTQgQEAgVEVTVChQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZFByaW9yaXR5KQogICAgIFByaXZhdGVDbGlja01lYXN1
cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEKFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRDo6TWF4RW50cm9weSksIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpTb3VyY2VTaXRlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUgeyBleGFtcGxlVVJMIH0gfTsKICAgICBhdHRyaWJ1dGlv
bi5hdHRyaWJ1dGVBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJp
YnV0aW9uVHJpZ2dlckRhdGE6Ok1heEVudHJvcHksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQ
cmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHk6Ok1heEVudHJvcHkgKyAx
KSkpOwogCi0gICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24ucmVwb3J0VVJMKCkuaXNFbXB0eSgp
KTsKKyAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydFVSTCgpLmlz
RW1wdHkoKSk7CiB9CiAKIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRNaXNz
aW5nQ29udmVyc2lvbikKIHsKICAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlv
biB7IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRChQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6U291cmNlSUQ6Ok1heEVudHJvcHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291
cmNlU2l0ZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRl
T25TaXRlIHsgZXhhbXBsZVVSTCB9IH07CiAKLSAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5y
ZXBvcnRVUkwoKS5pc0VtcHR5KCkpOworICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLmF0dHJp
YnV0aW9uUmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKICAgICBBU1NFUlRfRkFMU0UoYXR0cmlidXRp
b24uZWFybGllc3RUaW1lVG9TZW5kKCkpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KaW5kZXggNjY3
ZGEzNDU5MzFjMDM0YTM3MDFmZjI4NDA1NDBmNDliMzliMmI1NC4uNzEzNWY1ZGU0M2NhZGQ1YzNl
YTc2NmE2Njc1NzJlYmQ2MTBhNzFhOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpAQCAtMTA2LDcgKzEw
Niw3IEBAIFRFU1QoRXZlbnRBdHRyaWJ1dGlvbiwgQmFzaWMpCiAgICAgd2ViVmlldy5nZXQoKS5f
dWlFdmVudEF0dHJpYnV0aW9uID0gKFVJRXZlbnRBdHRyaWJ1dGlvbiAqKWF0dHJpYnV0aW9uLmdl
dCgpOwogICAgIFtbd2ViVmlldyBjb25maWd1cmF0aW9uXS53ZWJzaXRlRGF0YVN0b3JlIF9zZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDpZRVNdOwogICAgIFtbd2ViVmlldyBjb25maWd1
cmF0aW9uXS53ZWJzaXRlRGF0YVN0b3JlIF9hbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW46QFsoaWQp
dGVzdENlcnRpZmljYXRlKCkuZ2V0KCldIGZvckhvc3Q6c2VydmVyVVJMLmhvc3RdOwotICAgIFt3
ZWJWaWV3IF9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5n
OnNlcnZlclVSTCBjb21wbGV0aW9uSGFuZGxlcjpeeworICAgIFt3ZWJWaWV3IF9zZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZzpzZXJ2ZXJVUkwg
Y29tcGxldGlvbkhhbmRsZXI6XnsKICAgICAgICAgW3dlYlZpZXcgX3NldFByaXZhdGVDbGlja01l
YXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3Rpbmc6WUVTIGNvbXBsZXRpb25IYW5kbGVyOl57
CiAgICAgICAgICAgICBOU1N0cmluZyAqaHRtbCA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0
OkAiPHNjcmlwdD5mZXRjaCgnJUBjb252ZXJzaW9uUmVxdWVzdEJlZm9yZVJlZGlyZWN0Jyx7bW9k
ZTonbm8tY29ycyd9KTwvc2NyaXB0PiIsIHNlcnZlclVSTF07CiAgICAgICAgICAgICBbd2ViVmll
dyBsb2FkSFRNTFN0cmluZzpodG1sIGJhc2VVUkw6ZXhhbXBsZVVSTF07CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIu
aWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0
UnVubmVyLmlkbAppbmRleCBhMDcxZWNkZGQ5ZTQzNDgzZmU3NzE5Njg2YzM1YTRmMzdiOGIxYmM3
Li5mYjhmYzQ2MjU1NTZiYjBmNTEzMmZhYjZkZjFmNjVjZjQwOWZmMjA1IDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIu
aWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
VGVzdFJ1bm5lci5pZGwKQEAgLTQwMyw3ICs0MDMsOCBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7
CiAgICAgdW5kZWZpbmVkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZv
clRlc3RpbmcoYm9vbGVhbiB2YWx1ZSk7CiAgICAgdW5kZWZpbmVkIG1hcmtBdHRyaWJ1dGVkUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpOwogICAgIHVuZGVmaW5l
ZCBzaW11bGF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydCgpOwotICAgIHVu
ZGVmaW5lZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5n
KERPTVN0cmluZyB1cmwpOworICAgIHVuZGVmaW5lZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyhET01TdHJpbmcgdXJsKTsKKyAgICB1bmRlZmlu
ZWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3Rp
bmcoRE9NU3RyaW5nIHVybCk7CiAgICAgdW5kZWZpbmVkIG1hcmtQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CiAKICAgICAvLyBTcGVlY2hSZWNvZ25pdGlvbgpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5jcHAKaW5kZXggODY0Y2NlMjg1OTdhNDE4ZDg5YTUzNTdkYzkyMDBjY2QwMTk0YzdkNS4uYzAx
N2ZjMGY0YjNjMmU3ZGYzZjE4OTg5YjA3YTY4MmYwYzJhYzY0OCAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0yMDI1
LDkgKzIwMjUsMTUgQEAgdm9pZCBUZXN0UnVubmVyOjpzaW11bGF0ZVJlc291cmNlTG9hZFN0YXRp
c3RpY3NTZXNzaW9uUmVzdGFydCgpCiAgICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoIlNp
bXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0Iik7CiB9CiAKLXZvaWQg
VGVzdFJ1bm5lcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVz
dGluZyhKU1N0cmluZ1JlZiB1cmxTdHJpbmcpCit2b2lkIFRlc3RSdW5uZXI6OnNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKEpTU3RyaW5nUmVmIHVy
bFN0cmluZykKIHsKLSAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgiU2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyIsCisgICAgcG9zdFN5bmNocm9u
b3VzUGFnZU1lc3NhZ2UoIlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1cmVV
UkxGb3JUZXN0aW5nIiwKKyAgICAgICAgYWRvcHRXSyhXS1VSTENyZWF0ZVdpdGhVVEY4Q1N0cmlu
Zyh0b1dURlN0cmluZyh1cmxTdHJpbmcpLnV0ZjgoKS5kYXRhKCkpKSk7Cit9CisKK3ZvaWQgVGVz
dFJ1bm5lcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZv
clRlc3RpbmcoSlNTdHJpbmdSZWYgdXJsU3RyaW5nKQoreworICAgIHBvc3RTeW5jaHJvbm91c1Bh
Z2VNZXNzYWdlKCJTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJM
Rm9yVGVzdGluZyIsCiAgICAgICAgIGFkb3B0V0soV0tVUkxDcmVhdGVXaXRoVVRGOENTdHJpbmco
dG9XVEZTdHJpbmcodXJsU3RyaW5nKS51dGY4KCkuZGF0YSgpKSkpOwogfQogCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IGJj
ZjcxMGI3Yjg1NDY5ZjliYzY5MjA0MTI4MjcxNDZkMjNiM2JjOTcuLjJkMzgwNWMwNmZkYThmMjQ5
OTg4MTVjMTE5ZmIwZmVkYWMzN2QwNmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC01MTIsNyArNTEyLDggQEAgcHVibGlj
OgogICAgIHZvaWQgY2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwogICAgIHZvaWQgY2xl
YXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKCk7CiAg
ICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5n
KGJvb2wgdmFsdWUpOwotICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJz
aW9uVVJMRm9yVGVzdGluZyhKU1N0cmluZ1JlZik7CisgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyhKU1N0cmluZ1JlZik7CisgICAg
dm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVz
dGluZyhKU1N0cmluZ1JlZik7CiAgICAgdm9pZCBtYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRz
QXNFeHBpcmVkRm9yVGVzdGluZygpOwogICAgIHZvaWQgbWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CiAgICAgdm9pZCBzaW11bGF0ZVJl
c291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVzdGFydCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCBiM2YzYjkzM2Q5ZGFmMDA2ZTBmZjg3MzI0NGU3
NWE5MzZmNzIyOGQ4Li41MTZiZDljNmQ0OTg2ZWRmN2E5NTYwZTQyMjc5Y2IzYTVlMDg2ZjMwIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMzYzMCwxMCAr
MzYzMCwxNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpzaW11bGF0ZVJlc291cmNlTG9hZFN0YXRp
c3RpY3NTZXNzaW9uUmVzdGFydCgpCiAgICAgcnVuVW50aWwoY2FsbGJhY2tDb250ZXh0LmRvbmUs
IG5vVGltZW91dCk7CiB9CiAKLXZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoV0tVUkxSZWYgdXJsKQordm9pZCBUZXN0
Q29udHJvbGxlcjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZv
clRlc3RpbmcoV0tVUkxSZWYgdXJsKQogewogICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9p
ZENhbGxiYWNrQ29udGV4dCBjYWxsYmFja0NvbnRleHQoKnRoaXMpOwotICAgIFdLUGFnZVNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcobV9tYWluV2ViVmll
dy0+cGFnZSgpLCB1cmwsIHByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNrLCAmY2Fs
bGJhY2tDb250ZXh0KTsKKyAgICBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2Vu
U2lnbmF0dXJlVVJMRm9yVGVzdGluZyhtX21haW5XZWJWaWV3LT5wYWdlKCksIHVybCwgcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2ssICZjYWxsYmFja0NvbnRleHQpOworICAgIHJ1
blVudGlsKGNhbGxiYWNrQ29udGV4dC5kb25lLCBub1RpbWVvdXQpOworfQorCit2b2lkIFRlc3RD
b250cm9sbGVyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJM
Rm9yVGVzdGluZyhXS1VSTFJlZiB1cmwpCit7CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRW
b2lkQ2FsbGJhY2tDb250ZXh0IGNhbGxiYWNrQ29udGV4dCgqdGhpcyk7CisgICAgV0tQYWdlU2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcobV9t
YWluV2ViVmlldy0+cGFnZSgpLCB1cmwsIHByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxi
YWNrLCAmY2FsbGJhY2tDb250ZXh0KTsKICAgICBydW5VbnRpbChjYWxsYmFja0NvbnRleHQuZG9u
ZSwgbm9UaW1lb3V0KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5o
CmluZGV4IDgxOGMyYjRlYzRhNTYyYmMwNjdhNGYzZDVjZWJiY2RiZDA1YzA0N2MuLjkxZWY5ZDU5
ZjcwYmIzMjNlNTM0N2NmN2UzNWZmNDU5NDFlNzNiYzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmgKQEAgLTM0Niw3ICszNDYsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJvb2wgdmFs
dWUpOwogICAgIHZvaWQgbWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4
cGlyZWRGb3JUZXN0aW5nKCk7CiAgICAgdm9pZCBzaW11bGF0ZVJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTZXNzaW9uUmVzdGFydCgpOwotICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRD
b252ZXJzaW9uVVJMRm9yVGVzdGluZyhXS1VSTFJlZik7CisgICAgdm9pZCBzZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyhXS1VSTFJlZik7CisgICAg
dm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVz
dGluZyhXS1VSTFJlZik7CiAgICAgdm9pZCBtYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNF
eHBpcmVkRm9yVGVzdGluZygpOwogCiAgICAgdm9pZCBkaWRTZXRBcHBCb3VuZERvbWFpbnMoKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24u
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggNTUw
MzU1YzdiOGI5ODQ4NGE3ZDI4Y2Y1NTk1ZjYzODc1MTdiZjRiYS4uMGYwOTIyNzM4M2U1ZWYyMmQy
Y2I0ODQzYThmYTQzNDYwMjZiNDEwYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHAKQEAgLTEzMzgsMTAgKzEzMzgsMTYgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVm
PiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3Rl
ZEIKICAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNpbXVsYXRlUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIH0KLSAgICAKLSAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdl
TmFtZSwgIlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rpbmci
KSkgeworCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUs
ICJTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyIp
KSB7CisgICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tVUkxHZXRU
eXBlSUQoKSk7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyhzdGF0aWNfY2FzdDxX
S1VSTFJlZj4obWVzc2FnZUJvZHkpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQor
CisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZyIpKSB7
CiAgICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tVUkxHZXRUeXBl
SUQoKSk7Ci0gICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKHN0YXRpY19jYXN0PFdLVVJMUmVm
PihtZXNzYWdlQm9keSkpOworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3Rpbmcoc3Rh
dGljX2Nhc3Q8V0tVUkxSZWY+KG1lc3NhZ2VCb2R5KSk7CiAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDMwNmU3NjU2OWNiYmIyNjc4Yjg4ZWVlYjExZDU1OTM2NzBhNGVh
OTUuLjg1ZmUzY2VkMzA4ZjE4YmRkN2M2YTFkMWJmN2U3MTcwY2Y5OWM5ZjYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAyMS0wMi0xNyAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNv
bT4KKworICAgICAgICBQQ006IFJlcXVlc3Qgc2lnbmF0dXJlIGZvciB1bmxpbmthYmxlIHRva2Vu
IHVzaW5nIGF0dHJpYnV0aW9uU291cmNlTm9uY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjA3NgorICAgICAgICA8cmRhcjovLzczNTgxNjUxPgor
CisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgICogaHR0cC90ZXN0
cy9jb250ZW50ZXh0ZW5zaW9ucy9ibG9jay1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50Lmh0bWw6
CisgICAgICAgICAgICBBZG9wdGlvbiBvZiByZW5hbWVkIFRlc3RSdW5uZXIgZnVuY3Rpb24gc2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoKS4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvbnZlcnNpb24t
ZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbDoKKyAgICAgICAgICAgIEFkb3B0aW9u
IG9mIHJlbmFtZWQgVGVzdFJ1bm5lciBmdW5jdGlvbiBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZygpLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvZXhwaXJlZC1hdHRyaWJ1dGlvbi1yZXBvcnQtZ2V0cy1z
ZW50LW9uLXNlc3Npb24tc3RhcnQuaHRtbDoKKyAgICAgICAgICAgIEFkb3B0aW9uIG9mIHJlbmFt
ZWQgVGVzdFJ1bm5lciBmdW5jdGlvbiBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0
aW9uUmVwb3J0VVJMRm9yVGVzdGluZygpLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2dldENvbnZlcnNpb25EYXRhLnBocDoKKyAgICAgICAg
ICAgIEFkb3B0aW9uIG9mIHJlbmFtZWQgVGVzdFJ1bm5lciBmdW5jdGlvbiBzZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZygpLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2dldFRva2VuU2ln
bmluZ0RhdGEucGhwOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L3Jlc291cmNlcy9zaWduVG9rZW4ucGhwOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy90b2tlblNpZ25pbmdGaWxl
UGF0aC5waHA6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvcmVzb3VyY2VzL3V0aWwuanM6CisgICAgICAgICh0ZWFyRG93bkFuZEZpbmlzaCk6Cisg
ICAgICAgICAgICBBZG9wdGlvbiBvZiByZW5hbWVkIFRlc3RSdW5uZXIgZnVuY3Rpb24gc2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoKS4KKyAg
ICAgICAgICAgIE5vdyBhbHNvIGNhbGxzIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5T
aWduYXR1cmVVUkxGb3JUZXN0aW5nKCkuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC5odG1sOgor
ICAgICAgICAgICAgQWRvcHRpb24gb2YgcmVuYW1lZCBUZXN0UnVubmVyIGZ1bmN0aW9uIHNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKCkuCisg
ICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9yZS1wcml2YXRl
LWNsaWNrLW1lYXN1cmVtZW50LXdpdGgtc291cmNlLW5vbmNlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9yZS1wcml2
YXRlLWNsaWNrLW1lYXN1cmVtZW50LXdpdGgtc291cmNlLW5vbmNlLmh0bWw6IEFkZGVkLgorCiAy
MDIxLTAyLTE3ICBSb2JlcnQgSmVubmVyICA8amVubmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBt
ZWRpYS90cmFjay90cmFjay1pbi1iYW5kLXN0eWxlLmh0bWwgbmVlZHMgdG8gYmUgcmViYXNlbGlu
ZWQgYWZ0ZXIgY2hhbmdlcyBpbiByMjcyMDU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvYmxvY2stcHJp
dmF0ZS1jbGljay1tZWFzdXJlbWVudC5odG1sCmluZGV4IDU1ZDJjY2I5NTQzMzliZDYyMDdiYmE3
OTUxODkxOTM5NjIxMDEwYzUuLjBlNzY1YzhkMGYyMmYxYTJiYzMzM2U3OGUyNjdiNjljNjk2ZmM3
M2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMv
YmxvY2stcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvYmxvY2stcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVu
dC5odG1sCkBAIC0xNSw3ICsxNSw3IEBACiAKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGlt
ZXJGb3JUZXN0aW5nKHRydWUpOwotICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5waHAiKTsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9u
UmVwb3J0VVJMRm9yVGVzdGluZygiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0LnBocCIpOwogICAgIH0KIAogICAg
IGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29udmVyc2lvbi1kaXNh
YmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1z
ZXNzaW9uLmh0bWwKaW5kZXggMDFmMDAyZTBmZmZiMTkxMmI2NmU2ZmJlMWJlNjE3NTY5YTdlMWRh
MS4uYzg1MDdhMmU5NGI5MjQ2ODA3ODY1MDkwYWEwNjM3MDUzZDM4NTVjMSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb252ZXJzaW9u
LWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb252ZXJzaW9uLWRpc2FibGVkLWluLWVw
aGVtZXJhbC1zZXNzaW9uLmh0bWwKQEAgLTE4LDcgKzE4LDcgQEAKICAgICBwcmVwYXJlVGVzdCgp
OwogCiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLnNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJl
cG9ydC5waHA/bm9uY2U9IiArIG5vbmNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZygiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9jb252ZXJzaW9u
UmVwb3J0LnBocD9ub25jZT0iICsgbm9uY2UpOwogCiAgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVt
ZW50KGVsZW1lbnRJRCkgewogICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGVsZW1lbnRJRCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQtYXR0cmlidXRpb24tcmVwb3J0LWdldHMtc2Vu
dC1vbi1zZXNzaW9uLXN0YXJ0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVD
bGlja01lYXN1cmVtZW50L2V4cGlyZWQtYXR0cmlidXRpb24tcmVwb3J0LWdldHMtc2VudC1vbi1z
ZXNzaW9uLXN0YXJ0Lmh0bWwKaW5kZXggZTE4MzY2ZDNkOTEwYWQzZTE1YjkxNzU4ZGE3YmIzYzNj
ZGIyYTc2ZC4uYTQ5ZjM4ZDdkZTMyOTY3ZDU3NDQ3ODFhMzhiOGUzY2ViZTY2YjU2MyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBp
cmVkLWF0dHJpYnV0aW9uLXJlcG9ydC1nZXRzLXNlbnQtb24tc2Vzc2lvbi1zdGFydC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvZXhwaXJl
ZC1hdHRyaWJ1dGlvbi1yZXBvcnQtZ2V0cy1zZW50LW9uLXNlc3Npb24tc3RhcnQuaHRtbApAQCAt
MTgsNyArMTgsNyBAQAogICAgIHByZXBhcmVUZXN0KCk7CiAKICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
bnZlcnNpb25VUkxGb3JUZXN0aW5nKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhwP25vbmNlPSIgKyBub25j
ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1
dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5waHA/bm9uY2U9IiArIG5v
bmNlKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L3Jlc291cmNlcy9nZXRDb252ZXJzaW9uRGF0YS5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9nZXRDb252ZXJzaW9uRGF0YS5w
aHAKaW5kZXggYTliZDNkZmQ2YmJjMGQwZjMzNmU5ZGFlZThjMDBiOTU1YTAzZGVkOC4uMDM4ODhh
ZmI5MzE4MWZjOGNmODM4NGEzYzA3Yzg2NGRlNTRmYjVlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvZ2V0Q29udmVy
c2lvbkRhdGEucGhwCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvcmVzb3VyY2VzL2dldENvbnZlcnNpb25EYXRhLnBocApAQCAtNDUsNyArNDUsNyBA
QCBpZiAoaXNzZXQoJF9HRVRbJ2VuZFRlc3QnXSkpIHsKICAgICBlY2hvICJpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsiOwogICAgIGVjaG8gIiAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsiOwog
ICAgIGVjaG8gIiAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJp
ZGVUaW1lckZvclRlc3RpbmcoZmFsc2UpOyI7Ci0gICAgZWNobyAiICAgIHRlc3RSdW5uZXIuc2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZygnJyk7IjsKKyAg
ICBlY2hvICIgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0
aW9uUmVwb3J0VVJMRm9yVGVzdGluZygnJyk7IjsKICAgICBlY2hvICJ9IjsKICAgICBlY2hvICI8
L3NjcmlwdD4iOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvZ2V0VG9rZW5TaWduaW5nRGF0YS5waHAgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9nZXRU
b2tlblNpZ25pbmdEYXRhLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWNlZWYyNTA5MTZhODg1Y2U3ZTNhYTVl
YzVhZjM3NzRjNWMxZTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvZ2V0VG9rZW5TaWduaW5nRGF0YS5w
aHAKQEAgLTAsMCArMSw1NCBAQAorPD9waHAKK3JlcXVpcmVfb25jZSAndG9rZW5TaWduaW5nRmls
ZVBhdGgucGhwJzsKKworJG5vVGltZW91dCA9IFRydWU7CiskdGltZW91dE1zZWNzID0gMDsKK2lm
IChpc3NldCgkX0dFVFsndGltZW91dF9tcyddKSkgeworICAgICRub1RpbWVvdXQgPSBGYWxzZTsK
KyAgICAkdGltZW91dE1zZWNzID0gKGludCkgJF9HRVRbJ3RpbWVvdXRfbXMnXTsKK30KKworJHRv
a2VuU2lnbmluZ0ZpbGVGb3VuZCA9IEZhbHNlOword2hpbGUgKCRub1RpbWVvdXQgfHwgJHRpbWVv
dXRNc2VjcyA+IDApIHsKKyAgICBpZiAoZmlsZV9leGlzdHMoJHRva2VuU2lnbmluZ0ZpbGVQYXRo
KSkgeworICAgICAgICAkdG9rZW5TaWduaW5nRmlsZUZvdW5kID0gVHJ1ZTsKKyAgICAgICAgYnJl
YWs7CisgICAgfQorICAgICRzbGVlcE1zZWNzID0gMTA7CisgICAgdXNsZWVwKCRzbGVlcE1zZWNz
ICogMTAwMCk7CisgICAgaWYgKCEkbm9UaW1lb3V0KSB7CisgICAgICAgICR0aW1lb3V0TXNlY3Mg
LT0gJHNsZWVwTXNlY3M7CisgICAgfQorICAgIC8vIGZpbGVfZXhpc3RzKCkgY2FjaGVzIHJlc3Vs
dHMsIHdlIHdhbnQgdG8gaW52YWxpZGF0ZSB0aGUgY2FjaGUuCisgICAgY2xlYXJzdGF0Y2FjaGUo
KTsKK30KKworCitlY2hvICI8aHRtbD48Ym9keT5cbiI7CisKK2lmICgkdG9rZW5TaWduaW5nRmls
ZUZvdW5kKSB7CisgICAgZWNobyAiVG9rZW4gc2lnbmluZyByZXF1ZXN0IHJlY2VpdmVkLiI7Cisg
ICAgJHRva2VuU2lnbmluZ0ZpbGUgPSBmb3BlbigkdG9rZW5TaWduaW5nRmlsZVBhdGgsICdyJyk7
CisgICAgd2hpbGUgKCRsaW5lID0gZmdldHMoJHRva2VuU2lnbmluZ0ZpbGUpKSB7CisgICAgICAg
IGVjaG8gIjxicj4iOworICAgICAgICBlY2hvIHRyaW0oJGxpbmUpOworICAgIH0KKyAgICBlY2hv
ICI8YnI+IjsKKyAgICBmY2xvc2UoJHRva2VuU2lnbmluZ0ZpbGUpOworICAgIHVubGluaygkdG9r
ZW5TaWduaW5nRmlsZVBhdGgpOworfSBlbHNlIHsKKyAgICBlY2hvICJUb2tlbiBzaWduaW5nIHJl
cXVlc3Qgbm90IHJlY2VpdmVkIC0gdGltZWQgb3V0Ljxicj4iOworfQorCitpZiAoaXNzZXQoJF9H
RVRbJ2VuZFRlc3QnXSkpIHsKKyAgICBlY2hvICI8c2NyaXB0PiI7CisgICAgZWNobyAiaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7IjsKKyAgICBlY2hvICIgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGZhbHNlKTsiOworICAgIGVj
aG8gIiAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5TaWduYXR1
cmVVUkxGb3JUZXN0aW5nKCcnKTsiOworICAgIGVjaG8gIiAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsiOworICAgIGVjaG8gIn0iOworICAgIGVjaG8gIjwvc2NyaXB0PiI7Cit9CisKK2VjaG8g
IjwvYm9keT48L2h0bWw+IjsKKz8+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9zaWduVG9rZW4ucGhwIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvc2lnblRv
a2VuLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41MTRlYWIyZGQ2YjM1M2RiYjhhMDgyM2ViNDJkYzRiNWVhNWUw
YjU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvc2lnblRva2VuLnBocApAQCAtMCwwICsxLDQ0IEBACis8
P3BocAorcmVxdWlyZV9vbmNlICJ0b2tlblNpZ25pbmdGaWxlUGF0aC5waHAiOworCiskdG9rZW5T
aWduaW5nRmlsZSA9IGZvcGVuKCR0b2tlblNpZ25pbmdGaWxlUGF0aCAuICIudG1wIiwgJ3cnKTsK
KyRodHRwSGVhZGVycyA9ICRfU0VSVkVSOworJGNvb2tpZXNGb3VuZCA9IGZhbHNlOworCitpZiAo
JHZhbHVlID0gJGh0dHBIZWFkZXJzWyJIVFRQX0hPU1QiXSkgeworICAgIGZ3cml0ZSgkdG9rZW5T
aWduaW5nRmlsZSwgIkhUVFBfSE9TVDogJHZhbHVlXG4iKTsKK30KKworaWYgKCR2YWx1ZSA9ICRo
dHRwSGVhZGVyc1siSFRUUF9DT09LSUUiXSkgeworICAgIGZ3cml0ZSgkdG9rZW5TaWduaW5nRmls
ZSwgIkNvb2tpZXMgaW4gdG9rZW4gc2lnbmluZyByZXF1ZXN0OiAkdmFsdWVcbiIpOworICAgICRj
b29raWVzRm91bmQgPSB0cnVlOworfQorCitpZiAoJHZhbHVlID0gJGh0dHBIZWFkZXJzWyJDT05U
RU5UX1RZUEUiXSkgeworICAgIGZ3cml0ZSgkdG9rZW5TaWduaW5nRmlsZSwgIkNvbnRlbnQgdHlw
ZTogJHZhbHVlXG4iKTsKK30KKworaWYgKCR2YWx1ZSA9ICRodHRwSGVhZGVyc1siUkVRVUVTVF9V
UkkiXSkgeworICAgICR2YWx1ZSA9ICRodHRwSGVhZGVyc1siUkVRVUVTVF9VUkkiXTsKKyAgICAk
cG9zaXRpb25PZkR1bW15ID0gc3RycG9zKCR2YWx1ZSwgIj9kdW1teT0iKTsKKyAgICBpZiAoJHBv
c2l0aW9uT2ZEdW1teSA9PT0gZmFsc2UpCisgICAgICAgICRvdXRwdXRVUkwgPSAkdmFsdWU7Cisg
ICAgZWxzZQorICAgICAgICAkb3V0cHV0VVJMID0gc3Vic3RyKCR2YWx1ZSwgMCwgJHBvc2l0aW9u
T2ZEdW1teSk7CisgICAgZndyaXRlKCR0b2tlblNpZ25pbmdGaWxlLCAiUkVRVUVTVF9VUkk6ICRv
dXRwdXRVUkxcbiIpOworfQorCitpZiAoISRjb29raWVzRm91bmQpIHsKKyAgICBmd3JpdGUoJHRv
a2VuU2lnbmluZ0ZpbGUsICJObyBjb29raWVzIGluIHRva2VuIHNpZ25pbmcgcmVxdWVzdC5cbiIp
OworfQorCiskcmVxdWVzdEJvZHkgPSBmaWxlX2dldF9jb250ZW50cygicGhwOi8vaW5wdXQiKTsK
K2Z3cml0ZSgkdG9rZW5TaWduaW5nRmlsZSwgIlJlcXVlc3QgYm9keTpcbiRyZXF1ZXN0Qm9keVxu
Iik7CisKK2ZjbG9zZSgkdG9rZW5TaWduaW5nRmlsZSk7CityZW5hbWUoJHRva2VuU2lnbmluZ0Zp
bGVQYXRoIC4gIi50bXAiLCAkdG9rZW5TaWduaW5nRmlsZVBhdGgpOworCitoZWFkZXIoIkhUVFAv
MS4xIDIwMSBDcmVhdGVkIik7CitzZXRjb29raWUoImNvb2tpZVNldEluVG9rZW5TaWduaW5nUmVz
cG9uc2UiLCAiMSIsIDAsICIvIik7CisKKz8+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy90b2tlblNpZ25pbmdGaWxl
UGF0aC5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L3Jlc291cmNlcy90b2tlblNpZ25pbmdGaWxlUGF0aC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzJmNTlkYTFl
OWVlNDIxNmFiNDA5M2FhZWEyNzhjMGNmNTJlYTRmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3Rva2Vu
U2lnbmluZ0ZpbGVQYXRoLnBocApAQCAtMCwwICsxLDkgQEAKKzw/cGhwCityZXF1aXJlX29uY2Ug
Jy4uLy4uL3Jlc291cmNlcy9wb3J0YWJpbGl0eUxheWVyLnBocCc7CisKK2lmIChpc3NldCgkX0dF
VFsiZHVtbXkiXSkpCisgICAgJHRva2VuU2lnbmluZ0ZpbGVOYW1lID0gIi9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFRva2VuU2lnbmluZ1JlcXVlc3QiIC4gJF9HRVRbImR1bW15Il0gLiAiLnR4dCI7
CitlbHNlCisgICAgJHRva2VuU2lnbmluZ0ZpbGVOYW1lID0gIi9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudFRva2VuU2lnbmluZ1JlcXVlc3QudHh0IjsKKyR0b2tlblNpZ25pbmdGaWxlUGF0aCA9IHN5
c19nZXRfdGVtcF9kaXIoKSAuICR0b2tlblNpZ25pbmdGaWxlTmFtZTsKKz8+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNl
cy91dGlsLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9yZXNvdXJjZXMvdXRpbC5qcwppbmRleCA1N2IzMzZhOTk5N2Y3ZWE5ZjJkYmFlZThjY2E2NjFj
OTRhZGQyMTc2Li44YmI2NmI0ZDJjODU5MDcwYjNhNGViNzk1NjRmYmJiMGRmNGQ4ZjhkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jl
c291cmNlcy91dGlsLmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvcmVzb3VyY2VzL3V0aWwuanMKQEAgLTExLDcgKzExLDggQEAgZnVuY3Rpb24g
dGVhckRvd25BbmRGaW5pc2goKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoZmFsc2UpOwogICAgICAg
ICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRl
c3RpbmcoZmFsc2UpOwotICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoIiIpOworICAgICAgICB0ZXN0UnVubmVyLnNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxGb3JUZXN0aW5nKCIiKTsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuU2lnbmF0
dXJlVVJMRm9yVGVzdGluZygiIik7CiAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwog
ICAgIH0KIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2VuZC1hdHRyaWJ1
dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbAppbmRleCBhZDhkODhjYzlkNjE5ZjI5MzA4MjBl
NTYwYTM1NTFjMDZiNjRmMzdjLi43NTdjZjdiMzU3Nzc4MWRmZjk3MmU2ZjUzMzUwNzJhZTc4MWEx
ZDRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L3NlbmQtYXR0cmlidXRpb24tY29udmVyc2lvbi1yZXF1ZXN0Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZW5kLWF0dHJpYnV0
aW9uLWNvbnZlcnNpb24tcmVxdWVzdC5odG1sCkBAIC0xOSw3ICsxOSw2IEBACiAKICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKHRydWUpOwotICAgICAgICB0ZXN0UnVu
bmVyLnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29u
dmVyc2lvblJlcG9ydC5waHA/bm9uY2U9IiArIG5vbmNlKTsKICAgICB9CiAKICAgICBmdW5jdGlv
biBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7CkBAIC02MCw2ICs1OSw3IEBACiAgICAgZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAg
ICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgeworICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1
dGlvblJlcG9ydFVSTEZvclRlc3RpbmcoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5waHA/bm9uY2U9IiArIG5v
bmNlKTsKICAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiaW1nIik7CiAgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJodHRw
czovLzEyNy4wLjAuMTo4NDQzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9yZWRp
cmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTImbm9uY2U9IiArIG5vbmNlOwog
ICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXByaXZh
dGUtY2xpY2stbWVhc3VyZW1lbnQtd2l0aC1zb3VyY2Utbm9uY2UtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9yZS1wcml2YXRl
LWNsaWNrLW1lYXN1cmVtZW50LXdpdGgtc291cmNlLW5vbmNlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41MmRiMjQ0OTMzNjA5YzdlZGUzMjZkYWZmMzdlZjBiMDMxMWQyM2IzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9z
dG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LXdpdGgtc291cmNlLW5vbmNlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDIxIEBACitUZXN0cyB0aGF0IHRoZSBwcmVzZW5jZSBvZiBhIHNvdXJj
ZSBub25jZSB0cmlnZ2VycyBhIHRva2VuIHNpZ25pbmcgcmVxdWVzdC4KKworCisKKy0tLS0tLS0t
CitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorVG9rZW4gc2lnbmluZyByZXF1ZXN0
IHJlY2VpdmVkLgorSFRUUF9IT1NUOiAxMjcuMC4wLjE6ODAwMAorQ29udGVudCB0eXBlOiBhcHBs
aWNhdGlvbi9qc29uCitSRVFVRVNUX1VSSTogL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291
cmNlcy9zaWduVG9rZW4ucGhwCitObyBjb29raWVzIGluIHRva2VuIHNpZ25pbmcgcmVxdWVzdC4K
K1JlcXVlc3QgYm9keToKK3sic291cmNlX2VuZ2FnZW1lbnRfdHlwZSI6ImNsaWNrIiwic291cmNl
X25vbmNlIjoiQUJDREVGYWJjZGVmMDEyMzQ1Njc4OSIsInVubGlua2FibGVfdG9rZW4iOiJUT0RP
IiwidmVyc2lvbiI6Mn0KKworVW5hdHRyaWJ1dGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRz
OgorV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgMQorU291cmNlIHNpdGU6IDEyNy4w
LjAuMQorQXR0cmlidXRlIG9uIHNpdGU6IGxvY2FsaG9zdAorU291cmNlIElEOiAzCitObyBhdHRy
aWJ1dGlvbiB0cmlnZ2VyIGRhdGEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQt
d2l0aC1zb3VyY2Utbm9uY2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvc3RvcmUtcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC13aXRoLXNvdXJj
ZS1ub25jZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjNzA2NTY0MTM0ODY0MGE0Yzg0OWE5NzkwOGJkMzdm
NmRkZGVkOTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQtd2l0aC1z
b3VyY2Utbm9uY2UuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRGcmF1ZFByZXZlbnRpb25FbmFibGVkPXRydWUgXSAtLT4KKzxodG1sIGxhbmc9
ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8bWV0YSBuYW1l
PSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEs
IHVzZXItc2NhbGFibGU9bm8iPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
dWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3Qs
IDApIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0aGF0IHRoZSBwcmVzZW5jZSBvZiBh
IHNvdXJjZSBub25jZSB0cmlnZ2VycyBhIHRva2VuIHNpZ25pbmcgcmVxdWVzdC48L2Rpdj4KKzxh
IGlkPSJ0YXJnZXRMaW5rIiBhdHRyaWJ1dGlvbnNvdXJjZWlkPSIzIiBhdHRyaWJ1dGVvbj0iaHR0
cDovL2xvY2FsaG9zdDo4MDAwIiBhdHRyaWJ1dGlvbnNvdXJjZW5vbmNlPSJBQkNERUZhYmNkZWYw
MTIzNDU2Nzg5Ij5MaW5rPC9hPjxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8c2NyaXB0
PgorICAgIGlmICghd2luZG93LmxvY2F0aW9uLnNlYXJjaCkKKyAgICAgICAgcHJlcGFyZVRlc3Qo
KTsKKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsKKyAgICAgICAg
dmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQpOworICAgICAg
ICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGgg
LyAyOworICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5v
ZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNl
bnRlclkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVkLiI7
CisgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhcHBlbmRJZnJhbWUodXJsLCBvbmxvYWRD
YWxsYmFjaykgeworICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImlmcmFtZSIpOworICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9IHVybDsKKyAgICAg
ICAgaWYgKG9ubG9hZENhbGxiYWNrKQorICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5vbmxvYWQg
PSBvbmxvYWRDYWxsYmFjazsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJh
bWVFbGVtZW50KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhcHBlbmRUb2tlblNpZ25hdHVyZUlm
cmFtZUFuZEZpbmlzaChkdW1teSkgeworICAgICAgICBhcHBlbmRJZnJhbWUoImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvZ2V0VG9rZW5TaWdu
aW5nRGF0YS5waHA/dGltZW91dF9tcz00MDAwJmR1bW15PSIgKyBkdW1teSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwor
ICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGFyZ2V0TGluayIpKTsKKyAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Cisg
ICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgaWYgKCF3aW5kb3cubG9jYXRpb24u
c2VhcmNoKSB7CisgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFRpbWVNaWxsaXMgPSAobmV3
IERhdGUoKSkuZ2V0VGltZSgpOworICAgICAgICAgICAgICAgIGNvbnN0IGhpZ2hFbnRyb3B5Qml0
cyA9IGN1cnJlbnRUaW1lTWlsbGlzIC0gKE1hdGguZmxvb3IoY3VycmVudFRpbWVNaWxsaXMgLyAx
MDAwMDAwKSAqIDEwMDAwMDApOworICAgICAgICAgICAgICAgIGNvbnN0IGR1bW15ID0gaGlnaEVu
dHJvcHlCaXRzICsgIiIgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDApOworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25h
dHVyZVVSTEZvclRlc3RpbmcoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9yZXNvdXJjZXMvc2lnblRva2VuLnBocD9kdW1teT0iICsgZHVtbXkpOworICAgICAg
ICAgICAgICAgIHRhcmdldExpbmsuaHJlZiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUtcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC13aXRoLXNv
dXJjZS1ub25jZS5odG1sP2R1bW15PSIgKyBkdW1teTsKKyAgICAgICAgICAgICAgICBhY3RpdmF0
ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgbGV0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNl
YXJjaCk7CisgICAgICAgICAgICAgICAgYXBwZW5kVG9rZW5TaWduYXR1cmVJZnJhbWVBbmRGaW5p
c2gocGFyYW1zLmdldCgiZHVtbXkiKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0
ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>