<?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>216426</bug_id>
          
          <creation_ts>2020-09-11 17:07:37 -0700</creation_ts>
          <short_desc>Let webkitDisplayingFullscreen() return true when a video element’s fullscreen mode is not VideoFullscreenModeNone</short_desc>
          <delta_ts>2020-10-26 14:33:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=218208</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>216287</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Peng Liu">peng.liu6</reporter>
          <assigned_to name="Peng Liu">peng.liu6</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1687857</commentid>
    <comment_count>0</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-09-11 17:07:37 -0700</bug_when>
    <thetext>Let webkitDisplayingFullscreen() return true when a video element’s fullscreen mode is not VideoFullscreenModeNone</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687859</commentid>
    <comment_count>1</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-09-11 17:08:30 -0700</bug_when>
    <thetext>&lt;rdar://67790759&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688973</commentid>
    <comment_count>2</comment_count>
      <attachid>408890</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-09-15 20:02:06 -0700</bug_when>
    <thetext>Created attachment 408890
WIP patch v0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689157</commentid>
    <comment_count>3</comment_count>
      <attachid>408935</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-09-16 10:46:42 -0700</bug_when>
    <thetext>Created attachment 408935
WIP patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689660</commentid>
    <comment_count>4</comment_count>
      <attachid>409091</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-09-17 17:20:28 -0700</bug_when>
    <thetext>Created attachment 409091
WIP patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689717</commentid>
    <comment_count>5</comment_count>
      <attachid>409104</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-09-17 22:31:49 -0700</bug_when>
    <thetext>Created attachment 409104
WIP patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689892</commentid>
    <comment_count>6</comment_count>
      <attachid>409156</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-09-18 11:49:23 -0700</bug_when>
    <thetext>Created attachment 409156
Update changelogs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699473</commentid>
    <comment_count>7</comment_count>
      <attachid>411804</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-10-19 15:09:39 -0700</bug_when>
    <thetext>Created attachment 411804
Rebase the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700371</commentid>
    <comment_count>8</comment_count>
      <attachid>411804</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-10-21 13:50:32 -0700</bug_when>
    <thetext>Comment on attachment 411804
Rebase the patch

View in context: https://bugs.webkit.org/attachment.cgi?id=411804&amp;action=review

&gt; Source/WebCore/html/HTMLMediaElement.cpp:5936
&gt; +                if (mode == VideoFullscreenModeStandard)
&gt; +                    m_waitingToEnterFullscreen = true;

It looks like this is the meat of the change. That we only set m_waitingToEnterFullscreen if we&apos;re entering &quot;standard&quot; fullscreen.

&gt; Source/WebCore/html/HTMLMediaElement.cpp:6016
&gt; +            setFullscreenMode(VideoFullscreenModeNone);

And this is the second functional part of the change, that when exitFullscreen() is called, we set the fullscreenMode to &quot;none&quot; if the old mode was &quot;standard&quot;.

This all looks good to me; glad we can write more careful tests through Internals now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700538</commentid>
    <comment_count>9</comment_count>
      <attachid>412065</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-10-21 21:53:50 -0700</bug_when>
    <thetext>Created attachment 412065
Rebased patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700642</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-22 08:22:44 -0700</bug_when>
    <thetext>Committed r268865: &lt;https://trac.webkit.org/changeset/268865&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 412065.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408890</attachid>
            <date>2020-09-15 20:02:06 -0700</date>
            <delta_ts>2020-09-16 10:47:05 -0700</delta_ts>
            <desc>WIP patch v0</desc>
            <filename>bug-216426-20200915200206.patch</filename>
            <type>text/plain</type>
            <size>49610</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGJhZWI5MzNhYjc5Zjk5
Mzg3ZDI2ZmZjMzg1MGYyOTU1OGY1ODFmMi4uMDkwMzQ0ODFmNmQ1MDA4MzA2YzVjZGVjZjY0ZTcx
ODg0ODhjOGM4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIwLTA5LTE1ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgTGV0IHdlYmtpdERpc3BsYXlp
bmdGdWxsc2NyZWVuKCkgcmV0dXJuIHRydWUgd2hlbiBhIHZpZGVvIGVsZW1lbnTigJlzIGZ1bGxz
Y3JlZW4gbW9kZSBpcyBub3QgVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjQyNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVz
dHMuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZGlzcGF0Y2hFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50Ojppc0Z1bGxzY3JlZW4gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6ZW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OmV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6OmRpZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmRpZFN0b3BCZWluZ0Z1bGxzY3JlZW5FbGVtZW50KToK
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6OnNldENoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojppc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9k
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp3YWl0aW5nVG9F
bnRlckZ1bGxzY3JlZW4pOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Ojp3ZWJraXREaXNwbGF5
aW5nRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50OjpzZXRQ
cmVzZW50YXRpb25Nb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ6OmRp
ZEVudGVyRnVsbHNjcmVlbk9yUGljdHVyZUluUGljdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MVmlkZW9FbGVtZW50OjpkaWRFeGl0RnVsbHNjcmVlbk9yUGljdHVyZUluUGljdHVyZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Ojppc0NoYW5naW5nUHJlc2VudGF0aW9u
TW9kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50OjpkaWRCZWNv
bWVGdWxsc2NyZWVuRWxlbWVudCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1MVmlkZW9F
bGVtZW50Lmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjppc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSBjb25zdCk6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5p
ZGw6CisKIDIwMjAtMDktMTQgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBVbnJldmlld2VkIGRlYnVnIGJ1aWxkIGZpeCBhZnRl
ciByMjY3MDczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBh
NGYzNjc5OGU1NGFmNGZkMzk0ZjQyM2M2ZmIwYTZmYTA4Njk2YjIxLi42NTFlMGRmZjQ5NTBmYWI3
ZTk2NTEyMDUzYTQxOWUwM2NhMjFjNjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKQEAgLTU3NzksOCArNTc3OSw4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
ZGlzcGF0Y2hFdmVudChFdmVudCYgZXZlbnQpCiAgICAgLy8gV2UgbmVlZCB0byBmaXJlIHRoZSBl
bmQgZnVsbHNjcmVlbiBldmVudCB0byBub3RpZnkgdGhlIHBhZ2UKICAgICAvLyB0byBjaGFuZ2Ug
dGhlIHBvc2l0aW9uL3NpemUgYmFjayAqYmVmb3JlKiBleGl0aW5nIGZ1bGxzY3JlZW4uCiAgICAg
Ly8gT3RoZXJ3aXNlLCB0aGUgZXhpdCBmdWxsc2NyZWVuIGFuaW1hdGlvbiB3aWxsIGJlIGluY29y
cmVjdC4KLSAgICBpZiAoIW1fdmlkZW9GdWxsc2NyZWVuU3RhbmRieSAmJiAhbV93YWl0aW5nVG9F
bnRlckZ1bGxzY3JlZW4gJiYgZXZlbnQudHlwZSgpID09IGV2ZW50TmFtZXMoKS53ZWJraXRlbmRm
dWxsc2NyZWVuRXZlbnQpIHsKLSAgICAgICAgc2V0RnVsbHNjcmVlbk1vZGUoVmlkZW9GdWxsc2Ny
ZWVuTW9kZU5vbmUpOworICAgIGlmICghbV92aWRlb0Z1bGxzY3JlZW5TdGFuZGJ5ICYmIG1fdmlk
ZW9GdWxsc2NyZWVuTW9kZSA9PSBWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSAmJiBldmVudC50eXBl
KCkgPT0gZXZlbnROYW1lcygpLndlYmtpdGVuZGZ1bGxzY3JlZW5FdmVudCkgeworICAgICAgICBt
X2NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IHRydWU7CiAgICAgICAgIGRvY3VtZW50KCku
cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5leGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVt
ZW50KGRvd25jYXN0PEhUTUxWaWRlb0VsZW1lbnQ+KCp0aGlzKSk7CiAgICAgfQogfQpAQCAtNTkx
MSwxNSArNTkxMSwxMiBAQCBkb3VibGUgSFRNTE1lZGlhRWxlbWVudDo6bWF4RmFzdEZvcndhcmRS
YXRlKCkgY29uc3QKIAogYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojppc0Z1bGxzY3JlZW4oKSBjb25z
dAogewotICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGUgIT0gVmlkZW9GdWxsc2NyZWVuTW9k
ZU5vbmUpCi0gICAgICAgIHJldHVybiB0cnVlOwotCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQogICAgIGlmIChkb2N1bWVudCgpLmZ1bGxzY3JlZW5NYW5hZ2VyKCkuaXNGdWxsc2NyZWVuKCkg
JiYgZG9jdW1lbnQoKS5mdWxsc2NyZWVuTWFuYWdlcigpLmN1cnJlbnRGdWxsc2NyZWVuRWxlbWVu
dCgpID09IHRoaXMpCiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAKLSAgICByZXR1cm4g
ZmFsc2U7CisgICAgcmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuTW9kZSAhPSBWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlTm9uZTsKIH0KIAogYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojppc1N0YW5kYXJkRnVsbHNj
cmVlbigpIGNvbnN0CkBAIC01OTU1LDYgKzU5NTIsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OmVudGVyRnVsbHNjcmVlbihWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpCiAgICAgaWYgKGRvY3Vt
ZW50KCkuc2V0dGluZ3MoKS5mdWxsU2NyZWVuRW5hYmxlZCgpICYmIG1vZGUgPT0gVmlkZW9GdWxs
c2NyZWVuTW9kZVN0YW5kYXJkKSB7CiAgICAgICAgIG1fdGVtcG9yYXJpbHlBbGxvd2luZ0lubGlu
ZVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuID0gZmFsc2U7CiAgICAgICAgIG1fd2FpdGluZ1RvRW50
ZXJGdWxsc2NyZWVuID0gdHJ1ZTsKKyAgICAgICAgbV9jaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1v
ZGUgPSB0cnVlOwogICAgICAgICBkb2N1bWVudCgpLmZ1bGxzY3JlZW5NYW5hZ2VyKCkucmVxdWVz
dEZ1bGxzY3JlZW5Gb3JFbGVtZW50KHRoaXMsIEZ1bGxzY3JlZW5NYW5hZ2VyOjpFeGVtcHRJRnJh
bWVBbGxvd0Z1bGxzY3JlZW5SZXF1aXJlbWVudCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC01OTcyLDExICs1OTcwLDE0IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZW50ZXJGdWxsc2Ny
ZWVuKFZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKICAgICAgICAgICAgICAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIsICJFbnRlcmluZyBmdWxsc2NyZWVuIG1vZGUgIiwgbW9kZSwgIiwgbV92
aWRlb0Z1bGxzY3JlZW5TdGFuZGJ5ID0gIiwgbV92aWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KTsKIAog
ICAgICAgICAgICAgICAgIG1fdGVtcG9yYXJpbHlBbGxvd2luZ0lubGluZVBsYXliYWNrQWZ0ZXJG
dWxsc2NyZWVuID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgbV93YWl0aW5nVG9FbnRlckZ1bGxz
Y3JlZW4gPSB0cnVlOworICAgICAgICAgICAgICAgIGlmIChtb2RlID09IFZpZGVvRnVsbHNjcmVl
bk1vZGVTdGFuZGFyZCkKKyAgICAgICAgICAgICAgICAgICAgbV93YWl0aW5nVG9FbnRlckZ1bGxz
Y3JlZW4gPSB0cnVlOworCiAgICAgICAgICAgICAgICAgYXV0byBvbGRNb2RlID0gbV92aWRlb0Z1
bGxzY3JlZW5Nb2RlOwogICAgICAgICAgICAgICAgIHNldEZ1bGxzY3JlZW5Nb2RlKG1vZGUpOwog
ICAgICAgICAgICAgICAgIGNvbmZpZ3VyZU1lZGlhQ29udHJvbHMoKTsKIAorICAgICAgICAgICAg
ICAgIG1fY2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlID0gdHJ1ZTsKICAgICAgICAgICAgICAg
ICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZW50ZXJWaWRlb0Z1bGxzY3Jl
ZW5Gb3JWaWRlb0VsZW1lbnQoYXNWaWRlbywgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlLCBtX3ZpZGVv
RnVsbHNjcmVlblN0YW5kYnkpOwogICAgICAgICAgICAgICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVl
blN0YW5kYnkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTYwMDMsOCArNjAwNCwx
MCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmV4aXRGdWxsc2NyZWVuKCkKIAogI2lmIEVOQUJM
RShGVUxMU0NSRUVOX0FQSSkKICAgICBpZiAoZG9jdW1lbnQoKS5zZXR0aW5ncygpLmZ1bGxTY3Jl
ZW5FbmFibGVkKCkgJiYgZG9jdW1lbnQoKS5mdWxsc2NyZWVuTWFuYWdlcigpLmN1cnJlbnRGdWxs
c2NyZWVuRWxlbWVudCgpID09IHRoaXMpIHsKLSAgICAgICAgaWYgKGRvY3VtZW50KCkuZnVsbHNj
cmVlbk1hbmFnZXIoKS5pc0Z1bGxzY3JlZW4oKSkKKyAgICAgICAgaWYgKGRvY3VtZW50KCkuZnVs
bHNjcmVlbk1hbmFnZXIoKS5pc0Z1bGxzY3JlZW4oKSkgeworICAgICAgICAgICAgbV9jaGFuZ2lu
Z1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSB0cnVlOwogICAgICAgICAgICAgZG9jdW1lbnQoKS5mdWxs
c2NyZWVuTWFuYWdlcigpLmNhbmNlbEZ1bGxzY3JlZW4oKTsKKyAgICAgICAgfQogCiAgICAgICAg
IGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGUgPT0gVmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJk
KQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNjAzMiwxNSArNjAzNSwyMCBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmV4aXRGdWxsc2NyZWVuKCkKIAogICAgIGlmIChkb2N1bWVudCgpLmFjdGl2
ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQoKSB8fCBkb2N1bWVudCgpLmFjdGl2ZURPTU9iamVjdHNB
cmVTdG9wcGVkKCkpIHsKICAgICAgICAgc2V0RnVsbHNjcmVlbk1vZGUoVmlkZW9GdWxsc2NyZWVu
TW9kZU5vbmUpOworICAgICAgICBtX2NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IHRydWU7
CiAgICAgICAgIGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5leGl0VmlkZW9G
dWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlvbihkb3duY2FzdDxIVE1MVmlkZW9FbGVtZW50
PigqdGhpcyksIFZpZGVvRnVsbHNjcmVlbk1vZGVOb25lKTsKICAgICB9IGVsc2UgaWYgKGRvY3Vt
ZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihv
bGRWaWRlb0Z1bGxzY3JlZW5Nb2RlKSkgewogICAgICAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5T
dGFuZGJ5KSB7CiAgICAgICAgICAgICBzZXRGdWxsc2NyZWVuTW9kZShWaWRlb0Z1bGxzY3JlZW5N
b2RlTm9uZSk7CisgICAgICAgICAgICBtX2NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IHRy
dWU7CiAgICAgICAgICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZW50
ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoZG93bmNhc3Q8SFRNTFZpZGVvRWxlbWVu
dD4oKnRoaXMpLCBtX3ZpZGVvRnVsbHNjcmVlbk1vZGUsIG1fdmlkZW9GdWxsc2NyZWVuU3RhbmRi
eSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAorICAgICAgICBtX2NoYW5naW5n
VmlkZW9GdWxsc2NyZWVuTW9kZSA9IHRydWU7CisKICAgICAgICAgaWYgKG9sZFZpZGVvRnVsbHNj
cmVlbk1vZGUgPT0gVmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKSB7CisgICAgICAgICAgICBz
ZXRGdWxsc2NyZWVuTW9kZShWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSk7CiAgICAgICAgICAgICAv
LyBUaGUgZXhpdCBmdWxsc2NyZWVuIHJlcXVlc3Qgd2lsbCBiZSBzZW50IGluIGRpc3BhdGNoRXZl
bnQoKS4KICAgICAgICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLndlYmtpdGVuZGZ1
bGxzY3JlZW5FdmVudCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC02MTEwLDYgKzYxMTgsNyBA
QCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRpZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KCkKIHsK
ICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICIsIGZ1bGxzY3JlZW4gbW9kZSA9ICIsIGZ1
bGxzY3JlZW5Nb2RlKCkpOwogICAgIG1fd2FpdGluZ1RvRW50ZXJGdWxsc2NyZWVuID0gZmFsc2U7
CisgICAgbV9jaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSBmYWxzZTsKICAgICBzY2hlZHVs
ZVVwZGF0ZVBsYXlTdGF0ZSgpOwogfQogCkBAIC02MTE5LDYgKzYxMjgsMTEgQEAgdm9pZCBIVE1M
TWVkaWFFbGVtZW50Ojp3aWxsU3RvcEJlaW5nRnVsbHNjcmVlbkVsZW1lbnQoKQogICAgICAgICBz
ZXRGdWxsc2NyZWVuTW9kZShWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSk7CiB9CiAKK3ZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6ZGlkU3RvcEJlaW5nRnVsbHNjcmVlbkVsZW1lbnQoKQoreworICAgIG1f
Y2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlID0gZmFsc2U7Cit9CisKIFBsYXRmb3JtTGF5ZXIq
IEhUTUxNZWRpYUVsZW1lbnQ6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewogICAgIHJldHVybiBt
X3BsYXllciA/IG1fcGxheWVyLT5wbGF0Zm9ybUxheWVyKCkgOiBudWxscHRyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCBhYjJiMDAxMWI1OTQzOWVhNTFlOGFhM2Uy
MDhmZTAxMmM2M2QxMmVkLi4yZjhiNzRmNTU5N2YyMjAwZGZkNzdmZDAwZjVlYzEzZDJiOTY3ODE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNTU0LDggKzU1NCw5
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNTdXNwZW5kZWQoKSBjb25zdCBmaW5hbDsKIAotICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkQmVjb21lRnVsbHNjcmVlbkVsZW1lbnQoKSBvdmVycmlk
ZTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KCkg
ZmluYWw7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3aWxsRXhpdEZ1bGxzY3JlZW4oKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZFN0b3BCZWluZ0Z1bGxzY3JlZW5FbGVtZW50KCkgZmlu
YWw7CiAKICNpZiBFTkFCTEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkKICAgICB2b2lkIHNjaGVk
dWxlRXZlbnQoUmVmPEV2ZW50PiYmKTsKQEAgLTYxMCw3ICs2MTEsOSBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdm9pZCB1cGRhdGVNZWRpYUNvbnRyb2xzQWZ0ZXJQcmVzZW50YXRpb25Nb2RlQ2hhbmdlKCk7
CiAKICAgICB2b2lkIHNjaGVkdWxlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYpOwotICAgIGJvb2wg
d2FpdGluZ1RvRW50ZXJGdWxsc2NyZWVuKCkgeyByZXR1cm4gbV93YWl0aW5nVG9FbnRlckZ1bGxz
Y3JlZW47IH0KKworICAgIHZvaWQgc2V0Q2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlKGJvb2wg
dmFsdWUpIHsgbV9jaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSB2YWx1ZTsgfQorICAgIGJv
b2wgaXNDaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUoKSBjb25zdCB7IHJldHVybiBtX2NoYW5n
aW5nVmlkZW9GdWxsc2NyZWVuTW9kZTsgfQogCiBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlTWVk
aWFQbGF5ZXIoKTsKQEAgLTExMDksNiArMTExMiw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1f
aXNTY3J1YmJpbmdSZW1vdGVseSA6IDE7CiAgICAgYm9vbCBtX3dhaXRpbmdUb0VudGVyRnVsbHNj
cmVlbiA6IDE7CisgICAgYm9vbCBtX2NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA6IDE7CiAK
ICAgICBib29sIG1fdHJhY2tzQXJlUmVhZHkgOiAxOwogICAgIGJvb2wgbV9oYXZlVmlzaWJsZVRl
eHRUcmFjayA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAppbmRl
eCA4ZGZhYmIzMjJjNDAwMGJhNjY5ODYxNTg4YzFiYWRjN2FkZjM5ODJmLi5jN2MxMmZjOGI1NjYy
ZTk5NWQ4YzgxZmE1NThmYTFiMDUxNDUxZDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZp
ZGVvRWxlbWVudC5jcHAKQEAgLTM1MywxMSArMzUzLDkgQEAgYm9vbCBIVE1MVmlkZW9FbGVtZW50
Ojp3ZWJraXRTdXBwb3J0c0Z1bGxzY3JlZW4oKQogYm9vbCBIVE1MVmlkZW9FbGVtZW50Ojp3ZWJr
aXREaXNwbGF5aW5nRnVsbHNjcmVlbigpCiB7CiAgICAgaWYgKGRvY3VtZW50KCkucXVpcmtzKCku
bmVlZHNBa2FtYWlNZWRpYVBsYXllclF1aXJrKCp0aGlzKSkKLSAgICAgICAgcmV0dXJuIGlzRnVs
bHNjcmVlbigpIHx8IG1faXNDaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGU7CisgICAgICAgIHJl
dHVybiBpc0Z1bGxzY3JlZW4oKSB8fCBpc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSgpOwog
Ci0gICAgLy8gVGhpcyBmdW5jdGlvbiBzdGFydHMgdG8gcmV0dXJuIHRydWUgYWZ0ZXIgdGhlIHZp
ZGVvIGVsZW1lbnQgaGFzIGVudGVyZWQKLSAgICAvLyBmdWxsc2NyZWVuL3BpY3R1cmUtaW4tcGlj
dHVyZSB1bnRpbCBpdCBoYXMgZXhpdGVkIGZ1bGxzY3JlZW4vcGljdHVyZS1pbi1waWN0dXJlCi0g
ICAgcmV0dXJuIChpc0Z1bGxzY3JlZW4oKSAmJiAhd2FpdGluZ1RvRW50ZXJGdWxsc2NyZWVuKCkp
IHx8ICghaXNGdWxsc2NyZWVuKCkgJiYgbV9pc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSk7
CisgICAgcmV0dXJuIGlzRnVsbHNjcmVlbigpOwogfQogCiB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6
OmFuY2VzdG9yV2lsbEVudGVyRnVsbHNjcmVlbigpCkBAIC00NzQsNyArNDcyLDcgQEAgdm9pZCBI
VE1MVmlkZW9FbGVtZW50Ojp3ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKFZpZGVvUHJlc2VudGF0
aW9uTW9kZSBtb2RlKQogCiB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnNldFByZXNlbnRhdGlvbk1v
ZGUoVmlkZW9QcmVzZW50YXRpb25Nb2RlIG1vZGUpCiB7Ci0gICAgaWYgKG1faXNDaGFuZ2luZ1Zp
ZGVvRnVsbHNjcmVlbk1vZGUgfHwgdG9QcmVzZW50YXRpb25Nb2RlKGZ1bGxzY3JlZW5Nb2RlKCkp
ID09IG1vZGUpCisgICAgaWYgKGlzQ2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlKCkgfHwgdG9Q
cmVzZW50YXRpb25Nb2RlKGZ1bGxzY3JlZW5Nb2RlKCkpID09IG1vZGUpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGF1dG8gdmlkZW9GdWxsc2NyZWVuTW9kZSA9IHRvRnVsbHNjcmVlbk1vZGUobW9k
ZSk7CkBAIC00ODUsNyArNDgzLDYgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpzZXRQcmVzZW50
YXRpb25Nb2RlKFZpZGVvUHJlc2VudGF0aW9uTW9kZSBtb2RlKQogICAgICAgICAgICAgaWYgKHRv
UHJlc2VudGF0aW9uTW9kZShmdWxsc2NyZWVuTW9kZSgpKSA9PSBWaWRlb1ByZXNlbnRhdGlvbk1v
ZGU6OlBpY3R1cmVJblBpY3R1cmUpCiAgICAgICAgICAgICAgICAgbV9pc0V4aXRpbmdQaWN0dXJl
SW5QaWN0dXJlID0gdHJ1ZTsKIAotICAgICAgICAgICAgbV9pc0NoYW5naW5nVmlkZW9GdWxsc2Ny
ZWVuTW9kZSA9IHRydWU7CiAgICAgICAgICAgICBleGl0RnVsbHNjcmVlbigpOwogICAgICAgICB9
CiAKQEAgLTUwMCw3ICs0OTcsNiBAQCB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnNldFByZXNlbnRh
dGlvbk1vZGUoVmlkZW9QcmVzZW50YXRpb25Nb2RlIG1vZGUpCiAgICAgZWxzZSBpZiAoZnVsbHNj
cmVlbk1vZGUoKSA9PSBWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSkKICAgICAg
ICAgbV9pc0V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlID0gdHJ1ZTsKIAotICAgIG1faXNDaGFuZ2lu
Z1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSB0cnVlOwogICAgIGVudGVyRnVsbHNjcmVlbih2aWRlb0Z1
bGxzY3JlZW5Nb2RlKTsKIH0KIApAQCAtNTExLDIwICs1MDcsMjUgQEAgYXV0byBIVE1MVmlkZW9F
bGVtZW50Ojp3ZWJraXRQcmVzZW50YXRpb25Nb2RlKCkgY29uc3QgLT4gVmlkZW9QcmVzZW50YXRp
b25Nb2RlCiAKIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6ZGlkRW50ZXJGdWxsc2NyZWVuT3JQaWN0
dXJlSW5QaWN0dXJlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkKIHsKLSAgICBtX2lzQ2hhbmdpbmdW
aWRlb0Z1bGxzY3JlZW5Nb2RlID0gZmFsc2U7Ci0gICAgaWYgKG1faXNFbnRlcmluZ1BpY3R1cmVJ
blBpY3R1cmUgfHwgbV9pc0V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlKSB7CisgICAgaWYgKG1faXNF
bnRlcmluZ1BpY3R1cmVJblBpY3R1cmUpIHsKKyAgICAgICAgbV9pc0VudGVyaW5nUGljdHVyZUlu
UGljdHVyZSA9IGZhbHNlOworICAgICAgICBzZXRDaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUo
ZmFsc2UpOworCiAjaWYgRU5BQkxFKFBJQ1RVUkVfSU5fUElDVFVSRV9BUEkpCi0gICAgICAgIGlm
IChtX3BpY3R1cmVJblBpY3R1cmVPYnNlcnZlcikgewotICAgICAgICAgICAgaWYgKG1faXNFbnRl
cmluZ1BpY3R1cmVJblBpY3R1cmUpCi0gICAgICAgICAgICAgICAgbV9waWN0dXJlSW5QaWN0dXJl
T2JzZXJ2ZXItPmRpZEVudGVyUGljdHVyZUluUGljdHVyZShmbG9vcmVkSW50U2l6ZShzaXplKSk7
Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbV9waWN0dXJlSW5QaWN0dXJlT2Jz
ZXJ2ZXItPmRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlKCk7Ci0gICAgICAgIH0KKyAgICAgICAgaWYg
KG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyKQorICAgICAgICAgICAgbV9waWN0dXJlSW5QaWN0
dXJlT2JzZXJ2ZXItPmRpZEVudGVyUGljdHVyZUluUGljdHVyZShmbG9vcmVkSW50U2l6ZShzaXpl
KSk7CiAjZWxzZQogICAgICAgICBVTlVTRURfUEFSQU0oc2l6ZSk7CiAjZW5kaWYKLSAgICAgICAg
bV9pc0VudGVyaW5nUGljdHVyZUluUGljdHVyZSA9IGZhbHNlOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaWYgKG1faXNFeGl0aW5nUGljdHVyZUluUGljdHVyZSkgewogICAgICAgICBt
X2lzRXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKKyNpZiBFTkFCTEUoUElDVFVSRV9J
Tl9QSUNUVVJFX0FQSSkKKyAgICAgICAgaWYgKG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyKQor
ICAgICAgICAgICAgbV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXItPmRpZEV4aXRQaWN0dXJlSW5Q
aWN0dXJlKCk7CisjZW5kaWYKICAgICB9CiAKICAgICBIVE1MTWVkaWFFbGVtZW50OjpkaWRCZWNv
bWVGdWxsc2NyZWVuRWxlbWVudCgpOwpAQCAtNTMyLDIzICs1MzMsMjQgQEAgdm9pZCBIVE1MVmlk
ZW9FbGVtZW50OjpkaWRFbnRlckZ1bGxzY3JlZW5PclBpY3R1cmVJblBpY3R1cmUoY29uc3QgRmxv
YXRTaXplJiBzaXoKIAogdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpkaWRFeGl0RnVsbHNjcmVlbk9y
UGljdHVyZUluUGljdHVyZSgpCiB7Ci0gICAgbV9pc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9k
ZSA9IGZhbHNlOwogICAgIGlmIChtX2lzRXhpdGluZ1BpY3R1cmVJblBpY3R1cmUpIHsKICAgICAg
ICAgbV9pc0V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlID0gZmFsc2U7CisgICAgICAgIHNldENoYW5n
aW5nVmlkZW9GdWxsc2NyZWVuTW9kZShmYWxzZSk7CisKICNpZiBFTkFCTEUoUElDVFVSRV9JTl9Q
SUNUVVJFX0FQSSkKICAgICAgICAgaWYgKG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyKQogICAg
ICAgICAgICAgbV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXItPmRpZEV4aXRQaWN0dXJlSW5QaWN0
dXJlKCk7CiAjZW5kaWYKKyAgICAgICAgcmV0dXJuOwogICAgIH0KKworICAgIEhUTUxNZWRpYUVs
ZW1lbnQ6OmRpZFN0b3BCZWluZ0Z1bGxzY3JlZW5FbGVtZW50KCk7CiB9CiAKLSNpZiBFTkFCTEUo
RlVMTFNDUkVFTl9BUEkpICYmIEVOQUJMRShWSURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikK
LXZvaWQgSFRNTFZpZGVvRWxlbWVudDo6ZGlkQmVjb21lRnVsbHNjcmVlbkVsZW1lbnQoKQorYm9v
bCBIVE1MVmlkZW9FbGVtZW50Ojppc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSgpIGNvbnN0CiB7
Ci0gICAgbV9pc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IGZhbHNlOwotICAgIEhUTUxN
ZWRpYUVsZW1lbnQ6OmRpZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KCk7CisgICAgcmV0dXJuIGlz
Q2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlKCk7CiB9Ci0jZW5kaWYKIAogdm9pZCBIVE1MVmlk
ZW9FbGVtZW50OjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShjb25zdCBGbG9hdFJlY3QmIGZyYW1l
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAppbmRleCBlZDM0ZGQzNmRj
ZTdjNmRjYWVlZGI0M2Y3MzI0NWNkOWNmYTA5MzQzLi5kYjkzODBlZDU4MTRmYTRlMTQ5MmRmYWE5
NDVlMjFhNjRlNDVkYTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRl
b0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaApA
QCAtOTEsMTAgKzkxLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UHJl
c2VudGF0aW9uTW9kZShWaWRlb1ByZXNlbnRhdGlvbk1vZGUpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuT3JQaWN0dXJlSW5QaWN0dXJlKGNvbnN0IEZsb2F0U2l6
ZSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW5PclBpY3R1cmVJ
blBpY3R1cmUoKTsKLQotI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkgJiYgRU5BQkxFKFZJREVP
X1VTRVNfRUxFTUVOVF9GVUxMU0NSRUVOKQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkQmVj
b21lRnVsbHNjcmVlbkVsZW1lbnQoKSBmaW5hbDsKLSNlbmRpZgorICAgIFdFQkNPUkVfRVhQT1JU
IGJvb2wgaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0
VmlkZW9GdWxsc2NyZWVuRnJhbWUoY29uc3QgRmxvYXRSZWN0JikgZmluYWw7CiAKQEAgLTEzOCw3
ICsxMzUsNiBAQCBwcml2YXRlOgogCiAgICAgdW5zaWduZWQgbV9sYXN0UmVwb3J0ZWRWaWRlb1dp
ZHRoIHsgMCB9OwogICAgIHVuc2lnbmVkIG1fbGFzdFJlcG9ydGVkVmlkZW9IZWlnaHQgeyAwIH07
Ci0gICAgYm9vbCBtX2lzQ2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlIHsgZmFsc2UgfTsKIAog
I2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKICAgICBib29sIG1faXNFbnRlcmlu
Z1BpY3R1cmVJblBpY3R1cmUgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCmluZGV4IDFkMTRkNzBlZDhmMTJhMWU2ZDNkMGYyNTVjYjFiYTBmNTA3ODNlOGMuLjhiZGI2
NGU2ZTA4OGRlN2Y4ZGMyNjZmYjRkOThkYmI4NTk2NTJlNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKQEAgLTM0MjYsNiArMzQyNiwxMSBAQCB2b2lkIEludGVybmFsczo6c2V0
RnVsbHNjcmVlbkNvbnRyb2xzSGlkZGVuKGJvb2wgaGlkZGVuKQogfQogCiAjaWYgRU5BQkxFKFZJ
REVPX1BSRVNFTlRBVElPTl9NT0RFKQorYm9vbCBJbnRlcm5hbHM6OmlzQ2hhbmdpbmdQcmVzZW50
YXRpb25Nb2RlKEhUTUxWaWRlb0VsZW1lbnQmIGVsZW1lbnQpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGVsZW1lbnQuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUoKTsKK30KKwogdm9pZCBJbnRlcm5h
bHM6OnNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsK
ICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oCmluZGV4IDM3MTE3NmY2YzJhM2M3ODdlMDM2ZjUyMjY2MjU4MzVmZGMx
M2VlOGEuLmNkMDVmNzZhZmI1NjM3ZGQwYTg1YzE3ZmYzYTIwYmJiMjMxYzFjZmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNTE0LDYgKzUxNCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldEZ1bGxzY3JlZW5Db250cm9sc0hpZGRlbihib29sKTsKIAogI2lmIEVOQUJMRShWSURF
T19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBib29sIGlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2Rl
KEhUTUxWaWRlb0VsZW1lbnQmKSBjb25zdDsKICAgICB2b2lkIHNldE1vY2tWaWRlb1ByZXNlbnRh
dGlvbk1vZGVFbmFibGVkKGJvb2wpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbAppbmRleCA4ZDFhZDQyZmQ1YTdiNTAwNGNiMDhmYTY2ZWVmNzRhYmM0NjQ4ZDQzLi44
ODM3OGU1NGI4MTRmNjljOGY2NzdlY2E2NjBkMWMxOGZmNGRkMGE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCkBAIC01NzAsNiArNTcwLDcgQEAgZW51bSBDb250ZW50U2l6ZUNh
dGVnb3J5IHsKICAgICB1bmRlZmluZWQgc2V0RnVsbHNjcmVlbkF1dG9IaWRlRHVyYXRpb24oZG91
YmxlIGR1cmF0aW9uKTsKICAgICB1bmRlZmluZWQgc2V0RnVsbHNjcmVlbkNvbnRyb2xzSGlkZGVu
KGJvb2xlYW4gaGlkZGVuKTsKIAorICAgIFtDb25kaXRpb25hbD1WSURFT19QUkVTRU5UQVRJT05f
TU9ERV0gYm9vbGVhbiBpc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZShIVE1MVmlkZW9FbGVtZW50
IGVsZW1lbnQpOwogICAgIFtDb25kaXRpb25hbD1WSURFT19QUkVTRU5UQVRJT05fTU9ERV0gdW5k
ZWZpbmVkIHNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKGJvb2xlYW4gZW5hYmxl
ZCk7CiAKICAgICB1bmRlZmluZWQgc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKHVuc2ln
bmVkIGxvbmcgbG9uZyBxdW90YSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmY2NzNlNDY0OTE4YmQ1NGU1NDdiNjE0MDMz
OWE1Njk2Yzk3YmRjOC4uM2M4NGIwMjNkNTBkM2FhOGY2ZjY5MGY1ZWNlNjE4MWUzZDgwMDMyZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTA5LTE1ICBQZW5nIExpdSAgPHBlbmcubGl1NkBh
cHBsZS5jb20+CisKKyAgICAgICAgTGV0IHdlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuKCkgcmV0
dXJuIHRydWUgd2hlbiBhIHZpZGVvIGVsZW1lbnTigJlzIGZ1bGxzY3JlZW4gbW9kZSBpcyBub3Qg
VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNjQyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
bWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNv
bnRyb2xzLWxpdmUtYnJvYWRjYXN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRy
b2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtbGl2ZS1icm9hZGNhc3QuaHRtbDoK
KyAgICAgICAgKiBtZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy5odG1sOgorICAgICAgICAqIG1l
ZGlhL21lZGlhLWZ1bGxzY3JlZW4tbG9vcC1pbmxpbmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IG1lZGlhL21lZGlhLWZ1bGxzY3JlZW4tbG9vcC1pbmxpbmUuaHRtbDoKKyAgICAgICAgKiBtZWRp
YS9tZWRpYS1mdWxsc2NyZWVuLXBhdXNlLWlubGluZS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
bWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1wYXVzZS1pbmxpbmUuaHRtbDoKKyAgICAgICAgKiBtZWRp
YS9tZWRpYS1mdWxsc2NyZWVuLXJldHVybi10by1pbmxpbmUtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIG1lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcmV0dXJuLXRvLWlubGluZS5odG1sOgorICAgICAg
ICAqIG1lZGlhL3ByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkLWZpcmVkLW9uY2UtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIG1lZGlhL3ByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkLWZpcmVkLW9uY2UuaHRt
bDoKKyAgICAgICAgKiBtZWRpYS92aWRlby1mdWxsc2NyZWVuLW9ubHktcGxheWJhY2stZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIG1lZGlhL3ZpZGVvLWZ1bGxzY3JlZW4tb25seS1wbGF5YmFjay5o
dG1sOgorICAgICAgICAqIG1lZGlhL3ZpZGVvLXBsYXlzaW5saW5lLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBtZWRpYS92aWRlby1wbGF5c2lubGluZS5odG1sOgorICAgICAgICAqIG1lZGlhL3Zp
ZGVvLXByZXNlbnRhdGlvbi1tb2RlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBtZWRpYS92aWRl
by1wcmVzZW50YXRpb24tbW9kZS5odG1sOgorICAgICAgICAqIG1lZGlhL3ZpZGVvLXdlYmtpdC1w
bGF5c2lubGluZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEvdmlkZW8td2Via2l0LXBs
YXlzaW5saW5lLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6
CisKIDIwMjAtMDktMTQgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4K
IAogICAgICAgICBbQXBwbGUgV2luXSBNaWdyYXRlIGZyb20gRm9udFBsYXRmb3JtRGF0YVdpbi5j
cHAgdG8gRm9udFBsYXRmb3JtRGF0YUNvcmVUZXh0LmNwcApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVl
bi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWxpdmUtYnJv
YWRjYXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVs
bHNjcmVlbi1tZWRpYS1jb250cm9scy1saXZlLWJyb2FkY2FzdC1leHBlY3RlZC50eHQKaW5kZXgg
YjMyYTdjMTc0OWFjYmM3NmRkNmVjMWEwN2ZmOWVmZDdkZTQyN2IzYy4uN2I2Njk0OTUzZDZlMzQw
OGQwNzcwNWI2MDVhN2Q1OWQ1MDkzNTlmMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1j
b250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWxpdmUtYnJvYWRjYXN0LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3Jl
ZW4tbWVkaWEtY29udHJvbHMtbGl2ZS1icm9hZGNhc3QtZXhwZWN0ZWQudHh0CkBAIC0zLDcgKzMs
NyBAQCBUZXN0aW5nIHRoYXQgd2UgZG8gbm90IHNob3cgdGhlIHNlZWtpbmcgY29udHJvbHMgaW4g
ZnVsbHNjcmVlbiB3aXRoIGEgbGl2ZSBicm9hZAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgog
CiAKLVBBU1MgbWVkaWEud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gYmVjYW1lIHRydWUKK1BB
U1MgbWVkaWEud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gaXMgdHJ1ZQogUEFTUyBtZWRpYS5k
dXJhdGlvbiBiZWNhbWUgTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZCiBQQVNTIG1lZGlhQ29udHJv
bGxlci5jb250cm9scy5yZXdpbmRCdXR0b24uZW5hYmxlZCBpcyBmYWxzZQogUEFTUyBtZWRpYUNv
bnRyb2xsZXIuY29udHJvbHMuZm9yd2FyZEJ1dHRvbi5lbmFibGVkIGlzIGZhbHNlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9t
YWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29u
dHJvbHMtbGl2ZS1icm9hZGNhc3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFj
b3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1saXZlLWJyb2FkY2FzdC5odG1sCmluZGV4IGFm
YmU4ODE0ZTY4NTA4NGNmYWI2NTk5YmEyYmQ0NWI1ZTcwZGZkMGIuLmI2NGI0M2EyMzM1OTBkYWJm
NDhlMzE3YTY4ZjBiMGM2YjNjNDM0MjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29u
dHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1saXZlLWJyb2FkY2FzdC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1j
b250cm9scy1saXZlLWJyb2FkY2FzdC5odG1sCkBAIC0xNSwxOCArMTUsMTcgQEAgY29uc3QgbWVk
aWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwogY29uc3QgbWVkaWFDb250cm9s
bGVyID0gY3JlYXRlQ29udHJvbHMoc2hhZG93Um9vdCwgbWVkaWEsIG51bGwpOwogCiBtZWRpYS5h
ZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRmdWxsc2NyZWVuY2hhbmdlIiwgKCkgPT4gewotICAgIHNo
b3VsZEJlY29tZUVxdWFsKCJtZWRpYS53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiIsICJ0cnVl
IiwgKCkgPT4gewotICAgICAgICBzaG91bGRCZWNvbWVFcXVhbCgibWVkaWEuZHVyYXRpb24iLCAi
TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZIiwgKCkgPT4gewotICAgICAgICAgICAgc2hvdWxkQmVG
YWxzZSgibWVkaWFDb250cm9sbGVyLmNvbnRyb2xzLnJld2luZEJ1dHRvbi5lbmFibGVkIik7Ci0g
ICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMuZm9yd2Fy
ZEJ1dHRvbi5lbmFibGVkIik7Ci0gICAgICAgICAgICBzaG91bGRCZSgibWVkaWFDb250cm9sbGVy
LmNvbnRyb2xzLnRpbWVDb250cm9sLnBhcmVudCIsICJudWxsIik7Ci0gICAgICAgICAgICBzaG91
bGRCZSgibWVkaWFDb250cm9sbGVyLmNvbnRyb2xzLnN0YXR1c0xhYmVsLnBhcmVudCIsICJtZWRp
YUNvbnRyb2xsZXIuY29udHJvbHMuYm90dG9tQ29udHJvbHNCYXIiKTsKLQotICAgICAgICAgICAg
ZGVidWcoIiIpOwotICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAgICAgICAgICBzaGFk
b3dSb290Lmhvc3QucmVtb3ZlKCk7Ci0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAg
ICAgfSk7CisgICAgc2hvdWxkQmVUcnVlKCJtZWRpYS53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVl
biIpOworICAgIHNob3VsZEJlY29tZUVxdWFsKCJtZWRpYS5kdXJhdGlvbiIsICJOdW1iZXIuUE9T
SVRJVkVfSU5GSU5JVFkiLCAoKSA9PiB7CisgICAgICAgIHNob3VsZEJlRmFsc2UoIm1lZGlhQ29u
dHJvbGxlci5jb250cm9scy5yZXdpbmRCdXR0b24uZW5hYmxlZCIpOworICAgICAgICBzaG91bGRC
ZUZhbHNlKCJtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMuZm9yd2FyZEJ1dHRvbi5lbmFibGVkIik7
CisgICAgICAgIHNob3VsZEJlKCJtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMudGltZUNvbnRyb2wu
cGFyZW50IiwgIm51bGwiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1lZGlhQ29udHJvbGxlci5jb250
cm9scy5zdGF0dXNMYWJlbC5wYXJlbnQiLCAibWVkaWFDb250cm9sbGVyLmNvbnRyb2xzLmJvdHRv
bUNvbnRyb2xzQmFyIik7CisKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBtZWRpYS5yZW1v
dmUoKTsKKyAgICAgICAgc2hhZG93Um9vdC5ob3N0LnJlbW92ZSgpOworICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKICAgICB9KTsKIH0pOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9j
b250ZXh0LW1lbnUtYWN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvY29udGV4dC1tZW51
LWFjdGlvbnMuaHRtbAppbmRleCAwNTllZWE3MDk1MmY4NTdmYmM2MjU2Yjg0OTY3ZmY2MWE2MzI3
ZTM2Li5kMzkzYzc5MGIxODVkMzc0MDQ5YTM3MzE3N2E5NmRlOTk0MjY5OWVhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9tZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy5odG1sCisrKyBiL0xheW91
dFRlc3RzL21lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwKQEAgLTEsODcgKzEsODYgQEAK
KzwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Im1l
ZGlhLWZpbGUuanMiPjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0IHNyYz0idmlkZW8tdGVzdC5q
cyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQ+Ci0KLSAgICAgICAgICAgIGFzeW5jIGZ1bmN0
aW9uIHBsYXlpbmcoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewotICAgICAgICAgICAgICAgICAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRl
cikgewotICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBlbmRUZXN0KCk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2Ug
eworICAgIDxzY3JpcHQgc3JjPSJtZWRpYS1maWxlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0idmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgYXN5
bmMgZnVuY3Rpb24gcGxheWluZygpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgICAgICAgICAgICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKSB7
CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICAg
ICAgICAgICAgICBlbmRUZXN0KCk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVuZFRl
c3QoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAKLSAgICAgICAg
ICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7Ci0KLSAgICAgICAgICAgICAgICB2YXIgeCwgeSwg
aXRlbXM7Ci0gICAgICAgICAgICAgICAgeCA9IHZpZGVvLm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0
ICsgdmlkZW8ub2Zmc2V0TGVmdCArIHZpZGVvLm9mZnNldFdpZHRoIC8gMjsKLSAgICAgICAgICAg
ICAgICB5ID0gdmlkZW8ub2Zmc2V0UGFyZW50Lm9mZnNldFRvcCArIHZpZGVvLm9mZnNldFRvcCAr
IHZpZGVvLm9mZnNldEhlaWdodCAvIDI7Ci0gICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oeCwgeSk7Ci0gICAgICAgICAgICAgICAgaXRlbXMgPSBldmVudFNlbmRlci5jb250
ZXh0Q2xpY2soKTsKLQorICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOwogCi0gICAgICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykKLSAgICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChpdGVtc1tpXS50aXRsZS5tYXRjaCgi
Q29udHJvbHMiKSkgewotICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVv
LmNvbnRyb2xzIiwgdHJ1ZSwgJz09Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVX
cml0ZSgiVG9nZ2xpbmcgbWVkaWEgY29udHJvbHMiKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
aXRlbXNbaV0uY2xpY2soKTsKLSAgICAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2
aWRlby5jb250cm9scyIsIGZhbHNlLCAnPT0nKTsKLSAgICAgICAgICAgICAgICAgICAgICAgY29u
c29sZVdyaXRlKCIiKTsKLSAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgdmFyIHgs
IHksIGl0ZW1zOworICAgICAgICAgICAgeCA9IHZpZGVvLm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0
ICsgdmlkZW8ub2Zmc2V0TGVmdCArIHZpZGVvLm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgICAg
IHkgPSB2aWRlby5vZmZzZXRQYXJlbnQub2Zmc2V0VG9wICsgdmlkZW8ub2Zmc2V0VG9wICsgdmlk
ZW8ub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KHgsIHkpOworICAgICAgICAgICAgaXRlbXMgPSBldmVudFNlbmRlci5jb250ZXh0Q2xpY2soKTsK
IAotICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbXNbaV0udGl0bGUubWF0Y2goIlBhdXNlIikp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5wYXVzZWQiLCBm
YWxzZSwgJz09Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVG9nZ2xp
bmcgcGxheSBzdGF0ZSIpOwotICAgICAgICAgICAgICAgICAgICAgICBpdGVtc1tpXS5jbGljaygp
OwotICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnBhdXNlZCIsIHRy
dWUsICc9PScpOwotICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOwotICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1z
Lmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmIChpdGVtc1tp
XS50aXRsZS5tYXRjaCgiQ29udHJvbHMiKSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RXhw
ZWN0ZWQoInZpZGVvLmNvbnRyb2xzIiwgdHJ1ZSwgJz09Jyk7CisgICAgICAgICAgICAgICAgICAg
IGNvbnNvbGVXcml0ZSgiVG9nZ2xpbmcgbWVkaWEgY29udHJvbHMiKTsKKyAgICAgICAgICAgICAg
ICAgICAgaXRlbXNbaV0uY2xpY2soKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVk
KCJ2aWRlby5jb250cm9scyIsIGZhbHNlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAgICAgY29u
c29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAg
aWYgKGl0ZW1zW2ldLnRpdGxlLm1hdGNoKCJMb29wIikpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5sb29wIiwgZmFsc2UsICc9PScpOwotICAgICAgICAgICAg
ICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRvZ2dsaW5nIGxvb3Agc3RhdGUiKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgaXRlbXNbaV0uY2xpY2soKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
dGVzdEV4cGVjdGVkKCJ2aWRlby5sb29wIiwgdHJ1ZSwgJz09Jyk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgIGNvbnNvbGVXcml0ZSgiIik7Ci0gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBpZiAoaXRlbXNbaV0udGl0bGUubWF0Y2goIlBhdXNlIikpIHsKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5wYXVzZWQiLCBmYWxzZSwgJz09Jyk7CisgICAg
ICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVG9nZ2xpbmcgcGxheSBzdGF0ZSIpOworICAg
ICAgICAgICAgICAgICAgICBpdGVtc1tpXS5jbGljaygpOworICAgICAgICAgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoInZpZGVvLnBhdXNlZCIsIHRydWUsICc9PScpOworICAgICAgICAgICAgICAg
ICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAg
ICAgICAgICBpZiAoaXRlbXNbaV0udGl0bGUubWF0Y2goIk11dGUiKSkgewotICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLm11dGVkIiwgZmFsc2UsICc9PScpOwotICAg
ICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRvZ2dsaW5nIG11dGUgc3RhdGUiKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNbaV0uY2xpY2soKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5tdXRlZCIsIHRydWUsICc9PScpOwotICAgICAg
ICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOwotICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLnRpdGxlLm1hdGNoKCJMb29wIikpIHsKKyAg
ICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5sb29wIiwgZmFsc2UsICc9PScp
OworICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRvZ2dsaW5nIGxvb3Agc3RhdGUi
KTsKKyAgICAgICAgICAgICAgICAgICAgaXRlbXNbaV0uY2xpY2soKTsKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5sb29wIiwgdHJ1ZSwgJz09Jyk7CisgICAgICAgICAg
ICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAgICAgICAgfQogCi0gICAgICAg
ICAgICAgICAgICAgIGlmIChpdGVtc1tpXS50aXRsZS5tYXRjaCgiRnVsbHNjcmVlbiIpICYmIHZp
ZGVvLndlYmtpdFN1cHBvcnRzRnVsbHNjcmVlbikgewotICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIiwgZmFsc2UsICc9
PScpOwotICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRvZ2dsaW5nIGZ1bGxz
Y3JlZW4gc3RhdGUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNbaV0uY2xpY2soKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgidmlk
ZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4iLCB0cnVlLCAiPT0iLCAxMDAwKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKLSAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIGlmIChpdGVtc1tpXS50aXRsZS5tYXRjaCgiTXV0ZSIpKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ubXV0ZWQiLCBmYWxzZSwgJz09
Jyk7CisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVG9nZ2xpbmcgbXV0ZSBzdGF0
ZSIpOworICAgICAgICAgICAgICAgICAgICBpdGVtc1tpXS5jbGljaygpOworICAgICAgICAgICAg
ICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLm11dGVkIiwgdHJ1ZSwgJz09Jyk7CisgICAgICAg
ICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAgICAgICAgfQogCi0gICAg
ICAgICAgICAgICAgICAgIC8vIFRPRE86IHRlc3QgY29weSBsaW5rIGxvY2F0aW9uIGFuZCBvcGVu
IGluIG5ldyB3aW5kb3cuCi0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKLSAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaXRlbXNbaV0udGl0bGUubWF0Y2goIkZ1bGxz
Y3JlZW4iKSAmJiB2aWRlby53ZWJraXRTdXBwb3J0c0Z1bGxzY3JlZW4pIHsKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiIs
IGZhbHNlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUb2dnbGlu
ZyBmdWxsc2NyZWVuIHN0YXRlIik7CisgICAgICAgICAgICAgICAgICAgIGl0ZW1zW2ldLmNsaWNr
KCk7CisgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoImlu
dGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykiLCBmYWxzZSwgJz09Jywg
MTAwMCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ud2Via2l0RGlz
cGxheWluZ0Z1bGxzY3JlZW4iLCB0cnVlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAgICAgY29u
c29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGFzeW5jIGZ1
bmN0aW9uIHN0YXJ0KCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBmaW5kTWVkaWFF
bGVtZW50KCk7Ci0gICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdwbGF5JywgcGxheWluZyk7
Ci0gICAgICAgICAgICAgICAgcnVuKCJ2aWRlby5zcmMgPSAnIiArIGZpbmRNZWRpYUZpbGUoInZp
ZGVvIiwgImNvbnRlbnQvdGVzdCIpICsgIiciKTsKKyAgICAgICAgICAgICAgICAvLyBUT0RPOiB0
ZXN0IGNvcHkgbGluayBsb2NhdGlvbiBhbmQgb3BlbiBpbiBuZXcgd2luZG93LgogICAgICAgICAg
ICAgfQorICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICBl
bmRUZXN0KCk7CisgICAgICAgIH0KIAotICAgICAgIDwvc2NyaXB0PgorICAgICAgICBhc3luYyBm
dW5jdGlvbiBzdGFydCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQo
KTsKKyAgICAgICAgICAgIHdhaXRGb3JFdmVudCgncGxheScsIHBsYXlpbmcpOworICAgICAgICAg
ICAgcnVuKCJ2aWRlby5zcmMgPSAnIiArIGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgImNvbnRlbnQv
dGVzdCIpICsgIiciKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHkg
b25sb2FkPSJzdGFydCgpIj4KICAgICA8cD5UZXN0IHRoZSB2YXJpb3VzIGFjdGlvbnMgYXZhaWxh
YmxlIGluIHRoZSBIVE1MNSBtZWRpYSBlbGVtZW50IGNvbnRleHQtbWVudS48L3A+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLWxvb3AtaW5saW5lLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tbG9vcC1pbmxpbmUt
ZXhwZWN0ZWQudHh0CmluZGV4IDVhMzM3YTNlMjNlNmYxMjZlOTFjNTMwOTk1ZmYxNWQ1YmRkMDFj
MTkuLjg3YzFlZTc1NDIwNjQxMDRjNjAwZTZmYWMzYzhiZTk4Yjk5ZDg4NmEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tbG9vcC1pbmxpbmUtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tbG9vcC1pbmxpbmUt
ZXhwZWN0ZWQudHh0CkBAIC03LDEyICs3LDE0IEBAIEVWRU5UKGNhbnBsYXl0aHJvdWdoKQogUlVO
KHZpZGVvLnBsYXkoKSkKIFdhaXQgdG8gZW50ZXIgZnVsbHNjcmVlbgogRVZFTlQod2Via2l0cHJl
c2VudGF0aW9ubW9kZWNoYW5nZWQpCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVz
ZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtp
dERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICd0cnVlJykgT0sKIEVudGVyZWQgZnVsbHNjcmVlbgog
UlVOKHZpZGVvLmN1cnJlbnRUaW1lID0gNSkKIFJVTih2aWRlby53ZWJraXRFeGl0RnVsbHNjcmVl
bigpKQogV2FpdCB0byBleGl0IGZ1bGxzY3JlZW4KIEVWRU5UKHdlYmtpdHByZXNlbnRhdGlvbm1v
ZGVjaGFuZ2VkKQorRVhQRUNURUQgKGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9k
ZSh2aWRlbykgPT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5n
RnVsbHNjcmVlbiA9PSAnZmFsc2UnKSBPSwogRXhpdGVkIGZ1bGxzY3JlZW4KIEVYUEVDVEVEICh2
aWRlby5wYXVzZWQgPT0gJ2ZhbHNlJykgT0sKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L21lZGlhLWZ1bGxzY3JlZW4tbG9vcC1pbmxpbmUuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21l
ZGlhLWZ1bGxzY3JlZW4tbG9vcC1pbmxpbmUuaHRtbAppbmRleCA0YjhiMTk5MjQ5ZDE5NTBhZDdl
ZTAzNWYyZThmNjc0NWMyZjE5NWQ5Li40ZjUxNmNiOTJkMjY2ZGU0OGNiNDM4MWFkOTZlNzlhMDJk
ZDg1MjMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLWxv
b3AtaW5saW5lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1s
b29wLWlubGluZS5odG1sCkBAIC0zNSw3ICszNSw4IEBACiAKICAgICBhc3luYyBmdW5jdGlvbiBi
ZWdpbmZ1bGxzY3JlZW4oKQogICAgIHsKLSAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1
YWxseSgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCB0cnVlKTsKKyAgICAgICAg
YXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50
YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby53
ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIHRydWUpOwogICAgICAgICBjb25zb2xlV3JpdGUo
IkVudGVyZWQgZnVsbHNjcmVlbiIpOwogICAgICAgICBydW4oJ3ZpZGVvLmN1cnJlbnRUaW1lID0g
NScpOwogICAgICAgICBydW4oJ3ZpZGVvLndlYmtpdEV4aXRGdWxsc2NyZWVuKCknKTsKQEAgLTQ1
LDcgKzQ2LDggQEAKIAogICAgIGFzeW5jIGZ1bmN0aW9uIGVuZGZ1bGxzY3JlZW4oKQogICAgIHsK
LSAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8ud2Via2l0RGlzcGxh
eWluZ0Z1bGxzY3JlZW4nLCBmYWxzZSk7CisgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50
dWFsbHkoImludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykiLCBmYWxz
ZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3Jl
ZW4nLCBmYWxzZSk7CiAgICAgICAgIGNvbnNvbGVXcml0ZSgiRXhpdGVkIGZ1bGxzY3JlZW4iKTsK
ICAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby5wYXVzZWQnLCBmYWxzZSk7CiAgICAgICAgIHJ1
bigndmlkZW8ub250aW1ldXBkYXRlID0gdGltZXVwZGF0ZScpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1wYXVzZS1pbmxpbmUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1wYXVzZS1pbmxpbmUtZXhwZWN0ZWQu
dHh0CmluZGV4IDNhYmM5ZTI5MmE2NDZiYzIwY2NmMzllN2U5MjJjMzI4OWRhNDJlNTUuLjkzYWJm
MWE2ZTZiOTg3OGYxM2ZmNTQ4ODcyMjI0MGJmYTI4ZmMxYmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcGF1c2UtaW5saW5lLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXBhdXNlLWlubGluZS1leHBlY3Rl
ZC50eHQKQEAgLTQsMTUgKzQsMTggQEAgVGVzdCB0aGF0IGEgPHZpZGVvPiBrZWVwcyBwbGF5aW5n
IGFmdGVyIGV4aXRpbmcgZnVsbHNjcmVlbiB3aGVuIHRoZSBpbnRlcm5hbCBwcm8KIFJVTih2aWRl
by5zcmMgPSBmaW5kTWVkaWFGaWxlKCJ2aWRlbyIsICJjb250ZW50L3Rlc3QiKSkKIEVWRU5UKGNh
bnBsYXl0aHJvdWdoKQogUlVOKHZpZGVvLnBsYXkoKS50aGVuKHBsYXlpbmcpOykKK0VYUEVDVEVE
IChpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pID09ICdmYWxzZScp
IE9LCiBFWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ3RydWUn
KSBPSwogUlVOKHZpZGVvLndlYmtpdEV4aXRGdWxsc2NyZWVuKCkpCiBFVkVOVCh3ZWJraXRwcmVz
ZW50YXRpb25tb2RlY2hhbmdlZCkKK0VYUEVDVEVEIChpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNl
bnRhdGlvbk1vZGUodmlkZW8pID09ICdmYWxzZScpIE9LCiBFWFBFQ1RFRCAodmlkZW8ud2Via2l0
RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2aWRlby5wYXVz
ZWQgPT0gJ2ZhbHNlJykgT0sKIFJVTih2aWRlby5wYXVzZSgpKQogRVZFTlQocGF1c2UpCiBFWFBF
Q1RFRCAodmlkZW8ucGF1c2VkID09ICd0cnVlJykgT0sKIFJVTih2aWRlby5wbGF5KCkudGhlbihw
bGF5aW5nQWdhaW4pKQorRVhQRUNURUQgKGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9u
TW9kZSh2aWRlbykgPT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5
aW5nRnVsbHNjcmVlbiA9PSAndHJ1ZScpIE9LCiBFTkQgT0YgVEVTVAogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXBhdXNlLWlubGluZS5odG1sIGIvTGF5
b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1wYXVzZS1pbmxpbmUuaHRtbAppbmRleCA2
ZWExMDNlODY2MGY0NDhiMWJiZjU5N2RjMzliYzczZGQ3NjExNzFlLi5lYTgyNDIzOWRmYjM0NTY1
YjI1NjI1MzBmZDE3NDc3NDc0OWU0NzQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9t
ZWRpYS1mdWxsc2NyZWVuLXBhdXNlLWlubGluZS5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlh
L21lZGlhLWZ1bGxzY3JlZW4tcGF1c2UtaW5saW5lLmh0bWwKQEAgLTMzLDE0ICszMywxNiBAQAog
CiAgICAgYXN5bmMgZnVuY3Rpb24gcGxheWluZygpCiAgICAgewotICAgICAgICBhd2FpdCB0ZXN0
RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIHRy
dWUpOworICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCJpbnRlcm5hbHMuaXND
aGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pIiwgZmFsc2UpOworICAgICAgICB0ZXN0RXhw
ZWN0ZWQoJ3ZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuJywgdHJ1ZSk7CiAgICAgICAg
IHdhaXRGb3JFdmVudE9uY2UoJ3dlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkJywgZW5kZnVs
bHNjcmVlbik7CiAgICAgICAgIHJ1bigndmlkZW8ud2Via2l0RXhpdEZ1bGxzY3JlZW4oKScpOwog
ICAgIH0KIAogICAgIGFzeW5jIGZ1bmN0aW9uIGVuZGZ1bGxzY3JlZW4oKQogICAgIHsKLSAgICAg
ICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1
bGxzY3JlZW4nLCBmYWxzZSk7CisgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHko
ImludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykiLCBmYWxzZSk7Cisg
ICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCBm
YWxzZSk7CiAgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8ucGF1c2VkJywgZmFsc2UpOwogICAg
ICAgICB3YWl0Rm9yRXZlbnRPbmNlKCdwYXVzZScsIHBhdXNlZCk7CiAgICAgICAgIHJ1bigndmlk
ZW8ucGF1c2UoKScpOwpAQCAtNTQsNyArNTYsOCBAQAogCiAgICAgYXN5bmMgZnVuY3Rpb24gcGxh
eWluZ0FnYWluKCkKICAgICB7Ci0gICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHko
J3ZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuJywgdHJ1ZSk7CisgICAgICAgIGF3YWl0
IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoImludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9u
TW9kZSh2aWRlbykiLCBmYWxzZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8ud2Via2l0
RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCB0cnVlKTsKICAgICAgICAgZW5kVGVzdCgpOwogICAgIH0K
ICAgICA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxz
Y3JlZW4tcmV0dXJuLXRvLWlubGluZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
ZWRpYS1mdWxsc2NyZWVuLXJldHVybi10by1pbmxpbmUtZXhwZWN0ZWQudHh0CmluZGV4IGFlODcy
OWNlYjg5MWYyMmUxZWMxMThkMjYwMThlMzhmMjgxN2YwYWYuLjQ0MmQxMzJkMGVkNGVlMDkyYTAx
YTU5MDE1YTMxNDdlOGViZTQxY2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21lZGlh
LWZ1bGxzY3JlZW4tcmV0dXJuLXRvLWlubGluZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1yZXR1cm4tdG8taW5saW5lLWV4cGVjdGVkLnR4dApA
QCAtNSwxNiArNSwyMCBAQCBSVU4odmlkZW8uc3JjID0gZmluZE1lZGlhRmlsZSgidmlkZW8iLCAi
Y29udGVudC90ZXN0IikpCiBFVkVOVChjYW5wbGF5dGhyb3VnaCkKIFJVTih2aWRlby5wbGF5KCkp
CiBFVkVOVCh3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCkKK0VYUEVDVEVEIChpbnRlcm5h
bHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pID09ICdmYWxzZScpIE9LCiBFWFBF
Q1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ3RydWUnKSBPSwogUlVO
KHZpZGVvLndlYmtpdEV4aXRGdWxsc2NyZWVuKCkpCi1FVkVOVChwYXVzZSkKK0VWRU5UKHdlYmtp
dHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkKQorRVhQRUNURUQgKGludGVybmFscy5pc0NoYW5naW5n
UHJlc2VudGF0aW9uTW9kZSh2aWRlbykgPT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2aWRlby53
ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVv
LnBhdXNlZCA9PSAndHJ1ZScpIE9LCiBSVU4odmlkZW8ucGxheSgpKQogRVZFTlQod2Via2l0cHJl
c2VudGF0aW9ubW9kZWNoYW5nZWQpCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVz
ZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtp
dERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICd0cnVlJykgT0sKIFJVTih2aWRlby53ZWJraXRFeGl0
RnVsbHNjcmVlbigpKQogRVZFTlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQpCitFWFBF
Q1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFs
c2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICdm
YWxzZScpIE9LCiBFWFBFQ1RFRCAodmlkZW8ucGF1c2VkID09ICdmYWxzZScpIE9LCiBFTkQgT0Yg
VEVTVApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1yZXR1
cm4tdG8taW5saW5lLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXJl
dHVybi10by1pbmxpbmUuaHRtbAppbmRleCA5MzIyMGVkZWQzZWQ0NjExNjIwOWU4NzQ4ZmY0MjEx
Njc5NTQ3YjU2Li5kOGZlODRkOWEzYmEzNTU3OWJhY2I3MzMzMTQyNjZjMTI3N2JmMGQ0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXJldHVybi10by1pbmxp
bmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXJldHVybi10
by1pbmxpbmUuaHRtbApAQCAtMzQsMTQgKzM0LDE2IEBACiAKICAgICBhc3luYyBmdW5jdGlvbiBi
ZWdpbmZ1bGxzY3JlZW4xKCkKICAgICB7Ci0gICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50
dWFsbHkoJ3ZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuJywgdHJ1ZSk7Ci0gICAgICAg
IHdhaXRGb3JFdmVudE9uY2UoJ3BhdXNlJywgcGF1c2UpOworICAgICAgICBhd2FpdCB0ZXN0RXhw
ZWN0ZWRFdmVudHVhbGx5KCJpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlk
ZW8pIiwgZmFsc2UpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLndlYmtpdERpc3BsYXlp
bmdGdWxsc2NyZWVuJywgdHJ1ZSk7CisgICAgICAgIHdhaXRGb3JFdmVudE9uY2UoJ3dlYmtpdHBy
ZXNlbnRhdGlvbm1vZGVjaGFuZ2VkJywgZW5kZnVsbHNjcmVlbjEpOwogICAgICAgICBydW4oJ3Zp
ZGVvLndlYmtpdEV4aXRGdWxsc2NyZWVuKCknKTsKICAgICB9CiAKLSAgICBhc3luYyBmdW5jdGlv
biBwYXVzZSgpCisgICAgYXN5bmMgZnVuY3Rpb24gZW5kZnVsbHNjcmVlbjEoKQogICAgIHsKLSAg
ICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8ud2Via2l0RGlzcGxheWlu
Z0Z1bGxzY3JlZW4nLCBmYWxzZSk7CisgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFs
bHkoImludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykiLCBmYWxzZSk7
CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4n
LCBmYWxzZSk7CiAgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8ucGF1c2VkJywgdHJ1ZSk7CiAK
ICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93c0lubGluZU1lZGlhUGxheWJhY2tB
ZnRlckZ1bGxzY3JlZW4odHJ1ZSk7CkBAIC01MiwxNCArNTQsMTYgQEAKIAogICAgIGFzeW5jIGZ1
bmN0aW9uIGJlZ2luZnVsbHNjcmVlbjIoKQogICAgIHsKLSAgICAgICAgYXdhaXQgdGVzdEV4cGVj
dGVkRXZlbnR1YWxseSgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCB0cnVlKTsK
LSAgICAgICAgd2FpdEZvckV2ZW50T25jZSgnd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQn
LCBlbmRmdWxsc2NyZWVuKTsKKyAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgi
aW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKKyAg
ICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIHRy
dWUpOworICAgICAgICB3YWl0Rm9yRXZlbnRPbmNlKCd3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hh
bmdlZCcsIGVuZGZ1bGxzY3JlZW4yKTsKICAgICAgICAgcnVuKCd2aWRlby53ZWJraXRFeGl0RnVs
bHNjcmVlbigpJyk7CiAgICAgfQogCi0gICAgYXN5bmMgZnVuY3Rpb24gZW5kZnVsbHNjcmVlbigp
CisgICAgYXN5bmMgZnVuY3Rpb24gZW5kZnVsbHNjcmVlbjIoKQogICAgIHsKLSAgICAgICAgYXdh
aXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3Jl
ZW4nLCBmYWxzZSk7CisgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoImludGVy
bmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykiLCBmYWxzZSk7CisgICAgICAg
IHRlc3RFeHBlY3RlZCgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCBmYWxzZSk7
CiAgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8ucGF1c2VkJywgZmFsc2UpOwogICAgICAgICBl
bmRUZXN0KCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvcHJlc2VudGF0
aW9ubW9kZWNoYW5nZWQtZmlyZWQtb25jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRp
YS9wcmVzZW50YXRpb25tb2RlY2hhbmdlZC1maXJlZC1vbmNlLWV4cGVjdGVkLnR4dAppbmRleCBh
MThlOGJiODZlZTM3YzIzOWI4NzY5MmQxODAxYTg1ZDJiMGUyZDljLi5kZTRjYTViY2E0NjI5Yjhl
ODM5OGEyZjU5ZWNkM2IwYzRjMzQ4MjliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9w
cmVzZW50YXRpb25tb2RlY2hhbmdlZC1maXJlZC1vbmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9tZWRpYS9wcmVzZW50YXRpb25tb2RlY2hhbmdlZC1maXJlZC1vbmNlLWV4cGVjdGVk
LnR4dApAQCAtNSw3ICs1LDcgQEAgRVZFTlQoY2FucGxheXRocm91Z2gpCiBSVU4odmlkZW8ucGxh
eSgpKQogUlVOKHZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoInBpY3R1cmUtaW4tcGlj
dHVyZSIpKQogRVZFTlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQpCi1FWFBFQ1RFRCAo
dmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ3RydWUnKSBPSworRVhQRUNURUQg
KGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykgPT0gJ2ZhbHNlJykg
T0sKIEVYUEVDVEVEICh2aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlID09ICdwaWN0dXJlLWlu
LXBpY3R1cmUnKSBPSwogUlVOKHZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoImlubGlu
ZSIpKQogRVZFTlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS9wcmVzZW50YXRpb25tb2RlY2hhbmdlZC1maXJlZC1vbmNlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9wcmVzZW50YXRpb25tb2RlY2hhbmdlZC1maXJlZC1vbmNlLmh0
bWwKaW5kZXggNTM4YmQxMjdiYzkxYTk5OTBhNTA3YzkyNGYzY2JiNTQzMWFhNDdkNC4uYzJiNWQ2
YzFjNjM1OThkNDFjNGQ5YTVjYWEwMjdiNDE1NDgxMzM1NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvbWVkaWEvcHJlc2VudGF0aW9ubW9kZWNoYW5nZWQtZmlyZWQtb25jZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL21lZGlhL3ByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkLWZpcmVkLW9uY2UuaHRtbApA
QCAtMjcsNyArMjcsNyBAQAogCiAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHByZXNlbnRhdGlvbk1v
ZGVDaGFuZ2VkMSgpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2
ZW50dWFsbHkoJ3ZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuJywgdHJ1ZSk7CisgICAg
ICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCJpbnRlcm5hbHMuaXNDaGFuZ2lu
Z1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pIiwgZmFsc2UpOwogICAgICAgICAgICAgdGVzdEV4cGVj
dGVkKCJ2aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlIiwgInBpY3R1cmUtaW4tcGljdHVyZSIp
OwogICAgICAgICAgICAgcnVuV2l0aEtleURvd24oJ3ZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlv
bk1vZGUoImlubGluZSIpJyk7CiAgICAgICAgICAgICB3YWl0Rm9yRXZlbnQoIndlYmtpdHByZXNl
bnRhdGlvbm1vZGVjaGFuZ2VkIiwgcHJlc2VudGF0aW9uTW9kZUNoYW5nZWQyKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWZ1bGxzY3JlZW4tb25seS1wbGF5YmFjay1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1mdWxsc2NyZWVuLW9ubHktcGxheWJh
Y2stZXhwZWN0ZWQudHh0CmluZGV4IGMxNzJiNTJlZjQ2NDQzM2QyOTg4ZTk2MzY5OTM3MTFmMWM4
MzMzMGUuLjMzNWM1YjJlMDZlZTI1YzFkOWY1OWRmYjk5NDA5OTRjODMxMzM4ZDQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWZ1bGxzY3JlZW4tb25seS1wbGF5YmFjay1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tZnVsbHNjcmVlbi1vbmx5LXBs
YXliYWNrLWV4cGVjdGVkLnR4dApAQCAtNywxMyArNywxNiBAQCBFWFBFQ1RFRCAodmlkZW8ud2Vi
a2l0U3VwcG9ydHNGdWxsc2NyZWVuID09ICd0cnVlJykgT0sKIEVYUEVDVEVEICh2aWRlby53ZWJr
aXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAnZmFsc2UnKSBPSwogUlVOKHZpZGVvLnBsYXkoKSkK
IEVWRU5UKHBsYXlpbmcpCi1FWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3Jl
ZW4gPT0gJ3RydWUnKSBPSwogCi0qKiBFbnRlcmVkIGZ1bGxzY3JlZW4KKyoqIFN0YXJ0ZWQgcGxh
eWluZworRVhQRUNURUQgKGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRl
bykgPT0gJ2ZhbHNlJykgT0sKK0VYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNj
cmVlbiA9PSAndHJ1ZScpIE9LCiBSVU4odmlkZW8ud2Via2l0RXhpdEZ1bGxTY3JlZW4oKSkKIEVW
RU5UKHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkKQotRVhQRUNURUQgKHZpZGVvLndlYmtp
dERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICdmYWxzZScpIE9LCiAKLSoqIEV4aXRlZCBmdWxsc2Ny
ZWVuCisqKiBSZWNlaXZlZCB3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCBldmVudAorRVhQ
RUNURUQgKGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykgPT0gJ2Zh
bHNlJykgT0sKK0V4aXRlZCBmdWxsc2NyZWVuCitFWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxh
eWluZ0Z1bGxzY3JlZW4gPT0gJ2ZhbHNlJykgT0sKIEVORCBPRiBURVNUCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWZ1bGxzY3JlZW4tb25seS1wbGF5YmFjay5odG1sIGIv
TGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tZnVsbHNjcmVlbi1vbmx5LXBsYXliYWNrLmh0bWwKaW5k
ZXggYzNhY2EzYTA0NmM0ZWJiYzM1N2M5YmY1ODhmNDdmN2ZlZDRiNmQ3MS4uNDc4ODlhNjEzMzVi
MjQxN2Y1OWY2N2JlMDI0Y2VmNDRkZjJjOTNjMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVk
aWEvdmlkZW8tZnVsbHNjcmVlbi1vbmx5LXBsYXliYWNrLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
bWVkaWEvdmlkZW8tZnVsbHNjcmVlbi1vbmx5LXBsYXliYWNrLmh0bWwKQEAgLTQwLDE2ICs0MCwx
OSBAQAogCiAgICAgICAgICAgICBhc3luYyBmdW5jdGlvbiBwbGF5aW5nKCkKICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCJ2aWRlby53
ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiIsIHRydWUpOwotICAgICAgICAgICAgICAgIGNvbnNv
bGVXcml0ZSgiPGJyPioqIEVudGVyZWQgZnVsbHNjcmVlbiIpOworICAgICAgICAgICAgICAgIGNv
bnNvbGVXcml0ZSgiPGJyPioqIFN0YXJ0ZWQgcGxheWluZyIpOworICAgICAgICAgICAgICAgIGF3
YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoImludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0
aW9uTW9kZSh2aWRlbykiLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2
aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiIsIHRydWUpOwogICAgICAgICAgICAgICAg
IHdhaXRGb3JFdmVudE9uY2UoJ3dlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkJywgZW5kZnVs
bHNjcmVlbik7CiAgICAgICAgICAgICAgICAgcnVuKCJ2aWRlby53ZWJraXRFeGl0RnVsbFNjcmVl
bigpIik7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIGVuZGZ1
bGxzY3JlZW4oKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBl
Y3RlZEV2ZW50dWFsbHkoInZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIiwgZmFsc2Up
OwotICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIEV4aXRlZCBmdWxsc2NyZWVu
Iik7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogUmVjZWl2ZWQgd2Via2l0
cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQgZXZlbnQiKTsKKyAgICAgICAgICAgICAgICBhd2FpdCB0
ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCJpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1v
ZGUodmlkZW8pIiwgZmFsc2UpOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiRXhpdGVk
IGZ1bGxzY3JlZW4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtp
dERpc3BsYXlpbmdGdWxsc2NyZWVuIiwgZmFsc2UpOwogICAgICAgICAgICAgICAgIGVuZFRlc3Qo
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tZWRpYS92aWRlby1wbGF5c2lubGluZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9t
ZWRpYS92aWRlby1wbGF5c2lubGluZS1leHBlY3RlZC50eHQKaW5kZXggMDQxNDU3M2YwYzQ2Y2Q3
M2ZjZTI0NDhlZDY5YzlmZjhkNTE4ZmNhYS4uNWVkY2FkMTdjNjhkMzI4YTQ0YzQ3MTExYjhkMDI4
OWI5YTliOTFjMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcGxheXNpbmxp
bmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXBsYXlzaW5saW5l
LWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDcgQEAgUlVOKHZpZGVvLnBsYXlzSW5saW5lID0gZmFs
c2UpCiBFVkVOVChjYW5wbGF5dGhyb3VnaCkKIFJVTih2aWRlby5wbGF5KCkpCiBFVkVOVChwbGF5
aW5nKQorRVhQRUNURUQgKGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRl
bykgPT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNj
cmVlbiA9PSAndHJ1ZScpIE9LCiBSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldElubGluZU1lZGlh
UGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlKHRydWUpKQogUlVOKHZpZGVvLnBs
YXlzSW5saW5lID0gdHJ1ZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXBs
YXlzaW5saW5lLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1wbGF5c2lubGluZS5odG1s
CmluZGV4IGZhNmE3MzEyNDRkOTcwYjNjOTJkZGE1YjYwYjhkNzI5MjQ5ZjUxZGIuLmQwOWQ0Y2M1
ZDQyMmM5YjgyNjljYWQ0YzYyNjNkNDJmYzIyZDE5YmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L21lZGlhL3ZpZGVvLXBsYXlzaW5saW5lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlk
ZW8tcGxheXNpbmxpbmUuaHRtbApAQCAtMzAsNyArMzAsMTAgQEAgZnVuY3Rpb24gdGVzdFBsYXlz
SW5saW5lKHJlcXVpcmVzUGxheXNJbmxpbmUsIGhhc1BsYXlzSW5saW5lLCBleHBlY3RlZERpc3Bs
YXlpbmcKICAgICAgICAgICAgIHJ1bigndmlkZW8ucGxheSgpJyk7CiAgICAgICAgIH0pOwogICAg
IH0pCi0gICAgd2FpdEZvckV2ZW50T25jZSgncGxheWluZycsICgpID0+IHsKKyAgICB3YWl0Rm9y
RXZlbnRPbmNlKCdwbGF5aW5nJywgYXN5bmMgKCkgPT4geworICAgICAgICBpZiAoZXhwZWN0ZWRE
aXNwbGF5aW5nRnVsbHNjcmVlbikKKyAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50
dWFsbHkoJ2ludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbyknLCBmYWxz
ZSk7CisKICAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNj
cmVlbicsIGV4cGVjdGVkRGlzcGxheWluZ0Z1bGxzY3JlZW4pOwogICAgICAgICBkb2N1bWVudC5i
b2R5LnJlbW92ZUNoaWxkKHZpZGVvKTsKICAgICAgICAgcnVuTmV4dFRlc3QoKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLWV4cGVjdGVkLnR4
dAppbmRleCAxZDdkYjAyODI0OTlkMzkzMDlhZmEyMGQ5ZWM3NWQxYzhhMjUxMzU5Li5hYmE5ZjQ1
MzYwMGFlNzhlZmE1Y2JlZmM5NTlkODZhMjMyOTc2ZDdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9tZWRpYS92aWRlby1wcmVzZW50YXRpb24tbW9kZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUtZXhwZWN0ZWQudHh0CkBAIC00LDMw
ICs0LDMwIEBAIFRlc3QgdGhlIHZpZGVvIHByZXNlbnRhdGlvbiBtb2RlICh2aWRlbyBmdWxsc2Ny
ZWVuIGFuZCBwaWN0dXJlLWluLXBpY3R1cmUpIEFQSS4KIAogRVZFTlQoY2FucGxheXRocm91Z2gp
CiBFWFBFQ1RFRCAodmlkZW8ud2Via2l0U3VwcG9ydHNGdWxsc2NyZWVuID09ICd0cnVlJykgT0sK
LUVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAnZmFsc2UnKSBP
SworRVhQRUNURUQgKHZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUgPT0gJ2lubGluZScpIE9L
CiAKICoqIFRyeSB0byBlbnRlciBmdWxsc2NyZWVuCiBSVU4odmlkZW8ud2Via2l0U2V0UHJlc2Vu
dGF0aW9uTW9kZSgnZnVsbHNjcmVlbicpKQogRVZFTlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNo
YW5nZWQpCi1FWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ3Ry
dWUnKSBPSwogCi0qKiBFbnRlcmVkIGZ1bGxzY3JlZW4KKyoqIFJlY2VpdmVkIHdlYmtpdHByZXNl
bnRhdGlvbm1vZGVjaGFuZ2VkIGV2ZW50CitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQ
cmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndl
YmtpdFByZXNlbnRhdGlvbk1vZGUgPT0gJ2Z1bGxzY3JlZW4nKSBPSwogCiAqKiBUcnkgdG8gZW50
ZXIgcGljdHVyZS1pbi1waWN0dXJlCiBSVU4odmlkZW8ud2Via2l0U2V0UHJlc2VudGF0aW9uTW9k
ZSgncGljdHVyZS1pbi1waWN0dXJlJykpCiBFVkVOVCh3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hh
bmdlZCkKLUVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAndHJ1
ZScpIE9LCiAKLSoqIEVudGVyZWQgcGljdHVyZS1pbi1waWN0dXJlCisqKiBSZWNlaXZlZCB3ZWJr
aXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCBldmVudAorRVhQRUNURUQgKGludGVybmFscy5pc0No
YW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykgPT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2
aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlID09ICdwaWN0dXJlLWluLXBpY3R1cmUnKSBPSwog
CiAqKiBUcnkgdG8gcmV0dXJuIHRvIGlubGluZQogUlVOKHZpZGVvLndlYmtpdFNldFByZXNlbnRh
dGlvbk1vZGUoJ2lubGluZScpKQogRVZFTlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQp
Ci1FWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ2ZhbHNlJykg
T0sKIAotKiogUmV0dXJuZWQgdG8gaW5saW5lCisqKiBSZWNlaXZlZCB3ZWJraXRwcmVzZW50YXRp
b25tb2RlY2hhbmdlZCBldmVudAorRVhQRUNURUQgKGludGVybmFscy5pc0NoYW5naW5nUHJlc2Vu
dGF0aW9uTW9kZSh2aWRlbykgPT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2aWRlby53ZWJraXRQ
cmVzZW50YXRpb25Nb2RlID09ICdpbmxpbmUnKSBPSwogCiAqKiBUZXN0IENvbXBsZXRlZApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUuaHRtbCBi
L0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLmh0bWwKaW5kZXggMzA1
NmQxNWUxYTljMmQxY2FmY2IxZTBlMjhjZmE0YjdiOTc3NjRkOC4uZjEwNWM4NTUwYzkwNTI5Nzg0
MjBkNGY1NTIyMzQ3ZjJhNjRhYmYxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlk
ZW8tcHJlc2VudGF0aW9uLW1vZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1w
cmVzZW50YXRpb24tbW9kZS5odG1sCkBAIC0yMSw3ICsyMSw3IEBACiAgICAgICAgICAgICBhc3lu
YyBmdW5jdGlvbiBjYW5wbGF5dGhyb3VnaCgpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgdGVzdEV4cGVjdGVkKCJ2aWRlby53ZWJraXRTdXBwb3J0c0Z1bGxzY3JlZW4iLCB0cnVlKTsK
LSAgICAgICAgICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby53ZWJr
aXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhw
ZWN0ZWQoInZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUiLCAiaW5saW5lIik7CiAKICAgICAg
ICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4qKiBUcnkgdG8gZW50ZXIgZnVsbHNjcmVlbiIp
OwogICAgICAgICAgICAgICAgIHJ1bldpdGhLZXlEb3duKCJ2aWRlby53ZWJraXRTZXRQcmVzZW50
YXRpb25Nb2RlKCdmdWxsc2NyZWVuJykiKTsKQEAgLTMwLDggKzMwLDggQEAKIAogICAgICAgICAg
ICAgYXN5bmMgZnVuY3Rpb24gcHJlc2VudGF0aW9uTW9kZUNoYW5nZWQxKCkKICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby53
ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIHRydWUpOwotICAgICAgICAgICAgICAgIGNvbnNv
bGVXcml0ZSgiPGJyPioqIEVudGVyZWQgZnVsbHNjcmVlbiIpOworICAgICAgICAgICAgICAgIGNv
bnNvbGVXcml0ZSgiPGJyPioqIFJlY2VpdmVkIHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2Vk
IGV2ZW50Iik7CisgICAgICAgICAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgi
aW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKICAg
ICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUi
LCAiZnVsbHNjcmVlbiIpOwogICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIFRy
eSB0byBlbnRlciBwaWN0dXJlLWluLXBpY3R1cmUiKTsKICAgICAgICAgICAgICAgICB3YWl0Rm9y
RXZlbnRPbmNlKCd3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCcsIHByZXNlbnRhdGlvbk1v
ZGVDaGFuZ2VkMik7CkBAIC00MCw4ICs0MCw4IEBACiAKICAgICAgICAgICAgIGFzeW5jIGZ1bmN0
aW9uIHByZXNlbnRhdGlvbk1vZGVDaGFuZ2VkMigpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8ud2Via2l0RGlzcGxheWlu
Z0Z1bGxzY3JlZW4nLCB0cnVlKTsKLSAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4q
KiBFbnRlcmVkIHBpY3R1cmUtaW4tcGljdHVyZSIpOworICAgICAgICAgICAgICAgIGNvbnNvbGVX
cml0ZSgiPGJyPioqIFJlY2VpdmVkIHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIGV2ZW50
Iik7CisgICAgICAgICAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJu
YWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKICAgICAgICAg
ICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUiLCAicGlj
dHVyZS1pbi1waWN0dXJlIik7CiAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+Kiog
VHJ5IHRvIHJldHVybiB0byBpbmxpbmUiKTsKICAgICAgICAgICAgICAgICB3YWl0Rm9yRXZlbnRP
bmNlKCd3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCcsIHRlc3RDb21wbGV0ZWQpOwpAQCAt
NTAsOCArNTAsOCBAQAogCiAgICAgICAgICAgICBhc3luYyBmdW5jdGlvbiB0ZXN0Q29tcGxldGVk
KCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVu
dHVhbGx5KCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIGZhbHNlKTsKLSAgICAg
ICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4qKiBSZXR1cm5lZCB0byBpbmxpbmUiKTsKKyAg
ICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4qKiBSZWNlaXZlZCB3ZWJraXRwcmVzZW50
YXRpb25tb2RlY2hhbmdlZCBldmVudCIpOworICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBl
Y3RlZEV2ZW50dWFsbHkoImludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRl
bykiLCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby53ZWJraXRQ
cmVzZW50YXRpb25Nb2RlIiwgImlubGluZSIpOwogICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0
ZSgiPGJyPioqIFRlc3QgQ29tcGxldGVkIik7CiAgICAgICAgICAgICAgICAgZW5kVGVzdCgpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8td2Via2l0LXBsYXlzaW5saW5lLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXdlYmtpdC1wbGF5c2lubGluZS1l
eHBlY3RlZC50eHQKaW5kZXggOTY3NDg5NTZlOGIzNjg0YmZkYmQ1OGJiYTYzNWU3YzY5YzE3OTY4
NC4uMDkzOTdlOTJmYjhjOTZlMmM0ODY3NTNhMDgyNWRhMTYzOWU3MTVkNSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8td2Via2l0LXBsYXlzaW5saW5lLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby13ZWJraXQtcGxheXNpbmxpbmUtZXhwZWN0ZWQu
dHh0CkBAIC0zLDEyICszLDE0IEBAIFJVTih2aWRlby5yZW1vdmVBdHRyaWJ1dGUoIndlYmtpdC1w
bGF5c2lubGluZSIsICIiKSkKIEVWRU5UKGNhbnBsYXl0aHJvdWdoKQogUlVOKHZpZGVvLnBsYXko
KSkKIEVWRU5UKHBsYXlpbmcpCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50
YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdERp
c3BsYXlpbmdGdWxsc2NyZWVuID09ICd0cnVlJykgT0sKIFJVTihpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0SW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUodHJ1ZSkp
CiBSVU4odmlkZW8uc2V0QXR0cmlidXRlKCJ3ZWJraXQtcGxheXNpbmxpbmUiLCAiIikpCiBFVkVO
VChjYW5wbGF5dGhyb3VnaCkKIFJVTih2aWRlby5wbGF5KCkpCiBFVkVOVChwbGF5aW5nKQorRVhQ
RUNURUQgKGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykgPT0gJ2Zh
bHNlJykgT0sKIEVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAn
dHJ1ZScpIE9LCiBSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldElubGluZU1lZGlhUGxheWJhY2tS
ZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlKGZhbHNlKSkKIFJVTih2aWRlby5yZW1vdmVBdHRy
aWJ1dGUoIndlYmtpdC1wbGF5c2lubGluZSIsICIiKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21lZGlhL3ZpZGVvLXdlYmtpdC1wbGF5c2lubGluZS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEv
dmlkZW8td2Via2l0LXBsYXlzaW5saW5lLmh0bWwKaW5kZXggN2VkOTVmNDg4MDVmZDMwNmNlNjI4
MjIyYTVhYjQ0YjZmMWJhY2EzNS4uYWI3MzBiMDMyYjQ4ZmU5ZjU5YmY2MzI3MWMzZGI0MzIzYzMy
NDllZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8td2Via2l0LXBsYXlzaW5s
aW5lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8td2Via2l0LXBsYXlzaW5saW5l
Lmh0bWwKQEAgLTMwLDcgKzMwLDEwIEBAIGZ1bmN0aW9uIHRlc3RQbGF5c0lubGluZShyZXF1aXJl
c1BsYXlzSW5saW5lLCBoYXNXZWJraXRQbGF5c0lubGluZSwgZXhwZWN0ZWREaXNwCiAgICAgICAg
ICAgICBydW4oJ3ZpZGVvLnBsYXkoKScpOwogICAgICAgICB9KTsKICAgICB9KQotICAgIHdhaXRG
b3JFdmVudE9uY2UoJ3BsYXlpbmcnLCAoKSA9PiB7CisgICAgd2FpdEZvckV2ZW50T25jZSgncGxh
eWluZycsIGFzeW5jICgpID0+IHsKKyAgICAgICAgaWYgKGV4cGVjdGVkRGlzcGxheWluZ0Z1bGxz
Y3JlZW4pCisgICAgICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCdpbnRlcm5h
bHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pJywgZmFsc2UpOworCiAgICAgICAg
IHRlc3RFeHBlY3RlZCgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCBleHBlY3Rl
ZERpc3BsYXlpbmdGdWxsc2NyZWVuKTsKICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGls
ZCh2aWRlbyk7CiAgICAgICAgIHJ1bk5leHRUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDI2Njg2YzcxY2YzOTUxZTA0YmM5MWY4MzQ4NzQ3YWM4
ZWFiODI3MGYuLmVlZTM1NTQ1MzNlNzA2YTJjZDk5YjMwYTU5OGYyYTc5Mjg4ZDA5ZDEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNDYwLDggKzE0NjAs
NiBAQCB3ZWJraXQub3JnL2IvMTgzNDkwIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRp
YS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZQogd2Via2l0Lm9yZy9iLzE4MzQ5MCBtZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWZ1
bGxzY3JlZW4tY2hhbmdlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xODM0OTAgbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJvbGxl
ci1pbmxpbmUtdG8tZnVsbHNjcmVlbi10by1pbmxpbmUuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0
Lm9yZy9iLzE4MzQ5MCBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvc3RhcnQtc3VwcG9ydC9z
dGFydC1zdXBwb3J0LWZ1bGxzY3JlZW4uaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE4
MzQ5MCBtZWRpYS92aWRlby1wbGF5c2lubGluZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3Jn
L2IvMTgzNDkwIG1lZGlhL3ZpZGVvLXdlYmtpdC1wbGF5c2lubGluZS5odG1sIFsgRmFpbHVyZSBd
CiAKIHdlYmtpdC5vcmcvYi8xODM3NjQgZmFzdC9jc3MvYXBwbGUtc3lzdGVtLWNvbnRyb2wtY29s
b3JzLmh0bWwgWyBQYXNzIF0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408935</attachid>
            <date>2020-09-16 10:46:42 -0700</date>
            <delta_ts>2020-09-17 17:38:54 -0700</delta_ts>
            <desc>WIP patch v1</desc>
            <filename>bug-216426-20200916104641.patch</filename>
            <type>text/plain</type>
            <size>52141</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGJhZWI5MzNhYjc5Zjk5
Mzg3ZDI2ZmZjMzg1MGYyOTU1OGY1ODFmMi4uMDJjZjk0YmUxODYxYzE3ZjkyZTAzOGYzNDczNjJi
ZWY3YmRmYjEyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIwLTA5LTE2ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgTGV0IHdlYmtpdERpc3BsYXlp
bmdGdWxsc2NyZWVuKCkgcmV0dXJuIHRydWUgd2hlbiBhIHZpZGVvIGVsZW1lbnTigJlzIGZ1bGxz
Y3JlZW4gbW9kZSBpcyBub3QgVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjQyNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVz
dHMuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZGlzcGF0Y2hFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50Ojppc0Z1bGxzY3JlZW4gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6ZW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OmV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6OmRpZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmRpZFN0b3BCZWluZ0Z1bGxzY3JlZW5FbGVtZW50KToK
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6OnNldENoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojppc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9k
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp3YWl0aW5nVG9F
bnRlckZ1bGxzY3JlZW4pOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Ojp3ZWJraXREaXNwbGF5
aW5nRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50OjpzZXRQ
cmVzZW50YXRpb25Nb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ6OmRp
ZEVudGVyRnVsbHNjcmVlbk9yUGljdHVyZUluUGljdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MVmlkZW9FbGVtZW50OjpkaWRFeGl0RnVsbHNjcmVlbk9yUGljdHVyZUluUGljdHVyZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Ojppc0NoYW5naW5nUHJlc2VudGF0aW9u
TW9kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50OjpkaWRCZWNv
bWVGdWxsc2NyZWVuRWxlbWVudCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1MVmlkZW9F
bGVtZW50Lmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjppc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSBjb25zdCk6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5p
ZGw6CisKIDIwMjAtMDktMTQgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBVbnJldmlld2VkIGRlYnVnIGJ1aWxkIGZpeCBhZnRl
ciByMjY3MDczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBh
NGYzNjc5OGU1NGFmNGZkMzk0ZjQyM2M2ZmIwYTZmYTA4Njk2YjIxLi42NTFlMGRmZjQ5NTBmYWI3
ZTk2NTEyMDUzYTQxOWUwM2NhMjFjNjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKQEAgLTU3NzksOCArNTc3OSw4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
ZGlzcGF0Y2hFdmVudChFdmVudCYgZXZlbnQpCiAgICAgLy8gV2UgbmVlZCB0byBmaXJlIHRoZSBl
bmQgZnVsbHNjcmVlbiBldmVudCB0byBub3RpZnkgdGhlIHBhZ2UKICAgICAvLyB0byBjaGFuZ2Ug
dGhlIHBvc2l0aW9uL3NpemUgYmFjayAqYmVmb3JlKiBleGl0aW5nIGZ1bGxzY3JlZW4uCiAgICAg
Ly8gT3RoZXJ3aXNlLCB0aGUgZXhpdCBmdWxsc2NyZWVuIGFuaW1hdGlvbiB3aWxsIGJlIGluY29y
cmVjdC4KLSAgICBpZiAoIW1fdmlkZW9GdWxsc2NyZWVuU3RhbmRieSAmJiAhbV93YWl0aW5nVG9F
bnRlckZ1bGxzY3JlZW4gJiYgZXZlbnQudHlwZSgpID09IGV2ZW50TmFtZXMoKS53ZWJraXRlbmRm
dWxsc2NyZWVuRXZlbnQpIHsKLSAgICAgICAgc2V0RnVsbHNjcmVlbk1vZGUoVmlkZW9GdWxsc2Ny
ZWVuTW9kZU5vbmUpOworICAgIGlmICghbV92aWRlb0Z1bGxzY3JlZW5TdGFuZGJ5ICYmIG1fdmlk
ZW9GdWxsc2NyZWVuTW9kZSA9PSBWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSAmJiBldmVudC50eXBl
KCkgPT0gZXZlbnROYW1lcygpLndlYmtpdGVuZGZ1bGxzY3JlZW5FdmVudCkgeworICAgICAgICBt
X2NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IHRydWU7CiAgICAgICAgIGRvY3VtZW50KCku
cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5leGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVt
ZW50KGRvd25jYXN0PEhUTUxWaWRlb0VsZW1lbnQ+KCp0aGlzKSk7CiAgICAgfQogfQpAQCAtNTkx
MSwxNSArNTkxMSwxMiBAQCBkb3VibGUgSFRNTE1lZGlhRWxlbWVudDo6bWF4RmFzdEZvcndhcmRS
YXRlKCkgY29uc3QKIAogYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojppc0Z1bGxzY3JlZW4oKSBjb25z
dAogewotICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGUgIT0gVmlkZW9GdWxsc2NyZWVuTW9k
ZU5vbmUpCi0gICAgICAgIHJldHVybiB0cnVlOwotCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQogICAgIGlmIChkb2N1bWVudCgpLmZ1bGxzY3JlZW5NYW5hZ2VyKCkuaXNGdWxsc2NyZWVuKCkg
JiYgZG9jdW1lbnQoKS5mdWxsc2NyZWVuTWFuYWdlcigpLmN1cnJlbnRGdWxsc2NyZWVuRWxlbWVu
dCgpID09IHRoaXMpCiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAKLSAgICByZXR1cm4g
ZmFsc2U7CisgICAgcmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuTW9kZSAhPSBWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlTm9uZTsKIH0KIAogYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojppc1N0YW5kYXJkRnVsbHNj
cmVlbigpIGNvbnN0CkBAIC01OTU1LDYgKzU5NTIsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OmVudGVyRnVsbHNjcmVlbihWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpCiAgICAgaWYgKGRvY3Vt
ZW50KCkuc2V0dGluZ3MoKS5mdWxsU2NyZWVuRW5hYmxlZCgpICYmIG1vZGUgPT0gVmlkZW9GdWxs
c2NyZWVuTW9kZVN0YW5kYXJkKSB7CiAgICAgICAgIG1fdGVtcG9yYXJpbHlBbGxvd2luZ0lubGlu
ZVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuID0gZmFsc2U7CiAgICAgICAgIG1fd2FpdGluZ1RvRW50
ZXJGdWxsc2NyZWVuID0gdHJ1ZTsKKyAgICAgICAgbV9jaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1v
ZGUgPSB0cnVlOwogICAgICAgICBkb2N1bWVudCgpLmZ1bGxzY3JlZW5NYW5hZ2VyKCkucmVxdWVz
dEZ1bGxzY3JlZW5Gb3JFbGVtZW50KHRoaXMsIEZ1bGxzY3JlZW5NYW5hZ2VyOjpFeGVtcHRJRnJh
bWVBbGxvd0Z1bGxzY3JlZW5SZXF1aXJlbWVudCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC01OTcyLDExICs1OTcwLDE0IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZW50ZXJGdWxsc2Ny
ZWVuKFZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKICAgICAgICAgICAgICAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIsICJFbnRlcmluZyBmdWxsc2NyZWVuIG1vZGUgIiwgbW9kZSwgIiwgbV92
aWRlb0Z1bGxzY3JlZW5TdGFuZGJ5ID0gIiwgbV92aWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KTsKIAog
ICAgICAgICAgICAgICAgIG1fdGVtcG9yYXJpbHlBbGxvd2luZ0lubGluZVBsYXliYWNrQWZ0ZXJG
dWxsc2NyZWVuID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgbV93YWl0aW5nVG9FbnRlckZ1bGxz
Y3JlZW4gPSB0cnVlOworICAgICAgICAgICAgICAgIGlmIChtb2RlID09IFZpZGVvRnVsbHNjcmVl
bk1vZGVTdGFuZGFyZCkKKyAgICAgICAgICAgICAgICAgICAgbV93YWl0aW5nVG9FbnRlckZ1bGxz
Y3JlZW4gPSB0cnVlOworCiAgICAgICAgICAgICAgICAgYXV0byBvbGRNb2RlID0gbV92aWRlb0Z1
bGxzY3JlZW5Nb2RlOwogICAgICAgICAgICAgICAgIHNldEZ1bGxzY3JlZW5Nb2RlKG1vZGUpOwog
ICAgICAgICAgICAgICAgIGNvbmZpZ3VyZU1lZGlhQ29udHJvbHMoKTsKIAorICAgICAgICAgICAg
ICAgIG1fY2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlID0gdHJ1ZTsKICAgICAgICAgICAgICAg
ICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZW50ZXJWaWRlb0Z1bGxzY3Jl
ZW5Gb3JWaWRlb0VsZW1lbnQoYXNWaWRlbywgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlLCBtX3ZpZGVv
RnVsbHNjcmVlblN0YW5kYnkpOwogICAgICAgICAgICAgICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVl
blN0YW5kYnkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTYwMDMsOCArNjAwNCwx
MCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmV4aXRGdWxsc2NyZWVuKCkKIAogI2lmIEVOQUJM
RShGVUxMU0NSRUVOX0FQSSkKICAgICBpZiAoZG9jdW1lbnQoKS5zZXR0aW5ncygpLmZ1bGxTY3Jl
ZW5FbmFibGVkKCkgJiYgZG9jdW1lbnQoKS5mdWxsc2NyZWVuTWFuYWdlcigpLmN1cnJlbnRGdWxs
c2NyZWVuRWxlbWVudCgpID09IHRoaXMpIHsKLSAgICAgICAgaWYgKGRvY3VtZW50KCkuZnVsbHNj
cmVlbk1hbmFnZXIoKS5pc0Z1bGxzY3JlZW4oKSkKKyAgICAgICAgaWYgKGRvY3VtZW50KCkuZnVs
bHNjcmVlbk1hbmFnZXIoKS5pc0Z1bGxzY3JlZW4oKSkgeworICAgICAgICAgICAgbV9jaGFuZ2lu
Z1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSB0cnVlOwogICAgICAgICAgICAgZG9jdW1lbnQoKS5mdWxs
c2NyZWVuTWFuYWdlcigpLmNhbmNlbEZ1bGxzY3JlZW4oKTsKKyAgICAgICAgfQogCiAgICAgICAg
IGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGUgPT0gVmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJk
KQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNjAzMiwxNSArNjAzNSwyMCBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmV4aXRGdWxsc2NyZWVuKCkKIAogICAgIGlmIChkb2N1bWVudCgpLmFjdGl2
ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQoKSB8fCBkb2N1bWVudCgpLmFjdGl2ZURPTU9iamVjdHNB
cmVTdG9wcGVkKCkpIHsKICAgICAgICAgc2V0RnVsbHNjcmVlbk1vZGUoVmlkZW9GdWxsc2NyZWVu
TW9kZU5vbmUpOworICAgICAgICBtX2NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IHRydWU7
CiAgICAgICAgIGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5leGl0VmlkZW9G
dWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlvbihkb3duY2FzdDxIVE1MVmlkZW9FbGVtZW50
PigqdGhpcyksIFZpZGVvRnVsbHNjcmVlbk1vZGVOb25lKTsKICAgICB9IGVsc2UgaWYgKGRvY3Vt
ZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihv
bGRWaWRlb0Z1bGxzY3JlZW5Nb2RlKSkgewogICAgICAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5T
dGFuZGJ5KSB7CiAgICAgICAgICAgICBzZXRGdWxsc2NyZWVuTW9kZShWaWRlb0Z1bGxzY3JlZW5N
b2RlTm9uZSk7CisgICAgICAgICAgICBtX2NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IHRy
dWU7CiAgICAgICAgICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZW50
ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoZG93bmNhc3Q8SFRNTFZpZGVvRWxlbWVu
dD4oKnRoaXMpLCBtX3ZpZGVvRnVsbHNjcmVlbk1vZGUsIG1fdmlkZW9GdWxsc2NyZWVuU3RhbmRi
eSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAorICAgICAgICBtX2NoYW5naW5n
VmlkZW9GdWxsc2NyZWVuTW9kZSA9IHRydWU7CisKICAgICAgICAgaWYgKG9sZFZpZGVvRnVsbHNj
cmVlbk1vZGUgPT0gVmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKSB7CisgICAgICAgICAgICBz
ZXRGdWxsc2NyZWVuTW9kZShWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSk7CiAgICAgICAgICAgICAv
LyBUaGUgZXhpdCBmdWxsc2NyZWVuIHJlcXVlc3Qgd2lsbCBiZSBzZW50IGluIGRpc3BhdGNoRXZl
bnQoKS4KICAgICAgICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLndlYmtpdGVuZGZ1
bGxzY3JlZW5FdmVudCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC02MTEwLDYgKzYxMTgsNyBA
QCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRpZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KCkKIHsK
ICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICIsIGZ1bGxzY3JlZW4gbW9kZSA9ICIsIGZ1
bGxzY3JlZW5Nb2RlKCkpOwogICAgIG1fd2FpdGluZ1RvRW50ZXJGdWxsc2NyZWVuID0gZmFsc2U7
CisgICAgbV9jaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSBmYWxzZTsKICAgICBzY2hlZHVs
ZVVwZGF0ZVBsYXlTdGF0ZSgpOwogfQogCkBAIC02MTE5LDYgKzYxMjgsMTEgQEAgdm9pZCBIVE1M
TWVkaWFFbGVtZW50Ojp3aWxsU3RvcEJlaW5nRnVsbHNjcmVlbkVsZW1lbnQoKQogICAgICAgICBz
ZXRGdWxsc2NyZWVuTW9kZShWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSk7CiB9CiAKK3ZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6ZGlkU3RvcEJlaW5nRnVsbHNjcmVlbkVsZW1lbnQoKQoreworICAgIG1f
Y2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlID0gZmFsc2U7Cit9CisKIFBsYXRmb3JtTGF5ZXIq
IEhUTUxNZWRpYUVsZW1lbnQ6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewogICAgIHJldHVybiBt
X3BsYXllciA/IG1fcGxheWVyLT5wbGF0Zm9ybUxheWVyKCkgOiBudWxscHRyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCBhYjJiMDAxMWI1OTQzOWVhNTFlOGFhM2Uy
MDhmZTAxMmM2M2QxMmVkLi4yZjhiNzRmNTU5N2YyMjAwZGZkNzdmZDAwZjVlYzEzZDJiOTY3ODE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNTU0LDggKzU1NCw5
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNTdXNwZW5kZWQoKSBjb25zdCBmaW5hbDsKIAotICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkQmVjb21lRnVsbHNjcmVlbkVsZW1lbnQoKSBvdmVycmlk
ZTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KCkg
ZmluYWw7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3aWxsRXhpdEZ1bGxzY3JlZW4oKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZFN0b3BCZWluZ0Z1bGxzY3JlZW5FbGVtZW50KCkgZmlu
YWw7CiAKICNpZiBFTkFCTEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkKICAgICB2b2lkIHNjaGVk
dWxlRXZlbnQoUmVmPEV2ZW50PiYmKTsKQEAgLTYxMCw3ICs2MTEsOSBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdm9pZCB1cGRhdGVNZWRpYUNvbnRyb2xzQWZ0ZXJQcmVzZW50YXRpb25Nb2RlQ2hhbmdlKCk7
CiAKICAgICB2b2lkIHNjaGVkdWxlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYpOwotICAgIGJvb2wg
d2FpdGluZ1RvRW50ZXJGdWxsc2NyZWVuKCkgeyByZXR1cm4gbV93YWl0aW5nVG9FbnRlckZ1bGxz
Y3JlZW47IH0KKworICAgIHZvaWQgc2V0Q2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlKGJvb2wg
dmFsdWUpIHsgbV9jaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSB2YWx1ZTsgfQorICAgIGJv
b2wgaXNDaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUoKSBjb25zdCB7IHJldHVybiBtX2NoYW5n
aW5nVmlkZW9GdWxsc2NyZWVuTW9kZTsgfQogCiBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlTWVk
aWFQbGF5ZXIoKTsKQEAgLTExMDksNiArMTExMiw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1f
aXNTY3J1YmJpbmdSZW1vdGVseSA6IDE7CiAgICAgYm9vbCBtX3dhaXRpbmdUb0VudGVyRnVsbHNj
cmVlbiA6IDE7CisgICAgYm9vbCBtX2NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA6IDE7CiAK
ICAgICBib29sIG1fdHJhY2tzQXJlUmVhZHkgOiAxOwogICAgIGJvb2wgbV9oYXZlVmlzaWJsZVRl
eHRUcmFjayA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAppbmRl
eCA4ZGZhYmIzMjJjNDAwMGJhNjY5ODYxNTg4YzFiYWRjN2FkZjM5ODJmLi5jN2MxMmZjOGI1NjYy
ZTk5NWQ4YzgxZmE1NThmYTFiMDUxNDUxZDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZp
ZGVvRWxlbWVudC5jcHAKQEAgLTM1MywxMSArMzUzLDkgQEAgYm9vbCBIVE1MVmlkZW9FbGVtZW50
Ojp3ZWJraXRTdXBwb3J0c0Z1bGxzY3JlZW4oKQogYm9vbCBIVE1MVmlkZW9FbGVtZW50Ojp3ZWJr
aXREaXNwbGF5aW5nRnVsbHNjcmVlbigpCiB7CiAgICAgaWYgKGRvY3VtZW50KCkucXVpcmtzKCku
bmVlZHNBa2FtYWlNZWRpYVBsYXllclF1aXJrKCp0aGlzKSkKLSAgICAgICAgcmV0dXJuIGlzRnVs
bHNjcmVlbigpIHx8IG1faXNDaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGU7CisgICAgICAgIHJl
dHVybiBpc0Z1bGxzY3JlZW4oKSB8fCBpc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSgpOwog
Ci0gICAgLy8gVGhpcyBmdW5jdGlvbiBzdGFydHMgdG8gcmV0dXJuIHRydWUgYWZ0ZXIgdGhlIHZp
ZGVvIGVsZW1lbnQgaGFzIGVudGVyZWQKLSAgICAvLyBmdWxsc2NyZWVuL3BpY3R1cmUtaW4tcGlj
dHVyZSB1bnRpbCBpdCBoYXMgZXhpdGVkIGZ1bGxzY3JlZW4vcGljdHVyZS1pbi1waWN0dXJlCi0g
ICAgcmV0dXJuIChpc0Z1bGxzY3JlZW4oKSAmJiAhd2FpdGluZ1RvRW50ZXJGdWxsc2NyZWVuKCkp
IHx8ICghaXNGdWxsc2NyZWVuKCkgJiYgbV9pc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSk7
CisgICAgcmV0dXJuIGlzRnVsbHNjcmVlbigpOwogfQogCiB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6
OmFuY2VzdG9yV2lsbEVudGVyRnVsbHNjcmVlbigpCkBAIC00NzQsNyArNDcyLDcgQEAgdm9pZCBI
VE1MVmlkZW9FbGVtZW50Ojp3ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKFZpZGVvUHJlc2VudGF0
aW9uTW9kZSBtb2RlKQogCiB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnNldFByZXNlbnRhdGlvbk1v
ZGUoVmlkZW9QcmVzZW50YXRpb25Nb2RlIG1vZGUpCiB7Ci0gICAgaWYgKG1faXNDaGFuZ2luZ1Zp
ZGVvRnVsbHNjcmVlbk1vZGUgfHwgdG9QcmVzZW50YXRpb25Nb2RlKGZ1bGxzY3JlZW5Nb2RlKCkp
ID09IG1vZGUpCisgICAgaWYgKGlzQ2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlKCkgfHwgdG9Q
cmVzZW50YXRpb25Nb2RlKGZ1bGxzY3JlZW5Nb2RlKCkpID09IG1vZGUpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGF1dG8gdmlkZW9GdWxsc2NyZWVuTW9kZSA9IHRvRnVsbHNjcmVlbk1vZGUobW9k
ZSk7CkBAIC00ODUsNyArNDgzLDYgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpzZXRQcmVzZW50
YXRpb25Nb2RlKFZpZGVvUHJlc2VudGF0aW9uTW9kZSBtb2RlKQogICAgICAgICAgICAgaWYgKHRv
UHJlc2VudGF0aW9uTW9kZShmdWxsc2NyZWVuTW9kZSgpKSA9PSBWaWRlb1ByZXNlbnRhdGlvbk1v
ZGU6OlBpY3R1cmVJblBpY3R1cmUpCiAgICAgICAgICAgICAgICAgbV9pc0V4aXRpbmdQaWN0dXJl
SW5QaWN0dXJlID0gdHJ1ZTsKIAotICAgICAgICAgICAgbV9pc0NoYW5naW5nVmlkZW9GdWxsc2Ny
ZWVuTW9kZSA9IHRydWU7CiAgICAgICAgICAgICBleGl0RnVsbHNjcmVlbigpOwogICAgICAgICB9
CiAKQEAgLTUwMCw3ICs0OTcsNiBAQCB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnNldFByZXNlbnRh
dGlvbk1vZGUoVmlkZW9QcmVzZW50YXRpb25Nb2RlIG1vZGUpCiAgICAgZWxzZSBpZiAoZnVsbHNj
cmVlbk1vZGUoKSA9PSBWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSkKICAgICAg
ICAgbV9pc0V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlID0gdHJ1ZTsKIAotICAgIG1faXNDaGFuZ2lu
Z1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSB0cnVlOwogICAgIGVudGVyRnVsbHNjcmVlbih2aWRlb0Z1
bGxzY3JlZW5Nb2RlKTsKIH0KIApAQCAtNTExLDIwICs1MDcsMjUgQEAgYXV0byBIVE1MVmlkZW9F
bGVtZW50Ojp3ZWJraXRQcmVzZW50YXRpb25Nb2RlKCkgY29uc3QgLT4gVmlkZW9QcmVzZW50YXRp
b25Nb2RlCiAKIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6ZGlkRW50ZXJGdWxsc2NyZWVuT3JQaWN0
dXJlSW5QaWN0dXJlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkKIHsKLSAgICBtX2lzQ2hhbmdpbmdW
aWRlb0Z1bGxzY3JlZW5Nb2RlID0gZmFsc2U7Ci0gICAgaWYgKG1faXNFbnRlcmluZ1BpY3R1cmVJ
blBpY3R1cmUgfHwgbV9pc0V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlKSB7CisgICAgaWYgKG1faXNF
bnRlcmluZ1BpY3R1cmVJblBpY3R1cmUpIHsKKyAgICAgICAgbV9pc0VudGVyaW5nUGljdHVyZUlu
UGljdHVyZSA9IGZhbHNlOworICAgICAgICBzZXRDaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUo
ZmFsc2UpOworCiAjaWYgRU5BQkxFKFBJQ1RVUkVfSU5fUElDVFVSRV9BUEkpCi0gICAgICAgIGlm
IChtX3BpY3R1cmVJblBpY3R1cmVPYnNlcnZlcikgewotICAgICAgICAgICAgaWYgKG1faXNFbnRl
cmluZ1BpY3R1cmVJblBpY3R1cmUpCi0gICAgICAgICAgICAgICAgbV9waWN0dXJlSW5QaWN0dXJl
T2JzZXJ2ZXItPmRpZEVudGVyUGljdHVyZUluUGljdHVyZShmbG9vcmVkSW50U2l6ZShzaXplKSk7
Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbV9waWN0dXJlSW5QaWN0dXJlT2Jz
ZXJ2ZXItPmRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlKCk7Ci0gICAgICAgIH0KKyAgICAgICAgaWYg
KG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyKQorICAgICAgICAgICAgbV9waWN0dXJlSW5QaWN0
dXJlT2JzZXJ2ZXItPmRpZEVudGVyUGljdHVyZUluUGljdHVyZShmbG9vcmVkSW50U2l6ZShzaXpl
KSk7CiAjZWxzZQogICAgICAgICBVTlVTRURfUEFSQU0oc2l6ZSk7CiAjZW5kaWYKLSAgICAgICAg
bV9pc0VudGVyaW5nUGljdHVyZUluUGljdHVyZSA9IGZhbHNlOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaWYgKG1faXNFeGl0aW5nUGljdHVyZUluUGljdHVyZSkgewogICAgICAgICBt
X2lzRXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKKyNpZiBFTkFCTEUoUElDVFVSRV9J
Tl9QSUNUVVJFX0FQSSkKKyAgICAgICAgaWYgKG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyKQor
ICAgICAgICAgICAgbV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXItPmRpZEV4aXRQaWN0dXJlSW5Q
aWN0dXJlKCk7CisjZW5kaWYKICAgICB9CiAKICAgICBIVE1MTWVkaWFFbGVtZW50OjpkaWRCZWNv
bWVGdWxsc2NyZWVuRWxlbWVudCgpOwpAQCAtNTMyLDIzICs1MzMsMjQgQEAgdm9pZCBIVE1MVmlk
ZW9FbGVtZW50OjpkaWRFbnRlckZ1bGxzY3JlZW5PclBpY3R1cmVJblBpY3R1cmUoY29uc3QgRmxv
YXRTaXplJiBzaXoKIAogdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpkaWRFeGl0RnVsbHNjcmVlbk9y
UGljdHVyZUluUGljdHVyZSgpCiB7Ci0gICAgbV9pc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9k
ZSA9IGZhbHNlOwogICAgIGlmIChtX2lzRXhpdGluZ1BpY3R1cmVJblBpY3R1cmUpIHsKICAgICAg
ICAgbV9pc0V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlID0gZmFsc2U7CisgICAgICAgIHNldENoYW5n
aW5nVmlkZW9GdWxsc2NyZWVuTW9kZShmYWxzZSk7CisKICNpZiBFTkFCTEUoUElDVFVSRV9JTl9Q
SUNUVVJFX0FQSSkKICAgICAgICAgaWYgKG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyKQogICAg
ICAgICAgICAgbV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXItPmRpZEV4aXRQaWN0dXJlSW5QaWN0
dXJlKCk7CiAjZW5kaWYKKyAgICAgICAgcmV0dXJuOwogICAgIH0KKworICAgIEhUTUxNZWRpYUVs
ZW1lbnQ6OmRpZFN0b3BCZWluZ0Z1bGxzY3JlZW5FbGVtZW50KCk7CiB9CiAKLSNpZiBFTkFCTEUo
RlVMTFNDUkVFTl9BUEkpICYmIEVOQUJMRShWSURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikK
LXZvaWQgSFRNTFZpZGVvRWxlbWVudDo6ZGlkQmVjb21lRnVsbHNjcmVlbkVsZW1lbnQoKQorYm9v
bCBIVE1MVmlkZW9FbGVtZW50Ojppc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSgpIGNvbnN0CiB7
Ci0gICAgbV9pc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IGZhbHNlOwotICAgIEhUTUxN
ZWRpYUVsZW1lbnQ6OmRpZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KCk7CisgICAgcmV0dXJuIGlz
Q2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlKCk7CiB9Ci0jZW5kaWYKIAogdm9pZCBIVE1MVmlk
ZW9FbGVtZW50OjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShjb25zdCBGbG9hdFJlY3QmIGZyYW1l
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAppbmRleCBlZDM0ZGQzNmRj
ZTdjNmRjYWVlZGI0M2Y3MzI0NWNkOWNmYTA5MzQzLi5kYjkzODBlZDU4MTRmYTRlMTQ5MmRmYWE5
NDVlMjFhNjRlNDVkYTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRl
b0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaApA
QCAtOTEsMTAgKzkxLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UHJl
c2VudGF0aW9uTW9kZShWaWRlb1ByZXNlbnRhdGlvbk1vZGUpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuT3JQaWN0dXJlSW5QaWN0dXJlKGNvbnN0IEZsb2F0U2l6
ZSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW5PclBpY3R1cmVJ
blBpY3R1cmUoKTsKLQotI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkgJiYgRU5BQkxFKFZJREVP
X1VTRVNfRUxFTUVOVF9GVUxMU0NSRUVOKQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkQmVj
b21lRnVsbHNjcmVlbkVsZW1lbnQoKSBmaW5hbDsKLSNlbmRpZgorICAgIFdFQkNPUkVfRVhQT1JU
IGJvb2wgaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0
VmlkZW9GdWxsc2NyZWVuRnJhbWUoY29uc3QgRmxvYXRSZWN0JikgZmluYWw7CiAKQEAgLTEzOCw3
ICsxMzUsNiBAQCBwcml2YXRlOgogCiAgICAgdW5zaWduZWQgbV9sYXN0UmVwb3J0ZWRWaWRlb1dp
ZHRoIHsgMCB9OwogICAgIHVuc2lnbmVkIG1fbGFzdFJlcG9ydGVkVmlkZW9IZWlnaHQgeyAwIH07
Ci0gICAgYm9vbCBtX2lzQ2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlIHsgZmFsc2UgfTsKIAog
I2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKICAgICBib29sIG1faXNFbnRlcmlu
Z1BpY3R1cmVJblBpY3R1cmUgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCmluZGV4IDFkMTRkNzBlZDhmMTJhMWU2ZDNkMGYyNTVjYjFiYTBmNTA3ODNlOGMuLjhiZGI2
NGU2ZTA4OGRlN2Y4ZGMyNjZmYjRkOThkYmI4NTk2NTJlNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKQEAgLTM0MjYsNiArMzQyNiwxMSBAQCB2b2lkIEludGVybmFsczo6c2V0
RnVsbHNjcmVlbkNvbnRyb2xzSGlkZGVuKGJvb2wgaGlkZGVuKQogfQogCiAjaWYgRU5BQkxFKFZJ
REVPX1BSRVNFTlRBVElPTl9NT0RFKQorYm9vbCBJbnRlcm5hbHM6OmlzQ2hhbmdpbmdQcmVzZW50
YXRpb25Nb2RlKEhUTUxWaWRlb0VsZW1lbnQmIGVsZW1lbnQpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGVsZW1lbnQuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUoKTsKK30KKwogdm9pZCBJbnRlcm5h
bHM6OnNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsK
ICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oCmluZGV4IDM3MTE3NmY2YzJhM2M3ODdlMDM2ZjUyMjY2MjU4MzVmZGMx
M2VlOGEuLmNkMDVmNzZhZmI1NjM3ZGQwYTg1YzE3ZmYzYTIwYmJiMjMxYzFjZmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNTE0LDYgKzUxNCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldEZ1bGxzY3JlZW5Db250cm9sc0hpZGRlbihib29sKTsKIAogI2lmIEVOQUJMRShWSURF
T19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBib29sIGlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2Rl
KEhUTUxWaWRlb0VsZW1lbnQmKSBjb25zdDsKICAgICB2b2lkIHNldE1vY2tWaWRlb1ByZXNlbnRh
dGlvbk1vZGVFbmFibGVkKGJvb2wpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbAppbmRleCA4ZDFhZDQyZmQ1YTdiNTAwNGNiMDhmYTY2ZWVmNzRhYmM0NjQ4ZDQzLi44
ODM3OGU1NGI4MTRmNjljOGY2NzdlY2E2NjBkMWMxOGZmNGRkMGE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCkBAIC01NzAsNiArNTcwLDcgQEAgZW51bSBDb250ZW50U2l6ZUNh
dGVnb3J5IHsKICAgICB1bmRlZmluZWQgc2V0RnVsbHNjcmVlbkF1dG9IaWRlRHVyYXRpb24oZG91
YmxlIGR1cmF0aW9uKTsKICAgICB1bmRlZmluZWQgc2V0RnVsbHNjcmVlbkNvbnRyb2xzSGlkZGVu
KGJvb2xlYW4gaGlkZGVuKTsKIAorICAgIFtDb25kaXRpb25hbD1WSURFT19QUkVTRU5UQVRJT05f
TU9ERV0gYm9vbGVhbiBpc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZShIVE1MVmlkZW9FbGVtZW50
IGVsZW1lbnQpOwogICAgIFtDb25kaXRpb25hbD1WSURFT19QUkVTRU5UQVRJT05fTU9ERV0gdW5k
ZWZpbmVkIHNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKGJvb2xlYW4gZW5hYmxl
ZCk7CiAKICAgICB1bmRlZmluZWQgc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKHVuc2ln
bmVkIGxvbmcgbG9uZyBxdW90YSk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggMDY0ZjlkOGEyZWE1NmIwNGMxOGViMmE4YWE5MzYzYTQ4MWQ1MWQ4
My4uYTY4NzliZGFlMjcyZjAwYzU2OGFhMzliMTRmZjE4MjU3YzM1ZjA0OCAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDIwLTA5LTE2ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgTGV0
IHdlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuKCkgcmV0dXJuIHRydWUgd2hlbiBhIHZpZGVvIGVs
ZW1lbnTigJlzIGZ1bGxzY3JlZW4gbW9kZSBpcyBub3QgVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjQyNgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdDbG9zZUFsbE1lZGlhUHJlc2VudGF0
aW9ucy5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICBVc2UgaW50ZXJuYWxzLmlzQ2hhbmdp
bmdQcmVzZW50YXRpb25Nb2RlKCkgdG8gY2hlY2sgd2hldGhlciBhIHZpZGVvIHByZXNlbnRhdGlv
bgorICAgICAgICBjaGFuZ2UgKGZyb20gaW5saW5lIHRvIHBpY3R1cmUtaW4tcGljdHVyZSkgaXMg
Y29tcGxldGVkIGJlZm9yZSBtb3ZpbmcgdG8gdGhlIG5leHQKKyAgICAgICAgc3RlcCBvZiB0aGUg
dGVzdC4KKwogMjAyMC0wOS0xNCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVtb3ZlIHJ1bnRpbWUgc2V0dGluZyBmb3IgZW5hYmxpbmcvZGlzYWJsaW5nIFNoYWRv
d0RPTQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9X
S1dlYlZpZXdDbG9zZUFsbE1lZGlhUHJlc2VudGF0aW9ucy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3Q2xvc2VBbGxNZWRpYVByZXNlbnRhdGlvbnMu
bW0KaW5kZXggZTEwNWVmYjVhNWI0YmY5NTdmNDlhMTNkZTczZTI1ODhjNDlkMjNjMC4uNmYyODg1
NzM4MjNiMjgzNjFjOTczOWM3YzQ0NjBiMjExMGRhM2QyZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdDbG9zZUFsbE1lZGlhUHJlc2Vu
dGF0aW9ucy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dL
V2ViVmlld0Nsb3NlQWxsTWVkaWFQcmVzZW50YXRpb25zLm1tCkBAIC00MSw2ICs0MSw4IEBAIFRF
U1QoV0tXZWJWaWV3Q2xvc2VBbGxNZWRpYVByZXNlbnRhdGlvbnMsIFBpY3R1cmVJblBpY3R1cmUp
CiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tX
S1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgV0tSZXRhaW5QdHI8V0tD
b250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhUZXN0V2ViS2l0QVBJOjpVdGlsOjpjcmVhdGVD
b250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbnRlcm5hbHNJbmplY3RlZEJ1bmRsZVRlc3Qi
KSk7CisgICAgY29uZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbCA9IChXS1Byb2Nlc3NQb29s
ICopY29udGV4dC5nZXQoKTsKICAgICBjb25maWd1cmF0aW9uLmdldCgpLnByZWZlcmVuY2VzLl9h
bGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayA9IFlFUzsKICAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRk
VG9XaW5kb3c6WUVTXSk7CiAKQEAgLTQ5LDggKzUxLDcgQEAgVEVTVChXS1dlYlZpZXdDbG9zZUFs
bE1lZGlhUHJlc2VudGF0aW9ucywgUGljdHVyZUluUGljdHVyZSkKICAgICBbd2ViVmlldyBvYmpl
Y3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0V2l0aFVzZXJHZXN0dXJlOkAiZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcigndmlkZW8nKS53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdwaWN0dXJlLWluLXBp
Y3R1cmUnKSJdOwogCiAgICAgZG8gewotICAgICAgICBpZCByZXN1bHQgPSBbd2ViVmlldyBvYmpl
Y3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8n
KS53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiJdOwotICAgICAgICBpZiAoW3Jlc3VsdCBib29s
VmFsdWVdKQorICAgICAgICBpZiAoIVt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3Jp
cHQ6QCJ3aW5kb3cuaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvJykpIl0uYm9vbFZhbHVlKQogICAgICAgICAgICAgYnJlYWs7
CiAKICAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c2xlZXAoMC41KTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmZjY3
M2U0NjQ5MThiZDU0ZTU0N2I2MTQwMzM5YTU2OTZjOTdiZGM4Li5iZDhjMmFiOTE5MjVjZWI3ZTkz
ZDVkMjRlMjBjMDM5ODk5Y2Q1YjdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjAtMDktMTYg
IFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBMZXQgd2Via2l0RGlz
cGxheWluZ0Z1bGxzY3JlZW4oKSByZXR1cm4gdHJ1ZSB3aGVuIGEgdmlkZW8gZWxlbWVudOKAmXMg
ZnVsbHNjcmVlbiBtb2RlIGlzIG5vdCBWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2NDI2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21h
Y29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtbGl2ZS1icm9hZGNhc3QtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29z
LWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9s
cy1saXZlLWJyb2FkY2FzdC5odG1sOgorICAgICAgICAqIG1lZGlhL2NvbnRleHQtbWVudS1hY3Rp
b25zLmh0bWw6CisgICAgICAgICogbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1sb29wLWlubGluZS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1sb29wLWlubGlu
ZS5odG1sOgorICAgICAgICAqIG1lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcGF1c2UtaW5saW5lLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBtZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXBhdXNlLWlubGlu
ZS5odG1sOgorICAgICAgICAqIG1lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcmV0dXJuLXRvLWlubGlu
ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1yZXR1cm4t
dG8taW5saW5lLmh0bWw6CisgICAgICAgICogbWVkaWEvcHJlc2VudGF0aW9ubW9kZWNoYW5nZWQt
ZmlyZWQtb25jZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEvcHJlc2VudGF0aW9ubW9k
ZWNoYW5nZWQtZmlyZWQtb25jZS5odG1sOgorICAgICAgICAqIG1lZGlhL3ZpZGVvLWZ1bGxzY3Jl
ZW4tb25seS1wbGF5YmFjay1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEvdmlkZW8tZnVs
bHNjcmVlbi1vbmx5LXBsYXliYWNrLmh0bWw6CisgICAgICAgICogbWVkaWEvdmlkZW8tcGxheXNp
bmxpbmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIG1lZGlhL3ZpZGVvLXBsYXlzaW5saW5lLmh0
bWw6CisgICAgICAgICogbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIG1lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLmh0bWw6CisgICAgICAg
ICogbWVkaWEvdmlkZW8td2Via2l0LXBsYXlzaW5saW5lLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBtZWRpYS92aWRlby13ZWJraXQtcGxheXNpbmxpbmUuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMC0wOS0xNCAgTXlsZXMgQy4gTWF4ZmllbGQg
IDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFtBcHBsZSBXaW5dIE1pZ3JhdGUgZnJv
bSBGb250UGxhdGZvcm1EYXRhV2luLmNwcCB0byBGb250UGxhdGZvcm1EYXRhQ29yZVRleHQuY3Bw
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4t
bWVkaWEtY29udHJvbHMtbGl2ZS1icm9hZGNhc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1t
ZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWxpdmUtYnJvYWRj
YXN0LWV4cGVjdGVkLnR4dAppbmRleCBiMzJhN2MxNzQ5YWNiYzc2ZGQ2ZWMxYTA3ZmY5ZWZkN2Rl
NDI3YjNjLi43YjY2OTQ5NTNkNmUzNDA4ZDA3NzA1YjYwNWE3ZDU5ZDUwOTM1OWYwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9t
YWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29u
dHJvbHMtbGl2ZS1icm9hZGNhc3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEt
Y29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1saXZlLWJyb2FkY2FzdC1l
eHBlY3RlZC50eHQKQEAgLTMsNyArMyw3IEBAIFRlc3RpbmcgdGhhdCB3ZSBkbyBub3Qgc2hvdyB0
aGUgc2Vla2luZyBjb250cm9scyBpbiBmdWxsc2NyZWVuIHdpdGggYSBsaXZlIGJyb2FkCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBtZWRpYS53ZWJraXREaXNwbGF5aW5nRnVs
bHNjcmVlbiBiZWNhbWUgdHJ1ZQorUEFTUyBtZWRpYS53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVl
biBpcyB0cnVlCiBQQVNTIG1lZGlhLmR1cmF0aW9uIGJlY2FtZSBOdW1iZXIuUE9TSVRJVkVfSU5G
SU5JVFkKIFBBU1MgbWVkaWFDb250cm9sbGVyLmNvbnRyb2xzLnJld2luZEJ1dHRvbi5lbmFibGVk
IGlzIGZhbHNlCiBQQVNTIG1lZGlhQ29udHJvbGxlci5jb250cm9scy5mb3J3YXJkQnV0dG9uLmVu
YWJsZWQgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFj
b3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1saXZlLWJyb2FkY2FzdC5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNj
cmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWxpdmUt
YnJvYWRjYXN0Lmh0bWwKaW5kZXggYWZiZTg4MTRlNjg1MDg0Y2ZhYjY1OTliYTJiZDQ1YjVlNzBk
ZmQwYi4uYjY0YjQzYTIzMzU5MGRhYmY0OGUzMTdhNjhmMGIwYzZiM2M0MzQyMiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFj
b3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRy
b2xzLWxpdmUtYnJvYWRjYXN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9t
YWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWxpdmUtYnJvYWRjYXN0Lmh0bWwKQEAgLTE1
LDE4ICsxNSwxNyBAQCBjb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVv
Iik7CiBjb25zdCBtZWRpYUNvbnRyb2xsZXIgPSBjcmVhdGVDb250cm9scyhzaGFkb3dSb290LCBt
ZWRpYSwgbnVsbCk7CiAKIG1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdGZ1bGxzY3JlZW5j
aGFuZ2UiLCAoKSA9PiB7Ci0gICAgc2hvdWxkQmVjb21lRXF1YWwoIm1lZGlhLndlYmtpdERpc3Bs
YXlpbmdGdWxsc2NyZWVuIiwgInRydWUiLCAoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlY29tZUVx
dWFsKCJtZWRpYS5kdXJhdGlvbiIsICJOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkiLCAoKSA9PiB7
Ci0gICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMucmV3
aW5kQnV0dG9uLmVuYWJsZWQiKTsKLSAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoIm1lZGlhQ29u
dHJvbGxlci5jb250cm9scy5mb3J3YXJkQnV0dG9uLmVuYWJsZWQiKTsKLSAgICAgICAgICAgIHNo
b3VsZEJlKCJtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMudGltZUNvbnRyb2wucGFyZW50IiwgIm51
bGwiKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMuc3Rh
dHVzTGFiZWwucGFyZW50IiwgIm1lZGlhQ29udHJvbGxlci5jb250cm9scy5ib3R0b21Db250cm9s
c0JhciIpOwotCi0gICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICBtZWRpYS5yZW1v
dmUoKTsKLSAgICAgICAgICAgIHNoYWRvd1Jvb3QuaG9zdC5yZW1vdmUoKTsKLSAgICAgICAgICAg
IGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9KTsKKyAgICBzaG91bGRCZVRydWUoIm1lZGlhLndl
YmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIik7CisgICAgc2hvdWxkQmVjb21lRXF1YWwoIm1lZGlh
LmR1cmF0aW9uIiwgIk51bWJlci5QT1NJVElWRV9JTkZJTklUWSIsICgpID0+IHsKKyAgICAgICAg
c2hvdWxkQmVGYWxzZSgibWVkaWFDb250cm9sbGVyLmNvbnRyb2xzLnJld2luZEJ1dHRvbi5lbmFi
bGVkIik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoIm1lZGlhQ29udHJvbGxlci5jb250cm9scy5m
b3J3YXJkQnV0dG9uLmVuYWJsZWQiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1lZGlhQ29udHJvbGxl
ci5jb250cm9scy50aW1lQ29udHJvbC5wYXJlbnQiLCAibnVsbCIpOworICAgICAgICBzaG91bGRC
ZSgibWVkaWFDb250cm9sbGVyLmNvbnRyb2xzLnN0YXR1c0xhYmVsLnBhcmVudCIsICJtZWRpYUNv
bnRyb2xsZXIuY29udHJvbHMuYm90dG9tQ29udHJvbHNCYXIiKTsKKworICAgICAgICBkZWJ1Zygi
Iik7CisgICAgICAgIG1lZGlhLnJlbW92ZSgpOworICAgICAgICBzaGFkb3dSb290Lmhvc3QucmVt
b3ZlKCk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH0pOwogfSk7CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy5odG1sCmluZGV4IDA1OWVlYTcwOTUyZjg1
N2ZiYzYyNTZiODQ5NjdmZjYxYTYzMjdlMzYuLmQzOTNjNzkwYjE4NWQzNzQwNDlhMzczMTc3YTk2
ZGU5OTQyNjk5ZWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL2NvbnRleHQtbWVudS1h
Y3Rpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMu
aHRtbApAQCAtMSw4NyArMSw4NiBAQAorPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgot
ICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxz
Y3JpcHQgc3JjPSJ2aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KLSAgICAgICAgPHNjcmlwdD4KLQot
ICAgICAgICAgICAgYXN5bmMgZnVuY3Rpb24gcGxheWluZygpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGlmICghd2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgPHNjcmlwdCBzcmM9Im1lZGlhLWZpbGUuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJ2aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0PgorICAgICAgICBhc3luYyBmdW5jdGlvbiBwbGF5aW5nKCkKKyAgICAgICAgewor
ICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICAgICAgaWYg
KCF3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CiAgICAgICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKLQotICAg
ICAgICAgICAgICAgIHZhciB4LCB5LCBpdGVtczsKLSAgICAgICAgICAgICAgICB4ID0gdmlkZW8u
b2Zmc2V0UGFyZW50Lm9mZnNldExlZnQgKyB2aWRlby5vZmZzZXRMZWZ0ICsgdmlkZW8ub2Zmc2V0
V2lkdGggLyAyOwotICAgICAgICAgICAgICAgIHkgPSB2aWRlby5vZmZzZXRQYXJlbnQub2Zmc2V0
VG9wICsgdmlkZW8ub2Zmc2V0VG9wICsgdmlkZW8ub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICAgICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKLSAgICAgICAgICAgICAgICBp
dGVtcyA9IGV2ZW50U2VuZGVyLmNvbnRleHRDbGljaygpOwotCisgICAgICAgICAgICBmaW5kTWVk
aWFFbGVtZW50KCk7CiAKLSAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1z
Lmxlbmd0aDsgaSsrKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgaWYg
KGl0ZW1zW2ldLnRpdGxlLm1hdGNoKCJDb250cm9scyIpKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RFeHBlY3RlZCgidmlkZW8uY29udHJvbHMiLCB0cnVlLCAnPT0nKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUb2dnbGluZyBtZWRpYSBjb250cm9scyIpOwot
ICAgICAgICAgICAgICAgICAgICAgICBpdGVtc1tpXS5jbGljaygpOwotICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmNvbnRyb2xzIiwgZmFsc2UsICc9PScpOwotICAg
ICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOwotICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICB2YXIgeCwgeSwgaXRlbXM7CisgICAgICAgICAgICB4ID0gdmlkZW8u
b2Zmc2V0UGFyZW50Lm9mZnNldExlZnQgKyB2aWRlby5vZmZzZXRMZWZ0ICsgdmlkZW8ub2Zmc2V0
V2lkdGggLyAyOworICAgICAgICAgICAgeSA9IHZpZGVvLm9mZnNldFBhcmVudC5vZmZzZXRUb3Ag
KyB2aWRlby5vZmZzZXRUb3AgKyB2aWRlby5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CisgICAgICAgICAgICBpdGVtcyA9IGV2ZW50
U2VuZGVyLmNvbnRleHRDbGljaygpOwogCi0gICAgICAgICAgICAgICAgICAgIGlmIChpdGVtc1tp
XS50aXRsZS5tYXRjaCgiUGF1c2UiKSkgewotICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhw
ZWN0ZWQoInZpZGVvLnBhdXNlZCIsIGZhbHNlLCAnPT0nKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgY29uc29sZVdyaXRlKCJUb2dnbGluZyBwbGF5IHN0YXRlIik7Ci0gICAgICAgICAgICAgICAg
ICAgICAgIGl0ZW1zW2ldLmNsaWNrKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBl
Y3RlZCgidmlkZW8ucGF1c2VkIiwgdHJ1ZSwgJz09Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAg
IGNvbnNvbGVXcml0ZSgiIik7Ci0gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLnRpdGxlLm1hdGNoKCJDb250cm9scyIpKSB7CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8uY29udHJvbHMiLCB0cnVlLCAnPT0n
KTsKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUb2dnbGluZyBtZWRpYSBjb250
cm9scyIpOworICAgICAgICAgICAgICAgICAgICBpdGVtc1tpXS5jbGljaygpOworICAgICAgICAg
ICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmNvbnRyb2xzIiwgZmFsc2UsICc9PScpOwor
ICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAgIH0K
IAotICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbXNbaV0udGl0bGUubWF0Y2goIkxvb3AiKSkg
ewotICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmxvb3AiLCBmYWxz
ZSwgJz09Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVG9nZ2xpbmcg
bG9vcCBzdGF0ZSIpOwotICAgICAgICAgICAgICAgICAgICAgICBpdGVtc1tpXS5jbGljaygpOwot
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmxvb3AiLCB0cnVlLCAn
PT0nKTsKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKLSAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChpdGVtc1tpXS50aXRsZS5tYXRjaCgi
UGF1c2UiKSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnBhdXNl
ZCIsIGZhbHNlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUb2dn
bGluZyBwbGF5IHN0YXRlIik7CisgICAgICAgICAgICAgICAgICAgIGl0ZW1zW2ldLmNsaWNrKCk7
CisgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ucGF1c2VkIiwgdHJ1ZSwg
Jz09Jyk7CisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAg
ICAgICAgfQogCi0gICAgICAgICAgICAgICAgICAgIGlmIChpdGVtc1tpXS50aXRsZS5tYXRjaCgi
TXV0ZSIpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ubXV0
ZWQiLCBmYWxzZSwgJz09Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgi
VG9nZ2xpbmcgbXV0ZSBzdGF0ZSIpOwotICAgICAgICAgICAgICAgICAgICAgICBpdGVtc1tpXS5j
bGljaygpOwotICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLm11dGVk
IiwgdHJ1ZSwgJz09Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7
Ci0gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaXRlbXNbaV0udGl0
bGUubWF0Y2goIkxvb3AiKSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZp
ZGVvLmxvb3AiLCBmYWxzZSwgJz09Jyk7CisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0
ZSgiVG9nZ2xpbmcgbG9vcCBzdGF0ZSIpOworICAgICAgICAgICAgICAgICAgICBpdGVtc1tpXS5j
bGljaygpOworICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmxvb3AiLCB0
cnVlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAg
ICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLnRpdGxlLm1h
dGNoKCJGdWxsc2NyZWVuIikgJiYgdmlkZW8ud2Via2l0U3VwcG9ydHNGdWxsc2NyZWVuKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ud2Via2l0RGlzcGxheWlu
Z0Z1bGxzY3JlZW4iLCBmYWxzZSwgJz09Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgIGNvbnNv
bGVXcml0ZSgiVG9nZ2xpbmcgZnVsbHNjcmVlbiBzdGF0ZSIpOwotICAgICAgICAgICAgICAgICAg
ICAgICBpdGVtc1tpXS5jbGljaygpOwotICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0ZXN0
RXhwZWN0ZWRFdmVudHVhbGx5KCJ2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiIsIHRy
dWUsICI9PSIsIDEwMDApOwotICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIp
OwotICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLnRp
dGxlLm1hdGNoKCJNdXRlIikpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2
aWRlby5tdXRlZCIsIGZhbHNlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZVdy
aXRlKCJUb2dnbGluZyBtdXRlIHN0YXRlIik7CisgICAgICAgICAgICAgICAgICAgIGl0ZW1zW2ld
LmNsaWNrKCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ubXV0ZWQi
LCB0cnVlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAg
ICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogdGVzdCBjb3B5
IGxpbmsgbG9jYXRpb24gYW5kIG9wZW4gaW4gbmV3IHdpbmRvdy4KLSAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgICAg
ICAgICAgZW5kVGVzdCgpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChpdGVt
c1tpXS50aXRsZS5tYXRjaCgiRnVsbHNjcmVlbiIpICYmIHZpZGVvLndlYmtpdFN1cHBvcnRzRnVs
bHNjcmVlbikgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtp
dERpc3BsYXlpbmdGdWxsc2NyZWVuIiwgZmFsc2UsICc9PScpOworICAgICAgICAgICAgICAgICAg
ICBjb25zb2xlV3JpdGUoIlRvZ2dsaW5nIGZ1bGxzY3JlZW4gc3RhdGUiKTsKKyAgICAgICAgICAg
ICAgICAgICAgaXRlbXNbaV0uY2xpY2soKTsKKyAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGVz
dEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2Rl
KHZpZGVvKSIsIGZhbHNlLCAnPT0nLCAxMDAwKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEV4
cGVjdGVkKCJ2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiIsIHRydWUsICc9PScpOwor
ICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAgIH0K
IAotICAgICAgICAgICAgYXN5bmMgZnVuY3Rpb24gc3RhcnQoKQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKLSAgICAgICAgICAgICAgICB3YWl0Rm9y
RXZlbnQoJ3BsYXknLCBwbGF5aW5nKTsKLSAgICAgICAgICAgICAgICBydW4oInZpZGVvLnNyYyA9
ICciICsgZmluZE1lZGlhRmlsZSgidmlkZW8iLCAiY29udGVudC90ZXN0IikgKyAiJyIpOworICAg
ICAgICAgICAgICAgIC8vIFRPRE86IHRlc3QgY29weSBsaW5rIGxvY2F0aW9uIGFuZCBvcGVuIGlu
IG5ldyB3aW5kb3cuCiAgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKKyAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICAgICAgfQogCi0gICAgICAgPC9z
Y3JpcHQ+CisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHN0YXJ0KCkKKyAgICAgICAgeworICAgICAg
ICAgICAgZmluZE1lZGlhRWxlbWVudCgpOworICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdwbGF5
JywgcGxheWluZyk7CisgICAgICAgICAgICBydW4oInZpZGVvLnNyYyA9ICciICsgZmluZE1lZGlh
RmlsZSgidmlkZW8iLCAiY29udGVudC90ZXN0IikgKyAiJyIpOworICAgICAgICB9CisgICAgPC9z
Y3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keSBvbmxvYWQ9InN0YXJ0KCkiPgogICAgIDxwPlRlc3QgdGhl
IHZhcmlvdXMgYWN0aW9ucyBhdmFpbGFibGUgaW4gdGhlIEhUTUw1IG1lZGlhIGVsZW1lbnQgY29u
dGV4dC1tZW51LjwvcD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxz
Y3JlZW4tbG9vcC1pbmxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEt
ZnVsbHNjcmVlbi1sb29wLWlubGluZS1leHBlY3RlZC50eHQKaW5kZXggNWEzMzdhM2UyM2U2ZjEy
NmU5MWM1MzA5OTVmZjE1ZDViZGQwMWMxOS4uODdjMWVlNzU0MjA2NDEwNGM2MDBlNmZhYzNjOGJl
OThiOTlkODg2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVl
bi1sb29wLWlubGluZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEt
ZnVsbHNjcmVlbi1sb29wLWlubGluZS1leHBlY3RlZC50eHQKQEAgLTcsMTIgKzcsMTQgQEAgRVZF
TlQoY2FucGxheXRocm91Z2gpCiBSVU4odmlkZW8ucGxheSgpKQogV2FpdCB0byBlbnRlciBmdWxs
c2NyZWVuCiBFVkVOVCh3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCkKK0VYUEVDVEVEIChp
bnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pID09ICdmYWxzZScpIE9L
CiBFWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ3RydWUnKSBP
SwogRW50ZXJlZCBmdWxsc2NyZWVuCiBSVU4odmlkZW8uY3VycmVudFRpbWUgPSA1KQogUlVOKHZp
ZGVvLndlYmtpdEV4aXRGdWxsc2NyZWVuKCkpCiBXYWl0IHRvIGV4aXQgZnVsbHNjcmVlbgogRVZF
TlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQpCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlz
Q2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQg
KHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICdmYWxzZScpIE9LCiBFeGl0ZWQg
ZnVsbHNjcmVlbgogRVhQRUNURUQgKHZpZGVvLnBhdXNlZCA9PSAnZmFsc2UnKSBPSwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1sb29wLWlubGluZS5odG1s
IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1sb29wLWlubGluZS5odG1sCmlu
ZGV4IDRiOGIxOTkyNDlkMTk1MGFkN2VlMDM1ZjJlOGY2NzQ1YzJmMTk1ZDkuLjRmNTE2Y2I5MmQy
NjZkZTQ4Y2I0MzgxYWQ5NmU3OWEwMmRkODUyMzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21l
ZGlhL21lZGlhLWZ1bGxzY3JlZW4tbG9vcC1pbmxpbmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9tZWRpYS1mdWxsc2NyZWVuLWxvb3AtaW5saW5lLmh0bWwKQEAgLTM1LDcgKzM1LDggQEAK
IAogICAgIGFzeW5jIGZ1bmN0aW9uIGJlZ2luZnVsbHNjcmVlbigpCiAgICAgewotICAgICAgICBh
d2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNj
cmVlbicsIHRydWUpOworICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCJpbnRl
cm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pIiwgZmFsc2UpOworICAgICAg
ICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuJywgdHJ1ZSk7
CiAgICAgICAgIGNvbnNvbGVXcml0ZSgiRW50ZXJlZCBmdWxsc2NyZWVuIik7CiAgICAgICAgIHJ1
bigndmlkZW8uY3VycmVudFRpbWUgPSA1Jyk7CiAgICAgICAgIHJ1bigndmlkZW8ud2Via2l0RXhp
dEZ1bGxzY3JlZW4oKScpOwpAQCAtNDUsNyArNDYsOCBAQAogCiAgICAgYXN5bmMgZnVuY3Rpb24g
ZW5kZnVsbHNjcmVlbigpCiAgICAgewotICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVh
bGx5KCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIGZhbHNlKTsKKyAgICAgICAg
YXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50
YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby53
ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIGZhbHNlKTsKICAgICAgICAgY29uc29sZVdyaXRl
KCJFeGl0ZWQgZnVsbHNjcmVlbiIpOwogICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnBhdXNl
ZCcsIGZhbHNlKTsKICAgICAgICAgcnVuKCd2aWRlby5vbnRpbWV1cGRhdGUgPSB0aW1ldXBkYXRl
Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXBhdXNl
LWlubGluZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVu
LXBhdXNlLWlubGluZS1leHBlY3RlZC50eHQKaW5kZXggM2FiYzllMjkyYTY0NmJjMjBjY2YzOWU3
ZTkyMmMzMjg5ZGE0MmU1NS4uOTNhYmYxYTZlNmI5ODc4ZjEzZmY1NDg4NzIyMjQwYmZhMjhmYzFi
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1wYXVzZS1p
bmxpbmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3Jl
ZW4tcGF1c2UtaW5saW5lLWV4cGVjdGVkLnR4dApAQCAtNCwxNSArNCwxOCBAQCBUZXN0IHRoYXQg
YSA8dmlkZW8+IGtlZXBzIHBsYXlpbmcgYWZ0ZXIgZXhpdGluZyBmdWxsc2NyZWVuIHdoZW4gdGhl
IGludGVybmFsIHBybwogUlVOKHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgImNv
bnRlbnQvdGVzdCIpKQogRVZFTlQoY2FucGxheXRocm91Z2gpCiBSVU4odmlkZW8ucGxheSgpLnRo
ZW4ocGxheWluZyk7KQorRVhQRUNURUQgKGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9u
TW9kZSh2aWRlbykgPT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5
aW5nRnVsbHNjcmVlbiA9PSAndHJ1ZScpIE9LCiBSVU4odmlkZW8ud2Via2l0RXhpdEZ1bGxzY3Jl
ZW4oKSkKIEVWRU5UKHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkKQorRVhQRUNURUQgKGlu
dGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykgPT0gJ2ZhbHNlJykgT0sK
IEVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAnZmFsc2UnKSBP
SwogRVhQRUNURUQgKHZpZGVvLnBhdXNlZCA9PSAnZmFsc2UnKSBPSwogUlVOKHZpZGVvLnBhdXNl
KCkpCiBFVkVOVChwYXVzZSkKIEVYUEVDVEVEICh2aWRlby5wYXVzZWQgPT0gJ3RydWUnKSBPSwog
UlVOKHZpZGVvLnBsYXkoKS50aGVuKHBsYXlpbmdBZ2FpbikpCitFWFBFQ1RFRCAoaW50ZXJuYWxz
LmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQRUNU
RUQgKHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICd0cnVlJykgT0sKIEVORCBP
RiBURVNUCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4t
cGF1c2UtaW5saW5lLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXBh
dXNlLWlubGluZS5odG1sCmluZGV4IDZlYTEwM2U4NjYwZjQ0OGIxYmJmNTk3ZGMzOWJjNzNkZDc2
MTE3MWUuLmVhODI0MjM5ZGZiMzQ1NjViMjU2MjUzMGZkMTc0Nzc0NzQ5ZTQ3NDIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcGF1c2UtaW5saW5lLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1wYXVzZS1pbmxpbmUuaHRt
bApAQCAtMzMsMTQgKzMzLDE2IEBACiAKICAgICBhc3luYyBmdW5jdGlvbiBwbGF5aW5nKCkKICAg
ICB7Ci0gICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLndlYmtpdERp
c3BsYXlpbmdGdWxsc2NyZWVuJywgdHJ1ZSk7CisgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2
ZW50dWFsbHkoImludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykiLCBm
YWxzZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxz
Y3JlZW4nLCB0cnVlKTsKICAgICAgICAgd2FpdEZvckV2ZW50T25jZSgnd2Via2l0cHJlc2VudGF0
aW9ubW9kZWNoYW5nZWQnLCBlbmRmdWxsc2NyZWVuKTsKICAgICAgICAgcnVuKCd2aWRlby53ZWJr
aXRFeGl0RnVsbHNjcmVlbigpJyk7CiAgICAgfQogCiAgICAgYXN5bmMgZnVuY3Rpb24gZW5kZnVs
bHNjcmVlbigpCiAgICAgewotICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2
aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIGZhbHNlKTsKKyAgICAgICAgYXdhaXQg
dGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25N
b2RlKHZpZGVvKSIsIGZhbHNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby53ZWJraXRE
aXNwbGF5aW5nRnVsbHNjcmVlbicsIGZhbHNlKTsKICAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRl
by5wYXVzZWQnLCBmYWxzZSk7CiAgICAgICAgIHdhaXRGb3JFdmVudE9uY2UoJ3BhdXNlJywgcGF1
c2VkKTsKICAgICAgICAgcnVuKCd2aWRlby5wYXVzZSgpJyk7CkBAIC01NCw3ICs1Niw4IEBACiAK
ICAgICBhc3luYyBmdW5jdGlvbiBwbGF5aW5nQWdhaW4oKQogICAgIHsKLSAgICAgICAgYXdhaXQg
dGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4n
LCB0cnVlKTsKKyAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJuYWxz
LmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKKyAgICAgICAgdGVz
dEV4cGVjdGVkKCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIHRydWUpOwogICAg
ICAgICBlbmRUZXN0KCk7CiAgICAgfQogICAgIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1yZXR1cm4tdG8taW5saW5lLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcmV0dXJuLXRvLWlubGluZS1l
eHBlY3RlZC50eHQKaW5kZXggYWU4NzI5Y2ViODkxZjIyZTFlYzExOGQyNjAxOGUzOGYyODE3ZjBh
Zi4uNDQyZDEzMmQwZWQ0ZWUwOTJhMDFhNTkwMTVhMzE0N2U4ZWJlNDFjYSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1yZXR1cm4tdG8taW5saW5lLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXJldHVybi10
by1pbmxpbmUtZXhwZWN0ZWQudHh0CkBAIC01LDE2ICs1LDIwIEBAIFJVTih2aWRlby5zcmMgPSBm
aW5kTWVkaWFGaWxlKCJ2aWRlbyIsICJjb250ZW50L3Rlc3QiKSkKIEVWRU5UKGNhbnBsYXl0aHJv
dWdoKQogUlVOKHZpZGVvLnBsYXkoKSkKIEVWRU5UKHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFu
Z2VkKQorRVhQRUNURUQgKGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRl
bykgPT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNj
cmVlbiA9PSAndHJ1ZScpIE9LCiBSVU4odmlkZW8ud2Via2l0RXhpdEZ1bGxzY3JlZW4oKSkKLUVW
RU5UKHBhdXNlKQorRVZFTlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQpCitFWFBFQ1RF
RCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2Un
KSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICdmYWxz
ZScpIE9LCiBFWFBFQ1RFRCAodmlkZW8ucGF1c2VkID09ICd0cnVlJykgT0sKIFJVTih2aWRlby5w
bGF5KCkpCiBFVkVOVCh3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCkKK0VYUEVDVEVEIChp
bnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pID09ICdmYWxzZScpIE9L
CiBFWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ3RydWUnKSBP
SwogUlVOKHZpZGVvLndlYmtpdEV4aXRGdWxsc2NyZWVuKCkpCiBFVkVOVCh3ZWJraXRwcmVzZW50
YXRpb25tb2RlY2hhbmdlZCkKK0VYUEVDVEVEIChpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRh
dGlvbk1vZGUodmlkZW8pID09ICdmYWxzZScpIE9LCiBFWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlz
cGxheWluZ0Z1bGxzY3JlZW4gPT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2aWRlby5wYXVzZWQg
PT0gJ2ZhbHNlJykgT0sKIEVORCBPRiBURVNUCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS9tZWRpYS1mdWxsc2NyZWVuLXJldHVybi10by1pbmxpbmUuaHRtbCBiL0xheW91dFRlc3RzL21l
ZGlhL21lZGlhLWZ1bGxzY3JlZW4tcmV0dXJuLXRvLWlubGluZS5odG1sCmluZGV4IDkzMjIwZWRl
ZDNlZDQ2MTE2MjA5ZTg3NDhmZjQyMTE2Nzk1NDdiNTYuLmQ4ZmU4NGQ5YTNiYTM1NTc5YmFjYjcz
MzMxNDI2NmMxMjc3YmYwZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1
bGxzY3JlZW4tcmV0dXJuLXRvLWlubGluZS5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21l
ZGlhLWZ1bGxzY3JlZW4tcmV0dXJuLXRvLWlubGluZS5odG1sCkBAIC0zNCwxNCArMzQsMTYgQEAK
IAogICAgIGFzeW5jIGZ1bmN0aW9uIGJlZ2luZnVsbHNjcmVlbjEoKQogICAgIHsKLSAgICAgICAg
YXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxz
Y3JlZW4nLCB0cnVlKTsKLSAgICAgICAgd2FpdEZvckV2ZW50T25jZSgncGF1c2UnLCBwYXVzZSk7
CisgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoImludGVybmFscy5pc0NoYW5n
aW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykiLCBmYWxzZSk7CisgICAgICAgIHRlc3RFeHBlY3Rl
ZCgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCB0cnVlKTsKKyAgICAgICAgd2Fp
dEZvckV2ZW50T25jZSgnd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQnLCBlbmRmdWxsc2Ny
ZWVuMSk7CiAgICAgICAgIHJ1bigndmlkZW8ud2Via2l0RXhpdEZ1bGxzY3JlZW4oKScpOwogICAg
IH0KIAotICAgIGFzeW5jIGZ1bmN0aW9uIHBhdXNlKCkKKyAgICBhc3luYyBmdW5jdGlvbiBlbmRm
dWxsc2NyZWVuMSgpCiAgICAgewotICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5
KCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIGZhbHNlKTsKKyAgICAgICAgYXdh
aXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRp
b25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby53ZWJr
aXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIGZhbHNlKTsKICAgICAgICAgdGVzdEV4cGVjdGVkKCd2
aWRlby5wYXVzZWQnLCB0cnVlKTsKIAogICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxs
b3dzSW5saW5lTWVkaWFQbGF5YmFja0FmdGVyRnVsbHNjcmVlbih0cnVlKTsKQEAgLTUyLDE0ICs1
NCwxNiBAQAogCiAgICAgYXN5bmMgZnVuY3Rpb24gYmVnaW5mdWxsc2NyZWVuMigpCiAgICAgewot
ICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby53ZWJraXREaXNwbGF5
aW5nRnVsbHNjcmVlbicsIHRydWUpOwotICAgICAgICB3YWl0Rm9yRXZlbnRPbmNlKCd3ZWJraXRw
cmVzZW50YXRpb25tb2RlY2hhbmdlZCcsIGVuZGZ1bGxzY3JlZW4pOworICAgICAgICBhd2FpdCB0
ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCJpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1v
ZGUodmlkZW8pIiwgZmFsc2UpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLndlYmtpdERp
c3BsYXlpbmdGdWxsc2NyZWVuJywgdHJ1ZSk7CisgICAgICAgIHdhaXRGb3JFdmVudE9uY2UoJ3dl
YmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkJywgZW5kZnVsbHNjcmVlbjIpOwogICAgICAgICBy
dW4oJ3ZpZGVvLndlYmtpdEV4aXRGdWxsc2NyZWVuKCknKTsKICAgICB9CiAKLSAgICBhc3luYyBm
dW5jdGlvbiBlbmRmdWxsc2NyZWVuKCkKKyAgICBhc3luYyBmdW5jdGlvbiBlbmRmdWxsc2NyZWVu
MigpCiAgICAgewotICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby53
ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIGZhbHNlKTsKKyAgICAgICAgYXdhaXQgdGVzdEV4
cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZp
ZGVvKSIsIGZhbHNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby53ZWJraXREaXNwbGF5
aW5nRnVsbHNjcmVlbicsIGZhbHNlKTsKICAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby5wYXVz
ZWQnLCBmYWxzZSk7CiAgICAgICAgIGVuZFRlc3QoKTsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9tZWRpYS9wcmVzZW50YXRpb25tb2RlY2hhbmdlZC1maXJlZC1vbmNlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3ByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkLWZpcmVkLW9u
Y2UtZXhwZWN0ZWQudHh0CmluZGV4IGExOGU4YmI4NmVlMzdjMjM5Yjg3NjkyZDE4MDFhODVkMmIw
ZTJkOWMuLmRlNGNhNWJjYTQ2MjliOGU4Mzk4YTJmNTllY2QzYjBjNGMzNDgyOWIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL21lZGlhL3ByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkLWZpcmVkLW9uY2Ut
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ByZXNlbnRhdGlvbm1vZGVjaGFu
Z2VkLWZpcmVkLW9uY2UtZXhwZWN0ZWQudHh0CkBAIC01LDcgKzUsNyBAQCBFVkVOVChjYW5wbGF5
dGhyb3VnaCkKIFJVTih2aWRlby5wbGF5KCkpCiBSVU4odmlkZW8ud2Via2l0U2V0UHJlc2VudGF0
aW9uTW9kZSgicGljdHVyZS1pbi1waWN0dXJlIikpCiBFVkVOVCh3ZWJraXRwcmVzZW50YXRpb25t
b2RlY2hhbmdlZCkKLUVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9
PSAndHJ1ZScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25N
b2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdFByZXNlbnRh
dGlvbk1vZGUgPT0gJ3BpY3R1cmUtaW4tcGljdHVyZScpIE9LCiBSVU4odmlkZW8ud2Via2l0U2V0
UHJlc2VudGF0aW9uTW9kZSgiaW5saW5lIikpCiBFVkVOVCh3ZWJraXRwcmVzZW50YXRpb25tb2Rl
Y2hhbmdlZCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ByZXNlbnRhdGlvbm1vZGVj
aGFuZ2VkLWZpcmVkLW9uY2UuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3ByZXNlbnRhdGlvbm1v
ZGVjaGFuZ2VkLWZpcmVkLW9uY2UuaHRtbAppbmRleCA1MzhiZDEyN2JjOTFhOTk5MGE1MDdjOTI0
ZjNjYmI1NDMxYWE0N2Q0Li5jMmI1ZDZjMWM2MzU5OGQ0MWM0ZDlhNWNhYTAyN2I0MTU0ODEzMzU1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9wcmVzZW50YXRpb25tb2RlY2hhbmdlZC1m
aXJlZC1vbmNlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvcHJlc2VudGF0aW9ubW9kZWNo
YW5nZWQtZmlyZWQtb25jZS5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAKICAgICAgICAgYXN5bmMg
ZnVuY3Rpb24gcHJlc2VudGF0aW9uTW9kZUNoYW5nZWQxKCkKICAgICAgICAgewotICAgICAgICAg
ICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1
bGxzY3JlZW4nLCB0cnVlKTsKKyAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFs
bHkoImludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykiLCBmYWxzZSk7
CiAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUi
LCAicGljdHVyZS1pbi1waWN0dXJlIik7CiAgICAgICAgICAgICBydW5XaXRoS2V5RG93bigndmlk
ZW8ud2Via2l0U2V0UHJlc2VudGF0aW9uTW9kZSgiaW5saW5lIiknKTsKICAgICAgICAgICAgIHdh
aXRGb3JFdmVudCgid2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQiLCBwcmVzZW50YXRpb25N
b2RlQ2hhbmdlZDIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tZnVsbHNj
cmVlbi1vbmx5LXBsYXliYWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVv
LWZ1bGxzY3JlZW4tb25seS1wbGF5YmFjay1leHBlY3RlZC50eHQKaW5kZXggYzE3MmI1MmVmNDY0
NDMzZDI5ODhlOTYzNjk5MzcxMWYxYzgzMzMwZS4uMzM1YzViMmUwNmVlMjVjMWQ5ZjU5ZGZiOTk0
MDk5NGM4MzEzMzhkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tZnVsbHNj
cmVlbi1vbmx5LXBsYXliYWNrLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92
aWRlby1mdWxsc2NyZWVuLW9ubHktcGxheWJhY2stZXhwZWN0ZWQudHh0CkBAIC03LDEzICs3LDE2
IEBAIEVYUEVDVEVEICh2aWRlby53ZWJraXRTdXBwb3J0c0Z1bGxzY3JlZW4gPT0gJ3RydWUnKSBP
SwogRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICdmYWxzZScp
IE9LCiBSVU4odmlkZW8ucGxheSgpKQogRVZFTlQocGxheWluZykKLUVYUEVDVEVEICh2aWRlby53
ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAndHJ1ZScpIE9LCiAKLSoqIEVudGVyZWQgZnVs
bHNjcmVlbgorKiogU3RhcnRlZCBwbGF5aW5nCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdp
bmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKHZpZGVv
LndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICd0cnVlJykgT0sKIFJVTih2aWRlby53ZWJr
aXRFeGl0RnVsbFNjcmVlbigpKQogRVZFTlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQp
Ci1FWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ2ZhbHNlJykg
T0sKIAotKiogRXhpdGVkIGZ1bGxzY3JlZW4KKyoqIFJlY2VpdmVkIHdlYmtpdHByZXNlbnRhdGlv
bm1vZGVjaGFuZ2VkIGV2ZW50CitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50
YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSworRXhpdGVkIGZ1bGxzY3JlZW4KK0VYUEVD
VEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAnZmFsc2UnKSBPSwogRU5E
IE9GIFRFU1QKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tZnVsbHNjcmVl
bi1vbmx5LXBsYXliYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1mdWxsc2NyZWVu
LW9ubHktcGxheWJhY2suaHRtbAppbmRleCBjM2FjYTNhMDQ2YzRlYmJjMzU3YzliZjU4OGY0N2Y3
ZmVkNGI2ZDcxLi40Nzg4OWE2MTMzNWIyNDE3ZjU5ZjY3YmUwMjRjZWY0NGRmMmM5M2MzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1mdWxsc2NyZWVuLW9ubHktcGxheWJhY2su
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1mdWxsc2NyZWVuLW9ubHktcGxheWJh
Y2suaHRtbApAQCAtNDAsMTYgKzQwLDE5IEBACiAKICAgICAgICAgICAgIGFzeW5jIGZ1bmN0aW9u
IHBsYXlpbmcoKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBl
Y3RlZEV2ZW50dWFsbHkoInZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIiwgdHJ1ZSk7
Ci0gICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogRW50ZXJlZCBmdWxsc2NyZWVu
Iik7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogU3RhcnRlZCBwbGF5aW5n
Iik7CisgICAgICAgICAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJu
YWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKKyAgICAgICAg
ICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIiwg
dHJ1ZSk7CiAgICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50T25jZSgnd2Via2l0cHJlc2VudGF0
aW9ubW9kZWNoYW5nZWQnLCBlbmRmdWxsc2NyZWVuKTsKICAgICAgICAgICAgICAgICBydW4oInZp
ZGVvLndlYmtpdEV4aXRGdWxsU2NyZWVuKCkiKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgYXN5bmMgZnVuY3Rpb24gZW5kZnVsbHNjcmVlbigpCiAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgidmlkZW8ud2Via2l0RGlzcGxh
eWluZ0Z1bGxzY3JlZW4iLCBmYWxzZSk7Ci0gICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8
YnI+KiogRXhpdGVkIGZ1bGxzY3JlZW4iKTsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUo
Ijxicj4qKiBSZWNlaXZlZCB3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCBldmVudCIpOwor
ICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoImludGVybmFscy5p
c0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykiLCBmYWxzZSk7CisgICAgICAgICAgICAg
ICAgY29uc29sZVdyaXRlKCJFeGl0ZWQgZnVsbHNjcmVlbiIpOworICAgICAgICAgICAgICAgIHRl
c3RFeHBlY3RlZCgidmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4iLCBmYWxzZSk7CiAg
ICAgICAgICAgICAgICAgZW5kVGVzdCgpOwogICAgICAgICAgICAgfQogICAgICAgICA8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXBsYXlzaW5saW5lLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXBsYXlzaW5saW5lLWV4cGVjdGVkLnR4
dAppbmRleCAwNDE0NTczZjBjNDZjZDczZmNlMjQ0OGVkNjljOWZmOGQ1MThmY2FhLi41ZWRjYWQx
N2M2OGQzMjhhNDRjNDcxMTFiOGQwMjg5YjlhOWI5MWMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9tZWRpYS92aWRlby1wbGF5c2lubGluZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
bWVkaWEvdmlkZW8tcGxheXNpbmxpbmUtZXhwZWN0ZWQudHh0CkBAIC0zLDYgKzMsNyBAQCBSVU4o
dmlkZW8ucGxheXNJbmxpbmUgPSBmYWxzZSkKIEVWRU5UKGNhbnBsYXl0aHJvdWdoKQogUlVOKHZp
ZGVvLnBsYXkoKSkKIEVWRU5UKHBsYXlpbmcpCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdp
bmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVv
LndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICd0cnVlJykgT0sKIFJVTihpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0SW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1
dGUodHJ1ZSkpCiBSVU4odmlkZW8ucGxheXNJbmxpbmUgPSB0cnVlKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvbWVkaWEvdmlkZW8tcGxheXNpbmxpbmUuaHRtbCBiL0xheW91dFRlc3RzL21lZGlh
L3ZpZGVvLXBsYXlzaW5saW5lLmh0bWwKaW5kZXggZmE2YTczMTI0NGQ5NzBiM2M5MmRkYTViNjBi
OGQ3MjkyNDlmNTFkYi4uZDA5ZDRjYzVkNDIyYzliODI2OWNhZDRjNjI2M2Q0MmZjMjJkMTliZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcGxheXNpbmxpbmUuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1wbGF5c2lubGluZS5odG1sCkBAIC0zMCw3ICszMCwx
MCBAQCBmdW5jdGlvbiB0ZXN0UGxheXNJbmxpbmUocmVxdWlyZXNQbGF5c0lubGluZSwgaGFzUGxh
eXNJbmxpbmUsIGV4cGVjdGVkRGlzcGxheWluZwogICAgICAgICAgICAgcnVuKCd2aWRlby5wbGF5
KCknKTsKICAgICAgICAgfSk7CiAgICAgfSkKLSAgICB3YWl0Rm9yRXZlbnRPbmNlKCdwbGF5aW5n
JywgKCkgPT4geworICAgIHdhaXRGb3JFdmVudE9uY2UoJ3BsYXlpbmcnLCBhc3luYyAoKSA9PiB7
CisgICAgICAgIGlmIChleHBlY3RlZERpc3BsYXlpbmdGdWxsc2NyZWVuKQorICAgICAgICAgICAg
YXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgnaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50
YXRpb25Nb2RlKHZpZGVvKScsIGZhbHNlKTsKKwogICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVv
LndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuJywgZXhwZWN0ZWREaXNwbGF5aW5nRnVsbHNjcmVl
bik7CiAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodmlkZW8pOwogICAgICAgICBy
dW5OZXh0VGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2Vu
dGF0aW9uLW1vZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2Vu
dGF0aW9uLW1vZGUtZXhwZWN0ZWQudHh0CmluZGV4IDFkN2RiMDI4MjQ5OWQzOTMwOWFmYTIwZDll
Yzc1ZDFjOGEyNTEzNTkuLmFiYTlmNDUzNjAwYWU3OGVmYTVjYmVmYzk1OWQ4NmEyMzI5NzZkN2Ug
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1wcmVzZW50YXRpb24tbW9k
ZS1leHBlY3RlZC50eHQKQEAgLTQsMzAgKzQsMzAgQEAgVGVzdCB0aGUgdmlkZW8gcHJlc2VudGF0
aW9uIG1vZGUgKHZpZGVvIGZ1bGxzY3JlZW4gYW5kIHBpY3R1cmUtaW4tcGljdHVyZSkgQVBJLgog
CiBFVkVOVChjYW5wbGF5dGhyb3VnaCkKIEVYUEVDVEVEICh2aWRlby53ZWJraXRTdXBwb3J0c0Z1
bGxzY3JlZW4gPT0gJ3RydWUnKSBPSwotRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlpbmdG
dWxsc2NyZWVuID09ICdmYWxzZScpIE9LCitFWFBFQ1RFRCAodmlkZW8ud2Via2l0UHJlc2VudGF0
aW9uTW9kZSA9PSAnaW5saW5lJykgT0sKIAogKiogVHJ5IHRvIGVudGVyIGZ1bGxzY3JlZW4KIFJV
Tih2aWRlby53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdmdWxsc2NyZWVuJykpCiBFVkVOVCh3
ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCkKLUVYUEVDVEVEICh2aWRlby53ZWJraXREaXNw
bGF5aW5nRnVsbHNjcmVlbiA9PSAndHJ1ZScpIE9LCiAKLSoqIEVudGVyZWQgZnVsbHNjcmVlbgor
KiogUmVjZWl2ZWQgd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQgZXZlbnQKK0VYUEVDVEVE
IChpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pID09ICdmYWxzZScp
IE9LCiBFWFBFQ1RFRCAodmlkZW8ud2Via2l0UHJlc2VudGF0aW9uTW9kZSA9PSAnZnVsbHNjcmVl
bicpIE9LCiAKICoqIFRyeSB0byBlbnRlciBwaWN0dXJlLWluLXBpY3R1cmUKIFJVTih2aWRlby53
ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdwaWN0dXJlLWluLXBpY3R1cmUnKSkKIEVWRU5UKHdl
YmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkKQotRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3Bs
YXlpbmdGdWxsc2NyZWVuID09ICd0cnVlJykgT0sKIAotKiogRW50ZXJlZCBwaWN0dXJlLWluLXBp
Y3R1cmUKKyoqIFJlY2VpdmVkIHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIGV2ZW50CitF
WFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAn
ZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUgPT0gJ3Bp
Y3R1cmUtaW4tcGljdHVyZScpIE9LCiAKICoqIFRyeSB0byByZXR1cm4gdG8gaW5saW5lCiBSVU4o
dmlkZW8ud2Via2l0U2V0UHJlc2VudGF0aW9uTW9kZSgnaW5saW5lJykpCiBFVkVOVCh3ZWJraXRw
cmVzZW50YXRpb25tb2RlY2hhbmdlZCkKLUVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5n
RnVsbHNjcmVlbiA9PSAnZmFsc2UnKSBPSwogCi0qKiBSZXR1cm5lZCB0byBpbmxpbmUKKyoqIFJl
Y2VpdmVkIHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIGV2ZW50CitFWFBFQ1RFRCAoaW50
ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwog
RVhQRUNURUQgKHZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUgPT0gJ2lubGluZScpIE9LCiAK
ICoqIFRlc3QgQ29tcGxldGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1w
cmVzZW50YXRpb24tbW9kZS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0
aW9uLW1vZGUuaHRtbAppbmRleCAzMDU2ZDE1ZTFhOWMyZDFjYWZjYjFlMGUyOGNmYTRiN2I5Nzc2
NGQ4Li5mMTA1Yzg1NTBjOTA1Mjk3ODQyMGQ0ZjU1MjIzNDdmMmE2NGFiZjEzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1wcmVzZW50YXRpb24tbW9kZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL21lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLmh0bWwKQEAgLTIxLDcgKzIx
LDcgQEAKICAgICAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIGNhbnBsYXl0aHJvdWdoKCkKICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdFN1cHBv
cnRzRnVsbHNjcmVlbiIsIHRydWUpOwotICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3Rl
ZEV2ZW50dWFsbHkoJ3ZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuJywgZmFsc2UpOwor
ICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ud2Via2l0UHJlc2VudGF0aW9uTW9k
ZSIsICJpbmxpbmUiKTsKIAogICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIFRy
eSB0byBlbnRlciBmdWxsc2NyZWVuIik7CiAgICAgICAgICAgICAgICAgcnVuV2l0aEtleURvd24o
InZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoJ2Z1bGxzY3JlZW4nKSIpOwpAQCAtMzAs
OCArMzAsOCBAQAogCiAgICAgICAgICAgICBhc3luYyBmdW5jdGlvbiBwcmVzZW50YXRpb25Nb2Rl
Q2hhbmdlZDEoKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBl
Y3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuJywgdHJ1ZSk7
Ci0gICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogRW50ZXJlZCBmdWxsc2NyZWVu
Iik7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogUmVjZWl2ZWQgd2Via2l0
cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQgZXZlbnQiKTsKKyAgICAgICAgICAgICAgICBhd2FpdCB0
ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCJpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1v
ZGUodmlkZW8pIiwgZmFsc2UpOwogICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8u
d2Via2l0UHJlc2VudGF0aW9uTW9kZSIsICJmdWxsc2NyZWVuIik7CiAgICAgICAgICAgICAgICAg
Y29uc29sZVdyaXRlKCI8YnI+KiogVHJ5IHRvIGVudGVyIHBpY3R1cmUtaW4tcGljdHVyZSIpOwog
ICAgICAgICAgICAgICAgIHdhaXRGb3JFdmVudE9uY2UoJ3dlYmtpdHByZXNlbnRhdGlvbm1vZGVj
aGFuZ2VkJywgcHJlc2VudGF0aW9uTW9kZUNoYW5nZWQyKTsKQEAgLTQwLDggKzQwLDggQEAKIAog
ICAgICAgICAgICAgYXN5bmMgZnVuY3Rpb24gcHJlc2VudGF0aW9uTW9kZUNoYW5nZWQyKCkKICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5
KCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIHRydWUpOwotICAgICAgICAgICAg
ICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIEVudGVyZWQgcGljdHVyZS1pbi1waWN0dXJlIik7Cisg
ICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogUmVjZWl2ZWQgd2Via2l0cHJlc2Vu
dGF0aW9ubW9kZWNoYW5nZWQgZXZlbnQiKTsKKyAgICAgICAgICAgICAgICBhd2FpdCB0ZXN0RXhw
ZWN0ZWRFdmVudHVhbGx5KCJpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlk
ZW8pIiwgZmFsc2UpOwogICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ud2Via2l0
UHJlc2VudGF0aW9uTW9kZSIsICJwaWN0dXJlLWluLXBpY3R1cmUiKTsKICAgICAgICAgICAgICAg
ICBjb25zb2xlV3JpdGUoIjxicj4qKiBUcnkgdG8gcmV0dXJuIHRvIGlubGluZSIpOwogICAgICAg
ICAgICAgICAgIHdhaXRGb3JFdmVudE9uY2UoJ3dlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2Vk
JywgdGVzdENvbXBsZXRlZCk7CkBAIC01MCw4ICs1MCw4IEBACiAKICAgICAgICAgICAgIGFzeW5j
IGZ1bmN0aW9uIHRlc3RDb21wbGV0ZWQoKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxs
c2NyZWVuJywgZmFsc2UpOwotICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIFJl
dHVybmVkIHRvIGlubGluZSIpOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioq
IFJlY2VpdmVkIHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIGV2ZW50Iik7CisgICAgICAg
ICAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJuYWxzLmlzQ2hhbmdp
bmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKICAgICAgICAgICAgICAgICB0ZXN0
RXhwZWN0ZWQoInZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUiLCAiaW5saW5lIik7CiAgICAg
ICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogVGVzdCBDb21wbGV0ZWQiKTsKICAgICAg
ICAgICAgICAgICBlbmRUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRl
by13ZWJraXQtcGxheXNpbmxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlk
ZW8td2Via2l0LXBsYXlzaW5saW5lLWV4cGVjdGVkLnR4dAppbmRleCA5Njc0ODk1NmU4YjM2ODRi
ZmRiZDU4YmJhNjM1ZTdjNjljMTc5Njg0Li4wOTM5N2U5MmZiOGM5NmUyYzQ4Njc1M2EwODI1ZGEx
NjM5ZTcxNWQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby13ZWJraXQtcGxh
eXNpbmxpbmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXdlYmtp
dC1wbGF5c2lubGluZS1leHBlY3RlZC50eHQKQEAgLTMsMTIgKzMsMTQgQEAgUlVOKHZpZGVvLnJl
bW92ZUF0dHJpYnV0ZSgid2Via2l0LXBsYXlzaW5saW5lIiwgIiIpKQogRVZFTlQoY2FucGxheXRo
cm91Z2gpCiBSVU4odmlkZW8ucGxheSgpKQogRVZFTlQocGxheWluZykKK0VYUEVDVEVEIChpbnRl
cm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pID09ICdmYWxzZScpIE9LCiBF
WFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ3RydWUnKSBPSwog
UlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5
c0lubGluZUF0dHJpYnV0ZSh0cnVlKSkKIFJVTih2aWRlby5zZXRBdHRyaWJ1dGUoIndlYmtpdC1w
bGF5c2lubGluZSIsICIiKSkKIEVWRU5UKGNhbnBsYXl0aHJvdWdoKQogUlVOKHZpZGVvLnBsYXko
KSkKIEVWRU5UKHBsYXlpbmcpCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50
YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdERp
c3BsYXlpbmdGdWxsc2NyZWVuID09ICd0cnVlJykgT0sKIFJVTihpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0SW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUoZmFsc2Up
KQogUlVOKHZpZGVvLnJlbW92ZUF0dHJpYnV0ZSgid2Via2l0LXBsYXlzaW5saW5lIiwgIiIpKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8td2Via2l0LXBsYXlzaW5saW5lLmh0
bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby13ZWJraXQtcGxheXNpbmxpbmUuaHRtbAppbmRl
eCA3ZWQ5NWY0ODgwNWZkMzA2Y2U2MjgyMjJhNWFiNDRiNmYxYmFjYTM1Li5hYjczMGIwMzJiNDhm
ZTlmNTliZjYzMjcxYzNkYjQzMjNjMzI0OWVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRp
YS92aWRlby13ZWJraXQtcGxheXNpbmxpbmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92
aWRlby13ZWJraXQtcGxheXNpbmxpbmUuaHRtbApAQCAtMzAsNyArMzAsMTAgQEAgZnVuY3Rpb24g
dGVzdFBsYXlzSW5saW5lKHJlcXVpcmVzUGxheXNJbmxpbmUsIGhhc1dlYmtpdFBsYXlzSW5saW5l
LCBleHBlY3RlZERpc3AKICAgICAgICAgICAgIHJ1bigndmlkZW8ucGxheSgpJyk7CiAgICAgICAg
IH0pOwogICAgIH0pCi0gICAgd2FpdEZvckV2ZW50T25jZSgncGxheWluZycsICgpID0+IHsKKyAg
ICB3YWl0Rm9yRXZlbnRPbmNlKCdwbGF5aW5nJywgYXN5bmMgKCkgPT4geworICAgICAgICBpZiAo
ZXhwZWN0ZWREaXNwbGF5aW5nRnVsbHNjcmVlbikKKyAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBl
Y3RlZEV2ZW50dWFsbHkoJ2ludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRl
byknLCBmYWxzZSk7CisKICAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby53ZWJraXREaXNwbGF5
aW5nRnVsbHNjcmVlbicsIGV4cGVjdGVkRGlzcGxheWluZ0Z1bGxzY3JlZW4pOwogICAgICAgICBk
b2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHZpZGVvKTsKICAgICAgICAgcnVuTmV4dFRlc3QoKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMjY2ODZjNzFj
ZjM5NTFlMDRiYzkxZjgzNDg3NDdhYzhlYWI4MjcwZi4uZWVlMzU1NDUzM2U3MDZhMmNkOTliMzBh
NTk4ZjJhNzkyODhkMDlkMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTE0NjAsOCArMTQ2MCw2IEBAIHdlYmtpdC5vcmcvYi8xODM0OTAgbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJvbGxlCiB3ZWJr
aXQub3JnL2IvMTgzNDkwIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9s
bGVyL21lZGlhLWNvbnRyb2xsZXItZnVsbHNjcmVlbi1jaGFuZ2UuaHRtbCBbIEZhaWx1cmUgXQog
d2Via2l0Lm9yZy9iLzE4MzQ5MCBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29u
dHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWlubGluZS10by1mdWxsc2NyZWVuLXRvLWlubGluZS5o
dG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTgzNDkwIG1lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy9zdGFydC1zdXBwb3J0L3N0YXJ0LXN1cHBvcnQtZnVsbHNjcmVlbi5odG1sIFsgRmFp
bHVyZSBdCi13ZWJraXQub3JnL2IvMTgzNDkwIG1lZGlhL3ZpZGVvLXBsYXlzaW5saW5lLmh0bWwg
WyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xODM0OTAgbWVkaWEvdmlkZW8td2Via2l0LXBsYXlz
aW5saW5lLmh0bWwgWyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzE4Mzc2NCBmYXN0L2Nzcy9h
cHBsZS1zeXN0ZW0tY29udHJvbC1jb2xvcnMuaHRtbCBbIFBhc3MgXQogCg==
</data>
<flag name="commit-queue"
          id="424491"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409091</attachid>
            <date>2020-09-17 17:20:28 -0700</date>
            <delta_ts>2020-09-17 22:31:46 -0700</delta_ts>
            <desc>WIP patch v2</desc>
            <filename>bug-216426-20200917172027.patch</filename>
            <type>text/plain</type>
            <size>62150</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTc5Y2RmYTQ3ZjdhMWE2
YzFlY2VmNWNmYzg2NDYxYjUyZTU3YWJjMS4uOTg2OWFjZDI3NTdjOTk3MTU3MGMyMDEyMzIwYTIz
ZWY4N2NmODQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIwLTA5LTE3ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgTGV0IHdlYmtpdERpc3BsYXlp
bmdGdWxsc2NyZWVuKCkgcmV0dXJuIHRydWUgd2hlbiBhIHZpZGVvIGVsZW1lbnTigJlzIGZ1bGxz
Y3JlZW4gbW9kZSBpcyBub3QgVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjQyNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVz
dHMuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZGlzcGF0Y2hFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50Ojppc0Z1bGxzY3JlZW4gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6ZW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OmV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6OmRpZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmRpZFN0b3BCZWluZ0Z1bGxzY3JlZW5FbGVtZW50KToK
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6OnNldENoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojppc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9k
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp3YWl0aW5nVG9F
bnRlckZ1bGxzY3JlZW4pOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Ojp3ZWJraXREaXNwbGF5
aW5nRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50OjpzZXRQ
cmVzZW50YXRpb25Nb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ6OmRp
ZEVudGVyRnVsbHNjcmVlbk9yUGljdHVyZUluUGljdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MVmlkZW9FbGVtZW50OjpkaWRFeGl0RnVsbHNjcmVlbk9yUGljdHVyZUluUGljdHVyZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Ojppc0NoYW5naW5nUHJlc2VudGF0aW9u
TW9kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50OjpkaWRCZWNv
bWVGdWxsc2NyZWVuRWxlbWVudCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1MVmlkZW9F
bGVtZW50Lmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjppc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSBjb25zdCk6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5p
ZGw6CisKIDIwMjAtMDktMTcgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW0NvY29hXSBjYW5QbGF5VHlwZSgnYXVkaW8vbXBlZzsgY29kZWNzPSJtcDMi
JykgcmV0dXJucyAiIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5k
ZXggYTRmMzY3OThlNTRhZjRmZDM5NGY0MjNjNmZiMGE2ZmEwODY5NmIyMS4uNjUxZTBkZmY0OTUw
ZmFiN2U5NjUxMjA1M2E0MTllMDNjYTIxYzY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwCkBAIC01Nzc5LDggKzU3NzksOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6OmRpc3BhdGNoRXZlbnQoRXZlbnQmIGV2ZW50KQogICAgIC8vIFdlIG5lZWQgdG8gZmlyZSB0
aGUgZW5kIGZ1bGxzY3JlZW4gZXZlbnQgdG8gbm90aWZ5IHRoZSBwYWdlCiAgICAgLy8gdG8gY2hh
bmdlIHRoZSBwb3NpdGlvbi9zaXplIGJhY2sgKmJlZm9yZSogZXhpdGluZyBmdWxsc2NyZWVuLgog
ICAgIC8vIE90aGVyd2lzZSwgdGhlIGV4aXQgZnVsbHNjcmVlbiBhbmltYXRpb24gd2lsbCBiZSBp
bmNvcnJlY3QuCi0gICAgaWYgKCFtX3ZpZGVvRnVsbHNjcmVlblN0YW5kYnkgJiYgIW1fd2FpdGlu
Z1RvRW50ZXJGdWxsc2NyZWVuICYmIGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCkud2Via2l0
ZW5kZnVsbHNjcmVlbkV2ZW50KSB7Ci0gICAgICAgIHNldEZ1bGxzY3JlZW5Nb2RlKFZpZGVvRnVs
bHNjcmVlbk1vZGVOb25lKTsKKyAgICBpZiAoIW1fdmlkZW9GdWxsc2NyZWVuU3RhbmRieSAmJiBt
X3ZpZGVvRnVsbHNjcmVlbk1vZGUgPT0gVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUgJiYgZXZlbnQu
dHlwZSgpID09IGV2ZW50TmFtZXMoKS53ZWJraXRlbmRmdWxsc2NyZWVuRXZlbnQpIHsKKyAgICAg
ICAgbV9jaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSB0cnVlOwogICAgICAgICBkb2N1bWVu
dCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVv
RWxlbWVudChkb3duY2FzdDxIVE1MVmlkZW9FbGVtZW50PigqdGhpcykpOwogICAgIH0KIH0KQEAg
LTU5MTEsMTUgKzU5MTEsMTIgQEAgZG91YmxlIEhUTUxNZWRpYUVsZW1lbnQ6Om1heEZhc3RGb3J3
YXJkUmF0ZSgpIGNvbnN0CiAKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6aXNGdWxsc2NyZWVuKCkg
Y29uc3QKIHsKLSAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5Nb2RlICE9IFZpZGVvRnVsbHNjcmVl
bk1vZGVOb25lKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQogI2lmIEVOQUJMRShGVUxMU0NSRUVO
X0FQSSkKICAgICBpZiAoZG9jdW1lbnQoKS5mdWxsc2NyZWVuTWFuYWdlcigpLmlzRnVsbHNjcmVl
bigpICYmIGRvY3VtZW50KCkuZnVsbHNjcmVlbk1hbmFnZXIoKS5jdXJyZW50RnVsbHNjcmVlbkVs
ZW1lbnQoKSA9PSB0aGlzKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogCi0gICAgcmV0
dXJuIGZhbHNlOworICAgIHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbk1vZGUgIT0gVmlkZW9GdWxs
c2NyZWVuTW9kZU5vbmU7CiB9CiAKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6aXNTdGFuZGFyZEZ1
bGxzY3JlZW4oKSBjb25zdApAQCAtNTk1NSw2ICs1OTUyLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjplbnRlckZ1bGxzY3JlZW4oVmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQogICAgIGlmIChk
b2N1bWVudCgpLnNldHRpbmdzKCkuZnVsbFNjcmVlbkVuYWJsZWQoKSAmJiBtb2RlID09IFZpZGVv
RnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkgewogICAgICAgICBtX3RlbXBvcmFyaWx5QWxsb3dpbmdJ
bmxpbmVQbGF5YmFja0FmdGVyRnVsbHNjcmVlbiA9IGZhbHNlOwogICAgICAgICBtX3dhaXRpbmdU
b0VudGVyRnVsbHNjcmVlbiA9IHRydWU7CisgICAgICAgIG1fY2hhbmdpbmdWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlID0gdHJ1ZTsKICAgICAgICAgZG9jdW1lbnQoKS5mdWxsc2NyZWVuTWFuYWdlcigpLnJl
cXVlc3RGdWxsc2NyZWVuRm9yRWxlbWVudCh0aGlzLCBGdWxsc2NyZWVuTWFuYWdlcjo6RXhlbXB0
SUZyYW1lQWxsb3dGdWxsc2NyZWVuUmVxdWlyZW1lbnQpOwogICAgICAgICByZXR1cm47CiAgICAg
fQpAQCAtNTk3MiwxMSArNTk3MCwxNCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVs
bHNjcmVlbihWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpCiAgICAgICAgICAgICAgICAgQUxXQVlT
X0xPRyhMT0dJREVOVElGSUVSLCAiRW50ZXJpbmcgZnVsbHNjcmVlbiBtb2RlICIsIG1vZGUsICIs
IG1fdmlkZW9GdWxsc2NyZWVuU3RhbmRieSA9ICIsIG1fdmlkZW9GdWxsc2NyZWVuU3RhbmRieSk7
CiAKICAgICAgICAgICAgICAgICBtX3RlbXBvcmFyaWx5QWxsb3dpbmdJbmxpbmVQbGF5YmFja0Fm
dGVyRnVsbHNjcmVlbiA9IGZhbHNlOwotICAgICAgICAgICAgICAgIG1fd2FpdGluZ1RvRW50ZXJG
dWxsc2NyZWVuID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpZiAobW9kZSA9PSBWaWRlb0Z1bGxz
Y3JlZW5Nb2RlU3RhbmRhcmQpCisgICAgICAgICAgICAgICAgICAgIG1fd2FpdGluZ1RvRW50ZXJG
dWxsc2NyZWVuID0gdHJ1ZTsKKwogICAgICAgICAgICAgICAgIGF1dG8gb2xkTW9kZSA9IG1fdmlk
ZW9GdWxsc2NyZWVuTW9kZTsKICAgICAgICAgICAgICAgICBzZXRGdWxsc2NyZWVuTW9kZShtb2Rl
KTsKICAgICAgICAgICAgICAgICBjb25maWd1cmVNZWRpYUNvbnRyb2xzKCk7CiAKKyAgICAgICAg
ICAgICAgICBtX2NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IHRydWU7CiAgICAgICAgICAg
ICAgICAgZG9jdW1lbnQoKS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmVudGVyVmlkZW9GdWxs
c2NyZWVuRm9yVmlkZW9FbGVtZW50KGFzVmlkZW8sIG1fdmlkZW9GdWxsc2NyZWVuTW9kZSwgbV92
aWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KTsKICAgICAgICAgICAgICAgICBpZiAobV92aWRlb0Z1bGxz
Y3JlZW5TdGFuZGJ5KQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC02MDAzLDggKzYw
MDQsMTAgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpleGl0RnVsbHNjcmVlbigpCiAKICNpZiBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgaWYgKGRvY3VtZW50KCkuc2V0dGluZ3MoKS5mdWxs
U2NyZWVuRW5hYmxlZCgpICYmIGRvY3VtZW50KCkuZnVsbHNjcmVlbk1hbmFnZXIoKS5jdXJyZW50
RnVsbHNjcmVlbkVsZW1lbnQoKSA9PSB0aGlzKSB7Ci0gICAgICAgIGlmIChkb2N1bWVudCgpLmZ1
bGxzY3JlZW5NYW5hZ2VyKCkuaXNGdWxsc2NyZWVuKCkpCisgICAgICAgIGlmIChkb2N1bWVudCgp
LmZ1bGxzY3JlZW5NYW5hZ2VyKCkuaXNGdWxsc2NyZWVuKCkpIHsKKyAgICAgICAgICAgIG1fY2hh
bmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlID0gdHJ1ZTsKICAgICAgICAgICAgIGRvY3VtZW50KCku
ZnVsbHNjcmVlbk1hbmFnZXIoKS5jYW5jZWxGdWxsc2NyZWVuKCk7CisgICAgICAgIH0KIAogICAg
ICAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5Nb2RlID09IFZpZGVvRnVsbHNjcmVlbk1vZGVTdGFu
ZGFyZCkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTYwMzIsMTUgKzYwMzUsMjAgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpleGl0RnVsbHNjcmVlbigpCiAKICAgICBpZiAoZG9jdW1lbnQoKS5h
Y3RpdmVET01PYmplY3RzQXJlU3VzcGVuZGVkKCkgfHwgZG9jdW1lbnQoKS5hY3RpdmVET01PYmpl
Y3RzQXJlU3RvcHBlZCgpKSB7CiAgICAgICAgIHNldEZ1bGxzY3JlZW5Nb2RlKFZpZGVvRnVsbHNj
cmVlbk1vZGVOb25lKTsKKyAgICAgICAgbV9jaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSB0
cnVlOwogICAgICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZXhpdFZp
ZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhvdXRBbmltYXRpb24oZG93bmNhc3Q8SFRNTFZpZGVvRWxl
bWVudD4oKnRoaXMpLCBWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSk7CiAgICAgfSBlbHNlIGlmIChk
b2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9ydHNWaWRlb0Z1bGxzY3Jl
ZW4ob2xkVmlkZW9GdWxsc2NyZWVuTW9kZSkpIHsKICAgICAgICAgaWYgKG1fdmlkZW9GdWxsc2Ny
ZWVuU3RhbmRieSkgewogICAgICAgICAgICAgc2V0RnVsbHNjcmVlbk1vZGUoVmlkZW9GdWxsc2Ny
ZWVuTW9kZU5vbmUpOworICAgICAgICAgICAgbV9jaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUg
PSB0cnVlOwogICAgICAgICAgICAgZG9jdW1lbnQoKS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgp
LmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KGRvd25jYXN0PEhUTUxWaWRlb0Vs
ZW1lbnQ+KCp0aGlzKSwgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlLCBtX3ZpZGVvRnVsbHNjcmVlblN0
YW5kYnkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKKyAgICAgICAgbV9jaGFu
Z2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSB0cnVlOworCiAgICAgICAgIGlmIChvbGRWaWRlb0Z1
bGxzY3JlZW5Nb2RlID09IFZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkgeworICAgICAgICAg
ICAgc2V0RnVsbHNjcmVlbk1vZGUoVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpOwogICAgICAgICAg
ICAgLy8gVGhlIGV4aXQgZnVsbHNjcmVlbiByZXF1ZXN0IHdpbGwgYmUgc2VudCBpbiBkaXNwYXRj
aEV2ZW50KCkuCiAgICAgICAgICAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS53ZWJraXRl
bmRmdWxsc2NyZWVuRXZlbnQpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNjExMCw2ICs2MTE4
LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpkaWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCgp
CiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAiLCBmdWxsc2NyZWVuIG1vZGUgPSAi
LCBmdWxsc2NyZWVuTW9kZSgpKTsKICAgICBtX3dhaXRpbmdUb0VudGVyRnVsbHNjcmVlbiA9IGZh
bHNlOworICAgIG1fY2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlID0gZmFsc2U7CiAgICAgc2No
ZWR1bGVVcGRhdGVQbGF5U3RhdGUoKTsKIH0KIApAQCAtNjExOSw2ICs2MTI4LDExIEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6d2lsbFN0b3BCZWluZ0Z1bGxzY3JlZW5FbGVtZW50KCkKICAgICAg
ICAgc2V0RnVsbHNjcmVlbk1vZGUoVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpOwogfQogCit2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OmRpZFN0b3BCZWluZ0Z1bGxzY3JlZW5FbGVtZW50KCkKK3sKKyAg
ICBtX2NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IGZhbHNlOworfQorCiBQbGF0Zm9ybUxh
eWVyKiBIVE1MTWVkaWFFbGVtZW50OjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKICAgICByZXR1
cm4gbV9wbGF5ZXIgPyBtX3BsYXllci0+cGxhdGZvcm1MYXllcigpIDogbnVsbHB0cjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggYWIyYjAwMTFiNTk0MzllYTUxZThh
YTNlMjA4ZmUwMTJjNjNkMTJlZC4uMmY4Yjc0ZjU1OTdmMjIwMGRmZDc3ZmQwMGY1ZWMxM2QyYjk2
NzgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTU1NCw4ICs1
NTQsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzU3VzcGVuZGVkKCkgY29uc3QgZmluYWw7CiAK
LSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KCkgb3Zl
cnJpZGU7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVu
dCgpIGZpbmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd2lsbEV4aXRGdWxsc2NyZWVuKCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRTdG9wQmVpbmdGdWxsc2NyZWVuRWxlbWVudCgp
IGZpbmFsOwogCiAjaWYgRU5BQkxFKFBJQ1RVUkVfSU5fUElDVFVSRV9BUEkpCiAgICAgdm9pZCBz
Y2hlZHVsZUV2ZW50KFJlZjxFdmVudD4mJik7CkBAIC02MTAsNyArNjExLDkgQEAgcHJvdGVjdGVk
OgogICAgIHZvaWQgdXBkYXRlTWVkaWFDb250cm9sc0FmdGVyUHJlc2VudGF0aW9uTW9kZUNoYW5n
ZSgpOwogCiAgICAgdm9pZCBzY2hlZHVsZUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmKTsKLSAgICBi
b29sIHdhaXRpbmdUb0VudGVyRnVsbHNjcmVlbigpIHsgcmV0dXJuIG1fd2FpdGluZ1RvRW50ZXJG
dWxsc2NyZWVuOyB9CisKKyAgICB2b2lkIHNldENoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZShi
b29sIHZhbHVlKSB7IG1fY2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlID0gdmFsdWU7IH0KKyAg
ICBib29sIGlzQ2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlKCkgY29uc3QgeyByZXR1cm4gbV9j
aGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGU7IH0KIAogcHJpdmF0ZToKICAgICB2b2lkIGNyZWF0
ZU1lZGlhUGxheWVyKCk7CkBAIC0xMTA5LDYgKzExMTIsNyBAQCBwcml2YXRlOgogCiAgICAgYm9v
bCBtX2lzU2NydWJiaW5nUmVtb3RlbHkgOiAxOwogICAgIGJvb2wgbV93YWl0aW5nVG9FbnRlckZ1
bGxzY3JlZW4gOiAxOworICAgIGJvb2wgbV9jaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgOiAx
OwogCiAgICAgYm9vbCBtX3RyYWNrc0FyZVJlYWR5IDogMTsKICAgICBib29sIG1faGF2ZVZpc2li
bGVUZXh0VHJhY2sgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlk
ZW9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAK
aW5kZXggOGRmYWJiMzIyYzQwMDBiYTY2OTg2MTU4OGMxYmFkYzdhZGYzOTgyZi4uYzdjMTJmYzhi
NTY2MmU5OTVkOGM4MWZhNTU4ZmExYjA1MTQ1MWQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxWaWRlb0VsZW1lbnQuY3BwCkBAIC0zNTMsMTEgKzM1Myw5IEBAIGJvb2wgSFRNTFZpZGVvRWxl
bWVudDo6d2Via2l0U3VwcG9ydHNGdWxsc2NyZWVuKCkKIGJvb2wgSFRNTFZpZGVvRWxlbWVudDo6
d2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4oKQogewogICAgIGlmIChkb2N1bWVudCgpLnF1aXJr
cygpLm5lZWRzQWthbWFpTWVkaWFQbGF5ZXJRdWlyaygqdGhpcykpCi0gICAgICAgIHJldHVybiBp
c0Z1bGxzY3JlZW4oKSB8fCBtX2lzQ2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlOworICAgICAg
ICByZXR1cm4gaXNGdWxsc2NyZWVuKCkgfHwgaXNDaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUo
KTsKIAotICAgIC8vIFRoaXMgZnVuY3Rpb24gc3RhcnRzIHRvIHJldHVybiB0cnVlIGFmdGVyIHRo
ZSB2aWRlbyBlbGVtZW50IGhhcyBlbnRlcmVkCi0gICAgLy8gZnVsbHNjcmVlbi9waWN0dXJlLWlu
LXBpY3R1cmUgdW50aWwgaXQgaGFzIGV4aXRlZCBmdWxsc2NyZWVuL3BpY3R1cmUtaW4tcGljdHVy
ZQotICAgIHJldHVybiAoaXNGdWxsc2NyZWVuKCkgJiYgIXdhaXRpbmdUb0VudGVyRnVsbHNjcmVl
bigpKSB8fCAoIWlzRnVsbHNjcmVlbigpICYmIG1faXNDaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1v
ZGUpOworICAgIHJldHVybiBpc0Z1bGxzY3JlZW4oKTsKIH0KIAogdm9pZCBIVE1MVmlkZW9FbGVt
ZW50OjphbmNlc3RvcldpbGxFbnRlckZ1bGxzY3JlZW4oKQpAQCAtNDc0LDcgKzQ3Miw3IEBAIHZv
aWQgSFRNTFZpZGVvRWxlbWVudDo6d2Via2l0U2V0UHJlc2VudGF0aW9uTW9kZShWaWRlb1ByZXNl
bnRhdGlvbk1vZGUgbW9kZSkKIAogdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpzZXRQcmVzZW50YXRp
b25Nb2RlKFZpZGVvUHJlc2VudGF0aW9uTW9kZSBtb2RlKQogewotICAgIGlmIChtX2lzQ2hhbmdp
bmdWaWRlb0Z1bGxzY3JlZW5Nb2RlIHx8IHRvUHJlc2VudGF0aW9uTW9kZShmdWxsc2NyZWVuTW9k
ZSgpKSA9PSBtb2RlKQorICAgIGlmIChpc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSgpIHx8
IHRvUHJlc2VudGF0aW9uTW9kZShmdWxsc2NyZWVuTW9kZSgpKSA9PSBtb2RlKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBhdXRvIHZpZGVvRnVsbHNjcmVlbk1vZGUgPSB0b0Z1bGxzY3JlZW5Nb2Rl
KG1vZGUpOwpAQCAtNDg1LDcgKzQ4Myw2IEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6c2V0UHJl
c2VudGF0aW9uTW9kZShWaWRlb1ByZXNlbnRhdGlvbk1vZGUgbW9kZSkKICAgICAgICAgICAgIGlm
ICh0b1ByZXNlbnRhdGlvbk1vZGUoZnVsbHNjcmVlbk1vZGUoKSkgPT0gVmlkZW9QcmVzZW50YXRp
b25Nb2RlOjpQaWN0dXJlSW5QaWN0dXJlKQogICAgICAgICAgICAgICAgIG1faXNFeGl0aW5nUGlj
dHVyZUluUGljdHVyZSA9IHRydWU7CiAKLSAgICAgICAgICAgIG1faXNDaGFuZ2luZ1ZpZGVvRnVs
bHNjcmVlbk1vZGUgPSB0cnVlOwogICAgICAgICAgICAgZXhpdEZ1bGxzY3JlZW4oKTsKICAgICAg
ICAgfQogCkBAIC01MDAsNyArNDk3LDYgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpzZXRQcmVz
ZW50YXRpb25Nb2RlKFZpZGVvUHJlc2VudGF0aW9uTW9kZSBtb2RlKQogICAgIGVsc2UgaWYgKGZ1
bGxzY3JlZW5Nb2RlKCkgPT0gVmlkZW9GdWxsc2NyZWVuTW9kZVBpY3R1cmVJblBpY3R1cmUpCiAg
ICAgICAgIG1faXNFeGl0aW5nUGljdHVyZUluUGljdHVyZSA9IHRydWU7CiAKLSAgICBtX2lzQ2hh
bmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlID0gdHJ1ZTsKICAgICBlbnRlckZ1bGxzY3JlZW4odmlk
ZW9GdWxsc2NyZWVuTW9kZSk7CiB9CiAKQEAgLTUxMSwyMCArNTA3LDI1IEBAIGF1dG8gSFRNTFZp
ZGVvRWxlbWVudDo6d2Via2l0UHJlc2VudGF0aW9uTW9kZSgpIGNvbnN0IC0+IFZpZGVvUHJlc2Vu
dGF0aW9uTW9kZQogCiB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OmRpZEVudGVyRnVsbHNjcmVlbk9y
UGljdHVyZUluUGljdHVyZShjb25zdCBGbG9hdFNpemUmIHNpemUpCiB7Ci0gICAgbV9pc0NoYW5n
aW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IGZhbHNlOwotICAgIGlmIChtX2lzRW50ZXJpbmdQaWN0
dXJlSW5QaWN0dXJlIHx8IG1faXNFeGl0aW5nUGljdHVyZUluUGljdHVyZSkgeworICAgIGlmICht
X2lzRW50ZXJpbmdQaWN0dXJlSW5QaWN0dXJlKSB7CisgICAgICAgIG1faXNFbnRlcmluZ1BpY3R1
cmVJblBpY3R1cmUgPSBmYWxzZTsKKyAgICAgICAgc2V0Q2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5N
b2RlKGZhbHNlKTsKKwogI2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKQotICAgICAg
ICBpZiAobV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIpIHsKLSAgICAgICAgICAgIGlmIChtX2lz
RW50ZXJpbmdQaWN0dXJlSW5QaWN0dXJlKQotICAgICAgICAgICAgICAgIG1fcGljdHVyZUluUGlj
dHVyZU9ic2VydmVyLT5kaWRFbnRlclBpY3R1cmVJblBpY3R1cmUoZmxvb3JlZEludFNpemUoc2l6
ZSkpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG1fcGljdHVyZUluUGljdHVy
ZU9ic2VydmVyLT5kaWRFeGl0UGljdHVyZUluUGljdHVyZSgpOwotICAgICAgICB9CisgICAgICAg
IGlmIChtX3BpY3R1cmVJblBpY3R1cmVPYnNlcnZlcikKKyAgICAgICAgICAgIG1fcGljdHVyZUlu
UGljdHVyZU9ic2VydmVyLT5kaWRFbnRlclBpY3R1cmVJblBpY3R1cmUoZmxvb3JlZEludFNpemUo
c2l6ZSkpOwogI2Vsc2UKICAgICAgICAgVU5VU0VEX1BBUkFNKHNpemUpOwogI2VuZGlmCi0gICAg
ICAgIG1faXNFbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGlmIChtX2lzRXhpdGluZ1BpY3R1cmVJblBpY3R1cmUpIHsKICAgICAg
ICAgbV9pc0V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlID0gZmFsc2U7CisjaWYgRU5BQkxFKFBJQ1RV
UkVfSU5fUElDVFVSRV9BUEkpCisgICAgICAgIGlmIChtX3BpY3R1cmVJblBpY3R1cmVPYnNlcnZl
cikKKyAgICAgICAgICAgIG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyLT5kaWRFeGl0UGljdHVy
ZUluUGljdHVyZSgpOworI2VuZGlmCiAgICAgfQogCiAgICAgSFRNTE1lZGlhRWxlbWVudDo6ZGlk
QmVjb21lRnVsbHNjcmVlbkVsZW1lbnQoKTsKQEAgLTUzMiwyMyArNTMzLDI0IEBAIHZvaWQgSFRN
TFZpZGVvRWxlbWVudDo6ZGlkRW50ZXJGdWxsc2NyZWVuT3JQaWN0dXJlSW5QaWN0dXJlKGNvbnN0
IEZsb2F0U2l6ZSYgc2l6CiAKIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6ZGlkRXhpdEZ1bGxzY3Jl
ZW5PclBpY3R1cmVJblBpY3R1cmUoKQogewotICAgIG1faXNDaGFuZ2luZ1ZpZGVvRnVsbHNjcmVl
bk1vZGUgPSBmYWxzZTsKICAgICBpZiAobV9pc0V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlKSB7CiAg
ICAgICAgIG1faXNFeGl0aW5nUGljdHVyZUluUGljdHVyZSA9IGZhbHNlOworICAgICAgICBzZXRD
aGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUoZmFsc2UpOworCiAjaWYgRU5BQkxFKFBJQ1RVUkVf
SU5fUElDVFVSRV9BUEkpCiAgICAgICAgIGlmIChtX3BpY3R1cmVJblBpY3R1cmVPYnNlcnZlcikK
ICAgICAgICAgICAgIG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyLT5kaWRFeGl0UGljdHVyZUlu
UGljdHVyZSgpOwogI2VuZGlmCisgICAgICAgIHJldHVybjsKICAgICB9CisKKyAgICBIVE1MTWVk
aWFFbGVtZW50OjpkaWRTdG9wQmVpbmdGdWxsc2NyZWVuRWxlbWVudCgpOwogfQogCi0jaWYgRU5B
QkxFKEZVTExTQ1JFRU5fQVBJKSAmJiBFTkFCTEUoVklERU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JF
RU4pCi12b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OmRpZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KCkK
K2Jvb2wgSFRNTFZpZGVvRWxlbWVudDo6aXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUoKSBjb25z
dAogewotICAgIG1faXNDaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSBmYWxzZTsKLSAgICBI
VE1MTWVkaWFFbGVtZW50OjpkaWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCgpOworICAgIHJldHVy
biBpc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSgpOwogfQotI2VuZGlmCiAKIHZvaWQgSFRN
TFZpZGVvRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoY29uc3QgRmxvYXRSZWN0JiBm
cmFtZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKaW5kZXggZWQzNGRk
MzZkY2U3YzZkY2FlZWRiNDNmNzMyNDVjZDljZmEwOTM0My4uZGI5MzgwZWQ1ODE0ZmE0ZTE0OTJk
ZmFhOTQ1ZTIxYTY0ZTQ1ZGE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VmlkZW9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50
LmgKQEAgLTkxLDEwICs5MSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dFByZXNlbnRhdGlvbk1vZGUoVmlkZW9QcmVzZW50YXRpb25Nb2RlKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbk9yUGljdHVyZUluUGljdHVyZShjb25zdCBGbG9h
dFNpemUmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuT3JQaWN0
dXJlSW5QaWN0dXJlKCk7Ci0KLSNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpICYmIEVOQUJMRShW
SURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRp
ZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KCkgZmluYWw7Ci0jZW5kaWYKKyAgICBXRUJDT1JFX0VY
UE9SVCBib29sIGlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKCkgY29uc3Q7CiAKICAgICB2b2lk
IHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKGNvbnN0IEZsb2F0UmVjdCYpIGZpbmFsOwogCkBAIC0x
MzgsNyArMTM1LDYgQEAgcHJpdmF0ZToKIAogICAgIHVuc2lnbmVkIG1fbGFzdFJlcG9ydGVkVmlk
ZW9XaWR0aCB7IDAgfTsKICAgICB1bnNpZ25lZCBtX2xhc3RSZXBvcnRlZFZpZGVvSGVpZ2h0IHsg
MCB9OwotICAgIGJvb2wgbV9pc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSB7IGZhbHNlIH07
CiAKICNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCiAgICAgYm9vbCBtX2lzRW50
ZXJpbmdQaWN0dXJlSW5QaWN0dXJlIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcAppbmRleCA1OTEwNjEyMWE2NjVlMThlZDQ5NjY4MWU3ZmRkMzVkYzcyYTBiMGU3Li43
NjMxZjdmODA5NDhlMTZjY2RhYTA3ZDQwMzM5MWNjOTQ0MmI3ZjMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCkBAIC0zMzUxLDYgKzMzNTEsMTEgQEAgdm9pZCBJbnRlcm5hbHM6
OnNldEZ1bGxzY3JlZW5Db250cm9sc0hpZGRlbihib29sIGhpZGRlbikKIH0KIAogI2lmIEVOQUJM
RShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKK2Jvb2wgSW50ZXJuYWxzOjppc0NoYW5naW5nUHJl
c2VudGF0aW9uTW9kZShIVE1MVmlkZW9FbGVtZW50JiBlbGVtZW50KSBjb25zdAoreworICAgIHJl
dHVybiBlbGVtZW50LmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKCk7Cit9CisKIHZvaWQgSW50
ZXJuYWxzOjpzZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZChib29sIGVuYWJsZWQp
CiB7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY29udGV4dERvY3VtZW50KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBkMTdjZGVkMWQyMTllNjUzOGNjMTQ4MTMzYzU2ZWZi
MTJhYWM1YWUzLi43MzE5YmYzYzEzZTYwZjY2Y2JmNmVhYmY4ZmE0NDRiOGZjNTgzYTI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTUwOCw2ICs1MDgsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRGdWxsc2NyZWVuQ29udHJvbHNIaWRkZW4oYm9vbCk7CiAKICNpZiBFTkFCTEUo
VklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgYm9vbCBpc0NoYW5naW5nUHJlc2VudGF0aW9u
TW9kZShIVE1MVmlkZW9FbGVtZW50JikgY29uc3Q7CiAgICAgdm9pZCBzZXRNb2NrVmlkZW9QcmVz
ZW50YXRpb25Nb2RlRW5hYmxlZChib29sKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwKaW5kZXggZmQ2N2U3MTIyYWNkNDE2YmNkZDcwNGVhNWQwMDM1NWY5YzY4YjA0
Mi4uOTM3MjVjNTk1ODY0ZTRkNjlmYzJlZDIxNzBiZWM1YzY4ZWJhY2UxZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtNTY0LDYgKzU2NCw3IEBAIGVudW0gQ29udGVudFNp
emVDYXRlZ29yeSB7CiAgICAgdW5kZWZpbmVkIHNldEZ1bGxzY3JlZW5BdXRvSGlkZUR1cmF0aW9u
KGRvdWJsZSBkdXJhdGlvbik7CiAgICAgdW5kZWZpbmVkIHNldEZ1bGxzY3JlZW5Db250cm9sc0hp
ZGRlbihib29sZWFuIGhpZGRlbik7CiAKKyAgICBbQ29uZGl0aW9uYWw9VklERU9fUFJFU0VOVEFU
SU9OX01PREVdIGJvb2xlYW4gaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUoSFRNTFZpZGVvRWxl
bWVudCBlbGVtZW50KTsKICAgICBbQ29uZGl0aW9uYWw9VklERU9fUFJFU0VOVEFUSU9OX01PREVd
IHVuZGVmaW5lZCBzZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZChib29sZWFuIGVu
YWJsZWQpOwogCiAgICAgdW5kZWZpbmVkIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1
bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGU0MzdhYjIxNDAxNWVmNTJjMWFlYzQxZGZmMGI3ZWZkYmY2
MWY3MDEuLmVkYzczNDhhMTViNWE3ZGY1MjA3MGRmNDU1ZGQ2MDgyZDA4N2Q4MTcgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAyMC0wOS0xNyAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAgICAg
IExldCB3ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbigpIHJldHVybiB0cnVlIHdoZW4gYSB2aWRl
byBlbGVtZW504oCZcyBmdWxsc2NyZWVuIG1vZGUgaXMgbm90IFZpZGVvRnVsbHNjcmVlbk1vZGVO
b25lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY0
MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3Q2xvc2VBbGxNZWRpYVByZXNl
bnRhdGlvbnMubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgVXNlIGludGVybmFscy5pc0No
YW5naW5nUHJlc2VudGF0aW9uTW9kZSgpIHRvIGNoZWNrIHdoZXRoZXIgYSB2aWRlbyBwcmVzZW50
YXRpb24KKyAgICAgICAgY2hhbmdlIChmcm9tIGlubGluZSB0byBwaWN0dXJlLWluLXBpY3R1cmUp
IGlzIGNvbXBsZXRlZCBiZWZvcmUgbW92aW5nIHRvIHRoZSBuZXh0CisgICAgICAgIHN0ZXAgb2Yg
dGhlIHRlc3QuCisKIDIwMjAtMDktMTcgIFbDrWN0b3IgTWFudWVsIErDoXF1ZXogTGVhbCAgPHZq
YXF1ZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbRmxhdHBhayBTREtdIGJ3cmFwOiBhZGQgcGlw
ZXdpcmUgc29ja2V0IGFzIGJpbmQgbW91bnQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3Q2xvc2VBbGxNZWRpYVByZXNlbnRhdGlvbnMu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0Nsb3Nl
QWxsTWVkaWFQcmVzZW50YXRpb25zLm1tCmluZGV4IGUxMDVlZmI1YTViNGJmOTU3ZjQ5YTEzZGU3
M2UyNTg4YzQ5ZDIzYzAuLjAyOGIwNzllOGE5OTE5NjFkYThkYmFlYmZlYjA3OGVjZmNiMmJkN2Ug
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJW
aWV3Q2xvc2VBbGxNZWRpYVByZXNlbnRhdGlvbnMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdDbG9zZUFsbE1lZGlhUHJlc2VudGF0aW9ucy5t
bQpAQCAtMjcsNiArMjcsNyBAQAogCiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgogI2lt
cG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCAiV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4
dHJhcy5oIgogI2ltcG9ydCA8V2ViQ29yZS9QaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5oPgogI2lt
cG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tX
ZWJWaWV3UHJpdmF0ZS5oPgpAQCAtNDAsMTcgKzQxLDE5IEBAIFRFU1QoV0tXZWJWaWV3Q2xvc2VB
bGxNZWRpYVByZXNlbnRhdGlvbnMsIFBpY3R1cmVJblBpY3R1cmUpCiAgICAgaWYgKCFXZWJDb3Jl
OjpzdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0
byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLnByZWZlcmVuY2VzLl9hbGxvd3NQaWN0
dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayA9IFlFUzsKLSAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAs
IDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6
WUVTXSk7CisgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9u
IF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQ
bHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107CisgICAgW1tj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0QWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlh
UGxheWJhY2s6WUVTXTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb24gYWRkVG9XaW5kb3c6WUVTXSk7CiAKICAgICBbd2ViVmlldyBz
eW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8dmlkZW8gc3JjPXZpZGVvLXdpdGgtYXVkaW8u
bXA0IHdlYmtpdC1wbGF5c2lubGluZSBwbGF5c2lubGluZSBsb29wPjwvdmlkZW8+Il07CiAKLSAg
ICBbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0V2l0aFVzZXJHZXN0dXJlOkAi
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8nKS53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2Rl
KCdwaWN0dXJlLWluLXBpY3R1cmUnKSJdOworICAgIF9fYmxvY2sgYm9vbCBwcmVzZW50YXRpb25N
b2RlQ2hhbmdlZCA9IGZhbHNlOworICAgIFt3ZWJWaWV3IHBlcmZvcm1BZnRlclJlY2VpdmluZ01l
c3NhZ2U6QCJwcmVzZW50YXRpb25tb2RlY2hhbmdlZCIgYWN0aW9uOl57IHByZXNlbnRhdGlvbk1v
ZGVDaGFuZ2VkID0gdHJ1ZTsgfV07CiAKKyAgICBbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdK
YXZhU2NyaXB0V2l0aFVzZXJHZXN0dXJlOkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8n
KS53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdwaWN0dXJlLWluLXBpY3R1cmUnKSJdOworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcHJlc2VudGF0aW9uTW9kZUNoYW5nZWQpOwogICAg
IGRvIHsKLSAgICAgICAgaWQgcmVzdWx0ID0gW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2
YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvJykud2Via2l0RGlzcGxheWlu
Z0Z1bGxzY3JlZW4iXTsKLSAgICAgICAgaWYgKFtyZXN1bHQgYm9vbFZhbHVlXSkKKyAgICAgICAg
aWYgKCFbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93LmludGVy
bmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2
aWRlbycpKSJdLmJvb2xWYWx1ZSkKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnNsZWVwKDAuNSk7CkBAIC01OCw3ICs2MSw3IEBAIFRFU1QoV0tXZWJW
aWV3Q2xvc2VBbGxNZWRpYVByZXNlbnRhdGlvbnMsIFBpY3R1cmVJblBpY3R1cmUpCiAKICAgICBb
d2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigndmlkZW8nKS5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hh
bmdlZCcsIGV2ZW50ID0+IHsgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRs
ZXIucG9zdE1lc3NhZ2UoJ3ByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkJyk7IH0pOyJdOwogCi0gICAg
X19ibG9jayBib29sIHByZXNlbnRhdGlvbk1vZGVDaGFuZ2VkID0gZmFsc2U7CisgICAgcHJlc2Vu
dGF0aW9uTW9kZUNoYW5nZWQgPSBmYWxzZTsKICAgICBbd2ViVmlldyBwZXJmb3JtQWZ0ZXJSZWNl
aXZpbmdNZXNzYWdlOkAicHJlc2VudGF0aW9ubW9kZWNoYW5nZWQiIGFjdGlvbjpeeyBwcmVzZW50
YXRpb25Nb2RlQ2hhbmdlZCA9IHRydWU7IH1dOwogCiAgICAgW3dlYlZpZXcgX2Nsb3NlQWxsTWVk
aWFQcmVzZW50YXRpb25zXTsKQEAgLTc0LDkgKzc3LDkgQEAgVEVTVChXS1dlYlZpZXdDbG9zZUFs
bE1lZGlhUHJlc2VudGF0aW9ucywgUGljdHVyZUluUGljdHVyZSkKIAogVEVTVChXS1dlYlZpZXdD
bG9zZUFsbE1lZGlhUHJlc2VudGF0aW9ucywgVmlkZW9GdWxsc2NyZWVuKQogewotICAgIGF1dG8g
Y29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBp
bml0XSk7Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5wcmVmZXJlbmNlcy5fZnVsbFNjcmVlbkVu
YWJsZWQgPSBZRVM7Ci0gICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOworICAgIGF1dG8gKmNv
bmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9u
V2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIg
Y29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10gX3NldEZ1bGxTY3JlZW5FbmFibGVkOllFU107CisgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAw
LCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uIGFkZFRvV2luZG93OllFU10p
OwogCiAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPHZpZGVvIHNy
Yz12aWRlby13aXRoLWF1ZGlvLm1wNCB3ZWJraXQtcGxheXNpbmxpbmUgcGxheXNpbmxpbmUgbG9v
cD48L3ZpZGVvPiJdOwogICAgIFt3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6
QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpLmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtp
dHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkJywgZXZlbnQgPT4geyB3aW5kb3cud2Via2l0Lm1lc3Nh
Z2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgncHJlc2VudGF0aW9ubW9kZWNoYW5n
ZWQnKTsgfSk7Il07CkBAIC04NSw4ICs4OCwxNSBAQCBURVNUKFdLV2ViVmlld0Nsb3NlQWxsTWVk
aWFQcmVzZW50YXRpb25zLCBWaWRlb0Z1bGxzY3JlZW4pCiAgICAgW3dlYlZpZXcgcGVyZm9ybUFm
dGVyUmVjZWl2aW5nTWVzc2FnZTpAInByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIiBhY3Rpb246Xnsg
cHJlc2VudGF0aW9uTW9kZUNoYW5nZWQgPSB0cnVlOyB9XTsKIAogICAgIFt3ZWJWaWV3IG9iamVj
dEJ5RXZhbHVhdGluZ0phdmFTY3JpcHRXaXRoVXNlckdlc3R1cmU6QCJkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCd2aWRlbycpLndlYmtpdEVudGVyRnVsbHNjcmVlbigpIl07CisgICAgW3dlYlZpZXcg
b2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5pbnRlcm5hbHMuc2V0TW9ja1Zp
ZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQodHJ1ZSkiXTsKIAogICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmcHJlc2VudGF0aW9uTW9kZUNoYW5nZWQpOworICAgIGRvIHsKKyAgICAgICAg
aWYgKCFbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93LmludGVy
bmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2
aWRlbycpKSJdLmJvb2xWYWx1ZSkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnNsZWVwKDAuNSk7CisgICAgfSB3aGlsZSAodHJ1ZSk7CiAKICAgICBw
cmVzZW50YXRpb25Nb2RlQ2hhbmdlZCA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IHBlcmZvcm1BZnRl
clJlY2VpdmluZ01lc3NhZ2U6QCJwcmVzZW50YXRpb25tb2RlY2hhbmdlZCIgYWN0aW9uOl57IHBy
ZXNlbnRhdGlvbk1vZGVDaGFuZ2VkID0gdHJ1ZTsgfV07CkBAIC0xMDAsOSArMTEwLDkgQEAgVEVT
VChXS1dlYlZpZXdDbG9zZUFsbE1lZGlhUHJlc2VudGF0aW9ucywgVmlkZW9GdWxsc2NyZWVuKQog
CiBURVNUKFdLV2ViVmlld0Nsb3NlQWxsTWVkaWFQcmVzZW50YXRpb25zLCBFbGVtZW50RnVsbHNj
cmVlbikKIHsKLSAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkucHJlZmVy
ZW5jZXMuX2Z1bGxTY3JlZW5FbmFibGVkID0gWUVTOwotICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwg
ODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZ
RVNdKTsKKyAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
X3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1Bs
dWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKKyAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRGdWxsU2NyZWVuRW5hYmxlZDpZRVNdOworICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
biBhZGRUb1dpbmRvdzpZRVNdKTsKIAogICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRN
TFN0cmluZzpAIjxkaXYgaWQ9XCJ0YXJnZXRcIiBzdHlsZT1cIndpZHRoOjEwMHB4O2hlaWdodDox
MDBweDtiYWNrZ3JvdW5kLWNvbG9yOnJlZFwiPjwvZGl2PiJdOwogICAgIFt3ZWJWaWV3IG9iamVj
dEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdGFyZ2V0
JykuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0ZnVsbHNjcmVlbmNoYW5nZScsIGV2ZW50ID0+IHsg
d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ2Z1
bGxzY3JlZW5jaGFuZ2UnKTsgfSk7Il07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjc2MWU1ZWExMWM5NDZiYzk1MjZmZjI0
OGQxZThiMTE5ZjNlMTAwMi4uNDljNDNhOGQwZTUyYmFiZTkyOTIwNWQ0N2JlMzE2ZWU5NDNiOTRj
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTA5LTE3ICBQZW5nIExpdSAgPHBlbmcubGl1
NkBhcHBsZS5jb20+CisKKyAgICAgICAgTGV0IHdlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuKCkg
cmV0dXJuIHRydWUgd2hlbiBhIHZpZGVvIGVsZW1lbnTigJlzIGZ1bGxzY3JlZW4gbW9kZSBpcyBu
b3QgVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNjQyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlh
LWNvbnRyb2xzLWxpdmUtYnJvYWRjYXN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNv
bnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtbGl2ZS1icm9hZGNhc3QuaHRt
bDoKKyAgICAgICAgKiBtZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy5odG1sOgorICAgICAgICAq
IG1lZGlhL21lZGlhLWZ1bGxzY3JlZW4tbG9vcC1pbmxpbmUtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIG1lZGlhL21lZGlhLWZ1bGxzY3JlZW4tbG9vcC1pbmxpbmUuaHRtbDoKKyAgICAgICAgKiBt
ZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXBhdXNlLWlubGluZS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1wYXVzZS1pbmxpbmUuaHRtbDoKKyAgICAgICAgKiBt
ZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXJldHVybi10by1pbmxpbmUtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIG1lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcmV0dXJuLXRvLWlubGluZS5odG1sOgorICAg
ICAgICAqIG1lZGlhL3ByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkLWZpcmVkLW9uY2UtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIG1lZGlhL3ByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkLWZpcmVkLW9uY2Uu
aHRtbDoKKyAgICAgICAgKiBtZWRpYS92aWRlby1mdWxsc2NyZWVuLW9ubHktcGxheWJhY2stZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIG1lZGlhL3ZpZGVvLWZ1bGxzY3JlZW4tb25seS1wbGF5YmFj
ay5odG1sOgorICAgICAgICAqIG1lZGlhL3ZpZGVvLXBsYXlzaW5saW5lLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBtZWRpYS92aWRlby1wbGF5c2lubGluZS5odG1sOgorICAgICAgICAqIG1lZGlh
L3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBtZWRpYS92
aWRlby1wcmVzZW50YXRpb24tbW9kZS5odG1sOgorICAgICAgICAqIG1lZGlhL3ZpZGVvLXdlYmtp
dC1wbGF5c2lubGluZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEvdmlkZW8td2Via2l0
LXBsYXlzaW5saW5lLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlv
bnM6CisKIDIwMjAtMDktMTcgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW0NvY29hXSBjYW5QbGF5VHlwZSgnYXVkaW8vbXBlZzsgY29kZWNzPSJtcDMi
JykgcmV0dXJucyAiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNv
cy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWxpdmUtYnJvYWRjYXN0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29z
LWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9s
cy1saXZlLWJyb2FkY2FzdC1leHBlY3RlZC50eHQKaW5kZXggYjMyYTdjMTc0OWFjYmM3NmRkNmVj
MWEwN2ZmOWVmZDdkZTQyN2IzYy4uN2I2Njk0OTUzZDZlMzQwOGQwNzcwNWI2MDVhN2Q1OWQ1MDkz
NTlmMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2Ny
ZWVuLW1lZGlhLWNvbnRyb2xzLWxpdmUtYnJvYWRjYXN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxs
c2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtbGl2
ZS1icm9hZGNhc3QtZXhwZWN0ZWQudHh0CkBAIC0zLDcgKzMsNyBAQCBUZXN0aW5nIHRoYXQgd2Ug
ZG8gbm90IHNob3cgdGhlIHNlZWtpbmcgY29udHJvbHMgaW4gZnVsbHNjcmVlbiB3aXRoIGEgbGl2
ZSBicm9hZAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgbWVkaWEud2Via2l0
RGlzcGxheWluZ0Z1bGxzY3JlZW4gYmVjYW1lIHRydWUKK1BBU1MgbWVkaWEud2Via2l0RGlzcGxh
eWluZ0Z1bGxzY3JlZW4gaXMgdHJ1ZQogUEFTUyBtZWRpYS5kdXJhdGlvbiBiZWNhbWUgTnVtYmVy
LlBPU0lUSVZFX0lORklOSVRZCiBQQVNTIG1lZGlhQ29udHJvbGxlci5jb250cm9scy5yZXdpbmRC
dXR0b24uZW5hYmxlZCBpcyBmYWxzZQogUEFTUyBtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMuZm9y
d2FyZEJ1dHRvbi5lbmFibGVkIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlh
LWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtbGl2ZS1icm9hZGNhc3Qu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1j
b250cm9scy1saXZlLWJyb2FkY2FzdC5odG1sCmluZGV4IGFmYmU4ODE0ZTY4NTA4NGNmYWI2NTk5
YmEyYmQ0NWI1ZTcwZGZkMGIuLmI2NGI0M2EyMzM1OTBkYWJmNDhlMzE3YTY4ZjBiMGM2YjNjNDM0
MjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVl
bi1tZWRpYS1jb250cm9scy1saXZlLWJyb2FkY2FzdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVk
aWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1saXZlLWJyb2FkY2Fz
dC5odG1sCkBAIC0xNSwxOCArMTUsMTcgQEAgY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCJ2aWRlbyIpOwogY29uc3QgbWVkaWFDb250cm9sbGVyID0gY3JlYXRlQ29udHJvbHMo
c2hhZG93Um9vdCwgbWVkaWEsIG51bGwpOwogCiBtZWRpYS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJr
aXRmdWxsc2NyZWVuY2hhbmdlIiwgKCkgPT4gewotICAgIHNob3VsZEJlY29tZUVxdWFsKCJtZWRp
YS53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiIsICJ0cnVlIiwgKCkgPT4gewotICAgICAgICBz
aG91bGRCZWNvbWVFcXVhbCgibWVkaWEuZHVyYXRpb24iLCAiTnVtYmVyLlBPU0lUSVZFX0lORklO
SVRZIiwgKCkgPT4gewotICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgibWVkaWFDb250cm9sbGVy
LmNvbnRyb2xzLnJld2luZEJ1dHRvbi5lbmFibGVkIik7Ci0gICAgICAgICAgICBzaG91bGRCZUZh
bHNlKCJtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMuZm9yd2FyZEJ1dHRvbi5lbmFibGVkIik7Ci0g
ICAgICAgICAgICBzaG91bGRCZSgibWVkaWFDb250cm9sbGVyLmNvbnRyb2xzLnRpbWVDb250cm9s
LnBhcmVudCIsICJudWxsIik7Ci0gICAgICAgICAgICBzaG91bGRCZSgibWVkaWFDb250cm9sbGVy
LmNvbnRyb2xzLnN0YXR1c0xhYmVsLnBhcmVudCIsICJtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMu
Ym90dG9tQ29udHJvbHNCYXIiKTsKLQotICAgICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAg
ICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAgICAgICAgICBzaGFkb3dSb290Lmhvc3QucmVtb3ZlKCk7
Ci0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfSk7CisgICAgc2hvdWxkQmVU
cnVlKCJtZWRpYS53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiIpOworICAgIHNob3VsZEJlY29t
ZUVxdWFsKCJtZWRpYS5kdXJhdGlvbiIsICJOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkiLCAoKSA9
PiB7CisgICAgICAgIHNob3VsZEJlRmFsc2UoIm1lZGlhQ29udHJvbGxlci5jb250cm9scy5yZXdp
bmRCdXR0b24uZW5hYmxlZCIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJtZWRpYUNvbnRyb2xs
ZXIuY29udHJvbHMuZm9yd2FyZEJ1dHRvbi5lbmFibGVkIik7CisgICAgICAgIHNob3VsZEJlKCJt
ZWRpYUNvbnRyb2xsZXIuY29udHJvbHMudGltZUNvbnRyb2wucGFyZW50IiwgIm51bGwiKTsKKyAg
ICAgICAgc2hvdWxkQmUoIm1lZGlhQ29udHJvbGxlci5jb250cm9scy5zdGF0dXNMYWJlbC5wYXJl
bnQiLCAibWVkaWFDb250cm9sbGVyLmNvbnRyb2xzLmJvdHRvbUNvbnRyb2xzQmFyIik7CisKKyAg
ICAgICAgZGVidWcoIiIpOworICAgICAgICBtZWRpYS5yZW1vdmUoKTsKKyAgICAgICAgc2hhZG93
Um9vdC5ob3N0LnJlbW92ZSgpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9KTsKIH0p
OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy5o
dG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMuaHRtbAppbmRleCAw
NTllZWE3MDk1MmY4NTdmYmM2MjU2Yjg0OTY3ZmY2MWE2MzI3ZTM2Li5kMzkzYzc5MGIxODVkMzc0
MDQ5YTM3MzE3N2E5NmRlOTk0MjY5OWVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9j
b250ZXh0LW1lbnUtYWN0aW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL2NvbnRleHQt
bWVudS1hY3Rpb25zLmh0bWwKQEAgLTEsODcgKzEsODYgQEAKKzwhRE9DVFlQRSBodG1sPgogPGh0
bWw+CiA8aGVhZD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhLWZpbGUuanMiPjwvc2NyaXB0
PgotICAgICAgICA8c2NyaXB0IHNyYz0idmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gICAgICAg
IDxzY3JpcHQ+Ci0KLSAgICAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHBsYXlpbmcoKQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAg
ICAgICAgICAgICAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikgewotICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBlbmRUZXN0KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgIDxzY3JpcHQgc3JjPSJt
ZWRpYS1maWxlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0idmlkZW8tdGVzdC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gcGxheWluZygp
CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICAgICAgICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICAgICAgICAgICAgICBlbmRUZXN0KCk7
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBmaW5kTWVkaWFFbGVt
ZW50KCk7Ci0KLSAgICAgICAgICAgICAgICB2YXIgeCwgeSwgaXRlbXM7Ci0gICAgICAgICAgICAg
ICAgeCA9IHZpZGVvLm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0ICsgdmlkZW8ub2Zmc2V0TGVmdCAr
IHZpZGVvLm9mZnNldFdpZHRoIC8gMjsKLSAgICAgICAgICAgICAgICB5ID0gdmlkZW8ub2Zmc2V0
UGFyZW50Lm9mZnNldFRvcCArIHZpZGVvLm9mZnNldFRvcCArIHZpZGVvLm9mZnNldEhlaWdodCAv
IDI7Ci0gICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7Ci0gICAg
ICAgICAgICAgICAgaXRlbXMgPSBldmVudFNlbmRlci5jb250ZXh0Q2xpY2soKTsKLQorICAgICAg
ICAgICAgZmluZE1lZGlhRWxlbWVudCgpOwogCi0gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgIGlmIChpdGVtc1tpXS50aXRsZS5tYXRjaCgiQ29udHJvbHMiKSkgewotICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmNvbnRyb2xzIiwgdHJ1ZSwgJz09
Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVG9nZ2xpbmcgbWVkaWEg
Y29udHJvbHMiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNbaV0uY2xpY2soKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5jb250cm9scyIsIGZhbHNl
LCAnPT0nKTsKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKLSAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgdmFyIHgsIHksIGl0ZW1zOworICAgICAgICAg
ICAgeCA9IHZpZGVvLm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0ICsgdmlkZW8ub2Zmc2V0TGVmdCAr
IHZpZGVvLm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgICAgIHkgPSB2aWRlby5vZmZzZXRQYXJl
bnQub2Zmc2V0VG9wICsgdmlkZW8ub2Zmc2V0VG9wICsgdmlkZW8ub2Zmc2V0SGVpZ2h0IC8gMjsK
KyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOworICAgICAgICAgICAg
aXRlbXMgPSBldmVudFNlbmRlci5jb250ZXh0Q2xpY2soKTsKIAotICAgICAgICAgICAgICAgICAg
ICBpZiAoaXRlbXNbaV0udGl0bGUubWF0Y2goIlBhdXNlIikpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5wYXVzZWQiLCBmYWxzZSwgJz09Jyk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVG9nZ2xpbmcgcGxheSBzdGF0ZSIpOwotICAg
ICAgICAgICAgICAgICAgICAgICBpdGVtc1tpXS5jbGljaygpOwotICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnBhdXNlZCIsIHRydWUsICc9PScpOwotICAgICAgICAg
ICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOwotICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIGlmIChpdGVtc1tpXS50aXRsZS5tYXRjaCgiQ29udHJv
bHMiKSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmNvbnRyb2xz
IiwgdHJ1ZSwgJz09Jyk7CisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVG9nZ2xp
bmcgbWVkaWEgY29udHJvbHMiKTsKKyAgICAgICAgICAgICAgICAgICAgaXRlbXNbaV0uY2xpY2so
KTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5jb250cm9scyIsIGZh
bHNlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAg
ICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLnRpdGxlLm1h
dGNoKCJMb29wIikpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRl
by5sb29wIiwgZmFsc2UsICc9PScpOwotICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3Jp
dGUoIlRvZ2dsaW5nIGxvb3Agc3RhdGUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNb
aV0uY2xpY2soKTsKLSAgICAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5s
b29wIiwgdHJ1ZSwgJz09Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgi
Iik7Ci0gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaXRlbXNbaV0u
dGl0bGUubWF0Y2goIlBhdXNlIikpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVk
KCJ2aWRlby5wYXVzZWQiLCBmYWxzZSwgJz09Jyk7CisgICAgICAgICAgICAgICAgICAgIGNvbnNv
bGVXcml0ZSgiVG9nZ2xpbmcgcGxheSBzdGF0ZSIpOworICAgICAgICAgICAgICAgICAgICBpdGVt
c1tpXS5jbGljaygpOworICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnBh
dXNlZCIsIHRydWUsICc9PScpOworICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIp
OworICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbXNbaV0u
dGl0bGUubWF0Y2goIk11dGUiKSkgewotICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0
ZWQoInZpZGVvLm11dGVkIiwgZmFsc2UsICc9PScpOwotICAgICAgICAgICAgICAgICAgICAgICBj
b25zb2xlV3JpdGUoIlRvZ2dsaW5nIG11dGUgc3RhdGUiKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgaXRlbXNbaV0uY2xpY2soKTsKLSAgICAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVk
KCJ2aWRlby5tdXRlZCIsIHRydWUsICc9PScpOwotICAgICAgICAgICAgICAgICAgICAgICBjb25z
b2xlV3JpdGUoIiIpOwotICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYg
KGl0ZW1zW2ldLnRpdGxlLm1hdGNoKCJMb29wIikpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVz
dEV4cGVjdGVkKCJ2aWRlby5sb29wIiwgZmFsc2UsICc9PScpOworICAgICAgICAgICAgICAgICAg
ICBjb25zb2xlV3JpdGUoIlRvZ2dsaW5nIGxvb3Agc3RhdGUiKTsKKyAgICAgICAgICAgICAgICAg
ICAgaXRlbXNbaV0uY2xpY2soKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2
aWRlby5sb29wIiwgdHJ1ZSwgJz09Jyk7CisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0
ZSgiIik7CisgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgICAgIGlmIChpdGVt
c1tpXS50aXRsZS5tYXRjaCgiRnVsbHNjcmVlbiIpICYmIHZpZGVvLndlYmtpdFN1cHBvcnRzRnVs
bHNjcmVlbikgewotICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndl
YmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIiwgZmFsc2UsICc9PScpOwotICAgICAgICAgICAgICAg
ICAgICAgICBjb25zb2xlV3JpdGUoIlRvZ2dsaW5nIGZ1bGxzY3JlZW4gc3RhdGUiKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgaXRlbXNbaV0uY2xpY2soKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgidmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1
bGxzY3JlZW4iLCB0cnVlLCAiPT0iLCAxMDAwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgY29u
c29sZVdyaXRlKCIiKTsKLSAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlm
IChpdGVtc1tpXS50aXRsZS5tYXRjaCgiTXV0ZSIpKSB7CisgICAgICAgICAgICAgICAgICAgIHRl
c3RFeHBlY3RlZCgidmlkZW8ubXV0ZWQiLCBmYWxzZSwgJz09Jyk7CisgICAgICAgICAgICAgICAg
ICAgIGNvbnNvbGVXcml0ZSgiVG9nZ2xpbmcgbXV0ZSBzdGF0ZSIpOworICAgICAgICAgICAgICAg
ICAgICBpdGVtc1tpXS5jbGljaygpOworICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQo
InZpZGVvLm11dGVkIiwgdHJ1ZSwgJz09Jyk7CisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVX
cml0ZSgiIik7CisgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgICAgIC8vIFRP
RE86IHRlc3QgY29weSBsaW5rIGxvY2F0aW9uIGFuZCBvcGVuIGluIG5ldyB3aW5kb3cuCi0gICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
Ci0gICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICBpZiAoaXRlbXNbaV0udGl0bGUubWF0Y2goIkZ1bGxzY3JlZW4iKSAmJiB2aWRlby53ZWJr
aXRTdXBwb3J0c0Z1bGxzY3JlZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVk
KCJ2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiIsIGZhbHNlLCAnPT0nKTsKKyAgICAg
ICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUb2dnbGluZyBmdWxsc2NyZWVuIHN0YXRlIik7
CisgICAgICAgICAgICAgICAgICAgIGl0ZW1zW2ldLmNsaWNrKCk7CisgICAgICAgICAgICAgICAg
ICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoImludGVybmFscy5pc0NoYW5naW5nUHJl
c2VudGF0aW9uTW9kZSh2aWRlbykiLCBmYWxzZSwgJz09JywgMTAwMCk7CisgICAgICAgICAgICAg
ICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4iLCB0
cnVlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAg
ICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHN0YXJ0KCkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7Ci0gICAgICAgICAg
ICAgICAgd2FpdEZvckV2ZW50KCdwbGF5JywgcGxheWluZyk7Ci0gICAgICAgICAgICAgICAgcnVu
KCJ2aWRlby5zcmMgPSAnIiArIGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgImNvbnRlbnQvdGVzdCIp
ICsgIiciKTsKKyAgICAgICAgICAgICAgICAvLyBUT0RPOiB0ZXN0IGNvcHkgbGluayBsb2NhdGlv
biBhbmQgb3BlbiBpbiBuZXcgd2luZG93LgogICAgICAgICAgICAgfQorICAgICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICBlbmRUZXN0KCk7CisgICAgICAgIH0K
IAotICAgICAgIDwvc2NyaXB0PgorICAgICAgICBhc3luYyBmdW5jdGlvbiBzdGFydCgpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKKyAgICAgICAgICAgIHdhaXRG
b3JFdmVudCgncGxheScsIHBsYXlpbmcpOworICAgICAgICAgICAgcnVuKCJ2aWRlby5zcmMgPSAn
IiArIGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgImNvbnRlbnQvdGVzdCIpICsgIiciKTsKKyAgICAg
ICAgfQorICAgIDwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHkgb25sb2FkPSJzdGFydCgpIj4KICAg
ICA8cD5UZXN0IHRoZSB2YXJpb3VzIGFjdGlvbnMgYXZhaWxhYmxlIGluIHRoZSBIVE1MNSBtZWRp
YSBlbGVtZW50IGNvbnRleHQtbWVudS48L3A+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS9tZWRpYS1mdWxsc2NyZWVuLWxvb3AtaW5saW5lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tbG9vcC1pbmxpbmUtZXhwZWN0ZWQudHh0CmluZGV4IDVh
MzM3YTNlMjNlNmYxMjZlOTFjNTMwOTk1ZmYxNWQ1YmRkMDFjMTkuLjg3YzFlZTc1NDIwNjQxMDRj
NjAwZTZmYWMzYzhiZTk4Yjk5ZDg4NmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21l
ZGlhLWZ1bGxzY3JlZW4tbG9vcC1pbmxpbmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tbG9vcC1pbmxpbmUtZXhwZWN0ZWQudHh0CkBAIC03LDEy
ICs3LDE0IEBAIEVWRU5UKGNhbnBsYXl0aHJvdWdoKQogUlVOKHZpZGVvLnBsYXkoKSkKIFdhaXQg
dG8gZW50ZXIgZnVsbHNjcmVlbgogRVZFTlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQp
CitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9
PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVu
ID09ICd0cnVlJykgT0sKIEVudGVyZWQgZnVsbHNjcmVlbgogUlVOKHZpZGVvLmN1cnJlbnRUaW1l
ID0gNSkKIFJVTih2aWRlby53ZWJraXRFeGl0RnVsbHNjcmVlbigpKQogV2FpdCB0byBleGl0IGZ1
bGxzY3JlZW4KIEVWRU5UKHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkKQorRVhQRUNURUQg
KGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykgPT0gJ2ZhbHNlJykg
T0sKIEVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAnZmFsc2Un
KSBPSwogRXhpdGVkIGZ1bGxzY3JlZW4KIEVYUEVDVEVEICh2aWRlby5wYXVzZWQgPT0gJ2ZhbHNl
JykgT0sKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tbG9v
cC1pbmxpbmUuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tbG9vcC1p
bmxpbmUuaHRtbAppbmRleCA0YjhiMTk5MjQ5ZDE5NTBhZDdlZTAzNWYyZThmNjc0NWMyZjE5NWQ5
Li40ZjUxNmNiOTJkMjY2ZGU0OGNiNDM4MWFkOTZlNzlhMDJkZDg1MjMzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLWxvb3AtaW5saW5lLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1sb29wLWlubGluZS5odG1sCkBAIC0z
NSw3ICszNSw4IEBACiAKICAgICBhc3luYyBmdW5jdGlvbiBiZWdpbmZ1bGxzY3JlZW4oKQogICAg
IHsKLSAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8ud2Via2l0RGlz
cGxheWluZ0Z1bGxzY3JlZW4nLCB0cnVlKTsKKyAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZl
bnR1YWxseSgiaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZh
bHNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNj
cmVlbicsIHRydWUpOwogICAgICAgICBjb25zb2xlV3JpdGUoIkVudGVyZWQgZnVsbHNjcmVlbiIp
OwogICAgICAgICBydW4oJ3ZpZGVvLmN1cnJlbnRUaW1lID0gNScpOwogICAgICAgICBydW4oJ3Zp
ZGVvLndlYmtpdEV4aXRGdWxsc2NyZWVuKCknKTsKQEAgLTQ1LDcgKzQ2LDggQEAKIAogICAgIGFz
eW5jIGZ1bmN0aW9uIGVuZGZ1bGxzY3JlZW4oKQogICAgIHsKLSAgICAgICAgYXdhaXQgdGVzdEV4
cGVjdGVkRXZlbnR1YWxseSgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCBmYWxz
ZSk7CisgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoImludGVybmFscy5pc0No
YW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykiLCBmYWxzZSk7CisgICAgICAgIHRlc3RFeHBl
Y3RlZCgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCBmYWxzZSk7CiAgICAgICAg
IGNvbnNvbGVXcml0ZSgiRXhpdGVkIGZ1bGxzY3JlZW4iKTsKICAgICAgICAgdGVzdEV4cGVjdGVk
KCd2aWRlby5wYXVzZWQnLCBmYWxzZSk7CiAgICAgICAgIHJ1bigndmlkZW8ub250aW1ldXBkYXRl
ID0gdGltZXVwZGF0ZScpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVs
bHNjcmVlbi1wYXVzZS1pbmxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVk
aWEtZnVsbHNjcmVlbi1wYXVzZS1pbmxpbmUtZXhwZWN0ZWQudHh0CmluZGV4IDNhYmM5ZTI5MmE2
NDZiYzIwY2NmMzllN2U5MjJjMzI4OWRhNDJlNTUuLjkzYWJmMWE2ZTZiOTg3OGYxM2ZmNTQ4ODcy
MjI0MGJmYTI4ZmMxYmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxz
Y3JlZW4tcGF1c2UtaW5saW5lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
ZWRpYS1mdWxsc2NyZWVuLXBhdXNlLWlubGluZS1leHBlY3RlZC50eHQKQEAgLTQsMTUgKzQsMTgg
QEAgVGVzdCB0aGF0IGEgPHZpZGVvPiBrZWVwcyBwbGF5aW5nIGFmdGVyIGV4aXRpbmcgZnVsbHNj
cmVlbiB3aGVuIHRoZSBpbnRlcm5hbCBwcm8KIFJVTih2aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxl
KCJ2aWRlbyIsICJjb250ZW50L3Rlc3QiKSkKIEVWRU5UKGNhbnBsYXl0aHJvdWdoKQogUlVOKHZp
ZGVvLnBsYXkoKS50aGVuKHBsYXlpbmcpOykKK0VYUEVDVEVEIChpbnRlcm5hbHMuaXNDaGFuZ2lu
Z1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pID09ICdmYWxzZScpIE9LCiBFWFBFQ1RFRCAodmlkZW8u
d2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ3RydWUnKSBPSwogUlVOKHZpZGVvLndlYmtp
dEV4aXRGdWxsc2NyZWVuKCkpCiBFVkVOVCh3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCkK
K0VYUEVDVEVEIChpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pID09
ICdmYWxzZScpIE9LCiBFWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4g
PT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2aWRlby5wYXVzZWQgPT0gJ2ZhbHNlJykgT0sKIFJV
Tih2aWRlby5wYXVzZSgpKQogRVZFTlQocGF1c2UpCiBFWFBFQ1RFRCAodmlkZW8ucGF1c2VkID09
ICd0cnVlJykgT0sKIFJVTih2aWRlby5wbGF5KCkudGhlbihwbGF5aW5nQWdhaW4pKQorRVhQRUNU
RUQgKGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykgPT0gJ2ZhbHNl
JykgT0sKIEVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAndHJ1
ZScpIE9LCiBFTkQgT0YgVEVTVAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRp
YS1mdWxsc2NyZWVuLXBhdXNlLWlubGluZS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEt
ZnVsbHNjcmVlbi1wYXVzZS1pbmxpbmUuaHRtbAppbmRleCA2ZWExMDNlODY2MGY0NDhiMWJiZjU5
N2RjMzliYzczZGQ3NjExNzFlLi5lYTgyNDIzOWRmYjM0NTY1YjI1NjI1MzBmZDE3NDc3NDc0OWU0
NzQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXBhdXNl
LWlubGluZS5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcGF1
c2UtaW5saW5lLmh0bWwKQEAgLTMzLDE0ICszMywxNiBAQAogCiAgICAgYXN5bmMgZnVuY3Rpb24g
cGxheWluZygpCiAgICAgewotICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2
aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIHRydWUpOworICAgICAgICBhd2FpdCB0
ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCJpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1v
ZGUodmlkZW8pIiwgZmFsc2UpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLndlYmtpdERp
c3BsYXlpbmdGdWxsc2NyZWVuJywgdHJ1ZSk7CiAgICAgICAgIHdhaXRGb3JFdmVudE9uY2UoJ3dl
YmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkJywgZW5kZnVsbHNjcmVlbik7CiAgICAgICAgIHJ1
bigndmlkZW8ud2Via2l0RXhpdEZ1bGxzY3JlZW4oKScpOwogICAgIH0KIAogICAgIGFzeW5jIGZ1
bmN0aW9uIGVuZGZ1bGxzY3JlZW4oKQogICAgIHsKLSAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVk
RXZlbnR1YWxseSgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCBmYWxzZSk7Cisg
ICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoImludGVybmFscy5pc0NoYW5naW5n
UHJlc2VudGF0aW9uTW9kZSh2aWRlbykiLCBmYWxzZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgn
dmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCBmYWxzZSk7CiAgICAgICAgIHRlc3RF
eHBlY3RlZCgndmlkZW8ucGF1c2VkJywgZmFsc2UpOwogICAgICAgICB3YWl0Rm9yRXZlbnRPbmNl
KCdwYXVzZScsIHBhdXNlZCk7CiAgICAgICAgIHJ1bigndmlkZW8ucGF1c2UoKScpOwpAQCAtNTQs
NyArNTYsOCBAQAogCiAgICAgYXN5bmMgZnVuY3Rpb24gcGxheWluZ0FnYWluKCkKICAgICB7Ci0g
ICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLndlYmtpdERpc3BsYXlp
bmdGdWxsc2NyZWVuJywgdHJ1ZSk7CisgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFs
bHkoImludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykiLCBmYWxzZSk7
CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4n
LCB0cnVlKTsKICAgICAgICAgZW5kVGVzdCgpOwogICAgIH0KICAgICA8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcmV0dXJuLXRvLWlubGlu
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXJldHVy
bi10by1pbmxpbmUtZXhwZWN0ZWQudHh0CmluZGV4IGFlODcyOWNlYjg5MWYyMmUxZWMxMThkMjYw
MThlMzhmMjgxN2YwYWYuLjQ0MmQxMzJkMGVkNGVlMDkyYTAxYTU5MDE1YTMxNDdlOGViZTQxY2Eg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcmV0dXJuLXRv
LWlubGluZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNj
cmVlbi1yZXR1cm4tdG8taW5saW5lLWV4cGVjdGVkLnR4dApAQCAtNSwxNiArNSwyMCBAQCBSVU4o
dmlkZW8uc3JjID0gZmluZE1lZGlhRmlsZSgidmlkZW8iLCAiY29udGVudC90ZXN0IikpCiBFVkVO
VChjYW5wbGF5dGhyb3VnaCkKIFJVTih2aWRlby5wbGF5KCkpCiBFVkVOVCh3ZWJraXRwcmVzZW50
YXRpb25tb2RlY2hhbmdlZCkKK0VYUEVDVEVEIChpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRh
dGlvbk1vZGUodmlkZW8pID09ICdmYWxzZScpIE9LCiBFWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlz
cGxheWluZ0Z1bGxzY3JlZW4gPT0gJ3RydWUnKSBPSwogUlVOKHZpZGVvLndlYmtpdEV4aXRGdWxs
c2NyZWVuKCkpCi1FVkVOVChwYXVzZSkKK0VWRU5UKHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFu
Z2VkKQorRVhQRUNURUQgKGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRl
bykgPT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNj
cmVlbiA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLnBhdXNlZCA9PSAndHJ1ZScpIE9L
CiBSVU4odmlkZW8ucGxheSgpKQogRVZFTlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQp
CitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9
PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVu
ID09ICd0cnVlJykgT0sKIFJVTih2aWRlby53ZWJraXRFeGl0RnVsbHNjcmVlbigpKQogRVZFTlQo
d2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQpCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hh
bmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZp
ZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICdmYWxzZScpIE9LCiBFWFBFQ1RFRCAo
dmlkZW8ucGF1c2VkID09ICdmYWxzZScpIE9LCiBFTkQgT0YgVEVTVApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1yZXR1cm4tdG8taW5saW5lLmh0bWwgYi9M
YXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXJldHVybi10by1pbmxpbmUuaHRtbApp
bmRleCA5MzIyMGVkZWQzZWQ0NjExNjIwOWU4NzQ4ZmY0MjExNjc5NTQ3YjU2Li5kOGZlODRkOWEz
YmEzNTU3OWJhY2I3MzMzMTQyNjZjMTI3N2JmMGQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9t
ZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXJldHVybi10by1pbmxpbmUuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXJldHVybi10by1pbmxpbmUuaHRtbApAQCAtMzQs
MTQgKzM0LDE2IEBACiAKICAgICBhc3luYyBmdW5jdGlvbiBiZWdpbmZ1bGxzY3JlZW4xKCkKICAg
ICB7Ci0gICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLndlYmtpdERp
c3BsYXlpbmdGdWxsc2NyZWVuJywgdHJ1ZSk7Ci0gICAgICAgIHdhaXRGb3JFdmVudE9uY2UoJ3Bh
dXNlJywgcGF1c2UpOworICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCJpbnRl
cm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pIiwgZmFsc2UpOworICAgICAg
ICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuJywgdHJ1ZSk7
CisgICAgICAgIHdhaXRGb3JFdmVudE9uY2UoJ3dlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2Vk
JywgZW5kZnVsbHNjcmVlbjEpOwogICAgICAgICBydW4oJ3ZpZGVvLndlYmtpdEV4aXRGdWxsc2Ny
ZWVuKCknKTsKICAgICB9CiAKLSAgICBhc3luYyBmdW5jdGlvbiBwYXVzZSgpCisgICAgYXN5bmMg
ZnVuY3Rpb24gZW5kZnVsbHNjcmVlbjEoKQogICAgIHsKLSAgICAgICAgYXdhaXQgdGVzdEV4cGVj
dGVkRXZlbnR1YWxseSgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCBmYWxzZSk7
CisgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoImludGVybmFscy5pc0NoYW5n
aW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykiLCBmYWxzZSk7CisgICAgICAgIHRlc3RFeHBlY3Rl
ZCgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCBmYWxzZSk7CiAgICAgICAgIHRl
c3RFeHBlY3RlZCgndmlkZW8ucGF1c2VkJywgdHJ1ZSk7CiAKICAgICAgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEFsbG93c0lubGluZU1lZGlhUGxheWJhY2tBZnRlckZ1bGxzY3JlZW4odHJ1ZSk7
CkBAIC01MiwxNCArNTQsMTYgQEAKIAogICAgIGFzeW5jIGZ1bmN0aW9uIGJlZ2luZnVsbHNjcmVl
bjIoKQogICAgIHsKLSAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8u
d2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCB0cnVlKTsKLSAgICAgICAgd2FpdEZvckV2ZW50
T25jZSgnd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQnLCBlbmRmdWxsc2NyZWVuKTsKKyAg
ICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJuYWxzLmlzQ2hhbmdpbmdQ
cmVzZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCd2
aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIHRydWUpOworICAgICAgICB3YWl0Rm9y
RXZlbnRPbmNlKCd3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCcsIGVuZGZ1bGxzY3JlZW4y
KTsKICAgICAgICAgcnVuKCd2aWRlby53ZWJraXRFeGl0RnVsbHNjcmVlbigpJyk7CiAgICAgfQog
Ci0gICAgYXN5bmMgZnVuY3Rpb24gZW5kZnVsbHNjcmVlbigpCisgICAgYXN5bmMgZnVuY3Rpb24g
ZW5kZnVsbHNjcmVlbjIoKQogICAgIHsKLSAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1
YWxseSgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCBmYWxzZSk7CisgICAgICAg
IGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoImludGVybmFscy5pc0NoYW5naW5nUHJlc2Vu
dGF0aW9uTW9kZSh2aWRlbykiLCBmYWxzZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8u
d2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCBmYWxzZSk7CiAgICAgICAgIHRlc3RFeHBlY3Rl
ZCgndmlkZW8ucGF1c2VkJywgZmFsc2UpOwogICAgICAgICBlbmRUZXN0KCk7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNv
bnRyb2xsZXIvbWVkaWEtY29udHJvbGxlci1pbmxpbmUtdG8tZnVsbHNjcmVlbi10by1waXAtdG8t
aW5saW5lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItaW5saW5lLXRvLWZ1bGxzY3Jl
ZW4tdG8tcGlwLXRvLWlubGluZS1leHBlY3RlZC50eHQKaW5kZXggNTJlNDIyMThmZGVhMjZjMzI1
YjVhMDA4ZDI2YzczMjgwMGU3MzRkMy4uMjY5YTEyZjcwNjRiZTZkMmQwZjk0ZGJiMzk4ODhkNjg0
OTk5NDY2MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL21lZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJvbGxlci1pbmxpbmUtdG8tZnVsbHNjcmVl
bi10by1waXAtdG8taW5saW5lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWlu
bGluZS10by1mdWxsc2NyZWVuLXRvLXBpcC10by1pbmxpbmUtZXhwZWN0ZWQudHh0CkBAIC04LDE4
ICs4LDE4IEBAIFBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcubWVkaWEtY29udHJvbHMn
KS5jbGFzc0xpc3QuY29udGFpbnMoJ2lubGluZScpIGlzCiBNZWRpYSBzdGFydGVkIHBsYXlpbmcs
IHdlIHBhdXNlIGl0IGFuZCBlbnRlciBmdWxsc2NyZWVuIGJ5IGNsaWNraW5nIG9uIHRoZSBtYXRj
aGluZyBidXR0b24uCiAKIE1lZGlhIHJlY2VpdmVkIGEgd2Via2l0cHJlc2VudGF0aW9ubW9kZWNo
YW5nZWQgZXZlbnQsIG1lZGlhLndlYmtpdFByZXNlbnRhdGlvbk1vZGUgPSBmdWxsc2NyZWVuLgot
UEFTUyBtZWRpYS53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiBiZWNhbWUgdHJ1ZQorUEFTUyBp
bnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUobWVkaWEpIGJlY2FtZSBmYWxzZQog
UEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5tZWRpYS1jb250cm9scycpLmNsYXNzTGlz
dC5jb250YWlucygnZnVsbHNjcmVlbicpIGlzIHRydWUKIAogV2UgZW50ZXIgcGljdHVyZS1pbi1w
aWN0dXJlIGJ5IGNsaWNraW5nIG9uIHRoZSBtYXRjaGluZyBidXR0b24uCiAKIE1lZGlhIHJlY2Vp
dmVkIGEgd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQgZXZlbnQsIG1lZGlhLndlYmtpdFBy
ZXNlbnRhdGlvbk1vZGUgPSBwaWN0dXJlLWluLXBpY3R1cmUuCi1QQVNTIG1lZGlhLndlYmtpdERp
c3BsYXlpbmdGdWxsc2NyZWVuIGJlY2FtZSB0cnVlCitQQVNTIGludGVybmFscy5pc0NoYW5naW5n
UHJlc2VudGF0aW9uTW9kZShtZWRpYSkgYmVjYW1lIGZhbHNlCiAKIFdlIGV4aXQgcGljdHVyZS1p
bi1waWN0dXJlLgogCiBNZWRpYSByZWNlaXZlZCBhIHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFu
Z2VkIGV2ZW50LCBtZWRpYS53ZWJraXRQcmVzZW50YXRpb25Nb2RlID0gaW5saW5lLgotUEFTUyBt
ZWRpYS53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiBiZWNhbWUgZmFsc2UKK1BBU1MgaW50ZXJu
YWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKG1lZGlhKSBiZWNhbWUgZmFsc2UKIFBBU1Mg
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcubWVkaWEtY29udHJvbHMnKS5jbGFzc0xpc3QuY29u
dGFpbnMoJ2lubGluZScpIGlzIHRydWUKIAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21l
ZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJvbGxlci1pbmxpbmUtdG8tZnVsbHNjcmVlbi10by1w
aXAtdG8taW5saW5lLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWlubGluZS10by1mdWxsc2NyZWVu
LXRvLXBpcC10by1pbmxpbmUuaHRtbAppbmRleCA0ZDYxNzY2ZmQ4YTFlZWM2NTEyYTFkNTQ3NTg4
ZWY1MDVhNzY3NTVmLi4zMWY2N2U4YTBkYTU3ZGNjZWFmMWNhMmJhYmI2MWI2YzNlYTYwZmJhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEt
Y29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWlubGluZS10by1mdWxsc2NyZWVuLXRvLXBpcC10
by1pbmxpbmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWlubGluZS10by1mdWxsc2NyZWVu
LXRvLXBpcC10by1pbmxpbmUuaHRtbApAQCAtMjYsNDYgKzI2LDQyIEBAIG1lZGlhLmFkZEV2ZW50
TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7CiAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFt
ZSgoKSA9PiBjbGlja09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi5m
dWxsc2NyZWVuIikpKTsKIH0pOwogCi1sZXQgcHJldmlvdXNQcmVzZW50YXRpb25Nb2RlID0gbWVk
aWEud2Via2l0UHJlc2VudGF0aW9uTW9kZTsKLW1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtp
dHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIiwgKCkgPT4gewotICAgIGlmIChwcmV2aW91c1ByZXNl
bnRhdGlvbk1vZGUgPT09IG1lZGlhLndlYmtpdFByZXNlbnRhdGlvbk1vZGUpCi0gICAgICAgIHJl
dHVybjsKLQorbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0cHJlc2VudGF0aW9ubW9kZWNo
YW5nZWQiLCBhc3luYyAoKSA9PiB7CiAgICAgZGVidWcoIiIpOwogICAgIGRlYnVnKGBNZWRpYSBy
ZWNlaXZlZCBhIHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIGV2ZW50LCBtZWRpYS53ZWJr
aXRQcmVzZW50YXRpb25Nb2RlID0gJHttZWRpYS53ZWJraXRQcmVzZW50YXRpb25Nb2RlfS5gKTsK
IAotICAgIGxldCBkaXNwbGF5aW5nRnVsbHNjcmVlbiA9ICJ0cnVlIjsKLSAgICBpZiAobWVkaWEu
d2Via2l0UHJlc2VudGF0aW9uTW9kZSA9PSAiaW5saW5lIikKLSAgICAgICAgZGlzcGxheWluZ0Z1
bGxzY3JlZW4gPSAiZmFsc2UiOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAg
IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgIHNl
dFRpbWVvdXQocmVqZWN0LCAyMDAwKTsKKyAgICAgICAgICAgIHNob3VsZEJlY29tZUVxdWFsKCJp
bnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUobWVkaWEpIiwgImZhbHNlIiwgcmVz
b2x2ZSk7CisgICAgICAgIH0pOworICAgIH0KIAotICAgIHNob3VsZEJlY29tZUVxdWFsKCJtZWRp
YS53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiIsIGRpc3BsYXlpbmdGdWxsc2NyZWVuLCAoKSA9
PiB7Ci0gICAgICAgIHByZXZpb3VzUHJlc2VudGF0aW9uTW9kZSA9IG1lZGlhLndlYmtpdFByZXNl
bnRhdGlvbk1vZGU7Ci0gICAgICAgIHN3aXRjaCAobWVkaWEud2Via2l0UHJlc2VudGF0aW9uTW9k
ZSkgewotICAgICAgICBjYXNlICJmdWxsc2NyZWVuIjoKLSAgICAgICAgICAgIHdpbmRvdy5yZXF1
ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewotICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgi
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcubWVkaWEtY29udHJvbHMnKS5jbGFzc0xpc3QuY29u
dGFpbnMoJ2Z1bGxzY3JlZW4nKSIpOworICAgIHN3aXRjaCAobWVkaWEud2Via2l0UHJlc2VudGF0
aW9uTW9kZSkgeworICAgIGNhc2UgImZ1bGxzY3JlZW4iOgorICAgICAgICB3aW5kb3cucmVxdWVz
dEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgic2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCcubWVkaWEtY29udHJvbHMnKS5jbGFzc0xpc3QuY29udGFpbnMo
J2Z1bGxzY3JlZW4nKSIpOwogCi0gICAgICAgICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAg
ICAgICAgIGRlYnVnKCJXZSBlbnRlciBwaWN0dXJlLWluLXBpY3R1cmUgYnkgY2xpY2tpbmcgb24g
dGhlIG1hdGNoaW5nIGJ1dHRvbi4iKTsKLSAgICAgICAgICAgICAgICBjbGlja09uRWxlbWVudChz
aGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi5waXAiKSk7Ci0gICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICJwaWN0dXJlLWluLXBpY3R1cmUiOgog
ICAgICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAgICAgZGVidWcoIldlIGV4aXQgcGljdHVy
ZS1pbi1waWN0dXJlLiIpOwotICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gbWVk
aWEud2Via2l0U2V0UHJlc2VudGF0aW9uTW9kZSgiaW5saW5lIikpOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgImlubGluZSI6Ci0gICAgICAgICAgICB3aW5kb3cucmVxdWVzdEFu
aW1hdGlvbkZyYW1lKCgpID0+IHsKLSAgICAgICAgICAgICAgICBzaG91bGRCZVRydWUoInNoYWRv
d1Jvb3QucXVlcnlTZWxlY3RvcignLm1lZGlhLWNvbnRyb2xzJykuY2xhc3NMaXN0LmNvbnRhaW5z
KCdpbmxpbmUnKSIpOworICAgICAgICAgICAgZGVidWcoIldlIGVudGVyIHBpY3R1cmUtaW4tcGlj
dHVyZSBieSBjbGlja2luZyBvbiB0aGUgbWF0Y2hpbmcgYnV0dG9uLiIpOworICAgICAgICAgICAg
Y2xpY2tPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24ucGlwIikpOwor
ICAgICAgICB9KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAicGljdHVyZS1pbi1waWN0dXJl
IjoKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1ZygiV2UgZXhpdCBwaWN0dXJlLWlu
LXBpY3R1cmUuIik7CisgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IG1lZGlhLndlYmtp
dFNldFByZXNlbnRhdGlvbk1vZGUoImlubGluZSIpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSAiaW5saW5lIjoKKyAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7
CisgICAgICAgICAgICBzaG91bGRCZVRydWUoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLm1l
ZGlhLWNvbnRyb2xzJykuY2xhc3NMaXN0LmNvbnRhaW5zKCdpbmxpbmUnKSIpOwogCi0gICAgICAg
ICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgpOwotICAg
ICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgfQotICAgIH0pOworICAgICAgICAgICAgZGVidWcoIiIpOworICAg
ICAgICAgICAgbWVkaWEucmVtb3ZlKCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICAgICAgfSk7CisgICAgICAgIGJyZWFrOworICAgIH0KIH0pOwogCiBmdW5jdGlvbiBjbGlja09u
RWxlbWVudChlbGVtZW50KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvcHJlc2VudGF0
aW9ubW9kZWNoYW5nZWQtZmlyZWQtb25jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRp
YS9wcmVzZW50YXRpb25tb2RlY2hhbmdlZC1maXJlZC1vbmNlLWV4cGVjdGVkLnR4dAppbmRleCBh
MThlOGJiODZlZTM3YzIzOWI4NzY5MmQxODAxYTg1ZDJiMGUyZDljLi5kZTRjYTViY2E0NjI5Yjhl
ODM5OGEyZjU5ZWNkM2IwYzRjMzQ4MjliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9w
cmVzZW50YXRpb25tb2RlY2hhbmdlZC1maXJlZC1vbmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9tZWRpYS9wcmVzZW50YXRpb25tb2RlY2hhbmdlZC1maXJlZC1vbmNlLWV4cGVjdGVk
LnR4dApAQCAtNSw3ICs1LDcgQEAgRVZFTlQoY2FucGxheXRocm91Z2gpCiBSVU4odmlkZW8ucGxh
eSgpKQogUlVOKHZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoInBpY3R1cmUtaW4tcGlj
dHVyZSIpKQogRVZFTlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQpCi1FWFBFQ1RFRCAo
dmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ3RydWUnKSBPSworRVhQRUNURUQg
KGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykgPT0gJ2ZhbHNlJykg
T0sKIEVYUEVDVEVEICh2aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlID09ICdwaWN0dXJlLWlu
LXBpY3R1cmUnKSBPSwogUlVOKHZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoImlubGlu
ZSIpKQogRVZFTlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS9wcmVzZW50YXRpb25tb2RlY2hhbmdlZC1maXJlZC1vbmNlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9wcmVzZW50YXRpb25tb2RlY2hhbmdlZC1maXJlZC1vbmNlLmh0
bWwKaW5kZXggNTM4YmQxMjdiYzkxYTk5OTBhNTA3YzkyNGYzY2JiNTQzMWFhNDdkNC4uYzJiNWQ2
YzFjNjM1OThkNDFjNGQ5YTVjYWEwMjdiNDE1NDgxMzM1NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvbWVkaWEvcHJlc2VudGF0aW9ubW9kZWNoYW5nZWQtZmlyZWQtb25jZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL21lZGlhL3ByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkLWZpcmVkLW9uY2UuaHRtbApA
QCAtMjcsNyArMjcsNyBAQAogCiAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHByZXNlbnRhdGlvbk1v
ZGVDaGFuZ2VkMSgpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2
ZW50dWFsbHkoJ3ZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuJywgdHJ1ZSk7CisgICAg
ICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCJpbnRlcm5hbHMuaXNDaGFuZ2lu
Z1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pIiwgZmFsc2UpOwogICAgICAgICAgICAgdGVzdEV4cGVj
dGVkKCJ2aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlIiwgInBpY3R1cmUtaW4tcGljdHVyZSIp
OwogICAgICAgICAgICAgcnVuV2l0aEtleURvd24oJ3ZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlv
bk1vZGUoImlubGluZSIpJyk7CiAgICAgICAgICAgICB3YWl0Rm9yRXZlbnQoIndlYmtpdHByZXNl
bnRhdGlvbm1vZGVjaGFuZ2VkIiwgcHJlc2VudGF0aW9uTW9kZUNoYW5nZWQyKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWZ1bGxzY3JlZW4tb25seS1wbGF5YmFjay1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1mdWxsc2NyZWVuLW9ubHktcGxheWJh
Y2stZXhwZWN0ZWQudHh0CmluZGV4IGMxNzJiNTJlZjQ2NDQzM2QyOTg4ZTk2MzY5OTM3MTFmMWM4
MzMzMGUuLjMzNWM1YjJlMDZlZTI1YzFkOWY1OWRmYjk5NDA5OTRjODMxMzM4ZDQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWZ1bGxzY3JlZW4tb25seS1wbGF5YmFjay1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tZnVsbHNjcmVlbi1vbmx5LXBs
YXliYWNrLWV4cGVjdGVkLnR4dApAQCAtNywxMyArNywxNiBAQCBFWFBFQ1RFRCAodmlkZW8ud2Vi
a2l0U3VwcG9ydHNGdWxsc2NyZWVuID09ICd0cnVlJykgT0sKIEVYUEVDVEVEICh2aWRlby53ZWJr
aXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAnZmFsc2UnKSBPSwogUlVOKHZpZGVvLnBsYXkoKSkK
IEVWRU5UKHBsYXlpbmcpCi1FWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3Jl
ZW4gPT0gJ3RydWUnKSBPSwogCi0qKiBFbnRlcmVkIGZ1bGxzY3JlZW4KKyoqIFN0YXJ0ZWQgcGxh
eWluZworRVhQRUNURUQgKGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRl
bykgPT0gJ2ZhbHNlJykgT0sKK0VYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNj
cmVlbiA9PSAndHJ1ZScpIE9LCiBSVU4odmlkZW8ud2Via2l0RXhpdEZ1bGxTY3JlZW4oKSkKIEVW
RU5UKHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkKQotRVhQRUNURUQgKHZpZGVvLndlYmtp
dERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICdmYWxzZScpIE9LCiAKLSoqIEV4aXRlZCBmdWxsc2Ny
ZWVuCisqKiBSZWNlaXZlZCB3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCBldmVudAorRVhQ
RUNURUQgKGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykgPT0gJ2Zh
bHNlJykgT0sKK0V4aXRlZCBmdWxsc2NyZWVuCitFWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxh
eWluZ0Z1bGxzY3JlZW4gPT0gJ2ZhbHNlJykgT0sKIEVORCBPRiBURVNUCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWZ1bGxzY3JlZW4tb25seS1wbGF5YmFjay5odG1sIGIv
TGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tZnVsbHNjcmVlbi1vbmx5LXBsYXliYWNrLmh0bWwKaW5k
ZXggYzNhY2EzYTA0NmM0ZWJiYzM1N2M5YmY1ODhmNDdmN2ZlZDRiNmQ3MS4uNDc4ODlhNjEzMzVi
MjQxN2Y1OWY2N2JlMDI0Y2VmNDRkZjJjOTNjMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVk
aWEvdmlkZW8tZnVsbHNjcmVlbi1vbmx5LXBsYXliYWNrLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
bWVkaWEvdmlkZW8tZnVsbHNjcmVlbi1vbmx5LXBsYXliYWNrLmh0bWwKQEAgLTQwLDE2ICs0MCwx
OSBAQAogCiAgICAgICAgICAgICBhc3luYyBmdW5jdGlvbiBwbGF5aW5nKCkKICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCJ2aWRlby53
ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiIsIHRydWUpOwotICAgICAgICAgICAgICAgIGNvbnNv
bGVXcml0ZSgiPGJyPioqIEVudGVyZWQgZnVsbHNjcmVlbiIpOworICAgICAgICAgICAgICAgIGNv
bnNvbGVXcml0ZSgiPGJyPioqIFN0YXJ0ZWQgcGxheWluZyIpOworICAgICAgICAgICAgICAgIGF3
YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoImludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0
aW9uTW9kZSh2aWRlbykiLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2
aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiIsIHRydWUpOwogICAgICAgICAgICAgICAg
IHdhaXRGb3JFdmVudE9uY2UoJ3dlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkJywgZW5kZnVs
bHNjcmVlbik7CiAgICAgICAgICAgICAgICAgcnVuKCJ2aWRlby53ZWJraXRFeGl0RnVsbFNjcmVl
bigpIik7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIGVuZGZ1
bGxzY3JlZW4oKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBl
Y3RlZEV2ZW50dWFsbHkoInZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIiwgZmFsc2Up
OwotICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIEV4aXRlZCBmdWxsc2NyZWVu
Iik7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogUmVjZWl2ZWQgd2Via2l0
cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQgZXZlbnQiKTsKKyAgICAgICAgICAgICAgICBhd2FpdCB0
ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCJpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1v
ZGUodmlkZW8pIiwgZmFsc2UpOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiRXhpdGVk
IGZ1bGxzY3JlZW4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtp
dERpc3BsYXlpbmdGdWxsc2NyZWVuIiwgZmFsc2UpOwogICAgICAgICAgICAgICAgIGVuZFRlc3Qo
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tZWRpYS92aWRlby1wbGF5c2lubGluZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9t
ZWRpYS92aWRlby1wbGF5c2lubGluZS1leHBlY3RlZC50eHQKaW5kZXggMDQxNDU3M2YwYzQ2Y2Q3
M2ZjZTI0NDhlZDY5YzlmZjhkNTE4ZmNhYS4uNWVkY2FkMTdjNjhkMzI4YTQ0YzQ3MTExYjhkMDI4
OWI5YTliOTFjMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcGxheXNpbmxp
bmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXBsYXlzaW5saW5l
LWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDcgQEAgUlVOKHZpZGVvLnBsYXlzSW5saW5lID0gZmFs
c2UpCiBFVkVOVChjYW5wbGF5dGhyb3VnaCkKIFJVTih2aWRlby5wbGF5KCkpCiBFVkVOVChwbGF5
aW5nKQorRVhQRUNURUQgKGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRl
bykgPT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNj
cmVlbiA9PSAndHJ1ZScpIE9LCiBSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldElubGluZU1lZGlh
UGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlKHRydWUpKQogUlVOKHZpZGVvLnBs
YXlzSW5saW5lID0gdHJ1ZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXBs
YXlzaW5saW5lLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1wbGF5c2lubGluZS5odG1s
CmluZGV4IGZhNmE3MzEyNDRkOTcwYjNjOTJkZGE1YjYwYjhkNzI5MjQ5ZjUxZGIuLmQwOWQ0Y2M1
ZDQyMmM5YjgyNjljYWQ0YzYyNjNkNDJmYzIyZDE5YmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L21lZGlhL3ZpZGVvLXBsYXlzaW5saW5lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlk
ZW8tcGxheXNpbmxpbmUuaHRtbApAQCAtMzAsNyArMzAsMTAgQEAgZnVuY3Rpb24gdGVzdFBsYXlz
SW5saW5lKHJlcXVpcmVzUGxheXNJbmxpbmUsIGhhc1BsYXlzSW5saW5lLCBleHBlY3RlZERpc3Bs
YXlpbmcKICAgICAgICAgICAgIHJ1bigndmlkZW8ucGxheSgpJyk7CiAgICAgICAgIH0pOwogICAg
IH0pCi0gICAgd2FpdEZvckV2ZW50T25jZSgncGxheWluZycsICgpID0+IHsKKyAgICB3YWl0Rm9y
RXZlbnRPbmNlKCdwbGF5aW5nJywgYXN5bmMgKCkgPT4geworICAgICAgICBpZiAoZXhwZWN0ZWRE
aXNwbGF5aW5nRnVsbHNjcmVlbikKKyAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50
dWFsbHkoJ2ludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbyknLCBmYWxz
ZSk7CisKICAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNj
cmVlbicsIGV4cGVjdGVkRGlzcGxheWluZ0Z1bGxzY3JlZW4pOwogICAgICAgICBkb2N1bWVudC5i
b2R5LnJlbW92ZUNoaWxkKHZpZGVvKTsKICAgICAgICAgcnVuTmV4dFRlc3QoKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLWV4cGVjdGVkLnR4
dAppbmRleCAxZDdkYjAyODI0OTlkMzkzMDlhZmEyMGQ5ZWM3NWQxYzhhMjUxMzU5Li5hYmE5ZjQ1
MzYwMGFlNzhlZmE1Y2JlZmM5NTlkODZhMjMyOTc2ZDdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9tZWRpYS92aWRlby1wcmVzZW50YXRpb24tbW9kZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUtZXhwZWN0ZWQudHh0CkBAIC00LDMw
ICs0LDMwIEBAIFRlc3QgdGhlIHZpZGVvIHByZXNlbnRhdGlvbiBtb2RlICh2aWRlbyBmdWxsc2Ny
ZWVuIGFuZCBwaWN0dXJlLWluLXBpY3R1cmUpIEFQSS4KIAogRVZFTlQoY2FucGxheXRocm91Z2gp
CiBFWFBFQ1RFRCAodmlkZW8ud2Via2l0U3VwcG9ydHNGdWxsc2NyZWVuID09ICd0cnVlJykgT0sK
LUVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAnZmFsc2UnKSBP
SworRVhQRUNURUQgKHZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUgPT0gJ2lubGluZScpIE9L
CiAKICoqIFRyeSB0byBlbnRlciBmdWxsc2NyZWVuCiBSVU4odmlkZW8ud2Via2l0U2V0UHJlc2Vu
dGF0aW9uTW9kZSgnZnVsbHNjcmVlbicpKQogRVZFTlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNo
YW5nZWQpCi1FWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ3Ry
dWUnKSBPSwogCi0qKiBFbnRlcmVkIGZ1bGxzY3JlZW4KKyoqIFJlY2VpdmVkIHdlYmtpdHByZXNl
bnRhdGlvbm1vZGVjaGFuZ2VkIGV2ZW50CitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQ
cmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndl
YmtpdFByZXNlbnRhdGlvbk1vZGUgPT0gJ2Z1bGxzY3JlZW4nKSBPSwogCiAqKiBUcnkgdG8gZW50
ZXIgcGljdHVyZS1pbi1waWN0dXJlCiBSVU4odmlkZW8ud2Via2l0U2V0UHJlc2VudGF0aW9uTW9k
ZSgncGljdHVyZS1pbi1waWN0dXJlJykpCiBFVkVOVCh3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hh
bmdlZCkKLUVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAndHJ1
ZScpIE9LCiAKLSoqIEVudGVyZWQgcGljdHVyZS1pbi1waWN0dXJlCisqKiBSZWNlaXZlZCB3ZWJr
aXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCBldmVudAorRVhQRUNURUQgKGludGVybmFscy5pc0No
YW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykgPT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2
aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlID09ICdwaWN0dXJlLWluLXBpY3R1cmUnKSBPSwog
CiAqKiBUcnkgdG8gcmV0dXJuIHRvIGlubGluZQogUlVOKHZpZGVvLndlYmtpdFNldFByZXNlbnRh
dGlvbk1vZGUoJ2lubGluZScpKQogRVZFTlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQp
Ci1FWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ2ZhbHNlJykg
T0sKIAotKiogUmV0dXJuZWQgdG8gaW5saW5lCisqKiBSZWNlaXZlZCB3ZWJraXRwcmVzZW50YXRp
b25tb2RlY2hhbmdlZCBldmVudAorRVhQRUNURUQgKGludGVybmFscy5pc0NoYW5naW5nUHJlc2Vu
dGF0aW9uTW9kZSh2aWRlbykgPT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2aWRlby53ZWJraXRQ
cmVzZW50YXRpb25Nb2RlID09ICdpbmxpbmUnKSBPSwogCiAqKiBUZXN0IENvbXBsZXRlZApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUuaHRtbCBi
L0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLmh0bWwKaW5kZXggMzA1
NmQxNWUxYTljMmQxY2FmY2IxZTBlMjhjZmE0YjdiOTc3NjRkOC4uZjEwNWM4NTUwYzkwNTI5Nzg0
MjBkNGY1NTIyMzQ3ZjJhNjRhYmYxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlk
ZW8tcHJlc2VudGF0aW9uLW1vZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1w
cmVzZW50YXRpb24tbW9kZS5odG1sCkBAIC0yMSw3ICsyMSw3IEBACiAgICAgICAgICAgICBhc3lu
YyBmdW5jdGlvbiBjYW5wbGF5dGhyb3VnaCgpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgdGVzdEV4cGVjdGVkKCJ2aWRlby53ZWJraXRTdXBwb3J0c0Z1bGxzY3JlZW4iLCB0cnVlKTsK
LSAgICAgICAgICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby53ZWJr
aXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhw
ZWN0ZWQoInZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUiLCAiaW5saW5lIik7CiAKICAgICAg
ICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4qKiBUcnkgdG8gZW50ZXIgZnVsbHNjcmVlbiIp
OwogICAgICAgICAgICAgICAgIHJ1bldpdGhLZXlEb3duKCJ2aWRlby53ZWJraXRTZXRQcmVzZW50
YXRpb25Nb2RlKCdmdWxsc2NyZWVuJykiKTsKQEAgLTMwLDggKzMwLDggQEAKIAogICAgICAgICAg
ICAgYXN5bmMgZnVuY3Rpb24gcHJlc2VudGF0aW9uTW9kZUNoYW5nZWQxKCkKICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby53
ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIHRydWUpOwotICAgICAgICAgICAgICAgIGNvbnNv
bGVXcml0ZSgiPGJyPioqIEVudGVyZWQgZnVsbHNjcmVlbiIpOworICAgICAgICAgICAgICAgIGNv
bnNvbGVXcml0ZSgiPGJyPioqIFJlY2VpdmVkIHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2Vk
IGV2ZW50Iik7CisgICAgICAgICAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgi
aW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKICAg
ICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUi
LCAiZnVsbHNjcmVlbiIpOwogICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIFRy
eSB0byBlbnRlciBwaWN0dXJlLWluLXBpY3R1cmUiKTsKICAgICAgICAgICAgICAgICB3YWl0Rm9y
RXZlbnRPbmNlKCd3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCcsIHByZXNlbnRhdGlvbk1v
ZGVDaGFuZ2VkMik7CkBAIC00MCw4ICs0MCw4IEBACiAKICAgICAgICAgICAgIGFzeW5jIGZ1bmN0
aW9uIHByZXNlbnRhdGlvbk1vZGVDaGFuZ2VkMigpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8ud2Via2l0RGlzcGxheWlu
Z0Z1bGxzY3JlZW4nLCB0cnVlKTsKLSAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4q
KiBFbnRlcmVkIHBpY3R1cmUtaW4tcGljdHVyZSIpOworICAgICAgICAgICAgICAgIGNvbnNvbGVX
cml0ZSgiPGJyPioqIFJlY2VpdmVkIHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIGV2ZW50
Iik7CisgICAgICAgICAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJu
YWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKICAgICAgICAg
ICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUiLCAicGlj
dHVyZS1pbi1waWN0dXJlIik7CiAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+Kiog
VHJ5IHRvIHJldHVybiB0byBpbmxpbmUiKTsKICAgICAgICAgICAgICAgICB3YWl0Rm9yRXZlbnRP
bmNlKCd3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCcsIHRlc3RDb21wbGV0ZWQpOwpAQCAt
NTAsOCArNTAsOCBAQAogCiAgICAgICAgICAgICBhc3luYyBmdW5jdGlvbiB0ZXN0Q29tcGxldGVk
KCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVu
dHVhbGx5KCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIGZhbHNlKTsKLSAgICAg
ICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4qKiBSZXR1cm5lZCB0byBpbmxpbmUiKTsKKyAg
ICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4qKiBSZWNlaXZlZCB3ZWJraXRwcmVzZW50
YXRpb25tb2RlY2hhbmdlZCBldmVudCIpOworICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBl
Y3RlZEV2ZW50dWFsbHkoImludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRl
bykiLCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby53ZWJraXRQ
cmVzZW50YXRpb25Nb2RlIiwgImlubGluZSIpOwogICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0
ZSgiPGJyPioqIFRlc3QgQ29tcGxldGVkIik7CiAgICAgICAgICAgICAgICAgZW5kVGVzdCgpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8td2Via2l0LXBsYXlzaW5saW5lLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXdlYmtpdC1wbGF5c2lubGluZS1l
eHBlY3RlZC50eHQKaW5kZXggOTY3NDg5NTZlOGIzNjg0YmZkYmQ1OGJiYTYzNWU3YzY5YzE3OTY4
NC4uMDkzOTdlOTJmYjhjOTZlMmM0ODY3NTNhMDgyNWRhMTYzOWU3MTVkNSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8td2Via2l0LXBsYXlzaW5saW5lLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby13ZWJraXQtcGxheXNpbmxpbmUtZXhwZWN0ZWQu
dHh0CkBAIC0zLDEyICszLDE0IEBAIFJVTih2aWRlby5yZW1vdmVBdHRyaWJ1dGUoIndlYmtpdC1w
bGF5c2lubGluZSIsICIiKSkKIEVWRU5UKGNhbnBsYXl0aHJvdWdoKQogUlVOKHZpZGVvLnBsYXko
KSkKIEVWRU5UKHBsYXlpbmcpCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50
YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdERp
c3BsYXlpbmdGdWxsc2NyZWVuID09ICd0cnVlJykgT0sKIFJVTihpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0SW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUodHJ1ZSkp
CiBSVU4odmlkZW8uc2V0QXR0cmlidXRlKCJ3ZWJraXQtcGxheXNpbmxpbmUiLCAiIikpCiBFVkVO
VChjYW5wbGF5dGhyb3VnaCkKIFJVTih2aWRlby5wbGF5KCkpCiBFVkVOVChwbGF5aW5nKQorRVhQ
RUNURUQgKGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykgPT0gJ2Zh
bHNlJykgT0sKIEVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAn
dHJ1ZScpIE9LCiBSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldElubGluZU1lZGlhUGxheWJhY2tS
ZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlKGZhbHNlKSkKIFJVTih2aWRlby5yZW1vdmVBdHRy
aWJ1dGUoIndlYmtpdC1wbGF5c2lubGluZSIsICIiKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21lZGlhL3ZpZGVvLXdlYmtpdC1wbGF5c2lubGluZS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEv
dmlkZW8td2Via2l0LXBsYXlzaW5saW5lLmh0bWwKaW5kZXggN2VkOTVmNDg4MDVmZDMwNmNlNjI4
MjIyYTVhYjQ0YjZmMWJhY2EzNS4uYWI3MzBiMDMyYjQ4ZmU5ZjU5YmY2MzI3MWMzZGI0MzIzYzMy
NDllZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8td2Via2l0LXBsYXlzaW5s
aW5lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8td2Via2l0LXBsYXlzaW5saW5l
Lmh0bWwKQEAgLTMwLDcgKzMwLDEwIEBAIGZ1bmN0aW9uIHRlc3RQbGF5c0lubGluZShyZXF1aXJl
c1BsYXlzSW5saW5lLCBoYXNXZWJraXRQbGF5c0lubGluZSwgZXhwZWN0ZWREaXNwCiAgICAgICAg
ICAgICBydW4oJ3ZpZGVvLnBsYXkoKScpOwogICAgICAgICB9KTsKICAgICB9KQotICAgIHdhaXRG
b3JFdmVudE9uY2UoJ3BsYXlpbmcnLCAoKSA9PiB7CisgICAgd2FpdEZvckV2ZW50T25jZSgncGxh
eWluZycsIGFzeW5jICgpID0+IHsKKyAgICAgICAgaWYgKGV4cGVjdGVkRGlzcGxheWluZ0Z1bGxz
Y3JlZW4pCisgICAgICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCdpbnRlcm5h
bHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pJywgZmFsc2UpOworCiAgICAgICAg
IHRlc3RFeHBlY3RlZCgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCBleHBlY3Rl
ZERpc3BsYXlpbmdGdWxsc2NyZWVuKTsKICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGls
ZCh2aWRlbyk7CiAgICAgICAgIHJ1bk5leHRUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGQyMjVhYzY5NDRiNTlkYzdhNjRhZmJlZjkyMTRmNGNm
NzdmNjQ2OWUuLjc2OTQ1YWUzMDJmMzA3OTYyZDM4NDUxMzMwYmNkMTM4YzRkNGUxNWEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNDYwLDggKzE0NjAs
NiBAQCB3ZWJraXQub3JnL2IvMTgzNDkwIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRp
YS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZQogd2Via2l0Lm9yZy9iLzE4MzQ5MCBtZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWZ1
bGxzY3JlZW4tY2hhbmdlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xODM0OTAgbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJvbGxl
ci1pbmxpbmUtdG8tZnVsbHNjcmVlbi10by1pbmxpbmUuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0
Lm9yZy9iLzE4MzQ5MCBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvc3RhcnQtc3VwcG9ydC9z
dGFydC1zdXBwb3J0LWZ1bGxzY3JlZW4uaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE4
MzQ5MCBtZWRpYS92aWRlby1wbGF5c2lubGluZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3Jn
L2IvMTgzNDkwIG1lZGlhL3ZpZGVvLXdlYmtpdC1wbGF5c2lubGluZS5odG1sIFsgRmFpbHVyZSBd
CiAKIHdlYmtpdC5vcmcvYi8xODM3NjQgZmFzdC9jc3MvYXBwbGUtc3lzdGVtLWNvbnRyb2wtY29s
b3JzLmh0bWwgWyBQYXNzIF0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409104</attachid>
            <date>2020-09-17 22:31:49 -0700</date>
            <delta_ts>2020-09-18 11:49:21 -0700</delta_ts>
            <desc>WIP patch v3</desc>
            <filename>bug-216426-20200917223148.patch</filename>
            <type>text/plain</type>
            <size>62320</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTc5Y2RmYTQ3ZjdhMWE2
YzFlY2VmNWNmYzg2NDYxYjUyZTU3YWJjMS4uOTg2OWFjZDI3NTdjOTk3MTU3MGMyMDEyMzIwYTIz
ZWY4N2NmODQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIwLTA5LTE3ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgTGV0IHdlYmtpdERpc3BsYXlp
bmdGdWxsc2NyZWVuKCkgcmV0dXJuIHRydWUgd2hlbiBhIHZpZGVvIGVsZW1lbnTigJlzIGZ1bGxz
Y3JlZW4gbW9kZSBpcyBub3QgVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjQyNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVz
dHMuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZGlzcGF0Y2hFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50Ojppc0Z1bGxzY3JlZW4gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6ZW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OmV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6OmRpZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmRpZFN0b3BCZWluZ0Z1bGxzY3JlZW5FbGVtZW50KToK
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6OnNldENoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojppc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9k
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp3YWl0aW5nVG9F
bnRlckZ1bGxzY3JlZW4pOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Ojp3ZWJraXREaXNwbGF5
aW5nRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50OjpzZXRQ
cmVzZW50YXRpb25Nb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ6OmRp
ZEVudGVyRnVsbHNjcmVlbk9yUGljdHVyZUluUGljdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MVmlkZW9FbGVtZW50OjpkaWRFeGl0RnVsbHNjcmVlbk9yUGljdHVyZUluUGljdHVyZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Ojppc0NoYW5naW5nUHJlc2VudGF0aW9u
TW9kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50OjpkaWRCZWNv
bWVGdWxsc2NyZWVuRWxlbWVudCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1MVmlkZW9F
bGVtZW50Lmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjppc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSBjb25zdCk6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5p
ZGw6CisKIDIwMjAtMDktMTcgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW0NvY29hXSBjYW5QbGF5VHlwZSgnYXVkaW8vbXBlZzsgY29kZWNzPSJtcDMi
JykgcmV0dXJucyAiIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5k
ZXggYTRmMzY3OThlNTRhZjRmZDM5NGY0MjNjNmZiMGE2ZmEwODY5NmIyMS4uNjUxZTBkZmY0OTUw
ZmFiN2U5NjUxMjA1M2E0MTllMDNjYTIxYzY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwCkBAIC01Nzc5LDggKzU3NzksOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6OmRpc3BhdGNoRXZlbnQoRXZlbnQmIGV2ZW50KQogICAgIC8vIFdlIG5lZWQgdG8gZmlyZSB0
aGUgZW5kIGZ1bGxzY3JlZW4gZXZlbnQgdG8gbm90aWZ5IHRoZSBwYWdlCiAgICAgLy8gdG8gY2hh
bmdlIHRoZSBwb3NpdGlvbi9zaXplIGJhY2sgKmJlZm9yZSogZXhpdGluZyBmdWxsc2NyZWVuLgog
ICAgIC8vIE90aGVyd2lzZSwgdGhlIGV4aXQgZnVsbHNjcmVlbiBhbmltYXRpb24gd2lsbCBiZSBp
bmNvcnJlY3QuCi0gICAgaWYgKCFtX3ZpZGVvRnVsbHNjcmVlblN0YW5kYnkgJiYgIW1fd2FpdGlu
Z1RvRW50ZXJGdWxsc2NyZWVuICYmIGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCkud2Via2l0
ZW5kZnVsbHNjcmVlbkV2ZW50KSB7Ci0gICAgICAgIHNldEZ1bGxzY3JlZW5Nb2RlKFZpZGVvRnVs
bHNjcmVlbk1vZGVOb25lKTsKKyAgICBpZiAoIW1fdmlkZW9GdWxsc2NyZWVuU3RhbmRieSAmJiBt
X3ZpZGVvRnVsbHNjcmVlbk1vZGUgPT0gVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUgJiYgZXZlbnQu
dHlwZSgpID09IGV2ZW50TmFtZXMoKS53ZWJraXRlbmRmdWxsc2NyZWVuRXZlbnQpIHsKKyAgICAg
ICAgbV9jaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSB0cnVlOwogICAgICAgICBkb2N1bWVu
dCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVv
RWxlbWVudChkb3duY2FzdDxIVE1MVmlkZW9FbGVtZW50PigqdGhpcykpOwogICAgIH0KIH0KQEAg
LTU5MTEsMTUgKzU5MTEsMTIgQEAgZG91YmxlIEhUTUxNZWRpYUVsZW1lbnQ6Om1heEZhc3RGb3J3
YXJkUmF0ZSgpIGNvbnN0CiAKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6aXNGdWxsc2NyZWVuKCkg
Y29uc3QKIHsKLSAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5Nb2RlICE9IFZpZGVvRnVsbHNjcmVl
bk1vZGVOb25lKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQogI2lmIEVOQUJMRShGVUxMU0NSRUVO
X0FQSSkKICAgICBpZiAoZG9jdW1lbnQoKS5mdWxsc2NyZWVuTWFuYWdlcigpLmlzRnVsbHNjcmVl
bigpICYmIGRvY3VtZW50KCkuZnVsbHNjcmVlbk1hbmFnZXIoKS5jdXJyZW50RnVsbHNjcmVlbkVs
ZW1lbnQoKSA9PSB0aGlzKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogCi0gICAgcmV0
dXJuIGZhbHNlOworICAgIHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbk1vZGUgIT0gVmlkZW9GdWxs
c2NyZWVuTW9kZU5vbmU7CiB9CiAKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6aXNTdGFuZGFyZEZ1
bGxzY3JlZW4oKSBjb25zdApAQCAtNTk1NSw2ICs1OTUyLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjplbnRlckZ1bGxzY3JlZW4oVmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQogICAgIGlmIChk
b2N1bWVudCgpLnNldHRpbmdzKCkuZnVsbFNjcmVlbkVuYWJsZWQoKSAmJiBtb2RlID09IFZpZGVv
RnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkgewogICAgICAgICBtX3RlbXBvcmFyaWx5QWxsb3dpbmdJ
bmxpbmVQbGF5YmFja0FmdGVyRnVsbHNjcmVlbiA9IGZhbHNlOwogICAgICAgICBtX3dhaXRpbmdU
b0VudGVyRnVsbHNjcmVlbiA9IHRydWU7CisgICAgICAgIG1fY2hhbmdpbmdWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlID0gdHJ1ZTsKICAgICAgICAgZG9jdW1lbnQoKS5mdWxsc2NyZWVuTWFuYWdlcigpLnJl
cXVlc3RGdWxsc2NyZWVuRm9yRWxlbWVudCh0aGlzLCBGdWxsc2NyZWVuTWFuYWdlcjo6RXhlbXB0
SUZyYW1lQWxsb3dGdWxsc2NyZWVuUmVxdWlyZW1lbnQpOwogICAgICAgICByZXR1cm47CiAgICAg
fQpAQCAtNTk3MiwxMSArNTk3MCwxNCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVs
bHNjcmVlbihWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpCiAgICAgICAgICAgICAgICAgQUxXQVlT
X0xPRyhMT0dJREVOVElGSUVSLCAiRW50ZXJpbmcgZnVsbHNjcmVlbiBtb2RlICIsIG1vZGUsICIs
IG1fdmlkZW9GdWxsc2NyZWVuU3RhbmRieSA9ICIsIG1fdmlkZW9GdWxsc2NyZWVuU3RhbmRieSk7
CiAKICAgICAgICAgICAgICAgICBtX3RlbXBvcmFyaWx5QWxsb3dpbmdJbmxpbmVQbGF5YmFja0Fm
dGVyRnVsbHNjcmVlbiA9IGZhbHNlOwotICAgICAgICAgICAgICAgIG1fd2FpdGluZ1RvRW50ZXJG
dWxsc2NyZWVuID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpZiAobW9kZSA9PSBWaWRlb0Z1bGxz
Y3JlZW5Nb2RlU3RhbmRhcmQpCisgICAgICAgICAgICAgICAgICAgIG1fd2FpdGluZ1RvRW50ZXJG
dWxsc2NyZWVuID0gdHJ1ZTsKKwogICAgICAgICAgICAgICAgIGF1dG8gb2xkTW9kZSA9IG1fdmlk
ZW9GdWxsc2NyZWVuTW9kZTsKICAgICAgICAgICAgICAgICBzZXRGdWxsc2NyZWVuTW9kZShtb2Rl
KTsKICAgICAgICAgICAgICAgICBjb25maWd1cmVNZWRpYUNvbnRyb2xzKCk7CiAKKyAgICAgICAg
ICAgICAgICBtX2NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IHRydWU7CiAgICAgICAgICAg
ICAgICAgZG9jdW1lbnQoKS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmVudGVyVmlkZW9GdWxs
c2NyZWVuRm9yVmlkZW9FbGVtZW50KGFzVmlkZW8sIG1fdmlkZW9GdWxsc2NyZWVuTW9kZSwgbV92
aWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KTsKICAgICAgICAgICAgICAgICBpZiAobV92aWRlb0Z1bGxz
Y3JlZW5TdGFuZGJ5KQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC02MDAzLDggKzYw
MDQsMTAgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpleGl0RnVsbHNjcmVlbigpCiAKICNpZiBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgaWYgKGRvY3VtZW50KCkuc2V0dGluZ3MoKS5mdWxs
U2NyZWVuRW5hYmxlZCgpICYmIGRvY3VtZW50KCkuZnVsbHNjcmVlbk1hbmFnZXIoKS5jdXJyZW50
RnVsbHNjcmVlbkVsZW1lbnQoKSA9PSB0aGlzKSB7Ci0gICAgICAgIGlmIChkb2N1bWVudCgpLmZ1
bGxzY3JlZW5NYW5hZ2VyKCkuaXNGdWxsc2NyZWVuKCkpCisgICAgICAgIGlmIChkb2N1bWVudCgp
LmZ1bGxzY3JlZW5NYW5hZ2VyKCkuaXNGdWxsc2NyZWVuKCkpIHsKKyAgICAgICAgICAgIG1fY2hh
bmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlID0gdHJ1ZTsKICAgICAgICAgICAgIGRvY3VtZW50KCku
ZnVsbHNjcmVlbk1hbmFnZXIoKS5jYW5jZWxGdWxsc2NyZWVuKCk7CisgICAgICAgIH0KIAogICAg
ICAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5Nb2RlID09IFZpZGVvRnVsbHNjcmVlbk1vZGVTdGFu
ZGFyZCkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTYwMzIsMTUgKzYwMzUsMjAgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpleGl0RnVsbHNjcmVlbigpCiAKICAgICBpZiAoZG9jdW1lbnQoKS5h
Y3RpdmVET01PYmplY3RzQXJlU3VzcGVuZGVkKCkgfHwgZG9jdW1lbnQoKS5hY3RpdmVET01PYmpl
Y3RzQXJlU3RvcHBlZCgpKSB7CiAgICAgICAgIHNldEZ1bGxzY3JlZW5Nb2RlKFZpZGVvRnVsbHNj
cmVlbk1vZGVOb25lKTsKKyAgICAgICAgbV9jaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSB0
cnVlOwogICAgICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZXhpdFZp
ZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhvdXRBbmltYXRpb24oZG93bmNhc3Q8SFRNTFZpZGVvRWxl
bWVudD4oKnRoaXMpLCBWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSk7CiAgICAgfSBlbHNlIGlmIChk
b2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9ydHNWaWRlb0Z1bGxzY3Jl
ZW4ob2xkVmlkZW9GdWxsc2NyZWVuTW9kZSkpIHsKICAgICAgICAgaWYgKG1fdmlkZW9GdWxsc2Ny
ZWVuU3RhbmRieSkgewogICAgICAgICAgICAgc2V0RnVsbHNjcmVlbk1vZGUoVmlkZW9GdWxsc2Ny
ZWVuTW9kZU5vbmUpOworICAgICAgICAgICAgbV9jaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUg
PSB0cnVlOwogICAgICAgICAgICAgZG9jdW1lbnQoKS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgp
LmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KGRvd25jYXN0PEhUTUxWaWRlb0Vs
ZW1lbnQ+KCp0aGlzKSwgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlLCBtX3ZpZGVvRnVsbHNjcmVlblN0
YW5kYnkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKKyAgICAgICAgbV9jaGFu
Z2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSB0cnVlOworCiAgICAgICAgIGlmIChvbGRWaWRlb0Z1
bGxzY3JlZW5Nb2RlID09IFZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkgeworICAgICAgICAg
ICAgc2V0RnVsbHNjcmVlbk1vZGUoVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpOwogICAgICAgICAg
ICAgLy8gVGhlIGV4aXQgZnVsbHNjcmVlbiByZXF1ZXN0IHdpbGwgYmUgc2VudCBpbiBkaXNwYXRj
aEV2ZW50KCkuCiAgICAgICAgICAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS53ZWJraXRl
bmRmdWxsc2NyZWVuRXZlbnQpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNjExMCw2ICs2MTE4
LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpkaWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCgp
CiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAiLCBmdWxsc2NyZWVuIG1vZGUgPSAi
LCBmdWxsc2NyZWVuTW9kZSgpKTsKICAgICBtX3dhaXRpbmdUb0VudGVyRnVsbHNjcmVlbiA9IGZh
bHNlOworICAgIG1fY2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlID0gZmFsc2U7CiAgICAgc2No
ZWR1bGVVcGRhdGVQbGF5U3RhdGUoKTsKIH0KIApAQCAtNjExOSw2ICs2MTI4LDExIEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6d2lsbFN0b3BCZWluZ0Z1bGxzY3JlZW5FbGVtZW50KCkKICAgICAg
ICAgc2V0RnVsbHNjcmVlbk1vZGUoVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpOwogfQogCit2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OmRpZFN0b3BCZWluZ0Z1bGxzY3JlZW5FbGVtZW50KCkKK3sKKyAg
ICBtX2NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IGZhbHNlOworfQorCiBQbGF0Zm9ybUxh
eWVyKiBIVE1MTWVkaWFFbGVtZW50OjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKICAgICByZXR1
cm4gbV9wbGF5ZXIgPyBtX3BsYXllci0+cGxhdGZvcm1MYXllcigpIDogbnVsbHB0cjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggYWIyYjAwMTFiNTk0MzllYTUxZThh
YTNlMjA4ZmUwMTJjNjNkMTJlZC4uMmY4Yjc0ZjU1OTdmMjIwMGRmZDc3ZmQwMGY1ZWMxM2QyYjk2
NzgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTU1NCw4ICs1
NTQsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzU3VzcGVuZGVkKCkgY29uc3QgZmluYWw7CiAK
LSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KCkgb3Zl
cnJpZGU7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVu
dCgpIGZpbmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd2lsbEV4aXRGdWxsc2NyZWVuKCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRTdG9wQmVpbmdGdWxsc2NyZWVuRWxlbWVudCgp
IGZpbmFsOwogCiAjaWYgRU5BQkxFKFBJQ1RVUkVfSU5fUElDVFVSRV9BUEkpCiAgICAgdm9pZCBz
Y2hlZHVsZUV2ZW50KFJlZjxFdmVudD4mJik7CkBAIC02MTAsNyArNjExLDkgQEAgcHJvdGVjdGVk
OgogICAgIHZvaWQgdXBkYXRlTWVkaWFDb250cm9sc0FmdGVyUHJlc2VudGF0aW9uTW9kZUNoYW5n
ZSgpOwogCiAgICAgdm9pZCBzY2hlZHVsZUV2ZW50KGNvbnN0IEF0b21TdHJpbmcmKTsKLSAgICBi
b29sIHdhaXRpbmdUb0VudGVyRnVsbHNjcmVlbigpIHsgcmV0dXJuIG1fd2FpdGluZ1RvRW50ZXJG
dWxsc2NyZWVuOyB9CisKKyAgICB2b2lkIHNldENoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZShi
b29sIHZhbHVlKSB7IG1fY2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlID0gdmFsdWU7IH0KKyAg
ICBib29sIGlzQ2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlKCkgY29uc3QgeyByZXR1cm4gbV9j
aGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGU7IH0KIAogcHJpdmF0ZToKICAgICB2b2lkIGNyZWF0
ZU1lZGlhUGxheWVyKCk7CkBAIC0xMTA5LDYgKzExMTIsNyBAQCBwcml2YXRlOgogCiAgICAgYm9v
bCBtX2lzU2NydWJiaW5nUmVtb3RlbHkgOiAxOwogICAgIGJvb2wgbV93YWl0aW5nVG9FbnRlckZ1
bGxzY3JlZW4gOiAxOworICAgIGJvb2wgbV9jaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgOiAx
OwogCiAgICAgYm9vbCBtX3RyYWNrc0FyZVJlYWR5IDogMTsKICAgICBib29sIG1faGF2ZVZpc2li
bGVUZXh0VHJhY2sgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlk
ZW9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAK
aW5kZXggOGRmYWJiMzIyYzQwMDBiYTY2OTg2MTU4OGMxYmFkYzdhZGYzOTgyZi4uYzdjMTJmYzhi
NTY2MmU5OTVkOGM4MWZhNTU4ZmExYjA1MTQ1MWQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxWaWRlb0VsZW1lbnQuY3BwCkBAIC0zNTMsMTEgKzM1Myw5IEBAIGJvb2wgSFRNTFZpZGVvRWxl
bWVudDo6d2Via2l0U3VwcG9ydHNGdWxsc2NyZWVuKCkKIGJvb2wgSFRNTFZpZGVvRWxlbWVudDo6
d2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4oKQogewogICAgIGlmIChkb2N1bWVudCgpLnF1aXJr
cygpLm5lZWRzQWthbWFpTWVkaWFQbGF5ZXJRdWlyaygqdGhpcykpCi0gICAgICAgIHJldHVybiBp
c0Z1bGxzY3JlZW4oKSB8fCBtX2lzQ2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlOworICAgICAg
ICByZXR1cm4gaXNGdWxsc2NyZWVuKCkgfHwgaXNDaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUo
KTsKIAotICAgIC8vIFRoaXMgZnVuY3Rpb24gc3RhcnRzIHRvIHJldHVybiB0cnVlIGFmdGVyIHRo
ZSB2aWRlbyBlbGVtZW50IGhhcyBlbnRlcmVkCi0gICAgLy8gZnVsbHNjcmVlbi9waWN0dXJlLWlu
LXBpY3R1cmUgdW50aWwgaXQgaGFzIGV4aXRlZCBmdWxsc2NyZWVuL3BpY3R1cmUtaW4tcGljdHVy
ZQotICAgIHJldHVybiAoaXNGdWxsc2NyZWVuKCkgJiYgIXdhaXRpbmdUb0VudGVyRnVsbHNjcmVl
bigpKSB8fCAoIWlzRnVsbHNjcmVlbigpICYmIG1faXNDaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1v
ZGUpOworICAgIHJldHVybiBpc0Z1bGxzY3JlZW4oKTsKIH0KIAogdm9pZCBIVE1MVmlkZW9FbGVt
ZW50OjphbmNlc3RvcldpbGxFbnRlckZ1bGxzY3JlZW4oKQpAQCAtNDc0LDcgKzQ3Miw3IEBAIHZv
aWQgSFRNTFZpZGVvRWxlbWVudDo6d2Via2l0U2V0UHJlc2VudGF0aW9uTW9kZShWaWRlb1ByZXNl
bnRhdGlvbk1vZGUgbW9kZSkKIAogdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpzZXRQcmVzZW50YXRp
b25Nb2RlKFZpZGVvUHJlc2VudGF0aW9uTW9kZSBtb2RlKQogewotICAgIGlmIChtX2lzQ2hhbmdp
bmdWaWRlb0Z1bGxzY3JlZW5Nb2RlIHx8IHRvUHJlc2VudGF0aW9uTW9kZShmdWxsc2NyZWVuTW9k
ZSgpKSA9PSBtb2RlKQorICAgIGlmIChpc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSgpIHx8
IHRvUHJlc2VudGF0aW9uTW9kZShmdWxsc2NyZWVuTW9kZSgpKSA9PSBtb2RlKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBhdXRvIHZpZGVvRnVsbHNjcmVlbk1vZGUgPSB0b0Z1bGxzY3JlZW5Nb2Rl
KG1vZGUpOwpAQCAtNDg1LDcgKzQ4Myw2IEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6c2V0UHJl
c2VudGF0aW9uTW9kZShWaWRlb1ByZXNlbnRhdGlvbk1vZGUgbW9kZSkKICAgICAgICAgICAgIGlm
ICh0b1ByZXNlbnRhdGlvbk1vZGUoZnVsbHNjcmVlbk1vZGUoKSkgPT0gVmlkZW9QcmVzZW50YXRp
b25Nb2RlOjpQaWN0dXJlSW5QaWN0dXJlKQogICAgICAgICAgICAgICAgIG1faXNFeGl0aW5nUGlj
dHVyZUluUGljdHVyZSA9IHRydWU7CiAKLSAgICAgICAgICAgIG1faXNDaGFuZ2luZ1ZpZGVvRnVs
bHNjcmVlbk1vZGUgPSB0cnVlOwogICAgICAgICAgICAgZXhpdEZ1bGxzY3JlZW4oKTsKICAgICAg
ICAgfQogCkBAIC01MDAsNyArNDk3LDYgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpzZXRQcmVz
ZW50YXRpb25Nb2RlKFZpZGVvUHJlc2VudGF0aW9uTW9kZSBtb2RlKQogICAgIGVsc2UgaWYgKGZ1
bGxzY3JlZW5Nb2RlKCkgPT0gVmlkZW9GdWxsc2NyZWVuTW9kZVBpY3R1cmVJblBpY3R1cmUpCiAg
ICAgICAgIG1faXNFeGl0aW5nUGljdHVyZUluUGljdHVyZSA9IHRydWU7CiAKLSAgICBtX2lzQ2hh
bmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlID0gdHJ1ZTsKICAgICBlbnRlckZ1bGxzY3JlZW4odmlk
ZW9GdWxsc2NyZWVuTW9kZSk7CiB9CiAKQEAgLTUxMSwyMCArNTA3LDI1IEBAIGF1dG8gSFRNTFZp
ZGVvRWxlbWVudDo6d2Via2l0UHJlc2VudGF0aW9uTW9kZSgpIGNvbnN0IC0+IFZpZGVvUHJlc2Vu
dGF0aW9uTW9kZQogCiB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OmRpZEVudGVyRnVsbHNjcmVlbk9y
UGljdHVyZUluUGljdHVyZShjb25zdCBGbG9hdFNpemUmIHNpemUpCiB7Ci0gICAgbV9pc0NoYW5n
aW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IGZhbHNlOwotICAgIGlmIChtX2lzRW50ZXJpbmdQaWN0
dXJlSW5QaWN0dXJlIHx8IG1faXNFeGl0aW5nUGljdHVyZUluUGljdHVyZSkgeworICAgIGlmICht
X2lzRW50ZXJpbmdQaWN0dXJlSW5QaWN0dXJlKSB7CisgICAgICAgIG1faXNFbnRlcmluZ1BpY3R1
cmVJblBpY3R1cmUgPSBmYWxzZTsKKyAgICAgICAgc2V0Q2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5N
b2RlKGZhbHNlKTsKKwogI2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKQotICAgICAg
ICBpZiAobV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIpIHsKLSAgICAgICAgICAgIGlmIChtX2lz
RW50ZXJpbmdQaWN0dXJlSW5QaWN0dXJlKQotICAgICAgICAgICAgICAgIG1fcGljdHVyZUluUGlj
dHVyZU9ic2VydmVyLT5kaWRFbnRlclBpY3R1cmVJblBpY3R1cmUoZmxvb3JlZEludFNpemUoc2l6
ZSkpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG1fcGljdHVyZUluUGljdHVy
ZU9ic2VydmVyLT5kaWRFeGl0UGljdHVyZUluUGljdHVyZSgpOwotICAgICAgICB9CisgICAgICAg
IGlmIChtX3BpY3R1cmVJblBpY3R1cmVPYnNlcnZlcikKKyAgICAgICAgICAgIG1fcGljdHVyZUlu
UGljdHVyZU9ic2VydmVyLT5kaWRFbnRlclBpY3R1cmVJblBpY3R1cmUoZmxvb3JlZEludFNpemUo
c2l6ZSkpOwogI2Vsc2UKICAgICAgICAgVU5VU0VEX1BBUkFNKHNpemUpOwogI2VuZGlmCi0gICAg
ICAgIG1faXNFbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGlmIChtX2lzRXhpdGluZ1BpY3R1cmVJblBpY3R1cmUpIHsKICAgICAg
ICAgbV9pc0V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlID0gZmFsc2U7CisjaWYgRU5BQkxFKFBJQ1RV
UkVfSU5fUElDVFVSRV9BUEkpCisgICAgICAgIGlmIChtX3BpY3R1cmVJblBpY3R1cmVPYnNlcnZl
cikKKyAgICAgICAgICAgIG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyLT5kaWRFeGl0UGljdHVy
ZUluUGljdHVyZSgpOworI2VuZGlmCiAgICAgfQogCiAgICAgSFRNTE1lZGlhRWxlbWVudDo6ZGlk
QmVjb21lRnVsbHNjcmVlbkVsZW1lbnQoKTsKQEAgLTUzMiwyMyArNTMzLDI0IEBAIHZvaWQgSFRN
TFZpZGVvRWxlbWVudDo6ZGlkRW50ZXJGdWxsc2NyZWVuT3JQaWN0dXJlSW5QaWN0dXJlKGNvbnN0
IEZsb2F0U2l6ZSYgc2l6CiAKIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6ZGlkRXhpdEZ1bGxzY3Jl
ZW5PclBpY3R1cmVJblBpY3R1cmUoKQogewotICAgIG1faXNDaGFuZ2luZ1ZpZGVvRnVsbHNjcmVl
bk1vZGUgPSBmYWxzZTsKICAgICBpZiAobV9pc0V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlKSB7CiAg
ICAgICAgIG1faXNFeGl0aW5nUGljdHVyZUluUGljdHVyZSA9IGZhbHNlOworICAgICAgICBzZXRD
aGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUoZmFsc2UpOworCiAjaWYgRU5BQkxFKFBJQ1RVUkVf
SU5fUElDVFVSRV9BUEkpCiAgICAgICAgIGlmIChtX3BpY3R1cmVJblBpY3R1cmVPYnNlcnZlcikK
ICAgICAgICAgICAgIG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyLT5kaWRFeGl0UGljdHVyZUlu
UGljdHVyZSgpOwogI2VuZGlmCisgICAgICAgIHJldHVybjsKICAgICB9CisKKyAgICBIVE1MTWVk
aWFFbGVtZW50OjpkaWRTdG9wQmVpbmdGdWxsc2NyZWVuRWxlbWVudCgpOwogfQogCi0jaWYgRU5B
QkxFKEZVTExTQ1JFRU5fQVBJKSAmJiBFTkFCTEUoVklERU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JF
RU4pCi12b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OmRpZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KCkK
K2Jvb2wgSFRNTFZpZGVvRWxlbWVudDo6aXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUoKSBjb25z
dAogewotICAgIG1faXNDaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSBmYWxzZTsKLSAgICBI
VE1MTWVkaWFFbGVtZW50OjpkaWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCgpOworICAgIHJldHVy
biBpc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSgpOwogfQotI2VuZGlmCiAKIHZvaWQgSFRN
TFZpZGVvRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoY29uc3QgRmxvYXRSZWN0JiBm
cmFtZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKaW5kZXggZWQzNGRk
MzZkY2U3YzZkY2FlZWRiNDNmNzMyNDVjZDljZmEwOTM0My4uZGI5MzgwZWQ1ODE0ZmE0ZTE0OTJk
ZmFhOTQ1ZTIxYTY0ZTQ1ZGE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VmlkZW9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50
LmgKQEAgLTkxLDEwICs5MSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dFByZXNlbnRhdGlvbk1vZGUoVmlkZW9QcmVzZW50YXRpb25Nb2RlKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbk9yUGljdHVyZUluUGljdHVyZShjb25zdCBGbG9h
dFNpemUmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuT3JQaWN0
dXJlSW5QaWN0dXJlKCk7Ci0KLSNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpICYmIEVOQUJMRShW
SURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRp
ZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KCkgZmluYWw7Ci0jZW5kaWYKKyAgICBXRUJDT1JFX0VY
UE9SVCBib29sIGlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKCkgY29uc3Q7CiAKICAgICB2b2lk
IHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKGNvbnN0IEZsb2F0UmVjdCYpIGZpbmFsOwogCkBAIC0x
MzgsNyArMTM1LDYgQEAgcHJpdmF0ZToKIAogICAgIHVuc2lnbmVkIG1fbGFzdFJlcG9ydGVkVmlk
ZW9XaWR0aCB7IDAgfTsKICAgICB1bnNpZ25lZCBtX2xhc3RSZXBvcnRlZFZpZGVvSGVpZ2h0IHsg
MCB9OwotICAgIGJvb2wgbV9pc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSB7IGZhbHNlIH07
CiAKICNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCiAgICAgYm9vbCBtX2lzRW50
ZXJpbmdQaWN0dXJlSW5QaWN0dXJlIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcAppbmRleCA1OTEwNjEyMWE2NjVlMThlZDQ5NjY4MWU3ZmRkMzVkYzcyYTBiMGU3Li43
NjMxZjdmODA5NDhlMTZjY2RhYTA3ZDQwMzM5MWNjOTQ0MmI3ZjMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCkBAIC0zMzUxLDYgKzMzNTEsMTEgQEAgdm9pZCBJbnRlcm5hbHM6
OnNldEZ1bGxzY3JlZW5Db250cm9sc0hpZGRlbihib29sIGhpZGRlbikKIH0KIAogI2lmIEVOQUJM
RShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKK2Jvb2wgSW50ZXJuYWxzOjppc0NoYW5naW5nUHJl
c2VudGF0aW9uTW9kZShIVE1MVmlkZW9FbGVtZW50JiBlbGVtZW50KSBjb25zdAoreworICAgIHJl
dHVybiBlbGVtZW50LmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKCk7Cit9CisKIHZvaWQgSW50
ZXJuYWxzOjpzZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZChib29sIGVuYWJsZWQp
CiB7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY29udGV4dERvY3VtZW50KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBkMTdjZGVkMWQyMTllNjUzOGNjMTQ4MTMzYzU2ZWZi
MTJhYWM1YWUzLi43MzE5YmYzYzEzZTYwZjY2Y2JmNmVhYmY4ZmE0NDRiOGZjNTgzYTI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTUwOCw2ICs1MDgsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRGdWxsc2NyZWVuQ29udHJvbHNIaWRkZW4oYm9vbCk7CiAKICNpZiBFTkFCTEUo
VklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgYm9vbCBpc0NoYW5naW5nUHJlc2VudGF0aW9u
TW9kZShIVE1MVmlkZW9FbGVtZW50JikgY29uc3Q7CiAgICAgdm9pZCBzZXRNb2NrVmlkZW9QcmVz
ZW50YXRpb25Nb2RlRW5hYmxlZChib29sKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwKaW5kZXggZmQ2N2U3MTIyYWNkNDE2YmNkZDcwNGVhNWQwMDM1NWY5YzY4YjA0
Mi4uOTM3MjVjNTk1ODY0ZTRkNjlmYzJlZDIxNzBiZWM1YzY4ZWJhY2UxZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtNTY0LDYgKzU2NCw3IEBAIGVudW0gQ29udGVudFNp
emVDYXRlZ29yeSB7CiAgICAgdW5kZWZpbmVkIHNldEZ1bGxzY3JlZW5BdXRvSGlkZUR1cmF0aW9u
KGRvdWJsZSBkdXJhdGlvbik7CiAgICAgdW5kZWZpbmVkIHNldEZ1bGxzY3JlZW5Db250cm9sc0hp
ZGRlbihib29sZWFuIGhpZGRlbik7CiAKKyAgICBbQ29uZGl0aW9uYWw9VklERU9fUFJFU0VOVEFU
SU9OX01PREVdIGJvb2xlYW4gaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUoSFRNTFZpZGVvRWxl
bWVudCBlbGVtZW50KTsKICAgICBbQ29uZGl0aW9uYWw9VklERU9fUFJFU0VOVEFUSU9OX01PREVd
IHVuZGVmaW5lZCBzZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZChib29sZWFuIGVu
YWJsZWQpOwogCiAgICAgdW5kZWZpbmVkIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1
bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGU0MzdhYjIxNDAxNWVmNTJjMWFlYzQxZGZmMGI3ZWZkYmY2
MWY3MDEuLmVkYzczNDhhMTViNWE3ZGY1MjA3MGRmNDU1ZGQ2MDgyZDA4N2Q4MTcgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAyMC0wOS0xNyAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAgICAg
IExldCB3ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbigpIHJldHVybiB0cnVlIHdoZW4gYSB2aWRl
byBlbGVtZW504oCZcyBmdWxsc2NyZWVuIG1vZGUgaXMgbm90IFZpZGVvRnVsbHNjcmVlbk1vZGVO
b25lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY0
MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3Q2xvc2VBbGxNZWRpYVByZXNl
bnRhdGlvbnMubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgVXNlIGludGVybmFscy5pc0No
YW5naW5nUHJlc2VudGF0aW9uTW9kZSgpIHRvIGNoZWNrIHdoZXRoZXIgYSB2aWRlbyBwcmVzZW50
YXRpb24KKyAgICAgICAgY2hhbmdlIChmcm9tIGlubGluZSB0byBwaWN0dXJlLWluLXBpY3R1cmUp
IGlzIGNvbXBsZXRlZCBiZWZvcmUgbW92aW5nIHRvIHRoZSBuZXh0CisgICAgICAgIHN0ZXAgb2Yg
dGhlIHRlc3QuCisKIDIwMjAtMDktMTcgIFbDrWN0b3IgTWFudWVsIErDoXF1ZXogTGVhbCAgPHZq
YXF1ZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbRmxhdHBhayBTREtdIGJ3cmFwOiBhZGQgcGlw
ZXdpcmUgc29ja2V0IGFzIGJpbmQgbW91bnQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3Q2xvc2VBbGxNZWRpYVByZXNlbnRhdGlvbnMu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0Nsb3Nl
QWxsTWVkaWFQcmVzZW50YXRpb25zLm1tCmluZGV4IGUxMDVlZmI1YTViNGJmOTU3ZjQ5YTEzZGU3
M2UyNTg4YzQ5ZDIzYzAuLmFiMTMxZmQ2NWUzNjYzNzE0YTVkOTJlOGI0NjQ0NzcwYTAwNWM1Mzgg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJW
aWV3Q2xvc2VBbGxNZWRpYVByZXNlbnRhdGlvbnMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdDbG9zZUFsbE1lZGlhUHJlc2VudGF0aW9ucy5t
bQpAQCAtMjcsNiArMjcsNyBAQAogCiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgogI2lt
cG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCAiV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4
dHJhcy5oIgogI2ltcG9ydCA8V2ViQ29yZS9QaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5oPgogI2lt
cG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tX
ZWJWaWV3UHJpdmF0ZS5oPgpAQCAtNDAsMjUgKzQxLDI2IEBAIFRFU1QoV0tXZWJWaWV3Q2xvc2VB
bGxNZWRpYVByZXNlbnRhdGlvbnMsIFBpY3R1cmVJblBpY3R1cmUpCiAgICAgaWYgKCFXZWJDb3Jl
OjpzdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0
byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLnByZWZlcmVuY2VzLl9hbGxvd3NQaWN0
dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayA9IFlFUzsKLSAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAs
IDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6
WUVTXSk7CisgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9u
IF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQ
bHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107CisgICAgW1tj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0QWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlh
UGxheWJhY2s6WUVTXTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb24gYWRkVG9XaW5kb3c6WUVTXSk7CiAKICAgICBbd2ViVmlldyBz
eW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8dmlkZW8gc3JjPXZpZGVvLXdpdGgtYXVkaW8u
bXA0IHdlYmtpdC1wbGF5c2lubGluZSBwbGF5c2lubGluZSBsb29wPjwvdmlkZW8+Il07CisgICAg
W3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoJ3ZpZGVvJykuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0cHJlc2VudGF0aW9ubW9kZWNo
YW5nZWQnLCBldmVudCA9PiB7IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5k
bGVyLnBvc3RNZXNzYWdlKCdwcmVzZW50YXRpb25tb2RlY2hhbmdlZCcpOyB9KTsiXTsKIAotICAg
IFt3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHRXaXRoVXNlckdlc3R1cmU6QCJk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUo
J3BpY3R1cmUtaW4tcGljdHVyZScpIl07CisgICAgX19ibG9jayBib29sIHByZXNlbnRhdGlvbk1v
ZGVDaGFuZ2VkID0gZmFsc2U7CisgICAgW3dlYlZpZXcgcGVyZm9ybUFmdGVyUmVjZWl2aW5nTWVz
c2FnZTpAInByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIiBhY3Rpb246XnsgcHJlc2VudGF0aW9uTW9k
ZUNoYW5nZWQgPSB0cnVlOyB9XTsKIAorICAgIFt3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0ph
dmFTY3JpcHRXaXRoVXNlckdlc3R1cmU6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycp
LndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoJ3BpY3R1cmUtaW4tcGljdHVyZScpIl07CisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZwcmVzZW50YXRpb25Nb2RlQ2hhbmdlZCk7CiAgICAg
ZG8gewotICAgICAgICBpZCByZXN1bHQgPSBbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8nKS53ZWJraXREaXNwbGF5aW5n
RnVsbHNjcmVlbiJdOwotICAgICAgICBpZiAoW3Jlc3VsdCBib29sVmFsdWVdKQorICAgICAgICBp
ZiAoIVt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5kb3cuaW50ZXJu
YWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3Zp
ZGVvJykpIl0uYm9vbFZhbHVlKQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6c2xlZXAoMC41KTsKICAgICB9IHdoaWxlICh0cnVlKTsKIAotICAgIFt3
ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVj
dG9yKCd2aWRlbycpLmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFu
Z2VkJywgZXZlbnQgPT4geyB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxl
ci5wb3N0TWVzc2FnZSgncHJlc2VudGF0aW9ubW9kZWNoYW5nZWQnKTsgfSk7Il07Ci0KLSAgICBf
X2Jsb2NrIGJvb2wgcHJlc2VudGF0aW9uTW9kZUNoYW5nZWQgPSBmYWxzZTsKKyAgICBwcmVzZW50
YXRpb25Nb2RlQ2hhbmdlZCA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IHBlcmZvcm1BZnRlclJlY2Vp
dmluZ01lc3NhZ2U6QCJwcmVzZW50YXRpb25tb2RlY2hhbmdlZCIgYWN0aW9uOl57IHByZXNlbnRh
dGlvbk1vZGVDaGFuZ2VkID0gdHJ1ZTsgfV07CiAKICAgICBbd2ViVmlldyBfY2xvc2VBbGxNZWRp
YVByZXNlbnRhdGlvbnNdOwpAQCAtNzQsOSArNzYsOSBAQCBURVNUKFdLV2ViVmlld0Nsb3NlQWxs
TWVkaWFQcmVzZW50YXRpb25zLCBQaWN0dXJlSW5QaWN0dXJlKQogCiBURVNUKFdLV2ViVmlld0Ns
b3NlQWxsTWVkaWFQcmVzZW50YXRpb25zLCBWaWRlb0Z1bGxzY3JlZW4pCiB7Ci0gICAgYXV0byBj
b25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGlu
aXRdKTsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLnByZWZlcmVuY2VzLl9mdWxsU2NyZWVuRW5h
YmxlZCA9IFlFUzsKLSAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CisgICAgYXV0byAqY29u
ZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25X
aXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBj
b25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXSBfc2V0RnVsbFNjcmVlbkVuYWJsZWQ6WUVTXTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAs
IDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24gYWRkVG9XaW5kb3c6WUVTXSk7
CiAKICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8dmlkZW8gc3Jj
PXZpZGVvLXdpdGgtYXVkaW8ubXA0IHdlYmtpdC1wbGF5c2lubGluZSBwbGF5c2lubGluZSBsb29w
PjwvdmlkZW8+Il07CiAgICAgW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpA
ImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvJykuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0
cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQnLCBldmVudCA9PiB7IHdpbmRvdy53ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdwcmVzZW50YXRpb25tb2RlY2hhbmdl
ZCcpOyB9KTsiXTsKQEAgLTg1LDggKzg3LDE1IEBAIFRFU1QoV0tXZWJWaWV3Q2xvc2VBbGxNZWRp
YVByZXNlbnRhdGlvbnMsIFZpZGVvRnVsbHNjcmVlbikKICAgICBbd2ViVmlldyBwZXJmb3JtQWZ0
ZXJSZWNlaXZpbmdNZXNzYWdlOkAicHJlc2VudGF0aW9ubW9kZWNoYW5nZWQiIGFjdGlvbjpeeyBw
cmVzZW50YXRpb25Nb2RlQ2hhbmdlZCA9IHRydWU7IH1dOwogCiAgICAgW3dlYlZpZXcgb2JqZWN0
QnlFdmFsdWF0aW5nSmF2YVNjcmlwdFdpdGhVc2VyR2VzdHVyZTpAImRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoJ3ZpZGVvJykud2Via2l0RW50ZXJGdWxsc2NyZWVuKCkiXTsKKyAgICBbd2ViVmlldyBv
YmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93LmludGVybmFscy5zZXRNb2NrVmlk
ZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCh0cnVlKSJdOwogCiAgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZwcmVzZW50YXRpb25Nb2RlQ2hhbmdlZCk7CisgICAgZG8geworICAgICAgICBp
ZiAoIVt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5kb3cuaW50ZXJu
YWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3Zp
ZGVvJykpIl0uYm9vbFZhbHVlKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6c2xlZXAoMC41KTsKKyAgICB9IHdoaWxlICh0cnVlKTsKIAogICAgIHBy
ZXNlbnRhdGlvbk1vZGVDaGFuZ2VkID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgcGVyZm9ybUFmdGVy
UmVjZWl2aW5nTWVzc2FnZTpAInByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIiBhY3Rpb246XnsgcHJl
c2VudGF0aW9uTW9kZUNoYW5nZWQgPSB0cnVlOyB9XTsKQEAgLTEwMCw5ICsxMDksOSBAQCBURVNU
KFdLV2ViVmlld0Nsb3NlQWxsTWVkaWFQcmVzZW50YXRpb25zLCBWaWRlb0Z1bGxzY3JlZW4pCiAK
IFRFU1QoV0tXZWJWaWV3Q2xvc2VBbGxNZWRpYVByZXNlbnRhdGlvbnMsIEVsZW1lbnRGdWxsc2Ny
ZWVuKQogewotICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5wcmVmZXJl
bmNlcy5fZnVsbFNjcmVlbkVuYWJsZWQgPSBZRVM7Ci0gICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4
MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllF
U10pOworICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBf
dGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1
Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOworICAgIFtbY29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEZ1bGxTY3JlZW5FbmFibGVkOllFU107CisgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9u
IGFkZFRvV2luZG93OllFU10pOwogCiAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1M
U3RyaW5nOkAiPGRpdiBpZD1cInRhcmdldFwiIHN0eWxlPVwid2lkdGg6MTAwcHg7aGVpZ2h0OjEw
MHB4O2JhY2tncm91bmQtY29sb3I6cmVkXCI+PC9kaXY+Il07CiAgICAgW3dlYlZpZXcgb2JqZWN0
QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN0YXJnZXQn
KS5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRmdWxsc2NyZWVuY2hhbmdlJywgZXZlbnQgPT4geyB3
aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnZnVs
bHNjcmVlbmNoYW5nZScpOyB9KTsiXTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmNzYxZTVlYTExYzk0NmJjOTUyNmZmMjQ4
ZDFlOGIxMTlmM2UxMDAyLi40OWM0M2E4ZDBlNTJiYWJlOTI5MjA1ZDQ3YmUzMTZlZTk0M2I5NGM2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjAtMDktMTcgIFBlbmcgTGl1ICA8cGVuZy5saXU2
QGFwcGxlLmNvbT4KKworICAgICAgICBMZXQgd2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4oKSBy
ZXR1cm4gdHJ1ZSB3aGVuIGEgdmlkZW8gZWxlbWVudOKAmXMgZnVsbHNjcmVlbiBtb2RlIGlzIG5v
dCBWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE2NDI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEt
Y29udHJvbHMtbGl2ZS1icm9hZGNhc3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29u
dHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1saXZlLWJyb2FkY2FzdC5odG1s
OgorICAgICAgICAqIG1lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWw6CisgICAgICAgICog
bWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1sb29wLWlubGluZS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1sb29wLWlubGluZS5odG1sOgorICAgICAgICAqIG1l
ZGlhL21lZGlhLWZ1bGxzY3JlZW4tcGF1c2UtaW5saW5lLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBtZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXBhdXNlLWlubGluZS5odG1sOgorICAgICAgICAqIG1l
ZGlhL21lZGlhLWZ1bGxzY3JlZW4tcmV0dXJuLXRvLWlubGluZS1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1yZXR1cm4tdG8taW5saW5lLmh0bWw6CisgICAg
ICAgICogbWVkaWEvcHJlc2VudGF0aW9ubW9kZWNoYW5nZWQtZmlyZWQtb25jZS1leHBlY3RlZC50
eHQ6CisgICAgICAgICogbWVkaWEvcHJlc2VudGF0aW9ubW9kZWNoYW5nZWQtZmlyZWQtb25jZS5o
dG1sOgorICAgICAgICAqIG1lZGlhL3ZpZGVvLWZ1bGxzY3JlZW4tb25seS1wbGF5YmFjay1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogbWVkaWEvdmlkZW8tZnVsbHNjcmVlbi1vbmx5LXBsYXliYWNr
Lmh0bWw6CisgICAgICAgICogbWVkaWEvdmlkZW8tcGxheXNpbmxpbmUtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIG1lZGlhL3ZpZGVvLXBsYXlzaW5saW5lLmh0bWw6CisgICAgICAgICogbWVkaWEv
dmlkZW8tcHJlc2VudGF0aW9uLW1vZGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIG1lZGlhL3Zp
ZGVvLXByZXNlbnRhdGlvbi1tb2RlLmh0bWw6CisgICAgICAgICogbWVkaWEvdmlkZW8td2Via2l0
LXBsYXlzaW5saW5lLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBtZWRpYS92aWRlby13ZWJraXQt
cGxheXNpbmxpbmUuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9u
czoKKwogMjAyMC0wOS0xNyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4K
IAogICAgICAgICBbQ29jb2FdIGNhblBsYXlUeXBlKCdhdWRpby9tcGVnOyBjb2RlY3M9Im1wMyIn
KSByZXR1cm5zICIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29z
LWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtbGl2ZS1icm9hZGNhc3QtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3Mt
ZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xz
LWxpdmUtYnJvYWRjYXN0LWV4cGVjdGVkLnR4dAppbmRleCBiMzJhN2MxNzQ5YWNiYzc2ZGQ2ZWMx
YTA3ZmY5ZWZkN2RlNDI3YjNjLi43YjY2OTQ5NTNkNmUzNDA4ZDA3NzA1YjYwNWE3ZDU5ZDUwOTM1
OWYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3Jl
ZW4tbWVkaWEtY29udHJvbHMtbGl2ZS1icm9hZGNhc3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxz
Y3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1saXZl
LWJyb2FkY2FzdC1leHBlY3RlZC50eHQKQEAgLTMsNyArMyw3IEBAIFRlc3RpbmcgdGhhdCB3ZSBk
byBub3Qgc2hvdyB0aGUgc2Vla2luZyBjb250cm9scyBpbiBmdWxsc2NyZWVuIHdpdGggYSBsaXZl
IGJyb2FkCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBtZWRpYS53ZWJraXRE
aXNwbGF5aW5nRnVsbHNjcmVlbiBiZWNhbWUgdHJ1ZQorUEFTUyBtZWRpYS53ZWJraXREaXNwbGF5
aW5nRnVsbHNjcmVlbiBpcyB0cnVlCiBQQVNTIG1lZGlhLmR1cmF0aW9uIGJlY2FtZSBOdW1iZXIu
UE9TSVRJVkVfSU5GSU5JVFkKIFBBU1MgbWVkaWFDb250cm9sbGVyLmNvbnRyb2xzLnJld2luZEJ1
dHRvbi5lbmFibGVkIGlzIGZhbHNlCiBQQVNTIG1lZGlhQ29udHJvbGxlci5jb250cm9scy5mb3J3
YXJkQnV0dG9uLmVuYWJsZWQgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEt
Y29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1saXZlLWJyb2FkY2FzdC5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
bWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNv
bnRyb2xzLWxpdmUtYnJvYWRjYXN0Lmh0bWwKaW5kZXggYWZiZTg4MTRlNjg1MDg0Y2ZhYjY1OTli
YTJiZDQ1YjVlNzBkZmQwYi4uYjY0YjQzYTIzMzU5MGRhYmY0OGUzMTdhNjhmMGIwYzZiM2M0MzQy
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVu
LW1lZGlhLWNvbnRyb2xzLWxpdmUtYnJvYWRjYXN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRp
YS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWxpdmUtYnJvYWRjYXN0
Lmh0bWwKQEAgLTE1LDE4ICsxNSwxNyBAQCBjb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoInZpZGVvIik7CiBjb25zdCBtZWRpYUNvbnRyb2xsZXIgPSBjcmVhdGVDb250cm9scyhz
aGFkb3dSb290LCBtZWRpYSwgbnVsbCk7CiAKIG1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtp
dGZ1bGxzY3JlZW5jaGFuZ2UiLCAoKSA9PiB7Ci0gICAgc2hvdWxkQmVjb21lRXF1YWwoIm1lZGlh
LndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIiwgInRydWUiLCAoKSA9PiB7Ci0gICAgICAgIHNo
b3VsZEJlY29tZUVxdWFsKCJtZWRpYS5kdXJhdGlvbiIsICJOdW1iZXIuUE9TSVRJVkVfSU5GSU5J
VFkiLCAoKSA9PiB7Ci0gICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJtZWRpYUNvbnRyb2xsZXIu
Y29udHJvbHMucmV3aW5kQnV0dG9uLmVuYWJsZWQiKTsKLSAgICAgICAgICAgIHNob3VsZEJlRmFs
c2UoIm1lZGlhQ29udHJvbGxlci5jb250cm9scy5mb3J3YXJkQnV0dG9uLmVuYWJsZWQiKTsKLSAg
ICAgICAgICAgIHNob3VsZEJlKCJtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMudGltZUNvbnRyb2wu
cGFyZW50IiwgIm51bGwiKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJtZWRpYUNvbnRyb2xsZXIu
Y29udHJvbHMuc3RhdHVzTGFiZWwucGFyZW50IiwgIm1lZGlhQ29udHJvbGxlci5jb250cm9scy5i
b3R0b21Db250cm9sc0JhciIpOwotCi0gICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAg
ICBtZWRpYS5yZW1vdmUoKTsKLSAgICAgICAgICAgIHNoYWRvd1Jvb3QuaG9zdC5yZW1vdmUoKTsK
LSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9KTsKKyAgICBzaG91bGRCZVRy
dWUoIm1lZGlhLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIik7CisgICAgc2hvdWxkQmVjb21l
RXF1YWwoIm1lZGlhLmR1cmF0aW9uIiwgIk51bWJlci5QT1NJVElWRV9JTkZJTklUWSIsICgpID0+
IHsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgibWVkaWFDb250cm9sbGVyLmNvbnRyb2xzLnJld2lu
ZEJ1dHRvbi5lbmFibGVkIik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoIm1lZGlhQ29udHJvbGxl
ci5jb250cm9scy5mb3J3YXJkQnV0dG9uLmVuYWJsZWQiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1l
ZGlhQ29udHJvbGxlci5jb250cm9scy50aW1lQ29udHJvbC5wYXJlbnQiLCAibnVsbCIpOworICAg
ICAgICBzaG91bGRCZSgibWVkaWFDb250cm9sbGVyLmNvbnRyb2xzLnN0YXR1c0xhYmVsLnBhcmVu
dCIsICJtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMuYm90dG9tQ29udHJvbHNCYXIiKTsKKworICAg
ICAgICBkZWJ1ZygiIik7CisgICAgICAgIG1lZGlhLnJlbW92ZSgpOworICAgICAgICBzaGFkb3dS
b290Lmhvc3QucmVtb3ZlKCk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH0pOwogfSk7
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0
bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy5odG1sCmluZGV4IDA1
OWVlYTcwOTUyZjg1N2ZiYzYyNTZiODQ5NjdmZjYxYTYzMjdlMzYuLmQzOTNjNzkwYjE4NWQzNzQw
NDlhMzczMTc3YTk2ZGU5OTQyNjk5ZWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL2Nv
bnRleHQtbWVudS1hY3Rpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvY29udGV4dC1t
ZW51LWFjdGlvbnMuaHRtbApAQCAtMSw4NyArMSw4NiBAQAorPCFET0NUWVBFIGh0bWw+CiA8aHRt
bD4KIDxoZWFkPgotICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+
Ci0gICAgICAgIDxzY3JpcHQgc3JjPSJ2aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KLSAgICAgICAg
PHNjcmlwdD4KLQotICAgICAgICAgICAgYXN5bmMgZnVuY3Rpb24gcGxheWluZygpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGVuZFRlc3QoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgPHNjcmlwdCBzcmM9Im1l
ZGlhLWZpbGUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJ2aWRlby10ZXN0LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBhc3luYyBmdW5jdGlvbiBwbGF5aW5nKCkK
KyAgICAgICAgeworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAg
ICAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1l
bnQoKTsKLQotICAgICAgICAgICAgICAgIHZhciB4LCB5LCBpdGVtczsKLSAgICAgICAgICAgICAg
ICB4ID0gdmlkZW8ub2Zmc2V0UGFyZW50Lm9mZnNldExlZnQgKyB2aWRlby5vZmZzZXRMZWZ0ICsg
dmlkZW8ub2Zmc2V0V2lkdGggLyAyOwotICAgICAgICAgICAgICAgIHkgPSB2aWRlby5vZmZzZXRQ
YXJlbnQub2Zmc2V0VG9wICsgdmlkZW8ub2Zmc2V0VG9wICsgdmlkZW8ub2Zmc2V0SGVpZ2h0IC8g
MjsKLSAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKLSAgICAg
ICAgICAgICAgICBpdGVtcyA9IGV2ZW50U2VuZGVyLmNvbnRleHRDbGljaygpOwotCisgICAgICAg
ICAgICBmaW5kTWVkaWFFbGVtZW50KCk7CiAKLSAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKGl0ZW1zW2ldLnRpdGxlLm1hdGNoKCJDb250cm9scyIpKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8uY29udHJvbHMiLCB0cnVlLCAnPT0n
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUb2dnbGluZyBtZWRpYSBj
b250cm9scyIpOwotICAgICAgICAgICAgICAgICAgICAgICBpdGVtc1tpXS5jbGljaygpOwotICAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmNvbnRyb2xzIiwgZmFsc2Us
ICc9PScpOwotICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOwotICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB2YXIgeCwgeSwgaXRlbXM7CisgICAgICAgICAg
ICB4ID0gdmlkZW8ub2Zmc2V0UGFyZW50Lm9mZnNldExlZnQgKyB2aWRlby5vZmZzZXRMZWZ0ICsg
dmlkZW8ub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAgICAgeSA9IHZpZGVvLm9mZnNldFBhcmVu
dC5vZmZzZXRUb3AgKyB2aWRlby5vZmZzZXRUb3AgKyB2aWRlby5vZmZzZXRIZWlnaHQgLyAyOwor
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CisgICAgICAgICAgICBp
dGVtcyA9IGV2ZW50U2VuZGVyLmNvbnRleHRDbGljaygpOwogCi0gICAgICAgICAgICAgICAgICAg
IGlmIChpdGVtc1tpXS50aXRsZS5tYXRjaCgiUGF1c2UiKSkgewotICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnBhdXNlZCIsIGZhbHNlLCAnPT0nKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUb2dnbGluZyBwbGF5IHN0YXRlIik7Ci0gICAg
ICAgICAgICAgICAgICAgICAgIGl0ZW1zW2ldLmNsaWNrKCk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ucGF1c2VkIiwgdHJ1ZSwgJz09Jyk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7Ci0gICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLnRpdGxlLm1hdGNoKCJDb250cm9s
cyIpKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8uY29udHJvbHMi
LCB0cnVlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUb2dnbGlu
ZyBtZWRpYSBjb250cm9scyIpOworICAgICAgICAgICAgICAgICAgICBpdGVtc1tpXS5jbGljaygp
OworICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmNvbnRyb2xzIiwgZmFs
c2UsICc9PScpOworICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAg
ICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbXNbaV0udGl0bGUubWF0
Y2goIkxvb3AiKSkgewotICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVv
Lmxvb3AiLCBmYWxzZSwgJz09Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0
ZSgiVG9nZ2xpbmcgbG9vcCBzdGF0ZSIpOwotICAgICAgICAgICAgICAgICAgICAgICBpdGVtc1tp
XS5jbGljaygpOwotICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmxv
b3AiLCB0cnVlLCAnPT0nKTsKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIi
KTsKLSAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChpdGVtc1tpXS50
aXRsZS5tYXRjaCgiUGF1c2UiKSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQo
InZpZGVvLnBhdXNlZCIsIGZhbHNlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc29s
ZVdyaXRlKCJUb2dnbGluZyBwbGF5IHN0YXRlIik7CisgICAgICAgICAgICAgICAgICAgIGl0ZW1z
W2ldLmNsaWNrKCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ucGF1
c2VkIiwgdHJ1ZSwgJz09Jyk7CisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7
CisgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgICAgIGlmIChpdGVtc1tpXS50
aXRsZS5tYXRjaCgiTXV0ZSIpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3Rl
ZCgidmlkZW8ubXV0ZWQiLCBmYWxzZSwgJz09Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgIGNv
bnNvbGVXcml0ZSgiVG9nZ2xpbmcgbXV0ZSBzdGF0ZSIpOwotICAgICAgICAgICAgICAgICAgICAg
ICBpdGVtc1tpXS5jbGljaygpOwotICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQo
InZpZGVvLm11dGVkIiwgdHJ1ZSwgJz09Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgIGNvbnNv
bGVXcml0ZSgiIik7Ci0gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAo
aXRlbXNbaV0udGl0bGUubWF0Y2goIkxvb3AiKSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0
RXhwZWN0ZWQoInZpZGVvLmxvb3AiLCBmYWxzZSwgJz09Jyk7CisgICAgICAgICAgICAgICAgICAg
IGNvbnNvbGVXcml0ZSgiVG9nZ2xpbmcgbG9vcCBzdGF0ZSIpOworICAgICAgICAgICAgICAgICAg
ICBpdGVtc1tpXS5jbGljaygpOworICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZp
ZGVvLmxvb3AiLCB0cnVlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRl
KCIiKTsKKyAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1z
W2ldLnRpdGxlLm1hdGNoKCJGdWxsc2NyZWVuIikgJiYgdmlkZW8ud2Via2l0U3VwcG9ydHNGdWxs
c2NyZWVuKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ud2Vi
a2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4iLCBmYWxzZSwgJz09Jyk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgIGNvbnNvbGVXcml0ZSgiVG9nZ2xpbmcgZnVsbHNjcmVlbiBzdGF0ZSIpOwotICAgICAg
ICAgICAgICAgICAgICAgICBpdGVtc1tpXS5jbGljaygpOwotICAgICAgICAgICAgICAgICAgICAg
ICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCJ2aWRlby53ZWJraXREaXNwbGF5aW5nRnVs
bHNjcmVlbiIsIHRydWUsICI9PSIsIDEwMDApOwotICAgICAgICAgICAgICAgICAgICAgICBjb25z
b2xlV3JpdGUoIiIpOwotICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYg
KGl0ZW1zW2ldLnRpdGxlLm1hdGNoKCJNdXRlIikpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVz
dEV4cGVjdGVkKCJ2aWRlby5tdXRlZCIsIGZhbHNlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAg
ICAgY29uc29sZVdyaXRlKCJUb2dnbGluZyBtdXRlIHN0YXRlIik7CisgICAgICAgICAgICAgICAg
ICAgIGl0ZW1zW2ldLmNsaWNrKCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgi
dmlkZW8ubXV0ZWQiLCB0cnVlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZVdy
aXRlKCIiKTsKKyAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAgLy8gVE9E
TzogdGVzdCBjb3B5IGxpbmsgbG9jYXRpb24gYW5kIG9wZW4gaW4gbmV3IHdpbmRvdy4KLSAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
LSAgICAgICAgICAgICAgICAgZW5kVGVzdCgpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIGlmIChpdGVtc1tpXS50aXRsZS5tYXRjaCgiRnVsbHNjcmVlbiIpICYmIHZpZGVvLndlYmtp
dFN1cHBvcnRzRnVsbHNjcmVlbikgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQo
InZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIiwgZmFsc2UsICc9PScpOworICAgICAg
ICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRvZ2dsaW5nIGZ1bGxzY3JlZW4gc3RhdGUiKTsK
KyAgICAgICAgICAgICAgICAgICAgaXRlbXNbaV0uY2xpY2soKTsKKyAgICAgICAgICAgICAgICAg
ICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVz
ZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlLCAnPT0nLCAxMDAwKTsKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiIsIHRy
dWUsICc9PScpOworICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAg
ICAgICAgICAgIH0KIAotICAgICAgICAgICAgYXN5bmMgZnVuY3Rpb24gc3RhcnQoKQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKLSAgICAgICAgICAg
ICAgICB3YWl0Rm9yRXZlbnQoJ3BsYXknLCBwbGF5aW5nKTsKLSAgICAgICAgICAgICAgICBydW4o
InZpZGVvLnNyYyA9ICciICsgZmluZE1lZGlhRmlsZSgidmlkZW8iLCAiY29udGVudC90ZXN0Iikg
KyAiJyIpOworICAgICAgICAgICAgICAgIC8vIFRPRE86IHRlc3QgY29weSBsaW5rIGxvY2F0aW9u
IGFuZCBvcGVuIGluIG5ldyB3aW5kb3cuCiAgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICAgICAgfQog
Ci0gICAgICAgPC9zY3JpcHQ+CisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHN0YXJ0KCkKKyAgICAg
ICAgeworICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOworICAgICAgICAgICAgd2FpdEZv
ckV2ZW50KCdwbGF5JywgcGxheWluZyk7CisgICAgICAgICAgICBydW4oInZpZGVvLnNyYyA9ICci
ICsgZmluZE1lZGlhRmlsZSgidmlkZW8iLCAiY29udGVudC90ZXN0IikgKyAiJyIpOworICAgICAg
ICB9CisgICAgPC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keSBvbmxvYWQ9InN0YXJ0KCkiPgogICAg
IDxwPlRlc3QgdGhlIHZhcmlvdXMgYWN0aW9ucyBhdmFpbGFibGUgaW4gdGhlIEhUTUw1IG1lZGlh
IGVsZW1lbnQgY29udGV4dC1tZW51LjwvcD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L21lZGlhLWZ1bGxzY3JlZW4tbG9vcC1pbmxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
bWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1sb29wLWlubGluZS1leHBlY3RlZC50eHQKaW5kZXggNWEz
MzdhM2UyM2U2ZjEyNmU5MWM1MzA5OTVmZjE1ZDViZGQwMWMxOS4uODdjMWVlNzU0MjA2NDEwNGM2
MDBlNmZhYzNjOGJlOThiOTlkODg2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVk
aWEtZnVsbHNjcmVlbi1sb29wLWlubGluZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
bWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1sb29wLWlubGluZS1leHBlY3RlZC50eHQKQEAgLTcsMTIg
KzcsMTQgQEAgRVZFTlQoY2FucGxheXRocm91Z2gpCiBSVU4odmlkZW8ucGxheSgpKQogV2FpdCB0
byBlbnRlciBmdWxsc2NyZWVuCiBFVkVOVCh3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCkK
K0VYUEVDVEVEIChpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pID09
ICdmYWxzZScpIE9LCiBFWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4g
PT0gJ3RydWUnKSBPSwogRW50ZXJlZCBmdWxsc2NyZWVuCiBSVU4odmlkZW8uY3VycmVudFRpbWUg
PSA1KQogUlVOKHZpZGVvLndlYmtpdEV4aXRGdWxsc2NyZWVuKCkpCiBXYWl0IHRvIGV4aXQgZnVs
bHNjcmVlbgogRVZFTlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQpCitFWFBFQ1RFRCAo
aW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBP
SwogRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICdmYWxzZScp
IE9LCiBFeGl0ZWQgZnVsbHNjcmVlbgogRVhQRUNURUQgKHZpZGVvLnBhdXNlZCA9PSAnZmFsc2Un
KSBPSwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1sb29w
LWlubGluZS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1sb29wLWlu
bGluZS5odG1sCmluZGV4IDRiOGIxOTkyNDlkMTk1MGFkN2VlMDM1ZjJlOGY2NzQ1YzJmMTk1ZDku
LjRmNTE2Y2I5MmQyNjZkZTQ4Y2I0MzgxYWQ5NmU3OWEwMmRkODUyMzMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tbG9vcC1pbmxpbmUuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLWxvb3AtaW5saW5lLmh0bWwKQEAgLTM1
LDcgKzM1LDggQEAKIAogICAgIGFzeW5jIGZ1bmN0aW9uIGJlZ2luZnVsbHNjcmVlbigpCiAgICAg
ewotICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby53ZWJraXREaXNw
bGF5aW5nRnVsbHNjcmVlbicsIHRydWUpOworICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVu
dHVhbGx5KCJpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pIiwgZmFs
c2UpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2Ny
ZWVuJywgdHJ1ZSk7CiAgICAgICAgIGNvbnNvbGVXcml0ZSgiRW50ZXJlZCBmdWxsc2NyZWVuIik7
CiAgICAgICAgIHJ1bigndmlkZW8uY3VycmVudFRpbWUgPSA1Jyk7CiAgICAgICAgIHJ1bigndmlk
ZW8ud2Via2l0RXhpdEZ1bGxzY3JlZW4oKScpOwpAQCAtNDUsNyArNDYsOCBAQAogCiAgICAgYXN5
bmMgZnVuY3Rpb24gZW5kZnVsbHNjcmVlbigpCiAgICAgewotICAgICAgICBhd2FpdCB0ZXN0RXhw
ZWN0ZWRFdmVudHVhbGx5KCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIGZhbHNl
KTsKKyAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJuYWxzLmlzQ2hh
bmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKKyAgICAgICAgdGVzdEV4cGVj
dGVkKCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIGZhbHNlKTsKICAgICAgICAg
Y29uc29sZVdyaXRlKCJFeGl0ZWQgZnVsbHNjcmVlbiIpOwogICAgICAgICB0ZXN0RXhwZWN0ZWQo
J3ZpZGVvLnBhdXNlZCcsIGZhbHNlKTsKICAgICAgICAgcnVuKCd2aWRlby5vbnRpbWV1cGRhdGUg
PSB0aW1ldXBkYXRlJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxs
c2NyZWVuLXBhdXNlLWlubGluZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRp
YS1mdWxsc2NyZWVuLXBhdXNlLWlubGluZS1leHBlY3RlZC50eHQKaW5kZXggM2FiYzllMjkyYTY0
NmJjMjBjY2YzOWU3ZTkyMmMzMjg5ZGE0MmU1NS4uOTNhYmYxYTZlNmI5ODc4ZjEzZmY1NDg4NzIy
MjQwYmZhMjhmYzFiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNj
cmVlbi1wYXVzZS1pbmxpbmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL21l
ZGlhLWZ1bGxzY3JlZW4tcGF1c2UtaW5saW5lLWV4cGVjdGVkLnR4dApAQCAtNCwxNSArNCwxOCBA
QCBUZXN0IHRoYXQgYSA8dmlkZW8+IGtlZXBzIHBsYXlpbmcgYWZ0ZXIgZXhpdGluZyBmdWxsc2Ny
ZWVuIHdoZW4gdGhlIGludGVybmFsIHBybwogUlVOKHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUo
InZpZGVvIiwgImNvbnRlbnQvdGVzdCIpKQogRVZFTlQoY2FucGxheXRocm91Z2gpCiBSVU4odmlk
ZW8ucGxheSgpLnRoZW4ocGxheWluZyk7KQorRVhQRUNURUQgKGludGVybmFscy5pc0NoYW5naW5n
UHJlc2VudGF0aW9uTW9kZSh2aWRlbykgPT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2aWRlby53
ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAndHJ1ZScpIE9LCiBSVU4odmlkZW8ud2Via2l0
RXhpdEZ1bGxzY3JlZW4oKSkKIEVWRU5UKHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkKQor
RVhQRUNURUQgKGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykgPT0g
J2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9
PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLnBhdXNlZCA9PSAnZmFsc2UnKSBPSwogUlVO
KHZpZGVvLnBhdXNlKCkpCiBFVkVOVChwYXVzZSkKIEVYUEVDVEVEICh2aWRlby5wYXVzZWQgPT0g
J3RydWUnKSBPSwogUlVOKHZpZGVvLnBsYXkoKS50aGVuKHBsYXlpbmdBZ2FpbikpCitFWFBFQ1RF
RCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2Un
KSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICd0cnVl
JykgT0sKIEVORCBPRiBURVNUCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlh
LWZ1bGxzY3JlZW4tcGF1c2UtaW5saW5lLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1m
dWxsc2NyZWVuLXBhdXNlLWlubGluZS5odG1sCmluZGV4IDZlYTEwM2U4NjYwZjQ0OGIxYmJmNTk3
ZGMzOWJjNzNkZDc2MTE3MWUuLmVhODI0MjM5ZGZiMzQ1NjViMjU2MjUzMGZkMTc0Nzc0NzQ5ZTQ3
NDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcGF1c2Ut
aW5saW5lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1wYXVz
ZS1pbmxpbmUuaHRtbApAQCAtMzMsMTQgKzMzLDE2IEBACiAKICAgICBhc3luYyBmdW5jdGlvbiBw
bGF5aW5nKCkKICAgICB7Ci0gICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3Zp
ZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuJywgdHJ1ZSk7CisgICAgICAgIGF3YWl0IHRl
c3RFeHBlY3RlZEV2ZW50dWFsbHkoImludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9k
ZSh2aWRlbykiLCBmYWxzZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8ud2Via2l0RGlz
cGxheWluZ0Z1bGxzY3JlZW4nLCB0cnVlKTsKICAgICAgICAgd2FpdEZvckV2ZW50T25jZSgnd2Vi
a2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQnLCBlbmRmdWxsc2NyZWVuKTsKICAgICAgICAgcnVu
KCd2aWRlby53ZWJraXRFeGl0RnVsbHNjcmVlbigpJyk7CiAgICAgfQogCiAgICAgYXN5bmMgZnVu
Y3Rpb24gZW5kZnVsbHNjcmVlbigpCiAgICAgewotICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRF
dmVudHVhbGx5KCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIGZhbHNlKTsKKyAg
ICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJuYWxzLmlzQ2hhbmdpbmdQ
cmVzZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCd2
aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIGZhbHNlKTsKICAgICAgICAgdGVzdEV4
cGVjdGVkKCd2aWRlby5wYXVzZWQnLCBmYWxzZSk7CiAgICAgICAgIHdhaXRGb3JFdmVudE9uY2Uo
J3BhdXNlJywgcGF1c2VkKTsKICAgICAgICAgcnVuKCd2aWRlby5wYXVzZSgpJyk7CkBAIC01NCw3
ICs1Niw4IEBACiAKICAgICBhc3luYyBmdW5jdGlvbiBwbGF5aW5nQWdhaW4oKQogICAgIHsKLSAg
ICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8ud2Via2l0RGlzcGxheWlu
Z0Z1bGxzY3JlZW4nLCB0cnVlKTsKKyAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxs
eSgiaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsK
KyAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbics
IHRydWUpOwogICAgICAgICBlbmRUZXN0KCk7CiAgICAgfQogICAgIDwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1yZXR1cm4tdG8taW5saW5l
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcmV0dXJu
LXRvLWlubGluZS1leHBlY3RlZC50eHQKaW5kZXggYWU4NzI5Y2ViODkxZjIyZTFlYzExOGQyNjAx
OGUzOGYyODE3ZjBhZi4uNDQyZDEzMmQwZWQ0ZWUwOTJhMDFhNTkwMTVhMzE0N2U4ZWJlNDFjYSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1yZXR1cm4tdG8t
aW5saW5lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2Ny
ZWVuLXJldHVybi10by1pbmxpbmUtZXhwZWN0ZWQudHh0CkBAIC01LDE2ICs1LDIwIEBAIFJVTih2
aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxlKCJ2aWRlbyIsICJjb250ZW50L3Rlc3QiKSkKIEVWRU5U
KGNhbnBsYXl0aHJvdWdoKQogUlVOKHZpZGVvLnBsYXkoKSkKIEVWRU5UKHdlYmtpdHByZXNlbnRh
dGlvbm1vZGVjaGFuZ2VkKQorRVhQRUNURUQgKGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0
aW9uTW9kZSh2aWRlbykgPT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2aWRlby53ZWJraXREaXNw
bGF5aW5nRnVsbHNjcmVlbiA9PSAndHJ1ZScpIE9LCiBSVU4odmlkZW8ud2Via2l0RXhpdEZ1bGxz
Y3JlZW4oKSkKLUVWRU5UKHBhdXNlKQorRVZFTlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5n
ZWQpCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVv
KSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2Ny
ZWVuID09ICdmYWxzZScpIE9LCiBFWFBFQ1RFRCAodmlkZW8ucGF1c2VkID09ICd0cnVlJykgT0sK
IFJVTih2aWRlby5wbGF5KCkpCiBFVkVOVCh3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCkK
K0VYUEVDVEVEIChpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pID09
ICdmYWxzZScpIE9LCiBFWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4g
PT0gJ3RydWUnKSBPSwogUlVOKHZpZGVvLndlYmtpdEV4aXRGdWxsc2NyZWVuKCkpCiBFVkVOVCh3
ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCkKK0VYUEVDVEVEIChpbnRlcm5hbHMuaXNDaGFu
Z2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pID09ICdmYWxzZScpIE9LCiBFWFBFQ1RFRCAodmlk
ZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2
aWRlby5wYXVzZWQgPT0gJ2ZhbHNlJykgT0sKIEVORCBPRiBURVNUCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXJldHVybi10by1pbmxpbmUuaHRtbCBiL0xh
eW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcmV0dXJuLXRvLWlubGluZS5odG1sCmlu
ZGV4IDkzMjIwZWRlZDNlZDQ2MTE2MjA5ZTg3NDhmZjQyMTE2Nzk1NDdiNTYuLmQ4ZmU4NGQ5YTNi
YTM1NTc5YmFjYjczMzMxNDI2NmMxMjc3YmYwZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21l
ZGlhL21lZGlhLWZ1bGxzY3JlZW4tcmV0dXJuLXRvLWlubGluZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcmV0dXJuLXRvLWlubGluZS5odG1sCkBAIC0zNCwx
NCArMzQsMTYgQEAKIAogICAgIGFzeW5jIGZ1bmN0aW9uIGJlZ2luZnVsbHNjcmVlbjEoKQogICAg
IHsKLSAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8ud2Via2l0RGlz
cGxheWluZ0Z1bGxzY3JlZW4nLCB0cnVlKTsKLSAgICAgICAgd2FpdEZvckV2ZW50T25jZSgncGF1
c2UnLCBwYXVzZSk7CisgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoImludGVy
bmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykiLCBmYWxzZSk7CisgICAgICAg
IHRlc3RFeHBlY3RlZCgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCB0cnVlKTsK
KyAgICAgICAgd2FpdEZvckV2ZW50T25jZSgnd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQn
LCBlbmRmdWxsc2NyZWVuMSk7CiAgICAgICAgIHJ1bigndmlkZW8ud2Via2l0RXhpdEZ1bGxzY3Jl
ZW4oKScpOwogICAgIH0KIAotICAgIGFzeW5jIGZ1bmN0aW9uIHBhdXNlKCkKKyAgICBhc3luYyBm
dW5jdGlvbiBlbmRmdWxsc2NyZWVuMSgpCiAgICAgewotICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0
ZWRFdmVudHVhbGx5KCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIGZhbHNlKTsK
KyAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJuYWxzLmlzQ2hhbmdp
bmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVk
KCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIGZhbHNlKTsKICAgICAgICAgdGVz
dEV4cGVjdGVkKCd2aWRlby5wYXVzZWQnLCB0cnVlKTsKIAogICAgICAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0QWxsb3dzSW5saW5lTWVkaWFQbGF5YmFja0FmdGVyRnVsbHNjcmVlbih0cnVlKTsK
QEAgLTUyLDE0ICs1NCwxNiBAQAogCiAgICAgYXN5bmMgZnVuY3Rpb24gYmVnaW5mdWxsc2NyZWVu
MigpCiAgICAgewotICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby53
ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIHRydWUpOwotICAgICAgICB3YWl0Rm9yRXZlbnRP
bmNlKCd3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCcsIGVuZGZ1bGxzY3JlZW4pOworICAg
ICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCJpbnRlcm5hbHMuaXNDaGFuZ2luZ1By
ZXNlbnRhdGlvbk1vZGUodmlkZW8pIiwgZmFsc2UpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3Zp
ZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuJywgdHJ1ZSk7CisgICAgICAgIHdhaXRGb3JF
dmVudE9uY2UoJ3dlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkJywgZW5kZnVsbHNjcmVlbjIp
OwogICAgICAgICBydW4oJ3ZpZGVvLndlYmtpdEV4aXRGdWxsc2NyZWVuKCknKTsKICAgICB9CiAK
LSAgICBhc3luYyBmdW5jdGlvbiBlbmRmdWxsc2NyZWVuKCkKKyAgICBhc3luYyBmdW5jdGlvbiBl
bmRmdWxsc2NyZWVuMigpCiAgICAgewotICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVh
bGx5KCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIGZhbHNlKTsKKyAgICAgICAg
YXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50
YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby53
ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIGZhbHNlKTsKICAgICAgICAgdGVzdEV4cGVjdGVk
KCd2aWRlby5wYXVzZWQnLCBmYWxzZSk7CiAgICAgICAgIGVuZFRlc3QoKTsKICAgICB9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29u
dHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWlubGluZS10by1mdWxsc2NyZWVuLXRvLXBpcC10by1p
bmxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL21lZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJvbGxlci1pbmxpbmUtdG8tZnVsbHNjcmVl
bi10by1waXAtdG8taW5saW5lLWV4cGVjdGVkLnR4dAppbmRleCA1MmU0MjIxOGZkZWEyNmMzMjVi
NWEwMDhkMjZjNzMyODAwZTczNGQzLi4yNjlhMTJmNzA2NGJlNmQyZDBmOTRkYmIzOTg4OGQ2ODQ5
OTk0NjYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWlubGluZS10by1mdWxsc2NyZWVu
LXRvLXBpcC10by1pbmxpbmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItaW5s
aW5lLXRvLWZ1bGxzY3JlZW4tdG8tcGlwLXRvLWlubGluZS1leHBlY3RlZC50eHQKQEAgLTgsMTgg
KzgsMTggQEAgUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5tZWRpYS1jb250cm9scycp
LmNsYXNzTGlzdC5jb250YWlucygnaW5saW5lJykgaXMKIE1lZGlhIHN0YXJ0ZWQgcGxheWluZywg
d2UgcGF1c2UgaXQgYW5kIGVudGVyIGZ1bGxzY3JlZW4gYnkgY2xpY2tpbmcgb24gdGhlIG1hdGNo
aW5nIGJ1dHRvbi4KIAogTWVkaWEgcmVjZWl2ZWQgYSB3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hh
bmdlZCBldmVudCwgbWVkaWEud2Via2l0UHJlc2VudGF0aW9uTW9kZSA9IGZ1bGxzY3JlZW4uCi1Q
QVNTIG1lZGlhLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIGJlY2FtZSB0cnVlCitQQVNTIGlu
dGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZShtZWRpYSkgYmVjYW1lIGZhbHNlCiBQ
QVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLm1lZGlhLWNvbnRyb2xzJykuY2xhc3NMaXN0
LmNvbnRhaW5zKCdmdWxsc2NyZWVuJykgaXMgdHJ1ZQogCiBXZSBlbnRlciBwaWN0dXJlLWluLXBp
Y3R1cmUgYnkgY2xpY2tpbmcgb24gdGhlIG1hdGNoaW5nIGJ1dHRvbi4KIAogTWVkaWEgcmVjZWl2
ZWQgYSB3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCBldmVudCwgbWVkaWEud2Via2l0UHJl
c2VudGF0aW9uTW9kZSA9IHBpY3R1cmUtaW4tcGljdHVyZS4KLVBBU1MgbWVkaWEud2Via2l0RGlz
cGxheWluZ0Z1bGxzY3JlZW4gYmVjYW1lIHRydWUKK1BBU1MgaW50ZXJuYWxzLmlzQ2hhbmdpbmdQ
cmVzZW50YXRpb25Nb2RlKG1lZGlhKSBiZWNhbWUgZmFsc2UKIAogV2UgZXhpdCBwaWN0dXJlLWlu
LXBpY3R1cmUuCiAKIE1lZGlhIHJlY2VpdmVkIGEgd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5n
ZWQgZXZlbnQsIG1lZGlhLndlYmtpdFByZXNlbnRhdGlvbk1vZGUgPSBpbmxpbmUuCi1QQVNTIG1l
ZGlhLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIGJlY2FtZSBmYWxzZQorUEFTUyBpbnRlcm5h
bHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUobWVkaWEpIGJlY2FtZSBmYWxzZQogUEFTUyBz
aGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5tZWRpYS1jb250cm9scycpLmNsYXNzTGlzdC5jb250
YWlucygnaW5saW5lJykgaXMgdHJ1ZQogCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVk
aWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWlubGluZS10by1mdWxsc2NyZWVuLXRvLXBp
cC10by1pbmxpbmUuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItaW5saW5lLXRvLWZ1bGxzY3JlZW4t
dG8tcGlwLXRvLWlubGluZS5odG1sCmluZGV4IDRkNjE3NjZmZDhhMWVlYzY1MTJhMWQ1NDc1ODhl
ZjUwNWE3Njc1NWYuLjMxZjY3ZThhMGRhNTdkY2NlYWYxY2EyYmFiYjYxYjZjM2VhNjBmYmEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1j
b250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItaW5saW5lLXRvLWZ1bGxzY3JlZW4tdG8tcGlwLXRv
LWlubGluZS5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItaW5saW5lLXRvLWZ1bGxzY3JlZW4t
dG8tcGlwLXRvLWlubGluZS5odG1sCkBAIC0yNiw0NiArMjYsNDIgQEAgbWVkaWEuYWRkRXZlbnRM
aXN0ZW5lcigicGxheSIsICgpID0+IHsKICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1l
KCgpID0+IGNsaWNrT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLmZ1
bGxzY3JlZW4iKSkpOwogfSk7CiAKLWxldCBwcmV2aW91c1ByZXNlbnRhdGlvbk1vZGUgPSBtZWRp
YS53ZWJraXRQcmVzZW50YXRpb25Nb2RlOwotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0
cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQiLCAoKSA9PiB7Ci0gICAgaWYgKHByZXZpb3VzUHJlc2Vu
dGF0aW9uTW9kZSA9PT0gbWVkaWEud2Via2l0UHJlc2VudGF0aW9uTW9kZSkKLSAgICAgICAgcmV0
dXJuOwotCittZWRpYS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hh
bmdlZCIsIGFzeW5jICgpID0+IHsKICAgICBkZWJ1ZygiIik7CiAgICAgZGVidWcoYE1lZGlhIHJl
Y2VpdmVkIGEgd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQgZXZlbnQsIG1lZGlhLndlYmtp
dFByZXNlbnRhdGlvbk1vZGUgPSAke21lZGlhLndlYmtpdFByZXNlbnRhdGlvbk1vZGV9LmApOwog
Ci0gICAgbGV0IGRpc3BsYXlpbmdGdWxsc2NyZWVuID0gInRydWUiOwotICAgIGlmIChtZWRpYS53
ZWJraXRQcmVzZW50YXRpb25Nb2RlID09ICJpbmxpbmUiKQotICAgICAgICBkaXNwbGF5aW5nRnVs
bHNjcmVlbiA9ICJmYWxzZSI7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAg
YXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgc2V0
VGltZW91dChyZWplY3QsIDIwMDApOworICAgICAgICAgICAgc2hvdWxkQmVjb21lRXF1YWwoImlu
dGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZShtZWRpYSkiLCAiZmFsc2UiLCByZXNv
bHZlKTsKKyAgICAgICAgfSk7CisgICAgfQogCi0gICAgc2hvdWxkQmVjb21lRXF1YWwoIm1lZGlh
LndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIiwgZGlzcGxheWluZ0Z1bGxzY3JlZW4sICgpID0+
IHsKLSAgICAgICAgcHJldmlvdXNQcmVzZW50YXRpb25Nb2RlID0gbWVkaWEud2Via2l0UHJlc2Vu
dGF0aW9uTW9kZTsKLSAgICAgICAgc3dpdGNoIChtZWRpYS53ZWJraXRQcmVzZW50YXRpb25Nb2Rl
KSB7Ci0gICAgICAgIGNhc2UgImZ1bGxzY3JlZW4iOgotICAgICAgICAgICAgd2luZG93LnJlcXVl
c3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJz
aGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5tZWRpYS1jb250cm9scycpLmNsYXNzTGlzdC5jb250
YWlucygnZnVsbHNjcmVlbicpIik7CisgICAgc3dpdGNoIChtZWRpYS53ZWJraXRQcmVzZW50YXRp
b25Nb2RlKSB7CisgICAgY2FzZSAiZnVsbHNjcmVlbiI6CisgICAgICAgIHdpbmRvdy5yZXF1ZXN0
QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJzaGFkb3dS
b290LnF1ZXJ5U2VsZWN0b3IoJy5tZWRpYS1jb250cm9scycpLmNsYXNzTGlzdC5jb250YWlucygn
ZnVsbHNjcmVlbicpIik7CiAKLSAgICAgICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAg
ICAgICAgZGVidWcoIldlIGVudGVyIHBpY3R1cmUtaW4tcGljdHVyZSBieSBjbGlja2luZyBvbiB0
aGUgbWF0Y2hpbmcgYnV0dG9uLiIpOwotICAgICAgICAgICAgICAgIGNsaWNrT25FbGVtZW50KHNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnBpcCIpKTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgInBpY3R1cmUtaW4tcGljdHVyZSI6CiAg
ICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICBkZWJ1ZygiV2UgZXhpdCBwaWN0dXJl
LWluLXBpY3R1cmUuIik7Ci0gICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiBtZWRp
YS53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCJpbmxpbmUiKSk7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSAiaW5saW5lIjoKLSAgICAgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5p
bWF0aW9uRnJhbWUoKCkgPT4gewotICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgic2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCcubWVkaWEtY29udHJvbHMnKS5jbGFzc0xpc3QuY29udGFpbnMo
J2lubGluZScpIik7CisgICAgICAgICAgICBkZWJ1ZygiV2UgZW50ZXIgcGljdHVyZS1pbi1waWN0
dXJlIGJ5IGNsaWNraW5nIG9uIHRoZSBtYXRjaGluZyBidXR0b24uIik7CisgICAgICAgICAgICBj
bGlja09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi5waXAiKSk7Cisg
ICAgICAgIH0pOworICAgICAgICBicmVhazsKKyAgICBjYXNlICJwaWN0dXJlLWluLXBpY3R1cmUi
OgorICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgIGRlYnVnKCJXZSBleGl0IHBpY3R1cmUtaW4t
cGljdHVyZS4iKTsKKyAgICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gbWVkaWEud2Via2l0
U2V0UHJlc2VudGF0aW9uTW9kZSgiaW5saW5lIikpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
ICJpbmxpbmUiOgorICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsK
KyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcubWVk
aWEtY29udHJvbHMnKS5jbGFzc0xpc3QuY29udGFpbnMoJ2lubGluZScpIik7CiAKLSAgICAgICAg
ICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAg
ICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICB9Ci0gICAgfSk7CisgICAgICAgICAgICBkZWJ1ZygiIik7CisgICAg
ICAgICAgICBtZWRpYS5yZW1vdmUoKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
ICAgICB9KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogfSk7CiAKIGZ1bmN0aW9uIGNsaWNrT25F
bGVtZW50KGVsZW1lbnQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9wcmVzZW50YXRp
b25tb2RlY2hhbmdlZC1maXJlZC1vbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlh
L3ByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkLWZpcmVkLW9uY2UtZXhwZWN0ZWQudHh0CmluZGV4IGEx
OGU4YmI4NmVlMzdjMjM5Yjg3NjkyZDE4MDFhODVkMmIwZTJkOWMuLmRlNGNhNWJjYTQ2MjliOGU4
Mzk4YTJmNTllY2QzYjBjNGMzNDgyOWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3By
ZXNlbnRhdGlvbm1vZGVjaGFuZ2VkLWZpcmVkLW9uY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL21lZGlhL3ByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkLWZpcmVkLW9uY2UtZXhwZWN0ZWQu
dHh0CkBAIC01LDcgKzUsNyBAQCBFVkVOVChjYW5wbGF5dGhyb3VnaCkKIFJVTih2aWRlby5wbGF5
KCkpCiBSVU4odmlkZW8ud2Via2l0U2V0UHJlc2VudGF0aW9uTW9kZSgicGljdHVyZS1pbi1waWN0
dXJlIikpCiBFVkVOVCh3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCkKLUVYUEVDVEVEICh2
aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAndHJ1ZScpIE9LCitFWFBFQ1RFRCAo
aW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBP
SwogRVhQRUNURUQgKHZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUgPT0gJ3BpY3R1cmUtaW4t
cGljdHVyZScpIE9LCiBSVU4odmlkZW8ud2Via2l0U2V0UHJlc2VudGF0aW9uTW9kZSgiaW5saW5l
IikpCiBFVkVOVCh3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL3ByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkLWZpcmVkLW9uY2UuaHRtbCBi
L0xheW91dFRlc3RzL21lZGlhL3ByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkLWZpcmVkLW9uY2UuaHRt
bAppbmRleCA1MzhiZDEyN2JjOTFhOTk5MGE1MDdjOTI0ZjNjYmI1NDMxYWE0N2Q0Li5jMmI1ZDZj
MWM2MzU5OGQ0MWM0ZDlhNWNhYTAyN2I0MTU0ODEzMzU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9tZWRpYS9wcmVzZW50YXRpb25tb2RlY2hhbmdlZC1maXJlZC1vbmNlLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvbWVkaWEvcHJlc2VudGF0aW9ubW9kZWNoYW5nZWQtZmlyZWQtb25jZS5odG1sCkBA
IC0yNyw3ICsyNyw3IEBACiAKICAgICAgICAgYXN5bmMgZnVuY3Rpb24gcHJlc2VudGF0aW9uTW9k
ZUNoYW5nZWQxKCkKICAgICAgICAgewotICAgICAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZl
bnR1YWxseSgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCB0cnVlKTsKKyAgICAg
ICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoImludGVybmFscy5pc0NoYW5naW5n
UHJlc2VudGF0aW9uTW9kZSh2aWRlbykiLCBmYWxzZSk7CiAgICAgICAgICAgICB0ZXN0RXhwZWN0
ZWQoInZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUiLCAicGljdHVyZS1pbi1waWN0dXJlIik7
CiAgICAgICAgICAgICBydW5XaXRoS2V5RG93bigndmlkZW8ud2Via2l0U2V0UHJlc2VudGF0aW9u
TW9kZSgiaW5saW5lIiknKTsKICAgICAgICAgICAgIHdhaXRGb3JFdmVudCgid2Via2l0cHJlc2Vu
dGF0aW9ubW9kZWNoYW5nZWQiLCBwcmVzZW50YXRpb25Nb2RlQ2hhbmdlZDIpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tZnVsbHNjcmVlbi1vbmx5LXBsYXliYWNrLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWZ1bGxzY3JlZW4tb25seS1wbGF5YmFj
ay1leHBlY3RlZC50eHQKaW5kZXggYzE3MmI1MmVmNDY0NDMzZDI5ODhlOTYzNjk5MzcxMWYxYzgz
MzMwZS4uMzM1YzViMmUwNmVlMjVjMWQ5ZjU5ZGZiOTk0MDk5NGM4MzEzMzhkNCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tZnVsbHNjcmVlbi1vbmx5LXBsYXliYWNrLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1mdWxsc2NyZWVuLW9ubHktcGxh
eWJhY2stZXhwZWN0ZWQudHh0CkBAIC03LDEzICs3LDE2IEBAIEVYUEVDVEVEICh2aWRlby53ZWJr
aXRTdXBwb3J0c0Z1bGxzY3JlZW4gPT0gJ3RydWUnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtp
dERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICdmYWxzZScpIE9LCiBSVU4odmlkZW8ucGxheSgpKQog
RVZFTlQocGxheWluZykKLUVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVl
biA9PSAndHJ1ZScpIE9LCiAKLSoqIEVudGVyZWQgZnVsbHNjcmVlbgorKiogU3RhcnRlZCBwbGF5
aW5nCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVv
KSA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2Ny
ZWVuID09ICd0cnVlJykgT0sKIFJVTih2aWRlby53ZWJraXRFeGl0RnVsbFNjcmVlbigpKQogRVZF
TlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQpCi1FWFBFQ1RFRCAodmlkZW8ud2Via2l0
RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ2ZhbHNlJykgT0sKIAotKiogRXhpdGVkIGZ1bGxzY3Jl
ZW4KKyoqIFJlY2VpdmVkIHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIGV2ZW50CitFWFBF
Q1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFs
c2UnKSBPSworRXhpdGVkIGZ1bGxzY3JlZW4KK0VYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5
aW5nRnVsbHNjcmVlbiA9PSAnZmFsc2UnKSBPSwogRU5EIE9GIFRFU1QKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tZnVsbHNjcmVlbi1vbmx5LXBsYXliYWNrLmh0bWwgYi9M
YXlvdXRUZXN0cy9tZWRpYS92aWRlby1mdWxsc2NyZWVuLW9ubHktcGxheWJhY2suaHRtbAppbmRl
eCBjM2FjYTNhMDQ2YzRlYmJjMzU3YzliZjU4OGY0N2Y3ZmVkNGI2ZDcxLi40Nzg4OWE2MTMzNWIy
NDE3ZjU5ZjY3YmUwMjRjZWY0NGRmMmM5M2MzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRp
YS92aWRlby1mdWxsc2NyZWVuLW9ubHktcGxheWJhY2suaHRtbAorKysgYi9MYXlvdXRUZXN0cy9t
ZWRpYS92aWRlby1mdWxsc2NyZWVuLW9ubHktcGxheWJhY2suaHRtbApAQCAtNDAsMTYgKzQwLDE5
IEBACiAKICAgICAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHBsYXlpbmcoKQogICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoInZpZGVvLndl
YmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIiwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgY29uc29s
ZVdyaXRlKCI8YnI+KiogRW50ZXJlZCBmdWxsc2NyZWVuIik7CisgICAgICAgICAgICAgICAgY29u
c29sZVdyaXRlKCI8YnI+KiogU3RhcnRlZCBwbGF5aW5nIik7CisgICAgICAgICAgICAgICAgYXdh
aXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRp
b25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZp
ZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIiwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAg
d2FpdEZvckV2ZW50T25jZSgnd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQnLCBlbmRmdWxs
c2NyZWVuKTsKICAgICAgICAgICAgICAgICBydW4oInZpZGVvLndlYmtpdEV4aXRGdWxsU2NyZWVu
KCkiKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgYXN5bmMgZnVuY3Rpb24gZW5kZnVs
bHNjcmVlbigpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgYXdhaXQgdGVzdEV4cGVj
dGVkRXZlbnR1YWxseSgidmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4iLCBmYWxzZSk7
Ci0gICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogRXhpdGVkIGZ1bGxzY3JlZW4i
KTsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4qKiBSZWNlaXZlZCB3ZWJraXRw
cmVzZW50YXRpb25tb2RlY2hhbmdlZCBldmVudCIpOworICAgICAgICAgICAgICAgIGF3YWl0IHRl
c3RFeHBlY3RlZEV2ZW50dWFsbHkoImludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9k
ZSh2aWRlbykiLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJFeGl0ZWQg
ZnVsbHNjcmVlbiIpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ud2Via2l0
RGlzcGxheWluZ0Z1bGxzY3JlZW4iLCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgZW5kVGVzdCgp
OwogICAgICAgICAgICAgfQogICAgICAgICA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL21lZGlhL3ZpZGVvLXBsYXlzaW5saW5lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21l
ZGlhL3ZpZGVvLXBsYXlzaW5saW5lLWV4cGVjdGVkLnR4dAppbmRleCAwNDE0NTczZjBjNDZjZDcz
ZmNlMjQ0OGVkNjljOWZmOGQ1MThmY2FhLi41ZWRjYWQxN2M2OGQzMjhhNDRjNDcxMTFiOGQwMjg5
YjlhOWI5MWMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1wbGF5c2lubGlu
ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcGxheXNpbmxpbmUt
ZXhwZWN0ZWQudHh0CkBAIC0zLDYgKzMsNyBAQCBSVU4odmlkZW8ucGxheXNJbmxpbmUgPSBmYWxz
ZSkKIEVWRU5UKGNhbnBsYXl0aHJvdWdoKQogUlVOKHZpZGVvLnBsYXkoKSkKIEVWRU5UKHBsYXlp
bmcpCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVv
KSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2Ny
ZWVuID09ICd0cnVlJykgT0sKIFJVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SW5saW5lTWVkaWFQ
bGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUodHJ1ZSkpCiBSVU4odmlkZW8ucGxh
eXNJbmxpbmUgPSB0cnVlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcGxh
eXNpbmxpbmUuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXBsYXlzaW5saW5lLmh0bWwK
aW5kZXggZmE2YTczMTI0NGQ5NzBiM2M5MmRkYTViNjBiOGQ3MjkyNDlmNTFkYi4uZDA5ZDRjYzVk
NDIyYzliODI2OWNhZDRjNjI2M2Q0MmZjMjJkMTliZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
bWVkaWEvdmlkZW8tcGxheXNpbmxpbmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRl
by1wbGF5c2lubGluZS5odG1sCkBAIC0zMCw3ICszMCwxMCBAQCBmdW5jdGlvbiB0ZXN0UGxheXNJ
bmxpbmUocmVxdWlyZXNQbGF5c0lubGluZSwgaGFzUGxheXNJbmxpbmUsIGV4cGVjdGVkRGlzcGxh
eWluZwogICAgICAgICAgICAgcnVuKCd2aWRlby5wbGF5KCknKTsKICAgICAgICAgfSk7CiAgICAg
fSkKLSAgICB3YWl0Rm9yRXZlbnRPbmNlKCdwbGF5aW5nJywgKCkgPT4geworICAgIHdhaXRGb3JF
dmVudE9uY2UoJ3BsYXlpbmcnLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGlmIChleHBlY3RlZERp
c3BsYXlpbmdGdWxsc2NyZWVuKQorICAgICAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1
YWxseSgnaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKScsIGZhbHNl
KTsKKwogICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2Ny
ZWVuJywgZXhwZWN0ZWREaXNwbGF5aW5nRnVsbHNjcmVlbik7CiAgICAgICAgIGRvY3VtZW50LmJv
ZHkucmVtb3ZlQ2hpbGQodmlkZW8pOwogICAgICAgICBydW5OZXh0VGVzdCgpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUtZXhwZWN0ZWQudHh0
CmluZGV4IDFkN2RiMDI4MjQ5OWQzOTMwOWFmYTIwZDllYzc1ZDFjOGEyNTEzNTkuLmFiYTlmNDUz
NjAwYWU3OGVmYTVjYmVmYzk1OWQ4NmEyMzI5NzZkN2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L21lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9tZWRpYS92aWRlby1wcmVzZW50YXRpb24tbW9kZS1leHBlY3RlZC50eHQKQEAgLTQsMzAg
KzQsMzAgQEAgVGVzdCB0aGUgdmlkZW8gcHJlc2VudGF0aW9uIG1vZGUgKHZpZGVvIGZ1bGxzY3Jl
ZW4gYW5kIHBpY3R1cmUtaW4tcGljdHVyZSkgQVBJLgogCiBFVkVOVChjYW5wbGF5dGhyb3VnaCkK
IEVYUEVDVEVEICh2aWRlby53ZWJraXRTdXBwb3J0c0Z1bGxzY3JlZW4gPT0gJ3RydWUnKSBPSwot
RVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICdmYWxzZScpIE9L
CitFWFBFQ1RFRCAodmlkZW8ud2Via2l0UHJlc2VudGF0aW9uTW9kZSA9PSAnaW5saW5lJykgT0sK
IAogKiogVHJ5IHRvIGVudGVyIGZ1bGxzY3JlZW4KIFJVTih2aWRlby53ZWJraXRTZXRQcmVzZW50
YXRpb25Nb2RlKCdmdWxsc2NyZWVuJykpCiBFVkVOVCh3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hh
bmdlZCkKLUVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAndHJ1
ZScpIE9LCiAKLSoqIEVudGVyZWQgZnVsbHNjcmVlbgorKiogUmVjZWl2ZWQgd2Via2l0cHJlc2Vu
dGF0aW9ubW9kZWNoYW5nZWQgZXZlbnQKK0VYUEVDVEVEIChpbnRlcm5hbHMuaXNDaGFuZ2luZ1By
ZXNlbnRhdGlvbk1vZGUodmlkZW8pID09ICdmYWxzZScpIE9LCiBFWFBFQ1RFRCAodmlkZW8ud2Vi
a2l0UHJlc2VudGF0aW9uTW9kZSA9PSAnZnVsbHNjcmVlbicpIE9LCiAKICoqIFRyeSB0byBlbnRl
ciBwaWN0dXJlLWluLXBpY3R1cmUKIFJVTih2aWRlby53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2Rl
KCdwaWN0dXJlLWluLXBpY3R1cmUnKSkKIEVWRU5UKHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFu
Z2VkKQotRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICd0cnVl
JykgT0sKIAotKiogRW50ZXJlZCBwaWN0dXJlLWluLXBpY3R1cmUKKyoqIFJlY2VpdmVkIHdlYmtp
dHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIGV2ZW50CitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hh
bmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZp
ZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUgPT0gJ3BpY3R1cmUtaW4tcGljdHVyZScpIE9LCiAK
ICoqIFRyeSB0byByZXR1cm4gdG8gaW5saW5lCiBSVU4odmlkZW8ud2Via2l0U2V0UHJlc2VudGF0
aW9uTW9kZSgnaW5saW5lJykpCiBFVkVOVCh3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCkK
LUVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAnZmFsc2UnKSBP
SwogCi0qKiBSZXR1cm5lZCB0byBpbmxpbmUKKyoqIFJlY2VpdmVkIHdlYmtpdHByZXNlbnRhdGlv
bm1vZGVjaGFuZ2VkIGV2ZW50CitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50
YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdFBy
ZXNlbnRhdGlvbk1vZGUgPT0gJ2lubGluZScpIE9LCiAKICoqIFRlc3QgQ29tcGxldGVkCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1wcmVzZW50YXRpb24tbW9kZS5odG1sIGIv
TGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUuaHRtbAppbmRleCAzMDU2
ZDE1ZTFhOWMyZDFjYWZjYjFlMGUyOGNmYTRiN2I5Nzc2NGQ4Li5mMTA1Yzg1NTBjOTA1Mjk3ODQy
MGQ0ZjU1MjIzNDdmMmE2NGFiZjEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRl
by1wcmVzZW50YXRpb24tbW9kZS5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXBy
ZXNlbnRhdGlvbi1tb2RlLmh0bWwKQEAgLTIxLDcgKzIxLDcgQEAKICAgICAgICAgICAgIGFzeW5j
IGZ1bmN0aW9uIGNhbnBsYXl0aHJvdWdoKCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdFN1cHBvcnRzRnVsbHNjcmVlbiIsIHRydWUpOwot
ICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLndlYmtp
dERpc3BsYXlpbmdGdWxsc2NyZWVuJywgZmFsc2UpOworICAgICAgICAgICAgICAgIHRlc3RFeHBl
Y3RlZCgidmlkZW8ud2Via2l0UHJlc2VudGF0aW9uTW9kZSIsICJpbmxpbmUiKTsKIAogICAgICAg
ICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIFRyeSB0byBlbnRlciBmdWxsc2NyZWVuIik7
CiAgICAgICAgICAgICAgICAgcnVuV2l0aEtleURvd24oInZpZGVvLndlYmtpdFNldFByZXNlbnRh
dGlvbk1vZGUoJ2Z1bGxzY3JlZW4nKSIpOwpAQCAtMzAsOCArMzAsOCBAQAogCiAgICAgICAgICAg
ICBhc3luYyBmdW5jdGlvbiBwcmVzZW50YXRpb25Nb2RlQ2hhbmdlZDEoKQogICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLndl
YmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuJywgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgY29uc29s
ZVdyaXRlKCI8YnI+KiogRW50ZXJlZCBmdWxsc2NyZWVuIik7CisgICAgICAgICAgICAgICAgY29u
c29sZVdyaXRlKCI8YnI+KiogUmVjZWl2ZWQgd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQg
ZXZlbnQiKTsKKyAgICAgICAgICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCJp
bnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pIiwgZmFsc2UpOwogICAg
ICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ud2Via2l0UHJlc2VudGF0aW9uTW9kZSIs
ICJmdWxsc2NyZWVuIik7CiAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogVHJ5
IHRvIGVudGVyIHBpY3R1cmUtaW4tcGljdHVyZSIpOwogICAgICAgICAgICAgICAgIHdhaXRGb3JF
dmVudE9uY2UoJ3dlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkJywgcHJlc2VudGF0aW9uTW9k
ZUNoYW5nZWQyKTsKQEAgLTQwLDggKzQwLDggQEAKIAogICAgICAgICAgICAgYXN5bmMgZnVuY3Rp
b24gcHJlc2VudGF0aW9uTW9kZUNoYW5nZWQyKCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby53ZWJraXREaXNwbGF5aW5n
RnVsbHNjcmVlbicsIHRydWUpOwotICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioq
IEVudGVyZWQgcGljdHVyZS1pbi1waWN0dXJlIik7CisgICAgICAgICAgICAgICAgY29uc29sZVdy
aXRlKCI8YnI+KiogUmVjZWl2ZWQgd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQgZXZlbnQi
KTsKKyAgICAgICAgICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCJpbnRlcm5h
bHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pIiwgZmFsc2UpOwogICAgICAgICAg
ICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ud2Via2l0UHJlc2VudGF0aW9uTW9kZSIsICJwaWN0
dXJlLWluLXBpY3R1cmUiKTsKICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4qKiBU
cnkgdG8gcmV0dXJuIHRvIGlubGluZSIpOwogICAgICAgICAgICAgICAgIHdhaXRGb3JFdmVudE9u
Y2UoJ3dlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkJywgdGVzdENvbXBsZXRlZCk7CkBAIC01
MCw4ICs1MCw4IEBACiAKICAgICAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHRlc3RDb21wbGV0ZWQo
KQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50
dWFsbHkoJ3ZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuJywgZmFsc2UpOwotICAgICAg
ICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIFJldHVybmVkIHRvIGlubGluZSIpOworICAg
ICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIFJlY2VpdmVkIHdlYmtpdHByZXNlbnRh
dGlvbm1vZGVjaGFuZ2VkIGV2ZW50Iik7CisgICAgICAgICAgICAgICAgYXdhaXQgdGVzdEV4cGVj
dGVkRXZlbnR1YWxseSgiaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVv
KSIsIGZhbHNlKTsKICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdFBy
ZXNlbnRhdGlvbk1vZGUiLCAiaW5saW5lIik7CiAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRl
KCI8YnI+KiogVGVzdCBDb21wbGV0ZWQiKTsKICAgICAgICAgICAgICAgICBlbmRUZXN0KCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby13ZWJraXQtcGxheXNpbmxpbmUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8td2Via2l0LXBsYXlzaW5saW5lLWV4
cGVjdGVkLnR4dAppbmRleCA5Njc0ODk1NmU4YjM2ODRiZmRiZDU4YmJhNjM1ZTdjNjljMTc5Njg0
Li4wOTM5N2U5MmZiOGM5NmUyYzQ4Njc1M2EwODI1ZGExNjM5ZTcxNWQ1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9tZWRpYS92aWRlby13ZWJraXQtcGxheXNpbmxpbmUtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXdlYmtpdC1wbGF5c2lubGluZS1leHBlY3RlZC50
eHQKQEAgLTMsMTIgKzMsMTQgQEAgUlVOKHZpZGVvLnJlbW92ZUF0dHJpYnV0ZSgid2Via2l0LXBs
YXlzaW5saW5lIiwgIiIpKQogRVZFTlQoY2FucGxheXRocm91Z2gpCiBSVU4odmlkZW8ucGxheSgp
KQogRVZFTlQocGxheWluZykKK0VYUEVDVEVEIChpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRh
dGlvbk1vZGUodmlkZW8pID09ICdmYWxzZScpIE9LCiBFWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlz
cGxheWluZ0Z1bGxzY3JlZW4gPT0gJ3RydWUnKSBPSwogUlVOKGludGVybmFscy5zZXR0aW5ncy5z
ZXRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZSh0cnVlKSkK
IFJVTih2aWRlby5zZXRBdHRyaWJ1dGUoIndlYmtpdC1wbGF5c2lubGluZSIsICIiKSkKIEVWRU5U
KGNhbnBsYXl0aHJvdWdoKQogUlVOKHZpZGVvLnBsYXkoKSkKIEVWRU5UKHBsYXlpbmcpCitFWFBF
Q1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFs
c2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICd0
cnVlJykgT0sKIFJVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SW5saW5lTWVkaWFQbGF5YmFja1Jl
cXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUoZmFsc2UpKQogUlVOKHZpZGVvLnJlbW92ZUF0dHJp
YnV0ZSgid2Via2l0LXBsYXlzaW5saW5lIiwgIiIpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
bWVkaWEvdmlkZW8td2Via2l0LXBsYXlzaW5saW5lLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS92
aWRlby13ZWJraXQtcGxheXNpbmxpbmUuaHRtbAppbmRleCA3ZWQ5NWY0ODgwNWZkMzA2Y2U2Mjgy
MjJhNWFiNDRiNmYxYmFjYTM1Li5hYjczMGIwMzJiNDhmZTlmNTliZjYzMjcxYzNkYjQzMjNjMzI0
OWVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby13ZWJraXQtcGxheXNpbmxp
bmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby13ZWJraXQtcGxheXNpbmxpbmUu
aHRtbApAQCAtMzAsNyArMzAsMTAgQEAgZnVuY3Rpb24gdGVzdFBsYXlzSW5saW5lKHJlcXVpcmVz
UGxheXNJbmxpbmUsIGhhc1dlYmtpdFBsYXlzSW5saW5lLCBleHBlY3RlZERpc3AKICAgICAgICAg
ICAgIHJ1bigndmlkZW8ucGxheSgpJyk7CiAgICAgICAgIH0pOwogICAgIH0pCi0gICAgd2FpdEZv
ckV2ZW50T25jZSgncGxheWluZycsICgpID0+IHsKKyAgICB3YWl0Rm9yRXZlbnRPbmNlKCdwbGF5
aW5nJywgYXN5bmMgKCkgPT4geworICAgICAgICBpZiAoZXhwZWN0ZWREaXNwbGF5aW5nRnVsbHNj
cmVlbikKKyAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ2ludGVybmFs
cy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbyknLCBmYWxzZSk7CisKICAgICAgICAg
dGVzdEV4cGVjdGVkKCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIGV4cGVjdGVk
RGlzcGxheWluZ0Z1bGxzY3JlZW4pOwogICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxk
KHZpZGVvKTsKICAgICAgICAgcnVuTmV4dFRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZDIyNWFjNjk0NGI1OWRjN2E2NGFmYmVmOTIxNGY0Y2Y3
N2Y2NDY5ZS4uNzY5NDVhZTMwMmYzMDc5NjJkMzg0NTEzMzBiY2QxMzhjNGQ0ZTE1YSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE0NjAsOCArMTQ2MCw2
IEBAIHdlYmtpdC5vcmcvYi8xODM0OTAgbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlh
LWNvbnRyb2xsZXIvbWVkaWEtY29udHJvbGxlCiB3ZWJraXQub3JnL2IvMTgzNDkwIG1lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItZnVs
bHNjcmVlbi1jaGFuZ2UuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE4MzQ5MCBtZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGVy
LWlubGluZS10by1mdWxsc2NyZWVuLXRvLWlubGluZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQu
b3JnL2IvMTgzNDkwIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9zdGFydC1zdXBwb3J0L3N0
YXJ0LXN1cHBvcnQtZnVsbHNjcmVlbi5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTgz
NDkwIG1lZGlhL3ZpZGVvLXBsYXlzaW5saW5lLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcv
Yi8xODM0OTAgbWVkaWEvdmlkZW8td2Via2l0LXBsYXlzaW5saW5lLmh0bWwgWyBGYWlsdXJlIF0K
IAogd2Via2l0Lm9yZy9iLzE4Mzc2NCBmYXN0L2Nzcy9hcHBsZS1zeXN0ZW0tY29udHJvbC1jb2xv
cnMuaHRtbCBbIFBhc3MgXQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409156</attachid>
            <date>2020-09-18 11:49:23 -0700</date>
            <delta_ts>2020-10-19 15:09:38 -0700</delta_ts>
            <desc>Update changelogs</desc>
            <filename>bug-216426-20200918114922.patch</filename>
            <type>text/plain</type>
            <size>64783</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTc5Y2RmYTQ3ZjdhMWE2
YzFlY2VmNWNmYzg2NDYxYjUyZTU3YWJjMS4uOGI0MDcwZmM0MzZiZGMyNzM4ODRlNjkxNDBkZDA0
OWExYWQ1NjNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDIwLTA5LTE3ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgTGV0IHdlYmtpdERpc3BsYXlp
bmdGdWxsc2NyZWVuKCkgcmV0dXJuIHRydWUgd2hlbiBhIHZpZGVvIGVsZW1lbnTigJlzIGZ1bGxz
Y3JlZW4gbW9kZSBpcyBub3QgVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjQyNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggbW92ZXMgbV9jaGFu
Z2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgb2YgSFRNTFZpZGVvRWxlbWVudCB0byBIVE1MTWVkaWFF
bGVtZW50LgorICAgICAgICBUaGUgZmxhZyBpcyB1c2VkIHRvIHByb3RlY3QgaW50ZXJmYWNlcyBy
ZWdhcmRpbmcgdmlkZW8gcHJlc2VudGF0aW9uIG1vZGUgY2hhbmdlcy4KKyAgICAgICAgSXQgYWxz
byBndWFyZHMgdGhlIGNvZGUgcGF0aCB3aGVuIHdlIHVzZSBlbGVtZW50IGZ1bGxzY3JlZW4gdG8g
aW1wbGVtZW50IHZpZGVvCisgICAgICAgIGZ1bGxzY3JlZW4gKFZJREVPX1VTRVNfRUxFTUVOVF9G
VUxMU0NSRUVOKS4gSXQgaXMgYmV0dGVyIHRvIHN0b3JlIHRoZSBmbGFnIGluCisgICAgICAgIEhU
TUxNZWRpYUVsZW1lbnQgYmVjYXVzZSB3ZSBjYW4gaGF2ZSBmaW5lIGNvbnRyb2wuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCByZXZlcnRzIHRoZSBjaGFuZ2luZyByZWdhcmRpbmcgSFRNTFZpZGVvRWxl
bWVudDo6d2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4KKyAgICAgICAgaW4gcjI2MjQ1Ni4gVGhp
cyBmdW5jdGlvbiB3aWxsIHJldHVybiB0cnVlIGluIHRoZSBzYW1lIHJ1biBsb29wIGFzIGEKKyAg
ICAgICAgd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQgZXZlbnQgaXMgZmlyZWQgd2hlbiBh
IHZpZGVvIGVsZW1lbnQgaXMgZW50ZXJpbmcKKyAgICAgICAgZnVsbHNjcmVlbiBvciBwaWN0dXJl
LWluLXBpY3R1cmUuCisKKyAgICAgICAgQWxzbywgdGhpcyBwYXRjaCBhZGRzIEludGVybmFsczo6
aXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUgd2hpY2ggY2FuIGJlIHVzZWQgYnkKKyAgICAgICAg
bGF5b3V0IHRlc3RzIHRvIGNoZWNrIHdoZXRoZXIgYSB2aWRlbyBwcmVzZW50YXRpb24gbW9kZSBj
aGFuZ2UgaXMgY29tcGxldGVkLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMu
CisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6ZGlzcGF0Y2hFdmVudCk6IEZpeCB0aGUgY29uZGl0aW9uLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6aXNGdWxsc2NyZWVuIGNvbnN0KTog
QWxpZ24gdGhlIGltcGxlbWVudGF0aW9uCisgICAgICAgIHdpdGggaXNTdGFuZGFyZEZ1bGxzY3Jl
ZW4oKS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVsbHNjcmVl
bik6IFNldCBtX2NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSB0byB0cnVlIGlmCisgICAgICAg
IHRoZSB2aWRlbyBlbGVtZW50IGlzIGNoYW5naW5nIHByZXNlbnRhdGlvbiBtb2RlLiBBbHNvIGZp
eCBhIGJ1ZyBhYm91dCB0aGUgZmxhZyBtX3dhaXRpbmdUb0VudGVyRnVsbHNjcmVlbi4KKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmV4aXRGdWxsc2NyZWVuKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpkaWRCZWNvbWVGdWxsc2NyZWVuRWxl
bWVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZGlkU3Rv
cEJlaW5nRnVsbHNjcmVlbkVsZW1lbnQpOiBEaXR0by4KKworICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0Q2hh
bmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OmlzQ2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OndhaXRpbmdUb0VudGVyRnVsbHNjcmVlbik6IERlbGV0
ZWQuCisKKyAgICAgICAgKiBodG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFZpZGVvRWxlbWVudDo6d2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4pOiBSZXZl
cnQgdGhlIGNoYW5nZQorICAgICAgICBpbiByMjYyNDU2LiBTb21lIHdlYiBzaXRlcyBleHBlY3Qg
dGhpcyBmdW5jdGlvbiB0byByZXR1cm4gdHJ1ZSBpZiB0aGUgdmlkZW8gZWxlbWVudAorICAgICAg
ICBpcyBlbnRlcmluZyBmdWxsc2NyZWVuIGFuZCB0aGUgZXZlbnQgd2Via2l0cHJlc2VudGF0aW9u
bW9kZWNoYW5nZWQgaXMgZmlyZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50
OjpzZXRQcmVzZW50YXRpb25Nb2RlKTogUmVtb3ZlIGNvZGUgcmVnYXJkaW5nIG1faXNDaGFuZ2lu
Z1ZpZGVvRnVsbHNjcmVlbk1vZGUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50
OjpkaWRFbnRlckZ1bGxzY3JlZW5PclBpY3R1cmVJblBpY3R1cmUpOiBGaXggYW4gZXZlbnQgZmly
aW5nIGlzc3VlIHdoZW4KKyAgICAgICAgYSB2aWRlbyBlbGVtZW50IGlzIGVudGVyaW5nIGZ1bGxz
Y3JlZW4gd2hpbGUgZXhpdGluZyBwaWN0dXJlLWluLXBpY3R1cmUuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MVmlkZW9FbGVtZW50OjpkaWRFeGl0RnVsbHNjcmVlbk9yUGljdHVyZUluUGljdHVyZSk6
IEZpeCBhbiBldmVudCBmaXJpbmcgaXNzdWUgd2hlbgorICAgICAgICBhIHZpZGVvIGVsZW1lbnQg
aXMgZXhpdGluZyBwaWN0dXJlLWluLXBpY3R1cmUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlk
ZW9FbGVtZW50Ojppc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSBjb25zdCk6IFRoaXMgaW50ZXJm
YWNlCisgICAgICAgIGlzIHVzZWQgYnkgbGF5b3V0IHRlc3RzICh0aHJvdWdoIEludGVybmFscykg
dG8gY2hlY2sgd2hldGhlciBhIHZpZGVvIHByZXNlbnRhdGlvbgorICAgICAgICBtb2RlIGNoYW5n
ZSBpcyBjb21wbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50OjpkaWRC
ZWNvbWVGdWxsc2NyZWVuRWxlbWVudCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1MVmlk
ZW9FbGVtZW50Lmg6CisKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnRlcm5hbHM6OmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlIGNvbnN0KTog
VGhpcyBpbnRlcmZhY2UgaXMgdXNlZAorICAgICAgICBieSBsYXlvdXQgdGVzdHMgdG8gY2hlY2sg
d2hldGhlciBhIHZpZGVvIHByZXNlbnRhdGlvbiBtb2RlIGNoYW5nZSBpcyBjb21wbGV0ZWQuCisg
ICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
cy5pZGw6CisKIDIwMjAtMDktMTcgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW0NvY29hXSBjYW5QbGF5VHlwZSgnYXVkaW8vbXBlZzsgY29kZWNzPSJt
cDMiJykgcmV0dXJucyAiIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
aW5kZXggYTRmMzY3OThlNTRhZjRmZDM5NGY0MjNjNmZiMGE2ZmEwODY5NmIyMS4uNTcxYzYxNmFi
MTE2ODY4NzliYTc3MWEzMDIxNzRhNjhhZjVkZDUwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCkBAIC01Nzc5LDggKzU3NzksNyBAQCB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OmRpc3BhdGNoRXZlbnQoRXZlbnQmIGV2ZW50KQogICAgIC8vIFdlIG5lZWQgdG8gZmly
ZSB0aGUgZW5kIGZ1bGxzY3JlZW4gZXZlbnQgdG8gbm90aWZ5IHRoZSBwYWdlCiAgICAgLy8gdG8g
Y2hhbmdlIHRoZSBwb3NpdGlvbi9zaXplIGJhY2sgKmJlZm9yZSogZXhpdGluZyBmdWxsc2NyZWVu
LgogICAgIC8vIE90aGVyd2lzZSwgdGhlIGV4aXQgZnVsbHNjcmVlbiBhbmltYXRpb24gd2lsbCBi
ZSBpbmNvcnJlY3QuCi0gICAgaWYgKCFtX3ZpZGVvRnVsbHNjcmVlblN0YW5kYnkgJiYgIW1fd2Fp
dGluZ1RvRW50ZXJGdWxsc2NyZWVuICYmIGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCkud2Vi
a2l0ZW5kZnVsbHNjcmVlbkV2ZW50KSB7Ci0gICAgICAgIHNldEZ1bGxzY3JlZW5Nb2RlKFZpZGVv
RnVsbHNjcmVlbk1vZGVOb25lKTsKKyAgICBpZiAoIW1fdmlkZW9GdWxsc2NyZWVuU3RhbmRieSAm
JiBtX3ZpZGVvRnVsbHNjcmVlbk1vZGUgPT0gVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUgJiYgZXZl
bnQudHlwZSgpID09IGV2ZW50TmFtZXMoKS53ZWJraXRlbmRmdWxsc2NyZWVuRXZlbnQpIHsKICAg
ICAgICAgZG9jdW1lbnQoKS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmV4aXRWaWRlb0Z1bGxz
Y3JlZW5Gb3JWaWRlb0VsZW1lbnQoZG93bmNhc3Q8SFRNTFZpZGVvRWxlbWVudD4oKnRoaXMpKTsK
ICAgICB9CiB9CkBAIC01OTExLDE1ICs1OTEwLDEyIEBAIGRvdWJsZSBIVE1MTWVkaWFFbGVtZW50
OjptYXhGYXN0Rm9yd2FyZFJhdGUoKSBjb25zdAogCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6Omlz
RnVsbHNjcmVlbigpIGNvbnN0CiB7Ci0gICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTW9kZSAhPSBW
aWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KICNpZiBFTkFC
TEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgaWYgKGRvY3VtZW50KCkuZnVsbHNjcmVlbk1hbmFnZXIo
KS5pc0Z1bGxzY3JlZW4oKSAmJiBkb2N1bWVudCgpLmZ1bGxzY3JlZW5NYW5hZ2VyKCkuY3VycmVu
dEZ1bGxzY3JlZW5FbGVtZW50KCkgPT0gdGhpcykKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5k
aWYKIAotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5Nb2Rl
ICE9IFZpZGVvRnVsbHNjcmVlbk1vZGVOb25lOwogfQogCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6
OmlzU3RhbmRhcmRGdWxsc2NyZWVuKCkgY29uc3QKQEAgLTU5NTEsNiArNTk0Nyw4IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6ZW50ZXJGdWxsc2NyZWVuKFZpZGVvRnVsbHNjcmVlbk1vZGUgbW9k
ZSkKICAgICBpZiAobV93YWl0aW5nVG9FbnRlckZ1bGxzY3JlZW4pCiAgICAgICAgIHJldHVybjsK
IAorICAgIG1fY2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlID0gdHJ1ZTsKKwogI2lmIEVOQUJM
RShGVUxMU0NSRUVOX0FQSSkgJiYgRU5BQkxFKFZJREVPX1VTRVNfRUxFTUVOVF9GVUxMU0NSRUVO
KQogICAgIGlmIChkb2N1bWVudCgpLnNldHRpbmdzKCkuZnVsbFNjcmVlbkVuYWJsZWQoKSAmJiBt
b2RlID09IFZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkgewogICAgICAgICBtX3RlbXBvcmFy
aWx5QWxsb3dpbmdJbmxpbmVQbGF5YmFja0FmdGVyRnVsbHNjcmVlbiA9IGZhbHNlOwpAQCAtNTk2
Myw2ICs1OTYxLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjplbnRlckZ1bGxzY3JlZW4oVmlk
ZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQogICAgIG1fZnVsbHNjcmVlblRhc2tRdWV1ZS5lbnF1ZXVl
VGFzayhbdGhpcywgbW9kZV0gewogICAgICAgICBpZiAoZG9jdW1lbnQoKS5oaWRkZW4oKSkgewog
ICAgICAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAiIHJldHVybmluZyBiZWNhdXNl
IGRvY3VtZW50IGlzIGhpZGRlbiIpOworICAgICAgICAgICAgbV9jaGFuZ2luZ1ZpZGVvRnVsbHNj
cmVlbk1vZGUgPSBmYWxzZTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC01
OTcyLDcgKzU5NzEsOSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVsbHNjcmVlbihW
aWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpCiAgICAgICAgICAgICAgICAgQUxXQVlTX0xPRyhMT0dJ
REVOVElGSUVSLCAiRW50ZXJpbmcgZnVsbHNjcmVlbiBtb2RlICIsIG1vZGUsICIsIG1fdmlkZW9G
dWxsc2NyZWVuU3RhbmRieSA9ICIsIG1fdmlkZW9GdWxsc2NyZWVuU3RhbmRieSk7CiAKICAgICAg
ICAgICAgICAgICBtX3RlbXBvcmFyaWx5QWxsb3dpbmdJbmxpbmVQbGF5YmFja0FmdGVyRnVsbHNj
cmVlbiA9IGZhbHNlOwotICAgICAgICAgICAgICAgIG1fd2FpdGluZ1RvRW50ZXJGdWxsc2NyZWVu
ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpZiAobW9kZSA9PSBWaWRlb0Z1bGxzY3JlZW5Nb2Rl
U3RhbmRhcmQpCisgICAgICAgICAgICAgICAgICAgIG1fd2FpdGluZ1RvRW50ZXJGdWxsc2NyZWVu
ID0gdHJ1ZTsKKwogICAgICAgICAgICAgICAgIGF1dG8gb2xkTW9kZSA9IG1fdmlkZW9GdWxsc2Ny
ZWVuTW9kZTsKICAgICAgICAgICAgICAgICBzZXRGdWxsc2NyZWVuTW9kZShtb2RlKTsKICAgICAg
ICAgICAgICAgICBjb25maWd1cmVNZWRpYUNvbnRyb2xzKCk7CkBAIC01OTg1LDggKzU5ODYsMTIg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjplbnRlckZ1bGxzY3JlZW4oVmlkZW9GdWxsc2NyZWVu
TW9kZSBtb2RlKQogICAgICAgICAgICAgICAgICAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMo
KS53ZWJraXRiZWdpbmZ1bGxzY3JlZW5FdmVudCk7CiAgICAgICAgICAgICAgICAgZWxzZSBpZiAo
b2xkTW9kZSA9PSBWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQpCiAgICAgICAgICAgICAgICAg
ICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLndlYmtpdGVuZGZ1bGxzY3JlZW5FdmVudCk7
CisKKyAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKwor
ICAgICAgICBtX2NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IGZhbHNlOwogICAgIH0pOwog
fQogCkBAIC02MDAzLDggKzYwMDgsMTAgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpleGl0RnVs
bHNjcmVlbigpCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgaWYgKGRvY3VtZW50
KCkuc2V0dGluZ3MoKS5mdWxsU2NyZWVuRW5hYmxlZCgpICYmIGRvY3VtZW50KCkuZnVsbHNjcmVl
bk1hbmFnZXIoKS5jdXJyZW50RnVsbHNjcmVlbkVsZW1lbnQoKSA9PSB0aGlzKSB7Ci0gICAgICAg
IGlmIChkb2N1bWVudCgpLmZ1bGxzY3JlZW5NYW5hZ2VyKCkuaXNGdWxsc2NyZWVuKCkpCisgICAg
ICAgIGlmIChkb2N1bWVudCgpLmZ1bGxzY3JlZW5NYW5hZ2VyKCkuaXNGdWxsc2NyZWVuKCkpIHsK
KyAgICAgICAgICAgIG1fY2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlID0gdHJ1ZTsKICAgICAg
ICAgICAgIGRvY3VtZW50KCkuZnVsbHNjcmVlbk1hbmFnZXIoKS5jYW5jZWxGdWxsc2NyZWVuKCk7
CisgICAgICAgIH0KIAogICAgICAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5Nb2RlID09IFZpZGVv
RnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTYwMzIsMTUg
KzYwMzksMjAgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpleGl0RnVsbHNjcmVlbigpCiAKICAg
ICBpZiAoZG9jdW1lbnQoKS5hY3RpdmVET01PYmplY3RzQXJlU3VzcGVuZGVkKCkgfHwgZG9jdW1l
bnQoKS5hY3RpdmVET01PYmplY3RzQXJlU3RvcHBlZCgpKSB7CiAgICAgICAgIHNldEZ1bGxzY3Jl
ZW5Nb2RlKFZpZGVvRnVsbHNjcmVlbk1vZGVOb25lKTsKKyAgICAgICAgbV9jaGFuZ2luZ1ZpZGVv
RnVsbHNjcmVlbk1vZGUgPSB0cnVlOwogICAgICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21l
KCkuY2xpZW50KCkuZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhvdXRBbmltYXRpb24oZG93
bmNhc3Q8SFRNTFZpZGVvRWxlbWVudD4oKnRoaXMpLCBWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSk7
CiAgICAgfSBlbHNlIGlmIChkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc3Vw
cG9ydHNWaWRlb0Z1bGxzY3JlZW4ob2xkVmlkZW9GdWxsc2NyZWVuTW9kZSkpIHsKICAgICAgICAg
aWYgKG1fdmlkZW9GdWxsc2NyZWVuU3RhbmRieSkgewogICAgICAgICAgICAgc2V0RnVsbHNjcmVl
bk1vZGUoVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpOworICAgICAgICAgICAgbV9jaGFuZ2luZ1Zp
ZGVvRnVsbHNjcmVlbk1vZGUgPSB0cnVlOwogICAgICAgICAgICAgZG9jdW1lbnQoKS5wYWdlKCkt
PmNocm9tZSgpLmNsaWVudCgpLmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KGRv
d25jYXN0PEhUTUxWaWRlb0VsZW1lbnQ+KCp0aGlzKSwgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlLCBt
X3ZpZGVvRnVsbHNjcmVlblN0YW5kYnkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAKKyAgICAgICAgbV9jaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSB0cnVlOworCiAgICAg
ICAgIGlmIChvbGRWaWRlb0Z1bGxzY3JlZW5Nb2RlID09IFZpZGVvRnVsbHNjcmVlbk1vZGVTdGFu
ZGFyZCkgeworICAgICAgICAgICAgc2V0RnVsbHNjcmVlbk1vZGUoVmlkZW9GdWxsc2NyZWVuTW9k
ZU5vbmUpOwogICAgICAgICAgICAgLy8gVGhlIGV4aXQgZnVsbHNjcmVlbiByZXF1ZXN0IHdpbGwg
YmUgc2VudCBpbiBkaXNwYXRjaEV2ZW50KCkuCiAgICAgICAgICAgICBzY2hlZHVsZUV2ZW50KGV2
ZW50TmFtZXMoKS53ZWJraXRlbmRmdWxsc2NyZWVuRXZlbnQpOwogICAgICAgICAgICAgcmV0dXJu
OwpAQCAtNjExMCw2ICs2MTIyLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpkaWRCZWNvbWVG
dWxsc2NyZWVuRWxlbWVudCgpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAiLCBm
dWxsc2NyZWVuIG1vZGUgPSAiLCBmdWxsc2NyZWVuTW9kZSgpKTsKICAgICBtX3dhaXRpbmdUb0Vu
dGVyRnVsbHNjcmVlbiA9IGZhbHNlOworICAgIG1fY2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2Rl
ID0gZmFsc2U7CiAgICAgc2NoZWR1bGVVcGRhdGVQbGF5U3RhdGUoKTsKIH0KIApAQCAtNjExOSw2
ICs2MTMyLDExIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6d2lsbFN0b3BCZWluZ0Z1bGxzY3Jl
ZW5FbGVtZW50KCkKICAgICAgICAgc2V0RnVsbHNjcmVlbk1vZGUoVmlkZW9GdWxsc2NyZWVuTW9k
ZU5vbmUpOwogfQogCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRpZFN0b3BCZWluZ0Z1bGxzY3Jl
ZW5FbGVtZW50KCkKK3sKKyAgICBtX2NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IGZhbHNl
OworfQorCiBQbGF0Zm9ybUxheWVyKiBIVE1MTWVkaWFFbGVtZW50OjpwbGF0Zm9ybUxheWVyKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gbV9wbGF5ZXIgPyBtX3BsYXllci0+cGxhdGZvcm1MYXllcigp
IDogbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggYWIy
YjAwMTFiNTk0MzllYTUxZThhYTNlMjA4ZmUwMTJjNjNkMTJlZC4uMmY4Yjc0ZjU1OTdmMjIwMGRm
ZDc3ZmQwMGY1ZWMxM2QyYjk2NzgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmgKQEAgLTU1NCw4ICs1NTQsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzU3VzcGVuZGVk
KCkgY29uc3QgZmluYWw7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEJlY29tZUZ1bGxz
Y3JlZW5FbGVtZW50KCkgb3ZlcnJpZGU7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRCZWNv
bWVGdWxsc2NyZWVuRWxlbWVudCgpIGZpbmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd2ls
bEV4aXRGdWxsc2NyZWVuKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRTdG9wQmVpbmdG
dWxsc2NyZWVuRWxlbWVudCgpIGZpbmFsOwogCiAjaWYgRU5BQkxFKFBJQ1RVUkVfSU5fUElDVFVS
RV9BUEkpCiAgICAgdm9pZCBzY2hlZHVsZUV2ZW50KFJlZjxFdmVudD4mJik7CkBAIC02MTAsNyAr
NjExLDkgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgdXBkYXRlTWVkaWFDb250cm9sc0FmdGVyUHJl
c2VudGF0aW9uTW9kZUNoYW5nZSgpOwogCiAgICAgdm9pZCBzY2hlZHVsZUV2ZW50KGNvbnN0IEF0
b21TdHJpbmcmKTsKLSAgICBib29sIHdhaXRpbmdUb0VudGVyRnVsbHNjcmVlbigpIHsgcmV0dXJu
IG1fd2FpdGluZ1RvRW50ZXJGdWxsc2NyZWVuOyB9CisKKyAgICB2b2lkIHNldENoYW5naW5nVmlk
ZW9GdWxsc2NyZWVuTW9kZShib29sIHZhbHVlKSB7IG1fY2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5N
b2RlID0gdmFsdWU7IH0KKyAgICBib29sIGlzQ2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlKCkg
Y29uc3QgeyByZXR1cm4gbV9jaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGU7IH0KIAogcHJpdmF0
ZToKICAgICB2b2lkIGNyZWF0ZU1lZGlhUGxheWVyKCk7CkBAIC0xMTA5LDYgKzExMTIsNyBAQCBw
cml2YXRlOgogCiAgICAgYm9vbCBtX2lzU2NydWJiaW5nUmVtb3RlbHkgOiAxOwogICAgIGJvb2wg
bV93YWl0aW5nVG9FbnRlckZ1bGxzY3JlZW4gOiAxOworICAgIGJvb2wgbV9jaGFuZ2luZ1ZpZGVv
RnVsbHNjcmVlbk1vZGUgOiAxOwogCiAgICAgYm9vbCBtX3RyYWNrc0FyZVJlYWR5IDogMTsKICAg
ICBib29sIG1faGF2ZVZpc2libGVUZXh0VHJhY2sgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFZpZGVvRWxlbWVudC5jcHAKaW5kZXggOGRmYWJiMzIyYzQwMDBiYTY2OTg2MTU4OGMxYmFkYzdh
ZGYzOTgyZi4uYzdjMTJmYzhiNTY2MmU5OTVkOGM4MWZhNTU4ZmExYjA1MTQ1MWQ0MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCkBAIC0zNTMsMTEgKzM1Myw5IEBA
IGJvb2wgSFRNTFZpZGVvRWxlbWVudDo6d2Via2l0U3VwcG9ydHNGdWxsc2NyZWVuKCkKIGJvb2wg
SFRNTFZpZGVvRWxlbWVudDo6d2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4oKQogewogICAgIGlm
IChkb2N1bWVudCgpLnF1aXJrcygpLm5lZWRzQWthbWFpTWVkaWFQbGF5ZXJRdWlyaygqdGhpcykp
Ci0gICAgICAgIHJldHVybiBpc0Z1bGxzY3JlZW4oKSB8fCBtX2lzQ2hhbmdpbmdWaWRlb0Z1bGxz
Y3JlZW5Nb2RlOworICAgICAgICByZXR1cm4gaXNGdWxsc2NyZWVuKCkgfHwgaXNDaGFuZ2luZ1Zp
ZGVvRnVsbHNjcmVlbk1vZGUoKTsKIAotICAgIC8vIFRoaXMgZnVuY3Rpb24gc3RhcnRzIHRvIHJl
dHVybiB0cnVlIGFmdGVyIHRoZSB2aWRlbyBlbGVtZW50IGhhcyBlbnRlcmVkCi0gICAgLy8gZnVs
bHNjcmVlbi9waWN0dXJlLWluLXBpY3R1cmUgdW50aWwgaXQgaGFzIGV4aXRlZCBmdWxsc2NyZWVu
L3BpY3R1cmUtaW4tcGljdHVyZQotICAgIHJldHVybiAoaXNGdWxsc2NyZWVuKCkgJiYgIXdhaXRp
bmdUb0VudGVyRnVsbHNjcmVlbigpKSB8fCAoIWlzRnVsbHNjcmVlbigpICYmIG1faXNDaGFuZ2lu
Z1ZpZGVvRnVsbHNjcmVlbk1vZGUpOworICAgIHJldHVybiBpc0Z1bGxzY3JlZW4oKTsKIH0KIAog
dm9pZCBIVE1MVmlkZW9FbGVtZW50OjphbmNlc3RvcldpbGxFbnRlckZ1bGxzY3JlZW4oKQpAQCAt
NDc0LDcgKzQ3Miw3IEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6d2Via2l0U2V0UHJlc2VudGF0
aW9uTW9kZShWaWRlb1ByZXNlbnRhdGlvbk1vZGUgbW9kZSkKIAogdm9pZCBIVE1MVmlkZW9FbGVt
ZW50OjpzZXRQcmVzZW50YXRpb25Nb2RlKFZpZGVvUHJlc2VudGF0aW9uTW9kZSBtb2RlKQogewot
ICAgIGlmIChtX2lzQ2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlIHx8IHRvUHJlc2VudGF0aW9u
TW9kZShmdWxsc2NyZWVuTW9kZSgpKSA9PSBtb2RlKQorICAgIGlmIChpc0NoYW5naW5nVmlkZW9G
dWxsc2NyZWVuTW9kZSgpIHx8IHRvUHJlc2VudGF0aW9uTW9kZShmdWxsc2NyZWVuTW9kZSgpKSA9
PSBtb2RlKQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIHZpZGVvRnVsbHNjcmVlbk1vZGUg
PSB0b0Z1bGxzY3JlZW5Nb2RlKG1vZGUpOwpAQCAtNDg1LDcgKzQ4Myw2IEBAIHZvaWQgSFRNTFZp
ZGVvRWxlbWVudDo6c2V0UHJlc2VudGF0aW9uTW9kZShWaWRlb1ByZXNlbnRhdGlvbk1vZGUgbW9k
ZSkKICAgICAgICAgICAgIGlmICh0b1ByZXNlbnRhdGlvbk1vZGUoZnVsbHNjcmVlbk1vZGUoKSkg
PT0gVmlkZW9QcmVzZW50YXRpb25Nb2RlOjpQaWN0dXJlSW5QaWN0dXJlKQogICAgICAgICAgICAg
ICAgIG1faXNFeGl0aW5nUGljdHVyZUluUGljdHVyZSA9IHRydWU7CiAKLSAgICAgICAgICAgIG1f
aXNDaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSB0cnVlOwogICAgICAgICAgICAgZXhpdEZ1
bGxzY3JlZW4oKTsKICAgICAgICAgfQogCkBAIC01MDAsNyArNDk3LDYgQEAgdm9pZCBIVE1MVmlk
ZW9FbGVtZW50OjpzZXRQcmVzZW50YXRpb25Nb2RlKFZpZGVvUHJlc2VudGF0aW9uTW9kZSBtb2Rl
KQogICAgIGVsc2UgaWYgKGZ1bGxzY3JlZW5Nb2RlKCkgPT0gVmlkZW9GdWxsc2NyZWVuTW9kZVBp
Y3R1cmVJblBpY3R1cmUpCiAgICAgICAgIG1faXNFeGl0aW5nUGljdHVyZUluUGljdHVyZSA9IHRy
dWU7CiAKLSAgICBtX2lzQ2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlID0gdHJ1ZTsKICAgICBl
bnRlckZ1bGxzY3JlZW4odmlkZW9GdWxsc2NyZWVuTW9kZSk7CiB9CiAKQEAgLTUxMSwyMCArNTA3
LDI1IEBAIGF1dG8gSFRNTFZpZGVvRWxlbWVudDo6d2Via2l0UHJlc2VudGF0aW9uTW9kZSgpIGNv
bnN0IC0+IFZpZGVvUHJlc2VudGF0aW9uTW9kZQogCiB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OmRp
ZEVudGVyRnVsbHNjcmVlbk9yUGljdHVyZUluUGljdHVyZShjb25zdCBGbG9hdFNpemUmIHNpemUp
CiB7Ci0gICAgbV9pc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IGZhbHNlOwotICAgIGlm
IChtX2lzRW50ZXJpbmdQaWN0dXJlSW5QaWN0dXJlIHx8IG1faXNFeGl0aW5nUGljdHVyZUluUGlj
dHVyZSkgeworICAgIGlmIChtX2lzRW50ZXJpbmdQaWN0dXJlSW5QaWN0dXJlKSB7CisgICAgICAg
IG1faXNFbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKKyAgICAgICAgc2V0Q2hhbmdp
bmdWaWRlb0Z1bGxzY3JlZW5Nb2RlKGZhbHNlKTsKKwogI2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJ
Q1RVUkVfQVBJKQotICAgICAgICBpZiAobV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIpIHsKLSAg
ICAgICAgICAgIGlmIChtX2lzRW50ZXJpbmdQaWN0dXJlSW5QaWN0dXJlKQotICAgICAgICAgICAg
ICAgIG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyLT5kaWRFbnRlclBpY3R1cmVJblBpY3R1cmUo
Zmxvb3JlZEludFNpemUoc2l6ZSkpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
IG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyLT5kaWRFeGl0UGljdHVyZUluUGljdHVyZSgpOwot
ICAgICAgICB9CisgICAgICAgIGlmIChtX3BpY3R1cmVJblBpY3R1cmVPYnNlcnZlcikKKyAgICAg
ICAgICAgIG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyLT5kaWRFbnRlclBpY3R1cmVJblBpY3R1
cmUoZmxvb3JlZEludFNpemUoc2l6ZSkpOwogI2Vsc2UKICAgICAgICAgVU5VU0VEX1BBUkFNKHNp
emUpOwogI2VuZGlmCi0gICAgICAgIG1faXNFbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxz
ZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChtX2lzRXhpdGluZ1BpY3R1cmVJ
blBpY3R1cmUpIHsKICAgICAgICAgbV9pc0V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlID0gZmFsc2U7
CisjaWYgRU5BQkxFKFBJQ1RVUkVfSU5fUElDVFVSRV9BUEkpCisgICAgICAgIGlmIChtX3BpY3R1
cmVJblBpY3R1cmVPYnNlcnZlcikKKyAgICAgICAgICAgIG1fcGljdHVyZUluUGljdHVyZU9ic2Vy
dmVyLT5kaWRFeGl0UGljdHVyZUluUGljdHVyZSgpOworI2VuZGlmCiAgICAgfQogCiAgICAgSFRN
TE1lZGlhRWxlbWVudDo6ZGlkQmVjb21lRnVsbHNjcmVlbkVsZW1lbnQoKTsKQEAgLTUzMiwyMyAr
NTMzLDI0IEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6ZGlkRW50ZXJGdWxsc2NyZWVuT3JQaWN0
dXJlSW5QaWN0dXJlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6CiAKIHZvaWQgSFRNTFZpZGVvRWxlbWVu
dDo6ZGlkRXhpdEZ1bGxzY3JlZW5PclBpY3R1cmVJblBpY3R1cmUoKQogewotICAgIG1faXNDaGFu
Z2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSBmYWxzZTsKICAgICBpZiAobV9pc0V4aXRpbmdQaWN0
dXJlSW5QaWN0dXJlKSB7CiAgICAgICAgIG1faXNFeGl0aW5nUGljdHVyZUluUGljdHVyZSA9IGZh
bHNlOworICAgICAgICBzZXRDaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUoZmFsc2UpOworCiAj
aWYgRU5BQkxFKFBJQ1RVUkVfSU5fUElDVFVSRV9BUEkpCiAgICAgICAgIGlmIChtX3BpY3R1cmVJ
blBpY3R1cmVPYnNlcnZlcikKICAgICAgICAgICAgIG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVy
LT5kaWRFeGl0UGljdHVyZUluUGljdHVyZSgpOwogI2VuZGlmCisgICAgICAgIHJldHVybjsKICAg
ICB9CisKKyAgICBIVE1MTWVkaWFFbGVtZW50OjpkaWRTdG9wQmVpbmdGdWxsc2NyZWVuRWxlbWVu
dCgpOwogfQogCi0jaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKSAmJiBFTkFCTEUoVklERU9fVVNF
U19FTEVNRU5UX0ZVTExTQ1JFRU4pCi12b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OmRpZEJlY29tZUZ1
bGxzY3JlZW5FbGVtZW50KCkKK2Jvb2wgSFRNTFZpZGVvRWxlbWVudDo6aXNDaGFuZ2luZ1ByZXNl
bnRhdGlvbk1vZGUoKSBjb25zdAogewotICAgIG1faXNDaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1v
ZGUgPSBmYWxzZTsKLSAgICBIVE1MTWVkaWFFbGVtZW50OjpkaWRCZWNvbWVGdWxsc2NyZWVuRWxl
bWVudCgpOworICAgIHJldHVybiBpc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSgpOwogfQot
I2VuZGlmCiAKIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUo
Y29uc3QgRmxvYXRSZWN0JiBmcmFtZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFZpZGVvRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVt
ZW50LmgKaW5kZXggZWQzNGRkMzZkY2U3YzZkY2FlZWRiNDNmNzMyNDVjZDljZmEwOTM0My4uZGI5
MzgwZWQ1ODE0ZmE0ZTE0OTJkZmFhOTQ1ZTIxYTY0ZTQ1ZGE0ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVmlkZW9FbGVtZW50LmgKQEAgLTkxLDEwICs5MSw3IEBAIHB1YmxpYzoKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldFByZXNlbnRhdGlvbk1vZGUoVmlkZW9QcmVzZW50YXRpb25Nb2Rl
KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbk9yUGljdHVyZUlu
UGljdHVyZShjb25zdCBGbG9hdFNpemUmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEV4
aXRGdWxsc2NyZWVuT3JQaWN0dXJlSW5QaWN0dXJlKCk7Ci0KLSNpZiBFTkFCTEUoRlVMTFNDUkVF
Tl9BUEkpICYmIEVOQUJMRShWSURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikKLSAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGRpZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KCkgZmluYWw7Ci0jZW5k
aWYKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKCkg
Y29uc3Q7CiAKICAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKGNvbnN0IEZsb2F0UmVj
dCYpIGZpbmFsOwogCkBAIC0xMzgsNyArMTM1LDYgQEAgcHJpdmF0ZToKIAogICAgIHVuc2lnbmVk
IG1fbGFzdFJlcG9ydGVkVmlkZW9XaWR0aCB7IDAgfTsKICAgICB1bnNpZ25lZCBtX2xhc3RSZXBv
cnRlZFZpZGVvSGVpZ2h0IHsgMCB9OwotICAgIGJvb2wgbV9pc0NoYW5naW5nVmlkZW9GdWxsc2Ny
ZWVuTW9kZSB7IGZhbHNlIH07CiAKICNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUp
CiAgICAgYm9vbCBtX2lzRW50ZXJpbmdQaWN0dXJlSW5QaWN0dXJlIHsgZmFsc2UgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA1OTEwNjEyMWE2NjVlMThlZDQ5NjY4MWU3
ZmRkMzVkYzcyYTBiMGU3Li43NjMxZjdmODA5NDhlMTZjY2RhYTA3ZDQwMzM5MWNjOTQ0MmI3ZjMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0zMzUxLDYgKzMzNTEsMTEg
QEAgdm9pZCBJbnRlcm5hbHM6OnNldEZ1bGxzY3JlZW5Db250cm9sc0hpZGRlbihib29sIGhpZGRl
bikKIH0KIAogI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKK2Jvb2wgSW50ZXJu
YWxzOjppc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZShIVE1MVmlkZW9FbGVtZW50JiBlbGVtZW50
KSBjb25zdAoreworICAgIHJldHVybiBlbGVtZW50LmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2Rl
KCk7Cit9CisKIHZvaWQgSW50ZXJuYWxzOjpzZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5h
YmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY29udGV4dERv
Y3VtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBkMTdjZGVkMWQyMTll
NjUzOGNjMTQ4MTMzYzU2ZWZiMTJhYWM1YWUzLi43MzE5YmYzYzEzZTYwZjY2Y2JmNmVhYmY4ZmE0
NDRiOGZjNTgzYTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTUwOCw2ICs1
MDgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRGdWxsc2NyZWVuQ29udHJvbHNIaWRkZW4oYm9v
bCk7CiAKICNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgYm9vbCBpc0No
YW5naW5nUHJlc2VudGF0aW9uTW9kZShIVE1MVmlkZW9FbGVtZW50JikgY29uc3Q7CiAgICAgdm9p
ZCBzZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZChib29sKTsKICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggZmQ2N2U3MTIyYWNkNDE2YmNkZDcw
NGVhNWQwMDM1NWY5YzY4YjA0Mi4uOTM3MjVjNTk1ODY0ZTRkNjlmYzJlZDIxNzBiZWM1YzY4ZWJh
Y2UxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtNTY0LDYgKzU2NCw3
IEBAIGVudW0gQ29udGVudFNpemVDYXRlZ29yeSB7CiAgICAgdW5kZWZpbmVkIHNldEZ1bGxzY3Jl
ZW5BdXRvSGlkZUR1cmF0aW9uKGRvdWJsZSBkdXJhdGlvbik7CiAgICAgdW5kZWZpbmVkIHNldEZ1
bGxzY3JlZW5Db250cm9sc0hpZGRlbihib29sZWFuIGhpZGRlbik7CiAKKyAgICBbQ29uZGl0aW9u
YWw9VklERU9fUFJFU0VOVEFUSU9OX01PREVdIGJvb2xlYW4gaXNDaGFuZ2luZ1ByZXNlbnRhdGlv
bk1vZGUoSFRNTFZpZGVvRWxlbWVudCBlbGVtZW50KTsKICAgICBbQ29uZGl0aW9uYWw9VklERU9f
UFJFU0VOVEFUSU9OX01PREVdIHVuZGVmaW5lZCBzZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2Rl
RW5hYmxlZChib29sZWFuIGVuYWJsZWQpOwogCiAgICAgdW5kZWZpbmVkIHNldEFwcGxpY2F0aW9u
Q2FjaGVPcmlnaW5RdW90YSh1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGU0MzdhYjIxNDAxNWVmNTJj
MWFlYzQxZGZmMGI3ZWZkYmY2MWY3MDEuLjBjYTk4NDI0OTdkMDBhMjYxZDM5MDIwNmEwODYzOGI1
MzZjYWVkMzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wOS0xNyAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBw
bGUuY29tPgorCisgICAgICAgIExldCB3ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbigpIHJldHVy
biB0cnVlIHdoZW4gYSB2aWRlbyBlbGVtZW504oCZcyBmdWxsc2NyZWVuIG1vZGUgaXMgbm90IFZp
ZGVvRnVsbHNjcmVlbk1vZGVOb25lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTY0MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3
Q2xvc2VBbGxNZWRpYVByZXNlbnRhdGlvbnMubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAg
VXNlIGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSgpIHRvIG1ha2Ugc3VyZSBh
IHZpZGVvIHByZXNlbnRhdGlvbiBtb2RlCisgICAgICAgIGNoYW5nZSAoZnJvbSBpbmxpbmUgdG8g
cGljdHVyZS1pbi1waWN0dXJlKSBpcyBjb21wbGV0ZWQgYmVmb3JlIG1vdmluZyB0byB0aGUgbmV4
dAorICAgICAgICBzdGVwIG9mIHRoZSB0ZXN0LgorCiAyMDIwLTA5LTE3ICBWw61jdG9yIE1hbnVl
bCBKw6FxdWV6IExlYWwgIDx2amFxdWV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0ZsYXRwYWsg
U0RLXSBid3JhcDogYWRkIHBpcGV3aXJlIHNvY2tldCBhcyBiaW5kIG1vdW50CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0Nsb3NlQWxs
TWVkaWFQcmVzZW50YXRpb25zLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS1dlYlZpZXdDbG9zZUFsbE1lZGlhUHJlc2VudGF0aW9ucy5tbQppbmRleCBlMTA1ZWZi
NWE1YjRiZjk1N2Y0OWExM2RlNzNlMjU4OGM0OWQyM2MwLi5hYjEzMWZkNjVlMzY2MzcxNGE1ZDky
ZThiNDY0NDc3MGEwMDVjNTM4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dLV2ViVmlld0Nsb3NlQWxsTWVkaWFQcmVzZW50YXRpb25zLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3Q2xvc2VBbGxN
ZWRpYVByZXNlbnRhdGlvbnMubW0KQEAgLTI3LDYgKzI3LDcgQEAKIAogI2ltcG9ydCAiUGxhdGZv
cm1VdGlsaXRpZXMuaCIKICNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKKyNpbXBvcnQgIldLV2Vi
Vmlld0NvbmZpZ3VyYXRpb25FeHRyYXMuaCIKICNpbXBvcnQgPFdlYkNvcmUvUGljdHVyZUluUGlj
dHVyZVN1cHBvcnQuaD4KICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oPgog
I2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KQEAgLTQwLDI1ICs0MSwyNiBAQCBU
RVNUKFdLV2ViVmlld0Nsb3NlQWxsTWVkaWFQcmVzZW50YXRpb25zLCBQaWN0dXJlSW5QaWN0dXJl
KQogICAgIGlmICghV2ViQ29yZTo6c3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdD
b25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5wcmVm
ZXJlbmNlcy5fYWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sgPSBZRVM7Ci0gICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9u
LmdldCgpIGFkZFRvV2luZG93OllFU10pOworICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFz
c05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVz
dGluZzpZRVNdOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEFsbG93c1Bp
Y3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrOllFU107CisgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAw
LCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uIGFkZFRvV2luZG93OllFU10p
OwogCiAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPHZpZGVvIHNy
Yz12aWRlby13aXRoLWF1ZGlvLm1wNCB3ZWJraXQtcGxheXNpbmxpbmUgcGxheXNpbmxpbmUgbG9v
cD48L3ZpZGVvPiJdOworICAgIFt3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6
QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpLmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtp
dHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkJywgZXZlbnQgPT4geyB3aW5kb3cud2Via2l0Lm1lc3Nh
Z2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgncHJlc2VudGF0aW9ubW9kZWNoYW5n
ZWQnKTsgfSk7Il07CiAKLSAgICBbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0
V2l0aFVzZXJHZXN0dXJlOkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8nKS53ZWJraXRT
ZXRQcmVzZW50YXRpb25Nb2RlKCdwaWN0dXJlLWluLXBpY3R1cmUnKSJdOworICAgIF9fYmxvY2sg
Ym9vbCBwcmVzZW50YXRpb25Nb2RlQ2hhbmdlZCA9IGZhbHNlOworICAgIFt3ZWJWaWV3IHBlcmZv
cm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6QCJwcmVzZW50YXRpb25tb2RlY2hhbmdlZCIgYWN0aW9u
Ol57IHByZXNlbnRhdGlvbk1vZGVDaGFuZ2VkID0gdHJ1ZTsgfV07CiAKKyAgICBbd2ViVmlldyBv
YmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0V2l0aFVzZXJHZXN0dXJlOkAiZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigndmlkZW8nKS53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdwaWN0dXJlLWlu
LXBpY3R1cmUnKSJdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcHJlc2VudGF0aW9u
TW9kZUNoYW5nZWQpOwogICAgIGRvIHsKLSAgICAgICAgaWQgcmVzdWx0ID0gW3dlYlZpZXcgb2Jq
ZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVv
Jykud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4iXTsKLSAgICAgICAgaWYgKFtyZXN1bHQgYm9v
bFZhbHVlXSkKKyAgICAgICAgaWYgKCFbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2Ny
aXB0OkAid2luZG93LmludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZShkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpKSJdLmJvb2xWYWx1ZSkKICAgICAgICAgICAgIGJyZWFr
OwogCiAgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNsZWVwKDAuNSk7CiAgICAgfSB3aGls
ZSAodHJ1ZSk7CiAKLSAgICBbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAi
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8nKS5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRw
cmVzZW50YXRpb25tb2RlY2hhbmdlZCcsIGV2ZW50ID0+IHsgd2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ3ByZXNlbnRhdGlvbm1vZGVjaGFuZ2Vk
Jyk7IH0pOyJdOwotCi0gICAgX19ibG9jayBib29sIHByZXNlbnRhdGlvbk1vZGVDaGFuZ2VkID0g
ZmFsc2U7CisgICAgcHJlc2VudGF0aW9uTW9kZUNoYW5nZWQgPSBmYWxzZTsKICAgICBbd2ViVmll
dyBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOkAicHJlc2VudGF0aW9ubW9kZWNoYW5nZWQi
IGFjdGlvbjpeeyBwcmVzZW50YXRpb25Nb2RlQ2hhbmdlZCA9IHRydWU7IH1dOwogCiAgICAgW3dl
YlZpZXcgX2Nsb3NlQWxsTWVkaWFQcmVzZW50YXRpb25zXTsKQEAgLTc0LDkgKzc2LDkgQEAgVEVT
VChXS1dlYlZpZXdDbG9zZUFsbE1lZGlhUHJlc2VudGF0aW9ucywgUGljdHVyZUluUGljdHVyZSkK
IAogVEVTVChXS1dlYlZpZXdDbG9zZUFsbE1lZGlhUHJlc2VudGF0aW9ucywgVmlkZW9GdWxsc2Ny
ZWVuKQogewotICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5wcmVmZXJl
bmNlcy5fZnVsbFNjcmVlbkVuYWJsZWQgPSBZRVM7Ci0gICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4
MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllF
U10pOworICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBf
dGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1
Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOworICAgIFtbY29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEZ1bGxTY3JlZW5FbmFibGVkOllFU107CisgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9u
IGFkZFRvV2luZG93OllFU10pOwogCiAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1M
U3RyaW5nOkAiPHZpZGVvIHNyYz12aWRlby13aXRoLWF1ZGlvLm1wNCB3ZWJraXQtcGxheXNpbmxp
bmUgcGxheXNpbmxpbmUgbG9vcD48L3ZpZGVvPiJdOwogICAgIFt3ZWJWaWV3IG9iamVjdEJ5RXZh
bHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpLmFkZEV2
ZW50TGlzdGVuZXIoJ3dlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkJywgZXZlbnQgPT4geyB3
aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgncHJl
c2VudGF0aW9ubW9kZWNoYW5nZWQnKTsgfSk7Il07CkBAIC04NSw4ICs4NywxNSBAQCBURVNUKFdL
V2ViVmlld0Nsb3NlQWxsTWVkaWFQcmVzZW50YXRpb25zLCBWaWRlb0Z1bGxzY3JlZW4pCiAgICAg
W3dlYlZpZXcgcGVyZm9ybUFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAInByZXNlbnRhdGlvbm1vZGVj
aGFuZ2VkIiBhY3Rpb246XnsgcHJlc2VudGF0aW9uTW9kZUNoYW5nZWQgPSB0cnVlOyB9XTsKIAog
ICAgIFt3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHRXaXRoVXNlckdlc3R1cmU6
QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpLndlYmtpdEVudGVyRnVsbHNjcmVlbigp
Il07CisgICAgW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5p
bnRlcm5hbHMuc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQodHJ1ZSkiXTsKIAog
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcHJlc2VudGF0aW9uTW9kZUNoYW5nZWQpOwor
ICAgIGRvIHsKKyAgICAgICAgaWYgKCFbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2Ny
aXB0OkAid2luZG93LmludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZShkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpKSJdLmJvb2xWYWx1ZSkKKyAgICAgICAgICAgIGJyZWFr
OworCisgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNsZWVwKDAuNSk7CisgICAgfSB3aGls
ZSAodHJ1ZSk7CiAKICAgICBwcmVzZW50YXRpb25Nb2RlQ2hhbmdlZCA9IGZhbHNlOwogICAgIFt3
ZWJWaWV3IHBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6QCJwcmVzZW50YXRpb25tb2RlY2hh
bmdlZCIgYWN0aW9uOl57IHByZXNlbnRhdGlvbk1vZGVDaGFuZ2VkID0gdHJ1ZTsgfV07CkBAIC0x
MDAsOSArMTA5LDkgQEAgVEVTVChXS1dlYlZpZXdDbG9zZUFsbE1lZGlhUHJlc2VudGF0aW9ucywg
VmlkZW9GdWxsc2NyZWVuKQogCiBURVNUKFdLV2ViVmlld0Nsb3NlQWxsTWVkaWFQcmVzZW50YXRp
b25zLCBFbGVtZW50RnVsbHNjcmVlbikKIHsKLSAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9w
dE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwotICAgIGNvbmZpZ3Vy
YXRpb24uZ2V0KCkucHJlZmVyZW5jZXMuX2Z1bGxTY3JlZW5FbmFibGVkID0gWUVTOwotICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5n
ZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKKyAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NO
YW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rp
bmc6WUVTXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRGdWxsU2NyZWVu
RW5hYmxlZDpZRVNdOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbiBhZGRUb1dpbmRvdzpZRVNdKTsKIAogICAgIFt3ZWJWaWV3IHN5
bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxkaXYgaWQ9XCJ0YXJnZXRcIiBzdHlsZT1cIndp
ZHRoOjEwMHB4O2hlaWdodDoxMDBweDtiYWNrZ3JvdW5kLWNvbG9yOnJlZFwiPjwvZGl2PiJdOwog
ICAgIFt3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCcjdGFyZ2V0JykuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0ZnVsbHNjcmVlbmNo
YW5nZScsIGV2ZW50ID0+IHsgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRs
ZXIucG9zdE1lc3NhZ2UoJ2Z1bGxzY3JlZW5jaGFuZ2UnKTsgfSk7Il07CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjc2MWU1
ZWExMWM5NDZiYzk1MjZmZjI0OGQxZThiMTE5ZjNlMTAwMi4uMmYzY2E2Zjg0ZjVmMjhkZDY5MjY4
ZTA5M2Y2MWNlMDgxN2UxOTQ3ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIwLTA5LTE3ICBQ
ZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgTGV0IHdlYmtpdERpc3Bs
YXlpbmdGdWxsc2NyZWVuKCkgcmV0dXJuIHRydWUgd2hlbiBhIHZpZGVvIGVsZW1lbnTigJlzIGZ1
bGxzY3JlZW4gbW9kZSBpcyBub3QgVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjQyNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBJbnRlcm5hbHM6OmlzQ2hh
bmdpbmdQcmVzZW50YXRpb25Nb2RlIGluc3RlYWQgb2YgSFRNTFZpZGVvRWxlbWVudDo6d2Via2l0
RGlzcGxheWluZ0Z1bGxzY3JlZW4KKyAgICAgICAgdG8gbWFrZSBzdXJlIHRoZSB2aWRlbyBwcmVz
ZW50YXRpb24gbW9kZSBjaGFuZ2UgaXMgY29tcGxldGVkIGJlZm9yZSBtb3ZpbmcgdG8gdGhlIG5l
eHQgc3RlcCBvZiBhIHRlc3QuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxz
Y3JlZW4tbWVkaWEtY29udHJvbHMtbGl2ZS1icm9hZGNhc3QtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGh0dHAvdGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3Jl
ZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1saXZlLWJy
b2FkY2FzdC5odG1sOgorICAgICAgICAqIG1lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWw6
CisgICAgICAgICogbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1sb29wLWlubGluZS1leHBlY3RlZC50
eHQ6CisgICAgICAgICogbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1sb29wLWlubGluZS5odG1sOgor
ICAgICAgICAqIG1lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcGF1c2UtaW5saW5lLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBtZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXBhdXNlLWlubGluZS5odG1sOgor
ICAgICAgICAqIG1lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcmV0dXJuLXRvLWlubGluZS1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1yZXR1cm4tdG8taW5saW5l
Lmh0bWw6CisgICAgICAgICogbWVkaWEvcHJlc2VudGF0aW9ubW9kZWNoYW5nZWQtZmlyZWQtb25j
ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEvcHJlc2VudGF0aW9ubW9kZWNoYW5nZWQt
ZmlyZWQtb25jZS5odG1sOgorICAgICAgICAqIG1lZGlhL3ZpZGVvLWZ1bGxzY3JlZW4tb25seS1w
bGF5YmFjay1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEvdmlkZW8tZnVsbHNjcmVlbi1v
bmx5LXBsYXliYWNrLmh0bWw6CisgICAgICAgICogbWVkaWEvdmlkZW8tcGxheXNpbmxpbmUtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIG1lZGlhL3ZpZGVvLXBsYXlzaW5saW5lLmh0bWw6CisgICAg
ICAgICogbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIG1lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLmh0bWw6CisgICAgICAgICogbWVkaWEv
dmlkZW8td2Via2l0LXBsYXlzaW5saW5lLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBtZWRpYS92
aWRlby13ZWJraXQtcGxheXNpbmxpbmUuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9uczoKKwogMjAyMC0wOS0xNyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29u
QGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIGNhblBsYXlUeXBlKCdhdWRpby9tcGVnOyBj
b2RlY3M9Im1wMyInKSByZXR1cm5zICIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNv
bnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtbGl2ZS1icm9hZGNhc3QtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1l
ZGlhLWNvbnRyb2xzLWxpdmUtYnJvYWRjYXN0LWV4cGVjdGVkLnR4dAppbmRleCBiMzJhN2MxNzQ5
YWNiYzc2ZGQ2ZWMxYTA3ZmY5ZWZkN2RlNDI3YjNjLi43YjY2OTQ5NTNkNmUzNDA4ZDA3NzA1YjYw
NWE3ZDU5ZDUwOTM1OWYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21h
Y29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtbGl2ZS1icm9hZGNhc3QtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1j
b250cm9scy1saXZlLWJyb2FkY2FzdC1leHBlY3RlZC50eHQKQEAgLTMsNyArMyw3IEBAIFRlc3Rp
bmcgdGhhdCB3ZSBkbyBub3Qgc2hvdyB0aGUgc2Vla2luZyBjb250cm9scyBpbiBmdWxsc2NyZWVu
IHdpdGggYSBsaXZlIGJyb2FkCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBt
ZWRpYS53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiBiZWNhbWUgdHJ1ZQorUEFTUyBtZWRpYS53
ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiBpcyB0cnVlCiBQQVNTIG1lZGlhLmR1cmF0aW9uIGJl
Y2FtZSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkKIFBBU1MgbWVkaWFDb250cm9sbGVyLmNvbnRy
b2xzLnJld2luZEJ1dHRvbi5lbmFibGVkIGlzIGZhbHNlCiBQQVNTIG1lZGlhQ29udHJvbGxlci5j
b250cm9scy5mb3J3YXJkQnV0dG9uLmVuYWJsZWQgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxz
Y3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1saXZl
LWJyb2FkY2FzdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2Ny
ZWVuLW1lZGlhLWNvbnRyb2xzLWxpdmUtYnJvYWRjYXN0Lmh0bWwKaW5kZXggYWZiZTg4MTRlNjg1
MDg0Y2ZhYjY1OTliYTJiZDQ1YjVlNzBkZmQwYi4uYjY0YjQzYTIzMzU5MGRhYmY0OGUzMTdhNjhm
MGIwYzZiM2M0MzQyMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNv
cy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWxpdmUtYnJvYWRjYXN0Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVs
bHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWxp
dmUtYnJvYWRjYXN0Lmh0bWwKQEAgLTE1LDE4ICsxNSwxNyBAQCBjb25zdCBtZWRpYSA9IGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7CiBjb25zdCBtZWRpYUNvbnRyb2xsZXIgPSBjcmVh
dGVDb250cm9scyhzaGFkb3dSb290LCBtZWRpYSwgbnVsbCk7CiAKIG1lZGlhLmFkZEV2ZW50TGlz
dGVuZXIoIndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UiLCAoKSA9PiB7Ci0gICAgc2hvdWxkQmVjb21l
RXF1YWwoIm1lZGlhLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIiwgInRydWUiLCAoKSA9PiB7
Ci0gICAgICAgIHNob3VsZEJlY29tZUVxdWFsKCJtZWRpYS5kdXJhdGlvbiIsICJOdW1iZXIuUE9T
SVRJVkVfSU5GSU5JVFkiLCAoKSA9PiB7Ci0gICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJtZWRp
YUNvbnRyb2xsZXIuY29udHJvbHMucmV3aW5kQnV0dG9uLmVuYWJsZWQiKTsKLSAgICAgICAgICAg
IHNob3VsZEJlRmFsc2UoIm1lZGlhQ29udHJvbGxlci5jb250cm9scy5mb3J3YXJkQnV0dG9uLmVu
YWJsZWQiKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMu
dGltZUNvbnRyb2wucGFyZW50IiwgIm51bGwiKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJtZWRp
YUNvbnRyb2xsZXIuY29udHJvbHMuc3RhdHVzTGFiZWwucGFyZW50IiwgIm1lZGlhQ29udHJvbGxl
ci5jb250cm9scy5ib3R0b21Db250cm9sc0JhciIpOwotCi0gICAgICAgICAgICBkZWJ1ZygiIik7
Ci0gICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKLSAgICAgICAgICAgIHNoYWRvd1Jvb3QuaG9z
dC5yZW1vdmUoKTsKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9KTsKKyAg
ICBzaG91bGRCZVRydWUoIm1lZGlhLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIik7CisgICAg
c2hvdWxkQmVjb21lRXF1YWwoIm1lZGlhLmR1cmF0aW9uIiwgIk51bWJlci5QT1NJVElWRV9JTkZJ
TklUWSIsICgpID0+IHsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgibWVkaWFDb250cm9sbGVyLmNv
bnRyb2xzLnJld2luZEJ1dHRvbi5lbmFibGVkIik7CisgICAgICAgIHNob3VsZEJlRmFsc2UoIm1l
ZGlhQ29udHJvbGxlci5jb250cm9scy5mb3J3YXJkQnV0dG9uLmVuYWJsZWQiKTsKKyAgICAgICAg
c2hvdWxkQmUoIm1lZGlhQ29udHJvbGxlci5jb250cm9scy50aW1lQ29udHJvbC5wYXJlbnQiLCAi
bnVsbCIpOworICAgICAgICBzaG91bGRCZSgibWVkaWFDb250cm9sbGVyLmNvbnRyb2xzLnN0YXR1
c0xhYmVsLnBhcmVudCIsICJtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMuYm90dG9tQ29udHJvbHNC
YXIiKTsKKworICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgIG1lZGlhLnJlbW92ZSgpOworICAg
ICAgICBzaGFkb3dSb290Lmhvc3QucmVtb3ZlKCk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOwog
ICAgIH0pOwogfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL2NvbnRleHQtbWVu
dS1hY3Rpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy5o
dG1sCmluZGV4IDA1OWVlYTcwOTUyZjg1N2ZiYzYyNTZiODQ5NjdmZjYxYTYzMjdlMzYuLmQzOTNj
NzkwYjE4NWQzNzQwNDlhMzczMTc3YTk2ZGU5OTQyNjk5ZWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL21lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVk
aWEvY29udGV4dC1tZW51LWFjdGlvbnMuaHRtbApAQCAtMSw4NyArMSw4NiBAQAorPCFET0NUWVBF
IGh0bWw+CiA8aHRtbD4KIDxoZWFkPgotICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWEtZmlsZS5q
cyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSJ2aWRlby10ZXN0LmpzIj48L3Njcmlw
dD4KLSAgICAgICAgPHNjcmlwdD4KLQotICAgICAgICAgICAgYXN5bmMgZnVuY3Rpb24gcGxheWlu
ZygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGVuZFRlc3QoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgPHNj
cmlwdCBzcmM9Im1lZGlhLWZpbGUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJ2aWRl
by10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBhc3luYyBmdW5jdGlv
biBwbGF5aW5nKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgICAgICAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgICAgICAgICAgICAg
IGVuZFRlc3QoKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZW5kVGVzdCgpOworICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIGZp
bmRNZWRpYUVsZW1lbnQoKTsKLQotICAgICAgICAgICAgICAgIHZhciB4LCB5LCBpdGVtczsKLSAg
ICAgICAgICAgICAgICB4ID0gdmlkZW8ub2Zmc2V0UGFyZW50Lm9mZnNldExlZnQgKyB2aWRlby5v
ZmZzZXRMZWZ0ICsgdmlkZW8ub2Zmc2V0V2lkdGggLyAyOwotICAgICAgICAgICAgICAgIHkgPSB2
aWRlby5vZmZzZXRQYXJlbnQub2Zmc2V0VG9wICsgdmlkZW8ub2Zmc2V0VG9wICsgdmlkZW8ub2Zm
c2V0SGVpZ2h0IC8gMjsKLSAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4
LCB5KTsKLSAgICAgICAgICAgICAgICBpdGVtcyA9IGV2ZW50U2VuZGVyLmNvbnRleHRDbGljaygp
OwotCisgICAgICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7CiAKLSAgICAgICAgICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKQotICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLnRpdGxlLm1hdGNoKCJDb250cm9scyIp
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8uY29udHJvbHMi
LCB0cnVlLCAnPT0nKTsKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUb2dn
bGluZyBtZWRpYSBjb250cm9scyIpOwotICAgICAgICAgICAgICAgICAgICAgICBpdGVtc1tpXS5j
bGljaygpOwotICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmNvbnRy
b2xzIiwgZmFsc2UsICc9PScpOwotICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUo
IiIpOwotICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB2YXIgeCwgeSwgaXRlbXM7
CisgICAgICAgICAgICB4ID0gdmlkZW8ub2Zmc2V0UGFyZW50Lm9mZnNldExlZnQgKyB2aWRlby5v
ZmZzZXRMZWZ0ICsgdmlkZW8ub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAgICAgeSA9IHZpZGVv
Lm9mZnNldFBhcmVudC5vZmZzZXRUb3AgKyB2aWRlby5vZmZzZXRUb3AgKyB2aWRlby5vZmZzZXRI
ZWlnaHQgLyAyOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7Cisg
ICAgICAgICAgICBpdGVtcyA9IGV2ZW50U2VuZGVyLmNvbnRleHRDbGljaygpOwogCi0gICAgICAg
ICAgICAgICAgICAgIGlmIChpdGVtc1tpXS50aXRsZS5tYXRjaCgiUGF1c2UiKSkgewotICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnBhdXNlZCIsIGZhbHNlLCAnPT0n
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUb2dnbGluZyBwbGF5IHN0
YXRlIik7Ci0gICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zW2ldLmNsaWNrKCk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ucGF1c2VkIiwgdHJ1ZSwgJz09Jyk7
Ci0gICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7Ci0gICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBp
KyspCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLnRpdGxlLm1h
dGNoKCJDb250cm9scyIpKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlk
ZW8uY29udHJvbHMiLCB0cnVlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZVdy
aXRlKCJUb2dnbGluZyBtZWRpYSBjb250cm9scyIpOworICAgICAgICAgICAgICAgICAgICBpdGVt
c1tpXS5jbGljaygpOworICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmNv
bnRyb2xzIiwgZmFsc2UsICc9PScpOworICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUo
IiIpOworICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbXNb
aV0udGl0bGUubWF0Y2goIkxvb3AiKSkgewotICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhw
ZWN0ZWQoInZpZGVvLmxvb3AiLCBmYWxzZSwgJz09Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAg
IGNvbnNvbGVXcml0ZSgiVG9nZ2xpbmcgbG9vcCBzdGF0ZSIpOwotICAgICAgICAgICAgICAgICAg
ICAgICBpdGVtc1tpXS5jbGljaygpOwotICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0
ZWQoInZpZGVvLmxvb3AiLCB0cnVlLCAnPT0nKTsKLSAgICAgICAgICAgICAgICAgICAgICAgY29u
c29sZVdyaXRlKCIiKTsKLSAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlm
IChpdGVtc1tpXS50aXRsZS5tYXRjaCgiUGF1c2UiKSkgeworICAgICAgICAgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoInZpZGVvLnBhdXNlZCIsIGZhbHNlLCAnPT0nKTsKKyAgICAgICAgICAgICAg
ICAgICAgY29uc29sZVdyaXRlKCJUb2dnbGluZyBwbGF5IHN0YXRlIik7CisgICAgICAgICAgICAg
ICAgICAgIGl0ZW1zW2ldLmNsaWNrKCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3Rl
ZCgidmlkZW8ucGF1c2VkIiwgdHJ1ZSwgJz09Jyk7CisgICAgICAgICAgICAgICAgICAgIGNvbnNv
bGVXcml0ZSgiIik7CisgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgICAgIGlm
IChpdGVtc1tpXS50aXRsZS5tYXRjaCgiTXV0ZSIpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
IHRlc3RFeHBlY3RlZCgidmlkZW8ubXV0ZWQiLCBmYWxzZSwgJz09Jyk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVG9nZ2xpbmcgbXV0ZSBzdGF0ZSIpOwotICAgICAgICAg
ICAgICAgICAgICAgICBpdGVtc1tpXS5jbGljaygpOwotICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoInZpZGVvLm11dGVkIiwgdHJ1ZSwgJz09Jyk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgIGNvbnNvbGVXcml0ZSgiIik7Ci0gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBpZiAoaXRlbXNbaV0udGl0bGUubWF0Y2goIkxvb3AiKSkgeworICAgICAgICAgICAg
ICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmxvb3AiLCBmYWxzZSwgJz09Jyk7CisgICAgICAg
ICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVG9nZ2xpbmcgbG9vcCBzdGF0ZSIpOworICAgICAg
ICAgICAgICAgICAgICBpdGVtc1tpXS5jbGljaygpOworICAgICAgICAgICAgICAgICAgICB0ZXN0
RXhwZWN0ZWQoInZpZGVvLmxvb3AiLCB0cnVlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAgICAg
Y29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKGl0ZW1zW2ldLnRpdGxlLm1hdGNoKCJGdWxsc2NyZWVuIikgJiYgdmlkZW8ud2Via2l0
U3VwcG9ydHNGdWxsc2NyZWVuKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3Rl
ZCgidmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4iLCBmYWxzZSwgJz09Jyk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVG9nZ2xpbmcgZnVsbHNjcmVlbiBzdGF0
ZSIpOwotICAgICAgICAgICAgICAgICAgICAgICBpdGVtc1tpXS5jbGljaygpOwotICAgICAgICAg
ICAgICAgICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCJ2aWRlby53ZWJraXRE
aXNwbGF5aW5nRnVsbHNjcmVlbiIsIHRydWUsICI9PSIsIDEwMDApOwotICAgICAgICAgICAgICAg
ICAgICAgICBjb25zb2xlV3JpdGUoIiIpOwotICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgaWYgKGl0ZW1zW2ldLnRpdGxlLm1hdGNoKCJNdXRlIikpIHsKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5tdXRlZCIsIGZhbHNlLCAnPT0nKTsKKyAgICAg
ICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUb2dnbGluZyBtdXRlIHN0YXRlIik7CisgICAg
ICAgICAgICAgICAgICAgIGl0ZW1zW2ldLmNsaWNrKCk7CisgICAgICAgICAgICAgICAgICAgIHRl
c3RFeHBlY3RlZCgidmlkZW8ubXV0ZWQiLCB0cnVlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAg
ICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAg
ICAgICAgLy8gVE9ETzogdGVzdCBjb3B5IGxpbmsgbG9jYXRpb24gYW5kIG9wZW4gaW4gbmV3IHdp
bmRvdy4KLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKLSAgICAgICAgICAgICAgICAgZW5kVGVzdCgpOwotICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIGlmIChpdGVtc1tpXS50aXRsZS5tYXRjaCgiRnVsbHNjcmVlbiIpICYm
IHZpZGVvLndlYmtpdFN1cHBvcnRzRnVsbHNjcmVlbikgeworICAgICAgICAgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIiwgZmFsc2UsICc9
PScpOworICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRvZ2dsaW5nIGZ1bGxzY3Jl
ZW4gc3RhdGUiKTsKKyAgICAgICAgICAgICAgICAgICAgaXRlbXNbaV0uY2xpY2soKTsKKyAgICAg
ICAgICAgICAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJuYWxzLmlz
Q2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlLCAnPT0nLCAxMDAwKTsKKyAg
ICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby53ZWJraXREaXNwbGF5aW5nRnVs
bHNjcmVlbiIsIHRydWUsICc9PScpOworICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUo
IiIpOworICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgYXN5bmMgZnVuY3Rpb24gc3Rh
cnQoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsK
LSAgICAgICAgICAgICAgICB3YWl0Rm9yRXZlbnQoJ3BsYXknLCBwbGF5aW5nKTsKLSAgICAgICAg
ICAgICAgICBydW4oInZpZGVvLnNyYyA9ICciICsgZmluZE1lZGlhRmlsZSgidmlkZW8iLCAiY29u
dGVudC90ZXN0IikgKyAiJyIpOworICAgICAgICAgICAgICAgIC8vIFRPRE86IHRlc3QgY29weSBs
aW5rIGxvY2F0aW9uIGFuZCBvcGVuIGluIG5ldyB3aW5kb3cuCiAgICAgICAgICAgICB9CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIGVuZFRlc3QoKTsK
KyAgICAgICAgfQogCi0gICAgICAgPC9zY3JpcHQ+CisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHN0
YXJ0KCkKKyAgICAgICAgeworICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOworICAgICAg
ICAgICAgd2FpdEZvckV2ZW50KCdwbGF5JywgcGxheWluZyk7CisgICAgICAgICAgICBydW4oInZp
ZGVvLnNyYyA9ICciICsgZmluZE1lZGlhRmlsZSgidmlkZW8iLCAiY29udGVudC90ZXN0IikgKyAi
JyIpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keSBvbmxvYWQ9InN0
YXJ0KCkiPgogICAgIDxwPlRlc3QgdGhlIHZhcmlvdXMgYWN0aW9ucyBhdmFpbGFibGUgaW4gdGhl
IEhUTUw1IG1lZGlhIGVsZW1lbnQgY29udGV4dC1tZW51LjwvcD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tbG9vcC1pbmxpbmUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1sb29wLWlubGluZS1leHBlY3RlZC50
eHQKaW5kZXggNWEzMzdhM2UyM2U2ZjEyNmU5MWM1MzA5OTVmZjE1ZDViZGQwMWMxOS4uODdjMWVl
NzU0MjA2NDEwNGM2MDBlNmZhYzNjOGJlOThiOTlkODg2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1sb29wLWlubGluZS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1sb29wLWlubGluZS1leHBlY3RlZC50
eHQKQEAgLTcsMTIgKzcsMTQgQEAgRVZFTlQoY2FucGxheXRocm91Z2gpCiBSVU4odmlkZW8ucGxh
eSgpKQogV2FpdCB0byBlbnRlciBmdWxsc2NyZWVuCiBFVkVOVCh3ZWJraXRwcmVzZW50YXRpb25t
b2RlY2hhbmdlZCkKK0VYUEVDVEVEIChpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1v
ZGUodmlkZW8pID09ICdmYWxzZScpIE9LCiBFWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWlu
Z0Z1bGxzY3JlZW4gPT0gJ3RydWUnKSBPSwogRW50ZXJlZCBmdWxsc2NyZWVuCiBSVU4odmlkZW8u
Y3VycmVudFRpbWUgPSA1KQogUlVOKHZpZGVvLndlYmtpdEV4aXRGdWxsc2NyZWVuKCkpCiBXYWl0
IHRvIGV4aXQgZnVsbHNjcmVlbgogRVZFTlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQp
CitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9
PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVu
ID09ICdmYWxzZScpIE9LCiBFeGl0ZWQgZnVsbHNjcmVlbgogRVhQRUNURUQgKHZpZGVvLnBhdXNl
ZCA9PSAnZmFsc2UnKSBPSwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVs
bHNjcmVlbi1sb29wLWlubGluZS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNj
cmVlbi1sb29wLWlubGluZS5odG1sCmluZGV4IDRiOGIxOTkyNDlkMTk1MGFkN2VlMDM1ZjJlOGY2
NzQ1YzJmMTk1ZDkuLjRmNTE2Y2I5MmQyNjZkZTQ4Y2I0MzgxYWQ5NmU3OWEwMmRkODUyMzMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tbG9vcC1pbmxpbmUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLWxvb3AtaW5saW5l
Lmh0bWwKQEAgLTM1LDcgKzM1LDggQEAKIAogICAgIGFzeW5jIGZ1bmN0aW9uIGJlZ2luZnVsbHNj
cmVlbigpCiAgICAgewotICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRl
by53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIHRydWUpOworICAgICAgICBhd2FpdCB0ZXN0
RXhwZWN0ZWRFdmVudHVhbGx5KCJpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUo
dmlkZW8pIiwgZmFsc2UpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLndlYmtpdERpc3Bs
YXlpbmdGdWxsc2NyZWVuJywgdHJ1ZSk7CiAgICAgICAgIGNvbnNvbGVXcml0ZSgiRW50ZXJlZCBm
dWxsc2NyZWVuIik7CiAgICAgICAgIHJ1bigndmlkZW8uY3VycmVudFRpbWUgPSA1Jyk7CiAgICAg
ICAgIHJ1bigndmlkZW8ud2Via2l0RXhpdEZ1bGxzY3JlZW4oKScpOwpAQCAtNDUsNyArNDYsOCBA
QAogCiAgICAgYXN5bmMgZnVuY3Rpb24gZW5kZnVsbHNjcmVlbigpCiAgICAgewotICAgICAgICBh
d2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNj
cmVlbicsIGZhbHNlKTsKKyAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50
ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKKyAgICAg
ICAgdGVzdEV4cGVjdGVkKCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIGZhbHNl
KTsKICAgICAgICAgY29uc29sZVdyaXRlKCJFeGl0ZWQgZnVsbHNjcmVlbiIpOwogICAgICAgICB0
ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnBhdXNlZCcsIGZhbHNlKTsKICAgICAgICAgcnVuKCd2aWRlby5v
bnRpbWV1cGRhdGUgPSB0aW1ldXBkYXRlJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS9tZWRpYS1mdWxsc2NyZWVuLXBhdXNlLWlubGluZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXBhdXNlLWlubGluZS1leHBlY3RlZC50eHQKaW5kZXgg
M2FiYzllMjkyYTY0NmJjMjBjY2YzOWU3ZTkyMmMzMjg5ZGE0MmU1NS4uOTNhYmYxYTZlNmI5ODc4
ZjEzZmY1NDg4NzIyMjQwYmZhMjhmYzFiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEv
bWVkaWEtZnVsbHNjcmVlbi1wYXVzZS1pbmxpbmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcGF1c2UtaW5saW5lLWV4cGVjdGVkLnR4dApAQCAt
NCwxNSArNCwxOCBAQCBUZXN0IHRoYXQgYSA8dmlkZW8+IGtlZXBzIHBsYXlpbmcgYWZ0ZXIgZXhp
dGluZyBmdWxsc2NyZWVuIHdoZW4gdGhlIGludGVybmFsIHBybwogUlVOKHZpZGVvLnNyYyA9IGZp
bmRNZWRpYUZpbGUoInZpZGVvIiwgImNvbnRlbnQvdGVzdCIpKQogRVZFTlQoY2FucGxheXRocm91
Z2gpCiBSVU4odmlkZW8ucGxheSgpLnRoZW4ocGxheWluZyk7KQorRVhQRUNURUQgKGludGVybmFs
cy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykgPT0gJ2ZhbHNlJykgT0sKIEVYUEVD
VEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAndHJ1ZScpIE9LCiBSVU4o
dmlkZW8ud2Via2l0RXhpdEZ1bGxzY3JlZW4oKSkKIEVWRU5UKHdlYmtpdHByZXNlbnRhdGlvbm1v
ZGVjaGFuZ2VkKQorRVhQRUNURUQgKGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9k
ZSh2aWRlbykgPT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5n
RnVsbHNjcmVlbiA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLnBhdXNlZCA9PSAnZmFs
c2UnKSBPSwogUlVOKHZpZGVvLnBhdXNlKCkpCiBFVkVOVChwYXVzZSkKIEVYUEVDVEVEICh2aWRl
by5wYXVzZWQgPT0gJ3RydWUnKSBPSwogUlVOKHZpZGVvLnBsYXkoKS50aGVuKHBsYXlpbmdBZ2Fp
bikpCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVv
KSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2Ny
ZWVuID09ICd0cnVlJykgT0sKIEVORCBPRiBURVNUCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcGF1c2UtaW5saW5lLmh0bWwgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXBhdXNlLWlubGluZS5odG1sCmluZGV4IDZlYTEwM2U4NjYw
ZjQ0OGIxYmJmNTk3ZGMzOWJjNzNkZDc2MTE3MWUuLmVhODI0MjM5ZGZiMzQ1NjViMjU2MjUzMGZk
MTc0Nzc0NzQ5ZTQ3NDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxz
Y3JlZW4tcGF1c2UtaW5saW5lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVs
bHNjcmVlbi1wYXVzZS1pbmxpbmUuaHRtbApAQCAtMzMsMTQgKzMzLDE2IEBACiAKICAgICBhc3lu
YyBmdW5jdGlvbiBwbGF5aW5nKCkKICAgICB7Ci0gICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2
ZW50dWFsbHkoJ3ZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuJywgdHJ1ZSk7CisgICAg
ICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoImludGVybmFscy5pc0NoYW5naW5nUHJl
c2VudGF0aW9uTW9kZSh2aWRlbykiLCBmYWxzZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlk
ZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCB0cnVlKTsKICAgICAgICAgd2FpdEZvckV2
ZW50T25jZSgnd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQnLCBlbmRmdWxsc2NyZWVuKTsK
ICAgICAgICAgcnVuKCd2aWRlby53ZWJraXRFeGl0RnVsbHNjcmVlbigpJyk7CiAgICAgfQogCiAg
ICAgYXN5bmMgZnVuY3Rpb24gZW5kZnVsbHNjcmVlbigpCiAgICAgewotICAgICAgICBhd2FpdCB0
ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbics
IGZhbHNlKTsKKyAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJuYWxz
LmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKKyAgICAgICAgdGVz
dEV4cGVjdGVkKCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIGZhbHNlKTsKICAg
ICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby5wYXVzZWQnLCBmYWxzZSk7CiAgICAgICAgIHdhaXRG
b3JFdmVudE9uY2UoJ3BhdXNlJywgcGF1c2VkKTsKICAgICAgICAgcnVuKCd2aWRlby5wYXVzZSgp
Jyk7CkBAIC01NCw3ICs1Niw4IEBACiAKICAgICBhc3luYyBmdW5jdGlvbiBwbGF5aW5nQWdhaW4o
KQogICAgIHsKLSAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8ud2Vi
a2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCB0cnVlKTsKKyAgICAgICAgYXdhaXQgdGVzdEV4cGVj
dGVkRXZlbnR1YWxseSgiaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVv
KSIsIGZhbHNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby53ZWJraXREaXNwbGF5aW5n
RnVsbHNjcmVlbicsIHRydWUpOwogICAgICAgICBlbmRUZXN0KCk7CiAgICAgfQogICAgIDwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1yZXR1
cm4tdG8taW5saW5lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxz
Y3JlZW4tcmV0dXJuLXRvLWlubGluZS1leHBlY3RlZC50eHQKaW5kZXggYWU4NzI5Y2ViODkxZjIy
ZTFlYzExOGQyNjAxOGUzOGYyODE3ZjBhZi4uNDQyZDEzMmQwZWQ0ZWUwOTJhMDFhNTkwMTVhMzE0
N2U4ZWJlNDFjYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVl
bi1yZXR1cm4tdG8taW5saW5lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
ZWRpYS1mdWxsc2NyZWVuLXJldHVybi10by1pbmxpbmUtZXhwZWN0ZWQudHh0CkBAIC01LDE2ICs1
LDIwIEBAIFJVTih2aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxlKCJ2aWRlbyIsICJjb250ZW50L3Rl
c3QiKSkKIEVWRU5UKGNhbnBsYXl0aHJvdWdoKQogUlVOKHZpZGVvLnBsYXkoKSkKIEVWRU5UKHdl
YmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkKQorRVhQRUNURUQgKGludGVybmFscy5pc0NoYW5n
aW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykgPT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2aWRl
by53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAndHJ1ZScpIE9LCiBSVU4odmlkZW8ud2Vi
a2l0RXhpdEZ1bGxzY3JlZW4oKSkKLUVWRU5UKHBhdXNlKQorRVZFTlQod2Via2l0cHJlc2VudGF0
aW9ubW9kZWNoYW5nZWQpCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRp
b25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3Bs
YXlpbmdGdWxsc2NyZWVuID09ICdmYWxzZScpIE9LCiBFWFBFQ1RFRCAodmlkZW8ucGF1c2VkID09
ICd0cnVlJykgT0sKIFJVTih2aWRlby5wbGF5KCkpCiBFVkVOVCh3ZWJraXRwcmVzZW50YXRpb25t
b2RlY2hhbmdlZCkKK0VYUEVDVEVEIChpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1v
ZGUodmlkZW8pID09ICdmYWxzZScpIE9LCiBFWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWlu
Z0Z1bGxzY3JlZW4gPT0gJ3RydWUnKSBPSwogUlVOKHZpZGVvLndlYmtpdEV4aXRGdWxsc2NyZWVu
KCkpCiBFVkVOVCh3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCkKK0VYUEVDVEVEIChpbnRl
cm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pID09ICdmYWxzZScpIE9LCiBF
WFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ2ZhbHNlJykgT0sK
IEVYUEVDVEVEICh2aWRlby5wYXVzZWQgPT0gJ2ZhbHNlJykgT0sKIEVORCBPRiBURVNUCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXJldHVybi10by1pbmxp
bmUuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcmV0dXJuLXRvLWlu
bGluZS5odG1sCmluZGV4IDkzMjIwZWRlZDNlZDQ2MTE2MjA5ZTg3NDhmZjQyMTE2Nzk1NDdiNTYu
LmQ4ZmU4NGQ5YTNiYTM1NTc5YmFjYjczMzMxNDI2NmMxMjc3YmYwZDQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcmV0dXJuLXRvLWlubGluZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcmV0dXJuLXRvLWlubGluZS5o
dG1sCkBAIC0zNCwxNCArMzQsMTYgQEAKIAogICAgIGFzeW5jIGZ1bmN0aW9uIGJlZ2luZnVsbHNj
cmVlbjEoKQogICAgIHsKLSAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlk
ZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCB0cnVlKTsKLSAgICAgICAgd2FpdEZvckV2
ZW50T25jZSgncGF1c2UnLCBwYXVzZSk7CisgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50
dWFsbHkoImludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykiLCBmYWxz
ZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3Jl
ZW4nLCB0cnVlKTsKKyAgICAgICAgd2FpdEZvckV2ZW50T25jZSgnd2Via2l0cHJlc2VudGF0aW9u
bW9kZWNoYW5nZWQnLCBlbmRmdWxsc2NyZWVuMSk7CiAgICAgICAgIHJ1bigndmlkZW8ud2Via2l0
RXhpdEZ1bGxzY3JlZW4oKScpOwogICAgIH0KIAotICAgIGFzeW5jIGZ1bmN0aW9uIHBhdXNlKCkK
KyAgICBhc3luYyBmdW5jdGlvbiBlbmRmdWxsc2NyZWVuMSgpCiAgICAgewotICAgICAgICBhd2Fp
dCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVl
bicsIGZhbHNlKTsKKyAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJu
YWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKKyAgICAgICAg
dGVzdEV4cGVjdGVkKCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIGZhbHNlKTsK
ICAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby5wYXVzZWQnLCB0cnVlKTsKIAogICAgICAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dzSW5saW5lTWVkaWFQbGF5YmFja0FmdGVyRnVsbHNj
cmVlbih0cnVlKTsKQEAgLTUyLDE0ICs1NCwxNiBAQAogCiAgICAgYXN5bmMgZnVuY3Rpb24gYmVn
aW5mdWxsc2NyZWVuMigpCiAgICAgewotICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVh
bGx5KCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIHRydWUpOwotICAgICAgICB3
YWl0Rm9yRXZlbnRPbmNlKCd3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCcsIGVuZGZ1bGxz
Y3JlZW4pOworICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCJpbnRlcm5hbHMu
aXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pIiwgZmFsc2UpOworICAgICAgICB0ZXN0
RXhwZWN0ZWQoJ3ZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuJywgdHJ1ZSk7CisgICAg
ICAgIHdhaXRGb3JFdmVudE9uY2UoJ3dlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkJywgZW5k
ZnVsbHNjcmVlbjIpOwogICAgICAgICBydW4oJ3ZpZGVvLndlYmtpdEV4aXRGdWxsc2NyZWVuKCkn
KTsKICAgICB9CiAKLSAgICBhc3luYyBmdW5jdGlvbiBlbmRmdWxsc2NyZWVuKCkKKyAgICBhc3lu
YyBmdW5jdGlvbiBlbmRmdWxsc2NyZWVuMigpCiAgICAgewotICAgICAgICBhd2FpdCB0ZXN0RXhw
ZWN0ZWRFdmVudHVhbGx5KCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIGZhbHNl
KTsKKyAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJuYWxzLmlzQ2hh
bmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKKyAgICAgICAgdGVzdEV4cGVj
dGVkKCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIGZhbHNlKTsKICAgICAgICAg
dGVzdEV4cGVjdGVkKCd2aWRlby5wYXVzZWQnLCBmYWxzZSk7CiAgICAgICAgIGVuZFRlc3QoKTsK
ICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWlubGluZS10by1mdWxsc2NyZWVu
LXRvLXBpcC10by1pbmxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJvbGxlci1pbmxpbmUt
dG8tZnVsbHNjcmVlbi10by1waXAtdG8taW5saW5lLWV4cGVjdGVkLnR4dAppbmRleCA1MmU0MjIx
OGZkZWEyNmMzMjViNWEwMDhkMjZjNzMyODAwZTczNGQzLi4yNjlhMTJmNzA2NGJlNmQyZDBmOTRk
YmIzOTg4OGQ2ODQ5OTk0NjYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWlubGluZS10
by1mdWxsc2NyZWVuLXRvLXBpcC10by1pbmxpbmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNv
bnRyb2xsZXItaW5saW5lLXRvLWZ1bGxzY3JlZW4tdG8tcGlwLXRvLWlubGluZS1leHBlY3RlZC50
eHQKQEAgLTgsMTggKzgsMTggQEAgUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5tZWRp
YS1jb250cm9scycpLmNsYXNzTGlzdC5jb250YWlucygnaW5saW5lJykgaXMKIE1lZGlhIHN0YXJ0
ZWQgcGxheWluZywgd2UgcGF1c2UgaXQgYW5kIGVudGVyIGZ1bGxzY3JlZW4gYnkgY2xpY2tpbmcg
b24gdGhlIG1hdGNoaW5nIGJ1dHRvbi4KIAogTWVkaWEgcmVjZWl2ZWQgYSB3ZWJraXRwcmVzZW50
YXRpb25tb2RlY2hhbmdlZCBldmVudCwgbWVkaWEud2Via2l0UHJlc2VudGF0aW9uTW9kZSA9IGZ1
bGxzY3JlZW4uCi1QQVNTIG1lZGlhLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIGJlY2FtZSB0
cnVlCitQQVNTIGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZShtZWRpYSkgYmVj
YW1lIGZhbHNlCiBQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLm1lZGlhLWNvbnRyb2xz
JykuY2xhc3NMaXN0LmNvbnRhaW5zKCdmdWxsc2NyZWVuJykgaXMgdHJ1ZQogCiBXZSBlbnRlciBw
aWN0dXJlLWluLXBpY3R1cmUgYnkgY2xpY2tpbmcgb24gdGhlIG1hdGNoaW5nIGJ1dHRvbi4KIAog
TWVkaWEgcmVjZWl2ZWQgYSB3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCBldmVudCwgbWVk
aWEud2Via2l0UHJlc2VudGF0aW9uTW9kZSA9IHBpY3R1cmUtaW4tcGljdHVyZS4KLVBBU1MgbWVk
aWEud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gYmVjYW1lIHRydWUKK1BBU1MgaW50ZXJuYWxz
LmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKG1lZGlhKSBiZWNhbWUgZmFsc2UKIAogV2UgZXhp
dCBwaWN0dXJlLWluLXBpY3R1cmUuCiAKIE1lZGlhIHJlY2VpdmVkIGEgd2Via2l0cHJlc2VudGF0
aW9ubW9kZWNoYW5nZWQgZXZlbnQsIG1lZGlhLndlYmtpdFByZXNlbnRhdGlvbk1vZGUgPSBpbmxp
bmUuCi1QQVNTIG1lZGlhLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIGJlY2FtZSBmYWxzZQor
UEFTUyBpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUobWVkaWEpIGJlY2FtZSBm
YWxzZQogUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5tZWRpYS1jb250cm9scycpLmNs
YXNzTGlzdC5jb250YWlucygnaW5saW5lJykgaXMgdHJ1ZQogCiBQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWlubGluZS10by1mdWxs
c2NyZWVuLXRvLXBpcC10by1pbmxpbmUuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItaW5saW5lLXRv
LWZ1bGxzY3JlZW4tdG8tcGlwLXRvLWlubGluZS5odG1sCmluZGV4IDRkNjE3NjZmZDhhMWVlYzY1
MTJhMWQ1NDc1ODhlZjUwNWE3Njc1NWYuLjMxZjY3ZThhMGRhNTdkY2NlYWYxY2EyYmFiYjYxYjZj
M2VhNjBmYmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItaW5saW5lLXRvLWZ1bGxzY3Jl
ZW4tdG8tcGlwLXRvLWlubGluZS5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItaW5saW5lLXRv
LWZ1bGxzY3JlZW4tdG8tcGlwLXRvLWlubGluZS5odG1sCkBAIC0yNiw0NiArMjYsNDIgQEAgbWVk
aWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKICAgICB3aW5kb3cucmVxdWVzdEFu
aW1hdGlvbkZyYW1lKCgpID0+IGNsaWNrT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cigiYnV0dG9uLmZ1bGxzY3JlZW4iKSkpOwogfSk7CiAKLWxldCBwcmV2aW91c1ByZXNlbnRhdGlv
bk1vZGUgPSBtZWRpYS53ZWJraXRQcmVzZW50YXRpb25Nb2RlOwotbWVkaWEuYWRkRXZlbnRMaXN0
ZW5lcigid2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQiLCAoKSA9PiB7Ci0gICAgaWYgKHBy
ZXZpb3VzUHJlc2VudGF0aW9uTW9kZSA9PT0gbWVkaWEud2Via2l0UHJlc2VudGF0aW9uTW9kZSkK
LSAgICAgICAgcmV0dXJuOwotCittZWRpYS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRwcmVzZW50
YXRpb25tb2RlY2hhbmdlZCIsIGFzeW5jICgpID0+IHsKICAgICBkZWJ1ZygiIik7CiAgICAgZGVi
dWcoYE1lZGlhIHJlY2VpdmVkIGEgd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQgZXZlbnQs
IG1lZGlhLndlYmtpdFByZXNlbnRhdGlvbk1vZGUgPSAke21lZGlhLndlYmtpdFByZXNlbnRhdGlv
bk1vZGV9LmApOwogCi0gICAgbGV0IGRpc3BsYXlpbmdGdWxsc2NyZWVuID0gInRydWUiOwotICAg
IGlmIChtZWRpYS53ZWJraXRQcmVzZW50YXRpb25Nb2RlID09ICJpbmxpbmUiKQotICAgICAgICBk
aXNwbGF5aW5nRnVsbHNjcmVlbiA9ICJmYWxzZSI7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAg
ICAgICAgICAgc2V0VGltZW91dChyZWplY3QsIDIwMDApOworICAgICAgICAgICAgc2hvdWxkQmVj
b21lRXF1YWwoImludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZShtZWRpYSkiLCAi
ZmFsc2UiLCByZXNvbHZlKTsKKyAgICAgICAgfSk7CisgICAgfQogCi0gICAgc2hvdWxkQmVjb21l
RXF1YWwoIm1lZGlhLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIiwgZGlzcGxheWluZ0Z1bGxz
Y3JlZW4sICgpID0+IHsKLSAgICAgICAgcHJldmlvdXNQcmVzZW50YXRpb25Nb2RlID0gbWVkaWEu
d2Via2l0UHJlc2VudGF0aW9uTW9kZTsKLSAgICAgICAgc3dpdGNoIChtZWRpYS53ZWJraXRQcmVz
ZW50YXRpb25Nb2RlKSB7Ci0gICAgICAgIGNhc2UgImZ1bGxzY3JlZW4iOgotICAgICAgICAgICAg
d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAgICAgICAgICAgc2hv
dWxkQmVUcnVlKCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5tZWRpYS1jb250cm9scycpLmNs
YXNzTGlzdC5jb250YWlucygnZnVsbHNjcmVlbicpIik7CisgICAgc3dpdGNoIChtZWRpYS53ZWJr
aXRQcmVzZW50YXRpb25Nb2RlKSB7CisgICAgY2FzZSAiZnVsbHNjcmVlbiI6CisgICAgICAgIHdp
bmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgICAgICAgICAgc2hvdWxkQmVU
cnVlKCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5tZWRpYS1jb250cm9scycpLmNsYXNzTGlz
dC5jb250YWlucygnZnVsbHNjcmVlbicpIik7CiAKLSAgICAgICAgICAgICAgICBkZWJ1ZygiIik7
Ci0gICAgICAgICAgICAgICAgZGVidWcoIldlIGVudGVyIHBpY3R1cmUtaW4tcGljdHVyZSBieSBj
bGlja2luZyBvbiB0aGUgbWF0Y2hpbmcgYnV0dG9uLiIpOwotICAgICAgICAgICAgICAgIGNsaWNr
T25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnBpcCIpKTsKLSAgICAg
ICAgICAgIH0pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgInBpY3R1cmUtaW4t
cGljdHVyZSI6CiAgICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICBkZWJ1ZygiV2Ug
ZXhpdCBwaWN0dXJlLWluLXBpY3R1cmUuIik7Ci0gICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91
dCgoKSA9PiBtZWRpYS53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCJpbmxpbmUiKSk7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAiaW5saW5lIjoKLSAgICAgICAgICAgIHdpbmRv
dy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewotICAgICAgICAgICAgICAgIHNob3VsZEJl
VHJ1ZSgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcubWVkaWEtY29udHJvbHMnKS5jbGFzc0xp
c3QuY29udGFpbnMoJ2lubGluZScpIik7CisgICAgICAgICAgICBkZWJ1ZygiV2UgZW50ZXIgcGlj
dHVyZS1pbi1waWN0dXJlIGJ5IGNsaWNraW5nIG9uIHRoZSBtYXRjaGluZyBidXR0b24uIik7Cisg
ICAgICAgICAgICBjbGlja09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRv
bi5waXAiKSk7CisgICAgICAgIH0pOworICAgICAgICBicmVhazsKKyAgICBjYXNlICJwaWN0dXJl
LWluLXBpY3R1cmUiOgorICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgIGRlYnVnKCJXZSBleGl0
IHBpY3R1cmUtaW4tcGljdHVyZS4iKTsKKyAgICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4g
bWVkaWEud2Via2l0U2V0UHJlc2VudGF0aW9uTW9kZSgiaW5saW5lIikpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlICJpbmxpbmUiOgorICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZy
YW1lKCgpID0+IHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgic2hhZG93Um9vdC5xdWVyeVNl
bGVjdG9yKCcubWVkaWEtY29udHJvbHMnKS5jbGFzc0xpc3QuY29udGFpbnMoJ2lubGluZScpIik7
CiAKLSAgICAgICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICAgICAgbWVkaWEucmVt
b3ZlKCk7Ci0gICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfSk7CisgICAgICAgICAgICBkZWJ1
ZygiIik7CisgICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKKyAgICAgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgICAgICB9KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogfSk7CiAKIGZ1bmN0
aW9uIGNsaWNrT25FbGVtZW50KGVsZW1lbnQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS9wcmVzZW50YXRpb25tb2RlY2hhbmdlZC1maXJlZC1vbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL21lZGlhL3ByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkLWZpcmVkLW9uY2UtZXhwZWN0ZWQu
dHh0CmluZGV4IGExOGU4YmI4NmVlMzdjMjM5Yjg3NjkyZDE4MDFhODVkMmIwZTJkOWMuLmRlNGNh
NWJjYTQ2MjliOGU4Mzk4YTJmNTllY2QzYjBjNGMzNDgyOWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL21lZGlhL3ByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkLWZpcmVkLW9uY2UtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkLWZpcmVkLW9u
Y2UtZXhwZWN0ZWQudHh0CkBAIC01LDcgKzUsNyBAQCBFVkVOVChjYW5wbGF5dGhyb3VnaCkKIFJV
Tih2aWRlby5wbGF5KCkpCiBSVU4odmlkZW8ud2Via2l0U2V0UHJlc2VudGF0aW9uTW9kZSgicGlj
dHVyZS1pbi1waWN0dXJlIikpCiBFVkVOVCh3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCkK
LUVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAndHJ1ZScpIE9L
CitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9
PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUgPT0g
J3BpY3R1cmUtaW4tcGljdHVyZScpIE9LCiBSVU4odmlkZW8ud2Via2l0U2V0UHJlc2VudGF0aW9u
TW9kZSgiaW5saW5lIikpCiBFVkVOVCh3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkLWZpcmVk
LW9uY2UuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3ByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkLWZp
cmVkLW9uY2UuaHRtbAppbmRleCA1MzhiZDEyN2JjOTFhOTk5MGE1MDdjOTI0ZjNjYmI1NDMxYWE0
N2Q0Li5jMmI1ZDZjMWM2MzU5OGQ0MWM0ZDlhNWNhYTAyN2I0MTU0ODEzMzU1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9tZWRpYS9wcmVzZW50YXRpb25tb2RlY2hhbmdlZC1maXJlZC1vbmNlLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvcHJlc2VudGF0aW9ubW9kZWNoYW5nZWQtZmlyZWQt
b25jZS5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAKICAgICAgICAgYXN5bmMgZnVuY3Rpb24gcHJl
c2VudGF0aW9uTW9kZUNoYW5nZWQxKCkKICAgICAgICAgewotICAgICAgICAgICAgYXdhaXQgdGVz
dEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCB0
cnVlKTsKKyAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoImludGVybmFs
cy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykiLCBmYWxzZSk7CiAgICAgICAgICAg
ICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUiLCAicGljdHVyZS1p
bi1waWN0dXJlIik7CiAgICAgICAgICAgICBydW5XaXRoS2V5RG93bigndmlkZW8ud2Via2l0U2V0
UHJlc2VudGF0aW9uTW9kZSgiaW5saW5lIiknKTsKICAgICAgICAgICAgIHdhaXRGb3JFdmVudCgi
d2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQiLCBwcmVzZW50YXRpb25Nb2RlQ2hhbmdlZDIp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tZnVsbHNjcmVlbi1vbmx5LXBs
YXliYWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWZ1bGxzY3JlZW4t
b25seS1wbGF5YmFjay1leHBlY3RlZC50eHQKaW5kZXggYzE3MmI1MmVmNDY0NDMzZDI5ODhlOTYz
Njk5MzcxMWYxYzgzMzMwZS4uMzM1YzViMmUwNmVlMjVjMWQ5ZjU5ZGZiOTk0MDk5NGM4MzEzMzhk
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tZnVsbHNjcmVlbi1vbmx5LXBs
YXliYWNrLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1mdWxsc2Ny
ZWVuLW9ubHktcGxheWJhY2stZXhwZWN0ZWQudHh0CkBAIC03LDEzICs3LDE2IEBAIEVYUEVDVEVE
ICh2aWRlby53ZWJraXRTdXBwb3J0c0Z1bGxzY3JlZW4gPT0gJ3RydWUnKSBPSwogRVhQRUNURUQg
KHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICdmYWxzZScpIE9LCiBSVU4odmlk
ZW8ucGxheSgpKQogRVZFTlQocGxheWluZykKLUVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5
aW5nRnVsbHNjcmVlbiA9PSAndHJ1ZScpIE9LCiAKLSoqIEVudGVyZWQgZnVsbHNjcmVlbgorKiog
U3RhcnRlZCBwbGF5aW5nCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRp
b25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3Bs
YXlpbmdGdWxsc2NyZWVuID09ICd0cnVlJykgT0sKIFJVTih2aWRlby53ZWJraXRFeGl0RnVsbFNj
cmVlbigpKQogRVZFTlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQpCi1FWFBFQ1RFRCAo
dmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ2ZhbHNlJykgT0sKIAotKiogRXhp
dGVkIGZ1bGxzY3JlZW4KKyoqIFJlY2VpdmVkIHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2Vk
IGV2ZW50CitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZp
ZGVvKSA9PSAnZmFsc2UnKSBPSworRXhpdGVkIGZ1bGxzY3JlZW4KK0VYUEVDVEVEICh2aWRlby53
ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAnZmFsc2UnKSBPSwogRU5EIE9GIFRFU1QKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tZnVsbHNjcmVlbi1vbmx5LXBsYXli
YWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1mdWxsc2NyZWVuLW9ubHktcGxheWJh
Y2suaHRtbAppbmRleCBjM2FjYTNhMDQ2YzRlYmJjMzU3YzliZjU4OGY0N2Y3ZmVkNGI2ZDcxLi40
Nzg4OWE2MTMzNWIyNDE3ZjU5ZjY3YmUwMjRjZWY0NGRmMmM5M2MzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9tZWRpYS92aWRlby1mdWxsc2NyZWVuLW9ubHktcGxheWJhY2suaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9tZWRpYS92aWRlby1mdWxsc2NyZWVuLW9ubHktcGxheWJhY2suaHRtbApAQCAt
NDAsMTYgKzQwLDE5IEBACiAKICAgICAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHBsYXlpbmcoKQog
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFs
bHkoInZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIiwgdHJ1ZSk7Ci0gICAgICAgICAg
ICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogRW50ZXJlZCBmdWxsc2NyZWVuIik7CisgICAgICAg
ICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogU3RhcnRlZCBwbGF5aW5nIik7CisgICAgICAg
ICAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJuYWxzLmlzQ2hhbmdp
bmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0ZXN0
RXhwZWN0ZWQoInZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIiwgdHJ1ZSk7CiAgICAg
ICAgICAgICAgICAgd2FpdEZvckV2ZW50T25jZSgnd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5n
ZWQnLCBlbmRmdWxsc2NyZWVuKTsKICAgICAgICAgICAgICAgICBydW4oInZpZGVvLndlYmtpdEV4
aXRGdWxsU2NyZWVuKCkiKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgYXN5bmMgZnVu
Y3Rpb24gZW5kZnVsbHNjcmVlbigpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgYXdh
aXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgidmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3Jl
ZW4iLCBmYWxzZSk7Ci0gICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogRXhpdGVk
IGZ1bGxzY3JlZW4iKTsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4qKiBSZWNl
aXZlZCB3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCBldmVudCIpOworICAgICAgICAgICAg
ICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoImludGVybmFscy5pc0NoYW5naW5nUHJl
c2VudGF0aW9uTW9kZSh2aWRlbykiLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgY29uc29sZVdy
aXRlKCJFeGl0ZWQgZnVsbHNjcmVlbiIpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgi
dmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4iLCBmYWxzZSk7CiAgICAgICAgICAgICAg
ICAgZW5kVGVzdCgpOwogICAgICAgICAgICAgfQogICAgICAgICA8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXBsYXlzaW5saW5lLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL21lZGlhL3ZpZGVvLXBsYXlzaW5saW5lLWV4cGVjdGVkLnR4dAppbmRleCAwNDE0
NTczZjBjNDZjZDczZmNlMjQ0OGVkNjljOWZmOGQ1MThmY2FhLi41ZWRjYWQxN2M2OGQzMjhhNDRj
NDcxMTFiOGQwMjg5YjlhOWI5MWMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRl
by1wbGF5c2lubGluZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8t
cGxheXNpbmxpbmUtZXhwZWN0ZWQudHh0CkBAIC0zLDYgKzMsNyBAQCBSVU4odmlkZW8ucGxheXNJ
bmxpbmUgPSBmYWxzZSkKIEVWRU5UKGNhbnBsYXl0aHJvdWdoKQogUlVOKHZpZGVvLnBsYXkoKSkK
IEVWRU5UKHBsYXlpbmcpCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRp
b25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3Bs
YXlpbmdGdWxsc2NyZWVuID09ICd0cnVlJykgT0sKIFJVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
SW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUodHJ1ZSkpCiBS
VU4odmlkZW8ucGxheXNJbmxpbmUgPSB0cnVlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVk
aWEvdmlkZW8tcGxheXNpbmxpbmUuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXBsYXlz
aW5saW5lLmh0bWwKaW5kZXggZmE2YTczMTI0NGQ5NzBiM2M5MmRkYTViNjBiOGQ3MjkyNDlmNTFk
Yi4uZDA5ZDRjYzVkNDIyYzliODI2OWNhZDRjNjI2M2Q0MmZjMjJkMTliZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcGxheXNpbmxpbmUuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9tZWRpYS92aWRlby1wbGF5c2lubGluZS5odG1sCkBAIC0zMCw3ICszMCwxMCBAQCBmdW5jdGlv
biB0ZXN0UGxheXNJbmxpbmUocmVxdWlyZXNQbGF5c0lubGluZSwgaGFzUGxheXNJbmxpbmUsIGV4
cGVjdGVkRGlzcGxheWluZwogICAgICAgICAgICAgcnVuKCd2aWRlby5wbGF5KCknKTsKICAgICAg
ICAgfSk7CiAgICAgfSkKLSAgICB3YWl0Rm9yRXZlbnRPbmNlKCdwbGF5aW5nJywgKCkgPT4gewor
ICAgIHdhaXRGb3JFdmVudE9uY2UoJ3BsYXlpbmcnLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGlm
IChleHBlY3RlZERpc3BsYXlpbmdGdWxsc2NyZWVuKQorICAgICAgICAgICAgYXdhaXQgdGVzdEV4
cGVjdGVkRXZlbnR1YWxseSgnaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZp
ZGVvKScsIGZhbHNlKTsKKwogICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLndlYmtpdERpc3Bs
YXlpbmdGdWxsc2NyZWVuJywgZXhwZWN0ZWREaXNwbGF5aW5nRnVsbHNjcmVlbik7CiAgICAgICAg
IGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodmlkZW8pOwogICAgICAgICBydW5OZXh0VGVzdCgp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUt
ZXhwZWN0ZWQudHh0CmluZGV4IDFkN2RiMDI4MjQ5OWQzOTMwOWFmYTIwZDllYzc1ZDFjOGEyNTEz
NTkuLmFiYTlmNDUzNjAwYWU3OGVmYTVjYmVmYzk1OWQ4NmEyMzI5NzZkN2UgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1wcmVzZW50YXRpb24tbW9kZS1leHBlY3RlZC50
eHQKQEAgLTQsMzAgKzQsMzAgQEAgVGVzdCB0aGUgdmlkZW8gcHJlc2VudGF0aW9uIG1vZGUgKHZp
ZGVvIGZ1bGxzY3JlZW4gYW5kIHBpY3R1cmUtaW4tcGljdHVyZSkgQVBJLgogCiBFVkVOVChjYW5w
bGF5dGhyb3VnaCkKIEVYUEVDVEVEICh2aWRlby53ZWJraXRTdXBwb3J0c0Z1bGxzY3JlZW4gPT0g
J3RydWUnKSBPSwotRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuID09
ICdmYWxzZScpIE9LCitFWFBFQ1RFRCAodmlkZW8ud2Via2l0UHJlc2VudGF0aW9uTW9kZSA9PSAn
aW5saW5lJykgT0sKIAogKiogVHJ5IHRvIGVudGVyIGZ1bGxzY3JlZW4KIFJVTih2aWRlby53ZWJr
aXRTZXRQcmVzZW50YXRpb25Nb2RlKCdmdWxsc2NyZWVuJykpCiBFVkVOVCh3ZWJraXRwcmVzZW50
YXRpb25tb2RlY2hhbmdlZCkKLUVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNj
cmVlbiA9PSAndHJ1ZScpIE9LCiAKLSoqIEVudGVyZWQgZnVsbHNjcmVlbgorKiogUmVjZWl2ZWQg
d2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQgZXZlbnQKK0VYUEVDVEVEIChpbnRlcm5hbHMu
aXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pID09ICdmYWxzZScpIE9LCiBFWFBFQ1RF
RCAodmlkZW8ud2Via2l0UHJlc2VudGF0aW9uTW9kZSA9PSAnZnVsbHNjcmVlbicpIE9LCiAKICoq
IFRyeSB0byBlbnRlciBwaWN0dXJlLWluLXBpY3R1cmUKIFJVTih2aWRlby53ZWJraXRTZXRQcmVz
ZW50YXRpb25Nb2RlKCdwaWN0dXJlLWluLXBpY3R1cmUnKSkKIEVWRU5UKHdlYmtpdHByZXNlbnRh
dGlvbm1vZGVjaGFuZ2VkKQotRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2Ny
ZWVuID09ICd0cnVlJykgT0sKIAotKiogRW50ZXJlZCBwaWN0dXJlLWluLXBpY3R1cmUKKyoqIFJl
Y2VpdmVkIHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIGV2ZW50CitFWFBFQ1RFRCAoaW50
ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwog
RVhQRUNURUQgKHZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUgPT0gJ3BpY3R1cmUtaW4tcGlj
dHVyZScpIE9LCiAKICoqIFRyeSB0byByZXR1cm4gdG8gaW5saW5lCiBSVU4odmlkZW8ud2Via2l0
U2V0UHJlc2VudGF0aW9uTW9kZSgnaW5saW5lJykpCiBFVkVOVCh3ZWJraXRwcmVzZW50YXRpb25t
b2RlY2hhbmdlZCkKLUVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9
PSAnZmFsc2UnKSBPSwogCi0qKiBSZXR1cm5lZCB0byBpbmxpbmUKKyoqIFJlY2VpdmVkIHdlYmtp
dHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIGV2ZW50CitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hh
bmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZp
ZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUgPT0gJ2lubGluZScpIE9LCiAKICoqIFRlc3QgQ29t
cGxldGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1wcmVzZW50YXRpb24t
bW9kZS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUuaHRt
bAppbmRleCAzMDU2ZDE1ZTFhOWMyZDFjYWZjYjFlMGUyOGNmYTRiN2I5Nzc2NGQ4Li5mMTA1Yzg1
NTBjOTA1Mjk3ODQyMGQ0ZjU1MjIzNDdmMmE2NGFiZjEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9tZWRpYS92aWRlby1wcmVzZW50YXRpb24tbW9kZS5odG1sCisrKyBiL0xheW91dFRlc3RzL21l
ZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLmh0bWwKQEAgLTIxLDcgKzIxLDcgQEAKICAgICAg
ICAgICAgIGFzeW5jIGZ1bmN0aW9uIGNhbnBsYXl0aHJvdWdoKCkKICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdFN1cHBvcnRzRnVsbHNjcmVl
biIsIHRydWUpOwotICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHko
J3ZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuJywgZmFsc2UpOworICAgICAgICAgICAg
ICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ud2Via2l0UHJlc2VudGF0aW9uTW9kZSIsICJpbmxpbmUi
KTsKIAogICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIFRyeSB0byBlbnRlciBm
dWxsc2NyZWVuIik7CiAgICAgICAgICAgICAgICAgcnVuV2l0aEtleURvd24oInZpZGVvLndlYmtp
dFNldFByZXNlbnRhdGlvbk1vZGUoJ2Z1bGxzY3JlZW4nKSIpOwpAQCAtMzAsOCArMzAsOCBAQAog
CiAgICAgICAgICAgICBhc3luYyBmdW5jdGlvbiBwcmVzZW50YXRpb25Nb2RlQ2hhbmdlZDEoKQog
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFs
bHkoJ3ZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuJywgdHJ1ZSk7Ci0gICAgICAgICAg
ICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogRW50ZXJlZCBmdWxsc2NyZWVuIik7CisgICAgICAg
ICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogUmVjZWl2ZWQgd2Via2l0cHJlc2VudGF0aW9u
bW9kZWNoYW5nZWQgZXZlbnQiKTsKKyAgICAgICAgICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRF
dmVudHVhbGx5KCJpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pIiwg
ZmFsc2UpOwogICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ud2Via2l0UHJlc2Vu
dGF0aW9uTW9kZSIsICJmdWxsc2NyZWVuIik7CiAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRl
KCI8YnI+KiogVHJ5IHRvIGVudGVyIHBpY3R1cmUtaW4tcGljdHVyZSIpOwogICAgICAgICAgICAg
ICAgIHdhaXRGb3JFdmVudE9uY2UoJ3dlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkJywgcHJl
c2VudGF0aW9uTW9kZUNoYW5nZWQyKTsKQEAgLTQwLDggKzQwLDggQEAKIAogICAgICAgICAgICAg
YXN5bmMgZnVuY3Rpb24gcHJlc2VudGF0aW9uTW9kZUNoYW5nZWQyKCkKICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby53ZWJr
aXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIHRydWUpOwotICAgICAgICAgICAgICAgIGNvbnNvbGVX
cml0ZSgiPGJyPioqIEVudGVyZWQgcGljdHVyZS1pbi1waWN0dXJlIik7CisgICAgICAgICAgICAg
ICAgY29uc29sZVdyaXRlKCI8YnI+KiogUmVjZWl2ZWQgd2Via2l0cHJlc2VudGF0aW9ubW9kZWNo
YW5nZWQgZXZlbnQiKTsKKyAgICAgICAgICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVh
bGx5KCJpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pIiwgZmFsc2Up
OwogICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ud2Via2l0UHJlc2VudGF0aW9u
TW9kZSIsICJwaWN0dXJlLWluLXBpY3R1cmUiKTsKICAgICAgICAgICAgICAgICBjb25zb2xlV3Jp
dGUoIjxicj4qKiBUcnkgdG8gcmV0dXJuIHRvIGlubGluZSIpOwogICAgICAgICAgICAgICAgIHdh
aXRGb3JFdmVudE9uY2UoJ3dlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkJywgdGVzdENvbXBs
ZXRlZCk7CkBAIC01MCw4ICs1MCw4IEBACiAKICAgICAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHRl
c3RDb21wbGV0ZWQoKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RF
eHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuJywgZmFs
c2UpOwotICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIFJldHVybmVkIHRvIGlu
bGluZSIpOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIFJlY2VpdmVkIHdl
YmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIGV2ZW50Iik7CisgICAgICAgICAgICAgICAgYXdh
aXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRp
b25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZp
ZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUiLCAiaW5saW5lIik7CiAgICAgICAgICAgICAgICAg
Y29uc29sZVdyaXRlKCI8YnI+KiogVGVzdCBDb21wbGV0ZWQiKTsKICAgICAgICAgICAgICAgICBl
bmRUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby13ZWJraXQtcGxh
eXNpbmxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8td2Via2l0LXBs
YXlzaW5saW5lLWV4cGVjdGVkLnR4dAppbmRleCA5Njc0ODk1NmU4YjM2ODRiZmRiZDU4YmJhNjM1
ZTdjNjljMTc5Njg0Li4wOTM5N2U5MmZiOGM5NmUyYzQ4Njc1M2EwODI1ZGExNjM5ZTcxNWQ1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby13ZWJraXQtcGxheXNpbmxpbmUtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXdlYmtpdC1wbGF5c2lubGlu
ZS1leHBlY3RlZC50eHQKQEAgLTMsMTIgKzMsMTQgQEAgUlVOKHZpZGVvLnJlbW92ZUF0dHJpYnV0
ZSgid2Via2l0LXBsYXlzaW5saW5lIiwgIiIpKQogRVZFTlQoY2FucGxheXRocm91Z2gpCiBSVU4o
dmlkZW8ucGxheSgpKQogRVZFTlQocGxheWluZykKK0VYUEVDVEVEIChpbnRlcm5hbHMuaXNDaGFu
Z2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pID09ICdmYWxzZScpIE9LCiBFWFBFQ1RFRCAodmlk
ZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ3RydWUnKSBPSwogUlVOKGludGVybmFs
cy5zZXR0aW5ncy5zZXRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJp
YnV0ZSh0cnVlKSkKIFJVTih2aWRlby5zZXRBdHRyaWJ1dGUoIndlYmtpdC1wbGF5c2lubGluZSIs
ICIiKSkKIEVWRU5UKGNhbnBsYXl0aHJvdWdoKQogUlVOKHZpZGVvLnBsYXkoKSkKIEVWRU5UKHBs
YXlpbmcpCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZp
ZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxs
c2NyZWVuID09ICd0cnVlJykgT0sKIFJVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SW5saW5lTWVk
aWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUoZmFsc2UpKQogUlVOKHZpZGVv
LnJlbW92ZUF0dHJpYnV0ZSgid2Via2l0LXBsYXlzaW5saW5lIiwgIiIpKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8td2Via2l0LXBsYXlzaW5saW5lLmh0bWwgYi9MYXlvdXRU
ZXN0cy9tZWRpYS92aWRlby13ZWJraXQtcGxheXNpbmxpbmUuaHRtbAppbmRleCA3ZWQ5NWY0ODgw
NWZkMzA2Y2U2MjgyMjJhNWFiNDRiNmYxYmFjYTM1Li5hYjczMGIwMzJiNDhmZTlmNTliZjYzMjcx
YzNkYjQzMjNjMzI0OWVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby13ZWJr
aXQtcGxheXNpbmxpbmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby13ZWJraXQt
cGxheXNpbmxpbmUuaHRtbApAQCAtMzAsNyArMzAsMTAgQEAgZnVuY3Rpb24gdGVzdFBsYXlzSW5s
aW5lKHJlcXVpcmVzUGxheXNJbmxpbmUsIGhhc1dlYmtpdFBsYXlzSW5saW5lLCBleHBlY3RlZERp
c3AKICAgICAgICAgICAgIHJ1bigndmlkZW8ucGxheSgpJyk7CiAgICAgICAgIH0pOwogICAgIH0p
Ci0gICAgd2FpdEZvckV2ZW50T25jZSgncGxheWluZycsICgpID0+IHsKKyAgICB3YWl0Rm9yRXZl
bnRPbmNlKCdwbGF5aW5nJywgYXN5bmMgKCkgPT4geworICAgICAgICBpZiAoZXhwZWN0ZWREaXNw
bGF5aW5nRnVsbHNjcmVlbikKKyAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFs
bHkoJ2ludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbyknLCBmYWxzZSk7
CisKICAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVl
bicsIGV4cGVjdGVkRGlzcGxheWluZ0Z1bGxzY3JlZW4pOwogICAgICAgICBkb2N1bWVudC5ib2R5
LnJlbW92ZUNoaWxkKHZpZGVvKTsKICAgICAgICAgcnVuTmV4dFRlc3QoKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZDIyNWFjNjk0NGI1OWRjN2E2NGFm
YmVmOTIxNGY0Y2Y3N2Y2NDY5ZS4uNzY5NDVhZTMwMmYzMDc5NjJkMzg0NTEzMzBiY2QxMzhjNGQ0
ZTE1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE0
NjAsOCArMTQ2MCw2IEBAIHdlYmtpdC5vcmcvYi8xODM0OTAgbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL21lZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJvbGxlCiB3ZWJraXQub3JnL2IvMTgz
NDkwIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNv
bnRyb2xsZXItZnVsbHNjcmVlbi1jaGFuZ2UuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9i
LzE4MzQ5MCBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxlci9tZWRp
YS1jb250cm9sbGVyLWlubGluZS10by1mdWxsc2NyZWVuLXRvLWlubGluZS5odG1sIFsgRmFpbHVy
ZSBdCiB3ZWJraXQub3JnL2IvMTgzNDkwIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9zdGFy
dC1zdXBwb3J0L3N0YXJ0LXN1cHBvcnQtZnVsbHNjcmVlbi5odG1sIFsgRmFpbHVyZSBdCi13ZWJr
aXQub3JnL2IvMTgzNDkwIG1lZGlhL3ZpZGVvLXBsYXlzaW5saW5lLmh0bWwgWyBGYWlsdXJlIF0K
LXdlYmtpdC5vcmcvYi8xODM0OTAgbWVkaWEvdmlkZW8td2Via2l0LXBsYXlzaW5saW5lLmh0bWwg
WyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzE4Mzc2NCBmYXN0L2Nzcy9hcHBsZS1zeXN0ZW0t
Y29udHJvbC1jb2xvcnMuaHRtbCBbIFBhc3MgXQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411804</attachid>
            <date>2020-10-19 15:09:39 -0700</date>
            <delta_ts>2020-10-21 13:50:32 -0700</delta_ts>
            <desc>Rebase the patch</desc>
            <filename>bug-216426-20201019150939.patch</filename>
            <type>text/plain</type>
            <size>64744</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NjY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2UyZDFlODEwMzIyZDFl
MWI4NWZiMTZkNWQwZjQ1ZGY4NmI5MjZjMS4uNmQ1MGQ4NjE0MzlhZmE4NTc5NWZlMzlkNDNlN2Uw
OTQ0ZDA1NThlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDIwLTEwLTE5ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgTGV0IHdlYmtpdERpc3BsYXlp
bmdGdWxsc2NyZWVuKCkgcmV0dXJuIHRydWUgd2hlbiBhIHZpZGVvIGVsZW1lbnTigJlzIGZ1bGxz
Y3JlZW4gbW9kZSBpcyBub3QgVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjQyNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggbW92ZXMgbV9jaGFu
Z2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgb2YgSFRNTFZpZGVvRWxlbWVudCB0byBIVE1MTWVkaWFF
bGVtZW50LgorICAgICAgICBUaGUgZmxhZyBpcyB1c2VkIHRvIHByb3RlY3QgaW50ZXJmYWNlcyBy
ZWdhcmRpbmcgdmlkZW8gcHJlc2VudGF0aW9uIG1vZGUgY2hhbmdlcy4KKyAgICAgICAgSXQgYWxz
byBndWFyZHMgdGhlIGNvZGUgcGF0aCB3aGVuIHdlIHVzZSBlbGVtZW50IGZ1bGxzY3JlZW4gdG8g
aW1wbGVtZW50IHZpZGVvCisgICAgICAgIGZ1bGxzY3JlZW4gKFZJREVPX1VTRVNfRUxFTUVOVF9G
VUxMU0NSRUVOKS4gSXQgaXMgYmV0dGVyIHRvIHN0b3JlIHRoZSBmbGFnIGluCisgICAgICAgIEhU
TUxNZWRpYUVsZW1lbnQgdG8gaGF2ZSBmaW5lIGNvbnRyb2wuCisKKyAgICAgICAgVGhpcyBwYXRj
aCByZXZlcnRzIHRoZSBjaGFuZ2luZyByZWdhcmRpbmcgSFRNTFZpZGVvRWxlbWVudDo6d2Via2l0
RGlzcGxheWluZ0Z1bGxzY3JlZW4KKyAgICAgICAgaW4gcjI2MjQ1Ni4gVGhpcyBmdW5jdGlvbiB3
aWxsIHJldHVybiB0cnVlIGluIHRoZSBzYW1lIHJ1biBsb29wIGFzIGEKKyAgICAgICAgd2Via2l0
cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQgZXZlbnQgaXMgZmlyZWQgd2hlbiBhIHZpZGVvIGVsZW1l
bnQgaXMgZW50ZXJpbmcKKyAgICAgICAgZnVsbHNjcmVlbiBvciBwaWN0dXJlLWluLXBpY3R1cmUu
CisKKyAgICAgICAgQWxzbywgdGhpcyBwYXRjaCBhZGRzIEludGVybmFsczo6aXNDaGFuZ2luZ1By
ZXNlbnRhdGlvbk1vZGUgd2hpY2ggY2FuIGJlIHVzZWQgYnkKKyAgICAgICAgbGF5b3V0IHRlc3Rz
IHRvIGNoZWNrIHdoZXRoZXIgYSB2aWRlbyBwcmVzZW50YXRpb24gbW9kZSBjaGFuZ2UgaXMgY29t
cGxldGVkLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAg
KiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6ZGlzcGF0Y2hFdmVudCk6IEZpeCB0aGUgY29uZGl0aW9uLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6aXNGdWxsc2NyZWVuIGNvbnN0KTogQWxpZ24gdGhlIGlt
cGxlbWVudGF0aW9uCisgICAgICAgIHdpdGggaXNTdGFuZGFyZEZ1bGxzY3JlZW4oKS4KKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVsbHNjcmVlbik6IFNldCBtX2No
YW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSB0byB0cnVlIGlmCisgICAgICAgIHRoZSB2aWRlbyBl
bGVtZW50IGlzIGNoYW5naW5nIHByZXNlbnRhdGlvbiBtb2RlLiBBbHNvIGZpeCBhIGJ1ZyBhYm91
dCB0aGUgZmxhZyBtX3dhaXRpbmdUb0VudGVyRnVsbHNjcmVlbi4KKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OmV4aXRGdWxsc2NyZWVuKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50OjpkaWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZGlkU3RvcEJlaW5nRnVsbHNj
cmVlbkVsZW1lbnQpOiBEaXR0by4KKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5o
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0Q2hhbmdpbmdWaWRlb0Z1
bGxzY3JlZW5Nb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmlzQ2hh
bmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OndhaXRpbmdUb0VudGVyRnVsbHNjcmVlbik6IERlbGV0ZWQuCisKKyAgICAg
ICAgKiBodG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZp
ZGVvRWxlbWVudDo6d2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4pOiBSZXZlcnQgdGhlIGNoYW5n
ZQorICAgICAgICBpbiByMjYyNDU2LiBTb21lIHdlYiBzaXRlcyBleHBlY3QgdGhpcyBmdW5jdGlv
biB0byByZXR1cm4gdHJ1ZSBpZiB0aGUgdmlkZW8gZWxlbWVudAorICAgICAgICBpcyBlbnRlcmlu
ZyBmdWxsc2NyZWVuIGFuZCB0aGUgZXZlbnQgd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQg
aXMgZmlyZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50OjpzZXRQcmVzZW50
YXRpb25Nb2RlKTogUmVtb3ZlIGNvZGUgcmVnYXJkaW5nIG1faXNDaGFuZ2luZ1ZpZGVvRnVsbHNj
cmVlbk1vZGUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50OjpkaWRFbnRlckZ1
bGxzY3JlZW5PclBpY3R1cmVJblBpY3R1cmUpOiBGaXggYW4gZXZlbnQgZmlyaW5nIGlzc3VlIHdo
ZW4KKyAgICAgICAgYSB2aWRlbyBlbGVtZW50IGlzIGVudGVyaW5nIGZ1bGxzY3JlZW4gd2hpbGUg
ZXhpdGluZyBwaWN0dXJlLWluLXBpY3R1cmUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9F
bGVtZW50OjpkaWRFeGl0RnVsbHNjcmVlbk9yUGljdHVyZUluUGljdHVyZSk6IEZpeCBhbiBldmVu
dCBmaXJpbmcgaXNzdWUgd2hlbgorICAgICAgICBhIHZpZGVvIGVsZW1lbnQgaXMgZXhpdGluZyBw
aWN0dXJlLWluLXBpY3R1cmUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Ojpp
c0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSBjb25zdCk6IFRoaXMgaW50ZXJmYWNlCisgICAgICAg
IGlzIHVzZWQgYnkgbGF5b3V0IHRlc3RzICh0aHJvdWdoIEludGVybmFscykgdG8gY2hlY2sgd2hl
dGhlciBhIHZpZGVvIHByZXNlbnRhdGlvbgorICAgICAgICBtb2RlIGNoYW5nZSBpcyBjb21wbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50OjpkaWRCZWNvbWVGdWxsc2Ny
ZWVuRWxlbWVudCk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1MVmlkZW9FbGVtZW50Lmg6
CisKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnRlcm5hbHM6OmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlIGNvbnN0KTogVGhpcyBpbnRlcmZh
Y2UgaXMgdXNlZAorICAgICAgICBieSBsYXlvdXQgdGVzdHMgdG8gY2hlY2sgd2hldGhlciBhIHZp
ZGVvIHByZXNlbnRhdGlvbiBtb2RlIGNoYW5nZSBpcyBjb21wbGV0ZWQuCisgICAgICAgICogdGVz
dGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIw
MjAtMTAtMTkgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
TW92ZSByZW1haW5pbmcgV2ViIEFuaW1hdGlvbnMgcnVudGltZS1lbmFibGVkIGZlYXR1cmVzIHRv
IHNldHRpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBk
NjQwZGQ4YmRmZjMzOTI0ZDMzN2M1ZDBmMGExN2NkNGU4Nzc0NWYzLi45YzgyYzkxNGM3ZGQwNTM0
Njg2MmNlMjM5MjRlMjFjY2I1MGVmNDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKQEAgLTU3NDAsOCArNTc0MCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
ZGlzcGF0Y2hFdmVudChFdmVudCYgZXZlbnQpCiAgICAgLy8gV2UgbmVlZCB0byBmaXJlIHRoZSBl
bmQgZnVsbHNjcmVlbiBldmVudCB0byBub3RpZnkgdGhlIHBhZ2UKICAgICAvLyB0byBjaGFuZ2Ug
dGhlIHBvc2l0aW9uL3NpemUgYmFjayAqYmVmb3JlKiBleGl0aW5nIGZ1bGxzY3JlZW4uCiAgICAg
Ly8gT3RoZXJ3aXNlLCB0aGUgZXhpdCBmdWxsc2NyZWVuIGFuaW1hdGlvbiB3aWxsIGJlIGluY29y
cmVjdC4KLSAgICBpZiAoIW1fdmlkZW9GdWxsc2NyZWVuU3RhbmRieSAmJiAhbV93YWl0aW5nVG9F
bnRlckZ1bGxzY3JlZW4gJiYgZXZlbnQudHlwZSgpID09IGV2ZW50TmFtZXMoKS53ZWJraXRlbmRm
dWxsc2NyZWVuRXZlbnQpIHsKLSAgICAgICAgc2V0RnVsbHNjcmVlbk1vZGUoVmlkZW9GdWxsc2Ny
ZWVuTW9kZU5vbmUpOworICAgIGlmICghbV92aWRlb0Z1bGxzY3JlZW5TdGFuZGJ5ICYmIG1fdmlk
ZW9GdWxsc2NyZWVuTW9kZSA9PSBWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSAmJiBldmVudC50eXBl
KCkgPT0gZXZlbnROYW1lcygpLndlYmtpdGVuZGZ1bGxzY3JlZW5FdmVudCkgewogICAgICAgICBk
b2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZXhpdFZpZGVvRnVsbHNjcmVlbkZv
clZpZGVvRWxlbWVudChkb3duY2FzdDxIVE1MVmlkZW9FbGVtZW50PigqdGhpcykpOwogICAgIH0K
IH0KQEAgLTU4NzIsMTUgKzU4NzEsMTIgQEAgZG91YmxlIEhUTUxNZWRpYUVsZW1lbnQ6Om1heEZh
c3RGb3J3YXJkUmF0ZSgpIGNvbnN0CiAKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6aXNGdWxsc2Ny
ZWVuKCkgY29uc3QKIHsKLSAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5Nb2RlICE9IFZpZGVvRnVs
bHNjcmVlbk1vZGVOb25lKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQogI2lmIEVOQUJMRShGVUxM
U0NSRUVOX0FQSSkKICAgICBpZiAoZG9jdW1lbnQoKS5mdWxsc2NyZWVuTWFuYWdlcigpLmlzRnVs
bHNjcmVlbigpICYmIGRvY3VtZW50KCkuZnVsbHNjcmVlbk1hbmFnZXIoKS5jdXJyZW50RnVsbHNj
cmVlbkVsZW1lbnQoKSA9PSB0aGlzKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogCi0g
ICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbk1vZGUgIT0gVmlk
ZW9GdWxsc2NyZWVuTW9kZU5vbmU7CiB9CiAKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6aXNTdGFu
ZGFyZEZ1bGxzY3JlZW4oKSBjb25zdApAQCAtNTkxMiw2ICs1OTA4LDggQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjplbnRlckZ1bGxzY3JlZW4oVmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQogICAg
IGlmIChtX3dhaXRpbmdUb0VudGVyRnVsbHNjcmVlbikKICAgICAgICAgcmV0dXJuOwogCisgICAg
bV9jaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSB0cnVlOworCiAjaWYgRU5BQkxFKEZVTExT
Q1JFRU5fQVBJKSAmJiBFTkFCTEUoVklERU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4pCiAgICAg
aWYgKGRvY3VtZW50KCkuc2V0dGluZ3MoKS5mdWxsU2NyZWVuRW5hYmxlZCgpICYmIG1vZGUgPT0g
VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKSB7CiAgICAgICAgIG1fdGVtcG9yYXJpbHlBbGxv
d2luZ0lubGluZVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuID0gZmFsc2U7CkBAIC01OTI0LDYgKzU5
MjIsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVsbHNjcmVlbihWaWRlb0Z1bGxz
Y3JlZW5Nb2RlIG1vZGUpCiAgICAgbV9mdWxsc2NyZWVuVGFza1F1ZXVlLmVucXVldWVUYXNrKFt0
aGlzLCBtb2RlXSB7CiAgICAgICAgIGlmIChkb2N1bWVudCgpLmhpZGRlbigpKSB7CiAgICAgICAg
ICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICIgcmV0dXJuaW5nIGJlY2F1c2UgZG9jdW1l
bnQgaXMgaGlkZGVuIik7CisgICAgICAgICAgICBtX2NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9k
ZSA9IGZhbHNlOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTU5MzMsNyAr
NTkzMiw5IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZW50ZXJGdWxsc2NyZWVuKFZpZGVvRnVs
bHNjcmVlbk1vZGUgbW9kZSkKICAgICAgICAgICAgICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJ
RVIsICJFbnRlcmluZyBmdWxsc2NyZWVuIG1vZGUgIiwgbW9kZSwgIiwgbV92aWRlb0Z1bGxzY3Jl
ZW5TdGFuZGJ5ID0gIiwgbV92aWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KTsKIAogICAgICAgICAgICAg
ICAgIG1fdGVtcG9yYXJpbHlBbGxvd2luZ0lubGluZVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuID0g
ZmFsc2U7Ci0gICAgICAgICAgICAgICAgbV93YWl0aW5nVG9FbnRlckZ1bGxzY3JlZW4gPSB0cnVl
OworICAgICAgICAgICAgICAgIGlmIChtb2RlID09IFZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFy
ZCkKKyAgICAgICAgICAgICAgICAgICAgbV93YWl0aW5nVG9FbnRlckZ1bGxzY3JlZW4gPSB0cnVl
OworCiAgICAgICAgICAgICAgICAgYXV0byBvbGRNb2RlID0gbV92aWRlb0Z1bGxzY3JlZW5Nb2Rl
OwogICAgICAgICAgICAgICAgIHNldEZ1bGxzY3JlZW5Nb2RlKG1vZGUpOwogICAgICAgICAgICAg
ICAgIGNvbmZpZ3VyZU1lZGlhQ29udHJvbHMoKTsKQEAgLTU5NDYsOCArNTk0NywxMiBAQCB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVsbHNjcmVlbihWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1v
ZGUpCiAgICAgICAgICAgICAgICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLndlYmtp
dGJlZ2luZnVsbHNjcmVlbkV2ZW50KTsKICAgICAgICAgICAgICAgICBlbHNlIGlmIChvbGRNb2Rl
ID09IFZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkKICAgICAgICAgICAgICAgICAgICAgc2No
ZWR1bGVFdmVudChldmVudE5hbWVzKCkud2Via2l0ZW5kZnVsbHNjcmVlbkV2ZW50KTsKKworICAg
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQorCisgICAgICAg
IG1fY2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlID0gZmFsc2U7CiAgICAgfSk7CiB9CiAKQEAg
LTU5NjQsOCArNTk2OSwxMCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmV4aXRGdWxsc2NyZWVu
KCkKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBpZiAoZG9jdW1lbnQoKS5zZXR0
aW5ncygpLmZ1bGxTY3JlZW5FbmFibGVkKCkgJiYgZG9jdW1lbnQoKS5mdWxsc2NyZWVuTWFuYWdl
cigpLmN1cnJlbnRGdWxsc2NyZWVuRWxlbWVudCgpID09IHRoaXMpIHsKLSAgICAgICAgaWYgKGRv
Y3VtZW50KCkuZnVsbHNjcmVlbk1hbmFnZXIoKS5pc0Z1bGxzY3JlZW4oKSkKKyAgICAgICAgaWYg
KGRvY3VtZW50KCkuZnVsbHNjcmVlbk1hbmFnZXIoKS5pc0Z1bGxzY3JlZW4oKSkgeworICAgICAg
ICAgICAgbV9jaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSB0cnVlOwogICAgICAgICAgICAg
ZG9jdW1lbnQoKS5mdWxsc2NyZWVuTWFuYWdlcigpLmNhbmNlbEZ1bGxzY3JlZW4oKTsKKyAgICAg
ICAgfQogCiAgICAgICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGUgPT0gVmlkZW9GdWxsc2Ny
ZWVuTW9kZVN0YW5kYXJkKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNTk5MywxNSArNjAwMCwy
MCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmV4aXRGdWxsc2NyZWVuKCkKIAogICAgIGlmIChk
b2N1bWVudCgpLmFjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQoKSB8fCBkb2N1bWVudCgpLmFj
dGl2ZURPTU9iamVjdHNBcmVTdG9wcGVkKCkpIHsKICAgICAgICAgc2V0RnVsbHNjcmVlbk1vZGUo
VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpOworICAgICAgICBtX2NoYW5naW5nVmlkZW9GdWxsc2Ny
ZWVuTW9kZSA9IHRydWU7CiAgICAgICAgIGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jbGll
bnQoKS5leGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlvbihkb3duY2FzdDxI
VE1MVmlkZW9FbGVtZW50PigqdGhpcyksIFZpZGVvRnVsbHNjcmVlbk1vZGVOb25lKTsKICAgICB9
IGVsc2UgaWYgKGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zdXBwb3J0c1Zp
ZGVvRnVsbHNjcmVlbihvbGRWaWRlb0Z1bGxzY3JlZW5Nb2RlKSkgewogICAgICAgICBpZiAobV92
aWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KSB7CiAgICAgICAgICAgICBzZXRGdWxsc2NyZWVuTW9kZShW
aWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSk7CisgICAgICAgICAgICBtX2NoYW5naW5nVmlkZW9GdWxs
c2NyZWVuTW9kZSA9IHRydWU7CiAgICAgICAgICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21l
KCkuY2xpZW50KCkuZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoZG93bmNhc3Q8
SFRNTFZpZGVvRWxlbWVudD4oKnRoaXMpLCBtX3ZpZGVvRnVsbHNjcmVlbk1vZGUsIG1fdmlkZW9G
dWxsc2NyZWVuU3RhbmRieSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAorICAg
ICAgICBtX2NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IHRydWU7CisKICAgICAgICAgaWYg
KG9sZFZpZGVvRnVsbHNjcmVlbk1vZGUgPT0gVmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKSB7
CisgICAgICAgICAgICBzZXRGdWxsc2NyZWVuTW9kZShWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSk7
CiAgICAgICAgICAgICAvLyBUaGUgZXhpdCBmdWxsc2NyZWVuIHJlcXVlc3Qgd2lsbCBiZSBzZW50
IGluIGRpc3BhdGNoRXZlbnQoKS4KICAgICAgICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1l
cygpLndlYmtpdGVuZGZ1bGxzY3JlZW5FdmVudCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC02
MDcxLDYgKzYwODMsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRpZEJlY29tZUZ1bGxzY3Jl
ZW5FbGVtZW50KCkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICIsIGZ1bGxzY3Jl
ZW4gbW9kZSA9ICIsIGZ1bGxzY3JlZW5Nb2RlKCkpOwogICAgIG1fd2FpdGluZ1RvRW50ZXJGdWxs
c2NyZWVuID0gZmFsc2U7CisgICAgbV9jaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSBmYWxz
ZTsKICAgICBzY2hlZHVsZVVwZGF0ZVBsYXlTdGF0ZSgpOwogfQogCkBAIC02MDgwLDYgKzYwOTMs
MTEgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp3aWxsU3RvcEJlaW5nRnVsbHNjcmVlbkVsZW1l
bnQoKQogICAgICAgICBzZXRGdWxsc2NyZWVuTW9kZShWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSk7
CiB9CiAKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZGlkU3RvcEJlaW5nRnVsbHNjcmVlbkVsZW1l
bnQoKQoreworICAgIG1fY2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlID0gZmFsc2U7Cit9CisK
IFBsYXRmb3JtTGF5ZXIqIEhUTUxNZWRpYUVsZW1lbnQ6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAog
ewogICAgIHJldHVybiBtX3BsYXllciA/IG1fcGxheWVyLT5wbGF0Zm9ybUxheWVyKCkgOiBudWxs
cHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCBmOTBkNWQyZDgw
ODUxMmFkNjJlNDQ2MDYwN2JlY2M4YjUwZjdmZjZiLi5iMjVmNGUyMzhhMmFlNTcyYmI4MDIwYjlj
Y2Y2ZTg3NThmMzJhNjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApA
QCAtNTQ0LDggKzU0NCw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNTdXNwZW5kZWQoKSBjb25z
dCBmaW5hbDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkQmVjb21lRnVsbHNjcmVlbkVs
ZW1lbnQoKSBvdmVycmlkZTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEJlY29tZUZ1bGxz
Y3JlZW5FbGVtZW50KCkgZmluYWw7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3aWxsRXhpdEZ1
bGxzY3JlZW4oKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZFN0b3BCZWluZ0Z1bGxzY3Jl
ZW5FbGVtZW50KCkgZmluYWw7CiAKICNpZiBFTkFCTEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkK
ICAgICB2b2lkIHNjaGVkdWxlRXZlbnQoUmVmPEV2ZW50PiYmKTsKQEAgLTYwMyw3ICs2MDQsOSBA
QCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCB1cGRhdGVNZWRpYUNvbnRyb2xzQWZ0ZXJQcmVzZW50YXRp
b25Nb2RlQ2hhbmdlKCk7CiAKICAgICB2b2lkIHNjaGVkdWxlRXZlbnQoY29uc3QgQXRvbVN0cmlu
ZyYpOwotICAgIGJvb2wgd2FpdGluZ1RvRW50ZXJGdWxsc2NyZWVuKCkgeyByZXR1cm4gbV93YWl0
aW5nVG9FbnRlckZ1bGxzY3JlZW47IH0KKworICAgIHZvaWQgc2V0Q2hhbmdpbmdWaWRlb0Z1bGxz
Y3JlZW5Nb2RlKGJvb2wgdmFsdWUpIHsgbV9jaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSB2
YWx1ZTsgfQorICAgIGJvb2wgaXNDaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUoKSBjb25zdCB7
IHJldHVybiBtX2NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZTsgfQogCiBwcml2YXRlOgogICAg
IHZvaWQgY3JlYXRlTWVkaWFQbGF5ZXIoKTsKQEAgLTEwOTEsNiArMTA5NCw3IEBAIHByaXZhdGU6
CiAKICAgICBib29sIG1faXNTY3J1YmJpbmdSZW1vdGVseSA6IDE7CiAgICAgYm9vbCBtX3dhaXRp
bmdUb0VudGVyRnVsbHNjcmVlbiA6IDE7CisgICAgYm9vbCBtX2NoYW5naW5nVmlkZW9GdWxsc2Ny
ZWVuTW9kZSA6IDE7CiAKICAgICBib29sIG1fdHJhY2tzQXJlUmVhZHkgOiAxOwogICAgIGJvb2wg
bV9oYXZlVmlzaWJsZVRleHRUcmFjayA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9F
bGVtZW50LmNwcAppbmRleCA4YWIyZDBjYjk2NWE2MjVlZjRkMDJjZTI4OTkwMjllYjQzMjUwMTY2
Li4xZGQ1MWI0Y2EyMTJmMmVhMGE0YWY2OTNjNzJiMTc5MzE0MTUxOWRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKQEAgLTM2MSwxMSArMzYxLDkgQEAgYm9vbCBI
VE1MVmlkZW9FbGVtZW50Ojp3ZWJraXRTdXBwb3J0c0Z1bGxzY3JlZW4oKQogYm9vbCBIVE1MVmlk
ZW9FbGVtZW50Ojp3ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbigpCiB7CiAgICAgaWYgKGRvY3Vt
ZW50KCkucXVpcmtzKCkubmVlZHNBa2FtYWlNZWRpYVBsYXllclF1aXJrKCp0aGlzKSkKLSAgICAg
ICAgcmV0dXJuIGlzRnVsbHNjcmVlbigpIHx8IG1faXNDaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1v
ZGU7CisgICAgICAgIHJldHVybiBpc0Z1bGxzY3JlZW4oKSB8fCBpc0NoYW5naW5nVmlkZW9GdWxs
c2NyZWVuTW9kZSgpOwogCi0gICAgLy8gVGhpcyBmdW5jdGlvbiBzdGFydHMgdG8gcmV0dXJuIHRy
dWUgYWZ0ZXIgdGhlIHZpZGVvIGVsZW1lbnQgaGFzIGVudGVyZWQKLSAgICAvLyBmdWxsc2NyZWVu
L3BpY3R1cmUtaW4tcGljdHVyZSB1bnRpbCBpdCBoYXMgZXhpdGVkIGZ1bGxzY3JlZW4vcGljdHVy
ZS1pbi1waWN0dXJlCi0gICAgcmV0dXJuIChpc0Z1bGxzY3JlZW4oKSAmJiAhd2FpdGluZ1RvRW50
ZXJGdWxsc2NyZWVuKCkpIHx8ICghaXNGdWxsc2NyZWVuKCkgJiYgbV9pc0NoYW5naW5nVmlkZW9G
dWxsc2NyZWVuTW9kZSk7CisgICAgcmV0dXJuIGlzRnVsbHNjcmVlbigpOwogfQogCiB2b2lkIEhU
TUxWaWRlb0VsZW1lbnQ6OmFuY2VzdG9yV2lsbEVudGVyRnVsbHNjcmVlbigpCkBAIC00ODIsNyAr
NDgwLDcgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50Ojp3ZWJraXRTZXRQcmVzZW50YXRpb25Nb2Rl
KFZpZGVvUHJlc2VudGF0aW9uTW9kZSBtb2RlKQogCiB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnNl
dFByZXNlbnRhdGlvbk1vZGUoVmlkZW9QcmVzZW50YXRpb25Nb2RlIG1vZGUpCiB7Ci0gICAgaWYg
KG1faXNDaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgfHwgdG9QcmVzZW50YXRpb25Nb2RlKGZ1
bGxzY3JlZW5Nb2RlKCkpID09IG1vZGUpCisgICAgaWYgKGlzQ2hhbmdpbmdWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlKCkgfHwgdG9QcmVzZW50YXRpb25Nb2RlKGZ1bGxzY3JlZW5Nb2RlKCkpID09IG1vZGUp
CiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8gdmlkZW9GdWxsc2NyZWVuTW9kZSA9IHRvRnVs
bHNjcmVlbk1vZGUobW9kZSk7CkBAIC00OTMsNyArNDkxLDYgQEAgdm9pZCBIVE1MVmlkZW9FbGVt
ZW50OjpzZXRQcmVzZW50YXRpb25Nb2RlKFZpZGVvUHJlc2VudGF0aW9uTW9kZSBtb2RlKQogICAg
ICAgICAgICAgaWYgKHRvUHJlc2VudGF0aW9uTW9kZShmdWxsc2NyZWVuTW9kZSgpKSA9PSBWaWRl
b1ByZXNlbnRhdGlvbk1vZGU6OlBpY3R1cmVJblBpY3R1cmUpCiAgICAgICAgICAgICAgICAgbV9p
c0V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlID0gdHJ1ZTsKIAotICAgICAgICAgICAgbV9pc0NoYW5n
aW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IHRydWU7CiAgICAgICAgICAgICBleGl0RnVsbHNjcmVl
bigpOwogICAgICAgICB9CiAKQEAgLTUwOCw3ICs1MDUsNiBAQCB2b2lkIEhUTUxWaWRlb0VsZW1l
bnQ6OnNldFByZXNlbnRhdGlvbk1vZGUoVmlkZW9QcmVzZW50YXRpb25Nb2RlIG1vZGUpCiAgICAg
ZWxzZSBpZiAoZnVsbHNjcmVlbk1vZGUoKSA9PSBWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUlu
UGljdHVyZSkKICAgICAgICAgbV9pc0V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlID0gdHJ1ZTsKIAot
ICAgIG1faXNDaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSB0cnVlOwogICAgIGVudGVyRnVs
bHNjcmVlbih2aWRlb0Z1bGxzY3JlZW5Nb2RlKTsKIH0KIApAQCAtNTE5LDIwICs1MTUsMjUgQEAg
YXV0byBIVE1MVmlkZW9FbGVtZW50Ojp3ZWJraXRQcmVzZW50YXRpb25Nb2RlKCkgY29uc3QgLT4g
VmlkZW9QcmVzZW50YXRpb25Nb2RlCiAKIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6ZGlkRW50ZXJG
dWxsc2NyZWVuT3JQaWN0dXJlSW5QaWN0dXJlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkKIHsKLSAg
ICBtX2lzQ2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlID0gZmFsc2U7Ci0gICAgaWYgKG1faXNF
bnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgfHwgbV9pc0V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlKSB7
CisgICAgaWYgKG1faXNFbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUpIHsKKyAgICAgICAgbV9pc0Vu
dGVyaW5nUGljdHVyZUluUGljdHVyZSA9IGZhbHNlOworICAgICAgICBzZXRDaGFuZ2luZ1ZpZGVv
RnVsbHNjcmVlbk1vZGUoZmFsc2UpOworCiAjaWYgRU5BQkxFKFBJQ1RVUkVfSU5fUElDVFVSRV9B
UEkpCi0gICAgICAgIGlmIChtX3BpY3R1cmVJblBpY3R1cmVPYnNlcnZlcikgewotICAgICAgICAg
ICAgaWYgKG1faXNFbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUpCi0gICAgICAgICAgICAgICAgbV9w
aWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXItPmRpZEVudGVyUGljdHVyZUluUGljdHVyZShmbG9vcmVk
SW50U2l6ZShzaXplKSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbV9waWN0
dXJlSW5QaWN0dXJlT2JzZXJ2ZXItPmRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlKCk7Ci0gICAgICAg
IH0KKyAgICAgICAgaWYgKG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyKQorICAgICAgICAgICAg
bV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXItPmRpZEVudGVyUGljdHVyZUluUGljdHVyZShmbG9v
cmVkSW50U2l6ZShzaXplKSk7CiAjZWxzZQogICAgICAgICBVTlVTRURfUEFSQU0oc2l6ZSk7CiAj
ZW5kaWYKLSAgICAgICAgbV9pc0VudGVyaW5nUGljdHVyZUluUGljdHVyZSA9IGZhbHNlOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1faXNFeGl0aW5nUGljdHVyZUluUGljdHVy
ZSkgewogICAgICAgICBtX2lzRXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKKyNpZiBF
TkFCTEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkKKyAgICAgICAgaWYgKG1fcGljdHVyZUluUGlj
dHVyZU9ic2VydmVyKQorICAgICAgICAgICAgbV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXItPmRp
ZEV4aXRQaWN0dXJlSW5QaWN0dXJlKCk7CisjZW5kaWYKICAgICB9CiAKICAgICBIVE1MTWVkaWFF
bGVtZW50OjpkaWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCgpOwpAQCAtNTQwLDIzICs1NDEsMjQg
QEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpkaWRFbnRlckZ1bGxzY3JlZW5PclBpY3R1cmVJblBp
Y3R1cmUoY29uc3QgRmxvYXRTaXplJiBzaXoKIAogdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpkaWRF
eGl0RnVsbHNjcmVlbk9yUGljdHVyZUluUGljdHVyZSgpCiB7Ci0gICAgbV9pc0NoYW5naW5nVmlk
ZW9GdWxsc2NyZWVuTW9kZSA9IGZhbHNlOwogICAgIGlmIChtX2lzRXhpdGluZ1BpY3R1cmVJblBp
Y3R1cmUpIHsKICAgICAgICAgbV9pc0V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlID0gZmFsc2U7Cisg
ICAgICAgIHNldENoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZShmYWxzZSk7CisKICNpZiBFTkFC
TEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkKICAgICAgICAgaWYgKG1fcGljdHVyZUluUGljdHVy
ZU9ic2VydmVyKQogICAgICAgICAgICAgbV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXItPmRpZEV4
aXRQaWN0dXJlSW5QaWN0dXJlKCk7CiAjZW5kaWYKKyAgICAgICAgcmV0dXJuOwogICAgIH0KKwor
ICAgIEhUTUxNZWRpYUVsZW1lbnQ6OmRpZFN0b3BCZWluZ0Z1bGxzY3JlZW5FbGVtZW50KCk7CiB9
CiAKLSNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpICYmIEVOQUJMRShWSURFT19VU0VTX0VMRU1F
TlRfRlVMTFNDUkVFTikKLXZvaWQgSFRNTFZpZGVvRWxlbWVudDo6ZGlkQmVjb21lRnVsbHNjcmVl
bkVsZW1lbnQoKQorYm9vbCBIVE1MVmlkZW9FbGVtZW50Ojppc0NoYW5naW5nUHJlc2VudGF0aW9u
TW9kZSgpIGNvbnN0CiB7Ci0gICAgbV9pc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IGZh
bHNlOwotICAgIEhUTUxNZWRpYUVsZW1lbnQ6OmRpZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KCk7
CisgICAgcmV0dXJuIGlzQ2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlKCk7CiB9Ci0jZW5kaWYK
IAogdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShjb25zdCBG
bG9hdFJlY3QmIGZyYW1lKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VmlkZW9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaApp
bmRleCBlY2RiZjFkMTZjMmU2ZjI2YjYyNzllMjM3N2M5ZTU0MTQ5NjZmN2ZjLi42MzcyMDRkY2Rm
N2FiNzZjNTFmNzgwNWM3NjRjMGIxN2EyYmU0Mzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxW
aWRlb0VsZW1lbnQuaApAQCAtOTYsMTAgKzk2LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0UHJlc2VudGF0aW9uTW9kZShWaWRlb1ByZXNlbnRhdGlvbk1vZGUpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuT3JQaWN0dXJlSW5QaWN0dXJl
KGNvbnN0IEZsb2F0U2l6ZSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkRXhpdEZ1bGxz
Y3JlZW5PclBpY3R1cmVJblBpY3R1cmUoKTsKLQotI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkg
JiYgRU5BQkxFKFZJREVPX1VTRVNfRUxFTUVOVF9GVUxMU0NSRUVOKQotICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZGlkQmVjb21lRnVsbHNjcmVlbkVsZW1lbnQoKSBmaW5hbDsKLSNlbmRpZgorICAg
IFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUoKSBjb25zdDsK
IAogICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoY29uc3QgRmxvYXRSZWN0JikgZmlu
YWw7CiAKQEAgLTE0Myw3ICsxNDAsNiBAQCBwcml2YXRlOgogCiAgICAgdW5zaWduZWQgbV9sYXN0
UmVwb3J0ZWRWaWRlb1dpZHRoIHsgMCB9OwogICAgIHVuc2lnbmVkIG1fbGFzdFJlcG9ydGVkVmlk
ZW9IZWlnaHQgeyAwIH07Ci0gICAgYm9vbCBtX2lzQ2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2Rl
IHsgZmFsc2UgfTsKIAogI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKICAgICBi
b29sIG1faXNFbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGIzZDg4ZTE3OGNlMTRlMmQ0YzFlZmI4ZGVjNWJlZDQy
ZjM1MDNlMjguLmE0ZjUyOWU0ZTIwMjA0NjMzOTg5Y2E5NzBmMTQ3NTNkOTQzMTkxNzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTMzNDYsNiArMzM0NiwxMSBAQCB2b2lk
IEludGVybmFsczo6c2V0RnVsbHNjcmVlbkNvbnRyb2xzSGlkZGVuKGJvb2wgaGlkZGVuKQogfQog
CiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorYm9vbCBJbnRlcm5hbHM6Omlz
Q2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKEhUTUxWaWRlb0VsZW1lbnQmIGVsZW1lbnQpIGNvbnN0
Cit7CisgICAgcmV0dXJuIGVsZW1lbnQuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUoKTsKK30K
Kwogdm9pZCBJbnRlcm5hbHM6OnNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKGJv
b2wgZW5hYmxlZCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGQ3NDM3Y2E0OWNiNjI4ZmRlZDM0
ZmY3ZGI1ZTdkMzI0MzcwNjg3NmEuLjNlMzVjODBmOTU5NTk5NjcwNGIyZDBkMjc1MDkzMmI4MGU0
NDIyMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNTA0LDYgKzUwNCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldEZ1bGxzY3JlZW5Db250cm9sc0hpZGRlbihib29sKTsKIAog
I2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBib29sIGlzQ2hhbmdpbmdQ
cmVzZW50YXRpb25Nb2RlKEhUTUxWaWRlb0VsZW1lbnQmKSBjb25zdDsKICAgICB2b2lkIHNldE1v
Y2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKGJvb2wpOwogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA0NTA3MTIzY2I1ZjFhZmM0M2E1OTNiYzIyM2Nj
MzNjYWIyZWMyYTNlLi43MGRkYTJjYjY3ZDk0NDBhMGFhMGJkZGE5ZjBlMGI1YTViYTI4YTZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC01NTIsNiArNTUyLDcgQEAgZW51
bSBDb250ZW50U2l6ZUNhdGVnb3J5IHsKICAgICB1bmRlZmluZWQgc2V0RnVsbHNjcmVlbkF1dG9I
aWRlRHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKTsKICAgICB1bmRlZmluZWQgc2V0RnVsbHNjcmVl
bkNvbnRyb2xzSGlkZGVuKGJvb2xlYW4gaGlkZGVuKTsKIAorICAgIFtDb25kaXRpb25hbD1WSURF
T19QUkVTRU5UQVRJT05fTU9ERV0gYm9vbGVhbiBpc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZShI
VE1MVmlkZW9FbGVtZW50IGVsZW1lbnQpOwogICAgIFtDb25kaXRpb25hbD1WSURFT19QUkVTRU5U
QVRJT05fTU9ERV0gdW5kZWZpbmVkIHNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVk
KGJvb2xlYW4gZW5hYmxlZCk7CiAKICAgICB1bmRlZmluZWQgc2V0QXBwbGljYXRpb25DYWNoZU9y
aWdpblF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSk7CmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzhlOTcyY2Q3N2FmNGE5Y2RkYWEwNzlm
YTYxZTRhMGEwNWMwMWE2Yy4uNzI2YzA1ZDUyNWU3ZjhhNzMzY2FiNTJiZTYxYjQ4OTc4MGQ1YzNh
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDIwLTEwLTE5ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+
CisKKyAgICAgICAgTGV0IHdlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuKCkgcmV0dXJuIHRydWUg
d2hlbiBhIHZpZGVvIGVsZW1lbnTigJlzIGZ1bGxzY3JlZW4gbW9kZSBpcyBub3QgVmlkZW9GdWxs
c2NyZWVuTW9kZU5vbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNjQyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdDbG9zZUFs
bE1lZGlhUHJlc2VudGF0aW9ucy5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICBVc2UgaW50
ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKCkgdG8gbWFrZSBzdXJlIGEgdmlkZW8g
cHJlc2VudGF0aW9uIG1vZGUKKyAgICAgICAgY2hhbmdlIChmcm9tIGlubGluZSB0byBwaWN0dXJl
LWluLXBpY3R1cmUpIGlzIGNvbXBsZXRlZCBiZWZvcmUgbW92aW5nIHRvIHRoZSBuZXh0CisgICAg
ICAgIHN0ZXAgb2YgdGhlIHRlc3QuCisKIDIwMjAtMTAtMTggIExhdXJvIE1vdXJhICA8bG1vdXJh
QGlnYWxpYS5jb20+CiAKICAgICAgICAgd2Via2l0Y29yZXB5OiBBbGxvdyBvbmUgcGFja2FnZSB0
byByZXF1aXJlIGFub3RoZXIgcGFja2FnZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdDbG9zZUFsbE1lZGlhUHJlc2VudGF0aW9ucy5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3Q2xvc2VB
bGxNZWRpYVByZXNlbnRhdGlvbnMubW0KaW5kZXggZTEwNWVmYjVhNWI0YmY5NTdmNDlhMTNkZTcz
ZTI1ODhjNDlkMjNjMC4uYWIxMzFmZDY1ZTM2NjM3MTRhNWQ5MmU4YjQ2NDQ3NzBhMDA1YzUzOCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZp
ZXdDbG9zZUFsbE1lZGlhUHJlc2VudGF0aW9ucy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0Nsb3NlQWxsTWVkaWFQcmVzZW50YXRpb25zLm1t
CkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW1w
b3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0ICJXS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0
cmFzLmgiCiAjaW1wb3J0IDxXZWJDb3JlL1BpY3R1cmVJblBpY3R1cmVTdXBwb3J0Lmg+CiAjaW1w
b3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dl
YlZpZXdQcml2YXRlLmg+CkBAIC00MCwyNSArNDEsMjYgQEAgVEVTVChXS1dlYlZpZXdDbG9zZUFs
bE1lZGlhUHJlc2VudGF0aW9ucywgUGljdHVyZUluUGljdHVyZSkKICAgICBpZiAoIVdlYkNvcmU6
OnN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRv
IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkucHJlZmVyZW5jZXMuX2FsbG93c1BpY3R1
cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrID0gWUVTOwotICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwg
ODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZ
RVNdKTsKKyAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
X3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1Bs
dWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKKyAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRBbGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQ
bGF5YmFjazpZRVNdOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbiBhZGRUb1dpbmRvdzpZRVNdKTsKIAogICAgIFt3ZWJWaWV3IHN5
bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjx2aWRlbyBzcmM9dmlkZW8td2l0aC1hdWRpby5t
cDQgd2Via2l0LXBsYXlzaW5saW5lIHBsYXlzaW5saW5lIGxvb3A+PC92aWRlbz4iXTsKKyAgICBb
d2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigndmlkZW8nKS5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hh
bmdlZCcsIGV2ZW50ID0+IHsgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRs
ZXIucG9zdE1lc3NhZ2UoJ3ByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkJyk7IH0pOyJdOwogCi0gICAg
W3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdFdpdGhVc2VyR2VzdHVyZTpAImRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvJykud2Via2l0U2V0UHJlc2VudGF0aW9uTW9kZSgn
cGljdHVyZS1pbi1waWN0dXJlJykiXTsKKyAgICBfX2Jsb2NrIGJvb2wgcHJlc2VudGF0aW9uTW9k
ZUNoYW5nZWQgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNz
YWdlOkAicHJlc2VudGF0aW9ubW9kZWNoYW5nZWQiIGFjdGlvbjpeeyBwcmVzZW50YXRpb25Nb2Rl
Q2hhbmdlZCA9IHRydWU7IH1dOwogCisgICAgW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2
YVNjcmlwdFdpdGhVc2VyR2VzdHVyZTpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvJyku
d2Via2l0U2V0UHJlc2VudGF0aW9uTW9kZSgncGljdHVyZS1pbi1waWN0dXJlJykiXTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnByZXNlbnRhdGlvbk1vZGVDaGFuZ2VkKTsKICAgICBk
byB7Ci0gICAgICAgIGlkIHJlc3VsdCA9IFt3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFT
Y3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpLndlYmtpdERpc3BsYXlpbmdG
dWxsc2NyZWVuIl07Ci0gICAgICAgIGlmIChbcmVzdWx0IGJvb2xWYWx1ZV0pCisgICAgICAgIGlm
ICghW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5pbnRlcm5h
bHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUoZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigndmlk
ZW8nKSkiXS5ib29sVmFsdWUpCiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpzbGVlcCgwLjUpOwogICAgIH0gd2hpbGUgKHRydWUpOwogCi0gICAgW3dl
YlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoJ3ZpZGVvJykuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5n
ZWQnLCBldmVudCA9PiB7IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVy
LnBvc3RNZXNzYWdlKCdwcmVzZW50YXRpb25tb2RlY2hhbmdlZCcpOyB9KTsiXTsKLQotICAgIF9f
YmxvY2sgYm9vbCBwcmVzZW50YXRpb25Nb2RlQ2hhbmdlZCA9IGZhbHNlOworICAgIHByZXNlbnRh
dGlvbk1vZGVDaGFuZ2VkID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgcGVyZm9ybUFmdGVyUmVjZWl2
aW5nTWVzc2FnZTpAInByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIiBhY3Rpb246XnsgcHJlc2VudGF0
aW9uTW9kZUNoYW5nZWQgPSB0cnVlOyB9XTsKIAogICAgIFt3ZWJWaWV3IF9jbG9zZUFsbE1lZGlh
UHJlc2VudGF0aW9uc107CkBAIC03NCw5ICs3Niw5IEBAIFRFU1QoV0tXZWJWaWV3Q2xvc2VBbGxN
ZWRpYVByZXNlbnRhdGlvbnMsIFBpY3R1cmVJblBpY3R1cmUpCiAKIFRFU1QoV0tXZWJWaWV3Q2xv
c2VBbGxNZWRpYVByZXNlbnRhdGlvbnMsIFZpZGVvRnVsbHNjcmVlbikKIHsKLSAgICBhdXRvIGNv
bmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5p
dF0pOwotICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkucHJlZmVyZW5jZXMuX2Z1bGxTY3JlZW5FbmFi
bGVkID0gWUVTOwotICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKKyAgICBhdXRvICpjb25m
aWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldp
dGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNv
bmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIF9zZXRGdWxsU2NyZWVuRW5hYmxlZDpZRVNdOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwg
ODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbiBhZGRUb1dpbmRvdzpZRVNdKTsK
IAogICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjx2aWRlbyBzcmM9
dmlkZW8td2l0aC1hdWRpby5tcDQgd2Via2l0LXBsYXlzaW5saW5lIHBsYXlzaW5saW5lIGxvb3A+
PC92aWRlbz4iXTsKICAgICBbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAi
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8nKS5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRw
cmVzZW50YXRpb25tb2RlY2hhbmdlZCcsIGV2ZW50ID0+IHsgd2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ3ByZXNlbnRhdGlvbm1vZGVjaGFuZ2Vk
Jyk7IH0pOyJdOwpAQCAtODUsOCArODcsMTUgQEAgVEVTVChXS1dlYlZpZXdDbG9zZUFsbE1lZGlh
UHJlc2VudGF0aW9ucywgVmlkZW9GdWxsc2NyZWVuKQogICAgIFt3ZWJWaWV3IHBlcmZvcm1BZnRl
clJlY2VpdmluZ01lc3NhZ2U6QCJwcmVzZW50YXRpb25tb2RlY2hhbmdlZCIgYWN0aW9uOl57IHBy
ZXNlbnRhdGlvbk1vZGVDaGFuZ2VkID0gdHJ1ZTsgfV07CiAKICAgICBbd2ViVmlldyBvYmplY3RC
eUV2YWx1YXRpbmdKYXZhU2NyaXB0V2l0aFVzZXJHZXN0dXJlOkAiZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigndmlkZW8nKS53ZWJraXRFbnRlckZ1bGxzY3JlZW4oKSJdOworICAgIFt3ZWJWaWV3IG9i
amVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5kb3cuaW50ZXJuYWxzLnNldE1vY2tWaWRl
b1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKHRydWUpIl07CiAKICAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJnByZXNlbnRhdGlvbk1vZGVDaGFuZ2VkKTsKKyAgICBkbyB7CisgICAgICAgIGlm
ICghW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5pbnRlcm5h
bHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUoZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigndmlk
ZW8nKSkiXS5ib29sVmFsdWUpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpzbGVlcCgwLjUpOworICAgIH0gd2hpbGUgKHRydWUpOwogCiAgICAgcHJl
c2VudGF0aW9uTW9kZUNoYW5nZWQgPSBmYWxzZTsKICAgICBbd2ViVmlldyBwZXJmb3JtQWZ0ZXJS
ZWNlaXZpbmdNZXNzYWdlOkAicHJlc2VudGF0aW9ubW9kZWNoYW5nZWQiIGFjdGlvbjpeeyBwcmVz
ZW50YXRpb25Nb2RlQ2hhbmdlZCA9IHRydWU7IH1dOwpAQCAtMTAwLDkgKzEwOSw5IEBAIFRFU1Qo
V0tXZWJWaWV3Q2xvc2VBbGxNZWRpYVByZXNlbnRhdGlvbnMsIFZpZGVvRnVsbHNjcmVlbikKIAog
VEVTVChXS1dlYlZpZXdDbG9zZUFsbE1lZGlhUHJlc2VudGF0aW9ucywgRWxlbWVudEZ1bGxzY3Jl
ZW4pCiB7Ci0gICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gYWxsb2NdIGluaXRdKTsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLnByZWZlcmVu
Y2VzLl9mdWxsU2NyZWVuRW5hYmxlZCA9IFlFUzsKLSAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgw
MCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVT
XSk7CisgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90
ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVn
SW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107CisgICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RnVsbFNjcmVlbkVuYWJsZWQ6WUVTXTsKKyAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24g
YWRkVG9XaW5kb3c6WUVTXSk7CiAKICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxT
dHJpbmc6QCI8ZGl2IGlkPVwidGFyZ2V0XCIgc3R5bGU9XCJ3aWR0aDoxMDBweDtoZWlnaHQ6MTAw
cHg7YmFja2dyb3VuZC1jb2xvcjpyZWRcIj48L2Rpdj4iXTsKICAgICBbd2ViVmlldyBvYmplY3RC
eUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3RhcmdldCcp
LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UnLCBldmVudCA9PiB7IHdp
bmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdmdWxs
c2NyZWVuY2hhbmdlJyk7IH0pOyJdOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGFhN2QxNjdmNjk3NGMxYjRjZTA3YWM1Zjhj
MzUxYmZiOGMzNzVkNTYuLjM0NTQ5YzExNGU0YzQ4ZDlhMDMzYzAzZmU1ZWFjZGE3NTUwNGY4NTgg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAyMC0xMC0xOSAgUGVuZyBMaXUgIDxwZW5nLmxpdTZA
YXBwbGUuY29tPgorCisgICAgICAgIExldCB3ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbigpIHJl
dHVybiB0cnVlIHdoZW4gYSB2aWRlbyBlbGVtZW504oCZcyBmdWxsc2NyZWVuIG1vZGUgaXMgbm90
IFZpZGVvRnVsbHNjcmVlbk1vZGVOb25lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTY0MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBDaGVjayBJbnRlcm5hbHM6OmlzQ2hhbmdpbmdQcmVzZW50YXRpb25N
b2RlIGluc3RlYWQgb2YgSFRNTFZpZGVvRWxlbWVudDo6d2Via2l0RGlzcGxheWluZ0Z1bGxzY3Jl
ZW4KKyAgICAgICAgdG8gY29uZmlybSB0aGUgdmlkZW8gcHJlc2VudGF0aW9uIG1vZGUgY2hhbmdl
IGlzIGNvbXBsZXRlZCBiZWZvcmUgbW92aW5nIHRvIHRoZSBuZXh0IHN0ZXAgb2YgYSB0ZXN0Lgor
CisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3Mt
ZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xz
LWxpdmUtYnJvYWRjYXN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21h
Y29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtbGl2ZS1icm9hZGNhc3QuaHRtbDoKKyAgICAg
ICAgKiBtZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy5odG1sOgorICAgICAgICAqIG1lZGlhL21l
ZGlhLWZ1bGxzY3JlZW4tbG9vcC1pbmxpbmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIG1lZGlh
L21lZGlhLWZ1bGxzY3JlZW4tbG9vcC1pbmxpbmUuaHRtbDoKKyAgICAgICAgKiBtZWRpYS9tZWRp
YS1mdWxsc2NyZWVuLXBhdXNlLWlubGluZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEv
bWVkaWEtZnVsbHNjcmVlbi1wYXVzZS1pbmxpbmUuaHRtbDoKKyAgICAgICAgKiBtZWRpYS9tZWRp
YS1mdWxsc2NyZWVuLXJldHVybi10by1pbmxpbmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIG1l
ZGlhL21lZGlhLWZ1bGxzY3JlZW4tcmV0dXJuLXRvLWlubGluZS5odG1sOgorICAgICAgICAqIG1l
ZGlhL3ByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkLWZpcmVkLW9uY2UtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIG1lZGlhL3ByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkLWZpcmVkLW9uY2UuaHRtbDoKKyAg
ICAgICAgKiBtZWRpYS92aWRlby1mdWxsc2NyZWVuLW9ubHktcGxheWJhY2stZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIG1lZGlhL3ZpZGVvLWZ1bGxzY3JlZW4tb25seS1wbGF5YmFjay5odG1sOgor
ICAgICAgICAqIG1lZGlhL3ZpZGVvLXBsYXlzaW5saW5lLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBtZWRpYS92aWRlby1wbGF5c2lubGluZS5odG1sOgorICAgICAgICAqIG1lZGlhL3ZpZGVvLXBy
ZXNlbnRhdGlvbi1tb2RlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBtZWRpYS92aWRlby1wcmVz
ZW50YXRpb24tbW9kZS5odG1sOgorICAgICAgICAqIG1lZGlhL3ZpZGVvLXdlYmtpdC1wbGF5c2lu
bGluZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEvdmlkZW8td2Via2l0LXBsYXlzaW5s
aW5lLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIw
MjAtMTAtMTMgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgU2FuaXRpemUgdGhlIHVzYWdlIG9mIG92ZXJyaWRlIHNpemVzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1m
dWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMt
bGl2ZS1icm9hZGNhc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9t
YWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWxpdmUtYnJvYWRjYXN0LWV4cGVjdGVkLnR4
dAppbmRleCBiMzJhN2MxNzQ5YWNiYzc2ZGQ2ZWMxYTA3ZmY5ZWZkN2RlNDI3YjNjLi43YjY2OTQ5
NTNkNmUzNDA4ZDA3NzA1YjYwNWE3ZDU5ZDUwOTM1OWYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVu
LW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtbGl2ZS1icm9h
ZGNhc3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3Mt
ZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1saXZlLWJyb2FkY2FzdC1leHBlY3RlZC50eHQKQEAg
LTMsNyArMyw3IEBAIFRlc3RpbmcgdGhhdCB3ZSBkbyBub3Qgc2hvdyB0aGUgc2Vla2luZyBjb250
cm9scyBpbiBmdWxsc2NyZWVuIHdpdGggYSBsaXZlIGJyb2FkCiBPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCiAKIAotUEFTUyBtZWRpYS53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiBiZWNhbWUg
dHJ1ZQorUEFTUyBtZWRpYS53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiBpcyB0cnVlCiBQQVNT
IG1lZGlhLmR1cmF0aW9uIGJlY2FtZSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkKIFBBU1MgbWVk
aWFDb250cm9sbGVyLmNvbnRyb2xzLnJld2luZEJ1dHRvbi5lbmFibGVkIGlzIGZhbHNlCiBQQVNT
IG1lZGlhQ29udHJvbGxlci5jb250cm9scy5mb3J3YXJkQnV0dG9uLmVuYWJsZWQgaXMgZmFsc2UK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1t
ZWRpYS1jb250cm9scy1saXZlLWJyb2FkY2FzdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250
cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWxpdmUtYnJvYWRjYXN0Lmh0bWwK
aW5kZXggYWZiZTg4MTRlNjg1MDg0Y2ZhYjY1OTliYTJiZDQ1YjVlNzBkZmQwYi4uYjY0YjQzYTIz
MzU5MGRhYmY0OGUzMTdhNjhmMGIwYzZiM2M0MzQyMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1t
ZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWxpdmUtYnJvYWRj
YXN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVu
LW1lZGlhLWNvbnRyb2xzLWxpdmUtYnJvYWRjYXN0Lmh0bWwKQEAgLTE1LDE4ICsxNSwxNyBAQCBj
b25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7CiBjb25zdCBtZWRp
YUNvbnRyb2xsZXIgPSBjcmVhdGVDb250cm9scyhzaGFkb3dSb290LCBtZWRpYSwgbnVsbCk7CiAK
IG1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UiLCAoKSA9PiB7
Ci0gICAgc2hvdWxkQmVjb21lRXF1YWwoIm1lZGlhLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVu
IiwgInRydWUiLCAoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlY29tZUVxdWFsKCJtZWRpYS5kdXJh
dGlvbiIsICJOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkiLCAoKSA9PiB7Ci0gICAgICAgICAgICBz
aG91bGRCZUZhbHNlKCJtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMucmV3aW5kQnV0dG9uLmVuYWJs
ZWQiKTsKLSAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoIm1lZGlhQ29udHJvbGxlci5jb250cm9s
cy5mb3J3YXJkQnV0dG9uLmVuYWJsZWQiKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJtZWRpYUNv
bnRyb2xsZXIuY29udHJvbHMudGltZUNvbnRyb2wucGFyZW50IiwgIm51bGwiKTsKLSAgICAgICAg
ICAgIHNob3VsZEJlKCJtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMuc3RhdHVzTGFiZWwucGFyZW50
IiwgIm1lZGlhQ29udHJvbGxlci5jb250cm9scy5ib3R0b21Db250cm9sc0JhciIpOwotCi0gICAg
ICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKLSAgICAgICAg
ICAgIHNoYWRvd1Jvb3QuaG9zdC5yZW1vdmUoKTsKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgp
OwotICAgICAgICB9KTsKKyAgICBzaG91bGRCZVRydWUoIm1lZGlhLndlYmtpdERpc3BsYXlpbmdG
dWxsc2NyZWVuIik7CisgICAgc2hvdWxkQmVjb21lRXF1YWwoIm1lZGlhLmR1cmF0aW9uIiwgIk51
bWJlci5QT1NJVElWRV9JTkZJTklUWSIsICgpID0+IHsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgi
bWVkaWFDb250cm9sbGVyLmNvbnRyb2xzLnJld2luZEJ1dHRvbi5lbmFibGVkIik7CisgICAgICAg
IHNob3VsZEJlRmFsc2UoIm1lZGlhQ29udHJvbGxlci5jb250cm9scy5mb3J3YXJkQnV0dG9uLmVu
YWJsZWQiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1lZGlhQ29udHJvbGxlci5jb250cm9scy50aW1l
Q29udHJvbC5wYXJlbnQiLCAibnVsbCIpOworICAgICAgICBzaG91bGRCZSgibWVkaWFDb250cm9s
bGVyLmNvbnRyb2xzLnN0YXR1c0xhYmVsLnBhcmVudCIsICJtZWRpYUNvbnRyb2xsZXIuY29udHJv
bHMuYm90dG9tQ29udHJvbHNCYXIiKTsKKworICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgIG1l
ZGlhLnJlbW92ZSgpOworICAgICAgICBzaGFkb3dSb290Lmhvc3QucmVtb3ZlKCk7CisgICAgICAg
IGZpbmlzaEpTVGVzdCgpOwogICAgIH0pOwogfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9jb250
ZXh0LW1lbnUtYWN0aW9ucy5odG1sCmluZGV4IDA1OWVlYTcwOTUyZjg1N2ZiYzYyNTZiODQ5Njdm
ZjYxYTYzMjdlMzYuLmQzOTNjNzkwYjE4NWQzNzQwNDlhMzczMTc3YTk2ZGU5OTQyNjk5ZWEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMuaHRtbApAQCAtMSw4NyAr
MSw4NiBAQAorPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgotICAgICAgICA8c2NyaXB0
IHNyYz0ibWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSJ2aWRl
by10ZXN0LmpzIj48L3NjcmlwdD4KLSAgICAgICAgPHNjcmlwdD4KLQotICAgICAgICAgICAgYXN5
bmMgZnVuY3Rpb24gcGxheWluZygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghd2luZG93LmV2
ZW50U2VuZGVyKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgPHNjcmlwdCBzcmM9Im1lZGlhLWZpbGUuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSJ2aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAg
ICAgICBhc3luYyBmdW5jdGlvbiBwbGF5aW5nKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRT
ZW5kZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAg
ICAgICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg
ICAgZW5kVGVzdCgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KIAot
ICAgICAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKLQotICAgICAgICAgICAgICAgIHZh
ciB4LCB5LCBpdGVtczsKLSAgICAgICAgICAgICAgICB4ID0gdmlkZW8ub2Zmc2V0UGFyZW50Lm9m
ZnNldExlZnQgKyB2aWRlby5vZmZzZXRMZWZ0ICsgdmlkZW8ub2Zmc2V0V2lkdGggLyAyOwotICAg
ICAgICAgICAgICAgIHkgPSB2aWRlby5vZmZzZXRQYXJlbnQub2Zmc2V0VG9wICsgdmlkZW8ub2Zm
c2V0VG9wICsgdmlkZW8ub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICAgICAgICAgICAgICBldmVudFNl
bmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKLSAgICAgICAgICAgICAgICBpdGVtcyA9IGV2ZW50U2Vu
ZGVyLmNvbnRleHRDbGljaygpOwotCisgICAgICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7CiAK
LSAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKQot
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLnRpdGxl
Lm1hdGNoKCJDb250cm9scyIpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3Rl
ZCgidmlkZW8uY29udHJvbHMiLCB0cnVlLCAnPT0nKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
Y29uc29sZVdyaXRlKCJUb2dnbGluZyBtZWRpYSBjb250cm9scyIpOwotICAgICAgICAgICAgICAg
ICAgICAgICBpdGVtc1tpXS5jbGljaygpOwotICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhw
ZWN0ZWQoInZpZGVvLmNvbnRyb2xzIiwgZmFsc2UsICc9PScpOwotICAgICAgICAgICAgICAgICAg
ICAgICBjb25zb2xlV3JpdGUoIiIpOwotICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB2YXIgeCwgeSwgaXRlbXM7CisgICAgICAgICAgICB4ID0gdmlkZW8ub2Zmc2V0UGFyZW50Lm9m
ZnNldExlZnQgKyB2aWRlby5vZmZzZXRMZWZ0ICsgdmlkZW8ub2Zmc2V0V2lkdGggLyAyOworICAg
ICAgICAgICAgeSA9IHZpZGVvLm9mZnNldFBhcmVudC5vZmZzZXRUb3AgKyB2aWRlby5vZmZzZXRU
b3AgKyB2aWRlby5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oeCwgeSk7CisgICAgICAgICAgICBpdGVtcyA9IGV2ZW50U2VuZGVyLmNvbnRleHRD
bGljaygpOwogCi0gICAgICAgICAgICAgICAgICAgIGlmIChpdGVtc1tpXS50aXRsZS5tYXRjaCgi
UGF1c2UiKSkgewotICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnBh
dXNlZCIsIGZhbHNlLCAnPT0nKTsKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRl
KCJUb2dnbGluZyBwbGF5IHN0YXRlIik7Ci0gICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zW2ld
LmNsaWNrKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ucGF1
c2VkIiwgdHJ1ZSwgJz09Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgi
Iik7Ci0gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgaXRlbXMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYg
KGl0ZW1zW2ldLnRpdGxlLm1hdGNoKCJDb250cm9scyIpKSB7CisgICAgICAgICAgICAgICAgICAg
IHRlc3RFeHBlY3RlZCgidmlkZW8uY29udHJvbHMiLCB0cnVlLCAnPT0nKTsKKyAgICAgICAgICAg
ICAgICAgICAgY29uc29sZVdyaXRlKCJUb2dnbGluZyBtZWRpYSBjb250cm9scyIpOworICAgICAg
ICAgICAgICAgICAgICBpdGVtc1tpXS5jbGljaygpOworICAgICAgICAgICAgICAgICAgICB0ZXN0
RXhwZWN0ZWQoInZpZGVvLmNvbnRyb2xzIiwgZmFsc2UsICc9PScpOworICAgICAgICAgICAgICAg
ICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAg
ICAgICAgICBpZiAoaXRlbXNbaV0udGl0bGUubWF0Y2goIkxvb3AiKSkgewotICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmxvb3AiLCBmYWxzZSwgJz09Jyk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVG9nZ2xpbmcgbG9vcCBzdGF0ZSIpOwot
ICAgICAgICAgICAgICAgICAgICAgICBpdGVtc1tpXS5jbGljaygpOwotICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmxvb3AiLCB0cnVlLCAnPT0nKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKLSAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIGlmIChpdGVtc1tpXS50aXRsZS5tYXRjaCgiUGF1c2UiKSkgeworICAg
ICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnBhdXNlZCIsIGZhbHNlLCAnPT0n
KTsKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUb2dnbGluZyBwbGF5IHN0YXRl
Iik7CisgICAgICAgICAgICAgICAgICAgIGl0ZW1zW2ldLmNsaWNrKCk7CisgICAgICAgICAgICAg
ICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ucGF1c2VkIiwgdHJ1ZSwgJz09Jyk7CisgICAgICAg
ICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAgICAgICAgfQogCi0gICAg
ICAgICAgICAgICAgICAgIGlmIChpdGVtc1tpXS50aXRsZS5tYXRjaCgiTXV0ZSIpKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ubXV0ZWQiLCBmYWxzZSwgJz09
Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVG9nZ2xpbmcgbXV0ZSBz
dGF0ZSIpOwotICAgICAgICAgICAgICAgICAgICAgICBpdGVtc1tpXS5jbGljaygpOwotICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLm11dGVkIiwgdHJ1ZSwgJz09Jyk7
Ci0gICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7Ci0gICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaXRlbXNbaV0udGl0bGUubWF0Y2goIkxvb3Ai
KSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmxvb3AiLCBmYWxz
ZSwgJz09Jyk7CisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVG9nZ2xpbmcgbG9v
cCBzdGF0ZSIpOworICAgICAgICAgICAgICAgICAgICBpdGVtc1tpXS5jbGljaygpOworICAgICAg
ICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmxvb3AiLCB0cnVlLCAnPT0nKTsKKyAg
ICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICB9CiAK
LSAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLnRpdGxlLm1hdGNoKCJGdWxsc2NyZWVu
IikgJiYgdmlkZW8ud2Via2l0U3VwcG9ydHNGdWxsc2NyZWVuKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4iLCBm
YWxzZSwgJz09Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVG9nZ2xp
bmcgZnVsbHNjcmVlbiBzdGF0ZSIpOwotICAgICAgICAgICAgICAgICAgICAgICBpdGVtc1tpXS5j
bGljaygpOwotICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVh
bGx5KCJ2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiIsIHRydWUsICI9PSIsIDEwMDAp
OwotICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOwotICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLnRpdGxlLm1hdGNoKCJNdXRl
IikpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5tdXRlZCIsIGZh
bHNlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUb2dnbGluZyBt
dXRlIHN0YXRlIik7CisgICAgICAgICAgICAgICAgICAgIGl0ZW1zW2ldLmNsaWNrKCk7CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ubXV0ZWQiLCB0cnVlLCAnPT0nKTsK
KyAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICB9
CiAKLSAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogdGVzdCBjb3B5IGxpbmsgbG9jYXRpb24g
YW5kIG9wZW4gaW4gbmV3IHdpbmRvdy4KLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgICAgICAgICAgZW5kVGVzdCgp
OwotICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChpdGVtc1tpXS50aXRsZS5tYXRj
aCgiRnVsbHNjcmVlbiIpICYmIHZpZGVvLndlYmtpdFN1cHBvcnRzRnVsbHNjcmVlbikgeworICAg
ICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxs
c2NyZWVuIiwgZmFsc2UsICc9PScpOworICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUo
IlRvZ2dsaW5nIGZ1bGxzY3JlZW4gc3RhdGUiKTsKKyAgICAgICAgICAgICAgICAgICAgaXRlbXNb
aV0uY2xpY2soKTsKKyAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1
YWxseSgiaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNl
LCAnPT0nLCAxMDAwKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby53
ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiIsIHRydWUsICc9PScpOworICAgICAgICAgICAgICAg
ICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAg
YXN5bmMgZnVuY3Rpb24gc3RhcnQoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGZp
bmRNZWRpYUVsZW1lbnQoKTsKLSAgICAgICAgICAgICAgICB3YWl0Rm9yRXZlbnQoJ3BsYXknLCBw
bGF5aW5nKTsKLSAgICAgICAgICAgICAgICBydW4oInZpZGVvLnNyYyA9ICciICsgZmluZE1lZGlh
RmlsZSgidmlkZW8iLCAiY29udGVudC90ZXN0IikgKyAiJyIpOworICAgICAgICAgICAgICAgIC8v
IFRPRE86IHRlc3QgY29weSBsaW5rIGxvY2F0aW9uIGFuZCBvcGVuIGluIG5ldyB3aW5kb3cuCiAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAg
ICAgICAgIGVuZFRlc3QoKTsKKyAgICAgICAgfQogCi0gICAgICAgPC9zY3JpcHQ+CisgICAgICAg
IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0KCkKKyAgICAgICAgeworICAgICAgICAgICAgZmluZE1lZGlh
RWxlbWVudCgpOworICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdwbGF5JywgcGxheWluZyk7Cisg
ICAgICAgICAgICBydW4oInZpZGVvLnNyYyA9ICciICsgZmluZE1lZGlhRmlsZSgidmlkZW8iLCAi
Y29udGVudC90ZXN0IikgKyAiJyIpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CiA8L2hlYWQ+
CiA8Ym9keSBvbmxvYWQ9InN0YXJ0KCkiPgogICAgIDxwPlRlc3QgdGhlIHZhcmlvdXMgYWN0aW9u
cyBhdmFpbGFibGUgaW4gdGhlIEhUTUw1IG1lZGlhIGVsZW1lbnQgY29udGV4dC1tZW51LjwvcD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tbG9vcC1pbmxp
bmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1sb29w
LWlubGluZS1leHBlY3RlZC50eHQKaW5kZXggNWEzMzdhM2UyM2U2ZjEyNmU5MWM1MzA5OTVmZjE1
ZDViZGQwMWMxOS4uODdjMWVlNzU0MjA2NDEwNGM2MDBlNmZhYzNjOGJlOThiOTlkODg2YSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1sb29wLWlubGluZS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1sb29w
LWlubGluZS1leHBlY3RlZC50eHQKQEAgLTcsMTIgKzcsMTQgQEAgRVZFTlQoY2FucGxheXRocm91
Z2gpCiBSVU4odmlkZW8ucGxheSgpKQogV2FpdCB0byBlbnRlciBmdWxsc2NyZWVuCiBFVkVOVCh3
ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCkKK0VYUEVDVEVEIChpbnRlcm5hbHMuaXNDaGFu
Z2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pID09ICdmYWxzZScpIE9LCiBFWFBFQ1RFRCAodmlk
ZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ3RydWUnKSBPSwogRW50ZXJlZCBmdWxs
c2NyZWVuCiBSVU4odmlkZW8uY3VycmVudFRpbWUgPSA1KQogUlVOKHZpZGVvLndlYmtpdEV4aXRG
dWxsc2NyZWVuKCkpCiBXYWl0IHRvIGV4aXQgZnVsbHNjcmVlbgogRVZFTlQod2Via2l0cHJlc2Vu
dGF0aW9ubW9kZWNoYW5nZWQpCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50
YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdERp
c3BsYXlpbmdGdWxsc2NyZWVuID09ICdmYWxzZScpIE9LCiBFeGl0ZWQgZnVsbHNjcmVlbgogRVhQ
RUNURUQgKHZpZGVvLnBhdXNlZCA9PSAnZmFsc2UnKSBPSwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1sb29wLWlubGluZS5odG1sIGIvTGF5b3V0VGVzdHMv
bWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1sb29wLWlubGluZS5odG1sCmluZGV4IGMxNGRjNTczM2Fm
N2Q2ZTA1NDI1MWE0MjhlNWE1NDE2YmExZGMzZWYuLjNlNTA5MGIyMTE2ZGRjZjYyMTdhNjIyZWJj
YTJhOTMzOWExNTUwMzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxz
Y3JlZW4tbG9vcC1pbmxpbmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxs
c2NyZWVuLWxvb3AtaW5saW5lLmh0bWwKQEAgLTM1LDcgKzM1LDggQEAKIAogICAgIGFzeW5jIGZ1
bmN0aW9uIGJlZ2luZnVsbHNjcmVlbigpCiAgICAgewotICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0
ZWRFdmVudHVhbGx5KCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIHRydWUpOwor
ICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCJpbnRlcm5hbHMuaXNDaGFuZ2lu
Z1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pIiwgZmFsc2UpOworICAgICAgICB0ZXN0RXhwZWN0ZWQo
J3ZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuJywgdHJ1ZSk7CiAgICAgICAgIGNvbnNv
bGVXcml0ZSgiRW50ZXJlZCBmdWxsc2NyZWVuIik7CiAgICAgICAgIHJ1bigndmlkZW8uY3VycmVu
dFRpbWUgPSA1Jyk7CiAgICAgICAgIHJ1bigndmlkZW8ud2Via2l0RXhpdEZ1bGxzY3JlZW4oKScp
OwpAQCAtNDUsNyArNDYsOCBAQAogCiAgICAgYXN5bmMgZnVuY3Rpb24gZW5kZnVsbHNjcmVlbigp
CiAgICAgewotICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby53ZWJr
aXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIGZhbHNlKTsKKyAgICAgICAgYXdhaXQgdGVzdEV4cGVj
dGVkRXZlbnR1YWxseSgiaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVv
KSIsIGZhbHNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby53ZWJraXREaXNwbGF5aW5n
RnVsbHNjcmVlbicsIGZhbHNlKTsKICAgICAgICAgY29uc29sZVdyaXRlKCJFeGl0ZWQgZnVsbHNj
cmVlbiIpOwogICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnBhdXNlZCcsIGZhbHNlKTsKICAg
ICAgICAgcnVuKCd2aWRlby5vbnRpbWV1cGRhdGUgPSB0aW1ldXBkYXRlJyk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXBhdXNlLWlubGluZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXBhdXNlLWlubGluZS1l
eHBlY3RlZC50eHQKaW5kZXggM2FiYzllMjkyYTY0NmJjMjBjY2YzOWU3ZTkyMmMzMjg5ZGE0MmU1
NS4uOTNhYmYxYTZlNmI5ODc4ZjEzZmY1NDg4NzIyMjQwYmZhMjhmYzFiYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1wYXVzZS1pbmxpbmUtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcGF1c2UtaW5saW5l
LWV4cGVjdGVkLnR4dApAQCAtNCwxNSArNCwxOCBAQCBUZXN0IHRoYXQgYSA8dmlkZW8+IGtlZXBz
IHBsYXlpbmcgYWZ0ZXIgZXhpdGluZyBmdWxsc2NyZWVuIHdoZW4gdGhlIGludGVybmFsIHBybwog
UlVOKHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgImNvbnRlbnQvdGVzdCIpKQog
RVZFTlQoY2FucGxheXRocm91Z2gpCiBSVU4odmlkZW8ucGxheSgpLnRoZW4ocGxheWluZyk7KQor
RVhQRUNURUQgKGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykgPT0g
J2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9
PSAndHJ1ZScpIE9LCiBSVU4odmlkZW8ud2Via2l0RXhpdEZ1bGxzY3JlZW4oKSkKIEVWRU5UKHdl
YmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkKQorRVhQRUNURUQgKGludGVybmFscy5pc0NoYW5n
aW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykgPT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2aWRl
by53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZp
ZGVvLnBhdXNlZCA9PSAnZmFsc2UnKSBPSwogUlVOKHZpZGVvLnBhdXNlKCkpCiBFVkVOVChwYXVz
ZSkKIEVYUEVDVEVEICh2aWRlby5wYXVzZWQgPT0gJ3RydWUnKSBPSwogUlVOKHZpZGVvLnBsYXko
KS50aGVuKHBsYXlpbmdBZ2FpbikpCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVz
ZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtp
dERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICd0cnVlJykgT0sKIEVORCBPRiBURVNUCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcGF1c2UtaW5saW5lLmh0
bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXBhdXNlLWlubGluZS5odG1s
CmluZGV4IGZjOGEyNWU1Y2E4MzI0MjljMWU3Mzg5NTUxOTY3YmY5YmI1Y2E2NGMuLjVkYWIzNDk2
MTUzMTZmNzVmZmQ2MmYzOTc3YjllMGM1M2NhMDQ3OTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcGF1c2UtaW5saW5lLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1wYXVzZS1pbmxpbmUuaHRtbApAQCAtMzMsMTQgKzMz
LDE2IEBACiAKICAgICBhc3luYyBmdW5jdGlvbiBwbGF5aW5nKCkKICAgICB7Ci0gICAgICAgIGF3
YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2Ny
ZWVuJywgdHJ1ZSk7CisgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoImludGVy
bmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykiLCBmYWxzZSk7CisgICAgICAg
IHRlc3RFeHBlY3RlZCgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCB0cnVlKTsK
ICAgICAgICAgd2FpdEZvckV2ZW50T25jZSgnd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQn
LCBlbmRmdWxsc2NyZWVuKTsKICAgICAgICAgcnVuKCd2aWRlby53ZWJraXRFeGl0RnVsbHNjcmVl
bigpJyk7CiAgICAgfQogCiAgICAgYXN5bmMgZnVuY3Rpb24gZW5kZnVsbHNjcmVlbigpCiAgICAg
ewotICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby53ZWJraXREaXNw
bGF5aW5nRnVsbHNjcmVlbicsIGZhbHNlKTsKKyAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZl
bnR1YWxseSgiaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZh
bHNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNj
cmVlbicsIGZhbHNlKTsKICAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby5wYXVzZWQnLCBmYWxz
ZSk7CiAgICAgICAgIHdhaXRGb3JFdmVudE9uY2UoJ3BhdXNlJywgcGF1c2VkKTsKICAgICAgICAg
cnVuKCd2aWRlby5wYXVzZSgpJyk7CkBAIC01NCw3ICs1Niw4IEBACiAKICAgICBhc3luYyBmdW5j
dGlvbiBwbGF5aW5nQWdhaW4oKQogICAgIHsKLSAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZl
bnR1YWxseSgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCB0cnVlKTsKKyAgICAg
ICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVz
ZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRl
by53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIHRydWUpOwogICAgICAgICBlbmRUZXN0KCk7
CiAgICAgfQogICAgIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVk
aWEtZnVsbHNjcmVlbi1yZXR1cm4tdG8taW5saW5lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcmV0dXJuLXRvLWlubGluZS1leHBlY3RlZC50eHQKaW5k
ZXggYWU4NzI5Y2ViODkxZjIyZTFlYzExOGQyNjAxOGUzOGYyODE3ZjBhZi4uNDQyZDEzMmQwZWQ0
ZWUwOTJhMDFhNTkwMTVhMzE0N2U4ZWJlNDFjYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVk
aWEvbWVkaWEtZnVsbHNjcmVlbi1yZXR1cm4tdG8taW5saW5lLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXJldHVybi10by1pbmxpbmUtZXhwZWN0
ZWQudHh0CkBAIC01LDE2ICs1LDIwIEBAIFJVTih2aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxlKCJ2
aWRlbyIsICJjb250ZW50L3Rlc3QiKSkKIEVWRU5UKGNhbnBsYXl0aHJvdWdoKQogUlVOKHZpZGVv
LnBsYXkoKSkKIEVWRU5UKHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkKQorRVhQRUNURUQg
KGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykgPT0gJ2ZhbHNlJykg
T0sKIEVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAndHJ1ZScp
IE9LCiBSVU4odmlkZW8ud2Via2l0RXhpdEZ1bGxzY3JlZW4oKSkKLUVWRU5UKHBhdXNlKQorRVZF
TlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQpCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlz
Q2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQg
KHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICdmYWxzZScpIE9LCiBFWFBFQ1RF
RCAodmlkZW8ucGF1c2VkID09ICd0cnVlJykgT0sKIFJVTih2aWRlby5wbGF5KCkpCiBFVkVOVCh3
ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCkKK0VYUEVDVEVEIChpbnRlcm5hbHMuaXNDaGFu
Z2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pID09ICdmYWxzZScpIE9LCiBFWFBFQ1RFRCAodmlk
ZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ3RydWUnKSBPSwogUlVOKHZpZGVvLndl
YmtpdEV4aXRGdWxsc2NyZWVuKCkpCiBFVkVOVCh3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdl
ZCkKK0VYUEVDVEVEIChpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8p
ID09ICdmYWxzZScpIE9LCiBFWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3Jl
ZW4gPT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2aWRlby5wYXVzZWQgPT0gJ2ZhbHNlJykgT0sK
IEVORCBPRiBURVNUCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2Ny
ZWVuLXJldHVybi10by1pbmxpbmUuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxz
Y3JlZW4tcmV0dXJuLXRvLWlubGluZS5odG1sCmluZGV4IDUwN2NkMWYxNzMzMzc0OTc1MWMzNDgw
MWNhOWZiZjk1MTI1ZGVhMGMuLmNiOTFhNWMxNzU3ODUwNjRhOTBkMjhhNDZhMTBiMTQ2N2ZkYzdk
ZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcmV0dXJu
LXRvLWlubGluZS5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4t
cmV0dXJuLXRvLWlubGluZS5odG1sCkBAIC0zNCwxNCArMzQsMTYgQEAKIAogICAgIGFzeW5jIGZ1
bmN0aW9uIGJlZ2luZnVsbHNjcmVlbjEoKQogICAgIHsKLSAgICAgICAgYXdhaXQgdGVzdEV4cGVj
dGVkRXZlbnR1YWxseSgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCB0cnVlKTsK
LSAgICAgICAgd2FpdEZvckV2ZW50T25jZSgncGF1c2UnLCBwYXVzZSk7CisgICAgICAgIGF3YWl0
IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoImludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9u
TW9kZSh2aWRlbykiLCBmYWxzZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8ud2Via2l0
RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCB0cnVlKTsKKyAgICAgICAgd2FpdEZvckV2ZW50T25jZSgn
d2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQnLCBlbmRmdWxsc2NyZWVuMSk7CiAgICAgICAg
IHJ1bigndmlkZW8ud2Via2l0RXhpdEZ1bGxzY3JlZW4oKScpOwogICAgIH0KIAotICAgIGFzeW5j
IGZ1bmN0aW9uIHBhdXNlKCkKKyAgICBhc3luYyBmdW5jdGlvbiBlbmRmdWxsc2NyZWVuMSgpCiAg
ICAgewotICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby53ZWJraXRE
aXNwbGF5aW5nRnVsbHNjcmVlbicsIGZhbHNlKTsKKyAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVk
RXZlbnR1YWxseSgiaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSIs
IGZhbHNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVs
bHNjcmVlbicsIGZhbHNlKTsKICAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby5wYXVzZWQnLCB0
cnVlKTsKIAogICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dzSW5saW5lTWVkaWFQ
bGF5YmFja0FmdGVyRnVsbHNjcmVlbih0cnVlKTsKQEAgLTUyLDE0ICs1NCwxNiBAQAogCiAgICAg
YXN5bmMgZnVuY3Rpb24gYmVnaW5mdWxsc2NyZWVuMigpCiAgICAgewotICAgICAgICBhd2FpdCB0
ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbics
IHRydWUpOwotICAgICAgICB3YWl0Rm9yRXZlbnRPbmNlKCd3ZWJraXRwcmVzZW50YXRpb25tb2Rl
Y2hhbmdlZCcsIGVuZGZ1bGxzY3JlZW4pOworICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVu
dHVhbGx5KCJpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pIiwgZmFs
c2UpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2Ny
ZWVuJywgdHJ1ZSk7CisgICAgICAgIHdhaXRGb3JFdmVudE9uY2UoJ3dlYmtpdHByZXNlbnRhdGlv
bm1vZGVjaGFuZ2VkJywgZW5kZnVsbHNjcmVlbjIpOwogICAgICAgICBydW4oJ3ZpZGVvLndlYmtp
dEV4aXRGdWxsc2NyZWVuKCknKTsKICAgICB9CiAKLSAgICBhc3luYyBmdW5jdGlvbiBlbmRmdWxs
c2NyZWVuKCkKKyAgICBhc3luYyBmdW5jdGlvbiBlbmRmdWxsc2NyZWVuMigpCiAgICAgewotICAg
ICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby53ZWJraXREaXNwbGF5aW5n
RnVsbHNjcmVlbicsIGZhbHNlKTsKKyAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxs
eSgiaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsK
KyAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbics
IGZhbHNlKTsKICAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby5wYXVzZWQnLCBmYWxzZSk7CiAg
ICAgICAgIGVuZFRlc3QoKTsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWlu
bGluZS10by1mdWxsc2NyZWVuLXRvLXBpcC10by1pbmxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xsZXIvbWVkaWEt
Y29udHJvbGxlci1pbmxpbmUtdG8tZnVsbHNjcmVlbi10by1waXAtdG8taW5saW5lLWV4cGVjdGVk
LnR4dAppbmRleCA1MmU0MjIxOGZkZWEyNmMzMjViNWEwMDhkMjZjNzMyODAwZTczNGQzLi4yNjlh
MTJmNzA2NGJlNmQyZDBmOTRkYmIzOTg4OGQ2ODQ5OTk0NjYzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1j
b250cm9sbGVyLWlubGluZS10by1mdWxsc2NyZWVuLXRvLXBpcC10by1pbmxpbmUtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1j
b250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItaW5saW5lLXRvLWZ1bGxzY3JlZW4tdG8tcGlwLXRv
LWlubGluZS1leHBlY3RlZC50eHQKQEAgLTgsMTggKzgsMTggQEAgUEFTUyBzaGFkb3dSb290LnF1
ZXJ5U2VsZWN0b3IoJy5tZWRpYS1jb250cm9scycpLmNsYXNzTGlzdC5jb250YWlucygnaW5saW5l
JykgaXMKIE1lZGlhIHN0YXJ0ZWQgcGxheWluZywgd2UgcGF1c2UgaXQgYW5kIGVudGVyIGZ1bGxz
Y3JlZW4gYnkgY2xpY2tpbmcgb24gdGhlIG1hdGNoaW5nIGJ1dHRvbi4KIAogTWVkaWEgcmVjZWl2
ZWQgYSB3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCBldmVudCwgbWVkaWEud2Via2l0UHJl
c2VudGF0aW9uTW9kZSA9IGZ1bGxzY3JlZW4uCi1QQVNTIG1lZGlhLndlYmtpdERpc3BsYXlpbmdG
dWxsc2NyZWVuIGJlY2FtZSB0cnVlCitQQVNTIGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0
aW9uTW9kZShtZWRpYSkgYmVjYW1lIGZhbHNlCiBQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cignLm1lZGlhLWNvbnRyb2xzJykuY2xhc3NMaXN0LmNvbnRhaW5zKCdmdWxsc2NyZWVuJykgaXMg
dHJ1ZQogCiBXZSBlbnRlciBwaWN0dXJlLWluLXBpY3R1cmUgYnkgY2xpY2tpbmcgb24gdGhlIG1h
dGNoaW5nIGJ1dHRvbi4KIAogTWVkaWEgcmVjZWl2ZWQgYSB3ZWJraXRwcmVzZW50YXRpb25tb2Rl
Y2hhbmdlZCBldmVudCwgbWVkaWEud2Via2l0UHJlc2VudGF0aW9uTW9kZSA9IHBpY3R1cmUtaW4t
cGljdHVyZS4KLVBBU1MgbWVkaWEud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gYmVjYW1lIHRy
dWUKK1BBU1MgaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKG1lZGlhKSBiZWNh
bWUgZmFsc2UKIAogV2UgZXhpdCBwaWN0dXJlLWluLXBpY3R1cmUuCiAKIE1lZGlhIHJlY2VpdmVk
IGEgd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQgZXZlbnQsIG1lZGlhLndlYmtpdFByZXNl
bnRhdGlvbk1vZGUgPSBpbmxpbmUuCi1QQVNTIG1lZGlhLndlYmtpdERpc3BsYXlpbmdGdWxsc2Ny
ZWVuIGJlY2FtZSBmYWxzZQorUEFTUyBpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1v
ZGUobWVkaWEpIGJlY2FtZSBmYWxzZQogUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5t
ZWRpYS1jb250cm9scycpLmNsYXNzTGlzdC5jb250YWlucygnaW5saW5lJykgaXMgdHJ1ZQogCiBQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9s
bGVyLWlubGluZS10by1mdWxsc2NyZWVuLXRvLXBpcC10by1pbmxpbmUuaHRtbCBiL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNv
bnRyb2xsZXItaW5saW5lLXRvLWZ1bGxzY3JlZW4tdG8tcGlwLXRvLWlubGluZS5odG1sCmluZGV4
IDRkNjE3NjZmZDhhMWVlYzY1MTJhMWQ1NDc1ODhlZjUwNWE3Njc1NWYuLjMxZjY3ZThhMGRhNTdk
Y2NlYWYxY2EyYmFiYjYxYjZjM2VhNjBmYmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXIt
aW5saW5lLXRvLWZ1bGxzY3JlZW4tdG8tcGlwLXRvLWlubGluZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNv
bnRyb2xsZXItaW5saW5lLXRvLWZ1bGxzY3JlZW4tdG8tcGlwLXRvLWlubGluZS5odG1sCkBAIC0y
Niw0NiArMjYsNDIgQEAgbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKICAg
ICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IGNsaWNrT25FbGVtZW50KHNoYWRv
d1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLmZ1bGxzY3JlZW4iKSkpOwogfSk7CiAKLWxldCBw
cmV2aW91c1ByZXNlbnRhdGlvbk1vZGUgPSBtZWRpYS53ZWJraXRQcmVzZW50YXRpb25Nb2RlOwot
bWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQiLCAo
KSA9PiB7Ci0gICAgaWYgKHByZXZpb3VzUHJlc2VudGF0aW9uTW9kZSA9PT0gbWVkaWEud2Via2l0
UHJlc2VudGF0aW9uTW9kZSkKLSAgICAgICAgcmV0dXJuOwotCittZWRpYS5hZGRFdmVudExpc3Rl
bmVyKCJ3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCIsIGFzeW5jICgpID0+IHsKICAgICBk
ZWJ1ZygiIik7CiAgICAgZGVidWcoYE1lZGlhIHJlY2VpdmVkIGEgd2Via2l0cHJlc2VudGF0aW9u
bW9kZWNoYW5nZWQgZXZlbnQsIG1lZGlhLndlYmtpdFByZXNlbnRhdGlvbk1vZGUgPSAke21lZGlh
LndlYmtpdFByZXNlbnRhdGlvbk1vZGV9LmApOwogCi0gICAgbGV0IGRpc3BsYXlpbmdGdWxsc2Ny
ZWVuID0gInRydWUiOwotICAgIGlmIChtZWRpYS53ZWJraXRQcmVzZW50YXRpb25Nb2RlID09ICJp
bmxpbmUiKQotICAgICAgICBkaXNwbGF5aW5nRnVsbHNjcmVlbiA9ICJmYWxzZSI7CisgICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUs
IHJlamVjdCkgPT4geworICAgICAgICAgICAgc2V0VGltZW91dChyZWplY3QsIDIwMDApOworICAg
ICAgICAgICAgc2hvdWxkQmVjb21lRXF1YWwoImludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0
aW9uTW9kZShtZWRpYSkiLCAiZmFsc2UiLCByZXNvbHZlKTsKKyAgICAgICAgfSk7CisgICAgfQog
Ci0gICAgc2hvdWxkQmVjb21lRXF1YWwoIm1lZGlhLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVu
IiwgZGlzcGxheWluZ0Z1bGxzY3JlZW4sICgpID0+IHsKLSAgICAgICAgcHJldmlvdXNQcmVzZW50
YXRpb25Nb2RlID0gbWVkaWEud2Via2l0UHJlc2VudGF0aW9uTW9kZTsKLSAgICAgICAgc3dpdGNo
IChtZWRpYS53ZWJraXRQcmVzZW50YXRpb25Nb2RlKSB7Ci0gICAgICAgIGNhc2UgImZ1bGxzY3Jl
ZW4iOgotICAgICAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5t
ZWRpYS1jb250cm9scycpLmNsYXNzTGlzdC5jb250YWlucygnZnVsbHNjcmVlbicpIik7CisgICAg
c3dpdGNoIChtZWRpYS53ZWJraXRQcmVzZW50YXRpb25Nb2RlKSB7CisgICAgY2FzZSAiZnVsbHNj
cmVlbiI6CisgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAg
ICAgICAgICAgc2hvdWxkQmVUcnVlKCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5tZWRpYS1j
b250cm9scycpLmNsYXNzTGlzdC5jb250YWlucygnZnVsbHNjcmVlbicpIik7CiAKLSAgICAgICAg
ICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICAgICAgZGVidWcoIldlIGVudGVyIHBpY3R1
cmUtaW4tcGljdHVyZSBieSBjbGlja2luZyBvbiB0aGUgbWF0Y2hpbmcgYnV0dG9uLiIpOwotICAg
ICAgICAgICAgICAgIGNsaWNrT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0
dG9uLnBpcCIpKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgInBpY3R1cmUtaW4tcGljdHVyZSI6CiAgICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAg
ICAgICAgICBkZWJ1ZygiV2UgZXhpdCBwaWN0dXJlLWluLXBpY3R1cmUuIik7Ci0gICAgICAgICAg
ICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiBtZWRpYS53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2Rl
KCJpbmxpbmUiKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAiaW5saW5lIjoK
LSAgICAgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewotICAgICAg
ICAgICAgICAgIHNob3VsZEJlVHJ1ZSgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcubWVkaWEt
Y29udHJvbHMnKS5jbGFzc0xpc3QuY29udGFpbnMoJ2lubGluZScpIik7CisgICAgICAgICAgICBk
ZWJ1ZygiV2UgZW50ZXIgcGljdHVyZS1pbi1waWN0dXJlIGJ5IGNsaWNraW5nIG9uIHRoZSBtYXRj
aGluZyBidXR0b24uIik7CisgICAgICAgICAgICBjbGlja09uRWxlbWVudChzaGFkb3dSb290LnF1
ZXJ5U2VsZWN0b3IoImJ1dHRvbi5waXAiKSk7CisgICAgICAgIH0pOworICAgICAgICBicmVhazsK
KyAgICBjYXNlICJwaWN0dXJlLWluLXBpY3R1cmUiOgorICAgICAgICBkZWJ1ZygiIik7CisgICAg
ICAgIGRlYnVnKCJXZSBleGl0IHBpY3R1cmUtaW4tcGljdHVyZS4iKTsKKyAgICAgICAgd2luZG93
LnNldFRpbWVvdXQoKCkgPT4gbWVkaWEud2Via2l0U2V0UHJlc2VudGF0aW9uTW9kZSgiaW5saW5l
IikpOworICAgICAgICBicmVhazsKKyAgICBjYXNlICJpbmxpbmUiOgorICAgICAgICB3aW5kb3cu
cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgi
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcubWVkaWEtY29udHJvbHMnKS5jbGFzc0xpc3QuY29u
dGFpbnMoJ2lubGluZScpIik7CiAKLSAgICAgICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAg
ICAgICAgICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7
Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfSk7
CisgICAgICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKKyAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9KTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQogfSk7CiAKIGZ1bmN0aW9uIGNsaWNrT25FbGVtZW50KGVsZW1lbnQpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9tZWRpYS9wcmVzZW50YXRpb25tb2RlY2hhbmdlZC1maXJlZC1vbmNlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3ByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkLWZp
cmVkLW9uY2UtZXhwZWN0ZWQudHh0CmluZGV4IGExOGU4YmI4NmVlMzdjMjM5Yjg3NjkyZDE4MDFh
ODVkMmIwZTJkOWMuLmRlNGNhNWJjYTQ2MjliOGU4Mzk4YTJmNTllY2QzYjBjNGMzNDgyOWIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3ByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkLWZpcmVk
LW9uY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ByZXNlbnRhdGlvbm1v
ZGVjaGFuZ2VkLWZpcmVkLW9uY2UtZXhwZWN0ZWQudHh0CkBAIC01LDcgKzUsNyBAQCBFVkVOVChj
YW5wbGF5dGhyb3VnaCkKIFJVTih2aWRlby5wbGF5KCkpCiBSVU4odmlkZW8ud2Via2l0U2V0UHJl
c2VudGF0aW9uTW9kZSgicGljdHVyZS1pbi1waWN0dXJlIikpCiBFVkVOVCh3ZWJraXRwcmVzZW50
YXRpb25tb2RlY2hhbmdlZCkKLUVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNj
cmVlbiA9PSAndHJ1ZScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50
YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdFBy
ZXNlbnRhdGlvbk1vZGUgPT0gJ3BpY3R1cmUtaW4tcGljdHVyZScpIE9LCiBSVU4odmlkZW8ud2Vi
a2l0U2V0UHJlc2VudGF0aW9uTW9kZSgiaW5saW5lIikpCiBFVkVOVCh3ZWJraXRwcmVzZW50YXRp
b25tb2RlY2hhbmdlZCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ByZXNlbnRhdGlv
bm1vZGVjaGFuZ2VkLWZpcmVkLW9uY2UuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3ByZXNlbnRh
dGlvbm1vZGVjaGFuZ2VkLWZpcmVkLW9uY2UuaHRtbAppbmRleCA1MzhiZDEyN2JjOTFhOTk5MGE1
MDdjOTI0ZjNjYmI1NDMxYWE0N2Q0Li5jMmI1ZDZjMWM2MzU5OGQ0MWM0ZDlhNWNhYTAyN2I0MTU0
ODEzMzU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9wcmVzZW50YXRpb25tb2RlY2hh
bmdlZC1maXJlZC1vbmNlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvcHJlc2VudGF0aW9u
bW9kZWNoYW5nZWQtZmlyZWQtb25jZS5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAKICAgICAgICAg
YXN5bmMgZnVuY3Rpb24gcHJlc2VudGF0aW9uTW9kZUNoYW5nZWQxKCkKICAgICAgICAgewotICAg
ICAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8ud2Via2l0RGlzcGxh
eWluZ0Z1bGxzY3JlZW4nLCB0cnVlKTsKKyAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2
ZW50dWFsbHkoImludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykiLCBm
YWxzZSk7CiAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdFByZXNlbnRhdGlv
bk1vZGUiLCAicGljdHVyZS1pbi1waWN0dXJlIik7CiAgICAgICAgICAgICBydW5XaXRoS2V5RG93
bigndmlkZW8ud2Via2l0U2V0UHJlc2VudGF0aW9uTW9kZSgiaW5saW5lIiknKTsKICAgICAgICAg
ICAgIHdhaXRGb3JFdmVudCgid2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQiLCBwcmVzZW50
YXRpb25Nb2RlQ2hhbmdlZDIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8t
ZnVsbHNjcmVlbi1vbmx5LXBsYXliYWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlh
L3ZpZGVvLWZ1bGxzY3JlZW4tb25seS1wbGF5YmFjay1leHBlY3RlZC50eHQKaW5kZXggYzE3MmI1
MmVmNDY0NDMzZDI5ODhlOTYzNjk5MzcxMWYxYzgzMzMwZS4uMzM1YzViMmUwNmVlMjVjMWQ5ZjU5
ZGZiOTk0MDk5NGM4MzEzMzhkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8t
ZnVsbHNjcmVlbi1vbmx5LXBsYXliYWNrLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9t
ZWRpYS92aWRlby1mdWxsc2NyZWVuLW9ubHktcGxheWJhY2stZXhwZWN0ZWQudHh0CkBAIC03LDEz
ICs3LDE2IEBAIEVYUEVDVEVEICh2aWRlby53ZWJraXRTdXBwb3J0c0Z1bGxzY3JlZW4gPT0gJ3Ry
dWUnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICdm
YWxzZScpIE9LCiBSVU4odmlkZW8ucGxheSgpKQogRVZFTlQocGxheWluZykKLUVYUEVDVEVEICh2
aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAndHJ1ZScpIE9LCiAKLSoqIEVudGVy
ZWQgZnVsbHNjcmVlbgorKiogU3RhcnRlZCBwbGF5aW5nCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlz
Q2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQg
KHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICd0cnVlJykgT0sKIFJVTih2aWRl
by53ZWJraXRFeGl0RnVsbFNjcmVlbigpKQogRVZFTlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNo
YW5nZWQpCi1FWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ2Zh
bHNlJykgT0sKIAotKiogRXhpdGVkIGZ1bGxzY3JlZW4KKyoqIFJlY2VpdmVkIHdlYmtpdHByZXNl
bnRhdGlvbm1vZGVjaGFuZ2VkIGV2ZW50CitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQ
cmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSworRXhpdGVkIGZ1bGxzY3JlZW4K
K0VYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAnZmFsc2UnKSBP
SwogRU5EIE9GIFRFU1QKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tZnVs
bHNjcmVlbi1vbmx5LXBsYXliYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1mdWxs
c2NyZWVuLW9ubHktcGxheWJhY2suaHRtbAppbmRleCA4ZmYzMWI2ODRmZjAwMDQxZWU2MzMyZmFl
YmIzZGQ3NWUwMjZiNzJjLi41YzIxY2I5MjBlMmFiMGZkNjg0ZTZiYTllODk2YTIxOWVlZWRmZWQz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1mdWxsc2NyZWVuLW9ubHktcGxh
eWJhY2suaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1mdWxsc2NyZWVuLW9ubHkt
cGxheWJhY2suaHRtbApAQCAtNDAsMTYgKzQwLDE5IEBACiAKICAgICAgICAgICAgIGFzeW5jIGZ1
bmN0aW9uIHBsYXlpbmcoKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGF3YWl0IHRl
c3RFeHBlY3RlZEV2ZW50dWFsbHkoInZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIiwg
dHJ1ZSk7Ci0gICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogRW50ZXJlZCBmdWxs
c2NyZWVuIik7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogU3RhcnRlZCBw
bGF5aW5nIik7CisgICAgICAgICAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgi
aW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2Ny
ZWVuIiwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50T25jZSgnd2Via2l0cHJl
c2VudGF0aW9ubW9kZWNoYW5nZWQnLCBlbmRmdWxsc2NyZWVuKTsKICAgICAgICAgICAgICAgICBy
dW4oInZpZGVvLndlYmtpdEV4aXRGdWxsU2NyZWVuKCkiKTsKICAgICAgICAgICAgIH0KIAogICAg
ICAgICAgICAgYXN5bmMgZnVuY3Rpb24gZW5kZnVsbHNjcmVlbigpCiAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgidmlkZW8ud2Via2l0
RGlzcGxheWluZ0Z1bGxzY3JlZW4iLCBmYWxzZSk7Ci0gICAgICAgICAgICAgICAgY29uc29sZVdy
aXRlKCI8YnI+KiogRXhpdGVkIGZ1bGxzY3JlZW4iKTsKKyAgICAgICAgICAgICAgICBjb25zb2xl
V3JpdGUoIjxicj4qKiBSZWNlaXZlZCB3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCBldmVu
dCIpOworICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoImludGVy
bmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykiLCBmYWxzZSk7CisgICAgICAg
ICAgICAgICAgY29uc29sZVdyaXRlKCJFeGl0ZWQgZnVsbHNjcmVlbiIpOworICAgICAgICAgICAg
ICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4iLCBmYWxz
ZSk7CiAgICAgICAgICAgICAgICAgZW5kVGVzdCgpOwogICAgICAgICAgICAgfQogICAgICAgICA8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXBsYXlzaW5saW5l
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXBsYXlzaW5saW5lLWV4cGVj
dGVkLnR4dAppbmRleCAwNDE0NTczZjBjNDZjZDczZmNlMjQ0OGVkNjljOWZmOGQ1MThmY2FhLi41
ZWRjYWQxN2M2OGQzMjhhNDRjNDcxMTFiOGQwMjg5YjlhOWI5MWMzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9tZWRpYS92aWRlby1wbGF5c2lubGluZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvbWVkaWEvdmlkZW8tcGxheXNpbmxpbmUtZXhwZWN0ZWQudHh0CkBAIC0zLDYgKzMsNyBA
QCBSVU4odmlkZW8ucGxheXNJbmxpbmUgPSBmYWxzZSkKIEVWRU5UKGNhbnBsYXl0aHJvdWdoKQog
UlVOKHZpZGVvLnBsYXkoKSkKIEVWRU5UKHBsYXlpbmcpCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlz
Q2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQg
KHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICd0cnVlJykgT0sKIFJVTihpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0SW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVB
dHRyaWJ1dGUodHJ1ZSkpCiBSVU4odmlkZW8ucGxheXNJbmxpbmUgPSB0cnVlKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcGxheXNpbmxpbmUuaHRtbCBiL0xheW91dFRlc3Rz
L21lZGlhL3ZpZGVvLXBsYXlzaW5saW5lLmh0bWwKaW5kZXggZmE2YTczMTI0NGQ5NzBiM2M5MmRk
YTViNjBiOGQ3MjkyNDlmNTFkYi4uZDA5ZDRjYzVkNDIyYzliODI2OWNhZDRjNjI2M2Q0MmZjMjJk
MTliZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcGxheXNpbmxpbmUuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1wbGF5c2lubGluZS5odG1sCkBAIC0zMCw3
ICszMCwxMCBAQCBmdW5jdGlvbiB0ZXN0UGxheXNJbmxpbmUocmVxdWlyZXNQbGF5c0lubGluZSwg
aGFzUGxheXNJbmxpbmUsIGV4cGVjdGVkRGlzcGxheWluZwogICAgICAgICAgICAgcnVuKCd2aWRl
by5wbGF5KCknKTsKICAgICAgICAgfSk7CiAgICAgfSkKLSAgICB3YWl0Rm9yRXZlbnRPbmNlKCdw
bGF5aW5nJywgKCkgPT4geworICAgIHdhaXRGb3JFdmVudE9uY2UoJ3BsYXlpbmcnLCBhc3luYyAo
KSA9PiB7CisgICAgICAgIGlmIChleHBlY3RlZERpc3BsYXlpbmdGdWxsc2NyZWVuKQorICAgICAg
ICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgnaW50ZXJuYWxzLmlzQ2hhbmdpbmdQ
cmVzZW50YXRpb25Nb2RlKHZpZGVvKScsIGZhbHNlKTsKKwogICAgICAgICB0ZXN0RXhwZWN0ZWQo
J3ZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuJywgZXhwZWN0ZWREaXNwbGF5aW5nRnVs
bHNjcmVlbik7CiAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodmlkZW8pOwogICAg
ICAgICBydW5OZXh0VGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8t
cHJlc2VudGF0aW9uLW1vZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8t
cHJlc2VudGF0aW9uLW1vZGUtZXhwZWN0ZWQudHh0CmluZGV4IDFkN2RiMDI4MjQ5OWQzOTMwOWFm
YTIwZDllYzc1ZDFjOGEyNTEzNTkuLmFiYTlmNDUzNjAwYWU3OGVmYTVjYmVmYzk1OWQ4NmEyMzI5
NzZkN2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1t
b2RlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1wcmVzZW50YXRp
b24tbW9kZS1leHBlY3RlZC50eHQKQEAgLTQsMzAgKzQsMzAgQEAgVGVzdCB0aGUgdmlkZW8gcHJl
c2VudGF0aW9uIG1vZGUgKHZpZGVvIGZ1bGxzY3JlZW4gYW5kIHBpY3R1cmUtaW4tcGljdHVyZSkg
QVBJLgogCiBFVkVOVChjYW5wbGF5dGhyb3VnaCkKIEVYUEVDVEVEICh2aWRlby53ZWJraXRTdXBw
b3J0c0Z1bGxzY3JlZW4gPT0gJ3RydWUnKSBPSwotRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3Bs
YXlpbmdGdWxsc2NyZWVuID09ICdmYWxzZScpIE9LCitFWFBFQ1RFRCAodmlkZW8ud2Via2l0UHJl
c2VudGF0aW9uTW9kZSA9PSAnaW5saW5lJykgT0sKIAogKiogVHJ5IHRvIGVudGVyIGZ1bGxzY3Jl
ZW4KIFJVTih2aWRlby53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdmdWxsc2NyZWVuJykpCiBF
VkVOVCh3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCkKLUVYUEVDVEVEICh2aWRlby53ZWJr
aXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAndHJ1ZScpIE9LCiAKLSoqIEVudGVyZWQgZnVsbHNj
cmVlbgorKiogUmVjZWl2ZWQgd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQgZXZlbnQKK0VY
UEVDVEVEIChpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pID09ICdm
YWxzZScpIE9LCiBFWFBFQ1RFRCAodmlkZW8ud2Via2l0UHJlc2VudGF0aW9uTW9kZSA9PSAnZnVs
bHNjcmVlbicpIE9LCiAKICoqIFRyeSB0byBlbnRlciBwaWN0dXJlLWluLXBpY3R1cmUKIFJVTih2
aWRlby53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdwaWN0dXJlLWluLXBpY3R1cmUnKSkKIEVW
RU5UKHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkKQotRVhQRUNURUQgKHZpZGVvLndlYmtp
dERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICd0cnVlJykgT0sKIAotKiogRW50ZXJlZCBwaWN0dXJl
LWluLXBpY3R1cmUKKyoqIFJlY2VpdmVkIHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIGV2
ZW50CitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVv
KSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUg
PT0gJ3BpY3R1cmUtaW4tcGljdHVyZScpIE9LCiAKICoqIFRyeSB0byByZXR1cm4gdG8gaW5saW5l
CiBSVU4odmlkZW8ud2Via2l0U2V0UHJlc2VudGF0aW9uTW9kZSgnaW5saW5lJykpCiBFVkVOVCh3
ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCkKLUVYUEVDVEVEICh2aWRlby53ZWJraXREaXNw
bGF5aW5nRnVsbHNjcmVlbiA9PSAnZmFsc2UnKSBPSwogCi0qKiBSZXR1cm5lZCB0byBpbmxpbmUK
KyoqIFJlY2VpdmVkIHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIGV2ZW50CitFWFBFQ1RF
RCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2Un
KSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUgPT0gJ2lubGluZScp
IE9LCiAKICoqIFRlc3QgQ29tcGxldGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92
aWRlby1wcmVzZW50YXRpb24tbW9kZS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJl
c2VudGF0aW9uLW1vZGUuaHRtbAppbmRleCAzMDU2ZDE1ZTFhOWMyZDFjYWZjYjFlMGUyOGNmYTRi
N2I5Nzc2NGQ4Li5mMTA1Yzg1NTBjOTA1Mjk3ODQyMGQ0ZjU1MjIzNDdmMmE2NGFiZjEzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1wcmVzZW50YXRpb24tbW9kZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLmh0bWwKQEAgLTIx
LDcgKzIxLDcgQEAKICAgICAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIGNhbnBsYXl0aHJvdWdoKCkK
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtp
dFN1cHBvcnRzRnVsbHNjcmVlbiIsIHRydWUpOwotICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RF
eHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuJywgZmFs
c2UpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ud2Via2l0UHJlc2VudGF0
aW9uTW9kZSIsICJpbmxpbmUiKTsKIAogICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJy
PioqIFRyeSB0byBlbnRlciBmdWxsc2NyZWVuIik7CiAgICAgICAgICAgICAgICAgcnVuV2l0aEtl
eURvd24oInZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoJ2Z1bGxzY3JlZW4nKSIpOwpA
QCAtMzAsOCArMzAsOCBAQAogCiAgICAgICAgICAgICBhc3luYyBmdW5jdGlvbiBwcmVzZW50YXRp
b25Nb2RlQ2hhbmdlZDEoKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGF3YWl0IHRl
c3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuJywg
dHJ1ZSk7Ci0gICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogRW50ZXJlZCBmdWxs
c2NyZWVuIik7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogUmVjZWl2ZWQg
d2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQgZXZlbnQiKTsKKyAgICAgICAgICAgICAgICBh
d2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCJpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRh
dGlvbk1vZGUodmlkZW8pIiwgZmFsc2UpOwogICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgi
dmlkZW8ud2Via2l0UHJlc2VudGF0aW9uTW9kZSIsICJmdWxsc2NyZWVuIik7CiAgICAgICAgICAg
ICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogVHJ5IHRvIGVudGVyIHBpY3R1cmUtaW4tcGljdHVy
ZSIpOwogICAgICAgICAgICAgICAgIHdhaXRGb3JFdmVudE9uY2UoJ3dlYmtpdHByZXNlbnRhdGlv
bm1vZGVjaGFuZ2VkJywgcHJlc2VudGF0aW9uTW9kZUNoYW5nZWQyKTsKQEAgLTQwLDggKzQwLDgg
QEAKIAogICAgICAgICAgICAgYXN5bmMgZnVuY3Rpb24gcHJlc2VudGF0aW9uTW9kZUNoYW5nZWQy
KCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVu
dHVhbGx5KCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIHRydWUpOwotICAgICAg
ICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIEVudGVyZWQgcGljdHVyZS1pbi1waWN0dXJl
Iik7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogUmVjZWl2ZWQgd2Via2l0
cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQgZXZlbnQiKTsKKyAgICAgICAgICAgICAgICBhd2FpdCB0
ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCJpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1v
ZGUodmlkZW8pIiwgZmFsc2UpOwogICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8u
d2Via2l0UHJlc2VudGF0aW9uTW9kZSIsICJwaWN0dXJlLWluLXBpY3R1cmUiKTsKICAgICAgICAg
ICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4qKiBUcnkgdG8gcmV0dXJuIHRvIGlubGluZSIpOwog
ICAgICAgICAgICAgICAgIHdhaXRGb3JFdmVudE9uY2UoJ3dlYmtpdHByZXNlbnRhdGlvbm1vZGVj
aGFuZ2VkJywgdGVzdENvbXBsZXRlZCk7CkBAIC01MCw4ICs1MCw4IEBACiAKICAgICAgICAgICAg
IGFzeW5jIGZ1bmN0aW9uIHRlc3RDb21wbGV0ZWQoKQogICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLndlYmtpdERpc3BsYXlp
bmdGdWxsc2NyZWVuJywgZmFsc2UpOwotICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJy
PioqIFJldHVybmVkIHRvIGlubGluZSIpOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgi
PGJyPioqIFJlY2VpdmVkIHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIGV2ZW50Iik7Cisg
ICAgICAgICAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJuYWxzLmlz
Q2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKICAgICAgICAgICAgICAg
ICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUiLCAiaW5saW5lIik7
CiAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogVGVzdCBDb21wbGV0ZWQiKTsK
ICAgICAgICAgICAgICAgICBlbmRUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS92aWRlby13ZWJraXQtcGxheXNpbmxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVk
aWEvdmlkZW8td2Via2l0LXBsYXlzaW5saW5lLWV4cGVjdGVkLnR4dAppbmRleCA5Njc0ODk1NmU4
YjM2ODRiZmRiZDU4YmJhNjM1ZTdjNjljMTc5Njg0Li4wOTM5N2U5MmZiOGM5NmUyYzQ4Njc1M2Ew
ODI1ZGExNjM5ZTcxNWQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby13ZWJr
aXQtcGxheXNpbmxpbmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVv
LXdlYmtpdC1wbGF5c2lubGluZS1leHBlY3RlZC50eHQKQEAgLTMsMTIgKzMsMTQgQEAgUlVOKHZp
ZGVvLnJlbW92ZUF0dHJpYnV0ZSgid2Via2l0LXBsYXlzaW5saW5lIiwgIiIpKQogRVZFTlQoY2Fu
cGxheXRocm91Z2gpCiBSVU4odmlkZW8ucGxheSgpKQogRVZFTlQocGxheWluZykKK0VYUEVDVEVE
IChpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pID09ICdmYWxzZScp
IE9LCiBFWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ3RydWUn
KSBPSwogUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWly
ZXNQbGF5c0lubGluZUF0dHJpYnV0ZSh0cnVlKSkKIFJVTih2aWRlby5zZXRBdHRyaWJ1dGUoIndl
YmtpdC1wbGF5c2lubGluZSIsICIiKSkKIEVWRU5UKGNhbnBsYXl0aHJvdWdoKQogUlVOKHZpZGVv
LnBsYXkoKSkKIEVWRU5UKHBsYXlpbmcpCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQ
cmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndl
YmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICd0cnVlJykgT0sKIFJVTihpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0SW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUo
ZmFsc2UpKQogUlVOKHZpZGVvLnJlbW92ZUF0dHJpYnV0ZSgid2Via2l0LXBsYXlzaW5saW5lIiwg
IiIpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8td2Via2l0LXBsYXlzaW5s
aW5lLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby13ZWJraXQtcGxheXNpbmxpbmUuaHRt
bAppbmRleCA3ZWQ5NWY0ODgwNWZkMzA2Y2U2MjgyMjJhNWFiNDRiNmYxYmFjYTM1Li5hYjczMGIw
MzJiNDhmZTlmNTliZjYzMjcxYzNkYjQzMjNjMzI0OWVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9tZWRpYS92aWRlby13ZWJraXQtcGxheXNpbmxpbmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9t
ZWRpYS92aWRlby13ZWJraXQtcGxheXNpbmxpbmUuaHRtbApAQCAtMzAsNyArMzAsMTAgQEAgZnVu
Y3Rpb24gdGVzdFBsYXlzSW5saW5lKHJlcXVpcmVzUGxheXNJbmxpbmUsIGhhc1dlYmtpdFBsYXlz
SW5saW5lLCBleHBlY3RlZERpc3AKICAgICAgICAgICAgIHJ1bigndmlkZW8ucGxheSgpJyk7CiAg
ICAgICAgIH0pOwogICAgIH0pCi0gICAgd2FpdEZvckV2ZW50T25jZSgncGxheWluZycsICgpID0+
IHsKKyAgICB3YWl0Rm9yRXZlbnRPbmNlKCdwbGF5aW5nJywgYXN5bmMgKCkgPT4geworICAgICAg
ICBpZiAoZXhwZWN0ZWREaXNwbGF5aW5nRnVsbHNjcmVlbikKKyAgICAgICAgICAgIGF3YWl0IHRl
c3RFeHBlY3RlZEV2ZW50dWFsbHkoJ2ludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9k
ZSh2aWRlbyknLCBmYWxzZSk7CisKICAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby53ZWJraXRE
aXNwbGF5aW5nRnVsbHNjcmVlbicsIGV4cGVjdGVkRGlzcGxheWluZ0Z1bGxzY3JlZW4pOwogICAg
ICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHZpZGVvKTsKICAgICAgICAgcnVuTmV4dFRl
c3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYjM4
ZDM0MGRhNGUwMTQxMTEwYWFlMGM5YmJhMmVjM2ZlMzdlNjRhMi4uNzUwZDk0MGE4M2U3ZmY3ZjI1
MWY0NWNjMDdkOTRkNTM3OTk3MGVmMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTE0NTYsOCArMTQ1Niw2IEBAIHdlYmtpdC5vcmcvYi8xODM0OTAgbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJvbGxl
CiB3ZWJraXQub3JnL2IvMTgzNDkwIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1j
b250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItZnVsbHNjcmVlbi1jaGFuZ2UuaHRtbCBbIEZhaWx1
cmUgXQogd2Via2l0Lm9yZy9iLzE4MzQ5MCBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVk
aWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWlubGluZS10by1mdWxsc2NyZWVuLXRvLWlu
bGluZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTgzNDkwIG1lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy9zdGFydC1zdXBwb3J0L3N0YXJ0LXN1cHBvcnQtZnVsbHNjcmVlbi5odG1s
IFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTgzNDkwIG1lZGlhL3ZpZGVvLXBsYXlzaW5saW5l
Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xODM0OTAgbWVkaWEvdmlkZW8td2Via2l0
LXBsYXlzaW5saW5lLmh0bWwgWyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzE4Mzc2NCBmYXN0
L2Nzcy9hcHBsZS1zeXN0ZW0tY29udHJvbC1jb2xvcnMuaHRtbCBbIFBhc3MgXQogCg==
</data>
<flag name="review"
          id="428114"
          type_id="1"
          status="+"
          setter="jer.noble"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412065</attachid>
            <date>2020-10-21 21:53:50 -0700</date>
            <delta_ts>2020-10-22 08:22:45 -0700</delta_ts>
            <desc>Rebased patch for landing</desc>
            <filename>bug-216426-20201021215349.patch</filename>
            <type>text/plain</type>
            <size>63899</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4ODUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDVlOTc4NzM2YWRhNDYx
ZGViZjI3YTRkMDFlZGJmZTAwMzY5YzFlMC4uNmM4ZGE3YjMxNDY3MjI4ZTExN2RiYzM4NmNjMzEx
YmI5ZjZjNzA1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDIwLTEwLTIxICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgTGV0IHdlYmtpdERpc3BsYXlp
bmdGdWxsc2NyZWVuKCkgcmV0dXJuIHRydWUgd2hlbiBhIHZpZGVvIGVsZW1lbnTigJlzIGZ1bGxz
Y3JlZW4gbW9kZSBpcyBub3QgVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjQyNgorCisgICAgICAgIFJldmll
d2VkIGJ5IEplciBOb2JsZS4KKworICAgICAgICBUaGlzIHBhdGNoIG1vdmVzIG1fY2hhbmdpbmdW
aWRlb0Z1bGxzY3JlZW5Nb2RlIG9mIEhUTUxWaWRlb0VsZW1lbnQgdG8gSFRNTE1lZGlhRWxlbWVu
dC4KKyAgICAgICAgVGhlIGZsYWcgaXMgdXNlZCB0byBwcm90ZWN0IGludGVyZmFjZXMgcmVnYXJk
aW5nIHZpZGVvIHByZXNlbnRhdGlvbiBtb2RlIGNoYW5nZXMuCisgICAgICAgIEl0IGFsc28gZ3Vh
cmRzIHRoZSBjb2RlIHBhdGggd2hlbiB3ZSB1c2UgZWxlbWVudCBmdWxsc2NyZWVuIHRvIGltcGxl
bWVudCB2aWRlbworICAgICAgICBmdWxsc2NyZWVuIChWSURFT19VU0VTX0VMRU1FTlRfRlVMTFND
UkVFTikuIEl0IGlzIGJldHRlciB0byBzdG9yZSB0aGUgZmxhZyBpbgorICAgICAgICBIVE1MTWVk
aWFFbGVtZW50IHRvIGhhdmUgZmluZSBjb250cm9sLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmV2
ZXJ0cyB0aGUgY2hhbmdpbmcgcmVnYXJkaW5nIEhUTUxWaWRlb0VsZW1lbnQ6OndlYmtpdERpc3Bs
YXlpbmdGdWxsc2NyZWVuCisgICAgICAgIGluIHIyNjI0NTYuIFRoaXMgZnVuY3Rpb24gd2lsbCBy
ZXR1cm4gdHJ1ZSBpbiB0aGUgc2FtZSBydW4gbG9vcCBhcyBhCisgICAgICAgIHdlYmtpdHByZXNl
bnRhdGlvbm1vZGVjaGFuZ2VkIGV2ZW50IGlzIGZpcmVkIHdoZW4gYSB2aWRlbyBlbGVtZW50IGlz
IGVudGVyaW5nCisgICAgICAgIGZ1bGxzY3JlZW4gb3IgcGljdHVyZS1pbi1waWN0dXJlLgorCisg
ICAgICAgIEFsc28sIHRoaXMgcGF0Y2ggYWRkcyBJbnRlcm5hbHM6OmlzQ2hhbmdpbmdQcmVzZW50
YXRpb25Nb2RlIHdoaWNoIGNhbiBiZSB1c2VkIGJ5CisgICAgICAgIGxheW91dCB0ZXN0cyB0byBj
aGVjayB3aGV0aGVyIGEgdmlkZW8gcHJlc2VudGF0aW9uIG1vZGUgY2hhbmdlIGlzIGNvbXBsZXRl
ZC4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6OmlzRnVsbHNjcmVlbiBjb25zdCk6IEFsaWduIHRoZSBpbXBsZW1lbnRhdGlvbgorICAgICAg
ICB3aXRoIGlzU3RhbmRhcmRGdWxsc2NyZWVuKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50OjplbnRlckZ1bGxzY3JlZW4pOiBTZXQgbV9jaGFuZ2luZ1ZpZGVvRnVsbHNjcmVl
bk1vZGUgdG8gdHJ1ZQorICAgICAgICBpZiB0aGUgdmlkZW8gZWxlbWVudCBpcyBjaGFuZ2luZyBw
cmVzZW50YXRpb24gbW9kZS4gQWxzbyBmaXggYSBidWcgYWJvdXQgdGhlCisgICAgICAgIGZsYWcg
bV93YWl0aW5nVG9FbnRlckZ1bGxzY3JlZW4uCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjpleGl0RnVsbHNjcmVlbik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6ZGlkQmVjb21lRnVsbHNjcmVlbkVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmRpZFN0b3BCZWluZ0Z1bGxzY3JlZW5FbGVtZW50
KTogRGl0dG8uCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldENoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojppc0NoYW5naW5nVmlkZW9G
dWxsc2NyZWVuTW9kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
Ojp3YWl0aW5nVG9FbnRlckZ1bGxzY3JlZW4pOiBEZWxldGVkLgorCisgICAgICAgICogaHRtbC9I
VE1MVmlkZW9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ6
OndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuKTogUmV2ZXJ0IHRoZSBjaGFuZ2UKKyAgICAgICAg
aW4gcjI2MjQ1Ni4gU29tZSB3ZWIgc2l0ZXMgZXhwZWN0IHRoaXMgZnVuY3Rpb24gdG8gcmV0dXJu
IHRydWUgaWYgdGhlIHZpZGVvIGVsZW1lbnQKKyAgICAgICAgaXMgZW50ZXJpbmcgZnVsbHNjcmVl
biBhbmQgdGhlIGV2ZW50IHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIGlzIGZpcmVkLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6c2V0UHJlc2VudGF0aW9uTW9kZSk6
IFJlbW92ZSBjb2RlIHJlZ2FyZGluZyBtX2lzQ2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6ZGlkRW50ZXJGdWxsc2NyZWVuT3JQ
aWN0dXJlSW5QaWN0dXJlKTogRml4IGFuIGV2ZW50IGZpcmluZyBpc3N1ZSB3aGVuCisgICAgICAg
IGEgdmlkZW8gZWxlbWVudCBpcyBlbnRlcmluZyBmdWxsc2NyZWVuIHdoaWxlIGV4aXRpbmcgcGlj
dHVyZS1pbi1waWN0dXJlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6ZGlk
RXhpdEZ1bGxzY3JlZW5PclBpY3R1cmVJblBpY3R1cmUpOiBGaXggYW4gZXZlbnQgZmlyaW5nIGlz
c3VlIHdoZW4KKyAgICAgICAgYSB2aWRlbyBlbGVtZW50IGlzIGV4aXRpbmcgcGljdHVyZS1pbi1w
aWN0dXJlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6aXNDaGFuZ2luZ1By
ZXNlbnRhdGlvbk1vZGUgY29uc3QpOiBUaGlzIGludGVyZmFjZQorICAgICAgICBpcyB1c2VkIGJ5
IGxheW91dCB0ZXN0cyAodGhyb3VnaCBJbnRlcm5hbHMpIHRvIGNoZWNrIHdoZXRoZXIgYSB2aWRl
byBwcmVzZW50YXRpb24KKyAgICAgICAgbW9kZSBjaGFuZ2UgaXMgY29tcGxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6ZGlkQmVjb21lRnVsbHNjcmVlbkVsZW1lbnQp
OiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5oOgorCisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpp
c0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSBjb25zdCk6IFRoaXMgaW50ZXJmYWNlIGlzIHVzZWQK
KyAgICAgICAgYnkgbGF5b3V0IHRlc3RzIHRvIGNoZWNrIHdoZXRoZXIgYSB2aWRlbyBwcmVzZW50
YXRpb24gbW9kZSBjaGFuZ2UgaXMgY29tcGxldGVkLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDIwLTEwLTIxICBD
YXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFJFR1JFU1NJT04ocjI2ODc5OCk6IEZpeCBidWlsZCB3aXRob3V0IEVOQUJMRV9MQVlPVVRfRk9S
TUFUVElOR19DT05URVhUCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApp
bmRleCBiM2M2NGRkMTVjMjA4ODIyNmE2ODBhYmY1ZmM4NDQzZGEzNWQ0ODkyLi4wMDA4OWQ0YjM3
MDA3Y2RmZmJjNDI3NTIwOGUxOTZmNzIzZDZmZWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKQEAgLTU4NzAsMTUgKzU4NzAsMTIgQEAgZG91YmxlIEhUTUxNZWRp
YUVsZW1lbnQ6Om1heEZhc3RGb3J3YXJkUmF0ZSgpIGNvbnN0CiAKIGJvb2wgSFRNTE1lZGlhRWxl
bWVudDo6aXNGdWxsc2NyZWVuKCkgY29uc3QKIHsKLSAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5N
b2RlICE9IFZpZGVvRnVsbHNjcmVlbk1vZGVOb25lKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQog
I2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBpZiAoZG9jdW1lbnQoKS5mdWxsc2NyZWVu
TWFuYWdlcigpLmlzRnVsbHNjcmVlbigpICYmIGRvY3VtZW50KCkuZnVsbHNjcmVlbk1hbmFnZXIo
KS5jdXJyZW50RnVsbHNjcmVlbkVsZW1lbnQoKSA9PSB0aGlzKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKICNlbmRpZgogCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX3ZpZGVvRnVsbHNj
cmVlbk1vZGUgIT0gVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmU7CiB9CiAKIGJvb2wgSFRNTE1lZGlh
RWxlbWVudDo6aXNTdGFuZGFyZEZ1bGxzY3JlZW4oKSBjb25zdApAQCAtNTkxMCw2ICs1OTA3LDgg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjplbnRlckZ1bGxzY3JlZW4oVmlkZW9GdWxsc2NyZWVu
TW9kZSBtb2RlKQogICAgIGlmIChtX3dhaXRpbmdUb0VudGVyRnVsbHNjcmVlbikKICAgICAgICAg
cmV0dXJuOwogCisgICAgbV9jaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSB0cnVlOworCiAj
aWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKSAmJiBFTkFCTEUoVklERU9fVVNFU19FTEVNRU5UX0ZV
TExTQ1JFRU4pCiAgICAgaWYgKGRvY3VtZW50KCkuc2V0dGluZ3MoKS5mdWxsU2NyZWVuRW5hYmxl
ZCgpICYmIG1vZGUgPT0gVmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKSB7CiAgICAgICAgIG1f
dGVtcG9yYXJpbHlBbGxvd2luZ0lubGluZVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuID0gZmFsc2U7
CkBAIC01OTIyLDYgKzU5MjEsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVsbHNj
cmVlbihWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpCiAgICAgbV9mdWxsc2NyZWVuVGFza1F1ZXVl
LmVucXVldWVUYXNrKFt0aGlzLCBtb2RlXSB7CiAgICAgICAgIGlmIChkb2N1bWVudCgpLmhpZGRl
bigpKSB7CiAgICAgICAgICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICIgcmV0dXJuaW5n
IGJlY2F1c2UgZG9jdW1lbnQgaXMgaGlkZGVuIik7CisgICAgICAgICAgICBtX2NoYW5naW5nVmlk
ZW9GdWxsc2NyZWVuTW9kZSA9IGZhbHNlOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAKQEAgLTU5MzEsNyArNTkzMSw5IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZW50ZXJGdWxs
c2NyZWVuKFZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKICAgICAgICAgICAgICAgICBBTFdBWVNf
TE9HKExPR0lERU5USUZJRVIsICJFbnRlcmluZyBmdWxsc2NyZWVuIG1vZGUgIiwgbW9kZSwgIiwg
bV92aWRlb0Z1bGxzY3JlZW5TdGFuZGJ5ID0gIiwgbV92aWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KTsK
IAogICAgICAgICAgICAgICAgIG1fdGVtcG9yYXJpbHlBbGxvd2luZ0lubGluZVBsYXliYWNrQWZ0
ZXJGdWxsc2NyZWVuID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgbV93YWl0aW5nVG9FbnRlckZ1
bGxzY3JlZW4gPSB0cnVlOworICAgICAgICAgICAgICAgIGlmIChtb2RlID09IFZpZGVvRnVsbHNj
cmVlbk1vZGVTdGFuZGFyZCkKKyAgICAgICAgICAgICAgICAgICAgbV93YWl0aW5nVG9FbnRlckZ1
bGxzY3JlZW4gPSB0cnVlOworCiAgICAgICAgICAgICAgICAgYXV0byBvbGRNb2RlID0gbV92aWRl
b0Z1bGxzY3JlZW5Nb2RlOwogICAgICAgICAgICAgICAgIHNldEZ1bGxzY3JlZW5Nb2RlKG1vZGUp
OwogICAgICAgICAgICAgICAgIGNvbmZpZ3VyZU1lZGlhQ29udHJvbHMoKTsKQEAgLTU5NDQsOCAr
NTk0NiwxMiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmVudGVyRnVsbHNjcmVlbihWaWRlb0Z1
bGxzY3JlZW5Nb2RlIG1vZGUpCiAgICAgICAgICAgICAgICAgICAgIHNjaGVkdWxlRXZlbnQoZXZl
bnROYW1lcygpLndlYmtpdGJlZ2luZnVsbHNjcmVlbkV2ZW50KTsKICAgICAgICAgICAgICAgICBl
bHNlIGlmIChvbGRNb2RlID09IFZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkKICAgICAgICAg
ICAgICAgICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkud2Via2l0ZW5kZnVsbHNjcmVl
bkV2ZW50KTsKKworICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQorCisgICAgICAgIG1fY2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlID0gZmFsc2U7CiAg
ICAgfSk7CiB9CiAKQEAgLTU5NjIsOCArNTk2OCwxMCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OmV4aXRGdWxsc2NyZWVuKCkKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBpZiAo
ZG9jdW1lbnQoKS5zZXR0aW5ncygpLmZ1bGxTY3JlZW5FbmFibGVkKCkgJiYgZG9jdW1lbnQoKS5m
dWxsc2NyZWVuTWFuYWdlcigpLmN1cnJlbnRGdWxsc2NyZWVuRWxlbWVudCgpID09IHRoaXMpIHsK
LSAgICAgICAgaWYgKGRvY3VtZW50KCkuZnVsbHNjcmVlbk1hbmFnZXIoKS5pc0Z1bGxzY3JlZW4o
KSkKKyAgICAgICAgaWYgKGRvY3VtZW50KCkuZnVsbHNjcmVlbk1hbmFnZXIoKS5pc0Z1bGxzY3Jl
ZW4oKSkgeworICAgICAgICAgICAgbV9jaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSB0cnVl
OwogICAgICAgICAgICAgZG9jdW1lbnQoKS5mdWxsc2NyZWVuTWFuYWdlcigpLmNhbmNlbEZ1bGxz
Y3JlZW4oKTsKKyAgICAgICAgfQogCiAgICAgICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGUg
PT0gVmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAt
NTk5MSwxNCArNTk5OSwxOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmV4aXRGdWxsc2NyZWVu
KCkKIAogICAgIGlmIChkb2N1bWVudCgpLmFjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQoKSB8
fCBkb2N1bWVudCgpLmFjdGl2ZURPTU9iamVjdHNBcmVTdG9wcGVkKCkpIHsKICAgICAgICAgc2V0
RnVsbHNjcmVlbk1vZGUoVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpOworICAgICAgICBtX2NoYW5n
aW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IHRydWU7CiAgICAgICAgIGRvY3VtZW50KCkucGFnZSgp
LT5jaHJvbWUoKS5jbGllbnQoKS5leGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1h
dGlvbihkb3duY2FzdDxIVE1MVmlkZW9FbGVtZW50PigqdGhpcyksIFZpZGVvRnVsbHNjcmVlbk1v
ZGVOb25lKTsKICAgICB9IGVsc2UgaWYgKGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jbGll
bnQoKS5zdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihvbGRWaWRlb0Z1bGxzY3JlZW5Nb2RlKSkgewog
ICAgICAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KSB7CiAgICAgICAgICAgICBzZXRG
dWxsc2NyZWVuTW9kZShWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSk7CisgICAgICAgICAgICBtX2No
YW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IHRydWU7CiAgICAgICAgICAgICBkb2N1bWVudCgp
LnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0Vs
ZW1lbnQoZG93bmNhc3Q8SFRNTFZpZGVvRWxlbWVudD4oKnRoaXMpLCBtX3ZpZGVvRnVsbHNjcmVl
bk1vZGUsIG1fdmlkZW9GdWxsc2NyZWVuU3RhbmRieSk7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KIAorICAgICAgICBtX2NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IHRydWU7
CisKICAgICAgICAgaWYgKG9sZFZpZGVvRnVsbHNjcmVlbk1vZGUgPT0gVmlkZW9GdWxsc2NyZWVu
TW9kZVN0YW5kYXJkKSB7CiAgICAgICAgICAgICBzZXRGdWxsc2NyZWVuTW9kZShWaWRlb0Z1bGxz
Y3JlZW5Nb2RlTm9uZSk7CiAgICAgICAgICAgICAvLyBUaGUgZXhpdCBmdWxsc2NyZWVuIHJlcXVl
c3Qgd2lsbCBiZSBzZW50IGluIGRpc3BhdGNoRXZlbnQoKS4KQEAgLTYwNzAsNiArNjA4Miw3IEBA
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZGlkQmVjb21lRnVsbHNjcmVlbkVsZW1lbnQoKQogewog
ICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgIiwgZnVsbHNjcmVlbiBtb2RlID0gIiwgZnVs
bHNjcmVlbk1vZGUoKSk7CiAgICAgbV93YWl0aW5nVG9FbnRlckZ1bGxzY3JlZW4gPSBmYWxzZTsK
KyAgICBtX2NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IGZhbHNlOwogICAgIHNjaGVkdWxl
VXBkYXRlUGxheVN0YXRlKCk7CiB9CiAKQEAgLTYwNzksNiArNjA5MiwxMSBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OndpbGxTdG9wQmVpbmdGdWxsc2NyZWVuRWxlbWVudCgpCiAgICAgICAgIHNl
dEZ1bGxzY3JlZW5Nb2RlKFZpZGVvRnVsbHNjcmVlbk1vZGVOb25lKTsKIH0KIAordm9pZCBIVE1M
TWVkaWFFbGVtZW50OjpkaWRTdG9wQmVpbmdGdWxsc2NyZWVuRWxlbWVudCgpCit7CisgICAgbV9j
aGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgPSBmYWxzZTsKK30KKwogUGxhdGZvcm1MYXllciog
SFRNTE1lZGlhRWxlbWVudDo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
cGxheWVyID8gbV9wbGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSA6IG51bGxwdHI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IGY5MGQ1ZDJkODA4NTEyYWQ2MmU0NDYwNjA3
YmVjYzhiNTBmN2ZmNmIuLmIyNWY0ZTIzOGEyYWU1NzJiYjgwMjBiOWNjZjZlODc1OGYzMmE2NmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC01NDQsOCArNTQ0LDkg
QEAgcHVibGljOgogCiAgICAgYm9vbCBpc1N1c3BlbmRlZCgpIGNvbnN0IGZpbmFsOwogCi0gICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCgpIG92ZXJyaWRl
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkQmVjb21lRnVsbHNjcmVlbkVsZW1lbnQoKSBm
aW5hbDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdpbGxFeGl0RnVsbHNjcmVlbigpOworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkU3RvcEJlaW5nRnVsbHNjcmVlbkVsZW1lbnQoKSBmaW5h
bDsKIAogI2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKQogICAgIHZvaWQgc2NoZWR1
bGVFdmVudChSZWY8RXZlbnQ+JiYpOwpAQCAtNjAzLDcgKzYwNCw5IEBAIHByb3RlY3RlZDoKICAg
ICB2b2lkIHVwZGF0ZU1lZGlhQ29udHJvbHNBZnRlclByZXNlbnRhdGlvbk1vZGVDaGFuZ2UoKTsK
IAogICAgIHZvaWQgc2NoZWR1bGVFdmVudChjb25zdCBBdG9tU3RyaW5nJik7Ci0gICAgYm9vbCB3
YWl0aW5nVG9FbnRlckZ1bGxzY3JlZW4oKSB7IHJldHVybiBtX3dhaXRpbmdUb0VudGVyRnVsbHNj
cmVlbjsgfQorCisgICAgdm9pZCBzZXRDaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUoYm9vbCB2
YWx1ZSkgeyBtX2NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IHZhbHVlOyB9CisgICAgYm9v
bCBpc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2hhbmdp
bmdWaWRlb0Z1bGxzY3JlZW5Nb2RlOyB9CiAKIHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVNZWRp
YVBsYXllcigpOwpAQCAtMTA5MSw2ICsxMDk0LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9p
c1NjcnViYmluZ1JlbW90ZWx5IDogMTsKICAgICBib29sIG1fd2FpdGluZ1RvRW50ZXJGdWxsc2Ny
ZWVuIDogMTsKKyAgICBib29sIG1fY2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlIDogMTsKIAog
ICAgIGJvb2wgbV90cmFja3NBcmVSZWFkeSA6IDE7CiAgICAgYm9vbCBtX2hhdmVWaXNpYmxlVGV4
dFRyYWNrIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCmluZGV4
IDhhYjJkMGNiOTY1YTYyNWVmNGQwMmNlMjg5OTAyOWViNDMyNTAxNjYuLjFkZDUxYjRjYTIxMmYy
ZWEwYTRhZjY5M2M3MmIxNzkzMTQxNTE5ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlk
ZW9FbGVtZW50LmNwcApAQCAtMzYxLDExICszNjEsOSBAQCBib29sIEhUTUxWaWRlb0VsZW1lbnQ6
OndlYmtpdFN1cHBvcnRzRnVsbHNjcmVlbigpCiBib29sIEhUTUxWaWRlb0VsZW1lbnQ6OndlYmtp
dERpc3BsYXlpbmdGdWxsc2NyZWVuKCkKIHsKICAgICBpZiAoZG9jdW1lbnQoKS5xdWlya3MoKS5u
ZWVkc0FrYW1haU1lZGlhUGxheWVyUXVpcmsoKnRoaXMpKQotICAgICAgICByZXR1cm4gaXNGdWxs
c2NyZWVuKCkgfHwgbV9pc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZTsKKyAgICAgICAgcmV0
dXJuIGlzRnVsbHNjcmVlbigpIHx8IGlzQ2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlKCk7CiAK
LSAgICAvLyBUaGlzIGZ1bmN0aW9uIHN0YXJ0cyB0byByZXR1cm4gdHJ1ZSBhZnRlciB0aGUgdmlk
ZW8gZWxlbWVudCBoYXMgZW50ZXJlZAotICAgIC8vIGZ1bGxzY3JlZW4vcGljdHVyZS1pbi1waWN0
dXJlIHVudGlsIGl0IGhhcyBleGl0ZWQgZnVsbHNjcmVlbi9waWN0dXJlLWluLXBpY3R1cmUKLSAg
ICByZXR1cm4gKGlzRnVsbHNjcmVlbigpICYmICF3YWl0aW5nVG9FbnRlckZ1bGxzY3JlZW4oKSkg
fHwgKCFpc0Z1bGxzY3JlZW4oKSAmJiBtX2lzQ2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsK
KyAgICByZXR1cm4gaXNGdWxsc2NyZWVuKCk7CiB9CiAKIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6
YW5jZXN0b3JXaWxsRW50ZXJGdWxsc2NyZWVuKCkKQEAgLTQ4Miw3ICs0ODAsNyBAQCB2b2lkIEhU
TUxWaWRlb0VsZW1lbnQ6OndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoVmlkZW9QcmVzZW50YXRp
b25Nb2RlIG1vZGUpCiAKIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6c2V0UHJlc2VudGF0aW9uTW9k
ZShWaWRlb1ByZXNlbnRhdGlvbk1vZGUgbW9kZSkKIHsKLSAgICBpZiAobV9pc0NoYW5naW5nVmlk
ZW9GdWxsc2NyZWVuTW9kZSB8fCB0b1ByZXNlbnRhdGlvbk1vZGUoZnVsbHNjcmVlbk1vZGUoKSkg
PT0gbW9kZSkKKyAgICBpZiAoaXNDaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUoKSB8fCB0b1By
ZXNlbnRhdGlvbk1vZGUoZnVsbHNjcmVlbk1vZGUoKSkgPT0gbW9kZSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgYXV0byB2aWRlb0Z1bGxzY3JlZW5Nb2RlID0gdG9GdWxsc2NyZWVuTW9kZShtb2Rl
KTsKQEAgLTQ5Myw3ICs0OTEsNiBAQCB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnNldFByZXNlbnRh
dGlvbk1vZGUoVmlkZW9QcmVzZW50YXRpb25Nb2RlIG1vZGUpCiAgICAgICAgICAgICBpZiAodG9Q
cmVzZW50YXRpb25Nb2RlKGZ1bGxzY3JlZW5Nb2RlKCkpID09IFZpZGVvUHJlc2VudGF0aW9uTW9k
ZTo6UGljdHVyZUluUGljdHVyZSkKICAgICAgICAgICAgICAgICBtX2lzRXhpdGluZ1BpY3R1cmVJ
blBpY3R1cmUgPSB0cnVlOwogCi0gICAgICAgICAgICBtX2lzQ2hhbmdpbmdWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlID0gdHJ1ZTsKICAgICAgICAgICAgIGV4aXRGdWxsc2NyZWVuKCk7CiAgICAgICAgIH0K
IApAQCAtNTA4LDcgKzUwNSw2IEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6c2V0UHJlc2VudGF0
aW9uTW9kZShWaWRlb1ByZXNlbnRhdGlvbk1vZGUgbW9kZSkKICAgICBlbHNlIGlmIChmdWxsc2Ny
ZWVuTW9kZSgpID09IFZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlKQogICAgICAg
ICBtX2lzRXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSB0cnVlOwogCi0gICAgbV9pc0NoYW5naW5n
VmlkZW9GdWxsc2NyZWVuTW9kZSA9IHRydWU7CiAgICAgZW50ZXJGdWxsc2NyZWVuKHZpZGVvRnVs
bHNjcmVlbk1vZGUpOwogfQogCkBAIC01MTksMjAgKzUxNSwyNSBAQCBhdXRvIEhUTUxWaWRlb0Vs
ZW1lbnQ6OndlYmtpdFByZXNlbnRhdGlvbk1vZGUoKSBjb25zdCAtPiBWaWRlb1ByZXNlbnRhdGlv
bk1vZGUKIAogdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpkaWRFbnRlckZ1bGxzY3JlZW5PclBpY3R1
cmVJblBpY3R1cmUoY29uc3QgRmxvYXRTaXplJiBzaXplKQogewotICAgIG1faXNDaGFuZ2luZ1Zp
ZGVvRnVsbHNjcmVlbk1vZGUgPSBmYWxzZTsKLSAgICBpZiAobV9pc0VudGVyaW5nUGljdHVyZUlu
UGljdHVyZSB8fCBtX2lzRXhpdGluZ1BpY3R1cmVJblBpY3R1cmUpIHsKKyAgICBpZiAobV9pc0Vu
dGVyaW5nUGljdHVyZUluUGljdHVyZSkgeworICAgICAgICBtX2lzRW50ZXJpbmdQaWN0dXJlSW5Q
aWN0dXJlID0gZmFsc2U7CisgICAgICAgIHNldENoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZShm
YWxzZSk7CisKICNpZiBFTkFCTEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkKLSAgICAgICAgaWYg
KG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyKSB7Ci0gICAgICAgICAgICBpZiAobV9pc0VudGVy
aW5nUGljdHVyZUluUGljdHVyZSkKLSAgICAgICAgICAgICAgICBtX3BpY3R1cmVJblBpY3R1cmVP
YnNlcnZlci0+ZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlKGZsb29yZWRJbnRTaXplKHNpemUpKTsK
LSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBtX3BpY3R1cmVJblBpY3R1cmVPYnNl
cnZlci0+ZGlkRXhpdFBpY3R1cmVJblBpY3R1cmUoKTsKLSAgICAgICAgfQorICAgICAgICBpZiAo
bV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIpCisgICAgICAgICAgICBtX3BpY3R1cmVJblBpY3R1
cmVPYnNlcnZlci0+ZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlKGZsb29yZWRJbnRTaXplKHNpemUp
KTsKICNlbHNlCiAgICAgICAgIFVOVVNFRF9QQVJBTShzaXplKTsKICNlbmRpZgotICAgICAgICBt
X2lzRW50ZXJpbmdQaWN0dXJlSW5QaWN0dXJlID0gZmFsc2U7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBpZiAobV9pc0V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlKSB7CiAgICAgICAgIG1f
aXNFeGl0aW5nUGljdHVyZUluUGljdHVyZSA9IGZhbHNlOworI2lmIEVOQUJMRShQSUNUVVJFX0lO
X1BJQ1RVUkVfQVBJKQorICAgICAgICBpZiAobV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIpCisg
ICAgICAgICAgICBtX3BpY3R1cmVJblBpY3R1cmVPYnNlcnZlci0+ZGlkRXhpdFBpY3R1cmVJblBp
Y3R1cmUoKTsKKyNlbmRpZgogICAgIH0KIAogICAgIEhUTUxNZWRpYUVsZW1lbnQ6OmRpZEJlY29t
ZUZ1bGxzY3JlZW5FbGVtZW50KCk7CkBAIC01NDAsMjMgKzU0MSwyNCBAQCB2b2lkIEhUTUxWaWRl
b0VsZW1lbnQ6OmRpZEVudGVyRnVsbHNjcmVlbk9yUGljdHVyZUluUGljdHVyZShjb25zdCBGbG9h
dFNpemUmIHNpegogCiB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OmRpZEV4aXRGdWxsc2NyZWVuT3JQ
aWN0dXJlSW5QaWN0dXJlKCkKIHsKLSAgICBtX2lzQ2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2Rl
ID0gZmFsc2U7CiAgICAgaWYgKG1faXNFeGl0aW5nUGljdHVyZUluUGljdHVyZSkgewogICAgICAg
ICBtX2lzRXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKKyAgICAgICAgc2V0Q2hhbmdp
bmdWaWRlb0Z1bGxzY3JlZW5Nb2RlKGZhbHNlKTsKKwogI2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJ
Q1RVUkVfQVBJKQogICAgICAgICBpZiAobV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIpCiAgICAg
ICAgICAgICBtX3BpY3R1cmVJblBpY3R1cmVPYnNlcnZlci0+ZGlkRXhpdFBpY3R1cmVJblBpY3R1
cmUoKTsKICNlbmRpZgorICAgICAgICByZXR1cm47CiAgICAgfQorCisgICAgSFRNTE1lZGlhRWxl
bWVudDo6ZGlkU3RvcEJlaW5nRnVsbHNjcmVlbkVsZW1lbnQoKTsKIH0KIAotI2lmIEVOQUJMRShG
VUxMU0NSRUVOX0FQSSkgJiYgRU5BQkxFKFZJREVPX1VTRVNfRUxFTUVOVF9GVUxMU0NSRUVOKQot
dm9pZCBIVE1MVmlkZW9FbGVtZW50OjpkaWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCgpCitib29s
IEhUTUxWaWRlb0VsZW1lbnQ6OmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKCkgY29uc3QKIHsK
LSAgICBtX2lzQ2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlID0gZmFsc2U7Ci0gICAgSFRNTE1l
ZGlhRWxlbWVudDo6ZGlkQmVjb21lRnVsbHNjcmVlbkVsZW1lbnQoKTsKKyAgICByZXR1cm4gaXND
aGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUoKTsKIH0KLSNlbmRpZgogCiB2b2lkIEhUTUxWaWRl
b0VsZW1lbnQ6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKGNvbnN0IEZsb2F0UmVjdCYgZnJhbWUp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCmluZGV4IGVjZGJmMWQxNmMy
ZTZmMjZiNjI3OWUyMzc3YzllNTQxNDk2NmY3ZmMuLjYzNzIwNGRjZGY3YWI3NmM1MWY3ODA1Yzc2
NGMwYjE3YTJiZTQzODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVv
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCkBA
IC05NiwxMCArOTYsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRQcmVz
ZW50YXRpb25Nb2RlKFZpZGVvUHJlc2VudGF0aW9uTW9kZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBkaWRFbnRlckZ1bGxzY3JlZW5PclBpY3R1cmVJblBpY3R1cmUoY29uc3QgRmxvYXRTaXpl
Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbk9yUGljdHVyZUlu
UGljdHVyZSgpOwotCi0jaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKSAmJiBFTkFCTEUoVklERU9f
VVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4pCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRCZWNv
bWVGdWxsc2NyZWVuRWxlbWVudCgpIGZpbmFsOwotI2VuZGlmCisgICAgV0VCQ09SRV9FWFBPUlQg
Ym9vbCBpc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSgpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRW
aWRlb0Z1bGxzY3JlZW5GcmFtZShjb25zdCBGbG9hdFJlY3QmKSBmaW5hbDsKIApAQCAtMTQzLDcg
KzE0MCw2IEBAIHByaXZhdGU6CiAKICAgICB1bnNpZ25lZCBtX2xhc3RSZXBvcnRlZFZpZGVvV2lk
dGggeyAwIH07CiAgICAgdW5zaWduZWQgbV9sYXN0UmVwb3J0ZWRWaWRlb0hlaWdodCB7IDAgfTsK
LSAgICBib29sIG1faXNDaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUgeyBmYWxzZSB9OwogCiAj
aWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogICAgIGJvb2wgbV9pc0VudGVyaW5n
UGljdHVyZUluUGljdHVyZSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKaW5kZXggNGJjYmIxMmEyYjI1OTYwOWMxYWRhMzk3MjUxY2MwYTA3MWFmODY1Ni4uZTFkMDdm
YmYxODU0ODNlYzNiNGRhNTk3NzZmZGMwMGEyMTQzMGNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcApAQCAtMzM1OCw2ICszMzU4LDExIEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRG
dWxsc2NyZWVuQ29udHJvbHNIaWRkZW4oYm9vbCBoaWRkZW4pCiB9CiAKICNpZiBFTkFCTEUoVklE
RU9fUFJFU0VOVEFUSU9OX01PREUpCitib29sIEludGVybmFsczo6aXNDaGFuZ2luZ1ByZXNlbnRh
dGlvbk1vZGUoSFRNTFZpZGVvRWxlbWVudCYgZWxlbWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4g
ZWxlbWVudC5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSgpOworfQorCiB2b2lkIEludGVybmFs
czo6c2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQoYm9vbCBlbmFibGVkKQogewog
ICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRleHREb2N1bWVudCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmgKaW5kZXggM2ZmM2U4OTRjNjM0OGNiZjI0ZDU3MzJhMmVkNmYyMjgyY2Mw
ZWU0YS4uODg2Mjg5YmNmYTE4N2U0ODRhMTlhOGQ4MDI2NWI3ZmFmOTc2MDcwNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC01MDgsNiArNTA4LDcgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0RnVsbHNjcmVlbkNvbnRyb2xzSGlkZGVuKGJvb2wpOwogCiAjaWYgRU5BQkxFKFZJREVP
X1BSRVNFTlRBVElPTl9NT0RFKQorICAgIGJvb2wgaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUo
SFRNTFZpZGVvRWxlbWVudCYpIGNvbnN0OwogICAgIHZvaWQgc2V0TW9ja1ZpZGVvUHJlc2VudGF0
aW9uTW9kZUVuYWJsZWQoYm9vbCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaWRsCmluZGV4IGI2MmZiYzMzMzA5MzFjZmM5YThhMjVhYjFkYzNiOTEzN2QzY2Y5YzIuLjNm
Y2JlMTEwMjcwYWJhZjRhNjg4YWVmZDkwNTE0YjdmNzU3NjY0OWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwKQEAgLTU1Miw2ICs1NTIsNyBAQCBlbnVtIENvbnRlbnRTaXplQ2F0
ZWdvcnkgewogICAgIHVuZGVmaW5lZCBzZXRGdWxsc2NyZWVuQXV0b0hpZGVEdXJhdGlvbihkb3Vi
bGUgZHVyYXRpb24pOwogICAgIHVuZGVmaW5lZCBzZXRGdWxsc2NyZWVuQ29udHJvbHNIaWRkZW4o
Ym9vbGVhbiBoaWRkZW4pOwogCisgICAgW0NvbmRpdGlvbmFsPVZJREVPX1BSRVNFTlRBVElPTl9N
T0RFXSBib29sZWFuIGlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKEhUTUxWaWRlb0VsZW1lbnQg
ZWxlbWVudCk7CiAgICAgW0NvbmRpdGlvbmFsPVZJREVPX1BSRVNFTlRBVElPTl9NT0RFXSB1bmRl
ZmluZWQgc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQoYm9vbGVhbiBlbmFibGVk
KTsKIAogICAgIHVuZGVmaW5lZCBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5zaWdu
ZWQgbG9uZyBsb25nIHF1b3RhKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCA3ZDM0ODZmYWM1NDI5MmFmMzY1ZDNmNTEyNDkzNzc5MjZiZDJjNDcx
Li5iMDYyYjdmMTYxMTRhZWU3YTkyNzc2Zjk2ODFlNmZiNzBhOGZkM2Y2IDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MjAtMTAtMjEgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBMZXQg
d2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4oKSByZXR1cm4gdHJ1ZSB3aGVuIGEgdmlkZW8gZWxl
bWVudOKAmXMgZnVsbHNjcmVlbiBtb2RlIGlzIG5vdCBWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2NDI2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgSmVyIE5vYmxlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdDbG9zZUFsbE1lZGlhUHJlc2VudGF0aW9ucy5t
bToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICBVc2UgaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVz
ZW50YXRpb25Nb2RlKCkgdG8gbWFrZSBzdXJlIGEgdmlkZW8gcHJlc2VudGF0aW9uIG1vZGUKKyAg
ICAgICAgY2hhbmdlIChmcm9tIGlubGluZSB0byBwaWN0dXJlLWluLXBpY3R1cmUpIGlzIGNvbXBs
ZXRlZCBiZWZvcmUgbW92aW5nIHRvIHRoZSBuZXh0CisgICAgICAgIHN0ZXAgb2YgdGhlIHRlc3Qu
CisKIDIwMjAtMTAtMjEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgSVBDIHRlc3RpbmcgQVBJIHNob3VsZCBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG9ic2VydmUg
bWVzc2FnZXMgYmVpbmcgc2VudCBhbmQgcmVjZWl2ZWQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3Q2xvc2VBbGxNZWRpYVByZXNlbnRh
dGlvbnMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmll
d0Nsb3NlQWxsTWVkaWFQcmVzZW50YXRpb25zLm1tCmluZGV4IGUxMDVlZmI1YTViNGJmOTU3ZjQ5
YTEzZGU3M2UyNTg4YzQ5ZDIzYzAuLmFiMTMxZmQ2NWUzNjYzNzE0YTVkOTJlOGI0NjQ0NzcwYTAw
NWM1MzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V0tXZWJWaWV3Q2xvc2VBbGxNZWRpYVByZXNlbnRhdGlvbnMubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdDbG9zZUFsbE1lZGlhUHJlc2VudGF0
aW9ucy5tbQpAQCAtMjcsNiArMjcsNyBAQAogCiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5o
IgogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCAiV0tXZWJWaWV3Q29uZmlndXJh
dGlvbkV4dHJhcy5oIgogI2ltcG9ydCA8V2ViQ29yZS9QaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5o
PgogI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgpAQCAtNDAsMjUgKzQxLDI2IEBAIFRFU1QoV0tXZWJWaWV3
Q2xvc2VBbGxNZWRpYVByZXNlbnRhdGlvbnMsIFBpY3R1cmVJblBpY3R1cmUpCiAgICAgaWYgKCFX
ZWJDb3JlOjpzdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
YWxsb2NdIGluaXRdKTsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLnByZWZlcmVuY2VzLl9hbGxv
d3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayA9IFlFUzsKLSAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0
KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9X
aW5kb3c6WUVTXSk7CisgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1
cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlBy
b2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Cisg
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0QWxsb3dzUGljdHVyZUluUGljdHVy
ZU1lZGlhUGxheWJhY2s6WUVTXTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBj
b25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24gYWRkVG9XaW5kb3c6WUVTXSk7CiAKICAgICBbd2Vi
VmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8dmlkZW8gc3JjPXZpZGVvLXdpdGgt
YXVkaW8ubXA0IHdlYmtpdC1wbGF5c2lubGluZSBwbGF5c2lubGluZSBsb29wPjwvdmlkZW8+Il07
CisgICAgW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoJ3ZpZGVvJykuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0cHJlc2VudGF0aW9u
bW9kZWNoYW5nZWQnLCBldmVudCA9PiB7IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRl
c3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdwcmVzZW50YXRpb25tb2RlY2hhbmdlZCcpOyB9KTsiXTsK
IAotICAgIFt3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHRXaXRoVXNlckdlc3R1
cmU6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpLndlYmtpdFNldFByZXNlbnRhdGlv
bk1vZGUoJ3BpY3R1cmUtaW4tcGljdHVyZScpIl07CisgICAgX19ibG9jayBib29sIHByZXNlbnRh
dGlvbk1vZGVDaGFuZ2VkID0gZmFsc2U7CisgICAgW3dlYlZpZXcgcGVyZm9ybUFmdGVyUmVjZWl2
aW5nTWVzc2FnZTpAInByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIiBhY3Rpb246XnsgcHJlc2VudGF0
aW9uTW9kZUNoYW5nZWQgPSB0cnVlOyB9XTsKIAorICAgIFt3ZWJWaWV3IG9iamVjdEJ5RXZhbHVh
dGluZ0phdmFTY3JpcHRXaXRoVXNlckdlc3R1cmU6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2
aWRlbycpLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoJ3BpY3R1cmUtaW4tcGljdHVyZScpIl07
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZwcmVzZW50YXRpb25Nb2RlQ2hhbmdlZCk7
CiAgICAgZG8gewotICAgICAgICBpZCByZXN1bHQgPSBbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRp
bmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8nKS53ZWJraXREaXNw
bGF5aW5nRnVsbHNjcmVlbiJdOwotICAgICAgICBpZiAoW3Jlc3VsdCBib29sVmFsdWVdKQorICAg
ICAgICBpZiAoIVt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5kb3cu
aW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoJ3ZpZGVvJykpIl0uYm9vbFZhbHVlKQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6c2xlZXAoMC41KTsKICAgICB9IHdoaWxlICh0cnVlKTsKIAot
ICAgIFt3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCd2aWRlbycpLmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdHByZXNlbnRhdGlvbm1v
ZGVjaGFuZ2VkJywgZXZlbnQgPT4geyB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0
SGFuZGxlci5wb3N0TWVzc2FnZSgncHJlc2VudGF0aW9ubW9kZWNoYW5nZWQnKTsgfSk7Il07Ci0K
LSAgICBfX2Jsb2NrIGJvb2wgcHJlc2VudGF0aW9uTW9kZUNoYW5nZWQgPSBmYWxzZTsKKyAgICBw
cmVzZW50YXRpb25Nb2RlQ2hhbmdlZCA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IHBlcmZvcm1BZnRl
clJlY2VpdmluZ01lc3NhZ2U6QCJwcmVzZW50YXRpb25tb2RlY2hhbmdlZCIgYWN0aW9uOl57IHBy
ZXNlbnRhdGlvbk1vZGVDaGFuZ2VkID0gdHJ1ZTsgfV07CiAKICAgICBbd2ViVmlldyBfY2xvc2VB
bGxNZWRpYVByZXNlbnRhdGlvbnNdOwpAQCAtNzQsOSArNzYsOSBAQCBURVNUKFdLV2ViVmlld0Ns
b3NlQWxsTWVkaWFQcmVzZW50YXRpb25zLCBQaWN0dXJlSW5QaWN0dXJlKQogCiBURVNUKFdLV2Vi
Vmlld0Nsb3NlQWxsTWVkaWFQcmVzZW50YXRpb25zLCBWaWRlb0Z1bGxzY3JlZW4pCiB7Ci0gICAg
YXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKLSAgICBjb25maWd1cmF0aW9uLmdldCgpLnByZWZlcmVuY2VzLl9mdWxsU2Ny
ZWVuRW5hYmxlZCA9IFlFUzsKLSAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CisgICAgYXV0
byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3Vy
YXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJu
YWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107CisgICAgW1tjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBfc2V0RnVsbFNjcmVlbkVuYWJsZWQ6WUVTXTsKKyAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0
KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24gYWRkVG9XaW5kb3c6
WUVTXSk7CiAKICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8dmlk
ZW8gc3JjPXZpZGVvLXdpdGgtYXVkaW8ubXA0IHdlYmtpdC1wbGF5c2lubGluZSBwbGF5c2lubGlu
ZSBsb29wPjwvdmlkZW8+Il07CiAgICAgW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNj
cmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvJykuYWRkRXZlbnRMaXN0ZW5lcign
d2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQnLCBldmVudCA9PiB7IHdpbmRvdy53ZWJraXQu
bWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdwcmVzZW50YXRpb25tb2Rl
Y2hhbmdlZCcpOyB9KTsiXTsKQEAgLTg1LDggKzg3LDE1IEBAIFRFU1QoV0tXZWJWaWV3Q2xvc2VB
bGxNZWRpYVByZXNlbnRhdGlvbnMsIFZpZGVvRnVsbHNjcmVlbikKICAgICBbd2ViVmlldyBwZXJm
b3JtQWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOkAicHJlc2VudGF0aW9ubW9kZWNoYW5nZWQiIGFjdGlv
bjpeeyBwcmVzZW50YXRpb25Nb2RlQ2hhbmdlZCA9IHRydWU7IH1dOwogCiAgICAgW3dlYlZpZXcg
b2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdFdpdGhVc2VyR2VzdHVyZTpAImRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoJ3ZpZGVvJykud2Via2l0RW50ZXJGdWxsc2NyZWVuKCkiXTsKKyAgICBbd2Vi
VmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93LmludGVybmFscy5zZXRN
b2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCh0cnVlKSJdOwogCiAgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZwcmVzZW50YXRpb25Nb2RlQ2hhbmdlZCk7CisgICAgZG8geworICAg
ICAgICBpZiAoIVt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5kb3cu
aW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoJ3ZpZGVvJykpIl0uYm9vbFZhbHVlKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6c2xlZXAoMC41KTsKKyAgICB9IHdoaWxlICh0cnVlKTsKIAog
ICAgIHByZXNlbnRhdGlvbk1vZGVDaGFuZ2VkID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgcGVyZm9y
bUFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAInByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIiBhY3Rpb246
XnsgcHJlc2VudGF0aW9uTW9kZUNoYW5nZWQgPSB0cnVlOyB9XTsKQEAgLTEwMCw5ICsxMDksOSBA
QCBURVNUKFdLV2ViVmlld0Nsb3NlQWxsTWVkaWFQcmVzZW50YXRpb25zLCBWaWRlb0Z1bGxzY3Jl
ZW4pCiAKIFRFU1QoV0tXZWJWaWV3Q2xvc2VBbGxNZWRpYVByZXNlbnRhdGlvbnMsIEVsZW1lbnRG
dWxsc2NyZWVuKQogewotICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5w
cmVmZXJlbmNlcy5fZnVsbFNjcmVlbkVuYWJsZWQgPSBZRVM7Ci0gICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgw
LCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2lu
ZG93OllFU10pOworICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9j
ZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOworICAg
IFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEZ1bGxTY3JlZW5FbmFibGVkOllFU107
CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uIGFkZFRvV2luZG93OllFU10pOwogCiAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxv
YWRIVE1MU3RyaW5nOkAiPGRpdiBpZD1cInRhcmdldFwiIHN0eWxlPVwid2lkdGg6MTAwcHg7aGVp
Z2h0OjEwMHB4O2JhY2tncm91bmQtY29sb3I6cmVkXCI+PC9kaXY+Il07CiAgICAgW3dlYlZpZXcg
b2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN0
YXJnZXQnKS5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRmdWxsc2NyZWVuY2hhbmdlJywgZXZlbnQg
PT4geyB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2Fn
ZSgnZnVsbHNjcmVlbmNoYW5nZScpOyB9KTsiXTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzYTVkNTU5NmExN2FmMDNhYmIx
MmMyMmQ1OWRkNDM2NDdiYThlZDE4Li41ZTcwN2JmYzdmMWJiOTIzMWY5YzZjM2M1MmZiODM1MzU3
ZjE2ODc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjAtMTAtMjEgIFBlbmcgTGl1ICA8cGVu
Zy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBMZXQgd2Via2l0RGlzcGxheWluZ0Z1bGxzY3Jl
ZW4oKSByZXR1cm4gdHJ1ZSB3aGVuIGEgdmlkZW8gZWxlbWVudOKAmXMgZnVsbHNjcmVlbiBtb2Rl
IGlzIG5vdCBWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2NDI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmVy
IE5vYmxlLgorCisgICAgICAgIENoZWNrIEludGVybmFsczo6aXNDaGFuZ2luZ1ByZXNlbnRhdGlv
bk1vZGUgaW5zdGVhZCBvZiBIVE1MVmlkZW9FbGVtZW50Ojp3ZWJraXREaXNwbGF5aW5nRnVsbHNj
cmVlbgorICAgICAgICB0byBjb25maXJtIHRoZSB2aWRlbyBwcmVzZW50YXRpb24gbW9kZSBjaGFu
Z2UgaXMgY29tcGxldGVkIGJlZm9yZSBtb3ZpbmcgdG8gdGhlIG5leHQgc3RlcCBvZiBhIHRlc3Qu
CisKKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNv
cy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJv
bHMtbGl2ZS1icm9hZGNhc3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMv
bWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1saXZlLWJyb2FkY2FzdC5odG1sOgorICAg
ICAgICAqIG1lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWw6CisgICAgICAgICogbWVkaWEv
bWVkaWEtZnVsbHNjcmVlbi1sb29wLWlubGluZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVk
aWEvbWVkaWEtZnVsbHNjcmVlbi1sb29wLWlubGluZS5odG1sOgorICAgICAgICAqIG1lZGlhL21l
ZGlhLWZ1bGxzY3JlZW4tcGF1c2UtaW5saW5lLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBtZWRp
YS9tZWRpYS1mdWxsc2NyZWVuLXBhdXNlLWlubGluZS5odG1sOgorICAgICAgICAqIG1lZGlhL21l
ZGlhLWZ1bGxzY3JlZW4tcmV0dXJuLXRvLWlubGluZS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
bWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1yZXR1cm4tdG8taW5saW5lLmh0bWw6CisgICAgICAgICog
bWVkaWEvcHJlc2VudGF0aW9ubW9kZWNoYW5nZWQtZmlyZWQtb25jZS1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogbWVkaWEvcHJlc2VudGF0aW9ubW9kZWNoYW5nZWQtZmlyZWQtb25jZS5odG1sOgor
ICAgICAgICAqIG1lZGlhL3ZpZGVvLWZ1bGxzY3JlZW4tb25seS1wbGF5YmFjay1leHBlY3RlZC50
eHQ6CisgICAgICAgICogbWVkaWEvdmlkZW8tZnVsbHNjcmVlbi1vbmx5LXBsYXliYWNrLmh0bWw6
CisgICAgICAgICogbWVkaWEvdmlkZW8tcGxheXNpbmxpbmUtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIG1lZGlhL3ZpZGVvLXBsYXlzaW5saW5lLmh0bWw6CisgICAgICAgICogbWVkaWEvdmlkZW8t
cHJlc2VudGF0aW9uLW1vZGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIG1lZGlhL3ZpZGVvLXBy
ZXNlbnRhdGlvbi1tb2RlLmh0bWw6CisgICAgICAgICogbWVkaWEvdmlkZW8td2Via2l0LXBsYXlz
aW5saW5lLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBtZWRpYS92aWRlby13ZWJraXQtcGxheXNp
bmxpbmUuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKwog
MjAyMC0xMC0yMSAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIFN0b3AgZ2FwIHBhdGNoIGZpeCBmb3IgcmVncmVzc2lvbiBpbiByMjY3MzI5LgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlh
LWNvbnRyb2xzLWxpdmUtYnJvYWRjYXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEt
Y29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1saXZlLWJyb2FkY2FzdC1l
eHBlY3RlZC50eHQKaW5kZXggYjMyYTdjMTc0OWFjYmM3NmRkNmVjMWEwN2ZmOWVmZDdkZTQyN2Iz
Yy4uN2I2Njk0OTUzZDZlMzQwOGQwNzcwNWI2MDVhN2Q1OWQ1MDkzNTlmMCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3Mt
ZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xz
LWxpdmUtYnJvYWRjYXN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRy
b2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtbGl2ZS1icm9hZGNhc3QtZXhwZWN0
ZWQudHh0CkBAIC0zLDcgKzMsNyBAQCBUZXN0aW5nIHRoYXQgd2UgZG8gbm90IHNob3cgdGhlIHNl
ZWtpbmcgY29udHJvbHMgaW4gZnVsbHNjcmVlbiB3aXRoIGEgbGl2ZSBicm9hZAogT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgbWVkaWEud2Via2l0RGlzcGxheWluZ0Z1bGxzY3Jl
ZW4gYmVjYW1lIHRydWUKK1BBU1MgbWVkaWEud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gaXMg
dHJ1ZQogUEFTUyBtZWRpYS5kdXJhdGlvbiBiZWNhbWUgTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZ
CiBQQVNTIG1lZGlhQ29udHJvbGxlci5jb250cm9scy5yZXdpbmRCdXR0b24uZW5hYmxlZCBpcyBm
YWxzZQogUEFTUyBtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMuZm9yd2FyZEJ1dHRvbi5lbmFibGVk
IGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1
bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtbGl2ZS1icm9hZGNhc3QuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4t
bWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1saXZlLWJyb2Fk
Y2FzdC5odG1sCmluZGV4IGFmYmU4ODE0ZTY4NTA4NGNmYWI2NTk5YmEyYmQ0NWI1ZTcwZGZkMGIu
LmI2NGI0M2EyMzM1OTBkYWJmNDhlMzE3YTY4ZjBiMGM2YjNjNDM0MjIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1
bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1s
aXZlLWJyb2FkY2FzdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3Mt
ZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1saXZlLWJyb2FkY2FzdC5odG1sCkBAIC0xNSwxOCAr
MTUsMTcgQEAgY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwog
Y29uc3QgbWVkaWFDb250cm9sbGVyID0gY3JlYXRlQ29udHJvbHMoc2hhZG93Um9vdCwgbWVkaWEs
IG51bGwpOwogCiBtZWRpYS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRmdWxsc2NyZWVuY2hhbmdl
IiwgKCkgPT4gewotICAgIHNob3VsZEJlY29tZUVxdWFsKCJtZWRpYS53ZWJraXREaXNwbGF5aW5n
RnVsbHNjcmVlbiIsICJ0cnVlIiwgKCkgPT4gewotICAgICAgICBzaG91bGRCZWNvbWVFcXVhbCgi
bWVkaWEuZHVyYXRpb24iLCAiTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZIiwgKCkgPT4gewotICAg
ICAgICAgICAgc2hvdWxkQmVGYWxzZSgibWVkaWFDb250cm9sbGVyLmNvbnRyb2xzLnJld2luZEJ1
dHRvbi5lbmFibGVkIik7Ci0gICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJtZWRpYUNvbnRyb2xs
ZXIuY29udHJvbHMuZm9yd2FyZEJ1dHRvbi5lbmFibGVkIik7Ci0gICAgICAgICAgICBzaG91bGRC
ZSgibWVkaWFDb250cm9sbGVyLmNvbnRyb2xzLnRpbWVDb250cm9sLnBhcmVudCIsICJudWxsIik7
Ci0gICAgICAgICAgICBzaG91bGRCZSgibWVkaWFDb250cm9sbGVyLmNvbnRyb2xzLnN0YXR1c0xh
YmVsLnBhcmVudCIsICJtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMuYm90dG9tQ29udHJvbHNCYXIi
KTsKLQotICAgICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7
Ci0gICAgICAgICAgICBzaGFkb3dSb290Lmhvc3QucmVtb3ZlKCk7Ci0gICAgICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKLSAgICAgICAgfSk7CisgICAgc2hvdWxkQmVUcnVlKCJtZWRpYS53ZWJraXRE
aXNwbGF5aW5nRnVsbHNjcmVlbiIpOworICAgIHNob3VsZEJlY29tZUVxdWFsKCJtZWRpYS5kdXJh
dGlvbiIsICJOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkiLCAoKSA9PiB7CisgICAgICAgIHNob3Vs
ZEJlRmFsc2UoIm1lZGlhQ29udHJvbGxlci5jb250cm9scy5yZXdpbmRCdXR0b24uZW5hYmxlZCIp
OworICAgICAgICBzaG91bGRCZUZhbHNlKCJtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMuZm9yd2Fy
ZEJ1dHRvbi5lbmFibGVkIik7CisgICAgICAgIHNob3VsZEJlKCJtZWRpYUNvbnRyb2xsZXIuY29u
dHJvbHMudGltZUNvbnRyb2wucGFyZW50IiwgIm51bGwiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1l
ZGlhQ29udHJvbGxlci5jb250cm9scy5zdGF0dXNMYWJlbC5wYXJlbnQiLCAibWVkaWFDb250cm9s
bGVyLmNvbnRyb2xzLmJvdHRvbUNvbnRyb2xzQmFyIik7CisKKyAgICAgICAgZGVidWcoIiIpOwor
ICAgICAgICBtZWRpYS5yZW1vdmUoKTsKKyAgICAgICAgc2hhZG93Um9vdC5ob3N0LnJlbW92ZSgp
OworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9KTsKIH0pOwogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMv
bWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMuaHRtbAppbmRleCAwNTllZWE3MDk1MmY4NTdmYmM2
MjU2Yjg0OTY3ZmY2MWE2MzI3ZTM2Li5kMzkzYzc5MGIxODVkMzc0MDQ5YTM3MzE3N2E5NmRlOTk0
MjY5OWVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9u
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwK
QEAgLTEsODcgKzEsODYgQEAKKzwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KLSAgICAg
ICAgPHNjcmlwdCBzcmM9Im1lZGlhLWZpbGUuanMiPjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0
IHNyYz0idmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQ+Ci0KLSAgICAg
ICAgICAgIGFzeW5jIGZ1bmN0aW9uIHBsYXlpbmcoKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgICAgICAgICBpZiAo
IXdpbmRvdy5ldmVudFNlbmRlcikgewotICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBlbmRUZXN0KCk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICB9IGVsc2UgeworICAgIDxzY3JpcHQgc3JjPSJtZWRpYS1maWxlLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0idmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdD4KKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gcGxheWluZygpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgICAgIGlmICghd2lu
ZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwogICAgICAgICAgICAgICAgICAgICBlbmRUZXN0KCk7CiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICB9CiAKLSAgICAgICAgICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7Ci0KLSAgICAgICAg
ICAgICAgICB2YXIgeCwgeSwgaXRlbXM7Ci0gICAgICAgICAgICAgICAgeCA9IHZpZGVvLm9mZnNl
dFBhcmVudC5vZmZzZXRMZWZ0ICsgdmlkZW8ub2Zmc2V0TGVmdCArIHZpZGVvLm9mZnNldFdpZHRo
IC8gMjsKLSAgICAgICAgICAgICAgICB5ID0gdmlkZW8ub2Zmc2V0UGFyZW50Lm9mZnNldFRvcCAr
IHZpZGVvLm9mZnNldFRvcCArIHZpZGVvLm9mZnNldEhlaWdodCAvIDI7Ci0gICAgICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7Ci0gICAgICAgICAgICAgICAgaXRlbXMg
PSBldmVudFNlbmRlci5jb250ZXh0Q2xpY2soKTsKLQorICAgICAgICAgICAgZmluZE1lZGlhRWxl
bWVudCgpOwogCi0gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtcy5sZW5n
dGg7IGkrKykKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChpdGVt
c1tpXS50aXRsZS5tYXRjaCgiQ29udHJvbHMiKSkgewotICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoInZpZGVvLmNvbnRyb2xzIiwgdHJ1ZSwgJz09Jyk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVG9nZ2xpbmcgbWVkaWEgY29udHJvbHMiKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgaXRlbXNbaV0uY2xpY2soKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5jb250cm9scyIsIGZhbHNlLCAnPT0nKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKLSAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgdmFyIHgsIHksIGl0ZW1zOworICAgICAgICAgICAgeCA9IHZpZGVvLm9mZnNl
dFBhcmVudC5vZmZzZXRMZWZ0ICsgdmlkZW8ub2Zmc2V0TGVmdCArIHZpZGVvLm9mZnNldFdpZHRo
IC8gMjsKKyAgICAgICAgICAgIHkgPSB2aWRlby5vZmZzZXRQYXJlbnQub2Zmc2V0VG9wICsgdmlk
ZW8ub2Zmc2V0VG9wICsgdmlkZW8ub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOworICAgICAgICAgICAgaXRlbXMgPSBldmVudFNlbmRl
ci5jb250ZXh0Q2xpY2soKTsKIAotICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbXNbaV0udGl0
bGUubWF0Y2goIlBhdXNlIikpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVk
KCJ2aWRlby5wYXVzZWQiLCBmYWxzZSwgJz09Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgIGNv
bnNvbGVXcml0ZSgiVG9nZ2xpbmcgcGxheSBzdGF0ZSIpOwotICAgICAgICAgICAgICAgICAgICAg
ICBpdGVtc1tpXS5jbGljaygpOwotICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQo
InZpZGVvLnBhdXNlZCIsIHRydWUsICc9PScpOwotICAgICAgICAgICAgICAgICAgICAgICBjb25z
b2xlV3JpdGUoIiIpOwotICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIGlmIChpdGVtc1tpXS50aXRsZS5tYXRjaCgiQ29udHJvbHMiKSkgeworICAgICAgICAg
ICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmNvbnRyb2xzIiwgdHJ1ZSwgJz09Jyk7Cisg
ICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVG9nZ2xpbmcgbWVkaWEgY29udHJvbHMi
KTsKKyAgICAgICAgICAgICAgICAgICAgaXRlbXNbaV0uY2xpY2soKTsKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5jb250cm9scyIsIGZhbHNlLCAnPT0nKTsKKyAgICAg
ICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICB9CiAKLSAg
ICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLnRpdGxlLm1hdGNoKCJMb29wIikpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5sb29wIiwgZmFsc2UsICc9
PScpOwotICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRvZ2dsaW5nIGxvb3Ag
c3RhdGUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNbaV0uY2xpY2soKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5sb29wIiwgdHJ1ZSwgJz09Jyk7
Ci0gICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7Ci0gICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaXRlbXNbaV0udGl0bGUubWF0Y2goIlBhdXNl
IikpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5wYXVzZWQiLCBm
YWxzZSwgJz09Jyk7CisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVG9nZ2xpbmcg
cGxheSBzdGF0ZSIpOworICAgICAgICAgICAgICAgICAgICBpdGVtc1tpXS5jbGljaygpOworICAg
ICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnBhdXNlZCIsIHRydWUsICc9PScp
OworICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAg
IH0KIAotICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbXNbaV0udGl0bGUubWF0Y2goIk11dGUi
KSkgewotICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLm11dGVkIiwg
ZmFsc2UsICc9PScpOwotICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRvZ2ds
aW5nIG11dGUgc3RhdGUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNbaV0uY2xpY2so
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5tdXRlZCIsIHRy
dWUsICc9PScpOwotICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOwotICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLnRpdGxlLm1h
dGNoKCJMb29wIikpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5s
b29wIiwgZmFsc2UsICc9PScpOworICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRv
Z2dsaW5nIGxvb3Agc3RhdGUiKTsKKyAgICAgICAgICAgICAgICAgICAgaXRlbXNbaV0uY2xpY2so
KTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5sb29wIiwgdHJ1ZSwg
Jz09Jyk7CisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAg
ICAgICAgfQogCi0gICAgICAgICAgICAgICAgICAgIGlmIChpdGVtc1tpXS50aXRsZS5tYXRjaCgi
RnVsbHNjcmVlbiIpICYmIHZpZGVvLndlYmtpdFN1cHBvcnRzRnVsbHNjcmVlbikgewotICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxs
c2NyZWVuIiwgZmFsc2UsICc9PScpOwotICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3Jp
dGUoIlRvZ2dsaW5nIGZ1bGxzY3JlZW4gc3RhdGUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
aXRlbXNbaV0uY2xpY2soKTsKLSAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGVzdEV4cGVj
dGVkRXZlbnR1YWxseSgidmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4iLCB0cnVlLCAi
PT0iLCAxMDAwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKLSAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChpdGVtc1tpXS50aXRsZS5t
YXRjaCgiTXV0ZSIpKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8u
bXV0ZWQiLCBmYWxzZSwgJz09Jyk7CisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgi
VG9nZ2xpbmcgbXV0ZSBzdGF0ZSIpOworICAgICAgICAgICAgICAgICAgICBpdGVtc1tpXS5jbGlj
aygpOworICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLm11dGVkIiwgdHJ1
ZSwgJz09Jyk7CisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAg
ICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IHRlc3QgY29weSBsaW5r
IGxvY2F0aW9uIGFuZCBvcGVuIGluIG5ldyB3aW5kb3cuCi0gICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgICAgICAgICAg
IGVuZFRlc3QoKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaXRlbXNbaV0u
dGl0bGUubWF0Y2goIkZ1bGxzY3JlZW4iKSAmJiB2aWRlby53ZWJraXRTdXBwb3J0c0Z1bGxzY3Jl
ZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby53ZWJraXREaXNw
bGF5aW5nRnVsbHNjcmVlbiIsIGZhbHNlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAgICAgY29u
c29sZVdyaXRlKCJUb2dnbGluZyBmdWxsc2NyZWVuIHN0YXRlIik7CisgICAgICAgICAgICAgICAg
ICAgIGl0ZW1zW2ldLmNsaWNrKCk7CisgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBl
Y3RlZEV2ZW50dWFsbHkoImludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRl
bykiLCBmYWxzZSwgJz09JywgMTAwMCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3Rl
ZCgidmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4iLCB0cnVlLCAnPT0nKTsKKyAgICAg
ICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICB9CiAKLSAg
ICAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHN0YXJ0KCkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7Ci0gICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50
KCdwbGF5JywgcGxheWluZyk7Ci0gICAgICAgICAgICAgICAgcnVuKCJ2aWRlby5zcmMgPSAnIiAr
IGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgImNvbnRlbnQvdGVzdCIpICsgIiciKTsKKyAgICAgICAg
ICAgICAgICAvLyBUT0RPOiB0ZXN0IGNvcHkgbGluayBsb2NhdGlvbiBhbmQgb3BlbiBpbiBuZXcg
d2luZG93LgogICAgICAgICAgICAgfQorICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CisgICAgICAgICAgICBlbmRUZXN0KCk7CisgICAgICAgIH0KIAotICAgICAgIDwvc2NyaXB0
PgorICAgICAgICBhc3luYyBmdW5jdGlvbiBzdGFydCgpCisgICAgICAgIHsKKyAgICAgICAgICAg
IGZpbmRNZWRpYUVsZW1lbnQoKTsKKyAgICAgICAgICAgIHdhaXRGb3JFdmVudCgncGxheScsIHBs
YXlpbmcpOworICAgICAgICAgICAgcnVuKCJ2aWRlby5zcmMgPSAnIiArIGZpbmRNZWRpYUZpbGUo
InZpZGVvIiwgImNvbnRlbnQvdGVzdCIpICsgIiciKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0
PgogPC9oZWFkPgogPGJvZHkgb25sb2FkPSJzdGFydCgpIj4KICAgICA8cD5UZXN0IHRoZSB2YXJp
b3VzIGFjdGlvbnMgYXZhaWxhYmxlIGluIHRoZSBIVE1MNSBtZWRpYSBlbGVtZW50IGNvbnRleHQt
bWVudS48L3A+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVu
LWxvb3AtaW5saW5lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxz
Y3JlZW4tbG9vcC1pbmxpbmUtZXhwZWN0ZWQudHh0CmluZGV4IDVhMzM3YTNlMjNlNmYxMjZlOTFj
NTMwOTk1ZmYxNWQ1YmRkMDFjMTkuLjg3YzFlZTc1NDIwNjQxMDRjNjAwZTZmYWMzYzhiZTk4Yjk5
ZDg4NmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tbG9v
cC1pbmxpbmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxz
Y3JlZW4tbG9vcC1pbmxpbmUtZXhwZWN0ZWQudHh0CkBAIC03LDEyICs3LDE0IEBAIEVWRU5UKGNh
bnBsYXl0aHJvdWdoKQogUlVOKHZpZGVvLnBsYXkoKSkKIFdhaXQgdG8gZW50ZXIgZnVsbHNjcmVl
bgogRVZFTlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQpCitFWFBFQ1RFRCAoaW50ZXJu
YWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQ
RUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICd0cnVlJykgT0sKIEVu
dGVyZWQgZnVsbHNjcmVlbgogUlVOKHZpZGVvLmN1cnJlbnRUaW1lID0gNSkKIFJVTih2aWRlby53
ZWJraXRFeGl0RnVsbHNjcmVlbigpKQogV2FpdCB0byBleGl0IGZ1bGxzY3JlZW4KIEVWRU5UKHdl
YmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkKQorRVhQRUNURUQgKGludGVybmFscy5pc0NoYW5n
aW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykgPT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2aWRl
by53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAnZmFsc2UnKSBPSwogRXhpdGVkIGZ1bGxz
Y3JlZW4KIEVYUEVDVEVEICh2aWRlby5wYXVzZWQgPT0gJ2ZhbHNlJykgT0sKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tbG9vcC1pbmxpbmUuaHRtbCBiL0xh
eW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tbG9vcC1pbmxpbmUuaHRtbAppbmRleCBj
MTRkYzU3MzNhZjdkNmUwNTQyNTFhNDI4ZTVhNTQxNmJhMWRjM2VmLi4zZTUwOTBiMjExNmRkY2Y2
MjE3YTYyMmViY2EyYTkzMzlhMTU1MDM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9t
ZWRpYS1mdWxsc2NyZWVuLWxvb3AtaW5saW5lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEv
bWVkaWEtZnVsbHNjcmVlbi1sb29wLWlubGluZS5odG1sCkBAIC0zNSw3ICszNSw4IEBACiAKICAg
ICBhc3luYyBmdW5jdGlvbiBiZWdpbmZ1bGxzY3JlZW4oKQogICAgIHsKLSAgICAgICAgYXdhaXQg
dGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4n
LCB0cnVlKTsKKyAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJuYWxz
LmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKKyAgICAgICAgdGVz
dEV4cGVjdGVkKCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIHRydWUpOwogICAg
ICAgICBjb25zb2xlV3JpdGUoIkVudGVyZWQgZnVsbHNjcmVlbiIpOwogICAgICAgICBydW4oJ3Zp
ZGVvLmN1cnJlbnRUaW1lID0gNScpOwogICAgICAgICBydW4oJ3ZpZGVvLndlYmtpdEV4aXRGdWxs
c2NyZWVuKCknKTsKQEAgLTQ1LDcgKzQ2LDggQEAKIAogICAgIGFzeW5jIGZ1bmN0aW9uIGVuZGZ1
bGxzY3JlZW4oKQogICAgIHsKLSAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgn
dmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCBmYWxzZSk7CisgICAgICAgIGF3YWl0
IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoImludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9u
TW9kZSh2aWRlbykiLCBmYWxzZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8ud2Via2l0
RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCBmYWxzZSk7CiAgICAgICAgIGNvbnNvbGVXcml0ZSgiRXhp
dGVkIGZ1bGxzY3JlZW4iKTsKICAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby5wYXVzZWQnLCBm
YWxzZSk7CiAgICAgICAgIHJ1bigndmlkZW8ub250aW1ldXBkYXRlID0gdGltZXVwZGF0ZScpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1wYXVzZS1pbmxp
bmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1wYXVz
ZS1pbmxpbmUtZXhwZWN0ZWQudHh0CmluZGV4IDNhYmM5ZTI5MmE2NDZiYzIwY2NmMzllN2U5MjJj
MzI4OWRhNDJlNTUuLjkzYWJmMWE2ZTZiOTg3OGYxM2ZmNTQ4ODcyMjI0MGJmYTI4ZmMxYmMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcGF1c2UtaW5saW5l
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXBh
dXNlLWlubGluZS1leHBlY3RlZC50eHQKQEAgLTQsMTUgKzQsMTggQEAgVGVzdCB0aGF0IGEgPHZp
ZGVvPiBrZWVwcyBwbGF5aW5nIGFmdGVyIGV4aXRpbmcgZnVsbHNjcmVlbiB3aGVuIHRoZSBpbnRl
cm5hbCBwcm8KIFJVTih2aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxlKCJ2aWRlbyIsICJjb250ZW50
L3Rlc3QiKSkKIEVWRU5UKGNhbnBsYXl0aHJvdWdoKQogUlVOKHZpZGVvLnBsYXkoKS50aGVuKHBs
YXlpbmcpOykKK0VYUEVDVEVEIChpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUo
dmlkZW8pID09ICdmYWxzZScpIE9LCiBFWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1
bGxzY3JlZW4gPT0gJ3RydWUnKSBPSwogUlVOKHZpZGVvLndlYmtpdEV4aXRGdWxsc2NyZWVuKCkp
CiBFVkVOVCh3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCkKK0VYUEVDVEVEIChpbnRlcm5h
bHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pID09ICdmYWxzZScpIE9LCiBFWFBF
Q1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ2ZhbHNlJykgT0sKIEVY
UEVDVEVEICh2aWRlby5wYXVzZWQgPT0gJ2ZhbHNlJykgT0sKIFJVTih2aWRlby5wYXVzZSgpKQog
RVZFTlQocGF1c2UpCiBFWFBFQ1RFRCAodmlkZW8ucGF1c2VkID09ICd0cnVlJykgT0sKIFJVTih2
aWRlby5wbGF5KCkudGhlbihwbGF5aW5nQWdhaW4pKQorRVhQRUNURUQgKGludGVybmFscy5pc0No
YW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykgPT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2
aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAndHJ1ZScpIE9LCiBFTkQgT0YgVEVT
VAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXBhdXNl
LWlubGluZS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1wYXVzZS1p
bmxpbmUuaHRtbAppbmRleCBmYzhhMjVlNWNhODMyNDI5YzFlNzM4OTU1MTk2N2JmOWJiNWNhNjRj
Li41ZGFiMzQ5NjE1MzE2Zjc1ZmZkNjJmMzk3N2I5ZTBjNTNjYTA0Nzk3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXBhdXNlLWlubGluZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcGF1c2UtaW5saW5lLmh0bWwKQEAg
LTMzLDE0ICszMywxNiBAQAogCiAgICAgYXN5bmMgZnVuY3Rpb24gcGxheWluZygpCiAgICAgewot
ICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby53ZWJraXREaXNwbGF5
aW5nRnVsbHNjcmVlbicsIHRydWUpOworICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVh
bGx5KCJpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pIiwgZmFsc2Up
OworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVu
JywgdHJ1ZSk7CiAgICAgICAgIHdhaXRGb3JFdmVudE9uY2UoJ3dlYmtpdHByZXNlbnRhdGlvbm1v
ZGVjaGFuZ2VkJywgZW5kZnVsbHNjcmVlbik7CiAgICAgICAgIHJ1bigndmlkZW8ud2Via2l0RXhp
dEZ1bGxzY3JlZW4oKScpOwogICAgIH0KIAogICAgIGFzeW5jIGZ1bmN0aW9uIGVuZGZ1bGxzY3Jl
ZW4oKQogICAgIHsKLSAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8u
d2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCBmYWxzZSk7CisgICAgICAgIGF3YWl0IHRlc3RF
eHBlY3RlZEV2ZW50dWFsbHkoImludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2
aWRlbykiLCBmYWxzZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8ud2Via2l0RGlzcGxh
eWluZ0Z1bGxzY3JlZW4nLCBmYWxzZSk7CiAgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8ucGF1
c2VkJywgZmFsc2UpOwogICAgICAgICB3YWl0Rm9yRXZlbnRPbmNlKCdwYXVzZScsIHBhdXNlZCk7
CiAgICAgICAgIHJ1bigndmlkZW8ucGF1c2UoKScpOwpAQCAtNTQsNyArNTYsOCBAQAogCiAgICAg
YXN5bmMgZnVuY3Rpb24gcGxheWluZ0FnYWluKCkKICAgICB7Ci0gICAgICAgIGF3YWl0IHRlc3RF
eHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuJywgdHJ1
ZSk7CisgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoImludGVybmFscy5pc0No
YW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykiLCBmYWxzZSk7CisgICAgICAgIHRlc3RFeHBl
Y3RlZCgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCB0cnVlKTsKICAgICAgICAg
ZW5kVGVzdCgpOwogICAgIH0KICAgICA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcmV0dXJuLXRvLWlubGluZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2NyZWVuLXJldHVybi10by1pbmxpbmUtZXhwZWN0
ZWQudHh0CmluZGV4IGFlODcyOWNlYjg5MWYyMmUxZWMxMThkMjYwMThlMzhmMjgxN2YwYWYuLjQ0
MmQxMzJkMGVkNGVlMDkyYTAxYTU5MDE1YTMxNDdlOGViZTQxY2EgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL21lZGlhL21lZGlhLWZ1bGxzY3JlZW4tcmV0dXJuLXRvLWlubGluZS1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1yZXR1cm4tdG8taW5s
aW5lLWV4cGVjdGVkLnR4dApAQCAtNSwxNiArNSwyMCBAQCBSVU4odmlkZW8uc3JjID0gZmluZE1l
ZGlhRmlsZSgidmlkZW8iLCAiY29udGVudC90ZXN0IikpCiBFVkVOVChjYW5wbGF5dGhyb3VnaCkK
IFJVTih2aWRlby5wbGF5KCkpCiBFVkVOVCh3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCkK
K0VYUEVDVEVEIChpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pID09
ICdmYWxzZScpIE9LCiBFWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4g
PT0gJ3RydWUnKSBPSwogUlVOKHZpZGVvLndlYmtpdEV4aXRGdWxsc2NyZWVuKCkpCi1FVkVOVChw
YXVzZSkKK0VWRU5UKHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkKQorRVhQRUNURUQgKGlu
dGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykgPT0gJ2ZhbHNlJykgT0sK
IEVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAnZmFsc2UnKSBP
SwogRVhQRUNURUQgKHZpZGVvLnBhdXNlZCA9PSAndHJ1ZScpIE9LCiBSVU4odmlkZW8ucGxheSgp
KQogRVZFTlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQpCitFWFBFQ1RFRCAoaW50ZXJu
YWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQ
RUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuID09ICd0cnVlJykgT0sKIFJV
Tih2aWRlby53ZWJraXRFeGl0RnVsbHNjcmVlbigpKQogRVZFTlQod2Via2l0cHJlc2VudGF0aW9u
bW9kZWNoYW5nZWQpCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25N
b2RlKHZpZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlp
bmdGdWxsc2NyZWVuID09ICdmYWxzZScpIE9LCiBFWFBFQ1RFRCAodmlkZW8ucGF1c2VkID09ICdm
YWxzZScpIE9LCiBFTkQgT0YgVEVTVApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVk
aWEtZnVsbHNjcmVlbi1yZXR1cm4tdG8taW5saW5lLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
ZWRpYS1mdWxsc2NyZWVuLXJldHVybi10by1pbmxpbmUuaHRtbAppbmRleCA1MDdjZDFmMTczMzM3
NDk3NTFjMzQ4MDFjYTlmYmY5NTEyNWRlYTBjLi5jYjkxYTVjMTc1Nzg1MDY0YTkwZDI4YTQ2YTEw
YjE0NjdmZGM3ZGQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1mdWxsc2Ny
ZWVuLXJldHVybi10by1pbmxpbmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1m
dWxsc2NyZWVuLXJldHVybi10by1pbmxpbmUuaHRtbApAQCAtMzQsMTQgKzM0LDE2IEBACiAKICAg
ICBhc3luYyBmdW5jdGlvbiBiZWdpbmZ1bGxzY3JlZW4xKCkKICAgICB7Ci0gICAgICAgIGF3YWl0
IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVu
JywgdHJ1ZSk7Ci0gICAgICAgIHdhaXRGb3JFdmVudE9uY2UoJ3BhdXNlJywgcGF1c2UpOworICAg
ICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCJpbnRlcm5hbHMuaXNDaGFuZ2luZ1By
ZXNlbnRhdGlvbk1vZGUodmlkZW8pIiwgZmFsc2UpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3Zp
ZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuJywgdHJ1ZSk7CisgICAgICAgIHdhaXRGb3JF
dmVudE9uY2UoJ3dlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkJywgZW5kZnVsbHNjcmVlbjEp
OwogICAgICAgICBydW4oJ3ZpZGVvLndlYmtpdEV4aXRGdWxsc2NyZWVuKCknKTsKICAgICB9CiAK
LSAgICBhc3luYyBmdW5jdGlvbiBwYXVzZSgpCisgICAgYXN5bmMgZnVuY3Rpb24gZW5kZnVsbHNj
cmVlbjEoKQogICAgIHsKLSAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlk
ZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCBmYWxzZSk7CisgICAgICAgIGF3YWl0IHRl
c3RFeHBlY3RlZEV2ZW50dWFsbHkoImludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9k
ZSh2aWRlbykiLCBmYWxzZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8ud2Via2l0RGlz
cGxheWluZ0Z1bGxzY3JlZW4nLCBmYWxzZSk7CiAgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8u
cGF1c2VkJywgdHJ1ZSk7CiAKICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93c0lu
bGluZU1lZGlhUGxheWJhY2tBZnRlckZ1bGxzY3JlZW4odHJ1ZSk7CkBAIC01MiwxNCArNTQsMTYg
QEAKIAogICAgIGFzeW5jIGZ1bmN0aW9uIGJlZ2luZnVsbHNjcmVlbjIoKQogICAgIHsKLSAgICAg
ICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1
bGxzY3JlZW4nLCB0cnVlKTsKLSAgICAgICAgd2FpdEZvckV2ZW50T25jZSgnd2Via2l0cHJlc2Vu
dGF0aW9ubW9kZWNoYW5nZWQnLCBlbmRmdWxsc2NyZWVuKTsKKyAgICAgICAgYXdhaXQgdGVzdEV4
cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZp
ZGVvKSIsIGZhbHNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby53ZWJraXREaXNwbGF5
aW5nRnVsbHNjcmVlbicsIHRydWUpOworICAgICAgICB3YWl0Rm9yRXZlbnRPbmNlKCd3ZWJraXRw
cmVzZW50YXRpb25tb2RlY2hhbmdlZCcsIGVuZGZ1bGxzY3JlZW4yKTsKICAgICAgICAgcnVuKCd2
aWRlby53ZWJraXRFeGl0RnVsbHNjcmVlbigpJyk7CiAgICAgfQogCi0gICAgYXN5bmMgZnVuY3Rp
b24gZW5kZnVsbHNjcmVlbigpCisgICAgYXN5bmMgZnVuY3Rpb24gZW5kZnVsbHNjcmVlbjIoKQog
ICAgIHsKLSAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgndmlkZW8ud2Via2l0
RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCBmYWxzZSk7CisgICAgICAgIGF3YWl0IHRlc3RFeHBlY3Rl
ZEV2ZW50dWFsbHkoImludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbyki
LCBmYWxzZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1
bGxzY3JlZW4nLCBmYWxzZSk7CiAgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8ucGF1c2VkJywg
ZmFsc2UpOwogICAgICAgICBlbmRUZXN0KCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29u
dHJvbGxlci1pbmxpbmUtdG8tZnVsbHNjcmVlbi10by1waXAtdG8taW5saW5lLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9s
bGVyL21lZGlhLWNvbnRyb2xsZXItaW5saW5lLXRvLWZ1bGxzY3JlZW4tdG8tcGlwLXRvLWlubGlu
ZS1leHBlY3RlZC50eHQKaW5kZXggNTJlNDIyMThmZGVhMjZjMzI1YjVhMDA4ZDI2YzczMjgwMGU3
MzRkMy4uMjY5YTEyZjcwNjRiZTZkMmQwZjk0ZGJiMzk4ODhkNjg0OTk5NDY2MyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xs
ZXIvbWVkaWEtY29udHJvbGxlci1pbmxpbmUtdG8tZnVsbHNjcmVlbi10by1waXAtdG8taW5saW5l
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWlubGluZS10by1mdWxsc2NyZWVu
LXRvLXBpcC10by1pbmxpbmUtZXhwZWN0ZWQudHh0CkBAIC04LDE4ICs4LDE4IEBAIFBBU1Mgc2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcubWVkaWEtY29udHJvbHMnKS5jbGFzc0xpc3QuY29udGFp
bnMoJ2lubGluZScpIGlzCiBNZWRpYSBzdGFydGVkIHBsYXlpbmcsIHdlIHBhdXNlIGl0IGFuZCBl
bnRlciBmdWxsc2NyZWVuIGJ5IGNsaWNraW5nIG9uIHRoZSBtYXRjaGluZyBidXR0b24uCiAKIE1l
ZGlhIHJlY2VpdmVkIGEgd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQgZXZlbnQsIG1lZGlh
LndlYmtpdFByZXNlbnRhdGlvbk1vZGUgPSBmdWxsc2NyZWVuLgotUEFTUyBtZWRpYS53ZWJraXRE
aXNwbGF5aW5nRnVsbHNjcmVlbiBiZWNhbWUgdHJ1ZQorUEFTUyBpbnRlcm5hbHMuaXNDaGFuZ2lu
Z1ByZXNlbnRhdGlvbk1vZGUobWVkaWEpIGJlY2FtZSBmYWxzZQogUEFTUyBzaGFkb3dSb290LnF1
ZXJ5U2VsZWN0b3IoJy5tZWRpYS1jb250cm9scycpLmNsYXNzTGlzdC5jb250YWlucygnZnVsbHNj
cmVlbicpIGlzIHRydWUKIAogV2UgZW50ZXIgcGljdHVyZS1pbi1waWN0dXJlIGJ5IGNsaWNraW5n
IG9uIHRoZSBtYXRjaGluZyBidXR0b24uCiAKIE1lZGlhIHJlY2VpdmVkIGEgd2Via2l0cHJlc2Vu
dGF0aW9ubW9kZWNoYW5nZWQgZXZlbnQsIG1lZGlhLndlYmtpdFByZXNlbnRhdGlvbk1vZGUgPSBw
aWN0dXJlLWluLXBpY3R1cmUuCi1QQVNTIG1lZGlhLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVu
IGJlY2FtZSB0cnVlCitQQVNTIGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSht
ZWRpYSkgYmVjYW1lIGZhbHNlCiAKIFdlIGV4aXQgcGljdHVyZS1pbi1waWN0dXJlLgogCiBNZWRp
YSByZWNlaXZlZCBhIHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIGV2ZW50LCBtZWRpYS53
ZWJraXRQcmVzZW50YXRpb25Nb2RlID0gaW5saW5lLgotUEFTUyBtZWRpYS53ZWJraXREaXNwbGF5
aW5nRnVsbHNjcmVlbiBiZWNhbWUgZmFsc2UKK1BBU1MgaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVz
ZW50YXRpb25Nb2RlKG1lZGlhKSBiZWNhbWUgZmFsc2UKIFBBU1Mgc2hhZG93Um9vdC5xdWVyeVNl
bGVjdG9yKCcubWVkaWEtY29udHJvbHMnKS5jbGFzc0xpc3QuY29udGFpbnMoJ2lubGluZScpIGlz
IHRydWUKIAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xsZXIvbWVk
aWEtY29udHJvbGxlci1pbmxpbmUtdG8tZnVsbHNjcmVlbi10by1waXAtdG8taW5saW5lLmh0bWwg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxl
ci9tZWRpYS1jb250cm9sbGVyLWlubGluZS10by1mdWxsc2NyZWVuLXRvLXBpcC10by1pbmxpbmUu
aHRtbAppbmRleCA0ZDYxNzY2ZmQ4YTFlZWM2NTEyYTFkNTQ3NTg4ZWY1MDVhNzY3NTVmLi4zMWY2
N2U4YTBkYTU3ZGNjZWFmMWNhMmJhYmI2MWI2YzNlYTYwZmJhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1j
b250cm9sbGVyLWlubGluZS10by1mdWxsc2NyZWVuLXRvLXBpcC10by1pbmxpbmUuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxl
ci9tZWRpYS1jb250cm9sbGVyLWlubGluZS10by1mdWxsc2NyZWVuLXRvLXBpcC10by1pbmxpbmUu
aHRtbApAQCAtMjYsNDYgKzI2LDQyIEBAIG1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAo
KSA9PiB7CiAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiBjbGlja09uRWxl
bWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi5mdWxsc2NyZWVuIikpKTsKIH0p
OwogCi1sZXQgcHJldmlvdXNQcmVzZW50YXRpb25Nb2RlID0gbWVkaWEud2Via2l0UHJlc2VudGF0
aW9uTW9kZTsKLW1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdHByZXNlbnRhdGlvbm1vZGVj
aGFuZ2VkIiwgKCkgPT4gewotICAgIGlmIChwcmV2aW91c1ByZXNlbnRhdGlvbk1vZGUgPT09IG1l
ZGlhLndlYmtpdFByZXNlbnRhdGlvbk1vZGUpCi0gICAgICAgIHJldHVybjsKLQorbWVkaWEuYWRk
RXZlbnRMaXN0ZW5lcigid2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQiLCBhc3luYyAoKSA9
PiB7CiAgICAgZGVidWcoIiIpOwogICAgIGRlYnVnKGBNZWRpYSByZWNlaXZlZCBhIHdlYmtpdHBy
ZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIGV2ZW50LCBtZWRpYS53ZWJraXRQcmVzZW50YXRpb25Nb2Rl
ID0gJHttZWRpYS53ZWJraXRQcmVzZW50YXRpb25Nb2RlfS5gKTsKIAotICAgIGxldCBkaXNwbGF5
aW5nRnVsbHNjcmVlbiA9ICJ0cnVlIjsKLSAgICBpZiAobWVkaWEud2Via2l0UHJlc2VudGF0aW9u
TW9kZSA9PSAiaW5saW5lIikKLSAgICAgICAgZGlzcGxheWluZ0Z1bGxzY3JlZW4gPSAiZmFsc2Ui
OworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGF3YWl0IG5ldyBQcm9taXNl
KChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQocmVqZWN0LCAy
MDAwKTsKKyAgICAgICAgICAgIHNob3VsZEJlY29tZUVxdWFsKCJpbnRlcm5hbHMuaXNDaGFuZ2lu
Z1ByZXNlbnRhdGlvbk1vZGUobWVkaWEpIiwgImZhbHNlIiwgcmVzb2x2ZSk7CisgICAgICAgIH0p
OworICAgIH0KIAotICAgIHNob3VsZEJlY29tZUVxdWFsKCJtZWRpYS53ZWJraXREaXNwbGF5aW5n
RnVsbHNjcmVlbiIsIGRpc3BsYXlpbmdGdWxsc2NyZWVuLCAoKSA9PiB7Ci0gICAgICAgIHByZXZp
b3VzUHJlc2VudGF0aW9uTW9kZSA9IG1lZGlhLndlYmtpdFByZXNlbnRhdGlvbk1vZGU7Ci0gICAg
ICAgIHN3aXRjaCAobWVkaWEud2Via2l0UHJlc2VudGF0aW9uTW9kZSkgewotICAgICAgICBjYXNl
ICJmdWxsc2NyZWVuIjoKLSAgICAgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUo
KCkgPT4gewotICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgic2hhZG93Um9vdC5xdWVyeVNl
bGVjdG9yKCcubWVkaWEtY29udHJvbHMnKS5jbGFzc0xpc3QuY29udGFpbnMoJ2Z1bGxzY3JlZW4n
KSIpOworICAgIHN3aXRjaCAobWVkaWEud2Via2l0UHJlc2VudGF0aW9uTW9kZSkgeworICAgIGNh
c2UgImZ1bGxzY3JlZW4iOgorICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgp
ID0+IHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCcubWVkaWEtY29udHJvbHMnKS5jbGFzc0xpc3QuY29udGFpbnMoJ2Z1bGxzY3JlZW4nKSIpOwog
Ci0gICAgICAgICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAgICAgICAgIGRlYnVnKCJXZSBl
bnRlciBwaWN0dXJlLWluLXBpY3R1cmUgYnkgY2xpY2tpbmcgb24gdGhlIG1hdGNoaW5nIGJ1dHRv
bi4iKTsKLSAgICAgICAgICAgICAgICBjbGlja09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2Vs
ZWN0b3IoImJ1dHRvbi5waXAiKSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlICJwaWN0dXJlLWluLXBpY3R1cmUiOgogICAgICAgICAgICAgZGVidWco
IiIpOwotICAgICAgICAgICAgZGVidWcoIldlIGV4aXQgcGljdHVyZS1pbi1waWN0dXJlLiIpOwot
ICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gbWVkaWEud2Via2l0U2V0UHJlc2Vu
dGF0aW9uTW9kZSgiaW5saW5lIikpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
ImlubGluZSI6Ci0gICAgICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBzaG91bGRCZVRydWUoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cignLm1lZGlhLWNvbnRyb2xzJykuY2xhc3NMaXN0LmNvbnRhaW5zKCdpbmxpbmUnKSIpOworICAg
ICAgICAgICAgZGVidWcoIldlIGVudGVyIHBpY3R1cmUtaW4tcGljdHVyZSBieSBjbGlja2luZyBv
biB0aGUgbWF0Y2hpbmcgYnV0dG9uLiIpOworICAgICAgICAgICAgY2xpY2tPbkVsZW1lbnQoc2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24ucGlwIikpOworICAgICAgICB9KTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSAicGljdHVyZS1pbi1waWN0dXJlIjoKKyAgICAgICAgZGVidWco
IiIpOworICAgICAgICBkZWJ1ZygiV2UgZXhpdCBwaWN0dXJlLWluLXBpY3R1cmUuIik7CisgICAg
ICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IG1lZGlhLndlYmtpdFNldFByZXNlbnRhdGlvbk1v
ZGUoImlubGluZSIpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAiaW5saW5lIjoKKyAgICAg
ICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CisgICAgICAgICAgICBzaG91
bGRCZVRydWUoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLm1lZGlhLWNvbnRyb2xzJykuY2xh
c3NMaXN0LmNvbnRhaW5zKCdpbmxpbmUnKSIpOwogCi0gICAgICAgICAgICAgICAgZGVidWcoIiIp
OwotICAgICAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgpOwotICAgICAgICAgICAgICAgIGZpbmlz
aEpTVGVzdCgpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
fQotICAgIH0pOworICAgICAgICAgICAgZGVidWcoIiIpOworICAgICAgICAgICAgbWVkaWEucmVt
b3ZlKCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSk7CisgICAgICAg
IGJyZWFrOworICAgIH0KIH0pOwogCiBmdW5jdGlvbiBjbGlja09uRWxlbWVudChlbGVtZW50KQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvcHJlc2VudGF0aW9ubW9kZWNoYW5nZWQtZmly
ZWQtb25jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9wcmVzZW50YXRpb25tb2Rl
Y2hhbmdlZC1maXJlZC1vbmNlLWV4cGVjdGVkLnR4dAppbmRleCBhMThlOGJiODZlZTM3YzIzOWI4
NzY5MmQxODAxYTg1ZDJiMGUyZDljLi5kZTRjYTViY2E0NjI5YjhlODM5OGEyZjU5ZWNkM2IwYzRj
MzQ4MjliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9wcmVzZW50YXRpb25tb2RlY2hh
bmdlZC1maXJlZC1vbmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9wcmVz
ZW50YXRpb25tb2RlY2hhbmdlZC1maXJlZC1vbmNlLWV4cGVjdGVkLnR4dApAQCAtNSw3ICs1LDcg
QEAgRVZFTlQoY2FucGxheXRocm91Z2gpCiBSVU4odmlkZW8ucGxheSgpKQogUlVOKHZpZGVvLndl
YmtpdFNldFByZXNlbnRhdGlvbk1vZGUoInBpY3R1cmUtaW4tcGljdHVyZSIpKQogRVZFTlQod2Vi
a2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQpCi1FWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxh
eWluZ0Z1bGxzY3JlZW4gPT0gJ3RydWUnKSBPSworRVhQRUNURUQgKGludGVybmFscy5pc0NoYW5n
aW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykgPT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2aWRl
by53ZWJraXRQcmVzZW50YXRpb25Nb2RlID09ICdwaWN0dXJlLWluLXBpY3R1cmUnKSBPSwogUlVO
KHZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoImlubGluZSIpKQogRVZFTlQod2Via2l0
cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9w
cmVzZW50YXRpb25tb2RlY2hhbmdlZC1maXJlZC1vbmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRp
YS9wcmVzZW50YXRpb25tb2RlY2hhbmdlZC1maXJlZC1vbmNlLmh0bWwKaW5kZXggNTM4YmQxMjdi
YzkxYTk5OTBhNTA3YzkyNGYzY2JiNTQzMWFhNDdkNC4uYzJiNWQ2YzFjNjM1OThkNDFjNGQ5YTVj
YWEwMjdiNDE1NDgxMzM1NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvcHJlc2VudGF0
aW9ubW9kZWNoYW5nZWQtZmlyZWQtb25jZS5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3By
ZXNlbnRhdGlvbm1vZGVjaGFuZ2VkLWZpcmVkLW9uY2UuaHRtbApAQCAtMjcsNyArMjcsNyBAQAog
CiAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHByZXNlbnRhdGlvbk1vZGVDaGFuZ2VkMSgpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ3ZpZGVvLndl
YmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuJywgdHJ1ZSk7CisgICAgICAgICAgICBhd2FpdCB0ZXN0
RXhwZWN0ZWRFdmVudHVhbGx5KCJpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUo
dmlkZW8pIiwgZmFsc2UpOwogICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby53ZWJraXRQ
cmVzZW50YXRpb25Nb2RlIiwgInBpY3R1cmUtaW4tcGljdHVyZSIpOwogICAgICAgICAgICAgcnVu
V2l0aEtleURvd24oJ3ZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoImlubGluZSIpJyk7
CiAgICAgICAgICAgICB3YWl0Rm9yRXZlbnQoIndlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2Vk
IiwgcHJlc2VudGF0aW9uTW9kZUNoYW5nZWQyKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL3ZpZGVvLWZ1bGxzY3JlZW4tb25seS1wbGF5YmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9tZWRpYS92aWRlby1mdWxsc2NyZWVuLW9ubHktcGxheWJhY2stZXhwZWN0ZWQudHh0Cmlu
ZGV4IGMxNzJiNTJlZjQ2NDQzM2QyOTg4ZTk2MzY5OTM3MTFmMWM4MzMzMGUuLjMzNWM1YjJlMDZl
ZTI1YzFkOWY1OWRmYjk5NDA5OTRjODMxMzM4ZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21l
ZGlhL3ZpZGVvLWZ1bGxzY3JlZW4tb25seS1wbGF5YmFjay1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvbWVkaWEvdmlkZW8tZnVsbHNjcmVlbi1vbmx5LXBsYXliYWNrLWV4cGVjdGVkLnR4
dApAQCAtNywxMyArNywxNiBAQCBFWFBFQ1RFRCAodmlkZW8ud2Via2l0U3VwcG9ydHNGdWxsc2Ny
ZWVuID09ICd0cnVlJykgT0sKIEVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNj
cmVlbiA9PSAnZmFsc2UnKSBPSwogUlVOKHZpZGVvLnBsYXkoKSkKIEVWRU5UKHBsYXlpbmcpCi1F
WFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ3RydWUnKSBPSwog
Ci0qKiBFbnRlcmVkIGZ1bGxzY3JlZW4KKyoqIFN0YXJ0ZWQgcGxheWluZworRVhQRUNURUQgKGlu
dGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykgPT0gJ2ZhbHNlJykgT0sK
K0VYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAndHJ1ZScpIE9L
CiBSVU4odmlkZW8ud2Via2l0RXhpdEZ1bGxTY3JlZW4oKSkKIEVWRU5UKHdlYmtpdHByZXNlbnRh
dGlvbm1vZGVjaGFuZ2VkKQotRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2Ny
ZWVuID09ICdmYWxzZScpIE9LCiAKLSoqIEV4aXRlZCBmdWxsc2NyZWVuCisqKiBSZWNlaXZlZCB3
ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCBldmVudAorRVhQRUNURUQgKGludGVybmFscy5p
c0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykgPT0gJ2ZhbHNlJykgT0sKK0V4aXRlZCBm
dWxsc2NyZWVuCitFWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0g
J2ZhbHNlJykgT0sKIEVORCBPRiBURVNUCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L3ZpZGVvLWZ1bGxzY3JlZW4tb25seS1wbGF5YmFjay5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEv
dmlkZW8tZnVsbHNjcmVlbi1vbmx5LXBsYXliYWNrLmh0bWwKaW5kZXggOGZmMzFiNjg0ZmYwMDA0
MWVlNjMzMmZhZWJiM2RkNzVlMDI2YjcyYy4uNWMyMWNiOTIwZTJhYjBmZDY4NGU2YmE5ZTg5NmEy
MTllZWVkZmVkMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tZnVsbHNjcmVl
bi1vbmx5LXBsYXliYWNrLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tZnVsbHNj
cmVlbi1vbmx5LXBsYXliYWNrLmh0bWwKQEAgLTQwLDE2ICs0MCwxOSBAQAogCiAgICAgICAgICAg
ICBhc3luYyBmdW5jdGlvbiBwbGF5aW5nKCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCJ2aWRlby53ZWJraXREaXNwbGF5aW5nRnVs
bHNjcmVlbiIsIHRydWUpOwotICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIEVu
dGVyZWQgZnVsbHNjcmVlbiIpOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioq
IFN0YXJ0ZWQgcGxheWluZyIpOworICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2
ZW50dWFsbHkoImludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykiLCBm
YWxzZSk7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby53ZWJraXREaXNwbGF5
aW5nRnVsbHNjcmVlbiIsIHRydWUpOwogICAgICAgICAgICAgICAgIHdhaXRGb3JFdmVudE9uY2Uo
J3dlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkJywgZW5kZnVsbHNjcmVlbik7CiAgICAgICAg
ICAgICAgICAgcnVuKCJ2aWRlby53ZWJraXRFeGl0RnVsbFNjcmVlbigpIik7CiAgICAgICAgICAg
ICB9CiAKICAgICAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIGVuZGZ1bGxzY3JlZW4oKQogICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoInZp
ZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIiwgZmFsc2UpOwotICAgICAgICAgICAgICAg
IGNvbnNvbGVXcml0ZSgiPGJyPioqIEV4aXRlZCBmdWxsc2NyZWVuIik7CisgICAgICAgICAgICAg
ICAgY29uc29sZVdyaXRlKCI8YnI+KiogUmVjZWl2ZWQgd2Via2l0cHJlc2VudGF0aW9ubW9kZWNo
YW5nZWQgZXZlbnQiKTsKKyAgICAgICAgICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVh
bGx5KCJpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUodmlkZW8pIiwgZmFsc2Up
OworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiRXhpdGVkIGZ1bGxzY3JlZW4iKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2Ny
ZWVuIiwgZmFsc2UpOwogICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1w
bGF5c2lubGluZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1wbGF5c2lu
bGluZS1leHBlY3RlZC50eHQKaW5kZXggMDQxNDU3M2YwYzQ2Y2Q3M2ZjZTI0NDhlZDY5YzlmZjhk
NTE4ZmNhYS4uNWVkY2FkMTdjNjhkMzI4YTQ0YzQ3MTExYjhkMDI4OWI5YTliOTFjMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcGxheXNpbmxpbmUtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXBsYXlzaW5saW5lLWV4cGVjdGVkLnR4dApAQCAt
Myw2ICszLDcgQEAgUlVOKHZpZGVvLnBsYXlzSW5saW5lID0gZmFsc2UpCiBFVkVOVChjYW5wbGF5
dGhyb3VnaCkKIFJVTih2aWRlby5wbGF5KCkpCiBFVkVOVChwbGF5aW5nKQorRVhQRUNURUQgKGlu
dGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykgPT0gJ2ZhbHNlJykgT0sK
IEVYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAndHJ1ZScpIE9L
CiBSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1Bs
YXlzSW5saW5lQXR0cmlidXRlKHRydWUpKQogUlVOKHZpZGVvLnBsYXlzSW5saW5lID0gdHJ1ZSkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXBsYXlzaW5saW5lLmh0bWwgYi9M
YXlvdXRUZXN0cy9tZWRpYS92aWRlby1wbGF5c2lubGluZS5odG1sCmluZGV4IGZhNmE3MzEyNDRk
OTcwYjNjOTJkZGE1YjYwYjhkNzI5MjQ5ZjUxZGIuLmQwOWQ0Y2M1ZDQyMmM5YjgyNjljYWQ0YzYy
NjNkNDJmYzIyZDE5YmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXBsYXlz
aW5saW5lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcGxheXNpbmxpbmUuaHRt
bApAQCAtMzAsNyArMzAsMTAgQEAgZnVuY3Rpb24gdGVzdFBsYXlzSW5saW5lKHJlcXVpcmVzUGxh
eXNJbmxpbmUsIGhhc1BsYXlzSW5saW5lLCBleHBlY3RlZERpc3BsYXlpbmcKICAgICAgICAgICAg
IHJ1bigndmlkZW8ucGxheSgpJyk7CiAgICAgICAgIH0pOwogICAgIH0pCi0gICAgd2FpdEZvckV2
ZW50T25jZSgncGxheWluZycsICgpID0+IHsKKyAgICB3YWl0Rm9yRXZlbnRPbmNlKCdwbGF5aW5n
JywgYXN5bmMgKCkgPT4geworICAgICAgICBpZiAoZXhwZWN0ZWREaXNwbGF5aW5nRnVsbHNjcmVl
bikKKyAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ2ludGVybmFscy5p
c0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbyknLCBmYWxzZSk7CisKICAgICAgICAgdGVz
dEV4cGVjdGVkKCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIGV4cGVjdGVkRGlz
cGxheWluZ0Z1bGxzY3JlZW4pOwogICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHZp
ZGVvKTsKICAgICAgICAgcnVuTmV4dFRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21l
ZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLWV4cGVjdGVkLnR4dAppbmRleCAxZDdkYjAyODI0
OTlkMzkzMDlhZmEyMGQ5ZWM3NWQxYzhhMjUxMzU5Li5hYmE5ZjQ1MzYwMGFlNzhlZmE1Y2JlZmM5
NTlkODZhMjMyOTc2ZDdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1wcmVz
ZW50YXRpb24tbW9kZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8t
cHJlc2VudGF0aW9uLW1vZGUtZXhwZWN0ZWQudHh0CkBAIC00LDMwICs0LDMwIEBAIFRlc3QgdGhl
IHZpZGVvIHByZXNlbnRhdGlvbiBtb2RlICh2aWRlbyBmdWxsc2NyZWVuIGFuZCBwaWN0dXJlLWlu
LXBpY3R1cmUpIEFQSS4KIAogRVZFTlQoY2FucGxheXRocm91Z2gpCiBFWFBFQ1RFRCAodmlkZW8u
d2Via2l0U3VwcG9ydHNGdWxsc2NyZWVuID09ICd0cnVlJykgT0sKLUVYUEVDVEVEICh2aWRlby53
ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKHZpZGVv
LndlYmtpdFByZXNlbnRhdGlvbk1vZGUgPT0gJ2lubGluZScpIE9LCiAKICoqIFRyeSB0byBlbnRl
ciBmdWxsc2NyZWVuCiBSVU4odmlkZW8ud2Via2l0U2V0UHJlc2VudGF0aW9uTW9kZSgnZnVsbHNj
cmVlbicpKQogRVZFTlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQpCi1FWFBFQ1RFRCAo
dmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ3RydWUnKSBPSwogCi0qKiBFbnRl
cmVkIGZ1bGxzY3JlZW4KKyoqIFJlY2VpdmVkIHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2Vk
IGV2ZW50CitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZp
ZGVvKSA9PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1v
ZGUgPT0gJ2Z1bGxzY3JlZW4nKSBPSwogCiAqKiBUcnkgdG8gZW50ZXIgcGljdHVyZS1pbi1waWN0
dXJlCiBSVU4odmlkZW8ud2Via2l0U2V0UHJlc2VudGF0aW9uTW9kZSgncGljdHVyZS1pbi1waWN0
dXJlJykpCiBFVkVOVCh3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCkKLUVYUEVDVEVEICh2
aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAndHJ1ZScpIE9LCiAKLSoqIEVudGVy
ZWQgcGljdHVyZS1pbi1waWN0dXJlCisqKiBSZWNlaXZlZCB3ZWJraXRwcmVzZW50YXRpb25tb2Rl
Y2hhbmdlZCBldmVudAorRVhQRUNURUQgKGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9u
TW9kZSh2aWRlbykgPT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2aWRlby53ZWJraXRQcmVzZW50
YXRpb25Nb2RlID09ICdwaWN0dXJlLWluLXBpY3R1cmUnKSBPSwogCiAqKiBUcnkgdG8gcmV0dXJu
IHRvIGlubGluZQogUlVOKHZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoJ2lubGluZScp
KQogRVZFTlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQpCi1FWFBFQ1RFRCAodmlkZW8u
d2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ2ZhbHNlJykgT0sKIAotKiogUmV0dXJuZWQg
dG8gaW5saW5lCisqKiBSZWNlaXZlZCB3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCBldmVu
dAorRVhQRUNURUQgKGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykg
PT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVEICh2aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlID09
ICdpbmxpbmUnKSBPSwogCiAqKiBUZXN0IENvbXBsZXRlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUuaHRtbCBiL0xheW91dFRlc3RzL21lZGlh
L3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLmh0bWwKaW5kZXggMzA1NmQxNWUxYTljMmQxY2FmY2Ix
ZTBlMjhjZmE0YjdiOTc3NjRkOC4uZjEwNWM4NTUwYzkwNTI5Nzg0MjBkNGY1NTIyMzQ3ZjJhNjRh
YmYxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1v
ZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1wcmVzZW50YXRpb24tbW9kZS5o
dG1sCkBAIC0yMSw3ICsyMSw3IEBACiAgICAgICAgICAgICBhc3luYyBmdW5jdGlvbiBjYW5wbGF5
dGhyb3VnaCgpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2
aWRlby53ZWJraXRTdXBwb3J0c0Z1bGxzY3JlZW4iLCB0cnVlKTsKLSAgICAgICAgICAgICAgICBh
d2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNj
cmVlbicsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtp
dFByZXNlbnRhdGlvbk1vZGUiLCAiaW5saW5lIik7CiAKICAgICAgICAgICAgICAgICBjb25zb2xl
V3JpdGUoIjxicj4qKiBUcnkgdG8gZW50ZXIgZnVsbHNjcmVlbiIpOwogICAgICAgICAgICAgICAg
IHJ1bldpdGhLZXlEb3duKCJ2aWRlby53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdmdWxsc2Ny
ZWVuJykiKTsKQEAgLTMwLDggKzMwLDggQEAKIAogICAgICAgICAgICAgYXN5bmMgZnVuY3Rpb24g
cHJlc2VudGF0aW9uTW9kZUNoYW5nZWQxKCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby53ZWJraXREaXNwbGF5aW5nRnVs
bHNjcmVlbicsIHRydWUpOwotICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIEVu
dGVyZWQgZnVsbHNjcmVlbiIpOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioq
IFJlY2VpdmVkIHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIGV2ZW50Iik7CisgICAgICAg
ICAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJuYWxzLmlzQ2hhbmdp
bmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKICAgICAgICAgICAgICAgICB0ZXN0
RXhwZWN0ZWQoInZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUiLCAiZnVsbHNjcmVlbiIpOwog
ICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIFRyeSB0byBlbnRlciBwaWN0dXJl
LWluLXBpY3R1cmUiKTsKICAgICAgICAgICAgICAgICB3YWl0Rm9yRXZlbnRPbmNlKCd3ZWJraXRw
cmVzZW50YXRpb25tb2RlY2hhbmdlZCcsIHByZXNlbnRhdGlvbk1vZGVDaGFuZ2VkMik7CkBAIC00
MCw4ICs0MCw4IEBACiAKICAgICAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHByZXNlbnRhdGlvbk1v
ZGVDaGFuZ2VkMigpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgYXdhaXQgdGVzdEV4
cGVjdGVkRXZlbnR1YWxseSgndmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCB0cnVl
KTsKLSAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4qKiBFbnRlcmVkIHBpY3R1cmUt
aW4tcGljdHVyZSIpOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIFJlY2Vp
dmVkIHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIGV2ZW50Iik7CisgICAgICAgICAgICAg
ICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgiaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVz
ZW50YXRpb25Nb2RlKHZpZGVvKSIsIGZhbHNlKTsKICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0
ZWQoInZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUiLCAicGljdHVyZS1pbi1waWN0dXJlIik7
CiAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogVHJ5IHRvIHJldHVybiB0byBp
bmxpbmUiKTsKICAgICAgICAgICAgICAgICB3YWl0Rm9yRXZlbnRPbmNlKCd3ZWJraXRwcmVzZW50
YXRpb25tb2RlY2hhbmdlZCcsIHRlc3RDb21wbGV0ZWQpOwpAQCAtNTAsOCArNTAsOCBAQAogCiAg
ICAgICAgICAgICBhc3luYyBmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkKICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCd2aWRlby53ZWJr
aXREaXNwbGF5aW5nRnVsbHNjcmVlbicsIGZhbHNlKTsKLSAgICAgICAgICAgICAgICBjb25zb2xl
V3JpdGUoIjxicj4qKiBSZXR1cm5lZCB0byBpbmxpbmUiKTsKKyAgICAgICAgICAgICAgICBjb25z
b2xlV3JpdGUoIjxicj4qKiBSZWNlaXZlZCB3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCBl
dmVudCIpOworICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoImlu
dGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykiLCBmYWxzZSk7CiAgICAg
ICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlIiwg
ImlubGluZSIpOwogICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIFRlc3QgQ29t
cGxldGVkIik7CiAgICAgICAgICAgICAgICAgZW5kVGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvbWVkaWEvdmlkZW8td2Via2l0LXBsYXlzaW5saW5lLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL21lZGlhL3ZpZGVvLXdlYmtpdC1wbGF5c2lubGluZS1leHBlY3RlZC50eHQKaW5kZXgg
OTY3NDg5NTZlOGIzNjg0YmZkYmQ1OGJiYTYzNWU3YzY5YzE3OTY4NC4uMDkzOTdlOTJmYjhjOTZl
MmM0ODY3NTNhMDgyNWRhMTYzOWU3MTVkNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEv
dmlkZW8td2Via2l0LXBsYXlzaW5saW5lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9t
ZWRpYS92aWRlby13ZWJraXQtcGxheXNpbmxpbmUtZXhwZWN0ZWQudHh0CkBAIC0zLDEyICszLDE0
IEBAIFJVTih2aWRlby5yZW1vdmVBdHRyaWJ1dGUoIndlYmtpdC1wbGF5c2lubGluZSIsICIiKSkK
IEVWRU5UKGNhbnBsYXl0aHJvdWdoKQogUlVOKHZpZGVvLnBsYXkoKSkKIEVWRU5UKHBsYXlpbmcp
CitFWFBFQ1RFRCAoaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKHZpZGVvKSA9
PSAnZmFsc2UnKSBPSwogRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVu
ID09ICd0cnVlJykgT0sKIFJVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SW5saW5lTWVkaWFQbGF5
YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUodHJ1ZSkpCiBSVU4odmlkZW8uc2V0QXR0
cmlidXRlKCJ3ZWJraXQtcGxheXNpbmxpbmUiLCAiIikpCiBFVkVOVChjYW5wbGF5dGhyb3VnaCkK
IFJVTih2aWRlby5wbGF5KCkpCiBFVkVOVChwbGF5aW5nKQorRVhQRUNURUQgKGludGVybmFscy5p
c0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZSh2aWRlbykgPT0gJ2ZhbHNlJykgT0sKIEVYUEVDVEVE
ICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAndHJ1ZScpIE9LCiBSVU4oaW50
ZXJuYWxzLnNldHRpbmdzLnNldElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5l
QXR0cmlidXRlKGZhbHNlKSkKIFJVTih2aWRlby5yZW1vdmVBdHRyaWJ1dGUoIndlYmtpdC1wbGF5
c2lubGluZSIsICIiKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXdlYmtp
dC1wbGF5c2lubGluZS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8td2Via2l0LXBsYXlz
aW5saW5lLmh0bWwKaW5kZXggN2VkOTVmNDg4MDVmZDMwNmNlNjI4MjIyYTVhYjQ0YjZmMWJhY2Ez
NS4uYWI3MzBiMDMyYjQ4ZmU5ZjU5YmY2MzI3MWMzZGI0MzIzYzMyNDllZCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8td2Via2l0LXBsYXlzaW5saW5lLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvbWVkaWEvdmlkZW8td2Via2l0LXBsYXlzaW5saW5lLmh0bWwKQEAgLTMwLDcgKzMw
LDEwIEBAIGZ1bmN0aW9uIHRlc3RQbGF5c0lubGluZShyZXF1aXJlc1BsYXlzSW5saW5lLCBoYXNX
ZWJraXRQbGF5c0lubGluZSwgZXhwZWN0ZWREaXNwCiAgICAgICAgICAgICBydW4oJ3ZpZGVvLnBs
YXkoKScpOwogICAgICAgICB9KTsKICAgICB9KQotICAgIHdhaXRGb3JFdmVudE9uY2UoJ3BsYXlp
bmcnLCAoKSA9PiB7CisgICAgd2FpdEZvckV2ZW50T25jZSgncGxheWluZycsIGFzeW5jICgpID0+
IHsKKyAgICAgICAgaWYgKGV4cGVjdGVkRGlzcGxheWluZ0Z1bGxzY3JlZW4pCisgICAgICAgICAg
ICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCdpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNl
bnRhdGlvbk1vZGUodmlkZW8pJywgZmFsc2UpOworCiAgICAgICAgIHRlc3RFeHBlY3RlZCgndmlk
ZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4nLCBleHBlY3RlZERpc3BsYXlpbmdGdWxsc2Ny
ZWVuKTsKICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh2aWRlbyk7CiAgICAgICAg
IHJ1bk5leHRUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IDZiNzYyNGJhYjFlNTYwZmMwYTJiMjUzMDI3NWJhYWJkOGRjMmYwZWMuLjAxNmI3ODY1
MDBiYjU0N2E5ZTBjOGIwY2I3MjFhYjUzNTQ0MGNmNTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNDU4LDggKzE0NTgsNiBAQCB3ZWJraXQub3JnL2Iv
MTgzNDkwIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlh
LWNvbnRyb2xsZQogd2Via2l0Lm9yZy9iLzE4MzQ5MCBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWZ1bGxzY3JlZW4tY2hhbmdlLmh0
bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xODM0OTAgbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL21lZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJvbGxlci1pbmxpbmUtdG8tZnVsbHNj
cmVlbi10by1pbmxpbmUuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE4MzQ5MCBtZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvc3RhcnQtc3VwcG9ydC9zdGFydC1zdXBwb3J0LWZ1bGxz
Y3JlZW4uaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE4MzQ5MCBtZWRpYS92aWRlby1w
bGF5c2lubGluZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTgzNDkwIG1lZGlhL3Zp
ZGVvLXdlYmtpdC1wbGF5c2lubGluZS5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8x
ODM3NjQgZmFzdC9jc3MvYXBwbGUtc3lzdGVtLWNvbnRyb2wtY29sb3JzLmh0bWwgWyBQYXNzIF0K
IAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>