<?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>195196</bug_id>
          
          <creation_ts>2019-02-28 19:13:12 -0800</creation_ts>
          <short_desc>Resource Load Statistics: Further restrict client-side cookie persistence after cross-site navigations with link decoration</short_desc>
          <delta_ts>2019-03-01 14:11:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="John Wilander">wilander</reporter>
          <assigned_to name="John Wilander">wilander</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1511253</commentid>
    <comment_count>0</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-02-28 19:13:12 -0800</bug_when>
    <thetext>Trackers abuse link query parameters to transport user identifiers cross-site. We should flag such navigations and apply further restrictions to client-site cookies on the destination page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511254</commentid>
    <comment_count>1</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-02-28 19:13:27 -0800</bug_when>
    <thetext>&lt;rdar://problem/48006419&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511265</commentid>
    <comment_count>2</comment_count>
      <attachid>363290</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-02-28 19:29:13 -0800</bug_when>
    <thetext>Created attachment 363290
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511458</commentid>
    <comment_count>3</comment_count>
      <attachid>363290</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-03-01 10:43:13 -0800</bug_when>
    <thetext>Comment on attachment 363290
Patch

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

The debug failures exist without this patch, so are unrelated.

r=me

&gt; Source/WebCore/platform/network/NetworkStorageSession.h:183
&gt; +    Optional&lt;Seconds&gt; clientSideCookieCap(const RegistrableDomain&amp; firstParty, Optional&lt;uint64_t&gt; pageID) const;

Optional&lt;PageID&gt;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511460</commentid>
    <comment_count>4</comment_count>
      <attachid>363290</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-01 10:46:57 -0800</bug_when>
    <thetext>Comment on attachment 363290
Patch

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

&gt; Source/WebCore/platform/network/NetworkStorageSession.cpp:103
&gt; +    m_ageCapForClientSideCookiesShort = seconds ? Seconds { seconds-&gt;seconds() / 7. } : seconds;

Do we really need this ternary? 0/7. is 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511572</commentid>
    <comment_count>5</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-03-01 13:30:03 -0800</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #3)
&gt; Comment on attachment 363290 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=363290&amp;action=review
&gt; 
&gt; The debug failures exist without this patch, so are unrelated.
&gt; 
&gt; r=me

Thanks!

&gt; &gt; Source/WebCore/platform/network/NetworkStorageSession.h:183
&gt; &gt; +    Optional&lt;Seconds&gt; clientSideCookieCap(const RegistrableDomain&amp; firstParty, Optional&lt;uint64_t&gt; pageID) const;
&gt; 
&gt; Optional&lt;PageID&gt;?

There is no existing typedef of using for PageID in this header and I&apos;d rather not add it for this one instance. Better to fix them all in a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511573</commentid>
    <comment_count>6</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-03-01 13:30:57 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #4)
&gt; Comment on attachment 363290 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=363290&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/network/NetworkStorageSession.cpp:103
&gt; &gt; +    m_ageCapForClientSideCookiesShort = seconds ? Seconds { seconds-&gt;seconds() / 7. } : seconds;
&gt; 
&gt; Do we really need this ternary? 0/7. is 0.

seconds is optional, that&apos;s why. If it&apos;s nullopt I want to set it to just nullopt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511581</commentid>
    <comment_count>7</comment_count>
      <attachid>363367</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-03-01 13:33:02 -0800</bug_when>
    <thetext>Created attachment 363367
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511608</commentid>
    <comment_count>8</comment_count>
      <attachid>363367</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-01 14:11:39 -0800</bug_when>
    <thetext>Comment on attachment 363367
Patch for landing

Clearing flags on attachment: 363367

Committed r242288: &lt;https://trac.webkit.org/changeset/242288&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511609</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-01 14:11:41 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363290</attachid>
            <date>2019-02-28 19:29:13 -0800</date>
            <delta_ts>2019-03-01 13:33:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195196-20190228192912.patch</filename>
            <type>text/plain</type>
            <size>61347</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGNkMTdkNjEzNTkyODcy
Yjc2ODc3NzRjZGViOWFmNWMxMzUyNmJlNC4uY2ExM2E2NWQxODMyMmUzODg3NTJiYzdmNDUzZDg3
MWI2OTQ2ODVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE5LTAyLTI4ICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc291cmNlIExvYWQg
U3RhdGlzdGljczogRnVydGhlciByZXN0cmljdCBjbGllbnQtc2lkZSBjb29raWUgcGVyc2lzdGVu
Y2UgYWZ0ZXIgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9ucyB3aXRoIGxpbmsgZGVjb3JhdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MTk2CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80ODAwNjQxOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVj
b3JhdGlvbi1zYW1lLXNpdGUuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRo
LWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3It
Y29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFs
ZW50LXJlc291cmNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5r
LXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1z
ZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2Uu
aHRtbAorCisgICAgICAgIFRyYWNrZXJzIGFidXNlIGxpbmsgcXVlcnkgcGFyYW1ldGVycyB0byB0
cmFuc3BvcnQgdXNlciBpZGVudGlmaWVycyBjcm9zcy1zaXRlLgorICAgICAgICBUaGlzIHBhdGNo
IGRldGVjdHMgc3VjaCBuYXZpZ2F0aW9ucyBhbmQgYXBwbGllcyBmdXJ0aGVyIHJlc3RyaWN0aW9u
cyB0bworICAgICAgICBjbGllbnQtc2l0ZSBjb29raWVzIG9uIHRoZSBkZXN0aW5hdGlvbiBwYWdl
LgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRBZ2VDYXBGb3JD
bGllbnRTaWRlQ29va2llcyk6CisgICAgICAgICAgICBOb3cgc2V0cyB0aGUgcmVndWxhciA3LWRh
eSBjYXAgYW5kIGEgcmVkdWNlZCAxLWRheSBjYXAuCisgICAgICAgIChXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmNsZWFyUGFnZVNwZWNpZmljRGF0YUZvclJlc291cmNlTG9hZFN0YXRp
c3RpY3MpOgorICAgICAgICAgICAgUmVuYW1lZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnJlbW92
ZVN0b3JhZ2VBY2Nlc3NGb3JBbGxGcmFtZXNPblBhZ2UoKSB0bworICAgICAgICAgICAgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpjbGVhclBhZ2VTcGVjaWZpY0RhdGFGb3JSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzIHNpbmNlCisgICAgICAgICAgICBpdCBub3cgY2xlYXJzIG91dCB0d28gdHlwZXMgb2Yg
cGFnZS1zcGVjaWZpYyBkYXRhLgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpjb21taXR0ZWRDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uKToKKyAgICAgICAg
ICAgIFRoaXMgZnVuY3Rpb24gcmVjZWl2ZXMgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gYW5kIGNo
ZWNrcyBpZiB0aGUgb3JpZ2luYXRpbmcKKyAgICAgICAgICAgIHNpdGUgaXMgYSBwcmV2YWxlbnQg
cmVzb3VyY2UuIElmIHNvLCBpdCBtYXJrcyB0aGUgcGFnZSBvciBzdHJpY3RlciBjb29raWUKKyAg
ICAgICAgICAgIHJ1bGVzLgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpyZXNldENyb3NzU2l0ZUxvYWRzV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyk6CisgICAg
ICAgICAgICBUZXN0IGluZnJhc3RydWN0dXJlLiBUaGlzIHNldHMgYSBzdGF0ZSB0aGF0IG92ZXJy
aWRlcyB0aGUgcmVndWxhciBwZXItcGFnZQorICAgICAgICAgICAgY2xlYXIgb2YgZGF0YS4gVGhl
IHJlYXNvbiBpcyB0aGF0IHRoZSBkb3VibGUgY2xlYXIgd2FzIHJhY3kgYW5kIGNhdXNlZCB0ZXN0
CisgICAgICAgICAgICBmYWlsdXJlcy4KKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6Y2xpZW50U2lkZUNvb2tpZUNhcCBjb25zdCk6CisgICAgICAgICAgICBOZXcgZnVu
Y3Rpb24gdGhhdCByZXR1cm5zIHRoZSBjdXJyZW50IGNvb2tpZSBsaWZldGltZSBjYXAuCisgICAg
ICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnJlbW92ZVN0b3JhZ2VBY2Nlc3NG
b3JBbGxGcmFtZXNPblBhZ2UpOiBEZWxldGVkLgorICAgICAgICAgICAgUmVuYW1lZCB0byBOZXR3
b3JrU3RvcmFnZVNlc3Npb246OmNsZWFyUGFnZVNwZWNpZmljRGF0YUZvclJlc291cmNlTG9hZFN0
YXRpc3RpY3MoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vz
c2lvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246
OnNldENvb2tpZXNGcm9tRE9NIGNvbnN0KToKKyAgICAgICAgICAgIE5vdyBjYWxscyBOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmNsaWVudFNpZGVDb29raWVDYXAoKSB0byBzZXQgdGhlIGNhcC4KKwog
MjAxOS0wMi0yNyAgSnVzdGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgogICAgICAgICBG
aXggYnVpbGQgZXJyb3JzIGFmdGVyIFdlYiBHUFUgYnVmZmVyIHVwZGF0ZXMgY2hhbmdlZCBzb21l
IElETCBmaWVsZHMgZnJvbSB1bnNpZ25lZCBsb25nIHRvIHVuc2lnbmVkIGxvbmcgbG9uZy4KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCA4MWY5MTQ3M2Q4MDU1YjZmMzgyODNhNTZhODlmMjZkMjE0Y2MyMWQ5Li40M2M2
MzAzZWY5YWZmOWE5ZDY2ZDU1YmY0ZmVlYmM1NTVkNjIyMTRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDQ4IEBACisyMDE5LTAyLTI4ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFJlc291cmNlIExvYWQgU3RhdGlzdGljczogRnVydGhlciByZXN0cmljdCBjbGll
bnQtc2lkZSBjb29raWUgcGVyc2lzdGVuY2UgYWZ0ZXIgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9ucyB3
aXRoIGxpbmsgZGVjb3JhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTk1MTk2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80ODAwNjQxOT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUcmFja2VycyBh
YnVzZSBsaW5rIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gdHJhbnNwb3J0IHVzZXIgaWRlbnRpZmllcnMg
Y3Jvc3Mtc2l0ZS4KKyAgICAgICAgVGhpcyBwYXRjaCBkZXRlY3RzIHN1Y2ggbmF2aWdhdGlvbnMg
YW5kIGFwcGxpZXMgZnVydGhlciByZXN0cmljdGlvbnMgdG8KKyAgICAgICAgY2xpZW50LXNpdGUg
Y29va2llcyBvbiB0aGUgZGVzdGluYXRpb24gcGFnZS4KKworICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNsZWFyUGFnZVNwZWNpZmljRGF0YUZvclJl
c291cmNlTG9hZFN0YXRpc3RpY3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckFsbEZyYW1lc09uUGFnZSk6IERl
bGV0ZWQuCisgICAgICAgICAgICBSZW5hbWVkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpjbGVhclBhZ2VTcGVjaWZpY0RhdGFGb3JSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkuCisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpjb21taXR0ZWRDcm9zc1NpdGVMb2FkV2l0
aExpbmtEZWNvcmF0aW9uKToKKyAgICAgICAgICAgIFJlcG9ydGluZyBJUEMgbWVzc2FnZSB3aGVu
IGEgbGluayBkZWNvcmF0ZWQgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIGhhcHBlbnMuCisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpyZXNldENyb3NzU2l0ZUxvYWRzV2l0aExpbmtEZWNv
cmF0aW9uRm9yVGVzdGluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcDoK
KyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0
YXRlKToKKyAgICAgICAgICAgIEFkZGVkIGNsZWFyaW5nIG9mIHRoZSBuZXcgc3RhdGUgYmV0d2Vl
biB0ZXN0IHJ1bnMuCisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnJlc2V0Q3Jv
c3NTaXRlTG9hZHNXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKToKKyAgICAgICAgICAgIFRl
c3QgaW5mcmFzdHJ1Y3R1cmUuCisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0Ojppc05vblVuaXF1ZU5hdmlnYXRpb25XaXRoTGlua0RlY29yYXRpb24pOgor
ICAgICAgICAgICAgQ29udmVuaWVuY2UgZnVuY3Rpb24uCisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToKKyAgICAgICAgICAgIFRoaXMgZnVuY3Rp
b24gbm93IHJlcG9ydHMgdG8gdGhlIG5ldHdvcmsgcHJvY2VzcyB3aGVuIGEgbGluayBkZWNvcmF0
ZWQKKyAgICAgICAgICAgIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiBoYXBwZW5zLgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6cmVzZXRDcm9zc1NpdGVMb2Fkc1dpdGhMaW5rRGVjb3Jh
dGlvbkZvclRlc3RpbmcpOgorICAgICAgICAgICAgVGVzdCBpbmZyYXN0cnVjdHVyZS4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6Y2xvc2UpOgorICAgICAgICAgICAgTmFtZSBjaGFuZ2Ugb2YgZnVuY3Rpb24gY2FsbGVkLgor
CiAyMDE5LTAyLTI3ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkb3B0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGluIFdlYkNvcmU6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3MgYW5kIFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Np
b24uY3BwCmluZGV4IDk5MDYwNzgxODU1YTBmMTIzNTRmN2M2YTI3MjFmNmNlNjQwMWVlZTguLjNi
MThlNjJmZTM5ODdkYjVmYzg2MTliZmZjYTYyYTQ4NmY0OGE4MDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5j
cHAKQEAgLTEwMCw2ICsxMDAsNyBAQCBPcHRpb25hbDxTZWNvbmRzPiBOZXR3b3JrU3RvcmFnZVNl
c3Npb246Om1heEFnZUNhY2hlQ2FwKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcgogdm9pZCBOZXR3
b3JrU3RvcmFnZVNlc3Npb246OnNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKE9wdGlvbmFs
PFNlY29uZHM+IHNlY29uZHMpCiB7CiAgICAgbV9hZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyA9
IHNlY29uZHM7CisgICAgbV9hZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llc1Nob3J0ID0gc2Vjb25k
cyA/IFNlY29uZHMgeyBzZWNvbmRzLT5zZWNvbmRzKCkgLyA3LiB9IDogc2Vjb25kczsKIH0KIAog
dm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldFByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29v
a2llc0Zvcihjb25zdCBWZWN0b3I8UmVnaXN0cmFibGVEb21haW4+JiBkb21haW5zKQpAQCAtMTkw
LDEwICsxOTEsMTIgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnJlbW92ZVN0b3JhZ2VB
Y2Nlc3NGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjQKICAgICBpdGVyYXRpb24tPnZh
bHVlLnJlbW92ZShmcmFtZUlEKTsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnJl
bW92ZVN0b3JhZ2VBY2Nlc3NGb3JBbGxGcmFtZXNPblBhZ2UodWludDY0X3QgcGFnZUlEKQordm9p
ZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNsZWFyUGFnZVNwZWNpZmljRGF0YUZvclJlc291cmNl
TG9hZFN0YXRpc3RpY3ModWludDY0X3QgcGFnZUlEKQogewogICAgIG1fcGFnZXNHcmFudGVkU3Rv
cmFnZUFjY2Vzcy5yZW1vdmUocGFnZUlEKTsKICAgICBtX2ZyYW1lc0dyYW50ZWRTdG9yYWdlQWNj
ZXNzLnJlbW92ZShwYWdlSUQpOworICAgIGlmICghbV9uYXZpZ2F0aW9uV2l0aExpbmtEZWNvcmF0
aW9uVGVzdE1vZGUpCisgICAgICAgIG1fbmF2aWdhdGVkVG9XaXRoTGlua0RlY29yYXRpb25CeVBy
ZXZhbGVudFJlc291cmNlLnJlbW92ZShwYWdlSUQpOwogfQogCiB2b2lkIE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6cmVtb3ZlQWxsU3RvcmFnZUFjY2VzcygpCkBAIC0yMTEsNiArMjE0LDMzIEBAIHZv
aWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpyZXNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50
UmVzb3VyY2VzKCkKIHsKICAgICBtX2NhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2Vz
ID0gV1RGOjpudWxsb3B0OwogfQorCit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29tbWl0
dGVkQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgZnJvbURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvRG9tYWluLCB1aW50NjRf
dCBwYWdlSUQpCit7CisgICAgaWYgKHNob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXMoZnJvbURv
bWFpbikpCisgICAgICAgIG1fbmF2aWdhdGVkVG9XaXRoTGlua0RlY29yYXRpb25CeVByZXZhbGVu
dFJlc291cmNlLmFkZChwYWdlSUQsIHRvRG9tYWluKTsKK30KKwordm9pZCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OnJlc2V0Q3Jvc3NTaXRlTG9hZHNXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5n
KCkKK3sKKyAgICBtX25hdmlnYXRlZFRvV2l0aExpbmtEZWNvcmF0aW9uQnlQcmV2YWxlbnRSZXNv
dXJjZS5jbGVhcigpOworICAgIG1fbmF2aWdhdGlvbldpdGhMaW5rRGVjb3JhdGlvblRlc3RNb2Rl
ID0gdHJ1ZTsKK30KKworT3B0aW9uYWw8U2Vjb25kcz4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpj
bGllbnRTaWRlQ29va2llQ2FwKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5LCBP
cHRpb25hbDx1aW50NjRfdD4gcGFnZUlEKSBjb25zdAoreworICAgIGlmICghbV9hZ2VDYXBGb3JD
bGllbnRTaWRlQ29va2llcyB8fCAhcGFnZUlEIHx8IG1fbmF2aWdhdGVkVG9XaXRoTGlua0RlY29y
YXRpb25CeVByZXZhbGVudFJlc291cmNlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG1fYWdl
Q2FwRm9yQ2xpZW50U2lkZUNvb2tpZXM7CisKKyAgICBhdXRvIGRvbWFpbkl0ZXJhdG9yID0gbV9u
YXZpZ2F0ZWRUb1dpdGhMaW5rRGVjb3JhdGlvbkJ5UHJldmFsZW50UmVzb3VyY2UuZmluZCgqcGFn
ZUlEKTsKKyAgICBpZiAoZG9tYWluSXRlcmF0b3IgPT0gbV9uYXZpZ2F0ZWRUb1dpdGhMaW5rRGVj
b3JhdGlvbkJ5UHJldmFsZW50UmVzb3VyY2UuZW5kKCkpCisgICAgICAgIHJldHVybiBtX2FnZUNh
cEZvckNsaWVudFNpZGVDb29raWVzOworCisgICAgaWYgKGRvbWFpbkl0ZXJhdG9yLT52YWx1ZSA9
PSBmaXJzdFBhcnR5KQorICAgICAgICByZXR1cm4gbV9hZ2VDYXBGb3JDbGllbnRTaWRlQ29va2ll
c1Nob3J0OworCisgICAgcmV0dXJuIG1fYWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXM7Cit9CiAj
ZW5kaWYgLy8gRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
LmgKaW5kZXggNTg5Nzk0MTE1NDA0MTkwNmE1MGFhNWZiOTY1YTYwNWUzODRkMTM3MS4uOGRlNDI0
OTI0NzRlNTIwNjE5NDQ1ODM2MmIxODYwMmMzNWQxNGE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCkBAIC0x
NDksMTEgKzE0OSwxMyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFN0cmlu
Zz4gZ2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3Vy
Y2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlEKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1
aW50NjRfdCBwYWdlSUQpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlU3RvcmFnZUFj
Y2Vzc0ZvckFsbEZyYW1lc09uUGFnZSh1aW50NjRfdCBwYWdlSUQpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgY2xlYXJQYWdlU3BlY2lmaWNEYXRhRm9yUmVzb3VyY2VMb2FkU3RhdGlzdGljcyh1
aW50NjRfdCBwYWdlSUQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlQWxsU3RvcmFn
ZUFjY2VzcygpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQ
cmV2YWxlbnRSZXNvdXJjZXMoU2Vjb25kcyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXNl
dENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKCk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgT3B0aW9uYWw8U2Vjb25kcz4gbWF4QWdlQ2FjaGVDYXAoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb21taXR0ZWRDcm9zc1NpdGVMb2FkV2l0aExp
bmtEZWNvcmF0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmcm9tRG9tYWluLCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgdG9Eb21haW4sIHVpbnQ2NF90IHBhZ2VJRCk7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCByZXNldENyb3NzU2l0ZUxvYWRzV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVz
dGluZygpOwogI2VuZGlmCiAKIHByaXZhdGU6CkBAIC0xNzgsMTEgKzE4MCwxNSBAQCBwcml2YXRl
OgogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBib29sIHNob3Vs
ZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXMoY29uc3QgUmVnaXN0cmFibGVEb21haW4mKSBjb25zdDsK
KyAgICBPcHRpb25hbDxTZWNvbmRzPiBjbGllbnRTaWRlQ29va2llQ2FwKGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiBmaXJzdFBhcnR5LCBPcHRpb25hbDx1aW50NjRfdD4gcGFnZUlEKSBjb25zdDsK
ICAgICBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiBtX3JlZ2lzdHJhYmxlRG9tYWluc1RvQmxv
Y2tDb29raWVGb3I7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgSGFzaE1hcDx1aW50NjRfdCwgUmVn
aXN0cmFibGVEb21haW4sIERlZmF1bHRIYXNoPHVpbnQ2NF90Pjo6SGFzaCwgV1RGOjpVbnNpZ25l
ZFdpdGhaZXJvS2V5SGFzaFRyYWl0czx1aW50NjRfdD4+LCBEZWZhdWx0SGFzaDx1aW50NjRfdD46
Okhhc2gsIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8dWludDY0X3Q+PiBtX2Zy
YW1lc0dyYW50ZWRTdG9yYWdlQWNjZXNzOwogICAgIEhhc2hNYXA8dWludDY0X3QsIEhhc2hNYXA8
UmVnaXN0cmFibGVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluPiwgRGVmYXVsdEhhc2g8dWludDY0
X3Q+OjpIYXNoLCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQ2NF90Pj4g
bV9wYWdlc0dyYW50ZWRTdG9yYWdlQWNjZXNzOwogICAgIE9wdGlvbmFsPFNlY29uZHM+IG1fY2Fj
aGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMgeyB9OwogICAgIE9wdGlvbmFsPFNlY29u
ZHM+IG1fYWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMgeyB9OworICAgIE9wdGlvbmFsPFNlY29u
ZHM+IG1fYWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXNTaG9ydCB7IH07CisgICAgSGFzaE1hcDx1
aW50NjRfdCwgUmVnaXN0cmFibGVEb21haW4sIERlZmF1bHRIYXNoPHVpbnQ2NF90Pjo6SGFzaCwg
V1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czx1aW50NjRfdD4+IG1fbmF2aWdhdGVk
VG9XaXRoTGlua0RlY29yYXRpb25CeVByZXZhbGVudFJlc291cmNlOworICAgIGJvb2wgbV9uYXZp
Z2F0aW9uV2l0aExpbmtEZWNvcmF0aW9uVGVzdE1vZGUgPSBmYWxzZTsKICNlbmRpZgogCiAjaWYg
UExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbQppbmRl
eCBlMDU5NDBlNDYyYzVkNzczYjBhYWQzZWRhYjAwNDI1NTk1NDczYTdhLi4zMThmNTNlMTc0NzJi
ZWRmZDJhNDA3ZjBjYWVkZTE2MWU4ZjljOGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uQ29jb2EubW0KQEAgLTQwMyw3ICs0MDMsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6c2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lUwog
I2VuZGlmCiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIFJldGFp
blB0cjxOU0FycmF5PiBmaWx0ZXJlZENvb2tpZXMgPSBmaWx0ZXJDb29raWVzKHVuZmlsdGVyZWRD
b29raWVzLCBtX2FnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKTsKKyAgICBSZXRhaW5QdHI8TlNB
cnJheT4gZmlsdGVyZWRDb29raWVzID0gZmlsdGVyQ29va2llcyh1bmZpbHRlcmVkQ29va2llcywg
Y2xpZW50U2lkZUNvb2tpZUNhcChSZWdpc3RyYWJsZURvbWFpbiB7IGZpcnN0UGFydHkgfSwgcGFn
ZUlEKSk7CiAjZWxzZQogICAgIFJldGFpblB0cjxOU0FycmF5PiBmaWx0ZXJlZENvb2tpZXMgPSBm
aWx0ZXJDb29raWVzKHVuZmlsdGVyZWRDb29raWVzLCBXVEY6Om51bGxvcHQpOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGU1OWE0MzMzZDkzYTFmOTNkZDhiMjQ5OGMz
NGNjY2UyNmRiM2QzNWQuLmUyNzkwNjZhMzFlMzBjMzM0NDVjYjM0YTE2MGVlNzYwZmNmMzQ2MTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC01NzksMTAgKzU3OSwxMCBAQCB2b2lk
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJh
bWUoUEFMOjpTZXNzaW9uSUQgcwogICAgICAgICBzdG9yYWdlU2Vzc2lvbi0+cmVtb3ZlU3RvcmFn
ZUFjY2Vzc0ZvckZyYW1lKGZyYW1lSUQsIHBhZ2VJRCk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JBbGxGcmFtZXNPblBhZ2Uo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBwYWdlSUQpCit2b2lkIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjbGVhclBhZ2VTcGVjaWZpY0RhdGFGb3JSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgcGFnZUlEKQog
ewogICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzKCkuc3RvcmFn
ZVNlc3Npb24oc2Vzc2lvbklEKSkKLSAgICAgICAgc3RvcmFnZVNlc3Npb24tPnJlbW92ZVN0b3Jh
Z2VBY2Nlc3NGb3JBbGxGcmFtZXNPblBhZ2UocGFnZUlEKTsKKyAgICAgICAgc3RvcmFnZVNlc3Np
b24tPmNsZWFyUGFnZVNwZWNpZmljRGF0YUZvclJlc291cmNlTG9hZFN0YXRpc3RpY3MocGFnZUlE
KTsKIH0KIAogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bG9nVXNlckludGVy
YWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IGRvbWFpbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCA5N2VhMzM1OGQ5NDA1ZDBlOWQ3
OTM3ZTFlNjM0M2ZjYmZmOGViY2YwLi5jZjQ3ZjM3M2VhMjE3YWU1NjdjODlhMzc2Nzk2ZDNhOWFm
M2E3ZDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0yMDAsNyArMjAwLDcgQEAgcHJp
dmF0ZToKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgdm9pZCBy
ZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IHBhZ2VJRCk7Ci0gICAgdm9pZCByZW1vdmVTdG9yYWdlQWNjZXNzRm9yQWxs
RnJhbWVzT25QYWdlKFBBTDo6U2Vzc2lvbklELCB1aW50NjRfdCBwYWdlSUQpOworICAgIHZvaWQg
Y2xlYXJQYWdlU3BlY2lmaWNEYXRhRm9yUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQQUw6OlNlc3Np
b25JRCwgdWludDY0X3QgcGFnZUlEKTsKIAogICAgIHZvaWQgbG9nVXNlckludGVyYWN0aW9uKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpOwogICAgIHZvaWQgbG9nV2Vi
U29ja2V0TG9hZGluZyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRh
cmdldERvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBXYWxs
VGltZSBsYXN0U2Vlbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5p
bgppbmRleCBiY2Y4OTQ0MWJmY2FkOTZiMDI1NGNiOThhNzdiOGZlOTk2Yzc4ZmEzLi45ZmMyMTI3
NTcyMzQyNDdlZGVmMjJlMDBmMGIyNTFiZjQxOGYxYjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTU3LDcgKzU3LDcgQEAgbWVzc2FnZXMgLT4gTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAjaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBSZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJh
bWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBw
YWdlSUQpOwotICAgIFJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JBbGxGcmFtZXNPblBhZ2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBwYWdlSUQpOworICAgIENsZWFyUGFnZVNwZWNp
ZmljRGF0YUZvclJlc291cmNlTG9hZFN0YXRpc3RpY3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCB1aW50NjRfdCBwYWdlSUQpOwogICAgIExvZ1VzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbikKICAgICBMb2dX
ZWJTb2NrZXRMb2FkaW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gdGFyZ2V0RG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BG
cmFtZURvbWFpbiwgV2FsbFRpbWUgbGFzdFNlZW4pCiAgICAgTG9nU3VicmVzb3VyY2VMb2FkaW5n
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFy
Z2V0RG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2Fs
bFRpbWUgbGFzdFNlZW4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwCmluZGV4IGY2Nzk0NGI4M2Q0MjU3ZmVkZTk5MjAyYTVlNzcwNmQwZGViOTc2
ZGYuLmQzOWM4Nzk3NjA0NGFiYTZiMWE5NGM4NzgxYTFiNGQ5OTFiYWI1OWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0xMTc2LDYg
KzExNzYsMjMgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cmVzZXRDYWNoZU1heEFnZUNhcEZvclBy
ZXZhbGVudFJlc291cmNlcyhQQUw6OlNlc3Npb25JRCBzZXMKICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KKwordm9pZCBOZXR3b3JrUHJv
Y2Vzczo6Y29tbWl0dGVkQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmcm9tRG9tYWluLCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgdG9Eb21haW4sIHVpbnQ2NF90IHBhZ2VJRCkKK3sKKyAgICBp
ZiAoYXV0byogbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklE
KSkKKyAgICAgICAgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLT5jb21taXR0ZWRDcm9zc1NpdGVMb2Fk
V2l0aExpbmtEZWNvcmF0aW9uKGZyb21Eb21haW4sIHRvRG9tYWluLCBwYWdlSUQpOworICAgIGVs
c2UKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nl
c3M6OnJlc2V0Q3Jvc3NTaXRlTG9hZHNXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIGlmIChhdXRvKiBuZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBzdG9y
YWdlU2Vzc2lvbihzZXNzaW9uSUQpKQorICAgICAgICBuZXR3b3JrU3RvcmFnZVNlc3Npb24tPnJl
c2V0Q3Jvc3NTaXRlTG9hZHNXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKCk7CisgICAgZWxz
ZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcigp
OworfQogI2VuZGlmIC8vIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAKIGJvb2wg
TmV0d29ya1Byb2Nlc3M6OnNlc3Npb25Jc0NvbnRyb2xsZWRCeUF1dG9tYXRpb24oUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDI5OTJhYmQyNjdlZTRjMjg2ODM4MGUzNGI4ZjExODUzN2Jk
NmE2MjEuLmFhNGFiYzBkZTdkMTUyZWYyYTg1MmQ1MmU1ZmUzOGU3MTJjMDI0NmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTI0OCw2ICsy
NDgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8oUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgY29uc3QgUmVkaXJlY3RlZFRvRG9t
YWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFRvcEZyYW1l
VW5pcXVlUmVkaXJlY3RGcm9tKFBBTDo6U2Vzc2lvbklELCBjb25zdCBUb3BGcmFtZURvbWFpbiYs
IGNvbnN0IFJlZGlyZWN0ZWRGcm9tRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIHJlZ2lzdHJhYmxlRG9tYWluc1dpdGhXZWJzaXRlRGF0YShQQUw6OlNlc3Np
b25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIGJvb2wgc2hvdWxkTm90aWZ5UGFnZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiYmKT4mJik7
CisgICAgdm9pZCBjb21taXR0ZWRDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZnJvbURvbWFpbiwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHRvRG9tYWluLCB1aW50NjRfdCBwYWdlSUQpOworICAgIHZvaWQgcmVz
ZXRDcm9zc1NpdGVMb2Fkc1dpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9u
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAjZW5kaWYKIAogICAgIHVzaW5nIENh
Y2hlU3RvcmFnZVBhcmFtZXRlcnNDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29u
c3QgU3RyaW5nJiwgdWludDY0X3QgcXVvdGEpPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDRkYWQ5MDYw
ZmQzZWFlOGIxNzMwYTIxZTQxN2I5ODkwMDIwNGJjZDMuLmUzYTNkYzczNDkwYjU2NGMyYmZkZGRl
MDVlNDk3MTNmNDRhZGFlNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTMyLDYgKzEzMiw4IEBAIG1l
c3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZXRUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0VG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
cmVkaXJlY3RlZFRvRG9tYWluKSAtPiAoKSBBc3luYwogICAgIFNldFRvcEZyYW1lVW5pcXVlUmVk
aXJlY3RGcm9tKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0
ZWRGcm9tRG9tYWluKSAtPiAoKSBBc3luYwogICAgIFJlc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2
YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYworICAg
IENvbW1pdHRlZENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24oUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBmcm9tRG9tYWluLCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiB0b0RvbWFpbiwgdWludDY0X3QgcGFnZUlEKQorICAgIFJlc2V0
Q3Jvc3NTaXRlTG9hZHNXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKICNlbmRpZgogCiAgICAgU2V0U2Vzc2lvbklzQ29udHJv
bGxlZEJ5QXV0b21hdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgY29udHJvbGxl
ZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVE
YXRhU3RvcmVSZWYuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRl
RGF0YVN0b3JlUmVmLmNwcAppbmRleCBlMzE4NzIxZGU0NDEzZDRkMjA1OThlYTIyZDFjNGNjY2Ey
NWQ5OTNjLi5jMGViYjg3MjY3YmI3MjFhYmNlNTNjNTBiYWU2ZjNmZGM2Yzk5NTdmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9y
ZVJlZi5jcHAKQEAgLTQyOSw2ICs0MjksNyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRp
c3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYQogICAg
IGF1dG8mIHN0b3JlID0gV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+d2Vic2l0ZURhdGFT
dG9yZSgpOwogICAgIHN0b3JlLmNsZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGljc0luV2ViUHJvY2Vz
c2VzKFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJlZigpXSB7
IH0pOwogICAgIHN0b3JlLnJlc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMo
W2NhbGxiYWNrQWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldIHsgfSk7
CisgICAgc3RvcmUucmVzZXRDcm9zc1NpdGVMb2Fkc1dpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3Rp
bmcoW2NhbGxiYWNrQWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldIHsg
fSk7CiAgICAgc3RvcmUucmVzZXRQYXJhbWV0ZXJzVG9EZWZhdWx0VmFsdWVzKFtjYWxsYmFja0Fn
Z3JlZ2F0b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJlZigpXSB7IH0pOwogICAgIHN0b3Jl
LnNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQoU2hvdWxkR3JhbmRmYXRoZXJTdGF0
aXN0aWNzOjpObywgW2NhbGxiYWNrQWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5
UmVmKCldIHsgfSk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggNzk0MGZkZDVkZDVjOGZiZjgz
NTI1NDNmYTFjNmUzM2NkN2M5ZGNmNC4uYzNiYjNjZjE5OTdiNjkzMmE1MmRmMThhOTQ0MDMyYjFh
MWE3ZDYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC05MzEsNiArOTMxLDE2IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6bm90aWZ5UmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUZpbmlz
aGVkKHVuc2lnbmVkCiAKICAgICBXZWJQcm9jZXNzUHJveHk6Om5vdGlmeVBhZ2VTdGF0aXN0aWNz
VGVsZW1ldHJ5RmluaXNoZWQoQVBJOjpEaWN0aW9uYXJ5OjpjcmVhdGUobWVzc2FnZUJvZHkpLnB0
cigpKTsKIH0KKwordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXNldENyb3NzU2l0ZUxvYWRz
V2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAo
IWNhblNlbmRNZXNzYWdlKCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
Ok5ldHdvcmtQcm9jZXNzOjpSZXNldENyb3NzU2l0ZUxvYWRzV2l0aExpbmtEZWNvcmF0aW9uRm9y
VGVzdGluZyhzZXNzaW9uSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CiAjZW5k
aWYgLy8gRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKIAogdm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseSgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmlu
ZGV4IDRjNTFmMmYyM2JhMTE4YzkwOThmZjg1OWZkMDBiY2I4MzIyZjc4NmMuLmUzMTU0MDhhNjQw
OWFhNTY1ODU4MjkzMTU3MzgwNDA1ZWJlYzQ5ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC0xNDQsNiArMTQ0
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9k
ZShQQUw6OlNlc3Npb25JRCwgYm9vbCBkZWJ1Z01vZGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAgICAgdm9pZCBzZXRTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNv
cmRzUmVtb3ZhbChQQUw6OlNlc3Npb25JRCwgYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKICAgICB2b2lkIHJlc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMo
UEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBy
ZXNldENyb3NzU2l0ZUxvYWRzV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyhQQUw6OlNlc3Np
b25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICNlbmRpZgogCiAgICAgdm9pZCBw
cm9jZXNzUmVhZHlUb1N1c3BlbmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCmluZGV4IDg1MTEwNjFjODg4ZGQzNzkwNzFiY2IxZTBiNDVkNTBjNGMwYzQ1OGUuLmU2
MDQ4YzBiOTliMmZjYTEyNjg1MzEyOTI0ZWJmZDY5ODU1MmZmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNDA0MCw2ICs0MDQwLDEzIEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpjbGVhckxvYWREZXBlbmRlbnRDYWxsYmFja3MoKQogICAgIH0KIH0KIAorI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCitzdGF0aWMgYm9vbCBpc05vblVuaXF1
ZU5hdmlnYXRpb25XaXRoTGlua0RlY29yYXRpb24oY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhIHJl
cXVlc3Rlck9yaWdpbiwgY29uc3QgVVJMJiBjdXJyZW50VVJMKQoreworICAgIHJldHVybiAhcmVx
dWVzdGVyT3JpZ2luLnNlY3VyaXR5T3JpZ2luKCktPmlzVW5pcXVlKCkgJiYgKCFjdXJyZW50VVJM
LnF1ZXJ5KCkuaXNFbXB0eSgpIHx8ICFjdXJyZW50VVJMLmZyYWdtZW50SWRlbnRpZmllcigpLmlz
RW1wdHkoKSk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQz
Ml90IG9wYXF1ZUZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYg
Y2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPEhh
c0luc2VjdXJlQ29udGVudD4gaGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEpCiB7CiAgICAgTE9HKExvYWRpbmcsICIoTG9hZGluZykgV2ViUGFnZVByb3h5ICUiIFBS
SXU2NCAiIGRpZENvbW1pdExvYWRGb3JGcmFtZSBpbiBuYXZpZ2F0aW9uICUiIFBSSXU2NCwgbV9w
YWdlSUQsIG1fbmF2aWdhdGlvbklEKTsKQEAgLTQwNTMsOCArNDA2MCwxOSBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRAogCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBtZXNzYWdlIGNoZWNrIHRo
YXQgbmF2aWdhdGlvbklEIGlzIG5vdCB6ZXJvIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSB6ZXJv
IGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIHBhZ2UgY2FjaGUuCiAgICAgUmVmUHRy
PEFQSTo6TmF2aWdhdGlvbj4gbmF2aWdhdGlvbjsKLSAgICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1l
KCkgJiYgbmF2aWdhdGlvbklEKQorICAgIGlmIChmcmFtZS0+aXNNYWluRnJhbWUoKSAmJiBuYXZp
Z2F0aW9uSUQpIHsKICAgICAgICAgbmF2aWdhdGlvbiA9IG5hdmlnYXRpb25TdGF0ZSgpLm5hdmln
YXRpb24obmF2aWdhdGlvbklEKTsKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQorICAgICAgICBhdXRvIHJlcXVlc3Rlck9yaWdpbiA9IG5hdmlnYXRpb24tPmxhc3ROYXZpZ2F0
aW9uQWN0aW9uKCkucmVxdWVzdGVyT3JpZ2luOworICAgICAgICBhdXRvIGN1cnJlbnRVUkwgPSBu
YXZpZ2F0aW9uLT5jdXJyZW50UmVxdWVzdCgpLnVybCgpOworICAgICAgICBpZiAoaXNOb25Vbmlx
dWVOYXZpZ2F0aW9uV2l0aExpbmtEZWNvcmF0aW9uKHJlcXVlc3Rlck9yaWdpbiwgY3VycmVudFVS
TCkpIHsKKyAgICAgICAgICAgIFJlZ2lzdHJhYmxlRG9tYWluIGN1cnJlbnREb21haW4geyBjdXJy
ZW50VVJMIH07CisgICAgICAgICAgICBVUkwgcmVxdWVzdGVyVVJMIHsgVVJMKCksIHJlcXVlc3Rl
ck9yaWdpbi50b1N0cmluZygpIH07CisgICAgICAgICAgICBpZiAoIWN1cnJlbnREb21haW4ubWF0
Y2hlcyhyZXF1ZXN0ZXJVUkwpKQorICAgICAgICAgICAgICAgIG1fcHJvY2Vzcy0+cHJvY2Vzc1Bv
b2woKS5zZW5kVG9OZXR3b3JraW5nUHJvY2VzcyhNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkNv
bW1pdHRlZENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24obV93ZWJzaXRlRGF0YVN0b3Jl
LT5zZXNzaW9uSUQoKSwgUmVnaXN0cmFibGVEb21haW4geyByZXF1ZXN0ZXJVUkwgfSwgY3VycmVu
dERvbWFpbiwgbV9wYWdlSUQpKTsKKyAgICAgICAgfQorI2VuZGlmCisgICAgfQogCiAgICAgbV9o
YXNDb21taXR0ZWRBbnlQcm92aXNpb25hbExvYWRzID0gdHJ1ZTsKICAgICBtX3Byb2Nlc3MtPmRp
ZENvbW1pdFByb3Zpc2lvbmFsTG9hZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCBmNTMzMDhjNGEz
YWU3NWJiZDA4NWY1MWY4NTE2YjQ3MTA0NjE1ZTYxLi5iOWUzMzU4MzdkMzU0ZjBlYWY1OTAzM2Qw
MDUzMDM0MDlmYjc3MmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMTc1Myw2ICsxNzUzLDE2IEBA
IHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0R3JhbmRmYXRoZXJlZChjb25zdCBVUkwmIHVybCwg
Ym9vbCBpc0dyYW5kZmF0aGVyZWQsIENvCiAgICAgICAgICAgICBwcm9jZXNzLT5zZXRHcmFuZGZh
dGhlcmVkKG1fc2Vzc2lvbklELCBSZWdpc3RyYWJsZURvbWFpbiB7IHVybCB9LCBpc0dyYW5kZmF0
aGVyZWQsIFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJlZigp
XSB7IH0pOwogICAgIH0KIH0KKwordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZXNldENyb3NzU2l0
ZUxvYWRzV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3Ig
PSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
CisgICAgCisgICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6IHByb2Nlc3NQb29scygpKSB7Cisg
ICAgICAgIGlmIChhdXRvKiBuZXR3b3JrUHJvY2VzcyA9IHByb2Nlc3NQb29sLT5uZXR3b3JrUHJv
Y2VzcygpKQorICAgICAgICAgICAgbmV0d29ya1Byb2Nlc3MtPnJlc2V0Q3Jvc3NTaXRlTG9hZHNX
aXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKG1fc2Vzc2lvbklELCBbY2FsbGJhY2tBZ2dyZWdh
dG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYoKV0geyB9KTsKKyAgICB9Cit9CiAjZW5k
aWYgLy8gRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKIAogdm9pZCBXZWJzaXRlRGF0
YVN0b3JlOjpzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhTZWNvbmRzIHNl
Y29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaAppbmRleCBiNjMyM2E5Njk4ZjQ1ZWRiMTMyMzVkZGQ3Yzg5NTNjMmNmYjZlNWVhLi4w
YzYzNWNmZDU2ZDAxNGRlNDVjZDVmNmZmN2ZmOThmNTRmNmNlNzE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBA
IC0xNjcsNiArMTY3LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3Mo
Y29uc3QgU3RyaW5nJiBzdWJGcmFtZUhvc3QsIGNvbnN0IFN0cmluZyYgdG9wRnJhbWVIb3N0LCB1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIGJvb2wgcHJvbXB0RW5hYmxlZCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJik7CiAgICAgdm9pZCBn
cmFudFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0b3BGcmFt
ZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgYm9vbCB1c2VyV2FzUHJv
bXB0ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgc2V0U3Vi
ZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluKGNvbnN0IFVSTCYgc3ViZnJhbWUsIGNvbnN0IFVSTCYg
dG9wRnJhbWUpOworICAgIHZvaWQgcmVzZXRDcm9zc1NpdGVMb2Fkc1dpdGhMaW5rRGVjb3JhdGlv
bkZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICNlbmRpZgogICAgIHZv
aWQgc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoU2Vjb25kcywgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHJlc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQ
cmV2YWxlbnRSZXNvdXJjZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggM2RmZjU0NzA1YzIy
NjkxMWQ1YjU0NzA0OTRjYmRmZWJiMWQxNWYyMy4uODk4NGFiMGE2MGYyYThlMDVlMzc1NjA5ODFh
M2FiY2Y0MmI3ZTUwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKQEAgLTEyMzYsNyArMTIzNiw3IEBAIHZvaWQgV2ViUGFnZTo6Y2xvc2UoKQogICAg
ICAgICByZXR1cm47CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigp
LmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6UmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckFsbEZyYW1lc09uUGFnZShzZXNzaW9uSUQoKSwgbV9w
YWdlSUQpLCAwKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OkNsZWFyUGFnZVNwZWNpZmljRGF0YUZvclJlc291cmNlTG9hZFN0
YXRpc3RpY3Moc2Vzc2lvbklEKCksIG1fcGFnZUlEKSwgMCk7CiAjZW5kaWYKIAogICAgIG1faXND
bG9zZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDhjMzU0MjFjMWI1YTNiODA4ZjA4MjBkYjlhNzc1OGE5NDIx
ZmFlOTcuLjBjNTU3NWQxZDI2ZjA4YzZiZGZkZTE3NzZmMmEwNzkyNjc4MzAzMGIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNCBAQAorMjAxOS0wMi0yOCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXNvdXJjZSBMb2FkIFN0YXRpc3RpY3M6IEZ1cnRoZXIgcmVzdHJp
Y3QgY2xpZW50LXNpZGUgY29va2llIHBlcnNpc3RlbmNlIGFmdGVyIGNyb3NzLXNpdGUgbmF2aWdh
dGlvbnMgd2l0aCBsaW5rIGRlY29yYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5NTE5NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDgwMDY0
MTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBw
ZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWRlY29yYXRpb24tc2Ft
ZS1zaXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZy
YWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1m
b3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVz
b3VyY2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVl
cnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1s
aWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50
LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQt
aW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nh
cHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1w
cmV2YWxlbnQtcmVzb3VyY2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13
aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
YXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRp
b24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNl
dC1pbi1qcy5odG1sOgorICAgICAgICAgICAgTm93IGNsZWFycyBjb29raWVzIGFmdGVyIHRoZSB0
ZXN0LgorCiAyMDE5LTAyLTI3ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIEFkb3B0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGluIFdlYkNvcmU6OlJl
c291cmNlTG9hZFN0YXRpc3RpY3MgYW5kIFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nh
cHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlvbi1z
YW1lLXNpdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxp
bmstZGVjb3JhdGlvbi1zYW1lLXNpdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0OTU0NWEw
MzRkM2FmMjU5MGM5OTMzN2QyMzA1YTliZWZkYmE0MTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1l
LWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkg
SmF2YVNjcmlwdCBhZnRlciBhIHNhbWUtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBkZWNvcmF0
aW9uIGRvbid0IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIFRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGV4cGlyZSBhZnRlciBt
b3JlIHRoYW4gODY0MzAgc2Vjb25kcy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpz
LXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNl
dC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlvbi1zYW1lLXNpdGUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
ODJkOTk5NDQwNmRhMGIzZDY2YmFhYTZlNWYzYjNjZGNkOGUyYjgwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1s
aWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlvbi1zYW1lLXNp
dGUuaHRtbApAQCAtMCwwICsxLDg1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iL2Nvb2tpZXMvcmVzb3VyY2VzL2Nvb2tpZS11dGlsaXRpZXMu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1blRlc3QoKScsIDApIj4K
KzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIkNoZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5
IEphdmFTY3JpcHQgYWZ0ZXIgYSBzYW1lLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgZGVjb3Jh
dGlvbiBkb24ndCBnZXQgY2FwcGVkIHRvIDI0IGhvdXJzLiIpOworICAgIGpzVGVzdElzQXN5bmMg
PSB0cnVlOworCisgICAgZnVuY3Rpb24gdGVzdENvb2tpZXMoKSB7CisgICAgICAgIGxldCBwYXNz
ZWRUZXN0cyA9IDA7CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tUaGF0Q29va2llRG9lc0V4cGly
ZUFmdGVyKGNvb2tpZURhdGEsIG1heEFnZUluU2Vjb25kcykgeworICAgICAgICAgICAgbGV0IG5v
dyA9IG5ldyBEYXRlKCk7CisgICAgICAgICAgICBsZXQgbWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNv
bmRzID0gbm93LmdldFRpbWUoKSArIChtYXhBZ2VJblNlY29uZHMgKiAxMDAwKTsKKworICAgICAg
ICAgICAgaWYgKG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA8IGNvb2tpZURhdGFbImV4cGly
ZXMiXSkKKyAgICAgICAgICAgICAgICArK3Bhc3NlZFRlc3RzOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBuYW1lZCAiICsgY29va2llRGF0YVsi
bmFtZSJdICsgIiBleHBpcmVzIGluIGxlc3MgdGhhbiAiICsgbWF4QWdlSW5TZWNvbmRzICsgIiBz
ZWNvbmRzLiIpOworICAgICAgICB9CisKKyAgICAgICAgY29uc3Qgb25lRGF5SW5TZWNvbmRzID0g
MjQgKiA2MCAqIDYwOworICAgICAgICBjb25zdCB0d29EYXlzSW5TZWNvbmRzID0gMiAqIG9uZURh
eUluU2Vjb25kczsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1l
IDogImxvbmdMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b0Rh
eXNJblNlY29uZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVk
Q29va2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5s
aWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCB0d29EYXlzQXNFeHBpcmVzRGF0
ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d29EYXlzSW5TZWNvbmRzKTsKKyAgICAg
ICAgY29uc3QgbG9uZ0xpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29r
aWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5c0FzRXhwaXJlc0RhdGUg
KyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llRXhwaXJl
cy5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsg
IiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IG92ZXJPbmVEYXlJblNlY29uZHMgPSBvbmVEYXlJ
blNlY29uZHMgKyAzMDsKKyAgICAgICAgaWYgKGludGVybmFscykgeworICAgICAgICAgICAgbGV0
IGNvb2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOworICAgICAgICAgICAgaWYgKCFjb29r
aWVzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBjb29raWVzIGZvdW5k
LiIpOworICAgICAgICAgICAgZm9yIChsZXQgY29va2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAg
ICAgICAgICBzd2l0Y2ggKGNvb2tpZS5uYW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2Ug
bG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVj
a1RoYXRDb29raWVEb2VzRXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNl
IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNo
ZWNrVGhhdENvb2tpZURvZXNFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMp
OworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICByZXNldENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7
CisKKyAgICAgICAgICAgIGlmIChwYXNzZWRUZXN0cyA9PT0gMikgeworICAgICAgICAgICAgICAg
IHRlc3RQYXNzZWQoIlRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGV4cGlyZSBhZnRlciBtb3Jl
IHRoYW4gIiArIG92ZXJPbmVEYXlJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2ll
J3MgZXhwaXJ5IGF0dHJpYnV0ZSB3YXMgYmVsb3cgdGhlIHRlc3QgdGhyZXNob2xkcy4iKTsKKyAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBpbnRlcm5hbHMgb2JqZWN0
LiIpOworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09yaWdpbigpIHsKKyAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24uaHJlZiA9IHByZXZhbGVudFJlc291cmNlT3JpZ2luICsgIi9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRo
LWxpbmstZGVjb3JhdGlvbi1zYW1lLXNpdGUuaHRtbD9saW5rPWRlY29yYXRpb24jZnJhZ21lbnQi
OworICAgIH0KKworICAgIGNvbnN0IGRlc3RpbmF0aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCI7CisgICAgY29uc3QgcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gPSAiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwIjsKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9j
dW1lbnQubG9jYXRpb24ub3JpZ2luID09PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiAmJiBkb2N1
bWVudC5sb2NhdGlvbi5oYXNoICE9PSAiI2ZyYWdtZW50IikgeworICAgICAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4s
IHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4pKQor
ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQg
YXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhuYXZpZ2F0ZUNyb3NzT3JpZ2luKTsKKyAg
ICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgfSk7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICB0ZXN0Q29va2llcygpOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdp
dGgtbGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0
aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVu
dC1yZXNvdXJjZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjdiYWQwMzJjNmYyMjQ1NzNhMzM1
ZDNmNzA0MTlkY2I0YmU0M2ExNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1z
ZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDExIEBACitDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBK
YXZhU2NyaXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBmcmFnbWVu
dCBnZXQgY2FwcGVkIHRvIDI0IGhvdXJzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1v
cmUgdGhhbiA0MzIzMCBzZWNvbmRzLgorUEFTUyBUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBk
b24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDg2NDMwIHNlY29uZHMuCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1m
b3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVz
b3VyY2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50
LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGExMGI0NjA1NmRjMWJh
ZGU2NjY2YWM3NDdhNDZhMDA5ZWU5OWUwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNv
b2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNl
Lmh0bWwKQEAgLTAsMCArMSwxMDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgor
PHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkg
SmF2YVNjcmlwdCBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgZnJhZ21l
bnQgZ2V0IGNhcHBlZCB0byAyNCBob3Vycy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KworICAgIGZ1bmN0aW9uIHRlc3RDb29raWVzKCkgeworICAgICAgICBsZXQgcGFzc2VkVGVzdHMg
PSAwOworICAgICAgICBmdW5jdGlvbiBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIo
Y29va2llRGF0YSwgbWF4QWdlSW5TZWNvbmRzKSB7CisgICAgICAgICAgICBsZXQgbm93ID0gbmV3
IERhdGUoKTsKKyAgICAgICAgICAgIGxldCBtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPSBu
b3cuZ2V0VGltZSgpICsgKG1heEFnZUluU2Vjb25kcyAqIDEwMDApOworCisgICAgICAgICAgICBp
ZiAobWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID4gY29va2llRGF0YVsiZXhwaXJlcyJdKQor
ICAgICAgICAgICAgICAgICsrcGFzc2VkVGVzdHM7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiQ29va2llIG5hbWVkICIgKyBjb29raWVEYXRhWyJuYW1lIl0g
KyAiIGV4cGlyZXMgaW4gbW9yZSB0aGFuICIgKyBtYXhBZ2VJblNlY29uZHMgKyAiIHNlY29uZHMu
Iik7CisgICAgICAgIH0KKworICAgICAgICBjb25zdCB0d2VsdmVIb3Vyc0luU2Vjb25kcyA9IDEy
ICogNjAgKiA2MDsKKyAgICAgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFt
ZSA6ICJzaG9ydExpdmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdl
bHZlSG91cnNJblNlY29uZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2hv
cnRMaXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBzaG9ydExpdmVkQ29va2ll
TWF4QWdlLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IHR3ZWx2ZUhvdXJz
QXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d2VsdmVIb3Vyc0lu
U2Vjb25kcyk7CisgICAgICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1l
IDogInNob3J0TGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdl
bHZlSG91cnNBc0V4cGlyZXNEYXRlICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9
IHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRD
b29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IG9uZURh
eUluU2Vjb25kcyA9IDIgKiB0d2VsdmVIb3Vyc0luU2Vjb25kczsKKyAgICAgICAgY29uc3QgdHdv
RGF5c0luU2Vjb25kcyA9IDIgKiBvbmVEYXlJblNlY29uZHM7CisgICAgICAgIGNvbnN0IGxvbmdM
aXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZl
dGltZSA6ICJNYXgtQWdlPSIgKyB0d29EYXlzSW5TZWNvbmRzICsgIjsiIH07CisgICAgICAgIGRv
Y3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIg
KyBsb25nTGl2ZWRDb29raWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAg
Y29uc3QgdHdvRGF5c0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2Uo
dHdvRGF5c0luU2Vjb25kcyk7CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMg
PSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llRXhwaXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9
IiArIHR3b0RheXNBc0V4cGlyZXNEYXRlICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tp
ZSA9IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVk
Q29va2llRXhwaXJlcy5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCBvdmVy
VHdlbHZlSG91cnNJblNlY29uZHMgPSB0d2VsdmVIb3Vyc0luU2Vjb25kcyArIDMwOworICAgICAg
ICBjb25zdCBvdmVyT25lRGF5SW5TZWNvbmRzID0gb25lRGF5SW5TZWNvbmRzICsgMzA7CisgICAg
ICAgIGlmIChpbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxz
LmdldENvb2tpZXMoKTsKKyAgICAgICAgICAgIGlmICghY29va2llcy5sZW5ndGgpCisgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiTm8gY29va2llcyBmb3VuZC4iKTsKKyAgICAgICAgICAgIGZv
ciAobGV0IGNvb2tpZSBvZiBjb29raWVzKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjb29r
aWUubmFtZSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIHNob3J0TGl2ZWRDb29raWVNYXhB
Z2UubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RF
eHBpcmVBZnRlcihjb29raWUsIG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBzaG9ydExpdmVk
Q29va2llRXhwaXJlcy5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29v
a2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNl
IGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hl
Y2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25k
cyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg
Y2FzZSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAg
ICBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5T
ZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVzZXRDb29raWVzRm9yQ3VycmVudE9y
aWdpbigpOworCisgICAgICAgICAgICBpZiAocGFzc2VkVGVzdHMgPT09IDQpIHsKKyAgICAgICAg
ICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhw
aXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgIiBzZWNv
bmRzLiIpOworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gbG9uZy1saXZlZCBj
b29raWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJPbmVEYXlJblNlY29u
ZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0dHJpYnV0ZSB3YXMgYmV5
b25kIHRoZSB0ZXN0IHRocmVzaG9sZHMuIik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
dGVzdEZhaWxlZCgiTm8gaW50ZXJuYWxzIG9iamVjdC4iKTsKKworICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG5hdmln
YXRlQ3Jvc3NPcmlnaW4oKSB7CisgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBkZXN0
aW5hdGlvbk9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUt
Zm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJl
c291cmNlLmh0bWwjbGluaz1mcmFnbWVudCI7CisgICAgfQorCisgICAgY29uc3QgZGVzdGluYXRp
b25PcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCBwcmV2YWxlbnRS
ZXNvdXJjZU9yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHByZXZh
bGVudFJlc291cmNlT3JpZ2luKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUs
IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0
ZUNvb2tpZUJsb2NraW5nKG5hdmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0p
OworCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RD
b29raWVzKCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWFu
ZC1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZv
ci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2
YWxlbnQtcmVzb3VyY2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlOThkYzhmOTBlMmRhMWIx
OTgzYjQ4ZGMxODZlYWQ3YTY5NjVkN2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQt
cmVzb3VyY2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK0NoZWNrIHRoYXQgY29va2ll
cyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0
aCBsaW5rIHF1ZXJ5IGFuZCBmcmFnbWVudCBnZXQgY2FwcGVkIHRvIDI0IGhvdXJzLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tp
ZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA0MzIzMCBzZWNvbmRzLgorUEFTUyBUaGUg
dHdvIGxvbmctbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDg2NDMw
IHNlY29uZHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVl
cnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1j
b29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxl
bnQtcmVzb3VyY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZjJiZmFmZTYyOWNjYzQ5NDJhMDQzZjc5N2Jl
MGMzYWNkNmZjNDkyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1q
cy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0
bWwKQEAgLTAsMCArMSwxMDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAg
ICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNj
cmlwdD4KKyAgICBkZXNjcmlwdGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2
YVNjcmlwdCBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgcXVlcnkgYW5k
IGZyYWdtZW50IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuIik7CisgICAganNUZXN0SXNBc3luYyA9
IHRydWU7CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29va2llcygpIHsKKyAgICAgICAgbGV0IHBhc3Nl
ZFRlc3RzID0gMDsKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGly
ZUFmdGVyKGNvb2tpZURhdGEsIG1heEFnZUluU2Vjb25kcykgeworICAgICAgICAgICAgbGV0IG5v
dyA9IG5ldyBEYXRlKCk7CisgICAgICAgICAgICBsZXQgbWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNv
bmRzID0gbm93LmdldFRpbWUoKSArIChtYXhBZ2VJblNlY29uZHMgKiAxMDAwKTsKKworICAgICAg
ICAgICAgaWYgKG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA+IGNvb2tpZURhdGFbImV4cGly
ZXMiXSkKKyAgICAgICAgICAgICAgICArK3Bhc3NlZFRlc3RzOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBuYW1lZCAiICsgY29va2llRGF0YVsi
bmFtZSJdICsgIiBleHBpcmVzIGluIG1vcmUgdGhhbiAiICsgbWF4QWdlSW5TZWNvbmRzICsgIiBz
ZWNvbmRzLiIpOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgdHdlbHZlSG91cnNJblNlY29u
ZHMgPSAxMiAqIDYwICogNjA7CisgICAgICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVNYXhBZ2Ug
PSB7IG5hbWUgOiAic2hvcnRMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9
IiArIHR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tp
ZSA9IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZSArICI9Zm9vYmFyOyAiICsgc2hvcnRMaXZl
ZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCB0d2Vs
dmVIb3Vyc0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdlbHZl
SG91cnNJblNlY29uZHMpOworICAgICAgICBjb25zdCBzaG9ydExpdmVkQ29va2llRXhwaXJlcyA9
IHsgbmFtZSA6ICJzaG9ydExpdmVkQ29va2llRXhwaXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9
IiArIHR3ZWx2ZUhvdXJzQXNFeHBpcmVzRGF0ZSArICI7IiB9OworICAgICAgICBkb2N1bWVudC5j
b29raWUgPSBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBzaG9y
dExpdmVkQ29va2llRXhwaXJlcy5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25z
dCBvbmVEYXlJblNlY29uZHMgPSAyICogdHdlbHZlSG91cnNJblNlY29uZHM7CisgICAgICAgIGNv
bnN0IHR3b0RheXNJblNlY29uZHMgPSAyICogb25lRGF5SW5TZWNvbmRzOworICAgICAgICBjb25z
dCBsb25nTGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llTWF4QWdl
IiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdvRGF5c0luU2Vjb25kcyArICI7IiB9OworICAg
ICAgICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVNYXhBZ2UubmFtZSArICI9Zm9v
YmFyOyAiICsgbG9uZ0xpdmVkQ29va2llTWF4QWdlLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisg
ICAgICAgIGNvbnN0IHR3b0RheXNBc0V4cGlyZXNEYXRlID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9t
TWF4QWdlKHR3b0RheXNJblNlY29uZHMpOworICAgICAgICBjb25zdCBsb25nTGl2ZWRDb29raWVF
eHBpcmVzID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZUV4cGlyZXMiLCBsaWZldGltZSA6ICJF
eHBpcmVzPSIgKyB0d29EYXlzQXNFeHBpcmVzRGF0ZSArICI7IiB9OworICAgICAgICBkb2N1bWVu
dC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxv
bmdMaXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29u
c3Qgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzID0gdHdlbHZlSG91cnNJblNlY29uZHMgKyAzMDsK
KyAgICAgICAgY29uc3Qgb3Zlck9uZURheUluU2Vjb25kcyA9IG9uZURheUluU2Vjb25kcyArIDMw
OworICAgICAgICBpZiAoaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBsZXQgY29va2llcyA9IGlu
dGVybmFscy5nZXRDb29raWVzKCk7CisgICAgICAgICAgICBpZiAoIWNvb2tpZXMubGVuZ3RoKQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGNvb2tpZXMgZm91bmQuIik7CisgICAgICAg
ICAgICBmb3IgKGxldCBjb29raWUgb2YgY29va2llcykgeworICAgICAgICAgICAgICAgIHN3aXRj
aCAoY29va2llLm5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBzaG9ydExpdmVkQ29v
a2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVE
b2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMpOworICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2Ugc2hv
cnRMaXZlZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNr
VGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJUd2VsdmVIb3Vyc0luU2Vj
b25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAg
ICAgY2FzZSBsb25nTGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJ
blNlY29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lOgorICAgICAgICAgICAgICAg
ICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9u
ZURheUluU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJlc2V0Q29va2llc0ZvckN1
cnJlbnRPcmlnaW4oKTsKKworICAgICAgICAgICAgaWYgKHBhc3NlZFRlc3RzID09PSA0KSB7Cisg
ICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBzaG9ydC1saXZlZCBjb29raWVzIGRv
bid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyAr
ICIgc2Vjb25kcy4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdvIGxvbmct
bGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuICIgKyBvdmVyT25lRGF5
SW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiQXQgbGVhc3Qgb25lIGNvb2tpZSdzIGV4cGlyeSBhdHRyaWJ1dGUg
d2FzIGJleW9uZCB0aGUgdGVzdCB0aHJlc2hvbGRzLiIpOworICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIk5vIGludGVybmFscyBvYmplY3QuIik7CisKKyAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBuYXZpZ2F0ZUNyb3NzT3JpZ2luKCkgeworICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVm
ID0gZGVzdGluYXRpb25PcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxp
ZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQt
ZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbD9saW5rPXF1ZXJ5I2xpbms9ZnJhZ21lbnQiOwor
ICAgIH0KKworICAgIGNvbnN0IGRlc3RpbmF0aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCI7CisgICAgY29uc3QgcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gPSAiaHR0cDovLzEyNy4w
LjAuMTo4MDAwIjsKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1l
bnQubG9jYXRpb24ub3JpZ2luID09PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikgeworICAgICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVz
b3VyY2VPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAo
IXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3Vy
Y2VPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQg
bm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhuYXZpZ2F0ZUNyb3Nz
T3JpZ2luKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0Q29va2llcygpOworICAgICAgICB9CisgICAgfQor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUt
c2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2Fw
cGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXBy
ZXZhbGVudC1yZXNvdXJjZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQ1ZGQxNmMyZWUwMTA4
MGUzYzFmMWI0MDIwNmI2NmE4MDJlMGFjMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNv
b2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBi
eSBKYXZhU2NyaXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBxdWVy
eSBnZXQgY2FwcGVkIHRvIDI0IGhvdXJzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1v
cmUgdGhhbiA0MzIzMCBzZWNvbmRzLgorUEFTUyBUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBk
b24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDg2NDMwIHNlY29uZHMuCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1m
b3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3Vy
Y2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
YXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20t
cHJldmFsZW50LXJlc291cmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWVkYTZkYzBjODM0MDY1MDgxODBk
YjA0MGE3NWE4YzQ2MjUxYTFmYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1z
ZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWwKQEAg
LTAsMCArMSwxMDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2Ny
aXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4K
KyAgICBkZXNjcmlwdGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlw
dCBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgcXVlcnkgZ2V0IGNhcHBl
ZCB0byAyNCBob3Vycy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGZ1bmN0
aW9uIHRlc3RDb29raWVzKCkgeworICAgICAgICBsZXQgcGFzc2VkVGVzdHMgPSAwOworICAgICAg
ICBmdW5jdGlvbiBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llRGF0YSwg
bWF4QWdlSW5TZWNvbmRzKSB7CisgICAgICAgICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTsKKyAg
ICAgICAgICAgIGxldCBtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPSBub3cuZ2V0VGltZSgp
ICsgKG1heEFnZUluU2Vjb25kcyAqIDEwMDApOworCisgICAgICAgICAgICBpZiAobWF4RXhwaXJ5
RGF0ZUluTWlsbGlzZWNvbmRzID4gY29va2llRGF0YVsiZXhwaXJlcyJdKQorICAgICAgICAgICAg
ICAgICsrcGFzc2VkVGVzdHM7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiQ29va2llIG5hbWVkICIgKyBjb29raWVEYXRhWyJuYW1lIl0gKyAiIGV4cGlyZXMg
aW4gbW9yZSB0aGFuICIgKyBtYXhBZ2VJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAg
IH0KKworICAgICAgICBjb25zdCB0d2VsdmVIb3Vyc0luU2Vjb25kcyA9IDEyICogNjAgKiA2MDsK
KyAgICAgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJzaG9ydExp
dmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdlbHZlSG91cnNJblNl
Y29uZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZlZENvb2tp
ZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBzaG9ydExpdmVkQ29va2llTWF4QWdlLmxpZmV0
aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IHR3ZWx2ZUhvdXJzQXNFeHBpcmVzRGF0
ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d2VsdmVIb3Vyc0luU2Vjb25kcyk7Cisg
ICAgICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogInNob3J0TGl2
ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdlbHZlSG91cnNBc0V4
cGlyZXNEYXRlICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHNob3J0TGl2ZWRD
b29raWVFeHBpcmVzLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVFeHBpcmVz
LmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IG9uZURheUluU2Vjb25kcyA9
IDIgKiB0d2VsdmVIb3Vyc0luU2Vjb25kczsKKyAgICAgICAgY29uc3QgdHdvRGF5c0luU2Vjb25k
cyA9IDIgKiBvbmVEYXlJblNlY29uZHM7CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZU1h
eEFnZSA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgt
QWdlPSIgKyB0d29EYXlzSW5TZWNvbmRzICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tp
ZSA9IGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRD
b29raWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdvRGF5
c0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdvRGF5c0luU2Vj
b25kcyk7CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAi
bG9uZ0xpdmVkQ29va2llRXhwaXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3b0RheXNB
c0V4cGlyZXNEYXRlICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZl
ZENvb2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llRXhwaXJl
cy5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCBvdmVyVHdlbHZlSG91cnNJ
blNlY29uZHMgPSB0d2VsdmVIb3Vyc0luU2Vjb25kcyArIDMwOworICAgICAgICBjb25zdCBvdmVy
T25lRGF5SW5TZWNvbmRzID0gb25lRGF5SW5TZWNvbmRzICsgMzA7CisgICAgICAgIGlmIChpbnRl
cm5hbHMpIHsKKyAgICAgICAgICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMo
KTsKKyAgICAgICAgICAgIGlmICghY29va2llcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiTm8gY29va2llcyBmb3VuZC4iKTsKKyAgICAgICAgICAgIGZvciAobGV0IGNvb2tp
ZSBvZiBjb29raWVzKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjb29raWUubmFtZSkgewor
ICAgICAgICAgICAgICAgICAgICBjYXNlIHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihj
b29raWUsIG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBzaG9ydExpdmVkQ29va2llRXhwaXJl
cy5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4
cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENv
b2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2ll
RG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2
ZWRDb29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRD
b29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgcmVzZXRDb29raWVzRm9yQ3VycmVudE9yaWdpbigpOworCisg
ICAgICAgICAgICBpZiAocGFzc2VkVGVzdHMgPT09IDQpIHsKKyAgICAgICAgICAgICAgICB0ZXN0
UGFzc2VkKCJUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1v
cmUgdGhhbiAiICsgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAg
ICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGRvbid0
IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJPbmVEYXlJblNlY29uZHMgKyAiIHNlY29u
ZHMuIik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJB
dCBsZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0dHJpYnV0ZSB3YXMgYmV5b25kIHRoZSB0ZXN0
IHRocmVzaG9sZHMuIik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgi
Tm8gaW50ZXJuYWxzIG9iamVjdC4iKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNl
LCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG5hdmlnYXRlQ3Jvc3NPcmln
aW4oKSB7CisgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlvbk9yaWdp
biArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1z
ZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWw/bGlu
az1xdWVyeSI7CisgICAgfQorCisgICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiA9ICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAg
IGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHByZXZhbGVudFJlc291cmNlT3JpZ2lu
KSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShw
cmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2
YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKG5h
dmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RDb29raWVzKCk7CisgICAgICAg
IH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUt
Zm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxl
bnQtcmVzb3VyY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRo
b3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uM2JmNjQ5YTU3ZTEzNjRjMDYwNjQ1Njk0MTMwNDU0MTEzNzQ1ODMwMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRl
Y29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTAgQEAKK0NoZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBj
cm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0aG91dCBsaW5rIGRlY29yYXRpb24gZG9uJ3QgZ2V0IGNh
cHBlZCB0byAyNCBob3Vycy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
VGhlIHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA4NjQzMCBz
ZWNvbmRzLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRl
Y29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1z
ZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2Uu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hN2I1NzkyNjJjMDFkNmI2YTM4MDEzMzRhOGYxMjYwYjYxOTIwOWNh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxp
bmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sCkBAIC0wLDAgKzEsODUg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIv
Y29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlw
dGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBhZnRlciBhIGNy
b3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRob3V0IGxpbmsgZGVjb3JhdGlvbiBkb24ndCBnZXQgY2Fw
cGVkIHRvIDI0IGhvdXJzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgZnVu
Y3Rpb24gdGVzdENvb2tpZXMoKSB7CisgICAgICAgIGxldCBwYXNzZWRUZXN0cyA9IDA7CisKKyAg
ICAgICAgZnVuY3Rpb24gY2hlY2tUaGF0Q29va2llRG9lc0V4cGlyZUFmdGVyKGNvb2tpZURhdGEs
IG1heEFnZUluU2Vjb25kcykgeworICAgICAgICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7Cisg
ICAgICAgICAgICBsZXQgbWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID0gbm93LmdldFRpbWUo
KSArIChtYXhBZ2VJblNlY29uZHMgKiAxMDAwKTsKKworICAgICAgICAgICAgaWYgKG1heEV4cGly
eURhdGVJbk1pbGxpc2Vjb25kcyA8IGNvb2tpZURhdGFbImV4cGlyZXMiXSkKKyAgICAgICAgICAg
ICAgICArK3Bhc3NlZFRlc3RzOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkNvb2tpZSBuYW1lZCAiICsgY29va2llRGF0YVsibmFtZSJdICsgIiBleHBpcmVz
IGluIGxlc3MgdGhhbiAiICsgbWF4QWdlSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAg
ICB9CisKKyAgICAgICAgY29uc3Qgb25lRGF5SW5TZWNvbmRzID0gMjQgKiA2MCAqIDYwOworICAg
ICAgICBjb25zdCB0d29EYXlzSW5TZWNvbmRzID0gMiAqIG9uZURheUluU2Vjb25kczsKKyAgICAg
ICAgY29uc3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tp
ZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b0RheXNJblNlY29uZHMgKyAiOyIg
fTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWUg
KyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0v
IjsKKworICAgICAgICBjb25zdCB0d29EYXlzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNE
YXRlRnJvbU1heEFnZSh0d29EYXlzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVk
Q29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRp
bWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5c0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAg
ZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7
ICIgKyBsb25nTGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAg
ICAgIGNvbnN0IG92ZXJPbmVEYXlJblNlY29uZHMgPSBvbmVEYXlJblNlY29uZHMgKyAzMDsKKyAg
ICAgICAgaWYgKGludGVybmFscykgeworICAgICAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5h
bHMuZ2V0Q29va2llcygpOworICAgICAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkKKyAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIpOworICAgICAgICAgICAg
Zm9yIChsZXQgY29va2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNv
b2tpZS5uYW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llTWF4
QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzRXhw
aXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZUV4
cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNF
eHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICByZXNldENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisKKyAgICAgICAgICAgIGlm
IChwYXNzZWRUZXN0cyA9PT0gMikgeworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0
d28gbG9uZy1saXZlZCBjb29raWVzIGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJPbmVE
YXlJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0dHJpYnV0
ZSB3YXMgYmVsb3cgdGhlIHRlc3QgdGhyZXNob2xkcy4iKTsKKyAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJObyBpbnRlcm5hbHMgb2JqZWN0LiIpOworCisgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gbmF2aWdhdGVDcm9zc09yaWdpbigpIHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJl
ZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1s
aWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9t
LXByZXZhbGVudC1yZXNvdXJjZS5odG1sIjsKKyAgICB9CisKKyAgICBjb25zdCBkZXN0aW5hdGlv
bk9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHByZXZhbGVudFJl
c291cmNlT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rpb24gcnVu
VGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJldmFs
ZW50UmVzb3VyY2VPcmlnaW4pIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwg
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1By
ZXZhbGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luLCB0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNv
dXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRl
Q29va2llQmxvY2tpbmcobmF2aWdhdGVDcm9zc09yaWdpbik7CisgICAgICAgICAgICAgICAgfSk7
CisKKyAgICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdENv
b2tpZXMoKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29v
a2llLXNldC1pbi1qcy5odG1sCmluZGV4IDQ3NDc1NTI2NDRlMDJhMjZlMzgyYTNmMzI3MDM5NDc4
MzBlNzk2NjUuLjAwY2IxNzU4NTNjY2UzZDNmODdlNWVlNDg3MTdjNjEzN2Y0ZjBkYzYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBw
ZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLmh0bWwKQEAgLTYyLDYgKzYyLDkgQEAKICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKworICAgICAgICByZXNldENvb2tpZXNG
b3JDdXJyZW50T3JpZ2luKCk7CisKICAgICAgICAgaWYgKHBhc3NlZFRlc3RzID09PSA0KSB7CiAg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3Qg
ZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3ZlclR3b0RheXNJblNlY29uZHMgKyAiIHNlY29u
ZHMuIik7CiAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdvIGxvbmctbGl2ZWQgY29va2ll
cyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuICIgKyBvdmVyT25lV2Vla0luU2Vjb25kcyAr
ICIgc2Vjb25kcy4iKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363367</attachid>
            <date>2019-03-01 13:33:02 -0800</date>
            <delta_ts>2019-03-01 14:11:39 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-195196-20190301133301.patch</filename>
            <type>text/plain</type>
            <size>61344</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGNkMTdkNjEzNTkyODcy
Yjc2ODc3NzRjZGViOWFmNWMxMzUyNmJlNC4uNjk4N2MyODRiYzMxOTE3MjdkNWMwNzNlYmEzZDRj
ZGVjNGI0ZjdmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE5LTAzLTAxICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc291cmNlIExvYWQg
U3RhdGlzdGljczogRnVydGhlciByZXN0cmljdCBjbGllbnQtc2lkZSBjb29raWUgcGVyc2lzdGVu
Y2UgYWZ0ZXIgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9ucyB3aXRoIGxpbmsgZGVjb3JhdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MTk2CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80ODAwNjQxOT4KKworICAgICAgICBSZXZpZXdlZCBieSBCcmVu
dCBGdWxnaGFtLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNv
cmF0aW9uLXNhbWUtc2l0ZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgt
bGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sCisgICAgICAgICAgICAg
ICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1j
b29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxl
bnQtcmVzb3VyY2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmst
cXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNl
dC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5o
dG1sCisKKyAgICAgICAgVHJhY2tlcnMgYWJ1c2UgbGluayBxdWVyeSBwYXJhbWV0ZXJzIHRvIHRy
YW5zcG9ydCB1c2VyIGlkZW50aWZpZXJzIGNyb3NzLXNpdGUuCisgICAgICAgIFRoaXMgcGF0Y2gg
ZGV0ZWN0cyBzdWNoIG5hdmlnYXRpb25zIGFuZCBhcHBsaWVzIGZ1cnRoZXIgcmVzdHJpY3Rpb25z
IHRvCisgICAgICAgIGNsaWVudC1zaXRlIGNvb2tpZXMgb24gdGhlIGRlc3RpbmF0aW9uIHBhZ2Uu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldEFnZUNhcEZvckNs
aWVudFNpZGVDb29raWVzKToKKyAgICAgICAgICAgIE5vdyBzZXRzIHRoZSByZWd1bGFyIDctZGF5
IGNhcCBhbmQgYSByZWR1Y2VkIDEtZGF5IGNhcC4KKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6Y2xlYXJQYWdlU3BlY2lmaWNEYXRhRm9yUmVzb3VyY2VMb2FkU3RhdGlz
dGljcyk6CisgICAgICAgICAgICBSZW5hbWVkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6cmVtb3Zl
U3RvcmFnZUFjY2Vzc0ZvckFsbEZyYW1lc09uUGFnZSgpIHRvCisgICAgICAgICAgICBOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmNsZWFyUGFnZVNwZWNpZmljRGF0YUZvclJlc291cmNlTG9hZFN0YXRp
c3RpY3Mgc2luY2UKKyAgICAgICAgICAgIGl0IG5vdyBjbGVhcnMgb3V0IHR3byB0eXBlcyBvZiBw
YWdlLXNwZWNpZmljIGRhdGEuCisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b246OmNvbW1pdHRlZENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24pOgorICAgICAgICAg
ICAgVGhpcyBmdW5jdGlvbiByZWNlaXZlcyBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiBhbmQgY2hl
Y2tzIGlmIHRoZSBvcmlnaW5hdGluZworICAgICAgICAgICAgc2l0ZSBpcyBhIHByZXZhbGVudCBy
ZXNvdXJjZS4gSWYgc28sIGl0IG1hcmtzIHRoZSBwYWdlIG9yIHN0cmljdGVyIGNvb2tpZQorICAg
ICAgICAgICAgcnVsZXMuCisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246
OnJlc2V0Q3Jvc3NTaXRlTG9hZHNXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKToKKyAgICAg
ICAgICAgIFRlc3QgaW5mcmFzdHJ1Y3R1cmUuIFRoaXMgc2V0cyBhIHN0YXRlIHRoYXQgb3ZlcnJp
ZGVzIHRoZSByZWd1bGFyIHBlci1wYWdlCisgICAgICAgICAgICBjbGVhciBvZiBkYXRhLiBUaGUg
cmVhc29uIGlzIHRoYXQgdGhlIGRvdWJsZSBjbGVhciB3YXMgcmFjeSBhbmQgY2F1c2VkIHRlc3QK
KyAgICAgICAgICAgIGZhaWx1cmVzLgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VT
ZXNzaW9uOjpjbGllbnRTaWRlQ29va2llQ2FwIGNvbnN0KToKKyAgICAgICAgICAgIE5ldyBmdW5j
dGlvbiB0aGF0IHJldHVybnMgdGhlIGN1cnJlbnQgY29va2llIGxpZmV0aW1lIGNhcC4KKyAgICAg
ICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0Zv
ckFsbEZyYW1lc09uUGFnZSk6IERlbGV0ZWQuCisgICAgICAgICAgICBSZW5hbWVkIHRvIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6Y2xlYXJQYWdlU3BlY2lmaWNEYXRhRm9yUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcygpLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNl
c3Npb25Db2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
c2V0Q29va2llc0Zyb21ET00gY29uc3QpOgorICAgICAgICAgICAgTm93IGNhbGxzIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6Y2xpZW50U2lkZUNvb2tpZUNhcCgpIHRvIHNldCB0aGUgY2FwLgorCiAy
MDE5LTAyLTI3ICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CiAgICAgICAgIEZp
eCBidWlsZCBlcnJvcnMgYWZ0ZXIgV2ViIEdQVSBidWZmZXIgdXBkYXRlcyBjaGFuZ2VkIHNvbWUg
SURMIGZpZWxkcyBmcm9tIHVuc2lnbmVkIGxvbmcgdG8gdW5zaWduZWQgbG9uZyBsb25nLgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDgxZjkxNDczZDgwNTViNmYzODI4M2E1NmE4OWYyNmQyMTRjYzIxZDkuLjQ2OWI3
OTE1MzliNzRiMzA5OTAwMmY2YWE3ZTRkY2UzZGM0ZmQxODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDggQEAKKzIwMTktMDMtMDEgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzOiBGdXJ0aGVyIHJlc3RyaWN0IGNsaWVu
dC1zaWRlIGNvb2tpZSBwZXJzaXN0ZW5jZSBhZnRlciBjcm9zcy1zaXRlIG5hdmlnYXRpb25zIHdp
dGggbGluayBkZWNvcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTUxOTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ4MDA2NDE5PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgVHJhY2tlcnMgYWJ1
c2UgbGluayBxdWVyeSBwYXJhbWV0ZXJzIHRvIHRyYW5zcG9ydCB1c2VyIGlkZW50aWZpZXJzIGNy
b3NzLXNpdGUuCisgICAgICAgIFRoaXMgcGF0Y2ggZGV0ZWN0cyBzdWNoIG5hdmlnYXRpb25zIGFu
ZCBhcHBsaWVzIGZ1cnRoZXIgcmVzdHJpY3Rpb25zIHRvCisgICAgICAgIGNsaWVudC1zaXRlIGNv
b2tpZXMgb24gdGhlIGRlc3RpbmF0aW9uIHBhZ2UuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjbGVhclBhZ2VTcGVjaWZpY0RhdGFGb3JSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JBbGxGcmFtZXNPblBhZ2UpOiBEZWxl
dGVkLgorICAgICAgICAgICAgUmVuYW1lZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
Y2xlYXJQYWdlU3BlY2lmaWNEYXRhRm9yUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpLgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Y29tbWl0dGVkQ3Jvc3NTaXRlTG9hZFdpdGhM
aW5rRGVjb3JhdGlvbik6CisgICAgICAgICAgICBSZXBvcnRpbmcgSVBDIG1lc3NhZ2Ugd2hlbiBh
IGxpbmsgZGVjb3JhdGVkIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiBoYXBwZW5zLgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cmVzZXRDcm9zc1NpdGVMb2Fkc1dpdGhMaW5rRGVjb3Jh
dGlvbkZvclRlc3RpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHA6Cisg
ICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0
ZSk6CisgICAgICAgICAgICBBZGRlZCBjbGVhcmluZyBvZiB0aGUgbmV3IHN0YXRlIGJldHdlZW4g
dGVzdCBydW5zLgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXNldENyb3Nz
U2l0ZUxvYWRzV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyk6CisgICAgICAgICAgICBUZXN0
IGluZnJhc3RydWN0dXJlLgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6aXNOb25VbmlxdWVOYXZpZ2F0aW9uV2l0aExpbmtEZWNvcmF0aW9uKToKKyAg
ICAgICAgICAgIENvbnZlbmllbmNlIGZ1bmN0aW9uLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSk6CisgICAgICAgICAgICBUaGlzIGZ1bmN0aW9u
IG5vdyByZXBvcnRzIHRvIHRoZSBuZXR3b3JrIHByb2Nlc3Mgd2hlbiBhIGxpbmsgZGVjb3JhdGVk
CisgICAgICAgICAgICBjcm9zcy1zaXRlIG5hdmlnYXRpb24gaGFwcGVucy4KKyAgICAgICAgKiBV
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYnNpdGVEYXRhU3RvcmU6OnJlc2V0Q3Jvc3NTaXRlTG9hZHNXaXRoTGlua0RlY29yYXRp
b25Gb3JUZXN0aW5nKToKKyAgICAgICAgICAgIFRlc3QgaW5mcmFzdHJ1Y3R1cmUuCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmNsb3NlKToKKyAgICAgICAgICAgIE5hbWUgY2hhbmdlIG9mIGZ1bmN0aW9uIGNhbGxlZC4KKwog
MjAxOS0wMi0yNyAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZG9wdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBpbiBXZWJDb3JlOjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzIGFuZCBXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
LmNwcAppbmRleCA5OTA2MDc4MTg1NWEwZjEyMzU0ZjdjNmEyNzIxZjZjZTY0MDFlZWU4Li4zYjE4
ZTYyZmUzOTg3ZGI1ZmM4NjE5YmZmY2E2MmE0ODZmNDhhODA4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3Bw
CkBAIC0xMDAsNiArMTAwLDcgQEAgT3B0aW9uYWw8U2Vjb25kcz4gTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjptYXhBZ2VDYWNoZUNhcChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHIKIHZvaWQgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpzZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyhPcHRpb25hbDxT
ZWNvbmRzPiBzZWNvbmRzKQogewogICAgIG1fYWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMgPSBz
ZWNvbmRzOworICAgIG1fYWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXNTaG9ydCA9IHNlY29uZHMg
PyBTZWNvbmRzIHsgc2Vjb25kcy0+c2Vjb25kcygpIC8gNy4gfSA6IHNlY29uZHM7CiB9CiAKIHZv
aWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tp
ZXNGb3IoY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiYgZG9tYWlucykKQEAgLTE5MCwx
MCArMTkxLDEyIEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpyZW1vdmVTdG9yYWdlQWNj
ZXNzRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0CiAgICAgaXRlcmF0aW9uLT52YWx1
ZS5yZW1vdmUoZnJhbWVJRCk7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpyZW1v
dmVTdG9yYWdlQWNjZXNzRm9yQWxsRnJhbWVzT25QYWdlKHVpbnQ2NF90IHBhZ2VJRCkKK3ZvaWQg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjbGVhclBhZ2VTcGVjaWZpY0RhdGFGb3JSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzKHVpbnQ2NF90IHBhZ2VJRCkKIHsKICAgICBtX3BhZ2VzR3JhbnRlZFN0b3Jh
Z2VBY2Nlc3MucmVtb3ZlKHBhZ2VJRCk7CiAgICAgbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFjY2Vz
cy5yZW1vdmUocGFnZUlEKTsKKyAgICBpZiAoIW1fbmF2aWdhdGlvbldpdGhMaW5rRGVjb3JhdGlv
blRlc3RNb2RlKQorICAgICAgICBtX25hdmlnYXRlZFRvV2l0aExpbmtEZWNvcmF0aW9uQnlQcmV2
YWxlbnRSZXNvdXJjZS5yZW1vdmUocGFnZUlEKTsKIH0KIAogdm9pZCBOZXR3b3JrU3RvcmFnZVNl
c3Npb246OnJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3MoKQpAQCAtMjExLDYgKzIxNCwzMyBAQCB2b2lk
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6cmVzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJl
c291cmNlcygpCiB7CiAgICAgbV9jYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyA9
IFdURjo6bnVsbG9wdDsKIH0KKwordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvbW1pdHRl
ZENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24oY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IGZyb21Eb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b0RvbWFpbiwgdWludDY0X3Qg
cGFnZUlEKQoreworICAgIGlmIChzaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzKGZyb21Eb21h
aW4pKQorICAgICAgICBtX25hdmlnYXRlZFRvV2l0aExpbmtEZWNvcmF0aW9uQnlQcmV2YWxlbnRS
ZXNvdXJjZS5hZGQocGFnZUlELCB0b0RvbWFpbik7Cit9CisKK3ZvaWQgTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uOjpyZXNldENyb3NzU2l0ZUxvYWRzV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZygp
Cit7CisgICAgbV9uYXZpZ2F0ZWRUb1dpdGhMaW5rRGVjb3JhdGlvbkJ5UHJldmFsZW50UmVzb3Vy
Y2UuY2xlYXIoKTsKKyAgICBtX25hdmlnYXRpb25XaXRoTGlua0RlY29yYXRpb25UZXN0TW9kZSA9
IHRydWU7Cit9CisKK09wdGlvbmFsPFNlY29uZHM+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y2xp
ZW50U2lkZUNvb2tpZUNhcChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eSwgT3B0
aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCkgY29uc3QKK3sKKyAgICBpZiAoIW1fYWdlQ2FwRm9yQ2xp
ZW50U2lkZUNvb2tpZXMgfHwgIXBhZ2VJRCB8fCBtX25hdmlnYXRlZFRvV2l0aExpbmtEZWNvcmF0
aW9uQnlQcmV2YWxlbnRSZXNvdXJjZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBtX2FnZUNh
cEZvckNsaWVudFNpZGVDb29raWVzOworCisgICAgYXV0byBkb21haW5JdGVyYXRvciA9IG1fbmF2
aWdhdGVkVG9XaXRoTGlua0RlY29yYXRpb25CeVByZXZhbGVudFJlc291cmNlLmZpbmQoKnBhZ2VJ
RCk7CisgICAgaWYgKGRvbWFpbkl0ZXJhdG9yID09IG1fbmF2aWdhdGVkVG9XaXRoTGlua0RlY29y
YXRpb25CeVByZXZhbGVudFJlc291cmNlLmVuZCgpKQorICAgICAgICByZXR1cm4gbV9hZ2VDYXBG
b3JDbGllbnRTaWRlQ29va2llczsKKworICAgIGlmIChkb21haW5JdGVyYXRvci0+dmFsdWUgPT0g
Zmlyc3RQYXJ0eSkKKyAgICAgICAgcmV0dXJuIG1fYWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXNT
aG9ydDsKKworICAgIHJldHVybiBtX2FnZUNhcEZvckNsaWVudFNpZGVDb29raWVzOworfQogI2Vu
ZGlmIC8vIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5o
CmluZGV4IDU4OTc5NDExNTQwNDE5MDZhNTBhYTVmYjk2NWE2MDVlMzg0ZDEzNzEuLjhkZTQyNDky
NDc0ZTUyMDYxOTQ0NTgzNjJiMTg2MDJjMzVkMTRhODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaApAQCAtMTQ5
LDExICsxNDksMTMgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxTdHJpbmc+
IGdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNl
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9u
YWw8dWludDY0X3Q+IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCByZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWlu
dDY0X3QgcGFnZUlEKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVN0b3JhZ2VBY2Nl
c3NGb3JBbGxGcmFtZXNPblBhZ2UodWludDY0X3QgcGFnZUlEKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGNsZWFyUGFnZVNwZWNpZmljRGF0YUZvclJlc291cmNlTG9hZFN0YXRpc3RpY3ModWlu
dDY0X3QgcGFnZUlEKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUFsbFN0b3JhZ2VB
Y2Nlc3MoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENhY2hlTWF4QWdlQ2FwRm9yUHJl
dmFsZW50UmVzb3VyY2VzKFNlY29uZHMpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVzZXRD
YWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcygpOwogICAgIFdFQkNPUkVfRVhQT1JU
IE9wdGlvbmFsPFNlY29uZHM+IG1heEFnZUNhY2hlQ2FwKGNvbnN0IFJlc291cmNlUmVxdWVzdCYp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29tbWl0dGVkQ3Jvc3NTaXRlTG9hZFdpdGhMaW5r
RGVjb3JhdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZnJvbURvbWFpbiwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHRvRG9tYWluLCB1aW50NjRfdCBwYWdlSUQpOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgcmVzZXRDcm9zc1NpdGVMb2Fkc1dpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3Rp
bmcoKTsKICNlbmRpZgogCiBwcml2YXRlOgpAQCAtMTc4LDExICsxODAsMTUgQEAgcHJpdmF0ZToK
IAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgYm9vbCBzaG91bGRC
bG9ja1RoaXJkUGFydHlDb29raWVzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJikgY29uc3Q7Cisg
ICAgT3B0aW9uYWw8U2Vjb25kcz4gY2xpZW50U2lkZUNvb2tpZUNhcChjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgZmlyc3RQYXJ0eSwgT3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCkgY29uc3Q7CiAg
ICAgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4gbV9yZWdpc3RyYWJsZURvbWFpbnNUb0Jsb2Nr
Q29va2llRm9yOwogICAgIEhhc2hNYXA8dWludDY0X3QsIEhhc2hNYXA8dWludDY0X3QsIFJlZ2lz
dHJhYmxlRG9tYWluLCBEZWZhdWx0SGFzaDx1aW50NjRfdD46Okhhc2gsIFdURjo6VW5zaWduZWRX
aXRoWmVyb0tleUhhc2hUcmFpdHM8dWludDY0X3Q+PiwgRGVmYXVsdEhhc2g8dWludDY0X3Q+OjpI
YXNoLCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQ2NF90Pj4gbV9mcmFt
ZXNHcmFudGVkU3RvcmFnZUFjY2VzczsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBIYXNoTWFwPFJl
Z2lzdHJhYmxlRG9tYWluLCBSZWdpc3RyYWJsZURvbWFpbj4sIERlZmF1bHRIYXNoPHVpbnQ2NF90
Pjo6SGFzaCwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czx1aW50NjRfdD4+IG1f
cGFnZXNHcmFudGVkU3RvcmFnZUFjY2VzczsKICAgICBPcHRpb25hbDxTZWNvbmRzPiBtX2NhY2hl
TWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzIHsgfTsKICAgICBPcHRpb25hbDxTZWNvbmRz
PiBtX2FnZUNhcEZvckNsaWVudFNpZGVDb29raWVzIHsgfTsKKyAgICBPcHRpb25hbDxTZWNvbmRz
PiBtX2FnZUNhcEZvckNsaWVudFNpZGVDb29raWVzU2hvcnQgeyB9OworICAgIEhhc2hNYXA8dWlu
dDY0X3QsIFJlZ2lzdHJhYmxlRG9tYWluLCBEZWZhdWx0SGFzaDx1aW50NjRfdD46Okhhc2gsIFdU
Rjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8dWludDY0X3Q+PiBtX25hdmlnYXRlZFRv
V2l0aExpbmtEZWNvcmF0aW9uQnlQcmV2YWxlbnRSZXNvdXJjZTsKKyAgICBib29sIG1fbmF2aWdh
dGlvbldpdGhMaW5rRGVjb3JhdGlvblRlc3RNb2RlID0gZmFsc2U7CiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KaW5kZXgg
ZTA1OTQwZTQ2MmM1ZDc3M2IwYWFkM2VkYWIwMDQyNTU5NTQ3M2E3YS4uMzE4ZjUzZTE3NDcyYmVk
ZmQyYTQwN2YwY2FlZGUxNjFlOGY5YzhmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lv
bkNvY29hLm1tCkBAIC00MDMsNyArNDAzLDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVMKICNl
bmRpZgogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICBSZXRhaW5Q
dHI8TlNBcnJheT4gZmlsdGVyZWRDb29raWVzID0gZmlsdGVyQ29va2llcyh1bmZpbHRlcmVkQ29v
a2llcywgbV9hZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyk7CisgICAgUmV0YWluUHRyPE5TQXJy
YXk+IGZpbHRlcmVkQ29va2llcyA9IGZpbHRlckNvb2tpZXModW5maWx0ZXJlZENvb2tpZXMsIGNs
aWVudFNpZGVDb29raWVDYXAoUmVnaXN0cmFibGVEb21haW4geyBmaXJzdFBhcnR5IH0sIHBhZ2VJ
RCkpOwogI2Vsc2UKICAgICBSZXRhaW5QdHI8TlNBcnJheT4gZmlsdGVyZWRDb29raWVzID0gZmls
dGVyQ29va2llcyh1bmZpbHRlcmVkQ29va2llcywgV1RGOjpudWxsb3B0KTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCBlNTlhNDMzM2Q5M2ExZjkzZGQ4YjI0OThjMzRj
Y2NlMjZkYjNkMzVkLi5lMjc5MDY2YTMxZTMwYzMzNDQ1Y2IzNGExNjBlZTc2MGZjZjM0NjE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNTc5LDEwICs1NzksMTAgQEAgdm9pZCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1l
KFBBTDo6U2Vzc2lvbklEIHMKICAgICAgICAgc3RvcmFnZVNlc3Npb24tPnJlbW92ZVN0b3JhZ2VB
Y2Nlc3NGb3JGcmFtZShmcmFtZUlELCBwYWdlSUQpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpyZW1vdmVTdG9yYWdlQWNjZXNzRm9yQWxsRnJhbWVzT25QYWdlKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgcGFnZUlEKQordm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6Y2xlYXJQYWdlU3BlY2lmaWNEYXRhRm9yUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IHBhZ2VJRCkKIHsK
ICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBuZXR3b3JrUHJvY2VzcygpLnN0b3JhZ2VT
ZXNzaW9uKHNlc3Npb25JRCkpCi0gICAgICAgIHN0b3JhZ2VTZXNzaW9uLT5yZW1vdmVTdG9yYWdl
QWNjZXNzRm9yQWxsRnJhbWVzT25QYWdlKHBhZ2VJRCk7CisgICAgICAgIHN0b3JhZ2VTZXNzaW9u
LT5jbGVhclBhZ2VTcGVjaWZpY0RhdGFGb3JSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKHBhZ2VJRCk7
CiB9CiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxvZ1VzZXJJbnRlcmFj
dGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBk
b21haW4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggOTdlYTMzNThkOTQwNWQwZTlkNzkz
N2UxZTYzNDNmY2JmZjhlYmNmMC4uY2Y0N2YzNzNlYTIxN2FlNTY3Yzg5YTM3Njc5NmQzYTlhZjNh
N2Q4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMjAwLDcgKzIwMCw3IEBAIHByaXZh
dGU6CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIHZvaWQgcmVt
b3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklELCB1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBwYWdlSUQpOwotICAgIHZvaWQgcmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckFsbEZy
YW1lc09uUGFnZShQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgcGFnZUlEKTsKKyAgICB2b2lkIGNs
ZWFyUGFnZVNwZWNpZmljRGF0YUZvclJlc291cmNlTG9hZFN0YXRpc3RpY3MoUEFMOjpTZXNzaW9u
SUQsIHVpbnQ2NF90IHBhZ2VJRCk7CiAKICAgICB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihQQUw6
OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mKTsKICAgICB2b2lkIGxvZ1dlYlNv
Y2tldExvYWRpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0YXJn
ZXREb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgV2FsbFRp
bWUgbGFzdFNlZW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4K
aW5kZXggYmNmODk0NDFiZmNhZDk2YjAyNTRjYjk4YTc3YjhmZTk5NmM3OGZhMy4uOWZjMjEyNzU3
MjM0MjQ3ZWRlZjIyZTAwZjBiMjUxYmY0MThmMWI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC01Nyw3ICs1Nyw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKIAogI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgUmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1l
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFn
ZUlEKTsKLSAgICBSZW1vdmVTdG9yYWdlQWNjZXNzRm9yQWxsRnJhbWVzT25QYWdlKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgcGFnZUlEKTsKKyAgICBDbGVhclBhZ2VTcGVjaWZp
Y0RhdGFGb3JSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
dWludDY0X3QgcGFnZUlEKTsKICAgICBMb2dVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW4pCiAgICAgTG9nV2Vi
U29ja2V0TG9hZGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIHRhcmdldERvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJh
bWVEb21haW4sIFdhbGxUaW1lIGxhc3RTZWVuKQogICAgIExvZ1N1YnJlc291cmNlTG9hZGluZyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdl
dERvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdhbGxU
aW1lIGxhc3RTZWVuKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcAppbmRleCBmNjc5NDRiODNkNDI1N2ZlZGU5OTIwMmE1ZTc3MDZkMGRlYjk3NmRm
Li5kMzljODc5NzYwNDRhYmE2YjFhOTRjODc4MWExYjRkOTkxYmFiNTlmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMTE3Niw2ICsx
MTc2LDIzIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnJlc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2
YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQgc2VzCiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CisKK3ZvaWQgTmV0d29ya1Byb2Nl
c3M6OmNvbW1pdHRlZENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24oUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZnJvbURvbWFpbiwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIHRvRG9tYWluLCB1aW50NjRfdCBwYWdlSUQpCit7CisgICAgaWYg
KGF1dG8qIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkp
CisgICAgICAgIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi0+Y29tbWl0dGVkQ3Jvc3NTaXRlTG9hZFdp
dGhMaW5rRGVjb3JhdGlvbihmcm9tRG9tYWluLCB0b0RvbWFpbiwgcGFnZUlEKTsKKyAgICBlbHNl
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNz
OjpyZXNldENyb3NzU2l0ZUxvYWRzV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyhQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBpZiAoYXV0byogbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gc3RvcmFn
ZVNlc3Npb24oc2Vzc2lvbklEKSkKKyAgICAgICAgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLT5yZXNl
dENyb3NzU2l0ZUxvYWRzV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZygpOworICAgIGVsc2UK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsK
K30KICNlbmRpZiAvLyBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogCiBib29sIE5l
dHdvcmtQcm9jZXNzOjpzZXNzaW9uSXNDb250cm9sbGVkQnlBdXRvbWF0aW9uKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaAppbmRleCAyOTkyYWJkMjY3ZWU0YzI4NjgzODBlMzRiOGYxMTg1MzdiZDZh
NjIxLi5hYTRhYmMwZGU3ZDE1MmVmMmE4NTJkNTJlNWZlMzhlNzEyYzAyNDZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0yNDgsNiArMjQ4
LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IFJlZGlyZWN0ZWRUb0RvbWFp
biYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRUb3BGcmFtZVVu
aXF1ZVJlZGlyZWN0RnJvbShQQUw6OlNlc3Npb25JRCwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBj
b25zdCBSZWRpcmVjdGVkRnJvbURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCByZWdpc3RyYWJsZURvbWFpbnNXaXRoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9u
SUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBib29sIHNob3VsZE5vdGlmeVBhZ2UsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mJik+JiYpOwor
ICAgIHZvaWQgY29tbWl0dGVkQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihQQUw6OlNl
c3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZyb21Eb21haW4sIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiB0b0RvbWFpbiwgdWludDY0X3QgcGFnZUlEKTsKKyAgICB2b2lkIHJlc2V0
Q3Jvc3NTaXRlTG9hZHNXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogI2VuZGlmCiAKICAgICB1c2luZyBDYWNo
ZVN0b3JhZ2VQYXJhbWV0ZXJzQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0
IFN0cmluZyYsIHVpbnQ2NF90IHF1b3RhKT47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA0ZGFkOTA2MGZk
M2VhZThiMTczMGEyMWU0MTdiOTg5MDAyMDRiY2QzLi5lM2EzZGM3MzQ5MGI1NjRjMmJmZGRkZTA1
ZTQ5NzEzZjQ0YWRhZTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTEzMiw2ICsxMzIsOCBAQCBtZXNz
YWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2V0VG9wRnJhbWVV
bmlxdWVSZWRpcmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJl
ZGlyZWN0ZWRUb0RvbWFpbikgLT4gKCkgQXN5bmMKICAgICBTZXRUb3BGcmFtZVVuaXF1ZVJlZGly
ZWN0RnJvbShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVk
RnJvbURvbWFpbikgLT4gKCkgQXN5bmMKICAgICBSZXNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFs
ZW50UmVzb3VyY2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKKyAgICBD
b21taXR0ZWRDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZnJvbURvbWFpbiwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4gdG9Eb21haW4sIHVpbnQ2NF90IHBhZ2VJRCkKKyAgICBSZXNldENy
b3NzU2l0ZUxvYWRzV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQpIC0+ICgpIEFzeW5jCiAjZW5kaWYKIAogICAgIFNldFNlc3Npb25Jc0NvbnRyb2xs
ZWRCeUF1dG9tYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIGNvbnRyb2xsZWQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0
YVN0b3JlUmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURh
dGFTdG9yZVJlZi5jcHAKaW5kZXggZTMxODcyMWRlNDQxM2Q0ZDIwNTk4ZWEyMmQxYzRjY2NhMjVk
OTkzYy4uYzBlYmI4NzI2N2JiNzIxYWJjZTUzYzUwYmFlNmYzZmRjNmM5OTU3ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVS
ZWYuY3BwCkBAIC00MjksNiArNDI5LDcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0
aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGEKICAgICBh
dXRvJiBzdG9yZSA9IFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPndlYnNpdGVEYXRhU3Rv
cmUoKTsKICAgICBzdG9yZS5jbGVhclJlc291cmNlTG9hZFN0YXRpc3RpY3NJbldlYlByb2Nlc3Nl
cyhbY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYoKV0geyB9
KTsKICAgICBzdG9yZS5yZXNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFtj
YWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJlZigpXSB7IH0pOwor
ICAgIHN0b3JlLnJlc2V0Q3Jvc3NTaXRlTG9hZHNXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5n
KFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJlZigpXSB7IH0p
OwogICAgIHN0b3JlLnJlc2V0UGFyYW1ldGVyc1RvRGVmYXVsdFZhbHVlcyhbY2FsbGJhY2tBZ2dy
ZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYoKV0geyB9KTsKICAgICBzdG9yZS5z
Y2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFNob3VsZEdyYW5kZmF0aGVyU3RhdGlz
dGljczo6Tm8sIFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJl
ZigpXSB7IH0pOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDc5NDBmZGQ1ZGQ1YzhmYmY4MzUy
NTQzZmExYzZlMzNjZDdjOWRjZjQuLmMzYmIzY2YxOTk3YjY5MzJhNTJkZjE4YTk0NDAzMmIxYTFh
N2Q2MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtOTMxLDYgKzkzMSwxNiBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6Om5vdGlmeVJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlGaW5pc2hl
ZCh1bnNpZ25lZAogCiAgICAgV2ViUHJvY2Vzc1Byb3h5Ojpub3RpZnlQYWdlU3RhdGlzdGljc1Rl
bGVtZXRyeUZpbmlzaGVkKEFQSTo6RGljdGlvbmFyeTo6Y3JlYXRlKG1lc3NhZ2VCb2R5KS5wdHIo
KSk7CiB9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmVzZXRDcm9zc1NpdGVMb2Fkc1dp
dGhMaW5rRGVjb3JhdGlvbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFj
YW5TZW5kTWVzc2FnZSgpKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgCisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpO
ZXR3b3JrUHJvY2Vzczo6UmVzZXRDcm9zc1NpdGVMb2Fkc1dpdGhMaW5rRGVjb3JhdGlvbkZvclRl
c3Rpbmcoc2Vzc2lvbklEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQogI2VuZGlm
IC8vIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAKIHZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6c2VuZFByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHkoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRl
eCA0YzUxZjJmMjNiYTExOGM5MDk4ZmY4NTlmZDAwYmNiODMyMmY3ODZjLi5lMzE1NDA4YTY0MDlh
YTU2NTg1ODI5MzE1NzM4MDQwNWViZWM0OTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtMTQ0LDYgKzE0NCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUo
UEFMOjpTZXNzaW9uSUQsIGJvb2wgZGVidWdNb2RlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogICAgIHZvaWQgc2V0U2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jk
c1JlbW92YWwoUEFMOjpTZXNzaW9uSUQsIGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAgICAgdm9pZCByZXNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFBB
TDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgcmVz
ZXRDcm9zc1NpdGVMb2Fkc1dpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9u
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAjZW5kaWYKIAogICAgIHZvaWQgcHJv
Y2Vzc1JlYWR5VG9TdXNwZW5kKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAppbmRleCA4NTExMDYxYzg4OGRkMzc5MDcxYmNiMWUwYjQ1ZDUwYzRjMGM0NThlLi5lNjA0
OGMwYjk5YjJmY2ExMjY4NTMxMjkyNGViZmQ2OTg1NTJmZjEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTQwNDAsNiArNDA0MCwxMyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6Y2xlYXJMb2FkRGVwZW5kZW50Q2FsbGJhY2tzKCkKICAgICB9CiB9CiAKKyNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorc3RhdGljIGJvb2wgaXNOb25VbmlxdWVO
YXZpZ2F0aW9uV2l0aExpbmtEZWNvcmF0aW9uKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSByZXF1
ZXN0ZXJPcmlnaW4sIGNvbnN0IFVSTCYgY3VycmVudFVSTCkKK3sKKyAgICByZXR1cm4gIXJlcXVl
c3Rlck9yaWdpbi5zZWN1cml0eU9yaWdpbigpLT5pc1VuaXF1ZSgpICYmICghY3VycmVudFVSTC5x
dWVyeSgpLmlzRW1wdHkoKSB8fCAhY3VycmVudFVSTC5mcmFnbWVudElkZW50aWZpZXIoKS5pc0Vt
cHR5KCkpOworfQorI2VuZGlmCisKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJf
dCBvcGFxdWVGcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNl
cnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxIYXNJ
bnNlY3VyZUNvbnRlbnQ+IGhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhKQogewogICAgIExPRyhMb2FkaW5nLCAiKExvYWRpbmcpIFdlYlBhZ2VQcm94eSAlIiBQUkl1
NjQgIiBkaWRDb21taXRMb2FkRm9yRnJhbWUgaW4gbmF2aWdhdGlvbiAlIiBQUkl1NjQsIG1fcGFn
ZUlELCBtX25hdmlnYXRpb25JRCk7CkBAIC00MDUzLDggKzQwNjAsMTkgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbWVzc2FnZSBjaGVjayB0aGF0
IG5hdmlnYXRpb25JRCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgemVybyBm
b3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgogICAgIFJlZlB0cjxB
UEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRpb247Ci0gICAgaWYgKGZyYW1lLT5pc01haW5GcmFtZSgp
ICYmIG5hdmlnYXRpb25JRCkKKyAgICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYgbmF2aWdh
dGlvbklEKSB7CiAgICAgICAgIG5hdmlnYXRpb24gPSBuYXZpZ2F0aW9uU3RhdGUoKS5uYXZpZ2F0
aW9uKG5hdmlnYXRpb25JRCk7CisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
KyAgICAgICAgYXV0byByZXF1ZXN0ZXJPcmlnaW4gPSBuYXZpZ2F0aW9uLT5sYXN0TmF2aWdhdGlv
bkFjdGlvbigpLnJlcXVlc3Rlck9yaWdpbjsKKyAgICAgICAgYXV0byBjdXJyZW50VVJMID0gbmF2
aWdhdGlvbi0+Y3VycmVudFJlcXVlc3QoKS51cmwoKTsKKyAgICAgICAgaWYgKGlzTm9uVW5pcXVl
TmF2aWdhdGlvbldpdGhMaW5rRGVjb3JhdGlvbihyZXF1ZXN0ZXJPcmlnaW4sIGN1cnJlbnRVUkwp
KSB7CisgICAgICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiBjdXJyZW50RG9tYWluIHsgY3VycmVu
dFVSTCB9OworICAgICAgICAgICAgVVJMIHJlcXVlc3RlclVSTCB7IFVSTCgpLCByZXF1ZXN0ZXJP
cmlnaW4udG9TdHJpbmcoKSB9OworICAgICAgICAgICAgaWYgKCFjdXJyZW50RG9tYWluLm1hdGNo
ZXMocmVxdWVzdGVyVVJMKSkKKyAgICAgICAgICAgICAgICBtX3Byb2Nlc3MtPnByb2Nlc3NQb29s
KCkuc2VuZFRvTmV0d29ya2luZ1Byb2Nlc3MoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpDb21t
aXR0ZWRDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uKG1fd2Vic2l0ZURhdGFTdG9yZS0+
c2Vzc2lvbklEKCksIFJlZ2lzdHJhYmxlRG9tYWluIHsgcmVxdWVzdGVyVVJMIH0sIGN1cnJlbnRE
b21haW4sIG1fcGFnZUlEKSk7CisgICAgICAgIH0KKyNlbmRpZgorICAgIH0KIAogICAgIG1faGFz
Q29tbWl0dGVkQW55UHJvdmlzaW9uYWxMb2FkcyA9IHRydWU7CiAgICAgbV9wcm9jZXNzLT5kaWRD
b21taXRQcm92aXNpb25hbExvYWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggZjUzMzA4YzRhM2Fl
NzViYmQwODVmNTFmODUxNmI0NzEwNDYxNWU2MS4uYjllMzM1ODM3ZDM1NGYwZWFmNTkwMzNkMDA1
MzAzNDA5ZmI3NzJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTE3NTMsNiArMTc1MywxNiBAQCB2
b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldEdyYW5kZmF0aGVyZWQoY29uc3QgVVJMJiB1cmwsIGJv
b2wgaXNHcmFuZGZhdGhlcmVkLCBDbwogICAgICAgICAgICAgcHJvY2Vzcy0+c2V0R3JhbmRmYXRo
ZXJlZChtX3Nlc3Npb25JRCwgUmVnaXN0cmFibGVEb21haW4geyB1cmwgfSwgaXNHcmFuZGZhdGhl
cmVkLCBbY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYoKV0g
eyB9KTsKICAgICB9CiB9CisKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVzZXRDcm9zc1NpdGVM
b2Fkc1dpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gY2FsbGJhY2tBZ2dyZWdhdG9yID0g
Q2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwor
ICAgIAorICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBwcm9jZXNzUG9vbHMoKSkgeworICAg
ICAgICBpZiAoYXV0byogbmV0d29ya1Byb2Nlc3MgPSBwcm9jZXNzUG9vbC0+bmV0d29ya1Byb2Nl
c3MoKSkKKyAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzLT5yZXNldENyb3NzU2l0ZUxvYWRzV2l0
aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyhtX3Nlc3Npb25JRCwgW2NhbGxiYWNrQWdncmVnYXRv
ciA9IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldIHsgfSk7CisgICAgfQorfQogI2VuZGlm
IC8vIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAKIHZvaWQgV2Vic2l0ZURhdGFT
dG9yZTo6c2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoU2Vjb25kcyBzZWNv
bmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmgKaW5kZXggYjYzMjNhOTY5OGY0NWVkYjEzMjM1ZGRkN2M4OTUzYzJjZmI2ZTVlYS4uMGM2
MzVjZmQ1NmQwMTRkZTQ1Y2Q1ZjZmZjdmZjk4ZjU0ZjZjZTcxNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAt
MTY3LDYgKzE2Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKGNv
bnN0IFN0cmluZyYgc3ViRnJhbWVIb3N0LCBjb25zdCBTdHJpbmcmIHRvcEZyYW1lSG9zdCwgdWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBib29sIHByb21wdEVuYWJsZWQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYpOwogICAgIHZvaWQgZ3Jh
bnRTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9wRnJhbWVI
b3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIGJvb2wgdXNlcldhc1Byb21w
dGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIHNldFN1YmZy
YW1lVW5kZXJUb3BGcmFtZURvbWFpbihjb25zdCBVUkwmIHN1YmZyYW1lLCBjb25zdCBVUkwmIHRv
cEZyYW1lKTsKKyAgICB2b2lkIHJlc2V0Q3Jvc3NTaXRlTG9hZHNXaXRoTGlua0RlY29yYXRpb25G
b3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAjZW5kaWYKICAgICB2b2lk
IHNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFNlY29uZHMsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCByZXNldENhY2hlTWF4QWdlQ2FwRm9yUHJl
dmFsZW50UmVzb3VyY2VzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDNkZmY1NDcwNWMyMjY5
MTFkNWI1NDcwNDk0Y2JkZmViYjFkMTVmMjMuLjg5ODRhYjBhNjBmMmE4ZTA1ZTM3NTYwOTgxYTNh
YmNmNDJiN2U1MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCkBAIC0xMjM2LDcgKzEyMzYsNyBAQCB2b2lkIFdlYlBhZ2U6OmNsb3NlKCkKICAgICAg
ICAgcmV0dXJuOwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5j
b25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OlJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JBbGxGcmFtZXNPblBhZ2Uoc2Vzc2lvbklEKCksIG1fcGFn
ZUlEKSwgMCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpDbGVhclBhZ2VTcGVjaWZpY0RhdGFGb3JSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzKHNlc3Npb25JRCgpLCBtX3BhZ2VJRCksIDApOwogI2VuZGlmCiAKICAgICBtX2lzQ2xv
c2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA4YzM1NDIxYzFiNWEzYjgwOGYwODIwZGI5YTc3NThhOTQyMWZh
ZTk3Li5jYzBkNDg5MTdlMzVjMDUyZTUwYzc3M2FhZmFiOTBmMDA0Y2IzMzExIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjQgQEAKKzIwMTktMDMtMDEgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5j
b20+CisKKyAgICAgICAgUmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzOiBGdXJ0aGVyIHJlc3RyaWN0
IGNsaWVudC1zaWRlIGNvb2tpZSBwZXJzaXN0ZW5jZSBhZnRlciBjcm9zcy1zaXRlIG5hdmlnYXRp
b25zIHdpdGggbGluayBkZWNvcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTUxOTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ4MDA2NDE5
PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUt
c2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQt
bGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWRlY29yYXRpb24tc2FtZS1z
aXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdt
ZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3It
Y29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3Vy
Y2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnkt
YW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZl
dGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZy
b20tcHJldmFsZW50LXJlc291cmNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4t
anMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBl
ZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2
YWxlbnQtcmVzb3VyY2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRo
b3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBw
ZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24t
ZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1p
bi1qcy5odG1sOgorICAgICAgICAgICAgTm93IGNsZWFycyBjb29raWVzIGFmdGVyIHRoZSB0ZXN0
LgorCiAyMDE5LTAyLTI3ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkb3B0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGluIFdlYkNvcmU6OlJlc291
cmNlTG9hZFN0YXRpc3RpY3MgYW5kIFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBl
ZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlvbi1zYW1l
LXNpdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmst
ZGVjb3JhdGlvbi1zYW1lLXNpdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0OTU0NWEwMzRk
M2FmMjU5MGM5OTMzN2QyMzA1YTliZWZkYmE0MTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZv
ci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMCBAQAorQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2
YVNjcmlwdCBhZnRlciBhIHNhbWUtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBkZWNvcmF0aW9u
IGRvbid0IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIFRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGV4cGlyZSBhZnRlciBtb3Jl
IHRoYW4gODY0MzAgc2Vjb25kcy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdp
dGgtbGluay1kZWNvcmF0aW9uLXNhbWUtc2l0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1p
bi1qcy13aXRoLWxpbmstZGVjb3JhdGlvbi1zYW1lLXNpdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODJk
OTk5NDQwNmRhMGIzZDY2YmFhYTZlNWYzYjNjZGNkOGUyYjgwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZl
dGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZGVjb3JhdGlvbi1zYW1lLXNpdGUu
aHRtbApAQCAtMCwwICsxLDg1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iL2Nvb2tpZXMvcmVzb3VyY2VzL2Nvb2tpZS11dGlsaXRpZXMuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1blRlc3QoKScsIDApIj4KKzxz
Y3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIkNoZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEph
dmFTY3JpcHQgYWZ0ZXIgYSBzYW1lLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgZGVjb3JhdGlv
biBkb24ndCBnZXQgY2FwcGVkIHRvIDI0IGhvdXJzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0
cnVlOworCisgICAgZnVuY3Rpb24gdGVzdENvb2tpZXMoKSB7CisgICAgICAgIGxldCBwYXNzZWRU
ZXN0cyA9IDA7CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tUaGF0Q29va2llRG9lc0V4cGlyZUFm
dGVyKGNvb2tpZURhdGEsIG1heEFnZUluU2Vjb25kcykgeworICAgICAgICAgICAgbGV0IG5vdyA9
IG5ldyBEYXRlKCk7CisgICAgICAgICAgICBsZXQgbWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRz
ID0gbm93LmdldFRpbWUoKSArIChtYXhBZ2VJblNlY29uZHMgKiAxMDAwKTsKKworICAgICAgICAg
ICAgaWYgKG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA8IGNvb2tpZURhdGFbImV4cGlyZXMi
XSkKKyAgICAgICAgICAgICAgICArK3Bhc3NlZFRlc3RzOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBuYW1lZCAiICsgY29va2llRGF0YVsibmFt
ZSJdICsgIiBleHBpcmVzIGluIGxlc3MgdGhhbiAiICsgbWF4QWdlSW5TZWNvbmRzICsgIiBzZWNv
bmRzLiIpOworICAgICAgICB9CisKKyAgICAgICAgY29uc3Qgb25lRGF5SW5TZWNvbmRzID0gMjQg
KiA2MCAqIDYwOworICAgICAgICBjb25zdCB0d29EYXlzSW5TZWNvbmRzID0gMiAqIG9uZURheUlu
U2Vjb25kczsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDog
ImxvbmdMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b0RheXNJ
blNlY29uZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29v
a2llTWF4QWdlLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZl
dGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCB0d29EYXlzQXNFeHBpcmVzRGF0ZSA9
IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d29EYXlzSW5TZWNvbmRzKTsKKyAgICAgICAg
Y29uc3QgbG9uZ0xpdmVkQ29va2llRXhwaXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVF
eHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdvRGF5c0FzRXhwaXJlc0RhdGUgKyAi
OyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5u
YW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBw
YXRoPS8iOworCisgICAgICAgIGNvbnN0IG92ZXJPbmVEYXlJblNlY29uZHMgPSBvbmVEYXlJblNl
Y29uZHMgKyAzMDsKKyAgICAgICAgaWYgKGludGVybmFscykgeworICAgICAgICAgICAgbGV0IGNv
b2tpZXMgPSBpbnRlcm5hbHMuZ2V0Q29va2llcygpOworICAgICAgICAgICAgaWYgKCFjb29raWVz
Lmxlbmd0aCkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIp
OworICAgICAgICAgICAgZm9yIChsZXQgY29va2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAg
ICAgICBzd2l0Y2ggKGNvb2tpZS5uYW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9u
Z0xpdmVkQ29va2llTWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1Ro
YXRDb29raWVEb2VzRXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxv
bmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNr
VGhhdENvb2tpZURvZXNFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICByZXNldENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisK
KyAgICAgICAgICAgIGlmIChwYXNzZWRUZXN0cyA9PT0gMikgeworICAgICAgICAgICAgICAgIHRl
c3RQYXNzZWQoIlRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGV4cGlyZSBhZnRlciBtb3JlIHRo
YW4gIiArIG92ZXJPbmVEYXlJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2llJ3Mg
ZXhwaXJ5IGF0dHJpYnV0ZSB3YXMgYmVsb3cgdGhlIHRlc3QgdGhyZXNob2xkcy4iKTsKKyAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBpbnRlcm5hbHMgb2JqZWN0LiIp
OworCisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09yaWdpbigpIHsKKyAgICAgICAgZG9jdW1l
bnQubG9jYXRpb24uaHJlZiA9IHByZXZhbGVudFJlc291cmNlT3JpZ2luICsgIi9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxp
bmstZGVjb3JhdGlvbi1zYW1lLXNpdGUuaHRtbD9saW5rPWRlY29yYXRpb24jZnJhZ21lbnQiOwor
ICAgIH0KKworICAgIGNvbnN0IGRlc3RpbmF0aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCI7CisgICAgY29uc3QgcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gPSAiaHR0cDovLzEyNy4w
LjAuMTo4MDAwIjsKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1l
bnQubG9jYXRpb24ub3JpZ2luID09PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiAmJiBkb2N1bWVu
dC5sb2NhdGlvbi5oYXNoICE9PSAiI2ZyYWdtZW50IikgeworICAgICAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4sIHRy
dWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4pKQorICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMg
cHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhuYXZpZ2F0ZUNyb3NzT3JpZ2luKTsKKyAgICAg
ICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgfSk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICB0ZXN0Q29va2llcygpOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgt
bGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1l
LWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1mcmFnbWVudC1mcm9tLXByZXZhbGVudC1y
ZXNvdXJjZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjdiYWQwMzJjNmYyMjQ1NzNhMzM1ZDNm
NzA0MTlkY2I0YmU0M2ExNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQt
aW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDExIEBACitDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBKYXZh
U2NyaXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBmcmFnbWVudCBn
ZXQgY2FwcGVkIHRvIDI0IGhvdXJzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUg
dGhhbiA0MzIzMCBzZWNvbmRzLgorUEFTUyBUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBkb24n
dCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDg2NDMwIHNlY29uZHMuCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3It
Y29va2llLXNldC1pbi1qcy13aXRoLWxpbmstZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVzb3Vy
Y2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
YXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZy
b20tcHJldmFsZW50LXJlc291cmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGExMGI0NjA1NmRjMWJhZGU2
NjY2YWM3NDdhNDZhMDA5ZWU5OWUwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tp
ZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0
bWwKQEAgLTAsMCArMSwxMDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAg
ICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNj
cmlwdD4KKyAgICBkZXNjcmlwdGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2
YVNjcmlwdCBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgZnJhZ21lbnQg
Z2V0IGNhcHBlZCB0byAyNCBob3Vycy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
ICAgIGZ1bmN0aW9uIHRlc3RDb29raWVzKCkgeworICAgICAgICBsZXQgcGFzc2VkVGVzdHMgPSAw
OworICAgICAgICBmdW5jdGlvbiBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29v
a2llRGF0YSwgbWF4QWdlSW5TZWNvbmRzKSB7CisgICAgICAgICAgICBsZXQgbm93ID0gbmV3IERh
dGUoKTsKKyAgICAgICAgICAgIGxldCBtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPSBub3cu
Z2V0VGltZSgpICsgKG1heEFnZUluU2Vjb25kcyAqIDEwMDApOworCisgICAgICAgICAgICBpZiAo
bWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID4gY29va2llRGF0YVsiZXhwaXJlcyJdKQorICAg
ICAgICAgICAgICAgICsrcGFzc2VkVGVzdHM7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiQ29va2llIG5hbWVkICIgKyBjb29raWVEYXRhWyJuYW1lIl0gKyAi
IGV4cGlyZXMgaW4gbW9yZSB0aGFuICIgKyBtYXhBZ2VJblNlY29uZHMgKyAiIHNlY29uZHMuIik7
CisgICAgICAgIH0KKworICAgICAgICBjb25zdCB0d2VsdmVIb3Vyc0luU2Vjb25kcyA9IDEyICog
NjAgKiA2MDsKKyAgICAgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6
ICJzaG9ydExpdmVkQ29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdlbHZl
SG91cnNJblNlY29uZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2hvcnRM
aXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBzaG9ydExpdmVkQ29va2llTWF4
QWdlLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IHR3ZWx2ZUhvdXJzQXNF
eHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d2VsdmVIb3Vyc0luU2Vj
b25kcyk7CisgICAgICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDog
InNob3J0TGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdlbHZl
SG91cnNBc0V4cGlyZXNEYXRlICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHNo
b3J0TGl2ZWRDb29raWVFeHBpcmVzLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29r
aWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IG9uZURheUlu
U2Vjb25kcyA9IDIgKiB0d2VsdmVIb3Vyc0luU2Vjb25kczsKKyAgICAgICAgY29uc3QgdHdvRGF5
c0luU2Vjb25kcyA9IDIgKiBvbmVEYXlJblNlY29uZHM7CisgICAgICAgIGNvbnN0IGxvbmdMaXZl
ZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZldGlt
ZSA6ICJNYXgtQWdlPSIgKyB0d29EYXlzSW5TZWNvbmRzICsgIjsiIH07CisgICAgICAgIGRvY3Vt
ZW50LmNvb2tpZSA9IGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBs
b25nTGl2ZWRDb29raWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29u
c3QgdHdvRGF5c0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdv
RGF5c0luU2Vjb25kcyk7CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMgPSB7
IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llRXhwaXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiAr
IHR3b0RheXNBc0V4cGlyZXNEYXRlICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9
IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29v
a2llRXhwaXJlcy5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCBvdmVyVHdl
bHZlSG91cnNJblNlY29uZHMgPSB0d2VsdmVIb3Vyc0luU2Vjb25kcyArIDMwOworICAgICAgICBj
b25zdCBvdmVyT25lRGF5SW5TZWNvbmRzID0gb25lRGF5SW5TZWNvbmRzICsgMzA7CisgICAgICAg
IGlmIChpbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxzLmdl
dENvb2tpZXMoKTsKKyAgICAgICAgICAgIGlmICghY29va2llcy5sZW5ndGgpCisgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiTm8gY29va2llcyBmb3VuZC4iKTsKKyAgICAgICAgICAgIGZvciAo
bGV0IGNvb2tpZSBvZiBjb29raWVzKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjb29raWUu
bmFtZSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIHNob3J0TGl2ZWRDb29raWVNYXhBZ2Uu
bmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBp
cmVBZnRlcihjb29raWUsIG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBzaG9ydExpdmVkQ29v
a2llRXhwaXJlcy5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2ll
RG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxv
bmdMaXZlZENvb2tpZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tU
aGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7
CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBj
aGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNv
bmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVzZXRDb29raWVzRm9yQ3VycmVudE9yaWdp
bigpOworCisgICAgICAgICAgICBpZiAocGFzc2VkVGVzdHMgPT09IDQpIHsKKyAgICAgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJl
IGFmdGVyIG1vcmUgdGhhbiAiICsgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgIiBzZWNvbmRz
LiIpOworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gbG9uZy1saXZlZCBjb29r
aWVzIGRvbid0IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJPbmVEYXlJblNlY29uZHMg
KyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0dHJpYnV0ZSB3YXMgYmV5b25k
IHRoZSB0ZXN0IHRocmVzaG9sZHMuIik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVz
dEZhaWxlZCgiTm8gaW50ZXJuYWxzIG9iamVjdC4iKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG5hdmlnYXRl
Q3Jvc3NPcmlnaW4oKSB7CisgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBkZXN0aW5h
dGlvbk9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9y
LWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291
cmNlLmh0bWwjbGluaz1mcmFnbWVudCI7CisgICAgfQorCisgICAgY29uc3QgZGVzdGluYXRpb25P
cmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCBwcmV2YWxlbnRSZXNv
dXJjZU9yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGZ1bmN0aW9uIHJ1blRl
c3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHByZXZhbGVu
dFJlc291cmNlT3JpZ2luKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3Vy
Y2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNv
b2tpZUJsb2NraW5nKG5hdmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0pOwor
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RDb29r
aWVzKCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9j
YXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWFuZC1m
cmFnbWVudC1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1j
b29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxl
bnQtcmVzb3VyY2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlOThkYzhmOTBlMmRhMWIxOTgz
YjQ4ZGMxODZlYWQ3YTY5NjVkN2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUt
c2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQtcmVz
b3VyY2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK0NoZWNrIHRoYXQgY29va2llcyBj
cmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0aCBs
aW5rIHF1ZXJ5IGFuZCBmcmFnbWVudCBnZXQgY2FwcGVkIHRvIDI0IGhvdXJzLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMg
ZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA0MzIzMCBzZWNvbmRzLgorUEFTUyBUaGUgdHdv
IGxvbmctbGl2ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDg2NDMwIHNl
Y29uZHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnkt
YW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29r
aWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJvbS1wcmV2YWxlbnQt
cmVzb3VyY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZjJiZmFmZTYyOWNjYzQ5NDJhMDQzZjc5N2JlMGMz
YWNkNmZjNDkyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13
aXRoLWxpbmstcXVlcnktYW5kLWZyYWdtZW50LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWwK
QEAgLTAsMCArMSwxMDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlw
dD4KKyAgICBkZXNjcmlwdGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNj
cmlwdCBhZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgcXVlcnkgYW5kIGZy
YWdtZW50IGdldCBjYXBwZWQgdG8gMjQgaG91cnMuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRy
dWU7CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29va2llcygpIHsKKyAgICAgICAgbGV0IHBhc3NlZFRl
c3RzID0gMDsKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFm
dGVyKGNvb2tpZURhdGEsIG1heEFnZUluU2Vjb25kcykgeworICAgICAgICAgICAgbGV0IG5vdyA9
IG5ldyBEYXRlKCk7CisgICAgICAgICAgICBsZXQgbWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRz
ID0gbm93LmdldFRpbWUoKSArIChtYXhBZ2VJblNlY29uZHMgKiAxMDAwKTsKKworICAgICAgICAg
ICAgaWYgKG1heEV4cGlyeURhdGVJbk1pbGxpc2Vjb25kcyA+IGNvb2tpZURhdGFbImV4cGlyZXMi
XSkKKyAgICAgICAgICAgICAgICArK3Bhc3NlZFRlc3RzOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvb2tpZSBuYW1lZCAiICsgY29va2llRGF0YVsibmFt
ZSJdICsgIiBleHBpcmVzIGluIG1vcmUgdGhhbiAiICsgbWF4QWdlSW5TZWNvbmRzICsgIiBzZWNv
bmRzLiIpOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgdHdlbHZlSG91cnNJblNlY29uZHMg
PSAxMiAqIDYwICogNjA7CisgICAgICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UgPSB7
IG5hbWUgOiAic2hvcnRMaXZlZENvb2tpZU1heEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiAr
IHR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9
IHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZSArICI9Zm9vYmFyOyAiICsgc2hvcnRMaXZlZENv
b2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCB0d2VsdmVI
b3Vyc0FzRXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdlbHZlSG91
cnNJblNlY29uZHMpOworICAgICAgICBjb25zdCBzaG9ydExpdmVkQ29va2llRXhwaXJlcyA9IHsg
bmFtZSA6ICJzaG9ydExpdmVkQ29va2llRXhwaXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiAr
IHR3ZWx2ZUhvdXJzQXNFeHBpcmVzRGF0ZSArICI7IiB9OworICAgICAgICBkb2N1bWVudC5jb29r
aWUgPSBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIgKyBzaG9ydExp
dmVkQ29va2llRXhwaXJlcy5saWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCBv
bmVEYXlJblNlY29uZHMgPSAyICogdHdlbHZlSG91cnNJblNlY29uZHM7CisgICAgICAgIGNvbnN0
IHR3b0RheXNJblNlY29uZHMgPSAyICogb25lRGF5SW5TZWNvbmRzOworICAgICAgICBjb25zdCBs
b25nTGl2ZWRDb29raWVNYXhBZ2UgPSB7IG5hbWUgOiAibG9uZ0xpdmVkQ29va2llTWF4QWdlIiwg
bGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdvRGF5c0luU2Vjb25kcyArICI7IiB9OworICAgICAg
ICBkb2N1bWVudC5jb29raWUgPSBsb25nTGl2ZWRDb29raWVNYXhBZ2UubmFtZSArICI9Zm9vYmFy
OyAiICsgbG9uZ0xpdmVkQ29va2llTWF4QWdlLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAg
ICAgIGNvbnN0IHR3b0RheXNBc0V4cGlyZXNEYXRlID0gY3JlYXRlRXhwaXJlc0RhdGVGcm9tTWF4
QWdlKHR3b0RheXNJblNlY29uZHMpOworICAgICAgICBjb25zdCBsb25nTGl2ZWRDb29raWVFeHBp
cmVzID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZUV4cGlyZXMiLCBsaWZldGltZSA6ICJFeHBp
cmVzPSIgKyB0d29EYXlzQXNFeHBpcmVzRGF0ZSArICI7IiB9OworICAgICAgICBkb2N1bWVudC5j
b29raWUgPSBsb25nTGl2ZWRDb29raWVFeHBpcmVzLm5hbWUgKyAiPWZvb2JhcjsgIiArIGxvbmdM
aXZlZENvb2tpZUV4cGlyZXMubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3Qg
b3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzID0gdHdlbHZlSG91cnNJblNlY29uZHMgKyAzMDsKKyAg
ICAgICAgY29uc3Qgb3Zlck9uZURheUluU2Vjb25kcyA9IG9uZURheUluU2Vjb25kcyArIDMwOwor
ICAgICAgICBpZiAoaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBsZXQgY29va2llcyA9IGludGVy
bmFscy5nZXRDb29raWVzKCk7CisgICAgICAgICAgICBpZiAoIWNvb2tpZXMubGVuZ3RoKQorICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGNvb2tpZXMgZm91bmQuIik7CisgICAgICAgICAg
ICBmb3IgKGxldCBjb29raWUgb2YgY29va2llcykgeworICAgICAgICAgICAgICAgIHN3aXRjaCAo
Y29va2llLm5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBzaG9ydExpdmVkQ29va2ll
TWF4QWdlLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2Vz
Tm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyVHdlbHZlSG91cnNJblNlY29uZHMpOworICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2Ugc2hvcnRM
aXZlZENvb2tpZUV4cGlyZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhh
dENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25k
cyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg
Y2FzZSBsb25nTGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAg
IGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNl
Y29uZHMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
ICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lOgorICAgICAgICAgICAgICAgICAg
ICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURh
eUluU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJlc2V0Q29va2llc0ZvckN1cnJl
bnRPcmlnaW4oKTsKKworICAgICAgICAgICAgaWYgKHBhc3NlZFRlc3RzID09PSA0KSB7CisgICAg
ICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHR3byBzaG9ydC1saXZlZCBjb29raWVzIGRvbid0
IGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyArICIg
c2Vjb25kcy4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdvIGxvbmctbGl2
ZWQgY29va2llcyBkb24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuICIgKyBvdmVyT25lRGF5SW5T
ZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiQXQgbGVhc3Qgb25lIGNvb2tpZSdzIGV4cGlyeSBhdHRyaWJ1dGUgd2Fz
IGJleW9uZCB0aGUgdGVzdCB0aHJlc2hvbGRzLiIpOworICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIk5vIGludGVybmFscyBvYmplY3QuIik7CisKKyAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBu
YXZpZ2F0ZUNyb3NzT3JpZ2luKCkgeworICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0g
ZGVzdGluYXRpb25PcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0
aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1hbmQtZnJhZ21lbnQtZnJv
bS1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbD9saW5rPXF1ZXJ5I2xpbms9ZnJhZ21lbnQiOworICAg
IH0KKworICAgIGNvbnN0IGRlc3RpbmF0aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MCI7CisgICAgY29uc3QgcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAu
MTo4MDAwIjsKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQu
bG9jYXRpb24ub3JpZ2luID09PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikgeworICAgICAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3Vy
Y2VPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VP
cmlnaW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90
IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhuYXZpZ2F0ZUNyb3NzT3Jp
Z2luKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgfSk7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICB0ZXN0Q29va2llcygpOworICAgICAgICB9CisgICAgfQorPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUtc2V0
LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVk
LWxpZmV0aW1lLWZvci1jb29raWUtc2V0LWluLWpzLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZh
bGVudC1yZXNvdXJjZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQ1ZGQxNmMyZWUwMTA4MGUz
YzFmMWI0MDIwNmI2NmE4MDJlMGFjMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tp
ZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDExIEBACitDaGVjayB0aGF0IGNvb2tpZXMgY3JlYXRlZCBieSBK
YXZhU2NyaXB0IGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGggbGluayBxdWVyeSBn
ZXQgY2FwcGVkIHRvIDI0IGhvdXJzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUg
dGhhbiA0MzIzMCBzZWNvbmRzLgorUEFTUyBUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBkb24n
dCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuIDg2NDMwIHNlY29uZHMuCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3It
Y29va2llLXNldC1pbi1qcy13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2Uu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBw
ZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJl
dmFsZW50LXJlc291cmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWVkYTZkYzBjODM0MDY1MDgxODBkYjA0
MGE3NWE4YzQ2MjUxYTFmYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQt
aW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWwKQEAgLTAs
MCArMSwxMDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAg
ICBkZXNjcmlwdGlvbigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBh
ZnRlciBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB3aXRoIGxpbmsgcXVlcnkgZ2V0IGNhcHBlZCB0
byAyNCBob3Vycy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGZ1bmN0aW9u
IHRlc3RDb29raWVzKCkgeworICAgICAgICBsZXQgcGFzc2VkVGVzdHMgPSAwOworICAgICAgICBm
dW5jdGlvbiBjaGVja1RoYXRDb29raWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llRGF0YSwgbWF4
QWdlSW5TZWNvbmRzKSB7CisgICAgICAgICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTsKKyAgICAg
ICAgICAgIGxldCBtYXhFeHBpcnlEYXRlSW5NaWxsaXNlY29uZHMgPSBub3cuZ2V0VGltZSgpICsg
KG1heEFnZUluU2Vjb25kcyAqIDEwMDApOworCisgICAgICAgICAgICBpZiAobWF4RXhwaXJ5RGF0
ZUluTWlsbGlzZWNvbmRzID4gY29va2llRGF0YVsiZXhwaXJlcyJdKQorICAgICAgICAgICAgICAg
ICsrcGFzc2VkVGVzdHM7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiQ29va2llIG5hbWVkICIgKyBjb29raWVEYXRhWyJuYW1lIl0gKyAiIGV4cGlyZXMgaW4g
bW9yZSB0aGFuICIgKyBtYXhBZ2VJblNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgIH0K
KworICAgICAgICBjb25zdCB0d2VsdmVIb3Vyc0luU2Vjb25kcyA9IDEyICogNjAgKiA2MDsKKyAg
ICAgICAgY29uc3Qgc2hvcnRMaXZlZENvb2tpZU1heEFnZSA9IHsgbmFtZSA6ICJzaG9ydExpdmVk
Q29va2llTWF4QWdlIiwgbGlmZXRpbWUgOiAiTWF4LUFnZT0iICsgdHdlbHZlSG91cnNJblNlY29u
ZHMgKyAiOyIgfTsKKyAgICAgICAgZG9jdW1lbnQuY29va2llID0gc2hvcnRMaXZlZENvb2tpZU1h
eEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBzaG9ydExpdmVkQ29va2llTWF4QWdlLmxpZmV0aW1l
ICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IHR3ZWx2ZUhvdXJzQXNFeHBpcmVzRGF0ZSA9
IGNyZWF0ZUV4cGlyZXNEYXRlRnJvbU1heEFnZSh0d2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAg
ICAgIGNvbnN0IHNob3J0TGl2ZWRDb29raWVFeHBpcmVzID0geyBuYW1lIDogInNob3J0TGl2ZWRD
b29raWVFeHBpcmVzIiwgbGlmZXRpbWUgOiAiRXhwaXJlcz0iICsgdHdlbHZlSG91cnNBc0V4cGly
ZXNEYXRlICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHNob3J0TGl2ZWRDb29r
aWVFeHBpcmVzLm5hbWUgKyAiPWZvb2JhcjsgIiArIHNob3J0TGl2ZWRDb29raWVFeHBpcmVzLmxp
ZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAgIGNvbnN0IG9uZURheUluU2Vjb25kcyA9IDIg
KiB0d2VsdmVIb3Vyc0luU2Vjb25kczsKKyAgICAgICAgY29uc3QgdHdvRGF5c0luU2Vjb25kcyA9
IDIgKiBvbmVEYXlJblNlY29uZHM7CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZU1heEFn
ZSA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVNYXhBZ2UiLCBsaWZldGltZSA6ICJNYXgtQWdl
PSIgKyB0d29EYXlzSW5TZWNvbmRzICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9
IGxvbmdMaXZlZENvb2tpZU1heEFnZS5uYW1lICsgIj1mb29iYXI7ICIgKyBsb25nTGl2ZWRDb29r
aWVNYXhBZ2UubGlmZXRpbWUgKyAiIHBhdGg9LyI7CisKKyAgICAgICAgY29uc3QgdHdvRGF5c0Fz
RXhwaXJlc0RhdGUgPSBjcmVhdGVFeHBpcmVzRGF0ZUZyb21NYXhBZ2UodHdvRGF5c0luU2Vjb25k
cyk7CisgICAgICAgIGNvbnN0IGxvbmdMaXZlZENvb2tpZUV4cGlyZXMgPSB7IG5hbWUgOiAibG9u
Z0xpdmVkQ29va2llRXhwaXJlcyIsIGxpZmV0aW1lIDogIkV4cGlyZXM9IiArIHR3b0RheXNBc0V4
cGlyZXNEYXRlICsgIjsiIH07CisgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGxvbmdMaXZlZENv
b2tpZUV4cGlyZXMubmFtZSArICI9Zm9vYmFyOyAiICsgbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5s
aWZldGltZSArICIgcGF0aD0vIjsKKworICAgICAgICBjb25zdCBvdmVyVHdlbHZlSG91cnNJblNl
Y29uZHMgPSB0d2VsdmVIb3Vyc0luU2Vjb25kcyArIDMwOworICAgICAgICBjb25zdCBvdmVyT25l
RGF5SW5TZWNvbmRzID0gb25lRGF5SW5TZWNvbmRzICsgMzA7CisgICAgICAgIGlmIChpbnRlcm5h
bHMpIHsKKyAgICAgICAgICAgIGxldCBjb29raWVzID0gaW50ZXJuYWxzLmdldENvb2tpZXMoKTsK
KyAgICAgICAgICAgIGlmICghY29va2llcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiTm8gY29va2llcyBmb3VuZC4iKTsKKyAgICAgICAgICAgIGZvciAobGV0IGNvb2tpZSBv
ZiBjb29raWVzKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjb29raWUubmFtZSkgeworICAg
ICAgICAgICAgICAgICAgICBjYXNlIHNob3J0TGl2ZWRDb29raWVNYXhBZ2UubmFtZToKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNOb3RFeHBpcmVBZnRlcihjb29r
aWUsIG92ZXJUd2VsdmVIb3Vyc0luU2Vjb25kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBzaG9ydExpdmVkQ29va2llRXhwaXJlcy5u
YW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9lc05vdEV4cGly
ZUFmdGVyKGNvb2tpZSwgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tp
ZU1heEFnZS5uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUaGF0Q29va2llRG9l
c05vdEV4cGlyZUFmdGVyKGNvb2tpZSwgb3Zlck9uZURheUluU2Vjb25kcyk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBsb25nTGl2ZWRD
b29raWVFeHBpcmVzLm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29r
aWVEb2VzTm90RXhwaXJlQWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgcmVzZXRDb29raWVzRm9yQ3VycmVudE9yaWdpbigpOworCisgICAg
ICAgICAgICBpZiAocGFzc2VkVGVzdHMgPT09IDQpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhwaXJlIGFmdGVyIG1vcmUg
dGhhbiAiICsgb3ZlclR3ZWx2ZUhvdXJzSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAg
ICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28gbG9uZy1saXZlZCBjb29raWVzIGRvbid0IGV4
cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJPbmVEYXlJblNlY29uZHMgKyAiIHNlY29uZHMu
Iik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJBdCBs
ZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0dHJpYnV0ZSB3YXMgYmV5b25kIHRoZSB0ZXN0IHRo
cmVzaG9sZHMuIik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8g
aW50ZXJuYWxzIG9iamVjdC4iKTsKKworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBm
aW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG5hdmlnYXRlQ3Jvc3NPcmlnaW4o
KSB7CisgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlvbk9yaWdpbiAr
ICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQt
aW4tanMtd2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWw/bGluaz1x
dWVyeSI7CisgICAgfQorCisgICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiA9ICJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlm
IChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHByZXZhbGVudFJlc291cmNlT3JpZ2luKSB7
CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2
YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxl
bnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJI
b3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKG5hdmln
YXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RDb29raWVzKCk7CisgICAgICAgIH0K
KyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9y
LWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQt
cmVzb3VyY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0
LWxpbmstZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uM2JmNjQ5YTU3ZTEzNjRjMDYwNjQ1Njk0MTMwNDU0MTEzNzQ1ODMwMQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29y
YXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAg
QEAKK0NoZWNrIHRoYXQgY29va2llcyBjcmVhdGVkIGJ5IEphdmFTY3JpcHQgYWZ0ZXIgYSBjcm9z
cy1zaXRlIG5hdmlnYXRpb24gd2l0aG91dCBsaW5rIGRlY29yYXRpb24gZG9uJ3QgZ2V0IGNhcHBl
ZCB0byAyNCBob3Vycy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhl
IHR3byBsb25nLWxpdmVkIGNvb2tpZXMgZXhwaXJlIGFmdGVyIG1vcmUgdGhhbiA4NjQzMCBzZWNv
bmRzLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMtd2l0aG91dC1saW5rLWRlY29y
YXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQtbGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQt
aW4tanMtd2l0aG91dC1saW5rLWRlY29yYXRpb24tZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hN2I1NzkyNjJjMDFkNmI2YTM4MDEzMzRhOGYxMjYwYjYxOTIwOWNhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmst
ZGVjb3JhdGlvbi1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sCkBAIC0wLDAgKzEsODUgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvY29v
a2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlv
bigiQ2hlY2sgdGhhdCBjb29raWVzIGNyZWF0ZWQgYnkgSmF2YVNjcmlwdCBhZnRlciBhIGNyb3Nz
LXNpdGUgbmF2aWdhdGlvbiB3aXRob3V0IGxpbmsgZGVjb3JhdGlvbiBkb24ndCBnZXQgY2FwcGVk
IHRvIDI0IGhvdXJzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgZnVuY3Rp
b24gdGVzdENvb2tpZXMoKSB7CisgICAgICAgIGxldCBwYXNzZWRUZXN0cyA9IDA7CisKKyAgICAg
ICAgZnVuY3Rpb24gY2hlY2tUaGF0Q29va2llRG9lc0V4cGlyZUFmdGVyKGNvb2tpZURhdGEsIG1h
eEFnZUluU2Vjb25kcykgeworICAgICAgICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7CisgICAg
ICAgICAgICBsZXQgbWF4RXhwaXJ5RGF0ZUluTWlsbGlzZWNvbmRzID0gbm93LmdldFRpbWUoKSAr
IChtYXhBZ2VJblNlY29uZHMgKiAxMDAwKTsKKworICAgICAgICAgICAgaWYgKG1heEV4cGlyeURh
dGVJbk1pbGxpc2Vjb25kcyA8IGNvb2tpZURhdGFbImV4cGlyZXMiXSkKKyAgICAgICAgICAgICAg
ICArK3Bhc3NlZFRlc3RzOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkNvb2tpZSBuYW1lZCAiICsgY29va2llRGF0YVsibmFtZSJdICsgIiBleHBpcmVzIGlu
IGxlc3MgdGhhbiAiICsgbWF4QWdlSW5TZWNvbmRzICsgIiBzZWNvbmRzLiIpOworICAgICAgICB9
CisKKyAgICAgICAgY29uc3Qgb25lRGF5SW5TZWNvbmRzID0gMjQgKiA2MCAqIDYwOworICAgICAg
ICBjb25zdCB0d29EYXlzSW5TZWNvbmRzID0gMiAqIG9uZURheUluU2Vjb25kczsKKyAgICAgICAg
Y29uc3QgbG9uZ0xpdmVkQ29va2llTWF4QWdlID0geyBuYW1lIDogImxvbmdMaXZlZENvb2tpZU1h
eEFnZSIsIGxpZmV0aW1lIDogIk1heC1BZ2U9IiArIHR3b0RheXNJblNlY29uZHMgKyAiOyIgfTsK
KyAgICAgICAgZG9jdW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llTWF4QWdlLm5hbWUgKyAi
PWZvb2JhcjsgIiArIGxvbmdMaXZlZENvb2tpZU1heEFnZS5saWZldGltZSArICIgcGF0aD0vIjsK
KworICAgICAgICBjb25zdCB0d29EYXlzQXNFeHBpcmVzRGF0ZSA9IGNyZWF0ZUV4cGlyZXNEYXRl
RnJvbU1heEFnZSh0d29EYXlzSW5TZWNvbmRzKTsKKyAgICAgICAgY29uc3QgbG9uZ0xpdmVkQ29v
a2llRXhwaXJlcyA9IHsgbmFtZSA6ICJsb25nTGl2ZWRDb29raWVFeHBpcmVzIiwgbGlmZXRpbWUg
OiAiRXhwaXJlcz0iICsgdHdvRGF5c0FzRXhwaXJlc0RhdGUgKyAiOyIgfTsKKyAgICAgICAgZG9j
dW1lbnQuY29va2llID0gbG9uZ0xpdmVkQ29va2llRXhwaXJlcy5uYW1lICsgIj1mb29iYXI7ICIg
KyBsb25nTGl2ZWRDb29raWVFeHBpcmVzLmxpZmV0aW1lICsgIiBwYXRoPS8iOworCisgICAgICAg
IGNvbnN0IG92ZXJPbmVEYXlJblNlY29uZHMgPSBvbmVEYXlJblNlY29uZHMgKyAzMDsKKyAgICAg
ICAgaWYgKGludGVybmFscykgeworICAgICAgICAgICAgbGV0IGNvb2tpZXMgPSBpbnRlcm5hbHMu
Z2V0Q29va2llcygpOworICAgICAgICAgICAgaWYgKCFjb29raWVzLmxlbmd0aCkKKyAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJObyBjb29raWVzIGZvdW5kLiIpOworICAgICAgICAgICAgZm9y
IChsZXQgY29va2llIG9mIGNvb2tpZXMpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvb2tp
ZS5uYW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgbG9uZ0xpdmVkQ29va2llTWF4QWdl
Lm5hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1RoYXRDb29raWVEb2VzRXhwaXJl
QWZ0ZXIoY29va2llLCBvdmVyT25lRGF5SW5TZWNvbmRzKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIGxvbmdMaXZlZENvb2tpZUV4cGly
ZXMubmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVGhhdENvb2tpZURvZXNFeHBp
cmVBZnRlcihjb29raWUsIG92ZXJPbmVEYXlJblNlY29uZHMpOworICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICByZXNldENvb2tpZXNGb3JDdXJyZW50T3JpZ2luKCk7CisKKyAgICAgICAgICAgIGlmIChw
YXNzZWRUZXN0cyA9PT0gMikgeworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSB0d28g
bG9uZy1saXZlZCBjb29raWVzIGV4cGlyZSBhZnRlciBtb3JlIHRoYW4gIiArIG92ZXJPbmVEYXlJ
blNlY29uZHMgKyAiIHNlY29uZHMuIik7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJBdCBsZWFzdCBvbmUgY29va2llJ3MgZXhwaXJ5IGF0dHJpYnV0ZSB3
YXMgYmVsb3cgdGhlIHRlc3QgdGhyZXNob2xkcy4iKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJObyBpbnRlcm5hbHMgb2JqZWN0LiIpOworCisgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
bmF2aWdhdGVDcm9zc09yaWdpbigpIHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9
IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZl
dGltZS1mb3ItY29va2llLXNldC1pbi1qcy13aXRob3V0LWxpbmstZGVjb3JhdGlvbi1mcm9tLXBy
ZXZhbGVudC1yZXNvdXJjZS5odG1sIjsKKyAgICB9CisKKyAgICBjb25zdCBkZXN0aW5hdGlvbk9y
aWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHByZXZhbGVudFJlc291
cmNlT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rpb24gcnVuVGVz
dCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gcHJldmFsZW50
UmVzb3VyY2VPcmlnaW4pIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVu
Y3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKHByZXZhbGVudFJlc291cmNlT3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJj
ZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29v
a2llQmxvY2tpbmcobmF2aWdhdGVDcm9zc09yaWdpbik7CisgICAgICAgICAgICAgICAgfSk7CisK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdENvb2tp
ZXMoKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nh
cHBlZC1saWZldGltZS1mb3ItY29va2llLXNldC1pbi1qcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcHBlZC1saWZldGltZS1mb3ItY29va2ll
LXNldC1pbi1qcy5odG1sCmluZGV4IDQ3NDc1NTI2NDRlMDJhMjZlMzgyYTNmMzI3MDM5NDc4MzBl
Nzk2NjUuLjAwY2IxNzU4NTNjY2UzZDNmODdlNWVlNDg3MTdjNjEzN2Y0ZjBkYzYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jYXBwZWQt
bGlmZXRpbWUtZm9yLWNvb2tpZS1zZXQtaW4tanMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2FwcGVkLWxpZmV0aW1lLWZvci1jb29raWUt
c2V0LWluLWpzLmh0bWwKQEAgLTYyLDYgKzYyLDkgQEAKICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKworICAgICAgICByZXNldENvb2tpZXNGb3JD
dXJyZW50T3JpZ2luKCk7CisKICAgICAgICAgaWYgKHBhc3NlZFRlc3RzID09PSA0KSB7CiAgICAg
ICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdvIHNob3J0LWxpdmVkIGNvb2tpZXMgZG9uJ3QgZXhw
aXJlIGFmdGVyIG1vcmUgdGhhbiAiICsgb3ZlclR3b0RheXNJblNlY29uZHMgKyAiIHNlY29uZHMu
Iik7CiAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgdHdvIGxvbmctbGl2ZWQgY29va2llcyBk
b24ndCBleHBpcmUgYWZ0ZXIgbW9yZSB0aGFuICIgKyBvdmVyT25lV2Vla0luU2Vjb25kcyArICIg
c2Vjb25kcy4iKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>