<?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>212191</bug_id>
          
          <creation_ts>2020-05-21 00:35:07 -0700</creation_ts>
          <short_desc>Fix issues of the Picture-in-Picture API under stress tests</short_desc>
          <delta_ts>2020-05-21 17:20:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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="Peng Liu">peng.liu6</reporter>
          <assigned_to name="Peng Liu">peng.liu6</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1654824</commentid>
    <comment_count>0</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-05-21 00:35:07 -0700</bug_when>
    <thetext>Fix issues of the Picture-in-Picture API under stress test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654825</commentid>
    <comment_count>1</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-05-21 00:37:09 -0700</bug_when>
    <thetext>Also, we need to refactor the layout tests for the Picture-in-Picture API with the Mock VideoPresentation Mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654829</commentid>
    <comment_count>2</comment_count>
      <attachid>399941</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-05-21 01:04:24 -0700</bug_when>
    <thetext>Created attachment 399941
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654830</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-21 01:05:01 -0700</bug_when>
    <thetext>&lt;rdar://problem/63483308&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654970</commentid>
    <comment_count>4</comment_count>
      <attachid>399941</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-05-21 10:01:30 -0700</bug_when>
    <thetext>Comment on attachment 399941
Patch

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

&gt; Source/WebCore/html/HTMLVideoElement.cpp:458
&gt; +static inline HTMLVideoElement::VideoPresentationMode toPresentationMode(HTMLMediaElementEnums::VideoFullscreenMode mode)
&gt; +{
&gt; +    if (mode == HTMLMediaElementEnums::VideoFullscreenModeStandard)
&gt; +        return HTMLVideoElement::VideoPresentationMode::Fullscreen;
&gt; +
&gt; +    if (mode &amp; HTMLMediaElementEnums::VideoFullscreenModePictureInPicture)
&gt; +        return HTMLVideoElement::VideoPresentationMode::PictureInPicture;
&gt; +
&gt; +    if (mode == HTMLMediaElementEnums::VideoFullscreenModeNone)
&gt; +        return HTMLVideoElement::VideoPresentationMode::Inline;
&gt; +
&gt; +    ASSERT_NOT_REACHED();
&gt; +    return HTMLVideoElement::VideoPresentationMode::Inline;
&gt; +}

Do we need both enums? VideoFullscreenMode is a bitfield, but it doesn&apos;t look like it needs to be so it would be nice to just use VideoPresentationMode if possible. 

If that works, it is likely to be a big change so another patch is fine.

&gt; Source/WebCore/html/HTMLVideoElement.cpp:472
&gt; +#if ENABLE(PICTURE_IN_PICTURE_API)

Do we still need ENABLE_PICTURE_IN_PICTURE_API?

&gt; Source/WebCore/html/HTMLVideoElement.cpp:474
&gt; +                m_exitingPictureInPicture = true;

Since you can&apos;t be entering and exiting PiP at the same time (I hope!), can you replace m_enteringPictureInPicture and m_exitingPictureInPicture with a single enum?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655074</commentid>
    <comment_count>5</comment_count>
      <attachid>399941</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-05-21 14:16:53 -0700</bug_when>
    <thetext>Comment on attachment 399941
Patch

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

&gt;&gt; Source/WebCore/html/HTMLVideoElement.cpp:458
&gt;&gt; +}
&gt; 
&gt; Do we need both enums? VideoFullscreenMode is a bitfield, but it doesn&apos;t look like it needs to be so it would be nice to just use VideoPresentationMode if possible. 
&gt; 
&gt; If that works, it is likely to be a big change so another patch is fine.

Filed a bug webkit.org/b/212229 for it.

&gt;&gt; Source/WebCore/html/HTMLVideoElement.cpp:472
&gt;&gt; +#if ENABLE(PICTURE_IN_PICTURE_API)
&gt; 
&gt; Do we still need ENABLE_PICTURE_IN_PICTURE_API?

No, the change is for the Picture-in-Picture feature in general, not only for the API. So I will remove it.

&gt;&gt; Source/WebCore/html/HTMLVideoElement.cpp:474
&gt;&gt; +                m_exitingPictureInPicture = true;
&gt; 
&gt; Since you can&apos;t be entering and exiting PiP at the same time (I hope!), can you replace m_enteringPictureInPicture and m_exitingPictureInPicture with a single enum?

Make sense! Will fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655126</commentid>
    <comment_count>6</comment_count>
      <attachid>399991</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-05-21 16:02:46 -0700</bug_when>
    <thetext>Created attachment 399991
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655165</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-21 17:20:36 -0700</bug_when>
    <thetext>Committed r262038: &lt;https://trac.webkit.org/changeset/262038&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 399991.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399941</attachid>
            <date>2020-05-21 01:04:24 -0700</date>
            <delta_ts>2020-05-21 10:01:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212191-20200521010424.patch</filename>
            <type>text/plain</type>
            <size>43088</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxODg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFmNDhlYjcxYmE0Mzc2
YzU1Mjc4MGE3ZjBjMGFlZDgyOGVjODBlNS4uM2QyMjcxMTYxYTMyZjNhYjQzYzAyMzY4OWZiNWY4
OGM4YjhiYmNiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIwLTA1LTIxICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IGlzc3VlcyBvZiB0aGUg
UGljdHVyZS1pbi1QaWN0dXJlIEFQSSB1bmRlciBzdHJlc3MgdGVzdHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjE5MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBjdXJyZW50IGltcGxlbWVudGF0
aW9uIG9mIHRoZSBQaWN0dXJlLWluLVBpY3R1cmUgQVBJIGlzIG5vdCByb2J1c3QgdW5kZXIgc3Ry
ZXNzIHRlc3RzLgorICAgICAgICBDaGFuZ2luZyB0aGUgdmlkZW8gcHJlc2VudGF0aW9uIG1vZGUg
b2YgYSB2aWRlbyBlbGVtZW50IGJldHdlZW4gaW5saW5lIGFuZCBwaWN0dXJlLWluLXBpY3R1cmUK
KyAgICAgICAgY29udGludW91c2x5IG1heSBjb3JydXB0IHRoZSBpbnRlcm5hbCBzdGF0ZXMgb2Yg
dGhlIHZpZGVvIGVsZW1lbnQuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZWZhY3RvcnMgdGhlIGFw
cHJvYWNoIHRvIHRyYWNraW5nIHRoZSBwcm9ncmVzcyBvZiB2aWRlbyBwcmVzZW50YXRpb24gbW9k
ZSBjaGFuZ2VzCisgICAgICAgIGFuZCBtYWtlIHN1cmUgbm8gbmV3IHJlcXVlc3RQaWN0dXJlSW5Q
aWN0dXJlKCkgb3IgZXhpdFBpY3R1cmVJblBpY3R1cmUoKSB3aWxsIHRyaWdnZXIKKyAgICAgICAg
YSBwcmVzZW50YXRpb24gbW9kZSBjaGFuZ2UgdW5sZXNzIHRoZSBwcmV2aW91cyBvcGVyYXRpb25z
IGFyZSBjb21wbGV0ZWQuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhbHNvIHJlbW92ZXMgdGhlIGNv
ZGUgZm9yIHRlc3RpbmcgcHVycG9zZXMgaW4gdGhlIEhUTUxWaWRlb0VsZW1lbnQgY2xhc3MuCisK
KyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIGh0bWwvSFRN
TE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjp0b1ByZXNlbnRhdGlvbk1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFZpZGVvRWxlbWVudDo6c2V0RnVsbHNjcmVlbk1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFZpZGVvRWxlbWVudDo6ZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxWaWRlb0VsZW1lbnQ6OmRpZEVudGVyRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MVmlkZW9FbGVtZW50OjpkaWRFeGl0RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MVmlkZW9FbGVtZW50OjpzZXRQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6ZGlkQmVjb21lRnVsbHNjcmVl
bkVsZW1lbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6
c2V0UGljdHVyZUluUGljdHVyZUFQSVRlc3RFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBo
dG1sL0hUTUxWaWRlb0VsZW1lbnQuaDoKKworICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2V0UGljdHVyZUluUGljdHVyZUFQSVRl
c3RFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKyAgICAgICAgUmVtb3ZlIHNldFBpY3R1cmVJ
blBpY3R1cmVBUElUZXN0RW5hYmxlZCgpLgorCiAyMDIwLTA1LTE5ICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFB1c2ggYSBQbGF0Zm9ybURpc3BsYXlJ
RCB0byBzY3JvbGxpbmcgdHJlZXMsIGFuZCBhbGxvdyB0aGUgc2Nyb2xsaW5nIHRocmVhZCB0byBn
ZXQgZGlzcGxheURpZFJlZnJlc2ggbm90aWZpY2F0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0ZWUxYTAyNGRk
NWZlZGM1ZGRjNzE0YzIzZWE3ZWE5YjZiYjNlNGRmLi41N2E2ZTBjMjFiOTJhNDY4OTg2MDU1ODM1
YjI0MzQzYjkwZWNkMGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA1LTIxICBQ
ZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IGlzc3VlcyBvZiB0
aGUgUGljdHVyZS1pbi1QaWN0dXJlIEFQSSB1bmRlciBzdHJlc3MgdGVzdHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjE5MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5OjplbnRlckZ1bGxzY3JlZW4pOgorICAgICAgICBNb2NrIHRoZSBi
ZWhhdmlvciBvZiB0aGUgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlW0FWS2l0fE1hY10gcmVnYXJk
aW5nCisgICAgICAgIHRoZSBQaWN0dXJlLWluLVBpY3R1cmUgbW9kZSBzdXBwb3J0LgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tOgorICAgICAg
ICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1bGxzY3JlZW4pOgor
ICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRDbGVhbnVwRnVsbHNj
cmVlbik6CisgICAgICAgIEFkZCBjYWxsYmFja3MgZm9yIHRoZSBlbmQgb2YgZW50ZXJpbmcvZXhp
dGluZyBmdWxsc2NyZWVuLgorCiAyMDIwLTA1LTE5ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBGaXggbWVzc2FnZSBmaWx0ZXIgc2FuZGJveCB2
aW9sYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggMmI2OGRl
ODhmYzgwY2JmNDFlODJjZmI1OWY0MmMwOTY4Mjk3NjUzNi4uZDM5ZGI5MWVjMWM4ZDBkMGJhYzU4
OWYwNmQ1ZmNmZWFmYWJmNTkxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmgKQEAgLTU2MSw3ICs1NjEsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzU3VzcGVuZGVkKCkg
Y29uc3QgZmluYWw7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEJlY29tZUZ1bGxzY3Jl
ZW5FbGVtZW50KCkgb3ZlcnJpZGU7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRCZWNvbWVG
dWxsc2NyZWVuRWxlbWVudCgpIGZpbmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd2lsbEV4
aXRGdWxsc2NyZWVuKCk7CiAKICNpZiBFTkFCTEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCmluZGV4IDE2Y2E0YTMzMGVhZGVk
MWZmMjgyMzczNWJkYTg1YTU5YWY5ZTU2NDUuLjg3NzY0MWYzOTYxMjZjOWMyYzYzYThiMzIyNDYw
NGQ1OTRhYjNhZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcApA
QCAtNDQyLDYgKzQ0MiwyMSBAQCBzdGF0aWMgaW5saW5lIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6
VmlkZW9GdWxsc2NyZWVuTW9kZSB0b0Z1bGxzY3JlZW5Nb2RlKEhUTUxWaQogICAgIHJldHVybiBI
VE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25lOwogfQogCitzdGF0
aWMgaW5saW5lIEhUTUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9kZSB0b1ByZXNl
bnRhdGlvbk1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1v
ZGUpCit7CisgICAgaWYgKG1vZGUgPT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlU3RhbmRhcmQpCisgICAgICAgIHJldHVybiBIVE1MVmlkZW9FbGVtZW50OjpWaWRl
b1ByZXNlbnRhdGlvbk1vZGU6OkZ1bGxzY3JlZW47CisKKyAgICBpZiAobW9kZSAmIEhUTUxNZWRp
YUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVBpY3R1cmVJblBpY3R1cmUpCisgICAg
ICAgIHJldHVybiBIVE1MVmlkZW9FbGVtZW50OjpWaWRlb1ByZXNlbnRhdGlvbk1vZGU6OlBpY3R1
cmVJblBpY3R1cmU7CisKKyAgICBpZiAobW9kZSA9PSBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZp
ZGVvRnVsbHNjcmVlbk1vZGVOb25lKQorICAgICAgICByZXR1cm4gSFRNTFZpZGVvRWxlbWVudDo6
VmlkZW9QcmVzZW50YXRpb25Nb2RlOjpJbmxpbmU7CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICByZXR1cm4gSFRNTFZpZGVvRWxlbWVudDo6VmlkZW9QcmVzZW50YXRpb25Nb2RlOjpJ
bmxpbmU7Cit9CisKIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6d2Via2l0U2V0UHJlc2VudGF0aW9u
TW9kZShWaWRlb1ByZXNlbnRhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBJTkZPX0xPRyhMT0dJREVO
VElGSUVSLCAiLCBtb2RlID0gIiwgIG1vZGUpOwpAQCAtNDUxLDI1ICs0NjYsMTUgQEAgdm9pZCBI
VE1MVmlkZW9FbGVtZW50Ojp3ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKFZpZGVvUHJlc2VudGF0
aW9uTW9kZSBtb2RlKQogdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpzZXRGdWxsc2NyZWVuTW9kZShI
VE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKIHsKICAgICBJ
TkZPX0xPRyhMT0dJREVOVElGSUVSLCAiLCBtb2RlID0gIiwgbW9kZSk7Ci0jaWYgRU5BQkxFKFBJ
Q1RVUkVfSU5fUElDVFVSRV9BUEkpCi0gICAgaWYgKG1fcGljdHVyZUluUGljdHVyZUFQSVRlc3RF
bmFibGVkKSB7Ci0gICAgICAgIGlmIChtb2RlID09IFZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJl
SW5QaWN0dXJlKSB7Ci0gICAgICAgICAgICBmdWxsc2NyZWVuTW9kZUNoYW5nZWQobW9kZSk7Ci0g
ICAgICAgICAgICBkaWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCgpOwotICAgICAgICAgICAgc2V0
VmlkZW9GdWxsc2NyZWVuRnJhbWUoezAsIDAsIDEwMCwgMTAwfSk7Ci0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobW9kZSA9PSBWaWRlb0Z1bGxzY3JlZW5Nb2Rl
Tm9uZSkgewotICAgICAgICAgICAgZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKG1vZGUpOwotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotI2VuZGlmCiAKICAgICBpZiAobW9kZSA9
PSBWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSkgewotICAgICAgICBpZiAoaXNGdWxsc2NyZWVuKCkp
CisgICAgICAgIGlmIChpc0Z1bGxzY3JlZW4oKSkgeworI2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJ
Q1RVUkVfQVBJKQorICAgICAgICAgICAgaWYgKHRvUHJlc2VudGF0aW9uTW9kZShmdWxsc2NyZWVu
TW9kZSgpKSA9PSBWaWRlb1ByZXNlbnRhdGlvbk1vZGU6OlBpY3R1cmVJblBpY3R1cmUpCisgICAg
ICAgICAgICAgICAgbV9leGl0aW5nUGljdHVyZUluUGljdHVyZSA9IHRydWU7CisjZW5kaWYKICAg
ICAgICAgICAgIGV4aXRGdWxsc2NyZWVuKCk7CisgICAgICAgIH0KIAogICAgICAgICByZXR1cm47
CiAgICAgfQpAQCAtNDc3LDIyICs0ODIsMTIgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpzZXRG
dWxsc2NyZWVuTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk0KICAg
ICBpZiAoIW1lZGlhU2Vzc2lvbigpLmZ1bGxzY3JlZW5QZXJtaXR0ZWQoKSB8fCAhc3VwcG9ydHNG
dWxsc2NyZWVuKG1vZGUpKQogICAgICAgICByZXR1cm47CiAKLSAgICBlbnRlckZ1bGxzY3JlZW4o
bW9kZSk7Ci19Ci0KLXN0YXRpYyBIVE1MVmlkZW9FbGVtZW50OjpWaWRlb1ByZXNlbnRhdGlvbk1v
ZGUgdG9QcmVzZW50YXRpb25Nb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZSBtb2RlKQotewotICAgIGlmIChtb2RlID09IEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6
VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKQotICAgICAgICByZXR1cm4gSFRNTFZpZGVvRWxl
bWVudDo6VmlkZW9QcmVzZW50YXRpb25Nb2RlOjpGdWxsc2NyZWVuOwotCi0gICAgaWYgKG1vZGUg
JiBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0
dXJlKQotICAgICAgICByZXR1cm4gSFRNTFZpZGVvRWxlbWVudDo6VmlkZW9QcmVzZW50YXRpb25N
b2RlOjpQaWN0dXJlSW5QaWN0dXJlOwotCi0gICAgaWYgKG1vZGUgPT0gSFRNTE1lZGlhRWxlbWVu
dEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSkKLSAgICAgICAgcmV0dXJuIEhUTUxWaWRl
b0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9kZTo6SW5saW5lOworI2lmIEVOQUJMRShQSUNU
VVJFX0lOX1BJQ1RVUkVfQVBJKQorICAgIGlmIChtb2RlID09IFZpZGVvRnVsbHNjcmVlbk1vZGVQ
aWN0dXJlSW5QaWN0dXJlKQorICAgICAgICBtX2VudGVyaW5nUGljdHVyZUluUGljdHVyZSA9IHRy
dWU7CisjZW5kaWYKIAotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBIVE1M
VmlkZW9FbGVtZW50OjpWaWRlb1ByZXNlbnRhdGlvbk1vZGU6OklubGluZTsKKyAgICBlbnRlckZ1
bGxzY3JlZW4obW9kZSk7CiB9CiAKIGF1dG8gSFRNTFZpZGVvRWxlbWVudDo6d2Via2l0UHJlc2Vu
dGF0aW9uTW9kZSgpIGNvbnN0IC0+IFZpZGVvUHJlc2VudGF0aW9uTW9kZQpAQCAtNTA1LDE4ICs1
MDAsNiBAQCB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OmZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZChWaWRl
b0Z1bGxzY3JlZW5Nb2RlIG1vZGUpCiAgICAgaWYgKG1vZGUgIT0gZnVsbHNjcmVlbk1vZGUoKSkg
ewogICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAiY2hhbmdlZCBmcm9tICIsIGZ1bGxz
Y3JlZW5Nb2RlKCksICIsIHRvICIsIG1vZGUpOwogICAgICAgICBzY2hlZHVsZUV2ZW50KGV2ZW50
TmFtZXMoKS53ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZEV2ZW50KTsKLQotI2lmIEVOQUJM
RShQSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKQotICAgICAgICBpZiAobV9waWN0dXJlSW5QaWN0dXJl
T2JzZXJ2ZXIpIHsKLSAgICAgICAgICAgIEhUTUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0
aW9uTW9kZSB0YXJnZXRWaWRlb1ByZXNlbnRhdGlvbk1vZGUgPSB0b1ByZXNlbnRhdGlvbk1vZGUo
bW9kZSk7Ci0gICAgICAgICAgICBIVE1MVmlkZW9FbGVtZW50OjpWaWRlb1ByZXNlbnRhdGlvbk1v
ZGUgc291cmNlVmlkZW9QcmVzZW50YXRpb25Nb2RlID0gdG9QcmVzZW50YXRpb25Nb2RlKGZ1bGxz
Y3JlZW5Nb2RlKCkpOwotCi0gICAgICAgICAgICBpZiAodGFyZ2V0VmlkZW9QcmVzZW50YXRpb25N
b2RlICE9IEhUTUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9kZTo6UGljdHVyZUlu
UGljdHVyZSAmJiBzb3VyY2VWaWRlb1ByZXNlbnRhdGlvbk1vZGUgPT0gSFRNTFZpZGVvRWxlbWVu
dDo6VmlkZW9QcmVzZW50YXRpb25Nb2RlOjpQaWN0dXJlSW5QaWN0dXJlKSB7Ci0gICAgICAgICAg
ICAgICAgbV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXItPmRpZEV4aXRQaWN0dXJlSW5QaWN0dXJl
KCk7Ci0gICAgICAgICAgICAgICAgbV9pc0Z1bGxzY3JlZW4gPSBmYWxzZTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotI2VuZGlmCiAgICAgfQogCiAgICAgaWYgKHBsYXllcigpKQpAQCAtNTI2
LDUzICs1MDksNDcgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpmdWxsc2NyZWVuTW9kZUNoYW5n
ZWQoVmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQogfQogCiAjaWYgRU5BQkxFKFBJQ1RVUkVfSU5f
UElDVFVSRV9BUEkpCi12b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OmRpZEJlY29tZUZ1bGxzY3JlZW5F
bGVtZW50KCkKK3ZvaWQgSFRNTFZpZGVvRWxlbWVudDo6ZGlkRW50ZXJGdWxsc2NyZWVuKCkKIHsK
LSAgICBtX2lzRnVsbHNjcmVlbiA9IHRydWU7CiAgICAgbV93YWl0aW5nRm9yUGljdHVyZUluUGlj
dHVyZVdpbmRvd0ZyYW1lID0gdHJ1ZTsKLSAgICBIVE1MTWVkaWFFbGVtZW50OjpkaWRCZWNvbWVG
dWxsc2NyZWVuRWxlbWVudCgpOwogfQogCi12b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnNldFBpY3R1
cmVJblBpY3R1cmVPYnNlcnZlcihQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIqIG9ic2VydmVyKQor
dm9pZCBIVE1MVmlkZW9FbGVtZW50OjpkaWRFeGl0RnVsbHNjcmVlbigpCiB7Ci0gICAgbV9waWN0
dXJlSW5QaWN0dXJlT2JzZXJ2ZXIgPSBvYnNlcnZlcjsKKyAgICBpZiAobV9waWN0dXJlSW5QaWN0
dXJlT2JzZXJ2ZXIgJiYgbV9leGl0aW5nUGljdHVyZUluUGljdHVyZSkgeworICAgICAgICBtX2V4
aXRpbmdQaWN0dXJlSW5QaWN0dXJlID0gZmFsc2U7CisgICAgICAgIG1fcGljdHVyZUluUGljdHVy
ZU9ic2VydmVyLT5kaWRFeGl0UGljdHVyZUluUGljdHVyZSgpOworICAgIH0KIH0KIAotdm9pZCBI
VE1MVmlkZW9FbGVtZW50OjpzZXRQaWN0dXJlSW5QaWN0dXJlQVBJVGVzdEVuYWJsZWQoYm9vbCBl
bmFibGVkKQordm9pZCBIVE1MVmlkZW9FbGVtZW50OjpzZXRQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2
ZXIoUGljdHVyZUluUGljdHVyZU9ic2VydmVyKiBvYnNlcnZlcikKIHsKLSAgICBtX3BpY3R1cmVJ
blBpY3R1cmVBUElUZXN0RW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgbV9waWN0dXJlSW5QaWN0dXJl
T2JzZXJ2ZXIgPSBvYnNlcnZlcjsKIH0KLSNlbmRpZgotCi0jZW5kaWYKIAotI2lmIEVOQUJMRShW
SURFT19QUkVTRU5UQVRJT05fTU9ERSkKIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6c2V0VmlkZW9G
dWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0IGZyYW1lKQogewogICAgIEhUTUxNZWRpYUVsZW1lbnQ6
OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKGZyYW1lKTsKIAotI2lmIEVOQUJMRShQSUNUVVJFX0lO
X1BJQ1RVUkVfQVBJKQotICAgIC8vIGZ1bGxzY3JlZW5Nb2RlKCkgZG9lcyBub3QgYWx3YXlzIHBy
b3ZpZGUgdGhlIGNvcnJlY3QgZnVsbHNjcmVlbiBtb2RlCi0gICAgLy8gd2hlbiBtb2RlIGNoYW5n
aW5nIGlzIGhhcHBlbmluZyAod2Via2l0Lm9yZy9iLzIwMzQ0MykKLSAgICBpZiAoIW1faXNGdWxs
c2NyZWVuKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAodG9QcmVzZW50YXRpb25Nb2RlKGZ1
bGxzY3JlZW5Nb2RlKCkpICE9IFZpZGVvUHJlc2VudGF0aW9uTW9kZTo6UGljdHVyZUluUGljdHVy
ZSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgaWYgKG1fd2FpdGluZ0ZvclBpY3R1cmVJblBpY3R1
cmVXaW5kb3dGcmFtZSkgeworICAgICAgICBtX2VudGVyaW5nUGljdHVyZUluUGljdHVyZSA9IGZh
bHNlOwogICAgICAgICBtX3dhaXRpbmdGb3JQaWN0dXJlSW5QaWN0dXJlV2luZG93RnJhbWUgPSBm
YWxzZTsKKwogICAgICAgICBpZiAobV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIpCiAgICAgICAg
ICAgICBtX3BpY3R1cmVJblBpY3R1cmVPYnNlcnZlci0+ZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJl
KEludFNpemUoZnJhbWUuc2l6ZSgpKSk7CiAKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IGlmIChtX3BpY3R1cmVJblBpY3R1cmVPYnNlcnZlcikKKyAgICBpZiAodG9QcmVzZW50YXRpb25N
b2RlKGZ1bGxzY3JlZW5Nb2RlKCkpICE9IFZpZGVvUHJlc2VudGF0aW9uTW9kZTo6UGljdHVyZUlu
UGljdHVyZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX2VudGVyaW5nUGljdHVyZUlu
UGljdHVyZSAmJiBtX3BpY3R1cmVJblBpY3R1cmVPYnNlcnZlcikKICAgICAgICAgbV9waWN0dXJl
SW5QaWN0dXJlT2JzZXJ2ZXItPnBpY3R1cmVJblBpY3R1cmVXaW5kb3dSZXNpemVkKEludFNpemUo
ZnJhbWUuc2l6ZSgpKSk7Ci0jZW5kaWYKIH0KLSNlbmRpZgorI2VuZGlmIC8vIEVOQUJMRShQSUNU
VVJFX0lOX1BJQ1RVUkVfQVBJKQorCisjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1BSRVNFTlRBVElP
Tl9NT0RFKQogCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9O
X01PREUpCiB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OmV4aXRUb0Z1bGxzY3JlZW5Nb2RlV2l0aG91
dEFuaW1hdGlvbklmUG9zc2libGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlIGZyb21Nb2RlLCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1v
ZGUgdG9Nb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAppbmRleCBlZDky
MTgzZDQ3YmJjM2ViMTIxMDAzM2Y5YmZlYzdiMjZjMDU2ZWJiLi41ODU1MDk2YTI2Mjg4YTNmNzU3
OTk5MjVlZjEwM2VjYzIyY2Y4YzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxWaWRlb0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1l
bnQuaApAQCAtOTAsMTUgKzkwLDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIGZ1bGxzY3JlZW5Nb2Rl
Q2hhbmdlZChWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBmaW5hbDsKIAogI2lmIEVOQUJMRShQSUNUVVJF
X0lOX1BJQ1RVUkVfQVBJKQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkQmVjb21lRnVsbHNj
cmVlbkVsZW1lbnQoKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEVudGVyRnVs
bHNjcmVlbigpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oKTsK
ICAgICB2b2lkIHNldFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlcihQaWN0dXJlSW5QaWN0dXJlT2Jz
ZXJ2ZXIqKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFBpY3R1cmVJblBpY3R1cmVBUElU
ZXN0RW5hYmxlZChib29sKTsKLSNlbmRpZgotI2VuZGlmCi0KLSNpZiBFTkFCTEUoVklERU9fUFJF
U0VOVEFUSU9OX01PREUpCiAgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJl
Y3QpIGZpbmFsOwogI2VuZGlmCisjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxF
KFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogICAgIHZvaWQgZXhpdFRvRnVsbHNjcmVlbk1vZGVX
aXRob3V0QW5pbWF0aW9uSWZQb3NzaWJsZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVs
bHNjcmVlbk1vZGUgZnJvbU1vZGUsIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZSB0b01vZGUpOwpAQCAtMTM3LDExICsxMzQsMTAgQEAgcHJpdmF0ZToKICAgICB1bnNp
Z25lZCBtX2xhc3RSZXBvcnRlZFZpZGVvSGVpZ2h0IHsgMCB9OwogCiAjaWYgRU5BQkxFKFBJQ1RV
UkVfSU5fUElDVFVSRV9BUEkpCisgICAgYm9vbCBtX2VudGVyaW5nUGljdHVyZUluUGljdHVyZSB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX3dhaXRpbmdGb3JQaWN0dXJlSW5QaWN0dXJlV2luZG93RnJh
bWUgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc0Z1bGxzY3JlZW4geyBmYWxzZSB9OworICAgIGJv
b2wgbV9leGl0aW5nUGljdHVyZUluUGljdHVyZSB7IGZhbHNlIH07CiAgICAgUGljdHVyZUluUGlj
dHVyZU9ic2VydmVyKiBtX3BpY3R1cmVJblBpY3R1cmVPYnNlcnZlciB7IG51bGxwdHIgfTsKLQot
ICAgIGJvb2wgbV9waWN0dXJlSW5QaWN0dXJlQVBJVGVzdEVuYWJsZWQgeyBmYWxzZSB9OwogI2Vu
ZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMzU0MzM3ODlk
Y2IwYmQzMWU0NTAyYzQzMGUwYWQ4NjFkMGU4ZTk5OS4uOGI5NGE4YjNjNjQ2MzE4NGZlYjQ2OGI4
N2IzMTIyOWY1MGYzNGIzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAt
NTU4NywxMyArNTU4Nyw2IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRNb2NrV2ViQXV0aGVudGljYXRp
b25Db25maWd1cmF0aW9uKGNvbnN0IE1vY2tXZWJBdXRoZW50aWNhdGlvCiB9CiAjZW5kaWYKIAot
I2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKQotdm9pZCBJbnRlcm5hbHM6OnNldFBp
Y3R1cmVJblBpY3R1cmVBUElUZXN0RW5hYmxlZChIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1l
bnQsIGJvb2wgZW5hYmxlZCkKLXsKLSAgICB2aWRlb0VsZW1lbnQuc2V0UGljdHVyZUluUGljdHVy
ZUFQSVRlc3RFbmFibGVkKGVuYWJsZWQpOwotfQotI2VuZGlmCi0KIHZvaWQgSW50ZXJuYWxzOjpz
ZXRNYXhDYW52YXNQaXhlbE1lbW9yeSh1bnNpZ25lZCBzaXplKQogewogICAgIEhUTUxDYW52YXNF
bGVtZW50OjpzZXRNYXhQaXhlbE1lbW9yeUZvclRlc3Rpbmcoc2l6ZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaAppbmRleCAzMzc4ODhjNjI2ZWUzYzY1YjViZmJhMzg1ZmE5NjBmZDFiNDg3
NzljLi5lZjI0ODU4NzMyMTEwNzlmMTQ0MWU1OTdhYWQzNTA1YjI3MGIwYjVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTk4NCwxMCArOTg0LDYgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbihjb25zdCBNb2NrV2ViQXV0
aGVudGljYXRpb25Db25maWd1cmF0aW9uJik7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShQSUNUVVJF
X0lOX1BJQ1RVUkVfQVBJKQotICAgIHZvaWQgc2V0UGljdHVyZUluUGljdHVyZUFQSVRlc3RFbmFi
bGVkKEhUTUxWaWRlb0VsZW1lbnQmLCBib29sKTsKLSNlbmRpZgotCiAgICAgaW50IHByb2Nlc3NJ
ZGVudGlmaWVyKCkgY29uc3Q7CiAKICAgICBSZWY8SW50ZXJuYWxzU2V0TGlrZT4gY3JlYXRlSW50
ZXJuYWxzU2V0TGlrZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGMw
MmI0ZGQ5MjY4YjBlNjc1MTU5YmY0MTg2OGIwZmYzNWM2OTRmZjguLmFiMmMyN2RlNzFiMDc5MDhi
YTRjMTY4ODUyZGYxMjEzYzRiZmFhNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwKQEAgLTg4NCw4ICs4ODQsNiBAQCBlbnVtIENvbXBvc2l0aW5nUG9saWN5IHsKIAogICAgIFtD
b25kaXRpb25hbD1XRUJfQVVUSE5dIHZvaWQgc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmln
dXJhdGlvbihNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24p
OwogCi0gICAgW0NvbmRpdGlvbmFsPVBJQ1RVUkVfSU5fUElDVFVSRV9BUEldIHZvaWQgc2V0UGlj
dHVyZUluUGljdHVyZUFQSVRlc3RFbmFibGVkKEhUTUxWaWRlb0VsZW1lbnQgdmlkZW9FbGVtZW50
LCBib29sZWFuIGVuYWJsZWQpOwotCiAgICAgSW50ZXJuYWxzTWFwTGlrZSBjcmVhdGVJbnRlcm5h
bHNNYXBMaWtlKCk7CiAgICAgSW50ZXJuYWxzU2V0TGlrZSBjcmVhdGVJbnRlcm5hbHNTZXRMaWtl
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQppbmRleCAzZTVhYzFiZjczOTM0ZmM3OGRjZTRm
ZGNmNThkYjRiNDE2ZDYyZTY3Li40MWQ5NGQzOTI2ZDA3Y2Y1Mzc4ZTdmNmZjMDk4YzQ2YTM0MWI0
ZDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCkBAIC01NTQsNiArNTU0LDcgQEAgdm9pZCBW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmVudGVyRnVsbHNjcmVlbih1aW50NjRfdCBjb250
ZXh0SWQpCiAgICAgTUVTU0FHRV9DSEVDS19DT05URVhUSUQoY29udGV4dElkKTsKICAgICBpZiAo
bV9tb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCkgewogICAgICAgICBkaWRFbnRlckZ1
bGxzY3JlZW4oY29udGV4dElkKTsKKyAgICAgICAgc2V0VmlkZW9MYXllckZyYW1lKGNvbnRleHRJ
ZCwgezAsIDAsIDIwMCwgMTUwfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXIubW0KaW5kZXggZTAyNmY1ZTY0OTZjMWJmNzEzODQ0YzA3NGE0NmM5ZTRkOTIzYjgyNC4uMmIy
N2JmYmZkZDg1NjI0YjlkZmU4YjM5MDIwYzM5MTY3YWZjOGZhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0K
QEAgLTQ0MSw2ICs0NDEsMTAgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRl
ckZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQogICAgIGlmICghdmlkZW9FbGVtZW50KQog
ICAgICAgICByZXR1cm47CiAKKyNpZiBFTkFCTEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkKKyAg
ICB2aWRlb0VsZW1lbnQtPmRpZEVudGVyRnVsbHNjcmVlbigpOworI2VuZGlmCisKICAgICBkaXNw
YXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWZQdHIodGhpcyksIHZpZGVvRWxlbWVudF0gewogICAgICAgICB2aWRlb0VsZW1lbnQtPmRp
ZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KCk7CiAgICAgfSk7CkBAIC01MDUsNiArNTA5LDEwIEBA
IHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4odWludDY0
X3QgY29udGV4dElkKQogCiAgICAgbW9kZWwtPnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKG5pbCk7
CiAgICAgUmVmUHRyPEhUTUxWaWRlb0VsZW1lbnQ+IHZpZGVvRWxlbWVudCA9IG1vZGVsLT52aWRl
b0VsZW1lbnQoKTsKKyNpZiBFTkFCTEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkKKyAgICBpZiAo
dmlkZW9FbGVtZW50KQorICAgICAgICB2aWRlb0VsZW1lbnQtPmRpZEV4aXRGdWxsc2NyZWVuKCk7
CisjZW5kaWYKIAogICAgIGludGVyZmFjZS0+c2V0RnVsbHNjcmVlbk1vZGUoSFRNTE1lZGlhRWxl
bWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSk7CiAgICAgaW50ZXJmYWNlLT5zZXRG
dWxsc2NyZWVuU3RhbmRieShmYWxzZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjcyYzdjMzgzYTkyMTQ4N2MzZGNiNDJk
YjU1OGU2YmRmZTBhY2RlNS4uMjdlMDY0NWE1YzA2ZWIwNDU3OTE5MGI1YWU1MjE0MjI5ODYyOGU2
ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTA1LTIxICBQZW5nIExpdSAgPHBlbmcubGl1
NkBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IGlzc3VlcyBvZiB0aGUgUGljdHVyZS1pbi1QaWN0
dXJlIEFQSSB1bmRlciBzdHJlc3MgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMjE5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yIHRoZSBsYXlvdXQgdGVzdHMgZm9yIHRoZSBQaWN0
dXJlLWluLVBpY3R1cmUgQVBJIHdpdGggdGhlIE1vY2sgVmlkZW9QcmVzZW50YXRpb24gTW9kZS4K
KworICAgICAgICAqIG1lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUt
YXBpLWNzcy1zZWxlY3Rvci1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEvcGljdHVyZS1p
bi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktY3NzLXNlbGVjdG9yLmh0bWw6CisgICAg
ICAgICogbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktZW50
ZXItcGlwLTEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIG1lZGlhL3BpY3R1cmUtaW4tcGljdHVy
ZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWVudGVyLXBpcC0xLmh0bWw6CisgICAgICAgICogbWVk
aWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktZW50ZXItcGlwLTIt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIG1lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJl
LWluLXBpY3R1cmUtYXBpLWVudGVyLXBpcC0yLmh0bWw6CisgICAgICAgICogbWVkaWEvcGljdHVy
ZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktZW50ZXItcGlwLTMtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIG1lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1
cmUtYXBpLWVudGVyLXBpcC0zLmh0bWw6CisgICAgICAgICogbWVkaWEvcGljdHVyZS1pbi1waWN0
dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktZW50ZXItcGlwLTQtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIG1lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWVu
dGVyLXBpcC00Lmh0bWw6CisgICAgICAgICogbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1
cmUtaW4tcGljdHVyZS1hcGktZXZlbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBtZWRpYS9w
aWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1ldmVudHMuaHRtbDoKKyAg
ICAgICAgKiBtZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1l
eGl0LXBpcC0xLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBtZWRpYS9waWN0dXJlLWluLXBpY3R1
cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1leGl0LXBpcC0xLmh0bWw6CisgICAgICAgICogbWVk
aWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktZXhpdC1waXAtMi1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUt
aW4tcGljdHVyZS1hcGktZXhpdC1waXAtMi5odG1sOgorICAgICAgICAqIG1lZGlhL3BpY3R1cmUt
aW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLXBpcC13aW5kb3ctZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIG1lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUt
YXBpLXBpcC13aW5kb3cuaHRtbDoKKyAgICAgICAgKiBtZWRpYS9waWN0dXJlLWluLXBpY3R1cmUv
cGljdHVyZS1pbi1waWN0dXJlLWV2ZW50cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEv
cGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1ldmVudHMuaHRtbDoKKyAgICAg
ICAgKiBtZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWludGVycnVw
dGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3Bp
Y3R1cmUtaW4tcGljdHVyZS1pbnRlcnJ1cHRpb24uaHRtbDoKKwogMjAyMC0wNS0xOSAgS2F0ZSBD
aGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZlcnQgV2Vi
S2l0VGVzdFJ1bm5lciB0byByZXNldCBJVFAgdG8gdGhlIG1lbW9yeSBzdG9yZSBiZXR3ZWVuIGFs
bCB0ZXN0cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVy
ZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWNzcy1zZWxlY3Rvci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1j
c3Mtc2VsZWN0b3ItZXhwZWN0ZWQudHh0CmluZGV4IDAxZmYyYjc0YjUzMzY0NzNlY2NlYzQ1MjQ1
NjQ1MWE0NGUyYjk3MzQuLmRlYTU5ODgzNmNiNDkyYzY1NTUzMDkxYTdmMzg1MzhkNjM1MzgxYTkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJl
LWluLXBpY3R1cmUtYXBpLWNzcy1zZWxlY3Rvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktY3NzLXNl
bGVjdG9yLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIFRoaXMgdGVzdHMgdGhhdCBlbnRl
cmluZyBhbmQgbGVhdmluZyBQaWN0dXJlLWluLVBpY3R1cmUgdG9nZ2xlcyBDU1Mgc2VsZWN0b3Iu
CiAKIFJVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlh
UGxheWJhY2sodHJ1ZSkpCi1SVU4oaW50ZXJuYWxzLnNldFBpY3R1cmVJblBpY3R1cmVBUElUZXN0
RW5hYmxlZCh2aWRlbywgdHJ1ZSkpCitSVU4oaW50ZXJuYWxzLnNldE1vY2tWaWRlb1ByZXNlbnRh
dGlvbk1vZGVFbmFibGVkKHRydWUpKQogUlVOKHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoInZp
ZGVvIiwgIi4uL2NvbnRlbnQvdGVzdCIpKQogRVZFTlQoY2FucGxheXRocm91Z2gpCiBFWFBFQ1RF
RCAoZ2V0Q29tcHV0ZWRTdHlsZSh2aWRlbykuY29sb3IgPT0gJ3JnYigwLCAwLCAyNTUpJykgT0sK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJl
LWluLXBpY3R1cmUtYXBpLWNzcy1zZWxlY3Rvci5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvcGlj
dHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktY3NzLXNlbGVjdG9yLmh0bWwK
aW5kZXggMGZjMjUyYzhkM2Y5NzlkOTQ5ZTNhZmY5Nzk2ZmFlZjJiNzdjMWNhZC4uMmY5YmQ0NDY2
YWZiNzQyZGQ4M2EwZmQ2ZjY2MDYzYzkxZDAwZGE5MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
bWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktY3NzLXNlbGVj
dG9yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1
cmUtaW4tcGljdHVyZS1hcGktY3NzLXNlbGVjdG9yLmh0bWwKQEAgLTE3LDE2ICsxNywyNCBAQAog
ICAgIDwvc3R5bGU+CiAgICAgPHNjcmlwdD4KICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ2xvYWQnLCBhc3luYyBldmVudCA9PiB7CisgICAgICAgICAgICBpZiAoIXdpbmRvdy5pbnRl
cm5hbHMpIHsKKyAgICAgICAgICAgICAgICBmYWlsVGVzdCgnVGhpcyB0ZXN0IHJlcXVpcmVzIHdp
bmRvdy5pbnRlcm5hbHMuJyk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
fQorCiAgICAgICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7CiAKICAgICAgICAgICAgIHJ1bign
aW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNr
KHRydWUpJyk7Ci0gICAgICAgICAgICBydW4oJ2ludGVybmFscy5zZXRQaWN0dXJlSW5QaWN0dXJl
QVBJVGVzdEVuYWJsZWQodmlkZW8sIHRydWUpJyk7CisgICAgICAgICAgICBydW4oJ2ludGVybmFs
cy5zZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCh0cnVlKScpOwogCiAgICAgICAg
ICAgICBydW4oJ3ZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgIi4uL2NvbnRlbnQv
dGVzdCIpJyk7CiAgICAgICAgICAgICBhd2FpdCB3YWl0Rm9yKHZpZGVvLCAnY2FucGxheXRocm91
Z2gnKTsKICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgnZ2V0Q29tcHV0ZWRTdHlsZSh2aWRlbyku
Y29sb3InLCAncmdiKDAsIDAsIDI1NSknKTsKIAotICAgICAgICAgICAgcnVuV2l0aEtleURvd24o
ZnVuY3Rpb24oKSB7IHZpZGVvLnJlcXVlc3RQaWN0dXJlSW5QaWN0dXJlKCkgfSk7CisgICAgICAg
ICAgICBydW5XaXRoS2V5RG93bigoKSA9PiB7CisgICAgICAgICAgICAgICAgdmlkZW8ucmVxdWVz
dFBpY3R1cmVJblBpY3R1cmUoKTsKKyAgICAgICAgICAgIH0pOworCiAgICAgICAgICAgICBhd2Fp
dCB3YWl0Rm9yKHZpZGVvLCAnZW50ZXJwaWN0dXJlaW5waWN0dXJlJyk7CiAgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoJ2dldENvbXB1dGVkU3R5bGUodmlkZW8pLmNvbG9yJywgJ3JnYigwLCAyNTUs
IDApJyk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVy
ZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWVudGVyLXBpcC0xLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWVu
dGVyLXBpcC0xLWV4cGVjdGVkLnR4dAppbmRleCA1MTI1ZTUzNTJiMTc1YzE5NmY1NTM3ZjgxNzg3
NDFiNDAwOTdkOWZkLi5kN2M3MWFlODJlNzUxZjk1OWEyZmE4ZDYwOTE2M2YyZWIxY2M4NDlmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1p
bi1waWN0dXJlLWFwaS1lbnRlci1waXAtMS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
bWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktZW50ZXItcGlw
LTEtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogVGhpcyB0ZXN0cyB0aGF0IHJlcXVlc3Qg
UGljdHVyZS1pbi1QaWN0dXJlIHJlcXVpcmVzIGEgdXNlciBnZXN0dXJlLgogCiBSVU4oaW50ZXJu
YWxzLnNldHRpbmdzLnNldEFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKHRydWUp
KQotUlVOKGludGVybmFscy5zZXRQaWN0dXJlSW5QaWN0dXJlQVBJVGVzdEVuYWJsZWQodmlkZW8s
IHRydWUpKQorUlVOKGludGVybmFscy5zZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxl
ZCh0cnVlKSkKIFJVTih2aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxlKCJ2aWRlbyIsICIuLi9jb250
ZW50L3Rlc3QiKSkKIEVWRU5UKGNhbnBsYXl0aHJvdWdoKQogRVhQRUNURUQgKGVycm9yLm5hbWUg
PT0gJ05vdEFsbG93ZWRFcnJvcicpIE9LCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9w
aWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1lbnRlci1waXAtMS5odG1s
IGIvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVy
ZS1hcGktZW50ZXItcGlwLTEuaHRtbAppbmRleCA3OWQ4ZmRmYWUyNTQ4ZTg0NDZkYjc1Yjk5Y2Mw
MDY2ZmViNDdhZTNlLi5kNjdhMzE4NzM3ZWU1ZTg2N2Y1ODE5YTAwMjE1MjE1MTlkYmFiMmRhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1p
bi1waWN0dXJlLWFwaS1lbnRlci1waXAtMS5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3Bp
Y3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWVudGVyLXBpcC0xLmh0bWwK
QEAgLTUsMTAgKzUsMTYgQEAKICAgICA8c2NyaXB0IHNyYz0iLi4vbWVkaWEtZmlsZS5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdD4KICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xv
YWQnLCBhc3luYyBldmVudCA9PiB7CisgICAgICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgICAgICAgICAgICBmYWlsVGVzdCgnVGhpcyB0ZXN0IHJlcXVpcmVzIHdpbmRvdy5p
bnRlcm5hbHMuJyk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCiAg
ICAgICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7CiAKICAgICAgICAgICAgIHJ1bignaW50ZXJu
YWxzLnNldHRpbmdzLnNldEFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKHRydWUp
Jyk7Ci0gICAgICAgICAgICBydW4oJ2ludGVybmFscy5zZXRQaWN0dXJlSW5QaWN0dXJlQVBJVGVz
dEVuYWJsZWQodmlkZW8sIHRydWUpJyk7CisgICAgICAgICAgICBydW4oJ2ludGVybmFscy5zZXRN
b2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCh0cnVlKScpOworCiAgICAgICAgICAgICBy
dW4oJ3ZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgIi4uL2NvbnRlbnQvdGVzdCIp
Jyk7CiAgICAgICAgICAgICBhd2FpdCB3YWl0Rm9yKHZpZGVvLCAnY2FucGxheXRocm91Z2gnKTsK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1
cmUtaW4tcGljdHVyZS1hcGktZW50ZXItcGlwLTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
bWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktZW50ZXItcGlw
LTItZXhwZWN0ZWQudHh0CmluZGV4IDQ4OTg0MDU2MjkzZGI5ZGMyZDAyZTgwZmRlNDI5MzcxMjVm
OTY0ZjkuLmZkZWM3ZGVlZDQ5YWZkZDBkZDM4N2Q4MTQ5NDI1ZjQ5NjliZDAxOTggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1
cmUtYXBpLWVudGVyLXBpcC0yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9w
aWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1lbnRlci1waXAtMi1leHBl
Y3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiBUaGlzIHRlc3RzIHRoYXQgcmVxdWVzdCBQaWN0dXJl
LWluLVBpY3R1cmUgcmVxdWlyZXMgbG9hZGVkIG1ldGFkYXRhIGZvciB0aGUgdmlkZW8gZWxlbWVu
dC4KIAogUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVk
aWFQbGF5YmFjayh0cnVlKSkKLVJVTihpbnRlcm5hbHMuc2V0UGljdHVyZUluUGljdHVyZUFQSVRl
c3RFbmFibGVkKHZpZGVvLCB0cnVlKSkKK1JVTihpbnRlcm5hbHMuc2V0TW9ja1ZpZGVvUHJlc2Vu
dGF0aW9uTW9kZUVuYWJsZWQodHJ1ZSkpCiBFWFBFQ1RFRCAoZXJyb3IubmFtZSA9PSAnSW52YWxp
ZFN0YXRlRXJyb3InKSBPSwogRU5EIE9GIFRFU1QKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
bWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktZW50ZXItcGlw
LTIuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWlu
LXBpY3R1cmUtYXBpLWVudGVyLXBpcC0yLmh0bWwKaW5kZXggOTNjZjhmZDQ0MDBlNjZkODNmMDM5
ZTY5YjcxNGY4MWJlZmU5ODk0YS4uYjNlMWViNTE1NDk1NWIwNDI2YmYxOGI2NGZiYmQ1NTU5MDI5
YjdjNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3Bp
Y3R1cmUtaW4tcGljdHVyZS1hcGktZW50ZXItcGlwLTIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1lbnRlci1waXAt
Mi5odG1sCkBAIC01LDExICs1LDE3IEBACiAgICAgPHNjcmlwdCBzcmM9Ii4uL21lZGlhLWZpbGUu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+CiAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCdsb2FkJywgYXN5bmMgZXZlbnQgPT4geworICAgICAgICAgICAgaWYgKCF3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZmFpbFRlc3QoJ1RoaXMgdGVzdCByZXF1aXJlcyB3
aW5kb3cuaW50ZXJuYWxzLicpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IH0KKwogICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOwogCiAgICAgICAgICAgICBydW4o
J2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFj
ayh0cnVlKScpOwotICAgICAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0UGljdHVyZUluUGljdHVy
ZUFQSVRlc3RFbmFibGVkKHZpZGVvLCB0cnVlKScpOwotICAgICAgICAgICAgcnVuV2l0aEtleURv
d24oZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBydW4oJ2ludGVybmFscy5zZXRNb2NrVmlkZW9Q
cmVzZW50YXRpb25Nb2RlRW5hYmxlZCh0cnVlKScpOworCisgICAgICAgICAgICBydW5XaXRoS2V5
RG93bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgdmlkZW8ucmVxdWVzdFBpY3R1cmVJblBpY3R1
cmUoKQogICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICAgICAg
ZmFpbFRlc3QoJ3JlcXVlc3QgUGljdHVyZS1pbi1QaWN0dXJlIHJlcXVpcmVzIGxvYWRlZCBtZXRh
ZGF0YSBmb3IgdGhlIHZpZGVvIGVsZW1lbnQuJykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWVudGVyLXBpcC0z
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0
dXJlLWluLXBpY3R1cmUtYXBpLWVudGVyLXBpcC0zLWV4cGVjdGVkLnR4dAppbmRleCA4ZmM5Yzdm
YjI2ZTA2ODBmNjRiZWJhZjg4NTgxODcwZTA5MWUxODRlLi42M2Y4N2QyNTA1NWJhZmNiOGQwMDEz
MDEyMDYzOTZlNjVhZDE3ZTIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJl
LWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1lbnRlci1waXAtMy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4t
cGljdHVyZS1hcGktZW50ZXItcGlwLTMtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogVGhp
cyB0ZXN0cyB0aGF0IHJlcXVlc3QgUGljdHVyZS1pbi1QaWN0dXJlIHJlcXVpcmVzIHZpZGVvIHRy
YWNrIGZvciB0aGUgdmlkZW8gZWxlbWVudC4KIAogUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRB
bGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayh0cnVlKSkKLVJVTihpbnRlcm5hbHMu
c2V0UGljdHVyZUluUGljdHVyZUFQSVRlc3RFbmFibGVkKHZpZGVvLCB0cnVlKSkKK1JVTihpbnRl
cm5hbHMuc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQodHJ1ZSkpCiBSVU4odmlk
ZW8uc3JjID0gZmluZE1lZGlhRmlsZSgiYXVkaW8iLCAiLi4vY29udGVudC90ZXN0IikpCiBFVkVO
VChjYW5wbGF5dGhyb3VnaCkKIEVYUEVDVEVEIChlcnJvci5uYW1lID09ICdJbnZhbGlkU3RhdGVF
cnJvcicpIE9LCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1
cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1lbnRlci1waXAtMy5odG1sIGIvTGF5b3V0VGVzdHMv
bWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktZW50ZXItcGlw
LTMuaHRtbAppbmRleCA3YjgyZWM5MDhjZGRmYjRmZjA0OTJjNWY3YTFjMTUyZTAwZWIxZWExLi5j
OTBlYWIyOGNmNmNjMTUwMGMwMzMzZDBiZWVkMTEyNWJjMzQwYTIyIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1l
bnRlci1waXAtMy5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVy
ZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWVudGVyLXBpcC0zLmh0bWwKQEAgLTUsMTMgKzUsMTkg
QEAKICAgICA8c2NyaXB0IHNyYz0iLi4vbWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdD4KICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBhc3luYyBldmVu
dCA9PiB7CisgICAgICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAg
ICAgICBmYWlsVGVzdCgnVGhpcyB0ZXN0IHJlcXVpcmVzIHdpbmRvdy5pbnRlcm5hbHMuJyk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBmaW5k
TWVkaWFFbGVtZW50KCk7CiAKICAgICAgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKHRydWUpJyk7Ci0gICAgICAgICAg
ICBydW4oJ2ludGVybmFscy5zZXRQaWN0dXJlSW5QaWN0dXJlQVBJVGVzdEVuYWJsZWQodmlkZW8s
IHRydWUpJyk7CisgICAgICAgICAgICBydW4oJ2ludGVybmFscy5zZXRNb2NrVmlkZW9QcmVzZW50
YXRpb25Nb2RlRW5hYmxlZCh0cnVlKScpOworCiAgICAgICAgICAgICBydW4oJ3ZpZGVvLnNyYyA9
IGZpbmRNZWRpYUZpbGUoImF1ZGlvIiwgIi4uL2NvbnRlbnQvdGVzdCIpJyk7CiAgICAgICAgICAg
ICBhd2FpdCB3YWl0Rm9yKHZpZGVvLCAnY2FucGxheXRocm91Z2gnKTsKLSAgICAgICAgICAgIHJ1
bldpdGhLZXlEb3duKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcnVuV2l0aEtleURvd24oKCkg
PT4gewogICAgICAgICAgICAgICAgIHZpZGVvLnJlcXVlc3RQaWN0dXJlSW5QaWN0dXJlKCkKICAg
ICAgICAgICAgICAgICAudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIGZhaWxUZXN0
KCdyZXF1ZXN0IFBpY3R1cmUtaW4tUGljdHVyZSByZXF1aXJlcyB2aWRlbyB0cmFjayBmb3IgdGhl
IHZpZGVvIGVsZW1lbnQuJykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUt
aW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWVudGVyLXBpcC00LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1
cmUtYXBpLWVudGVyLXBpcC00LWV4cGVjdGVkLnR4dAppbmRleCBmZWEwMmE1MzQ3YzZjYjk0NWMz
MmVkNjBjNTA4Y2I5OTY5YmU1ZTRmLi45NjczMWY2MzY1M2UyNTk0MGNmOTZjZTc4ZWFkYWQxNmU2
NWQ1YmYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUv
cGljdHVyZS1pbi1waWN0dXJlLWFwaS1lbnRlci1waXAtNC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGkt
ZW50ZXItcGlwLTQtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogVGhpcyB0ZXN0cyB0aGF0
IHJlcXVlc3QgUGljdHVyZS1pbi1QaWN0dXJlIHJlc29sdmVzIG9uIHVzZXIgY2xpY2suCiAKIFJV
TihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJh
Y2sodHJ1ZSkpCi1SVU4oaW50ZXJuYWxzLnNldFBpY3R1cmVJblBpY3R1cmVBUElUZXN0RW5hYmxl
ZCh2aWRlbywgdHJ1ZSkpCitSVU4oaW50ZXJuYWxzLnNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1v
ZGVFbmFibGVkKHRydWUpKQogUlVOKHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoInZpZGVvIiwg
Ii4uL2NvbnRlbnQvdGVzdCIpKQogRVZFTlQoY2FucGxheXRocm91Z2gpCiBFTkQgT0YgVEVTVApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUt
aW4tcGljdHVyZS1hcGktZW50ZXItcGlwLTQuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3BpY3R1
cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWVudGVyLXBpcC00Lmh0bWwKaW5k
ZXggZjFiYjA3Yjc1ZTgxZjdmZTBhY2E2ODZmOTBkNmY0MjJjYWI3YjQ3OC4uZDMyYzNiOTIxZjA2
NGZlYjIwYTNmMjE3YzYxY2Y1MTU2NzlkN2E5YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVk
aWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktZW50ZXItcGlwLTQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1p
bi1waWN0dXJlLWFwaS1lbnRlci1waXAtNC5odG1sCkBAIC01LDE0ICs1LDE5IEBACiAgICAgPHNj
cmlwdCBzcmM9Ii4uL21lZGlhLWZpbGUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+CiAgICAg
ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZXZlbnQgPT4geworICAg
ICAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZmFpbFRl
c3QoJ1RoaXMgdGVzdCByZXF1aXJlcyB3aW5kb3cuaW50ZXJuYWxzLicpOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVu
dCgpOwogCiAgICAgICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd3NQaWN0
dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayh0cnVlKScpOwotICAgICAgICAgICAgcnVuKCdpbnRl
cm5hbHMuc2V0UGljdHVyZUluUGljdHVyZUFQSVRlc3RFbmFibGVkKHZpZGVvLCB0cnVlKScpOwor
ICAgICAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVu
YWJsZWQodHJ1ZSknKTsKIAogICAgICAgICAgICAgcnVuKCd2aWRlby5zcmMgPSBmaW5kTWVkaWFG
aWxlKCJ2aWRlbyIsICIuLi9jb250ZW50L3Rlc3QiKScpOwogICAgICAgICAgICAgYXdhaXQgd2Fp
dEZvcih2aWRlbywgJ2NhbnBsYXl0aHJvdWdoJyk7Ci0gICAgICAgICAgICBydW5XaXRoS2V5RG93
bihmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHJ1bldpdGhLZXlEb3duKCgpID0+IHsKICAgICAg
ICAgICAgICAgICB2aWRlby5yZXF1ZXN0UGljdHVyZUluUGljdHVyZSgpCiAgICAgICAgICAgICAg
ICAgLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5leGl0UGljdHVy
ZUluUGljdHVyZSgpLnRoZW4oZW5kVGVzdCkuY2F0Y2goKCkgPT4gewpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGkt
ZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVy
ZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWV2ZW50cy1leHBlY3RlZC50eHQKaW5kZXggOTg4MTU5
NDVlNmE3ZGJhOThlMDZiZjQxOTJjZTE2MTU5ZTlhYmUyMy4uNmRmZjg4NGIxNjk4NzIyODI5NDAy
OGZhNGYwMjMxYzZmNWVjMTFiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVy
ZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktZXZlbnRzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0
dXJlLWFwaS1ldmVudHMtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogVGhpcyB0ZXN0cyB0
aGF0IGV2ZW50cyBhcmUgZmlyZWQgY29ycmVjdGx5IHdoZW4gYSB2aWRlbyBlbGVtZW50IGVudGVy
cyBhbmQgZXhpdHMgdGhlIFBpY3R1cmUtaW4tUGljdHVyZSBtb2RlLgogCiBSVU4oaW50ZXJuYWxz
LnNldHRpbmdzLnNldEFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKHRydWUpKQot
UlVOKGludGVybmFscy5zZXRQaWN0dXJlSW5QaWN0dXJlQVBJVGVzdEVuYWJsZWQodmlkZW8sIHRy
dWUpKQorUlVOKGludGVybmFscy5zZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCh0
cnVlKSkKIFJVTih2aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxlKCJ2aWRlbyIsICIuLi9jb250ZW50
L3Rlc3QiKSkKIEVWRU5UKGNhbnBsYXl0aHJvdWdoKQogRVZFTlQoZW50ZXJwaWN0dXJlaW5waWN0
dXJlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3Bp
Y3R1cmUtaW4tcGljdHVyZS1hcGktZXZlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9waWN0
dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1ldmVudHMuaHRtbAppbmRleCBk
ZTQ2ODMwZDNhMGNjMzk0M2ZjZDU0ODEwOTliZGQ2MmQxZGNjMjU3Li5kODc1NGI4Mzg3Zjk4Y2Uw
ZTQzZmZiMDk0NmQ1NGE2MTBlMDk5ZmIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9w
aWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1ldmVudHMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJl
LWFwaS1ldmVudHMuaHRtbApAQCAtNSwxNSArNSwyMyBAQAogICAgIDxzY3JpcHQgc3JjPSIuLi9t
ZWRpYS1maWxlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgogICAgICAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignbG9hZCcsIGFzeW5jIGV2ZW50ID0+IHsKKyAgICAgICAgICAgIGlmICgh
d2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgICAgIGZhaWxUZXN0KCdUaGlzIHRlc3Qg
cmVxdWlyZXMgd2luZG93LmludGVybmFscy4nKTsKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICB9CisKICAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKIAogICAgICAg
ICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dzUGljdHVyZUluUGljdHVyZU1l
ZGlhUGxheWJhY2sodHJ1ZSknKTsKLSAgICAgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldFBpY3R1
cmVJblBpY3R1cmVBUElUZXN0RW5hYmxlZCh2aWRlbywgdHJ1ZSknKTsKKyAgICAgICAgICAgIHJ1
bignaW50ZXJuYWxzLnNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKHRydWUpJyk7
CiAKICAgICAgICAgICAgIHJ1bigndmlkZW8uc3JjID0gZmluZE1lZGlhRmlsZSgidmlkZW8iLCAi
Li4vY29udGVudC90ZXN0IiknKTsKICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3IodmlkZW8sICdj
YW5wbGF5dGhyb3VnaCcpOwogCi0gICAgICAgICAgICBydW5XaXRoS2V5RG93bihmdW5jdGlvbigp
IHsgdmlkZW8ucmVxdWVzdFBpY3R1cmVJblBpY3R1cmUoKTsgfSk7CisgICAgICAgICAgICBydW5X
aXRoS2V5RG93bigoKSA9PiB7CisgICAgICAgICAgICAgICAgdmlkZW8ucmVxdWVzdFBpY3R1cmVJ
blBpY3R1cmUoKTsKKyAgICAgICAgICAgIH0pOworCiAgICAgICAgICAgICB3YWl0Rm9yRXZlbnRP
bmNlKCdlbnRlcnBpY3R1cmVpbnBpY3R1cmUnLCBldmVudCA9PiB7CiAgICAgICAgICAgICAgICAg
d2luZG93LnBpcFdpbmRvdyA9IGV2ZW50LnBpY3R1cmVJblBpY3R1cmVXaW5kb3c7CiAgICAgICAg
ICAgICAgICAgdGVzdEV4cGVjdGVkKCdwaXBXaW5kb3cud2lkdGgnLCAwLCAnPicpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGlj
dHVyZS1hcGktZXhpdC1waXAtMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9waWN0
dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1leGl0LXBpcC0xLWV4cGVjdGVk
LnR4dAppbmRleCA1YzFlYWJjZWM1N2Q3OWU3YzY1YmQ1ZTIyY2VkOGE4NjYzYTYxMTQ5Li4yMjg2
Mzc4ZThiMzBhODNmNWUxODVhNWRhNzE4MDU3YWJlOGVjM2JiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1leGl0
LXBpcC0xLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBp
Y3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1leGl0LXBpcC0xLWV4cGVjdGVkLnR4dApAQCAt
MSw3ICsxLDcgQEAKIFRoaXMgdGVzdHMgdGhhdCBleGl0IFBpY3R1cmUtaW4tUGljdHVyZSByZXNv
bHZlcyB3aGVuIHRoZXJlIGlzIGEgUGljdHVyZS1pbi1QaWN0dXJlIHZpZGVvLgogCiBSVU4oaW50
ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKHRy
dWUpKQotUlVOKGludGVybmFscy5zZXRQaWN0dXJlSW5QaWN0dXJlQVBJVGVzdEVuYWJsZWQodmlk
ZW8sIHRydWUpKQorUlVOKGludGVybmFscy5zZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5h
YmxlZCh0cnVlKSkKIFJVTih2aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxlKCJ2aWRlbyIsICIuLi9j
b250ZW50L3Rlc3QiKSkKIEVWRU5UKGNhbnBsYXl0aHJvdWdoKQogRVZFTlQoZW50ZXJwaWN0dXJl
aW5waWN0dXJlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0
dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktZXhpdC1waXAtMS5odG1sIGIvTGF5b3V0VGVzdHMv
bWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktZXhpdC1waXAt
MS5odG1sCmluZGV4IGJmNTg4NjY4YjZlMjFhYmQyZmYyMTU3MDQxMDQ5ZWRmYTQyYjljZDEuLjQ3
ZjAwMzM5M2RiYWRiN2EwYzk4MjNhMTQ2YjViMmU1ZWYxMjVhODIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWV4
aXQtcGlwLTEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUv
cGljdHVyZS1pbi1waWN0dXJlLWFwaS1leGl0LXBpcC0xLmh0bWwKQEAgLTUsMTUgKzUsMjMgQEAK
ICAgICA8c2NyaXB0IHNyYz0iLi4vbWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dD4KICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBhc3luYyBldmVudCA9
PiB7CisgICAgICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAg
ICBmYWlsVGVzdCgnVGhpcyB0ZXN0IHJlcXVpcmVzIHdpbmRvdy5pbnRlcm5hbHMuJyk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBmaW5kTWVk
aWFFbGVtZW50KCk7CiAKICAgICAgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFs
bG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKHRydWUpJyk7Ci0gICAgICAgICAgICBy
dW4oJ2ludGVybmFscy5zZXRQaWN0dXJlSW5QaWN0dXJlQVBJVGVzdEVuYWJsZWQodmlkZW8sIHRy
dWUpJyk7CisgICAgICAgICAgICBydW4oJ2ludGVybmFscy5zZXRNb2NrVmlkZW9QcmVzZW50YXRp
b25Nb2RlRW5hYmxlZCh0cnVlKScpOwogCiAgICAgICAgICAgICBydW4oJ3ZpZGVvLnNyYyA9IGZp
bmRNZWRpYUZpbGUoInZpZGVvIiwgIi4uL2NvbnRlbnQvdGVzdCIpJyk7CiAgICAgICAgICAgICBh
d2FpdCB3YWl0Rm9yKHZpZGVvLCAnY2FucGxheXRocm91Z2gnKTsKIAotICAgICAgICAgICAgcnVu
V2l0aEtleURvd24oZnVuY3Rpb24oKSB7IHZpZGVvLnJlcXVlc3RQaWN0dXJlSW5QaWN0dXJlKCkg
fSk7CisgICAgICAgICAgICBydW5XaXRoS2V5RG93bigoKSA9PiB7CisgICAgICAgICAgICAgICAg
dmlkZW8ucmVxdWVzdFBpY3R1cmVJblBpY3R1cmUoKTsKKyAgICAgICAgICAgIH0pOworCiAgICAg
ICAgICAgICBhd2FpdCB3YWl0Rm9yKHZpZGVvLCAnZW50ZXJwaWN0dXJlaW5waWN0dXJlJyk7CiAg
ICAgICAgICAgICBkb2N1bWVudC5leGl0UGljdHVyZUluUGljdHVyZSgpLnRoZW4oZW5kVGVzdCku
Y2F0Y2goKCkgPT4gewogICAgICAgICAgICAgICAgIGZhaWxUZXN0KCdGYWlsZWQgdG8gZXhpdCB0
aGUgUGljdHVyZS1pbi1QaWN0dXJlIG1vZGUuJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1leGl0LXBpcC0y
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0
dXJlLWluLXBpY3R1cmUtYXBpLWV4aXQtcGlwLTItZXhwZWN0ZWQudHh0CmluZGV4IDQyMTIwZGNm
ZjNlODlmNmMxNmIwZjg0NmNjZTEyZDM5ZTZmMjk3ZWIuLjRjYzljNjMwYTBmZmRkNjhlOWM0NDdh
ZWRlNDJjMTk1NTkzMDU5ZDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUt
aW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWV4aXQtcGlwLTItZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBp
Y3R1cmUtYXBpLWV4aXQtcGlwLTItZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogVGhpcyB0
ZXN0cyB0aGF0IGV4aXQgUGljdHVyZS1pbi1QaWN0dXJlIHJlamVjdHMgd2hlbiB0aGVyZSBpcyBu
byBQaWN0dXJlLWluLVBpY3R1cmUgdmlkZW8uCiAKIFJVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
QWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sodHJ1ZSkpCi1SVU4oaW50ZXJuYWxz
LnNldFBpY3R1cmVJblBpY3R1cmVBUElUZXN0RW5hYmxlZCh2aWRlbywgdHJ1ZSkpCitSVU4oaW50
ZXJuYWxzLnNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKHRydWUpKQogRVhQRUNU
RUQgKGVycm9yLm5hbWUgPT0gJ0ludmFsaWRTdGF0ZUVycm9yJykgT0sKIEVORCBPRiBURVNUCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJl
LWluLXBpY3R1cmUtYXBpLWV4aXQtcGlwLTIuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3BpY3R1
cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWV4aXQtcGlwLTIuaHRtbAppbmRl
eCA0Y2RjNDA3NWI5ZGUwZDY2YThlZDk5NzM2MjY2YzYyOGM4ZDA3ZjA3Li41NDgxYzJhNDVmNTA2
MjE4Y2QzODVjY2NkZWIxYzUzZWFkNjIwMjFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRp
YS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1leGl0LXBpcC0yLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4t
cGljdHVyZS1hcGktZXhpdC1waXAtMi5odG1sCkBAIC01LDEwICs1LDE1IEBACiAgICAgPHNjcmlw
dCBzcmM9Ii4uL21lZGlhLWZpbGUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+CiAgICAgICAg
IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZXZlbnQgPT4geworICAgICAg
ICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZmFpbFRlc3Qo
J1RoaXMgdGVzdCByZXF1aXJlcyB3aW5kb3cuaW50ZXJuYWxzLicpOworICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgp
OwogCiAgICAgICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd3NQaWN0dXJl
SW5QaWN0dXJlTWVkaWFQbGF5YmFjayh0cnVlKScpOwotICAgICAgICAgICAgcnVuKCdpbnRlcm5h
bHMuc2V0UGljdHVyZUluUGljdHVyZUFQSVRlc3RFbmFibGVkKHZpZGVvLCB0cnVlKScpOworICAg
ICAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJs
ZWQodHJ1ZSknKTsKIAogICAgICAgICAgICAgZG9jdW1lbnQuZXhpdFBpY3R1cmVJblBpY3R1cmUo
KQogICAgICAgICAgICAgLnRoZW4oKCkgPT4gewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVk
aWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktcGlwLXdpbmRvdy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVy
ZS1pbi1waWN0dXJlLWFwaS1waXAtd2luZG93LWV4cGVjdGVkLnR4dAppbmRleCA0ZTY4YTdkZGEw
YzI0ZmYyZGZjNTdiNzJjYTU2ZWQyZDQ1ZjliNDhhLi44OGQzMDRkMDRjZTE0N2UyMTQ4NjI3ZjBk
MTg2ZTRlYTVkYzMyM2FhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWlu
LXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1waXAtd2luZG93LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0
dXJlLWFwaS1waXAtd2luZG93LWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIFRoaXMgdGVz
dHMgdGhhdCBhIHBpcCB3aW5kb3cgaXMgcmV0dXJuZWQgY29ycmVjdGx5IHdoZW4gYSB2aWRlbyBl
bGVtZW50IGVudGVycyB0aGUgUGljdHVyZS1pbi1QaWN0dXJlIG1vZGUuCiAKIFJVTihpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0QWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sodHJ1ZSkp
Ci1SVU4oaW50ZXJuYWxzLnNldFBpY3R1cmVJblBpY3R1cmVBUElUZXN0RW5hYmxlZCh2aWRlbywg
dHJ1ZSkpCitSVU4oaW50ZXJuYWxzLnNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVk
KHRydWUpKQogUlVOKHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgIi4uL2NvbnRl
bnQvdGVzdCIpKQogRVZFTlQoY2FucGxheXRocm91Z2gpCiBFWFBFQ1RFRCAocGlwV2luZG93Lndp
ZHRoID4gJzAnKSBPSwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1w
aWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktcGlwLXdpbmRvdy5odG1sIGIvTGF5b3V0VGVz
dHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktcGlwLXdp
bmRvdy5odG1sCmluZGV4IGNjN2U2MjQ0MTA1MTMzY2RmZGNhZDgyMTNhZTBmYWE0ZDQyMjg0NWUu
LmU0NjQ3NDM0OTMxMmUzZTFjMGRkNjMwZjE4NDVlYjhkODA5NjZlYTMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBp
LXBpcC13aW5kb3cuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1
cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1waXAtd2luZG93Lmh0bWwKQEAgLTUsMTUgKzUsMjAg
QEAKICAgICA8c2NyaXB0IHNyYz0iLi4vbWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdD4KICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBhc3luYyBldmVu
dCA9PiB7CisgICAgICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAg
ICAgICBmYWlsVGVzdCgnVGhpcyB0ZXN0IHJlcXVpcmVzIHdpbmRvdy5pbnRlcm5hbHMuJyk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBmaW5k
TWVkaWFFbGVtZW50KCk7CiAKICAgICAgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKHRydWUpJyk7Ci0gICAgICAgICAg
ICBydW4oJ2ludGVybmFscy5zZXRQaWN0dXJlSW5QaWN0dXJlQVBJVGVzdEVuYWJsZWQodmlkZW8s
IHRydWUpJyk7CisgICAgICAgICAgICBydW4oJ2ludGVybmFscy5zZXRNb2NrVmlkZW9QcmVzZW50
YXRpb25Nb2RlRW5hYmxlZCh0cnVlKScpOwogCiAgICAgICAgICAgICBydW4oJ3ZpZGVvLnNyYyA9
IGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgIi4uL2NvbnRlbnQvdGVzdCIpJyk7CiAgICAgICAgICAg
ICBhd2FpdCB3YWl0Rm9yKHZpZGVvLCAnY2FucGxheXRocm91Z2gnKTsKIAotICAgICAgICAgICAg
cnVuV2l0aEtleURvd24oZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBydW5XaXRoS2V5RG93bigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgdmlkZW8ucmVxdWVzdFBpY3R1cmVJblBpY3R1cmUoKQog
ICAgICAgICAgICAgICAgIC50aGVuKHBpcFdpbmRvdyA9PiB7CiAgICAgICAgICAgICAgICAgICAg
IHdpbmRvdy5waXBXaW5kb3cgPSBwaXBXaW5kb3c7CkBAIC0yOCw3ICszMyw2IEBACiAgICAgICAg
ICAgICAgICAgICAgIGZhaWxUZXN0KCJGYWlsZWQgdG8gZW50ZXIgdGhlIFBpY3R1cmUtaW4tUGlj
dHVyZSBtb2RlLiIpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgfSk7Ci0KICAg
ICAgICAgfSk7CiAgICAgPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWV2ZW50cy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1p
bi1waWN0dXJlLWV2ZW50cy1leHBlY3RlZC50eHQKaW5kZXggYmUyZWE0MDRmNjA2OWRhNTc0Y2Ji
NzUzOGVlMTQxNzk4NmMwZDM1NC4uOWVhZDE3ZGMyZTdkZDUzYjdlNmY1NTRhM2FiNWNhODE3MGE1
NjExMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3Bp
Y3R1cmUtaW4tcGljdHVyZS1ldmVudHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21l
ZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtZXZlbnRzLWV4cGVjdGVk
LnR4dApAQCAtMSw3ICsxLDcgQEAKIFRoaXMgdGVzdHMgdGhhdCBldmVudHMgYXJlIGZpcmVkIGNv
cnJlY3RseSB3aGVuIHdlIHVzZSB0aGUgd2Via2l0IHByZWZpeGVkIEFQSSB0byBlbnRlcnMgYW5k
IGV4aXRzIHRoZSBQaWN0dXJlLWluLVBpY3R1cmUgbW9kZS4KIAogUlVOKGludGVybmFscy5zZXR0
aW5ncy5zZXRBbGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayh0cnVlKSkKLVJVTihp
bnRlcm5hbHMuc2V0UGljdHVyZUluUGljdHVyZUFQSVRlc3RFbmFibGVkKHZpZGVvLCB0cnVlKSkK
K1JVTihpbnRlcm5hbHMuc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQodHJ1ZSkp
CiBSVU4odmlkZW8uc3JjID0gZmluZE1lZGlhRmlsZSgidmlkZW8iLCAiLi4vY29udGVudC90ZXN0
IikpCiBFVkVOVChjYW5wbGF5dGhyb3VnaCkKIEVWRU5UKGVudGVycGljdHVyZWlucGljdHVyZSkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJl
LWluLXBpY3R1cmUtZXZlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBp
Y3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWV2ZW50cy5odG1sCmluZGV4IDBlYTA5MTE2YjExYzA0
NjNhOTM3NmZmN2RkYWU2M2JmOThjYjNjNDUuLjUxYjdkNzhmMTgzNjVmY2VlY2I3ZDIyY2MzYjM5
ZTk2NzQ2MDQ1ODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGlj
dHVyZS9waWN0dXJlLWluLXBpY3R1cmUtZXZlbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVk
aWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1ldmVudHMuaHRtbApAQCAt
NSwxNSArNSwyMyBAQAogICAgIDxzY3JpcHQgc3JjPSIuLi9tZWRpYS1maWxlLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0PgogICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcs
IGFzeW5jIGV2ZW50ID0+IHsKKyAgICAgICAgICAgIGlmICghd2luZG93LmludGVybmFscykgewor
ICAgICAgICAgICAgICAgIGZhaWxUZXN0KCdUaGlzIHRlc3QgcmVxdWlyZXMgd2luZG93LmludGVy
bmFscy4nKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKICAgICAg
ICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKIAogICAgICAgICAgICAgcnVuKCdpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0QWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sodHJ1ZSknKTsK
LSAgICAgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldFBpY3R1cmVJblBpY3R1cmVBUElUZXN0RW5h
YmxlZCh2aWRlbywgdHJ1ZSknKTsKKyAgICAgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldE1vY2tW
aWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKHRydWUpJyk7CiAKICAgICAgICAgICAgIHJ1bign
dmlkZW8uc3JjID0gZmluZE1lZGlhRmlsZSgidmlkZW8iLCAiLi4vY29udGVudC90ZXN0IiknKTsK
ICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3IodmlkZW8sICdjYW5wbGF5dGhyb3VnaCcpOwogCi0g
ICAgICAgICAgICBydW5XaXRoS2V5RG93bihmdW5jdGlvbigpIHsgdmlkZW8ud2Via2l0U2V0UHJl
c2VudGF0aW9uTW9kZSgncGljdHVyZS1pbi1waWN0dXJlJyk7IH0pOworICAgICAgICAgICAgcnVu
V2l0aEtleURvd24oKCkgPT4geworICAgICAgICAgICAgICAgIHZpZGVvLndlYmtpdFNldFByZXNl
bnRhdGlvbk1vZGUoJ3BpY3R1cmUtaW4tcGljdHVyZScpOworICAgICAgICAgICAgfSk7CisKICAg
ICAgICAgICAgIHdhaXRGb3JFdmVudE9uY2UoJ2VudGVycGljdHVyZWlucGljdHVyZScsIGV2ZW50
ID0+IHsKICAgICAgICAgICAgICAgICB3aW5kb3cucGlwV2luZG93ID0gZXZlbnQucGljdHVyZUlu
UGljdHVyZVdpbmRvdzsKICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3BpcFdpbmRvdy53
aWR0aCcsIDAsICc+Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWlu
LXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWludGVycnVwdGlvbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWlu
dGVycnVwdGlvbi1leHBlY3RlZC50eHQKaW5kZXggMzMyZjFmMzA4ZTA4NDBlNWM5ZmJkZDRhZjUw
YWExODc1Mzc1OGI0NC4uYTE2Nzc3OWVhZjMxOTEzNDExYjc5NWZhMDlhZWFlOGVkYjNlZGVkYSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUt
aW4tcGljdHVyZS1pbnRlcnJ1cHRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21l
ZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtaW50ZXJydXB0aW9uLWV4
cGVjdGVkLnR4dApAQCAtMSw2ICsxLDcgQEAKIFRoaXMgdGVzdHMgdGhhdCB2aWRlbyBpcyBpbiB0
aGUgY29ycmVjdCBtZWRpYSBzZXNzaW9uIHN0YXRlIGFmdGVyIGVuZGluZyBhIGJhY2tncm91bmQg
aW50ZXJydXB0aW9uIHdoaWxlIHBpcHBlZC4KIAogUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRB
bGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayh0cnVlKSkKK1JVTihpbnRlcm5hbHMu
c2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQodHJ1ZSkpCiBSVU4odmlkZW8uc3Jj
ID0gZmluZE1lZGlhRmlsZSgidmlkZW8iLCAiLi4vY29udGVudC90ZXN0IikpCiBFVkVOVChjYW5w
bGF5dGhyb3VnaCkKIFJVTih2aWRlby5wbGF5KCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWludGVycnVwdGlvbi5o
dG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGlj
dHVyZS1pbnRlcnJ1cHRpb24uaHRtbAppbmRleCA2MDkyMmE2NzhkZDU4YzczM2M2ZDIyMjNhNjQ4
ZDE1NTdlMmRiYzZlLi4yYjUzZmNlNmI5ZWYxMDc5OGYyMjg0NDYyZDJhYzdlOWM3MTJkOWRkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1p
bi1waWN0dXJlLWludGVycnVwdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3BpY3R1
cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtaW50ZXJydXB0aW9uLmh0bWwKQEAgLTUs
OSArNSwxNSBAQAogICAgIDxzY3JpcHQgc3JjPSIuLi9tZWRpYS1maWxlLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0PgogICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGFz
eW5jIGV2ZW50ID0+IHsKKyAgICAgICAgICAgIGlmICghd2luZG93LmludGVybmFscykgeworICAg
ICAgICAgICAgICAgIGZhaWxUZXN0KCdUaGlzIHRlc3QgcmVxdWlyZXMgd2luZG93LmludGVybmFs
cy4nKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKICAgICAgICAg
ICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKIAogICAgICAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0QWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sodHJ1ZSknKTsKKyAg
ICAgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFi
bGVkKHRydWUpJyk7CiAKICAgICAgICAgICAgIHJ1bigndmlkZW8uc3JjID0gZmluZE1lZGlhRmls
ZSgidmlkZW8iLCAiLi4vY29udGVudC90ZXN0IiknKTsKICAgICAgICAgICAgIGF3YWl0IHdhaXRG
b3IodmlkZW8sICdjYW5wbGF5dGhyb3VnaCcpOwpAQCAtMTUsNyArMjEsMTAgQEAKICAgICAgICAg
ICAgIHJ1bigndmlkZW8ucGxheSgpJyk7CiAgICAgICAgICAgICBhd2FpdCB3YWl0Rm9yKHZpZGVv
LCAncGxheWluZycpOwogCi0gICAgICAgICAgICBydW5XaXRoS2V5RG93bihmdW5jdGlvbigpeyB2
aWRlby53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdwaWN0dXJlLWluLXBpY3R1cmUnKTsgfSk7
CisgICAgICAgICAgICBydW5XaXRoS2V5RG93bigoKSA9PiB7CisgICAgICAgICAgICAgICAgdmlk
ZW8ud2Via2l0U2V0UHJlc2VudGF0aW9uTW9kZSgncGljdHVyZS1pbi1waWN0dXJlJyk7CisgICAg
ICAgICAgICB9KTsKKwogICAgICAgICAgICAgYXdhaXQgd2FpdEZvcih2aWRlbywgJ3dlYmtpdHBy
ZXNlbnRhdGlvbm1vZGVjaGFuZ2VkJyk7CiAKICAgICAgICAgICAgIHJ1bignaW50ZXJuYWxzLmJl
Z2luTWVkaWFTZXNzaW9uSW50ZXJydXB0aW9uKCJlbnRlcmluZ2JhY2tncm91bmQiKScpOwo=
</data>
<flag name="review"
          id="415358"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399991</attachid>
            <date>2020-05-21 16:02:46 -0700</date>
            <delta_ts>2020-05-21 17:20:36 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-212191-20200521160245.patch</filename>
            <type>text/plain</type>
            <size>43467</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTFlMzJkMmQwMzk0ZDVl
NTRmM2M0NjMwNGViNTAwNTFlZWVlMmVkZS4uYzllODlhMThmZmU4N2NmMzBhMDM5M2FjODJkMjMy
MGM2ZmEzYzhkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIwLTA1LTIxICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IGlzc3VlcyBvZiB0aGUg
UGljdHVyZS1pbi1QaWN0dXJlIEFQSSB1bmRlciBzdHJlc3MgdGVzdHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjE5MQorCisgICAgICAgIFJldmll
d2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBUaGUgY3VycmVudCBpbXBsZW1lbnRhdGlv
biBvZiB0aGUgUGljdHVyZS1pbi1QaWN0dXJlIEFQSSBpcyBub3Qgcm9idXN0IHVuZGVyIHN0cmVz
cyB0ZXN0cy4KKyAgICAgICAgQ2hhbmdpbmcgdGhlIHZpZGVvIHByZXNlbnRhdGlvbiBtb2RlIG9m
IGEgdmlkZW8gZWxlbWVudCBiZXR3ZWVuIGlubGluZSBhbmQgcGljdHVyZS1pbi1waWN0dXJlCisg
ICAgICAgIGNvbnRpbnVvdXNseSBtYXkgY29ycnVwdCB0aGUgaW50ZXJuYWwgc3RhdGVzIG9mIHRo
ZSB2aWRlbyBlbGVtZW50LgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVmYWN0b3JzIHRoZSBhcHBy
b2FjaCB0byB0cmFja2luZyB0aGUgcHJvZ3Jlc3Mgb2YgdmlkZW8gcHJlc2VudGF0aW9uIG1vZGUg
Y2hhbmdlcworICAgICAgICBhbmQgbWFrZSBzdXJlIG5vIG5ldyByZXF1ZXN0UGljdHVyZUluUGlj
dHVyZSgpIG9yIGV4aXRQaWN0dXJlSW5QaWN0dXJlKCkgd2lsbCB0cmlnZ2VyCisgICAgICAgIGEg
cHJlc2VudGF0aW9uIG1vZGUgY2hhbmdlIHVubGVzcyB0aGUgcHJldmlvdXMgb3BlcmF0aW9ucyBh
cmUgY29tcGxldGVkLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyByZW1vdmVzIHRoZSBjb2Rl
IGZvciB0ZXN0aW5nIHB1cnBvc2VzIGluIHRoZSBIVE1MVmlkZW9FbGVtZW50IGNsYXNzLgorCisg
ICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBodG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6dG9QcmVzZW50YXRpb25Nb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxWaWRlb0VsZW1lbnQ6OnNldEZ1bGxzY3JlZW5Nb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxWaWRlb0VsZW1lbnQ6OmZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MVmlkZW9FbGVtZW50OjpkaWRFbnRlckZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFZpZGVvRWxlbWVudDo6ZGlkRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFZpZGVvRWxlbWVudDo6c2V0UGljdHVyZUluUGljdHVyZU9ic2VydmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ6OmRpZEJlY29tZUZ1bGxzY3JlZW5F
bGVtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ6OnNl
dFBpY3R1cmVJblBpY3R1cmVBUElUZXN0RW5hYmxlZCk6IERlbGV0ZWQuCisgICAgICAgICogaHRt
bC9IVE1MVmlkZW9FbGVtZW50Lmg6CisKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFBpY3R1cmVJblBpY3R1cmVBUElUZXN0
RW5hYmxlZCk6IERlbGV0ZWQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisgICAgICAgIFJlbW92ZSBzZXRQaWN0dXJlSW5Q
aWN0dXJlQVBJVGVzdEVuYWJsZWQoKS4KKwogMjAyMC0wNS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6IG1fd3JhcHBlciBvbiBm
YXN0L2V2ZW50cy9zY29wZWQvZWRpdGluZy1jb21tYW5kcy5odG1sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVjNzYz
ZjUwMTZkOWM3ZjA4MDBkMDM1YzdjM2MyODkwNTQ4ZDgzY2UuLjJiODkzNjg0OTkzZmEyYjNlMzQy
NjRiM2M1NGNmOTk4OTVmYTJmZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMDUt
MjEgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBGaXggaXNzdWVz
IG9mIHRoZSBQaWN0dXJlLWluLVBpY3R1cmUgQVBJIHVuZGVyIHN0cmVzcyB0ZXN0cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMTkxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29h
L1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjplbnRlckZ1bGxzY3JlZW4pOgorICAgICAgICBNb2NrIHRo
ZSBiZWhhdmlvciBvZiB0aGUgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlW0FWS2l0fE1hY10gcmVn
YXJkaW5nCisgICAgICAgIHRoZSBQaWN0dXJlLWluLVBpY3R1cmUgbW9kZSBzdXBwb3J0LgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tOgorICAg
ICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1bGxzY3JlZW4p
OgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRDbGVhbnVwRnVs
bHNjcmVlbik6CisgICAgICAgIEFkZCBjYWxsYmFja3MgZm9yIHRoZSBlbmQgb2YgZW50ZXJpbmcv
ZXhpdGluZyBmdWxsc2NyZWVuLgorCiAyMDIwLTA1LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkcmVzcyBwb3N0IHJldmlldyBjb21tZW50cyBmcm9tIE1p
dHogYWZ0ZXIgcjI2MjAwNC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5k
ZXggMmI2OGRlODhmYzgwY2JmNDFlODJjZmI1OWY0MmMwOTY4Mjk3NjUzNi4uZDM5ZGI5MWVjMWM4
ZDBkMGJhYzU4OWYwNmQ1ZmNmZWFmYWJmNTkxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmgKQEAgLTU2MSw3ICs1NjEsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzU3Vz
cGVuZGVkKCkgY29uc3QgZmluYWw7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEJlY29t
ZUZ1bGxzY3JlZW5FbGVtZW50KCkgb3ZlcnJpZGU7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBk
aWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCgpIGZpbmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgd2lsbEV4aXRGdWxsc2NyZWVuKCk7CiAKICNpZiBFTkFCTEUoUElDVFVSRV9JTl9QSUNUVVJF
X0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCmluZGV4IDE2Y2E0
YTMzMGVhZGVkMWZmMjgyMzczNWJkYTg1YTU5YWY5ZTU2NDUuLmJjY2VkNmYyYjNlZTgzYmQxMDk2
ZTI4NmFlZTA4NjhlZTIyYTIyNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFZpZGVvRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVt
ZW50LmNwcApAQCAtNDQyLDYgKzQ0MiwyMSBAQCBzdGF0aWMgaW5saW5lIEhUTUxNZWRpYUVsZW1l
bnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSB0b0Z1bGxzY3JlZW5Nb2RlKEhUTUxWaQogICAg
IHJldHVybiBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25lOwog
fQogCitzdGF0aWMgaW5saW5lIEhUTUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9k
ZSB0b1ByZXNlbnRhdGlvbk1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlIG1vZGUpCit7CisgICAgaWYgKG1vZGUgPT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpW
aWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQpCisgICAgICAgIHJldHVybiBIVE1MVmlkZW9FbGVt
ZW50OjpWaWRlb1ByZXNlbnRhdGlvbk1vZGU6OkZ1bGxzY3JlZW47CisKKyAgICBpZiAobW9kZSAm
IEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVBpY3R1cmVJblBpY3R1
cmUpCisgICAgICAgIHJldHVybiBIVE1MVmlkZW9FbGVtZW50OjpWaWRlb1ByZXNlbnRhdGlvbk1v
ZGU6OlBpY3R1cmVJblBpY3R1cmU7CisKKyAgICBpZiAobW9kZSA9PSBIVE1MTWVkaWFFbGVtZW50
RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25lKQorICAgICAgICByZXR1cm4gSFRNTFZpZGVv
RWxlbWVudDo6VmlkZW9QcmVzZW50YXRpb25Nb2RlOjpJbmxpbmU7CisKKyAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICByZXR1cm4gSFRNTFZpZGVvRWxlbWVudDo6VmlkZW9QcmVzZW50YXRp
b25Nb2RlOjpJbmxpbmU7Cit9CisKIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6d2Via2l0U2V0UHJl
c2VudGF0aW9uTW9kZShWaWRlb1ByZXNlbnRhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBJTkZPX0xP
RyhMT0dJREVOVElGSUVSLCAiLCBtb2RlID0gIiwgIG1vZGUpOwpAQCAtNDUxLDI1ICs0NjYsMTMg
QEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50Ojp3ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKFZpZGVv
UHJlc2VudGF0aW9uTW9kZSBtb2RlKQogdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpzZXRGdWxsc2Ny
ZWVuTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkK
IHsKICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAiLCBtb2RlID0gIiwgbW9kZSk7Ci0jaWYg
RU5BQkxFKFBJQ1RVUkVfSU5fUElDVFVSRV9BUEkpCi0gICAgaWYgKG1fcGljdHVyZUluUGljdHVy
ZUFQSVRlc3RFbmFibGVkKSB7Ci0gICAgICAgIGlmIChtb2RlID09IFZpZGVvRnVsbHNjcmVlbk1v
ZGVQaWN0dXJlSW5QaWN0dXJlKSB7Ci0gICAgICAgICAgICBmdWxsc2NyZWVuTW9kZUNoYW5nZWQo
bW9kZSk7Ci0gICAgICAgICAgICBkaWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCgpOwotICAgICAg
ICAgICAgc2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoezAsIDAsIDEwMCwgMTAwfSk7Ci0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobW9kZSA9PSBWaWRlb0Z1bGxz
Y3JlZW5Nb2RlTm9uZSkgewotICAgICAgICAgICAgZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKG1vZGUp
OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotI2VuZGlmCiAKICAgICBp
ZiAobW9kZSA9PSBWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSkgewotICAgICAgICBpZiAoaXNGdWxs
c2NyZWVuKCkpCisgICAgICAgIGlmIChpc0Z1bGxzY3JlZW4oKSkgeworICAgICAgICAgICAgaWYg
KHRvUHJlc2VudGF0aW9uTW9kZShmdWxsc2NyZWVuTW9kZSgpKSA9PSBWaWRlb1ByZXNlbnRhdGlv
bk1vZGU6OlBpY3R1cmVJblBpY3R1cmUpCisgICAgICAgICAgICAgICAgbV9pc0VudGVyaW5nT3JF
eGl0aW5nUGljdHVyZUluUGljdHVyZSA9IHRydWU7CiAgICAgICAgICAgICBleGl0RnVsbHNjcmVl
bigpOworICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTQ3NywyMiArNDgw
LDEwIEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6c2V0RnVsbHNjcmVlbk1vZGUoSFRNTE1lZGlh
RWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5NCiAgICAgaWYgKCFtZWRpYVNlc3Npb24oKS5m
dWxsc2NyZWVuUGVybWl0dGVkKCkgfHwgIXN1cHBvcnRzRnVsbHNjcmVlbihtb2RlKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgZW50ZXJGdWxsc2NyZWVuKG1vZGUpOwotfQotCi1zdGF0aWMgSFRN
TFZpZGVvRWxlbWVudDo6VmlkZW9QcmVzZW50YXRpb25Nb2RlIHRvUHJlc2VudGF0aW9uTW9kZShI
VE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKLXsKLSAgICBp
ZiAobW9kZSA9PSBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFu
ZGFyZCkKLSAgICAgICAgcmV0dXJuIEhUTUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9u
TW9kZTo6RnVsbHNjcmVlbjsKLQotICAgIGlmIChtb2RlICYgSFRNTE1lZGlhRWxlbWVudEVudW1z
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSkKLSAgICAgICAgcmV0dXJuIEhU
TUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9kZTo6UGljdHVyZUluUGljdHVyZTsK
KyAgICBpZiAobW9kZSA9PSBWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSkKKyAg
ICAgICAgbV9pc0VudGVyaW5nT3JFeGl0aW5nUGljdHVyZUluUGljdHVyZSA9IHRydWU7CiAKLSAg
ICBpZiAobW9kZSA9PSBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVO
b25lKQotICAgICAgICByZXR1cm4gSFRNTFZpZGVvRWxlbWVudDo6VmlkZW9QcmVzZW50YXRpb25N
b2RlOjpJbmxpbmU7Ci0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gSFRN
TFZpZGVvRWxlbWVudDo6VmlkZW9QcmVzZW50YXRpb25Nb2RlOjpJbmxpbmU7CisgICAgZW50ZXJG
dWxsc2NyZWVuKG1vZGUpOwogfQogCiBhdXRvIEhUTUxWaWRlb0VsZW1lbnQ6OndlYmtpdFByZXNl
bnRhdGlvbk1vZGUoKSBjb25zdCAtPiBWaWRlb1ByZXNlbnRhdGlvbk1vZGUKQEAgLTUwNSwxOCAr
NDk2LDYgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpmdWxsc2NyZWVuTW9kZUNoYW5nZWQoVmlk
ZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQogICAgIGlmIChtb2RlICE9IGZ1bGxzY3JlZW5Nb2RlKCkp
IHsKICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgImNoYW5nZWQgZnJvbSAiLCBmdWxs
c2NyZWVuTW9kZSgpLCAiLCB0byAiLCBtb2RlKTsKICAgICAgICAgc2NoZWR1bGVFdmVudChldmVu
dE5hbWVzKCkud2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWRFdmVudCk7Ci0KLSNpZiBFTkFC
TEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkKLSAgICAgICAgaWYgKG1fcGljdHVyZUluUGljdHVy
ZU9ic2VydmVyKSB7Ci0gICAgICAgICAgICBIVE1MVmlkZW9FbGVtZW50OjpWaWRlb1ByZXNlbnRh
dGlvbk1vZGUgdGFyZ2V0VmlkZW9QcmVzZW50YXRpb25Nb2RlID0gdG9QcmVzZW50YXRpb25Nb2Rl
KG1vZGUpOwotICAgICAgICAgICAgSFRNTFZpZGVvRWxlbWVudDo6VmlkZW9QcmVzZW50YXRpb25N
b2RlIHNvdXJjZVZpZGVvUHJlc2VudGF0aW9uTW9kZSA9IHRvUHJlc2VudGF0aW9uTW9kZShmdWxs
c2NyZWVuTW9kZSgpKTsKLQotICAgICAgICAgICAgaWYgKHRhcmdldFZpZGVvUHJlc2VudGF0aW9u
TW9kZSAhPSBIVE1MVmlkZW9FbGVtZW50OjpWaWRlb1ByZXNlbnRhdGlvbk1vZGU6OlBpY3R1cmVJ
blBpY3R1cmUgJiYgc291cmNlVmlkZW9QcmVzZW50YXRpb25Nb2RlID09IEhUTUxWaWRlb0VsZW1l
bnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9kZTo6UGljdHVyZUluUGljdHVyZSkgewotICAgICAgICAg
ICAgICAgIG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyLT5kaWRFeGl0UGljdHVyZUluUGljdHVy
ZSgpOwotICAgICAgICAgICAgICAgIG1faXNGdWxsc2NyZWVuID0gZmFsc2U7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSNlbmRpZgogICAgIH0KIAogICAgIGlmIChwbGF5ZXIoKSkKQEAgLTUy
NSw1NSArNTA0LDU1IEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6ZnVsbHNjcmVlbk1vZGVDaGFu
Z2VkKFZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKICAgICBIVE1MTWVkaWFFbGVtZW50OjpmdWxs
c2NyZWVuTW9kZUNoYW5nZWQobW9kZSk7CiB9CiAKLSNpZiBFTkFCTEUoUElDVFVSRV9JTl9QSUNU
VVJFX0FQSSkKLXZvaWQgSFRNTFZpZGVvRWxlbWVudDo6ZGlkQmVjb21lRnVsbHNjcmVlbkVsZW1l
bnQoKQordm9pZCBIVE1MVmlkZW9FbGVtZW50OjpkaWRFbnRlckZ1bGxzY3JlZW4oKQogewotICAg
IG1faXNGdWxsc2NyZWVuID0gdHJ1ZTsKLSAgICBtX3dhaXRpbmdGb3JQaWN0dXJlSW5QaWN0dXJl
V2luZG93RnJhbWUgPSB0cnVlOwotICAgIEhUTUxNZWRpYUVsZW1lbnQ6OmRpZEJlY29tZUZ1bGxz
Y3JlZW5FbGVtZW50KCk7CisgICAgaWYgKG1faXNFbnRlcmluZ09yRXhpdGluZ1BpY3R1cmVJblBp
Y3R1cmUpCisgICAgICAgIG1faXNXYWl0aW5nRm9yUGljdHVyZUluUGljdHVyZVdpbmRvd0ZyYW1l
ID0gdHJ1ZTsKIH0KIAotdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpzZXRQaWN0dXJlSW5QaWN0dXJl
T2JzZXJ2ZXIoUGljdHVyZUluUGljdHVyZU9ic2VydmVyKiBvYnNlcnZlcikKK3ZvaWQgSFRNTFZp
ZGVvRWxlbWVudDo6ZGlkRXhpdEZ1bGxzY3JlZW4oKQogewotICAgIG1fcGljdHVyZUluUGljdHVy
ZU9ic2VydmVyID0gb2JzZXJ2ZXI7Ci19Ci0KLXZvaWQgSFRNTFZpZGVvRWxlbWVudDo6c2V0UGlj
dHVyZUluUGljdHVyZUFQSVRlc3RFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX3BpY3R1
cmVJblBpY3R1cmVBUElUZXN0RW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0jZW5kaWYKLQorICAgIGlm
IChtX2lzRW50ZXJpbmdPckV4aXRpbmdQaWN0dXJlSW5QaWN0dXJlKSB7CisgICAgICAgIG1faXNF
bnRlcmluZ09yRXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKKyNpZiBFTkFCTEUoUElD
VFVSRV9JTl9QSUNUVVJFX0FQSSkKKyAgICAgICAgaWYgKG1fcGljdHVyZUluUGljdHVyZU9ic2Vy
dmVyKQorICAgICAgICAgICAgbV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXItPmRpZEV4aXRQaWN0
dXJlSW5QaWN0dXJlKCk7CiAjZW5kaWYKKyAgICB9Cit9CiAKLSNpZiBFTkFCTEUoVklERU9fUFJF
U0VOVEFUSU9OX01PREUpCiB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnNldFZpZGVvRnVsbHNjcmVl
bkZyYW1lKEZsb2F0UmVjdCBmcmFtZSkKIHsKICAgICBIVE1MTWVkaWFFbGVtZW50OjpzZXRWaWRl
b0Z1bGxzY3JlZW5GcmFtZShmcmFtZSk7CiAKKyAgICBpZiAobV9pc1dhaXRpbmdGb3JQaWN0dXJl
SW5QaWN0dXJlV2luZG93RnJhbWUpIHsKKyAgICAgICAgbV9pc1dhaXRpbmdGb3JQaWN0dXJlSW5Q
aWN0dXJlV2luZG93RnJhbWUgPSBmYWxzZTsKKyAgICAgICAgbV9pc0VudGVyaW5nT3JFeGl0aW5n
UGljdHVyZUluUGljdHVyZSA9IGZhbHNlOwogI2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RVUkVf
QVBJKQotICAgIC8vIGZ1bGxzY3JlZW5Nb2RlKCkgZG9lcyBub3QgYWx3YXlzIHByb3ZpZGUgdGhl
IGNvcnJlY3QgZnVsbHNjcmVlbiBtb2RlCi0gICAgLy8gd2hlbiBtb2RlIGNoYW5naW5nIGlzIGhh
cHBlbmluZyAod2Via2l0Lm9yZy9iLzIwMzQ0MykKLSAgICBpZiAoIW1faXNGdWxsc2NyZWVuKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAodG9QcmVzZW50YXRpb25Nb2RlKGZ1bGxzY3JlZW5N
b2RlKCkpICE9IFZpZGVvUHJlc2VudGF0aW9uTW9kZTo6UGljdHVyZUluUGljdHVyZSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgaWYgKG1fd2FpdGluZ0ZvclBpY3R1cmVJblBpY3R1cmVXaW5kb3dG
cmFtZSkgewotICAgICAgICBtX3dhaXRpbmdGb3JQaWN0dXJlSW5QaWN0dXJlV2luZG93RnJhbWUg
PSBmYWxzZTsKICAgICAgICAgaWYgKG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyKQogICAgICAg
ICAgICAgbV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXItPmRpZEVudGVyUGljdHVyZUluUGljdHVy
ZShJbnRTaXplKGZyYW1lLnNpemUoKSkpOwotCisjZW5kaWYKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIGlmIChtX3BpY3R1cmVJblBpY3R1cmVPYnNlcnZlcikKKyAgICBpZiAodG9QcmVz
ZW50YXRpb25Nb2RlKGZ1bGxzY3JlZW5Nb2RlKCkpICE9IFZpZGVvUHJlc2VudGF0aW9uTW9kZTo6
UGljdHVyZUluUGljdHVyZSkKKyAgICAgICAgcmV0dXJuOworCisjaWYgRU5BQkxFKFBJQ1RVUkVf
SU5fUElDVFVSRV9BUEkpCisgICAgaWYgKCFtX2lzRW50ZXJpbmdPckV4aXRpbmdQaWN0dXJlSW5Q
aWN0dXJlICYmIG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyKQogICAgICAgICBtX3BpY3R1cmVJ
blBpY3R1cmVPYnNlcnZlci0+cGljdHVyZUluUGljdHVyZVdpbmRvd1Jlc2l6ZWQoSW50U2l6ZShm
cmFtZS5zaXplKCkpKTsKICNlbmRpZgogfQorCisjaWYgRU5BQkxFKFBJQ1RVUkVfSU5fUElDVFVS
RV9BUEkpCit2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnNldFBpY3R1cmVJblBpY3R1cmVPYnNlcnZl
cihQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIqIG9ic2VydmVyKQoreworICAgIG1fcGljdHVyZUlu
UGljdHVyZU9ic2VydmVyID0gb2JzZXJ2ZXI7Cit9CiAjZW5kaWYKIAorI2VuZGlmIC8vIEVOQUJM
RShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKwogI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxF
KFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpleGl0VG9G
dWxsc2NyZWVuTW9kZVdpdGhvdXRBbmltYXRpb25JZlBvc3NpYmxlKEhUTUxNZWRpYUVsZW1lbnRF
bnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBmcm9tTW9kZSwgSFRNTE1lZGlhRWxlbWVudEVudW1z
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHRvTW9kZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlk
ZW9FbGVtZW50LmgKaW5kZXggZWQ5MjE4M2Q0N2JiYzNlYjEyMTAwMzNmOWJmZWM3YjI2YzA1NmVi
Yi4uYTUyNGZmNDk2OTZhYTM1Y2M2NGU4YzM3NjNkMzI4YjcyZGI3ZGIzZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKQEAgLTg5LDE3ICs4OSwxNSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRGdWxsc2NyZWVuTW9kZShWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKICAgICB2b2lk
IGZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZChWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBmaW5hbDsKIAorICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuKCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbigpOworICAgIHZvaWQgc2V0VmlkZW9GdWxsc2Ny
ZWVuRnJhbWUoRmxvYXRSZWN0KSBmaW5hbDsKKwogI2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RV
UkVfQVBJKQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkQmVjb21lRnVsbHNjcmVlbkVsZW1l
bnQoKSBmaW5hbDsKICAgICB2b2lkIHNldFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlcihQaWN0dXJl
SW5QaWN0dXJlT2JzZXJ2ZXIqKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFBpY3R1cmVJ
blBpY3R1cmVBUElUZXN0RW5hYmxlZChib29sKTsKICNlbmRpZgogI2VuZGlmCiAKLSNpZiBFTkFC
TEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCi0gICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5G
cmFtZShGbG9hdFJlY3QpIGZpbmFsOwotI2VuZGlmCi0KICNpZiBQTEFURk9STShNQUMpICYmIEVO
QUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKICAgICB2b2lkIGV4aXRUb0Z1bGxzY3JlZW5N
b2RlV2l0aG91dEFuaW1hdGlvbklmUG9zc2libGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlIGZyb21Nb2RlLCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVs
bHNjcmVlbk1vZGUgdG9Nb2RlKTsKICNlbmRpZgpAQCAtMTM2LDEyICsxMzQsMTAgQEAgcHJpdmF0
ZToKICAgICB1bnNpZ25lZCBtX2xhc3RSZXBvcnRlZFZpZGVvV2lkdGggeyAwIH07CiAgICAgdW5z
aWduZWQgbV9sYXN0UmVwb3J0ZWRWaWRlb0hlaWdodCB7IDAgfTsKIAorICAgIGJvb2wgbV9pc0Vu
dGVyaW5nT3JFeGl0aW5nUGljdHVyZUluUGljdHVyZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lz
V2FpdGluZ0ZvclBpY3R1cmVJblBpY3R1cmVXaW5kb3dGcmFtZSB7IGZhbHNlIH07CiAjaWYgRU5B
QkxFKFBJQ1RVUkVfSU5fUElDVFVSRV9BUEkpCi0gICAgYm9vbCBtX3dhaXRpbmdGb3JQaWN0dXJl
SW5QaWN0dXJlV2luZG93RnJhbWUgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc0Z1bGxzY3JlZW4g
eyBmYWxzZSB9OwogICAgIFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlciogbV9waWN0dXJlSW5QaWN0
dXJlT2JzZXJ2ZXIgeyBudWxscHRyIH07Ci0KLSAgICBib29sIG1fcGljdHVyZUluUGljdHVyZUFQ
SVRlc3RFbmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCmluZGV4IGM3MzRmNTBkYmMyNjhhZjAyYjZiNWUwODZiMWM1ZTllOTFhMTJk
MTIuLmQ1OGI1Y2Q0ZDgzMjA2MzJhYjQyNDYzMmVlODBkZTEzZDM3ZDk2MWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTU2MDQsMTMgKzU2MDQsNiBAQCB2b2lkIEludGVy
bmFsczo6c2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbihjb25zdCBNb2NrV2Vi
QXV0aGVudGljYXRpbwogfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoUElDVFVSRV9JTl9QSUNUVVJF
X0FQSSkKLXZvaWQgSW50ZXJuYWxzOjpzZXRQaWN0dXJlSW5QaWN0dXJlQVBJVGVzdEVuYWJsZWQo
SFRNTFZpZGVvRWxlbWVudCYgdmlkZW9FbGVtZW50LCBib29sIGVuYWJsZWQpCi17Ci0gICAgdmlk
ZW9FbGVtZW50LnNldFBpY3R1cmVJblBpY3R1cmVBUElUZXN0RW5hYmxlZChlbmFibGVkKTsKLX0K
LSNlbmRpZgotCiB2b2lkIEludGVybmFsczo6c2V0TWF4Q2FudmFzUGl4ZWxNZW1vcnkodW5zaWdu
ZWQgc2l6ZSkKIHsKICAgICBIVE1MQ2FudmFzRWxlbWVudDo6c2V0TWF4UGl4ZWxNZW1vcnlGb3JU
ZXN0aW5nKHNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggNzM4Y2JhZGI4
ODM3ZGZiNDgzNTY2NDc3YWJkYjdiMjdiM2UwNThhYy4uMWViODc5MzNjZWY1MGI3OGM0YTU2ZmRl
ZDczNTYyNmQ5ZmY0OTRlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC05ODcs
MTAgKzk4Nyw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNv
bmZpZ3VyYXRpb24oY29uc3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbiYpOwog
I2VuZGlmCiAKLSNpZiBFTkFCTEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkKLSAgICB2b2lkIHNl
dFBpY3R1cmVJblBpY3R1cmVBUElUZXN0RW5hYmxlZChIVE1MVmlkZW9FbGVtZW50JiwgYm9vbCk7
Ci0jZW5kaWYKLQogICAgIGludCBwcm9jZXNzSWRlbnRpZmllcigpIGNvbnN0OwogCiAgICAgUmVm
PEludGVybmFsc1NldExpa2U+IGNyZWF0ZUludGVybmFsc1NldExpa2UoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCBlYzJmNzRjNGU5M2E1ZDE1MmU0ZWE4NTY0M2MzZmY0
NjI4ODQxM2I4Li5jMTM5NmIwYjQwZjlhMmNiNzNiMGRiMTVkYTY4ZGMwYmVhYmQ0YzUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC04ODYsOCArODg2LDYgQEAgZW51bSBD
b21wb3NpdGluZ1BvbGljeSB7CiAKICAgICBbQ29uZGl0aW9uYWw9V0VCX0FVVEhOXSB2b2lkIHNl
dE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oTW9ja1dlYkF1dGhlbnRpY2F0aW9u
Q29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKTsKIAotICAgIFtDb25kaXRpb25hbD1QSUNUVVJF
X0lOX1BJQ1RVUkVfQVBJXSB2b2lkIHNldFBpY3R1cmVJblBpY3R1cmVBUElUZXN0RW5hYmxlZChI
VE1MVmlkZW9FbGVtZW50IHZpZGVvRWxlbWVudCwgYm9vbGVhbiBlbmFibGVkKTsKLQogICAgIElu
dGVybmFsc01hcExpa2UgY3JlYXRlSW50ZXJuYWxzTWFwTGlrZSgpOwogICAgIEludGVybmFsc1Nl
dExpa2UgY3JlYXRlSW50ZXJuYWxzU2V0TGlrZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0K
aW5kZXggM2U1YWMxYmY3MzkzNGZjNzhkY2U0ZmRjZjU4ZGI0YjQxNmQ2MmU2Ny4uNDFkOTRkMzky
NmQwN2NmNTM3OGU3ZjZmYzA5OGM0NmEzNDFiNGQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5t
bQpAQCAtNTU0LDYgKzU1NCw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojpl
bnRlckZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQogICAgIE1FU1NBR0VfQ0hFQ0tfQ09O
VEVYVElEKGNvbnRleHRJZCk7CiAgICAgaWYgKG1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVu
YWJsZWQpIHsKICAgICAgICAgZGlkRW50ZXJGdWxsc2NyZWVuKGNvbnRleHRJZCk7CisgICAgICAg
IHNldFZpZGVvTGF5ZXJGcmFtZShjb250ZXh0SWQsIHswLCAwLCAyMDAsIDE1MH0pOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCmluZGV4IGUwMjZmNWU2NDk2YzFiZjcx
Mzg0NGMwNzRhNDZjOWU0ZDkyM2I4MjQuLjIzZDE1YWRlZDBkZDA5YjBmNDA3MGFkOTkyNmY2ZDIz
NzJhYjM3M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCkBAIC00NDEsNiArNDQxLDggQEAgdm9pZCBWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElk
KQogICAgIGlmICghdmlkZW9FbGVtZW50KQogICAgICAgICByZXR1cm47CiAKKyAgICB2aWRlb0Vs
ZW1lbnQtPmRpZEVudGVyRnVsbHNjcmVlbigpOworCiAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0
Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB2
aWRlb0VsZW1lbnRdIHsKICAgICAgICAgdmlkZW9FbGVtZW50LT5kaWRCZWNvbWVGdWxsc2NyZWVu
RWxlbWVudCgpOwogICAgIH0pOwpAQCAtNTA1LDYgKzUwNyw4IEBAIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcjo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQogCiAg
ICAgbW9kZWwtPnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKG5pbCk7CiAgICAgUmVmUHRyPEhUTUxW
aWRlb0VsZW1lbnQ+IHZpZGVvRWxlbWVudCA9IG1vZGVsLT52aWRlb0VsZW1lbnQoKTsKKyAgICBp
ZiAodmlkZW9FbGVtZW50KQorICAgICAgICB2aWRlb0VsZW1lbnQtPmRpZEV4aXRGdWxsc2NyZWVu
KCk7CiAKICAgICBpbnRlcmZhY2UtPnNldEZ1bGxzY3JlZW5Nb2RlKEhUTUxNZWRpYUVsZW1lbnRF
bnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpOwogICAgIGludGVyZmFjZS0+c2V0RnVsbHNj
cmVlblN0YW5kYnkoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNmZTI3OWE5ZGQ4MGZkYWFlZTZlMmQzNjc0Y2Qx
ZTQ2OTIzNWYwNzYuLjBmYjZkOGUyYTM4OTc1YTVkOWVmNzg3NzVkZmIyYzBlMDFhYjBhZTUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzNSBAQAorMjAyMC0wNS0yMSAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBw
bGUuY29tPgorCisgICAgICAgIEZpeCBpc3N1ZXMgb2YgdGhlIFBpY3R1cmUtaW4tUGljdHVyZSBB
UEkgdW5kZXIgc3RyZXNzIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTIxOTEKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24u
CisKKyAgICAgICAgUmVmYWN0b3IgdGhlIGxheW91dCB0ZXN0cyBmb3IgdGhlIFBpY3R1cmUtaW4t
UGljdHVyZSBBUEkgd2l0aCB0aGUgTW9jayBWaWRlb1ByZXNlbnRhdGlvbiBNb2RlLgorCisgICAg
ICAgICogbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktY3Nz
LXNlbGVjdG9yLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBtZWRpYS9waWN0dXJlLWluLXBpY3R1
cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1jc3Mtc2VsZWN0b3IuaHRtbDoKKyAgICAgICAgKiBt
ZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1lbnRlci1waXAt
MS1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1
cmUtaW4tcGljdHVyZS1hcGktZW50ZXItcGlwLTEuaHRtbDoKKyAgICAgICAgKiBtZWRpYS9waWN0
dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1lbnRlci1waXAtMi1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGlj
dHVyZS1hcGktZW50ZXItcGlwLTIuaHRtbDoKKyAgICAgICAgKiBtZWRpYS9waWN0dXJlLWluLXBp
Y3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1lbnRlci1waXAtMy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGkt
ZW50ZXItcGlwLTMuaHRtbDoKKyAgICAgICAgKiBtZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGlj
dHVyZS1pbi1waWN0dXJlLWFwaS1lbnRlci1waXAtNC1leHBlY3RlZC50eHQ6CisgICAgICAgICog
bWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktZW50ZXItcGlw
LTQuaHRtbDoKKyAgICAgICAgKiBtZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1w
aWN0dXJlLWFwaS1ldmVudHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIG1lZGlhL3BpY3R1cmUt
aW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWV2ZW50cy5odG1sOgorICAgICAgICAq
IG1lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWV4aXQtcGlw
LTEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIG1lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0
dXJlLWluLXBpY3R1cmUtYXBpLWV4aXQtcGlwLTEuaHRtbDoKKyAgICAgICAgKiBtZWRpYS9waWN0
dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1leGl0LXBpcC0yLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBtZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0
dXJlLWFwaS1leGl0LXBpcC0yLmh0bWw6CisgICAgICAgICogbWVkaWEvcGljdHVyZS1pbi1waWN0
dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktcGlwLXdpbmRvdy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktcGlw
LXdpbmRvdy5odG1sOgorICAgICAgICAqIG1lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJl
LWluLXBpY3R1cmUtZXZlbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBtZWRpYS9waWN0dXJl
LWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWV2ZW50cy5odG1sOgorICAgICAgICAqIG1l
ZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtaW50ZXJydXB0aW9uLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBtZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1p
bi1waWN0dXJlLWludGVycnVwdGlvbi5odG1sOgorCiAyMDIwLTA1LTIxICBKYWNvYiBVcGhvZmYg
IDxqYWNvYl91cGhvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIExheW91dFRlc3QgY29tcG9zaXRp
bmcvdmlkZW8vdmlkZW8tcG9zdGVyLmh0bWwgaXMgYSBmbGFreSBmYWlsdXJlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJl
LWFwaS1jc3Mtc2VsZWN0b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVy
ZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktY3NzLXNlbGVjdG9yLWV4cGVjdGVk
LnR4dAppbmRleCAwMWZmMmI3NGI1MzM2NDczZWNjZWM0NTI0NTY0NTFhNDRlMmI5NzM0Li5kZWE1
OTg4MzZjYjQ5MmM2NTU1MzA5MWE3ZjM4NTM4ZDYzNTM4MWE5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1jc3Mt
c2VsZWN0b3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4t
cGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWNzcy1zZWxlY3Rvci1leHBlY3RlZC50eHQK
QEAgLTEsNyArMSw3IEBACiBUaGlzIHRlc3RzIHRoYXQgZW50ZXJpbmcgYW5kIGxlYXZpbmcgUGlj
dHVyZS1pbi1QaWN0dXJlIHRvZ2dsZXMgQ1NTIHNlbGVjdG9yLgogCiBSVU4oaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKHRydWUpKQotUlVO
KGludGVybmFscy5zZXRQaWN0dXJlSW5QaWN0dXJlQVBJVGVzdEVuYWJsZWQodmlkZW8sIHRydWUp
KQorUlVOKGludGVybmFscy5zZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCh0cnVl
KSkKIFJVTih2aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxlKCJ2aWRlbyIsICIuLi9jb250ZW50L3Rl
c3QiKSkKIEVWRU5UKGNhbnBsYXl0aHJvdWdoKQogRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUo
dmlkZW8pLmNvbG9yID09ICdyZ2IoMCwgMCwgMjU1KScpIE9LCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1jc3Mt
c2VsZWN0b3IuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0
dXJlLWluLXBpY3R1cmUtYXBpLWNzcy1zZWxlY3Rvci5odG1sCmluZGV4IDBmYzI1MmM4ZDNmOTc5
ZDk0OWUzYWZmOTc5NmZhZWYyYjc3YzFjYWQuLjJmOWJkNDQ2NmFmYjc0MmRkODNhMGZkNmY2NjA2
M2M5MWQwMGRhOTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGlj
dHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWNzcy1zZWxlY3Rvci5odG1sCisrKyBiL0xheW91
dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWNz
cy1zZWxlY3Rvci5odG1sCkBAIC0xNywxNiArMTcsMjQgQEAKICAgICA8L3N0eWxlPgogICAgIDxz
Y3JpcHQ+CiAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZXZl
bnQgPT4geworICAgICAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAg
ICAgICAgZmFpbFRlc3QoJ1RoaXMgdGVzdCByZXF1aXJlcyB3aW5kb3cuaW50ZXJuYWxzLicpOwor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgZmlu
ZE1lZGlhRWxlbWVudCgpOwogCiAgICAgICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5z
ZXRBbGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayh0cnVlKScpOwotICAgICAgICAg
ICAgcnVuKCdpbnRlcm5hbHMuc2V0UGljdHVyZUluUGljdHVyZUFQSVRlc3RFbmFibGVkKHZpZGVv
LCB0cnVlKScpOworICAgICAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0TW9ja1ZpZGVvUHJlc2Vu
dGF0aW9uTW9kZUVuYWJsZWQodHJ1ZSknKTsKIAogICAgICAgICAgICAgcnVuKCd2aWRlby5zcmMg
PSBmaW5kTWVkaWFGaWxlKCJ2aWRlbyIsICIuLi9jb250ZW50L3Rlc3QiKScpOwogICAgICAgICAg
ICAgYXdhaXQgd2FpdEZvcih2aWRlbywgJ2NhbnBsYXl0aHJvdWdoJyk7CiAgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoJ2dldENvbXB1dGVkU3R5bGUodmlkZW8pLmNvbG9yJywgJ3JnYigwLCAwLCAy
NTUpJyk7CiAKLSAgICAgICAgICAgIHJ1bldpdGhLZXlEb3duKGZ1bmN0aW9uKCkgeyB2aWRlby5y
ZXF1ZXN0UGljdHVyZUluUGljdHVyZSgpIH0pOworICAgICAgICAgICAgcnVuV2l0aEtleURvd24o
KCkgPT4geworICAgICAgICAgICAgICAgIHZpZGVvLnJlcXVlc3RQaWN0dXJlSW5QaWN0dXJlKCk7
CisgICAgICAgICAgICB9KTsKKwogICAgICAgICAgICAgYXdhaXQgd2FpdEZvcih2aWRlbywgJ2Vu
dGVycGljdHVyZWlucGljdHVyZScpOwogICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCdnZXRDb21w
dXRlZFN0eWxlKHZpZGVvKS5jb2xvcicsICdyZ2IoMCwgMjU1LCAwKScpOwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJl
LWFwaS1lbnRlci1waXAtMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJl
LWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1lbnRlci1waXAtMS1leHBlY3RlZC50
eHQKaW5kZXggNTEyNWU1MzUyYjE3NWMxOTZmNTUzN2Y4MTc4NzQxYjQwMDk3ZDlmZC4uZDdjNzFh
ZTgyZTc1MWY5NTlhMmZhOGQ2MDkxNjNmMmViMWNjODQ5ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktZW50ZXIt
cGlwLTEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGlj
dHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWVudGVyLXBpcC0xLWV4cGVjdGVkLnR4dApAQCAt
MSw3ICsxLDcgQEAKIFRoaXMgdGVzdHMgdGhhdCByZXF1ZXN0IFBpY3R1cmUtaW4tUGljdHVyZSBy
ZXF1aXJlcyBhIHVzZXIgZ2VzdHVyZS4KIAogUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxv
d3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayh0cnVlKSkKLVJVTihpbnRlcm5hbHMuc2V0
UGljdHVyZUluUGljdHVyZUFQSVRlc3RFbmFibGVkKHZpZGVvLCB0cnVlKSkKK1JVTihpbnRlcm5h
bHMuc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQodHJ1ZSkpCiBSVU4odmlkZW8u
c3JjID0gZmluZE1lZGlhRmlsZSgidmlkZW8iLCAiLi4vY29udGVudC90ZXN0IikpCiBFVkVOVChj
YW5wbGF5dGhyb3VnaCkKIEVYUEVDVEVEIChlcnJvci5uYW1lID09ICdOb3RBbGxvd2VkRXJyb3In
KSBPSwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3Bp
Y3R1cmUtaW4tcGljdHVyZS1hcGktZW50ZXItcGlwLTEuaHRtbCBiL0xheW91dFRlc3RzL21lZGlh
L3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWVudGVyLXBpcC0xLmh0
bWwKaW5kZXggNzlkOGZkZmFlMjU0OGU4NDQ2ZGI3NWI5OWNjMDA2NmZlYjQ3YWUzZS4uZDY3YTMx
ODczN2VlNWU4NjdmNTgxOWEwMDIxNTIxNTE5ZGJhYjJkYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktZW50ZXIt
cGlwLTEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGlj
dHVyZS1pbi1waWN0dXJlLWFwaS1lbnRlci1waXAtMS5odG1sCkBAIC01LDEwICs1LDE2IEBACiAg
ICAgPHNjcmlwdCBzcmM9Ii4uL21lZGlhLWZpbGUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+
CiAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZXZlbnQgPT4g
eworICAgICAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAg
ZmFpbFRlc3QoJ1RoaXMgdGVzdCByZXF1aXJlcyB3aW5kb3cuaW50ZXJuYWxzLicpOworICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgZmluZE1lZGlh
RWxlbWVudCgpOwogCiAgICAgICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxv
d3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayh0cnVlKScpOwotICAgICAgICAgICAgcnVu
KCdpbnRlcm5hbHMuc2V0UGljdHVyZUluUGljdHVyZUFQSVRlc3RFbmFibGVkKHZpZGVvLCB0cnVl
KScpOworICAgICAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9u
TW9kZUVuYWJsZWQodHJ1ZSknKTsKKwogICAgICAgICAgICAgcnVuKCd2aWRlby5zcmMgPSBmaW5k
TWVkaWFGaWxlKCJ2aWRlbyIsICIuLi9jb250ZW50L3Rlc3QiKScpOwogICAgICAgICAgICAgYXdh
aXQgd2FpdEZvcih2aWRlbywgJ2NhbnBsYXl0aHJvdWdoJyk7CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWVu
dGVyLXBpcC0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGlj
dHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWVudGVyLXBpcC0yLWV4cGVjdGVkLnR4dAppbmRl
eCA0ODk4NDA1NjI5M2RiOWRjMmQwMmU4MGZkZTQyOTM3MTI1Zjk2NGY5Li5mZGVjN2RlZWQ0OWFm
ZGQwZGQzODdkODE0OTQyNWY0OTY5YmQwMTk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRp
YS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1lbnRlci1waXAtMi1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3Bp
Y3R1cmUtaW4tcGljdHVyZS1hcGktZW50ZXItcGlwLTItZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEs
NyBAQAogVGhpcyB0ZXN0cyB0aGF0IHJlcXVlc3QgUGljdHVyZS1pbi1QaWN0dXJlIHJlcXVpcmVz
IGxvYWRlZCBtZXRhZGF0YSBmb3IgdGhlIHZpZGVvIGVsZW1lbnQuCiAKIFJVTihpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0QWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sodHJ1ZSkpCi1S
VU4oaW50ZXJuYWxzLnNldFBpY3R1cmVJblBpY3R1cmVBUElUZXN0RW5hYmxlZCh2aWRlbywgdHJ1
ZSkpCitSVU4oaW50ZXJuYWxzLnNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKHRy
dWUpKQogRVhQRUNURUQgKGVycm9yLm5hbWUgPT0gJ0ludmFsaWRTdGF0ZUVycm9yJykgT0sKIEVO
RCBPRiBURVNUCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGlj
dHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWVudGVyLXBpcC0yLmh0bWwgYi9MYXlvdXRUZXN0
cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1lbnRlci1w
aXAtMi5odG1sCmluZGV4IDkzY2Y4ZmQ0NDAwZTY2ZDgzZjAzOWU2OWI3MTRmODFiZWZlOTg5NGEu
LmIzZTFlYjUxNTQ5NTViMDQyNmJmMThiNjRmYmJkNTU1OTAyOWI3YzcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBp
LWVudGVyLXBpcC0yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0
dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktZW50ZXItcGlwLTIuaHRtbApAQCAtNSwxMSArNSwx
NyBAQAogICAgIDxzY3JpcHQgc3JjPSIuLi9tZWRpYS1maWxlLmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0PgogICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGFzeW5jIGV2
ZW50ID0+IHsKKyAgICAgICAgICAgIGlmICghd2luZG93LmludGVybmFscykgeworICAgICAgICAg
ICAgICAgIGZhaWxUZXN0KCdUaGlzIHRlc3QgcmVxdWlyZXMgd2luZG93LmludGVybmFscy4nKTsK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIGZp
bmRNZWRpYUVsZW1lbnQoKTsKIAogICAgICAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0QWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sodHJ1ZSknKTsKLSAgICAgICAg
ICAgIHJ1bignaW50ZXJuYWxzLnNldFBpY3R1cmVJblBpY3R1cmVBUElUZXN0RW5hYmxlZCh2aWRl
bywgdHJ1ZSknKTsKLSAgICAgICAgICAgIHJ1bldpdGhLZXlEb3duKGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJs
ZWQodHJ1ZSknKTsKKworICAgICAgICAgICAgcnVuV2l0aEtleURvd24oKCkgPT4gewogICAgICAg
ICAgICAgICAgIHZpZGVvLnJlcXVlc3RQaWN0dXJlSW5QaWN0dXJlKCkKICAgICAgICAgICAgICAg
ICAudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIGZhaWxUZXN0KCdyZXF1ZXN0IFBp
Y3R1cmUtaW4tUGljdHVyZSByZXF1aXJlcyBsb2FkZWQgbWV0YWRhdGEgZm9yIHRoZSB2aWRlbyBl
bGVtZW50LicpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1
cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1lbnRlci1waXAtMy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1l
bnRlci1waXAtMy1leHBlY3RlZC50eHQKaW5kZXggOGZjOWM3ZmIyNmUwNjgwZjY0YmViYWY4ODU4
MTg3MGUwOTFlMTg0ZS4uNjNmODdkMjUwNTViYWZjYjhkMDAxMzAxMjA2Mzk2ZTY1YWQxN2UyMSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUt
aW4tcGljdHVyZS1hcGktZW50ZXItcGlwLTMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L21lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWVudGVyLXBp
cC0zLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIFRoaXMgdGVzdHMgdGhhdCByZXF1ZXN0
IFBpY3R1cmUtaW4tUGljdHVyZSByZXF1aXJlcyB2aWRlbyB0cmFjayBmb3IgdGhlIHZpZGVvIGVs
ZW1lbnQuCiAKIFJVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dzUGljdHVyZUluUGljdHVy
ZU1lZGlhUGxheWJhY2sodHJ1ZSkpCi1SVU4oaW50ZXJuYWxzLnNldFBpY3R1cmVJblBpY3R1cmVB
UElUZXN0RW5hYmxlZCh2aWRlbywgdHJ1ZSkpCitSVU4oaW50ZXJuYWxzLnNldE1vY2tWaWRlb1By
ZXNlbnRhdGlvbk1vZGVFbmFibGVkKHRydWUpKQogUlVOKHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZp
bGUoImF1ZGlvIiwgIi4uL2NvbnRlbnQvdGVzdCIpKQogRVZFTlQoY2FucGxheXRocm91Z2gpCiBF
WFBFQ1RFRCAoZXJyb3IubmFtZSA9PSAnSW52YWxpZFN0YXRlRXJyb3InKSBPSwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVy
ZS1hcGktZW50ZXItcGlwLTMuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGlj
dHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWVudGVyLXBpcC0zLmh0bWwKaW5kZXggN2I4MmVj
OTA4Y2RkZmI0ZmYwNDkyYzVmN2ExYzE1MmUwMGViMWVhMS4uYzkwZWFiMjhjZjZjYzE1MDBjMDMz
M2QwYmVlZDExMjViYzM0MGEyMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVy
ZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktZW50ZXItcGlwLTMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJl
LWFwaS1lbnRlci1waXAtMy5odG1sCkBAIC01LDEzICs1LDE5IEBACiAgICAgPHNjcmlwdCBzcmM9
Ii4uL21lZGlhLWZpbGUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+CiAgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZXZlbnQgPT4geworICAgICAgICAgICAg
aWYgKCF3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZmFpbFRlc3QoJ1RoaXMg
dGVzdCByZXF1aXJlcyB3aW5kb3cuaW50ZXJuYWxzLicpOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOwogCiAg
ICAgICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd3NQaWN0dXJlSW5QaWN0
dXJlTWVkaWFQbGF5YmFjayh0cnVlKScpOwotICAgICAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0
UGljdHVyZUluUGljdHVyZUFQSVRlc3RFbmFibGVkKHZpZGVvLCB0cnVlKScpOworICAgICAgICAg
ICAgcnVuKCdpbnRlcm5hbHMuc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQodHJ1
ZSknKTsKKwogICAgICAgICAgICAgcnVuKCd2aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxlKCJhdWRp
byIsICIuLi9jb250ZW50L3Rlc3QiKScpOwogICAgICAgICAgICAgYXdhaXQgd2FpdEZvcih2aWRl
bywgJ2NhbnBsYXl0aHJvdWdoJyk7Ci0gICAgICAgICAgICBydW5XaXRoS2V5RG93bihmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIHJ1bldpdGhLZXlEb3duKCgpID0+IHsKICAgICAgICAgICAgICAg
ICB2aWRlby5yZXF1ZXN0UGljdHVyZUluUGljdHVyZSgpCiAgICAgICAgICAgICAgICAgLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgICAgICAgICBmYWlsVGVzdCgncmVxdWVzdCBQaWN0dXJlLWlu
LVBpY3R1cmUgcmVxdWlyZXMgdmlkZW8gdHJhY2sgZm9yIHRoZSB2aWRlbyBlbGVtZW50LicpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1p
bi1waWN0dXJlLWFwaS1lbnRlci1waXAtNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRp
YS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1lbnRlci1waXAtNC1l
eHBlY3RlZC50eHQKaW5kZXggZmVhMDJhNTM0N2M2Y2I5NDVjMzJlZDYwYzUwOGNiOTk2OWJlNWU0
Zi4uOTY3MzFmNjM2NTNlMjU5NDBjZjk2Y2U3OGVhZGFkMTZlNjVkNWJmMCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1h
cGktZW50ZXItcGlwLTQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL3BpY3R1
cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWVudGVyLXBpcC00LWV4cGVjdGVk
LnR4dApAQCAtMSw3ICsxLDcgQEAKIFRoaXMgdGVzdHMgdGhhdCByZXF1ZXN0IFBpY3R1cmUtaW4t
UGljdHVyZSByZXNvbHZlcyBvbiB1c2VyIGNsaWNrLgogCiBSVU4oaW50ZXJuYWxzLnNldHRpbmdz
LnNldEFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKHRydWUpKQotUlVOKGludGVy
bmFscy5zZXRQaWN0dXJlSW5QaWN0dXJlQVBJVGVzdEVuYWJsZWQodmlkZW8sIHRydWUpKQorUlVO
KGludGVybmFscy5zZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCh0cnVlKSkKIFJV
Tih2aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxlKCJ2aWRlbyIsICIuLi9jb250ZW50L3Rlc3QiKSkK
IEVWRU5UKGNhbnBsYXl0aHJvdWdoKQogRU5EIE9GIFRFU1QKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWVudGVy
LXBpcC00Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVy
ZS1pbi1waWN0dXJlLWFwaS1lbnRlci1waXAtNC5odG1sCmluZGV4IGYxYmIwN2I3NWU4MWY3ZmUw
YWNhNjg2ZjkwZDZmNDIyY2FiN2I0NzguLmQzMmMzYjkyMWYwNjRmZWIyMGEzZjIxN2M2MWNmNTE1
Njc5ZDdhOWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVy
ZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWVudGVyLXBpcC00Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktZW50ZXIt
cGlwLTQuaHRtbApAQCAtNSwxNCArNSwxOSBAQAogICAgIDxzY3JpcHQgc3JjPSIuLi9tZWRpYS1m
aWxlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgogICAgICAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcignbG9hZCcsIGFzeW5jIGV2ZW50ID0+IHsKKyAgICAgICAgICAgIGlmICghd2luZG93
LmludGVybmFscykgeworICAgICAgICAgICAgICAgIGZhaWxUZXN0KCdUaGlzIHRlc3QgcmVxdWly
ZXMgd2luZG93LmludGVybmFscy4nKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICB9CisKICAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKIAogICAgICAgICAgICAg
cnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxh
eWJhY2sodHJ1ZSknKTsKLSAgICAgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldFBpY3R1cmVJblBp
Y3R1cmVBUElUZXN0RW5hYmxlZCh2aWRlbywgdHJ1ZSknKTsKKyAgICAgICAgICAgIHJ1bignaW50
ZXJuYWxzLnNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKHRydWUpJyk7CiAKICAg
ICAgICAgICAgIHJ1bigndmlkZW8uc3JjID0gZmluZE1lZGlhRmlsZSgidmlkZW8iLCAiLi4vY29u
dGVudC90ZXN0IiknKTsKICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3IodmlkZW8sICdjYW5wbGF5
dGhyb3VnaCcpOwotICAgICAgICAgICAgcnVuV2l0aEtleURvd24oZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICBydW5XaXRoS2V5RG93bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgdmlkZW8ucmVx
dWVzdFBpY3R1cmVJblBpY3R1cmUoKQogICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZXhpdFBpY3R1cmVJblBpY3R1cmUoKS50aGVuKGVu
ZFRlc3QpLmNhdGNoKCgpID0+IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3BpY3R1
cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWV2ZW50cy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJl
LWFwaS1ldmVudHMtZXhwZWN0ZWQudHh0CmluZGV4IDk4ODE1OTQ1ZTZhN2RiYTk4ZTA2YmY0MTky
Y2UxNjE1OWU5YWJlMjMuLjZkZmY4ODRiMTY5ODcyMjgyOTQwMjhmYTRmMDIzMWM2ZjVlYzExYjMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJl
LWluLXBpY3R1cmUtYXBpLWV2ZW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvbWVk
aWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktZXZlbnRzLWV4cGVj
dGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIFRoaXMgdGVzdHMgdGhhdCBldmVudHMgYXJlIGZpcmVk
IGNvcnJlY3RseSB3aGVuIGEgdmlkZW8gZWxlbWVudCBlbnRlcnMgYW5kIGV4aXRzIHRoZSBQaWN0
dXJlLWluLVBpY3R1cmUgbW9kZS4KIAogUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd3NQ
aWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayh0cnVlKSkKLVJVTihpbnRlcm5hbHMuc2V0UGlj
dHVyZUluUGljdHVyZUFQSVRlc3RFbmFibGVkKHZpZGVvLCB0cnVlKSkKK1JVTihpbnRlcm5hbHMu
c2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQodHJ1ZSkpCiBSVU4odmlkZW8uc3Jj
ID0gZmluZE1lZGlhRmlsZSgidmlkZW8iLCAiLi4vY29udGVudC90ZXN0IikpCiBFVkVOVChjYW5w
bGF5dGhyb3VnaCkKIEVWRU5UKGVudGVycGljdHVyZWlucGljdHVyZSkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBp
LWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1
cmUtaW4tcGljdHVyZS1hcGktZXZlbnRzLmh0bWwKaW5kZXggZGU0NjgzMGQzYTBjYzM5NDNmY2Q1
NDgxMDk5YmRkNjJkMWRjYzI1Ny4uZDg3NTRiODM4N2Y5OGNlMGU0M2ZmYjA5NDZkNTRhNjEwZTA5
OWZiMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3Bp
Y3R1cmUtaW4tcGljdHVyZS1hcGktZXZlbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEv
cGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktZXZlbnRzLmh0bWwKQEAg
LTUsMTUgKzUsMjMgQEAKICAgICA8c2NyaXB0IHNyYz0iLi4vbWVkaWEtZmlsZS5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdD4KICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQn
LCBhc3luYyBldmVudCA9PiB7CisgICAgICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsK
KyAgICAgICAgICAgICAgICBmYWlsVGVzdCgnVGhpcyB0ZXN0IHJlcXVpcmVzIHdpbmRvdy5pbnRl
cm5hbHMuJyk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCiAgICAg
ICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7CiAKICAgICAgICAgICAgIHJ1bignaW50ZXJuYWxz
LnNldHRpbmdzLnNldEFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKHRydWUpJyk7
Ci0gICAgICAgICAgICBydW4oJ2ludGVybmFscy5zZXRQaWN0dXJlSW5QaWN0dXJlQVBJVGVzdEVu
YWJsZWQodmlkZW8sIHRydWUpJyk7CisgICAgICAgICAgICBydW4oJ2ludGVybmFscy5zZXRNb2Nr
VmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCh0cnVlKScpOwogCiAgICAgICAgICAgICBydW4o
J3ZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgIi4uL2NvbnRlbnQvdGVzdCIpJyk7
CiAgICAgICAgICAgICBhd2FpdCB3YWl0Rm9yKHZpZGVvLCAnY2FucGxheXRocm91Z2gnKTsKIAot
ICAgICAgICAgICAgcnVuV2l0aEtleURvd24oZnVuY3Rpb24oKSB7IHZpZGVvLnJlcXVlc3RQaWN0
dXJlSW5QaWN0dXJlKCk7IH0pOworICAgICAgICAgICAgcnVuV2l0aEtleURvd24oKCkgPT4gewor
ICAgICAgICAgICAgICAgIHZpZGVvLnJlcXVlc3RQaWN0dXJlSW5QaWN0dXJlKCk7CisgICAgICAg
ICAgICB9KTsKKwogICAgICAgICAgICAgd2FpdEZvckV2ZW50T25jZSgnZW50ZXJwaWN0dXJlaW5w
aWN0dXJlJywgZXZlbnQgPT4gewogICAgICAgICAgICAgICAgIHdpbmRvdy5waXBXaW5kb3cgPSBl
dmVudC5waWN0dXJlSW5QaWN0dXJlV2luZG93OwogICAgICAgICAgICAgICAgIHRlc3RFeHBlY3Rl
ZCgncGlwV2luZG93LndpZHRoJywgMCwgJz4nKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWV4aXQtcGlwLTEt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1
cmUtaW4tcGljdHVyZS1hcGktZXhpdC1waXAtMS1leHBlY3RlZC50eHQKaW5kZXggNWMxZWFiY2Vj
NTdkNzllN2M2NWJkNWUyMmNlZDhhODY2M2E2MTE0OS4uMjI4NjM3OGU4YjMwYTgzZjVlMTg1YTVk
YTcxODA1N2FiZThlYzNiYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1p
bi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktZXhpdC1waXAtMS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGlj
dHVyZS1hcGktZXhpdC1waXAtMS1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiBUaGlzIHRl
c3RzIHRoYXQgZXhpdCBQaWN0dXJlLWluLVBpY3R1cmUgcmVzb2x2ZXMgd2hlbiB0aGVyZSBpcyBh
IFBpY3R1cmUtaW4tUGljdHVyZSB2aWRlby4KIAogUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRB
bGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayh0cnVlKSkKLVJVTihpbnRlcm5hbHMu
c2V0UGljdHVyZUluUGljdHVyZUFQSVRlc3RFbmFibGVkKHZpZGVvLCB0cnVlKSkKK1JVTihpbnRl
cm5hbHMuc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQodHJ1ZSkpCiBSVU4odmlk
ZW8uc3JjID0gZmluZE1lZGlhRmlsZSgidmlkZW8iLCAiLi4vY29udGVudC90ZXN0IikpCiBFVkVO
VChjYW5wbGF5dGhyb3VnaCkKIEVWRU5UKGVudGVycGljdHVyZWlucGljdHVyZSkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1
cmUtYXBpLWV4aXQtcGlwLTEuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGlj
dHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWV4aXQtcGlwLTEuaHRtbAppbmRleCBiZjU4ODY2
OGI2ZTIxYWJkMmZmMjE1NzA0MTA0OWVkZmE0MmI5Y2QxLi40N2YwMDMzOTNkYmFkYjdhMGM5ODIz
YTE0NmI1YjJlNWVmMTI1YTgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJl
LWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1leGl0LXBpcC0xLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1h
cGktZXhpdC1waXAtMS5odG1sCkBAIC01LDE1ICs1LDIzIEBACiAgICAgPHNjcmlwdCBzcmM9Ii4u
L21lZGlhLWZpbGUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+CiAgICAgICAgIHdpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZXZlbnQgPT4geworICAgICAgICAgICAgaWYg
KCF3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZmFpbFRlc3QoJ1RoaXMgdGVz
dCByZXF1aXJlcyB3aW5kb3cuaW50ZXJuYWxzLicpOworICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOwogCiAgICAg
ICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd3NQaWN0dXJlSW5QaWN0dXJl
TWVkaWFQbGF5YmFjayh0cnVlKScpOwotICAgICAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0UGlj
dHVyZUluUGljdHVyZUFQSVRlc3RFbmFibGVkKHZpZGVvLCB0cnVlKScpOworICAgICAgICAgICAg
cnVuKCdpbnRlcm5hbHMuc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQodHJ1ZSkn
KTsKIAogICAgICAgICAgICAgcnVuKCd2aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxlKCJ2aWRlbyIs
ICIuLi9jb250ZW50L3Rlc3QiKScpOwogICAgICAgICAgICAgYXdhaXQgd2FpdEZvcih2aWRlbywg
J2NhbnBsYXl0aHJvdWdoJyk7CiAKLSAgICAgICAgICAgIHJ1bldpdGhLZXlEb3duKGZ1bmN0aW9u
KCkgeyB2aWRlby5yZXF1ZXN0UGljdHVyZUluUGljdHVyZSgpIH0pOworICAgICAgICAgICAgcnVu
V2l0aEtleURvd24oKCkgPT4geworICAgICAgICAgICAgICAgIHZpZGVvLnJlcXVlc3RQaWN0dXJl
SW5QaWN0dXJlKCk7CisgICAgICAgICAgICB9KTsKKwogICAgICAgICAgICAgYXdhaXQgd2FpdEZv
cih2aWRlbywgJ2VudGVycGljdHVyZWlucGljdHVyZScpOwogICAgICAgICAgICAgZG9jdW1lbnQu
ZXhpdFBpY3R1cmVJblBpY3R1cmUoKS50aGVuKGVuZFRlc3QpLmNhdGNoKCgpID0+IHsKICAgICAg
ICAgICAgICAgICBmYWlsVGVzdCgnRmFpbGVkIHRvIGV4aXQgdGhlIFBpY3R1cmUtaW4tUGljdHVy
ZSBtb2RlLicpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0
dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktZXhpdC1waXAtMi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1l
eGl0LXBpcC0yLWV4cGVjdGVkLnR4dAppbmRleCA0MjEyMGRjZmYzZTg5ZjZjMTZiMGY4NDZjY2Ux
MmQzOWU2ZjI5N2ViLi40Y2M5YzYzMGEwZmZkZDY4ZTljNDQ3YWVkZTQyYzE5NTU5MzA1OWQ4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1p
bi1waWN0dXJlLWFwaS1leGl0LXBpcC0yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1leGl0LXBpcC0y
LWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIFRoaXMgdGVzdHMgdGhhdCBleGl0IFBpY3R1
cmUtaW4tUGljdHVyZSByZWplY3RzIHdoZW4gdGhlcmUgaXMgbm8gUGljdHVyZS1pbi1QaWN0dXJl
IHZpZGVvLgogCiBSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93c1BpY3R1cmVJblBpY3R1
cmVNZWRpYVBsYXliYWNrKHRydWUpKQotUlVOKGludGVybmFscy5zZXRQaWN0dXJlSW5QaWN0dXJl
QVBJVGVzdEVuYWJsZWQodmlkZW8sIHRydWUpKQorUlVOKGludGVybmFscy5zZXRNb2NrVmlkZW9Q
cmVzZW50YXRpb25Nb2RlRW5hYmxlZCh0cnVlKSkKIEVYUEVDVEVEIChlcnJvci5uYW1lID09ICdJ
bnZhbGlkU3RhdGVFcnJvcicpIE9LCiBFTkQgT0YgVEVTVAogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1leGl0
LXBpcC0yLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVy
ZS1pbi1waWN0dXJlLWFwaS1leGl0LXBpcC0yLmh0bWwKaW5kZXggNGNkYzQwNzViOWRlMGQ2NmE4
ZWQ5OTczNjI2NmM2MjhjOGQwN2YwNy4uNTQ4MWMyYTQ1ZjUwNjIxOGNkMzg1Y2NjZGViMWM1M2Vh
ZDYyMDIxZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJl
L3BpY3R1cmUtaW4tcGljdHVyZS1hcGktZXhpdC1waXAtMi5odG1sCisrKyBiL0xheW91dFRlc3Rz
L21lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLWV4aXQtcGlw
LTIuaHRtbApAQCAtNSwxMCArNSwxNSBAQAogICAgIDxzY3JpcHQgc3JjPSIuLi9tZWRpYS1maWxl
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgogICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcignbG9hZCcsIGFzeW5jIGV2ZW50ID0+IHsKKyAgICAgICAgICAgIGlmICghd2luZG93Lmlu
dGVybmFscykgeworICAgICAgICAgICAgICAgIGZhaWxUZXN0KCdUaGlzIHRlc3QgcmVxdWlyZXMg
d2luZG93LmludGVybmFscy4nKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICB9CisKICAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKIAogICAgICAgICAgICAgcnVu
KCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJh
Y2sodHJ1ZSknKTsKLSAgICAgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldFBpY3R1cmVJblBpY3R1
cmVBUElUZXN0RW5hYmxlZCh2aWRlbywgdHJ1ZSknKTsKKyAgICAgICAgICAgIHJ1bignaW50ZXJu
YWxzLnNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKHRydWUpJyk7CiAKICAgICAg
ICAgICAgIGRvY3VtZW50LmV4aXRQaWN0dXJlSW5QaWN0dXJlKCkKICAgICAgICAgICAgIC50aGVu
KCgpID0+IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVy
ZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLXBpcC13aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktcGlw
LXdpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggNGU2OGE3ZGRhMGMyNGZmMmRmYzU3YjcyY2E1NmVk
MmQ0NWY5YjQ4YS4uODhkMzA0ZDA0Y2UxNDdlMjE0ODYyN2YwZDE4NmU0ZWE1ZGMzMjNhYSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4t
cGljdHVyZS1hcGktcGlwLXdpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvbWVk
aWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1hcGktcGlwLXdpbmRvdy1l
eHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiBUaGlzIHRlc3RzIHRoYXQgYSBwaXAgd2luZG93
IGlzIHJldHVybmVkIGNvcnJlY3RseSB3aGVuIGEgdmlkZW8gZWxlbWVudCBlbnRlcnMgdGhlIFBp
Y3R1cmUtaW4tUGljdHVyZSBtb2RlLgogCiBSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93
c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKHRydWUpKQotUlVOKGludGVybmFscy5zZXRQ
aWN0dXJlSW5QaWN0dXJlQVBJVGVzdEVuYWJsZWQodmlkZW8sIHRydWUpKQorUlVOKGludGVybmFs
cy5zZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCh0cnVlKSkKIFJVTih2aWRlby5z
cmMgPSBmaW5kTWVkaWFGaWxlKCJ2aWRlbyIsICIuLi9jb250ZW50L3Rlc3QiKSkKIEVWRU5UKGNh
bnBsYXl0aHJvdWdoKQogRVhQRUNURUQgKHBpcFdpbmRvdy53aWR0aCA+ICcwJykgT0sKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBp
Y3R1cmUtYXBpLXBpcC13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4t
cGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtYXBpLXBpcC13aW5kb3cuaHRtbAppbmRleCBjYzdl
NjI0NDEwNTEzM2NkZmRjYWQ4MjEzYWUwZmFhNGQ0MjI4NDVlLi5lNDY0NzQzNDkzMTJlM2UxYzBk
ZDYzMGYxODQ1ZWI4ZDgwOTY2ZWEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9waWN0
dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWFwaS1waXAtd2luZG93Lmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVy
ZS1hcGktcGlwLXdpbmRvdy5odG1sCkBAIC01LDE1ICs1LDIwIEBACiAgICAgPHNjcmlwdCBzcmM9
Ii4uL21lZGlhLWZpbGUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+CiAgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZXZlbnQgPT4geworICAgICAgICAgICAg
aWYgKCF3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgZmFpbFRlc3QoJ1RoaXMg
dGVzdCByZXF1aXJlcyB3aW5kb3cuaW50ZXJuYWxzLicpOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOwogCiAg
ICAgICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd3NQaWN0dXJlSW5QaWN0
dXJlTWVkaWFQbGF5YmFjayh0cnVlKScpOwotICAgICAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0
UGljdHVyZUluUGljdHVyZUFQSVRlc3RFbmFibGVkKHZpZGVvLCB0cnVlKScpOworICAgICAgICAg
ICAgcnVuKCdpbnRlcm5hbHMuc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQodHJ1
ZSknKTsKIAogICAgICAgICAgICAgcnVuKCd2aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxlKCJ2aWRl
byIsICIuLi9jb250ZW50L3Rlc3QiKScpOwogICAgICAgICAgICAgYXdhaXQgd2FpdEZvcih2aWRl
bywgJ2NhbnBsYXl0aHJvdWdoJyk7CiAKLSAgICAgICAgICAgIHJ1bldpdGhLZXlEb3duKGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgcnVuV2l0aEtleURvd24oKCkgPT4gewogICAgICAgICAgICAg
ICAgIHZpZGVvLnJlcXVlc3RQaWN0dXJlSW5QaWN0dXJlKCkKICAgICAgICAgICAgICAgICAudGhl
bihwaXBXaW5kb3cgPT4gewogICAgICAgICAgICAgICAgICAgICB3aW5kb3cucGlwV2luZG93ID0g
cGlwV2luZG93OwpAQCAtMjgsNyArMzMsNiBAQAogICAgICAgICAgICAgICAgICAgICBmYWlsVGVz
dCgiRmFpbGVkIHRvIGVudGVyIHRoZSBQaWN0dXJlLWluLVBpY3R1cmUgbW9kZS4iKTsKICAgICAg
ICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0pOwotCiAgICAgICAgIH0pOwogICAgIDwvc2Ny
aXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1w
aWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1ldmVudHMtZXhw
ZWN0ZWQudHh0CmluZGV4IGJlMmVhNDA0ZjYwNjlkYTU3NGNiYjc1MzhlZTE0MTc5ODZjMGQzNTQu
LjllYWQxN2RjMmU3ZGQ1M2I3ZTZmNTU0YTNhYjVjYTgxNzBhNTYxMTAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtZXZl
bnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1
cmUvcGljdHVyZS1pbi1waWN0dXJlLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBA
CiBUaGlzIHRlc3RzIHRoYXQgZXZlbnRzIGFyZSBmaXJlZCBjb3JyZWN0bHkgd2hlbiB3ZSB1c2Ug
dGhlIHdlYmtpdCBwcmVmaXhlZCBBUEkgdG8gZW50ZXJzIGFuZCBleGl0cyB0aGUgUGljdHVyZS1p
bi1QaWN0dXJlIG1vZGUuCiAKIFJVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dzUGljdHVy
ZUluUGljdHVyZU1lZGlhUGxheWJhY2sodHJ1ZSkpCi1SVU4oaW50ZXJuYWxzLnNldFBpY3R1cmVJ
blBpY3R1cmVBUElUZXN0RW5hYmxlZCh2aWRlbywgdHJ1ZSkpCitSVU4oaW50ZXJuYWxzLnNldE1v
Y2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKHRydWUpKQogUlVOKHZpZGVvLnNyYyA9IGZp
bmRNZWRpYUZpbGUoInZpZGVvIiwgIi4uL2NvbnRlbnQvdGVzdCIpKQogRVZFTlQoY2FucGxheXRo
cm91Z2gpCiBFVkVOVChlbnRlcnBpY3R1cmVpbnBpY3R1cmUpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLWV2ZW50cy5o
dG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGlj
dHVyZS1ldmVudHMuaHRtbAppbmRleCAwZWEwOTExNmIxMWMwNDYzYTkzNzZmZjdkZGFlNjNiZjk4
Y2IzYzQ1Li41MWI3ZDc4ZjE4MzY1ZmNlZWNiN2QyMmNjM2IzOWU5Njc0NjA0NTg4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0
dXJlLWV2ZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVy
ZS9waWN0dXJlLWluLXBpY3R1cmUtZXZlbnRzLmh0bWwKQEAgLTUsMTUgKzUsMjMgQEAKICAgICA8
c2NyaXB0IHNyYz0iLi4vbWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KICAg
ICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBhc3luYyBldmVudCA9PiB7Cisg
ICAgICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICBmYWls
VGVzdCgnVGhpcyB0ZXN0IHJlcXVpcmVzIHdpbmRvdy5pbnRlcm5hbHMuJyk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBmaW5kTWVkaWFFbGVt
ZW50KCk7CiAKICAgICAgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93c1Bp
Y3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKHRydWUpJyk7Ci0gICAgICAgICAgICBydW4oJ2lu
dGVybmFscy5zZXRQaWN0dXJlSW5QaWN0dXJlQVBJVGVzdEVuYWJsZWQodmlkZW8sIHRydWUpJyk7
CisgICAgICAgICAgICBydW4oJ2ludGVybmFscy5zZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2Rl
RW5hYmxlZCh0cnVlKScpOwogCiAgICAgICAgICAgICBydW4oJ3ZpZGVvLnNyYyA9IGZpbmRNZWRp
YUZpbGUoInZpZGVvIiwgIi4uL2NvbnRlbnQvdGVzdCIpJyk7CiAgICAgICAgICAgICBhd2FpdCB3
YWl0Rm9yKHZpZGVvLCAnY2FucGxheXRocm91Z2gnKTsKIAotICAgICAgICAgICAgcnVuV2l0aEtl
eURvd24oZnVuY3Rpb24oKSB7IHZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoJ3BpY3R1
cmUtaW4tcGljdHVyZScpOyB9KTsKKyAgICAgICAgICAgIHJ1bldpdGhLZXlEb3duKCgpID0+IHsK
KyAgICAgICAgICAgICAgICB2aWRlby53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdwaWN0dXJl
LWluLXBpY3R1cmUnKTsKKyAgICAgICAgICAgIH0pOworCiAgICAgICAgICAgICB3YWl0Rm9yRXZl
bnRPbmNlKCdlbnRlcnBpY3R1cmVpbnBpY3R1cmUnLCBldmVudCA9PiB7CiAgICAgICAgICAgICAg
ICAgd2luZG93LnBpcFdpbmRvdyA9IGV2ZW50LnBpY3R1cmVJblBpY3R1cmVXaW5kb3c7CiAgICAg
ICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCdwaXBXaW5kb3cud2lkdGgnLCAwLCAnPicpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4t
cGljdHVyZS1pbnRlcnJ1cHRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvcGlj
dHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1pbnRlcnJ1cHRpb24tZXhwZWN0ZWQu
dHh0CmluZGV4IDMzMmYxZjMwOGUwODQwZTVjOWZiZGQ0YWY1MGFhMTg3NTM3NThiNDQuLmExNjc3
NzllYWYzMTkxMzQxMWI3OTVmYTA5YWVhZThlZGIzZWRlZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL21lZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtaW50ZXJydXB0
aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1
cmUvcGljdHVyZS1pbi1waWN0dXJlLWludGVycnVwdGlvbi1leHBlY3RlZC50eHQKQEAgLTEsNiAr
MSw3IEBACiBUaGlzIHRlc3RzIHRoYXQgdmlkZW8gaXMgaW4gdGhlIGNvcnJlY3QgbWVkaWEgc2Vz
c2lvbiBzdGF0ZSBhZnRlciBlbmRpbmcgYSBiYWNrZ3JvdW5kIGludGVycnVwdGlvbiB3aGlsZSBw
aXBwZWQuCiAKIFJVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dzUGljdHVyZUluUGljdHVy
ZU1lZGlhUGxheWJhY2sodHJ1ZSkpCitSVU4oaW50ZXJuYWxzLnNldE1vY2tWaWRlb1ByZXNlbnRh
dGlvbk1vZGVFbmFibGVkKHRydWUpKQogUlVOKHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoInZp
ZGVvIiwgIi4uL2NvbnRlbnQvdGVzdCIpKQogRVZFTlQoY2FucGxheXRocm91Z2gpCiBSVU4odmlk
ZW8ucGxheSgpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvcGljdHVyZS1pbi1waWN0
dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1pbnRlcnJ1cHRpb24uaHRtbCBiL0xheW91dFRlc3RzL21l
ZGlhL3BpY3R1cmUtaW4tcGljdHVyZS9waWN0dXJlLWluLXBpY3R1cmUtaW50ZXJydXB0aW9uLmh0
bWwKaW5kZXggNjA5MjJhNjc4ZGQ1OGM3MzNjNmQyMjIzYTY0OGQxNTU3ZTJkYmM2ZS4uMmI1M2Zj
ZTZiOWVmMTA3OThmMjI4NDQ2MmQyYWM3ZTljNzEyZDlkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvbWVkaWEvcGljdHVyZS1pbi1waWN0dXJlL3BpY3R1cmUtaW4tcGljdHVyZS1pbnRlcnJ1cHRp
b24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVy
ZS1pbi1waWN0dXJlLWludGVycnVwdGlvbi5odG1sCkBAIC01LDkgKzUsMTUgQEAKICAgICA8c2Ny
aXB0IHNyYz0iLi4vbWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KICAgICAg
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBhc3luYyBldmVudCA9PiB7CisgICAg
ICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICBmYWlsVGVz
dCgnVGhpcyB0ZXN0IHJlcXVpcmVzIHdpbmRvdy5pbnRlcm5hbHMuJyk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBmaW5kTWVkaWFFbGVtZW50
KCk7CiAKICAgICAgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93c1BpY3R1
cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKHRydWUpJyk7CisgICAgICAgICAgICBydW4oJ2ludGVy
bmFscy5zZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCh0cnVlKScpOwogCiAgICAg
ICAgICAgICBydW4oJ3ZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgIi4uL2NvbnRl
bnQvdGVzdCIpJyk7CiAgICAgICAgICAgICBhd2FpdCB3YWl0Rm9yKHZpZGVvLCAnY2FucGxheXRo
cm91Z2gnKTsKQEAgLTE1LDcgKzIxLDEwIEBACiAgICAgICAgICAgICBydW4oJ3ZpZGVvLnBsYXko
KScpOwogICAgICAgICAgICAgYXdhaXQgd2FpdEZvcih2aWRlbywgJ3BsYXlpbmcnKTsKIAotICAg
ICAgICAgICAgcnVuV2l0aEtleURvd24oZnVuY3Rpb24oKXsgdmlkZW8ud2Via2l0U2V0UHJlc2Vu
dGF0aW9uTW9kZSgncGljdHVyZS1pbi1waWN0dXJlJyk7IH0pOworICAgICAgICAgICAgcnVuV2l0
aEtleURvd24oKCkgPT4geworICAgICAgICAgICAgICAgIHZpZGVvLndlYmtpdFNldFByZXNlbnRh
dGlvbk1vZGUoJ3BpY3R1cmUtaW4tcGljdHVyZScpOworICAgICAgICAgICAgfSk7CisKICAgICAg
ICAgICAgIGF3YWl0IHdhaXRGb3IodmlkZW8sICd3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdl
ZCcpOwogCiAgICAgICAgICAgICBydW4oJ2ludGVybmFscy5iZWdpbk1lZGlhU2Vzc2lvbkludGVy
cnVwdGlvbigiZW50ZXJpbmdiYWNrZ3JvdW5kIiknKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>