<?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>214319</bug_id>
          
          <creation_ts>2020-07-14 13:52:54 -0700</creation_ts>
          <short_desc>[iOS] Caret should be before text placeholder instead of after it</short_desc>
          <delta_ts>2020-07-15 13:28:12 -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>WebCore Misc.</component>
          <version>WebKit Local Build</version>
          <rep_platform>iPhone / iPad</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="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>mifenton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1671507</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-07-14 13:52:54 -0700</bug_when>
    <thetext>To match UIKit the caret should be placed before the text placeholder instead of after it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671508</commentid>
    <comment_count>1</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-07-14 13:53:08 -0700</bug_when>
    <thetext>&lt;rdar://problem/65295523&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671509</commentid>
    <comment_count>2</comment_count>
      <attachid>404278</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-07-14 13:54:22 -0700</bug_when>
    <thetext>Created attachment 404278
For the bots</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671578</commentid>
    <comment_count>3</comment_count>
      <attachid>404300</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-07-14 16:16:30 -0700</bug_when>
    <thetext>Created attachment 404300
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671631</commentid>
    <comment_count>4</comment_count>
      <attachid>404300</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-07-14 18:54:57 -0700</bug_when>
    <thetext>Comment on attachment 404300
Patch

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

&gt; Source/WebCore/editing/Editor.cpp:3326
&gt; +    m_document.selection().setSelection(VisibleSelection { positionInParentBeforeNode(placeholder.ptr()), SEL_DEFAULT_AFFINITY }, FrameSelection::defaultSetSelectionOptions(UserTriggered));

This is not correct. positionInParentBeforeNode() will assert if the placeholder is not in the document. Will patch this up to check that...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671887</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-07-15 13:05:16 -0700</bug_when>
    <thetext>Thanks Wenson!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671890</commentid>
    <comment_count>6</comment_count>
      <attachid>404380</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-07-15 13:08:11 -0700</bug_when>
    <thetext>Created attachment 404380
To Land</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671897</commentid>
    <comment_count>7</comment_count>
      <attachid>404382</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-07-15 13:22:12 -0700</bug_when>
    <thetext>Created attachment 404382
To Land</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671904</commentid>
    <comment_count>8</comment_count>
      <attachid>404382</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-07-15 13:28:11 -0700</bug_when>
    <thetext>Comment on attachment 404382
To Land

Clearing flags on attachment: 404382

Committed r264418: &lt;https://trac.webkit.org/changeset/264418&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671905</commentid>
    <comment_count>9</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-07-15 13:28:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404278</attachid>
            <date>2020-07-14 13:54:22 -0700</date>
            <delta_ts>2020-07-14 16:16:29 -0700</delta_ts>
            <desc>For the bots</desc>
            <filename>bug-214319-20200714135422.patch</filename>
            <type>text/plain</type>
            <size>981</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5k
ZXggOTg0NmVlZDcxYjU5MmIxMGM4ZTc4MDYwZTFhNjE4NTk1ZTc4MmEzOC4uZDMyZTY3NTYyMGUz
MjgxNjVjOWNiZGQ4OGE0MjMzMTJjZDk4YTY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cApAQCAtMzMyMyw4ICszMzIzLDcgQEAgUmVmUHRyPFRleHRQbGFjZWhvbGRlckVsZW1lbnQ+IEVk
aXRvcjo6aW5zZXJ0VGV4dFBsYWNlaG9sZGVyKGNvbnN0IEludFNpemUmIHNpemUKICAgICBhdXRv
IHBsYWNlaG9sZGVyID0gVGV4dFBsYWNlaG9sZGVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBz
aXplKTsKICAgICBjcmVhdGVMaXZlUmFuZ2UoKnJhbmdlKS0+aW5zZXJ0Tm9kZShwbGFjZWhvbGRl
ci5jb3B5UmVmKCkpOwogCi0gICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24geyBwb3Np
dGlvbkJlZm9yZU5vZGUocGxhY2Vob2xkZXIucHRyKCkpLCBwb3NpdGlvbkFmdGVyTm9kZShwbGFj
ZWhvbGRlci5wdHIoKSkgfTsKLSAgICBtX2RvY3VtZW50LnNlbGVjdGlvbigpLnNldFNlbGVjdGlv
bihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9u
cyhVc2VyVHJpZ2dlcmVkKSk7CisgICAgbV9kb2N1bWVudC5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rp
b24oVmlzaWJsZVNlbGVjdGlvbiB7IHBvc2l0aW9uSW5QYXJlbnRCZWZvcmVOb2RlKHBsYWNlaG9s
ZGVyLnB0cigpKSwgU0VMX0RFRkFVTFRfQUZGSU5JVFkgfSwgRnJhbWVTZWxlY3Rpb246OmRlZmF1
bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpKTsKIAogICAgIHJldHVybiBwbGFj
ZWhvbGRlcjsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404300</attachid>
            <date>2020-07-14 16:16:30 -0700</date>
            <delta_ts>2020-07-15 13:08:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214319-20200714161629.patch</filename>
            <type>text/plain</type>
            <size>9621</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjAzNTllNjQ4NWE2ZTUy
MWM4ZjNjYjY0M2M4YTNiNWZiYzNmZWVmYy4uYWFhNWYzNTJjZjQ2MTlhNGQ4OGQwYjFiMDJhOWUz
YzRiZjFkZDBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTA3LTE0ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDYXJldCBzaG91
bGQgYmUgYmVmb3JlIHRleHQgcGxhY2Vob2xkZXIgaW5zdGVhZCBvZiBhZnRlciBpdAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzE5CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82NTI5NTUyMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNb3ZlIHRoZSBjYXJldCB0byBiZWZvcmUgdGhlIHRleHQgcGxh
Y2Vob2xkZXIgdG8gbWF0Y2ggVUlLaXQuCisKKyAgICAgICAgVGVzdHM6IGVkaXRpbmcvdGV4dC1w
bGFjZWhvbGRlci9jYXJldC1iZWZvcmUtemVyby13aWR0aC1wbGFjZWhvbGRlci1pbi1jb250ZW50
LWVkaXRhYmxlLWVuZC1vZi13b3JkLmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvdGV4dC1w
bGFjZWhvbGRlci9jYXJldC1iZWZvcmUtemVyby13aWR0aC1wbGFjZWhvbGRlci1pbi1jb250ZW50
LWVkaXRhYmxlLXN0YXJ0LW9mLXdvcmQuaHRtbAorCisgICAgICAgICogZWRpdGluZy9FZGl0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjppbnNlcnRUZXh0UGxhY2Vob2xkZXIpOgor
CiAyMDIwLTA1LTE3ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAg
ICBCb3R0bGUgdXAgaU9TIHdvcmQgYm91bmRhcnkgaGFjayBiZWhpbmQgaW50ZXJmYWNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggOTg0NmVlZDcxYjU5MmIxMGM4ZTc4MDYwZTFhNjE4
NTk1ZTc4MmEzOC4uZDMyZTY3NTYyMGUzMjgxNjVjOWNiZGQ4OGE0MjMzMTJjZDk4YTY4MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMzMyMyw4ICszMzIzLDcgQEAgUmVmUHRyPFRl
eHRQbGFjZWhvbGRlckVsZW1lbnQ+IEVkaXRvcjo6aW5zZXJ0VGV4dFBsYWNlaG9sZGVyKGNvbnN0
IEludFNpemUmIHNpemUKICAgICBhdXRvIHBsYWNlaG9sZGVyID0gVGV4dFBsYWNlaG9sZGVyRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50LCBzaXplKTsKICAgICBjcmVhdGVMaXZlUmFuZ2UoKnJhbmdl
KS0+aW5zZXJ0Tm9kZShwbGFjZWhvbGRlci5jb3B5UmVmKCkpOwogCi0gICAgVmlzaWJsZVNlbGVj
dGlvbiBuZXdTZWxlY3Rpb24geyBwb3NpdGlvbkJlZm9yZU5vZGUocGxhY2Vob2xkZXIucHRyKCkp
LCBwb3NpdGlvbkFmdGVyTm9kZShwbGFjZWhvbGRlci5wdHIoKSkgfTsKLSAgICBtX2RvY3VtZW50
LnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpk
ZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7CisgICAgbV9kb2N1bWVu
dC5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbiB7IHBvc2l0aW9uSW5Q
YXJlbnRCZWZvcmVOb2RlKHBsYWNlaG9sZGVyLnB0cigpKSwgU0VMX0RFRkFVTFRfQUZGSU5JVFkg
fSwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2Vy
ZWQpKTsKIAogICAgIHJldHVybiBwbGFjZWhvbGRlcjsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzYzZkZmVlYWJlMzRl
MmFiY2Y3MDc5ODQ5YzEwNjc0OTc3YzIwYzE3Li40NmI0MzY0NDAwNjA3YzFkNzVhMjg0Y2I3ZDYy
NzliMGVjZDczZjE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAtMDctMTQgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIENhcmV0IHNob3VsZCBi
ZSBiZWZvcmUgdGV4dCBwbGFjZWhvbGRlciBpbnN0ZWFkIG9mIGFmdGVyIGl0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQzMTkKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzY1Mjk1NTIzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBzb21lIHRlc3RzLgorCisgICAgICAgICogZWRpdGluZy90ZXh0
LXBsYWNlaG9sZGVyL2NhcmV0LWJlZm9yZS16ZXJvLXdpZHRoLXBsYWNlaG9sZGVyLWluLWNvbnRl
bnQtZWRpdGFibGUtZW5kLW9mLXdvcmQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBl
ZGl0aW5nL3RleHQtcGxhY2Vob2xkZXIvY2FyZXQtYmVmb3JlLXplcm8td2lkdGgtcGxhY2Vob2xk
ZXItaW4tY29udGVudC1lZGl0YWJsZS1lbmQtb2Ytd29yZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBlZGl0aW5nL3RleHQtcGxhY2Vob2xkZXIvY2FyZXQtYmVmb3JlLXplcm8td2lkdGgtcGxhY2Vo
b2xkZXItaW4tY29udGVudC1lZGl0YWJsZS1zdGFydC1vZi13b3JkLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZWRpdGluZy90ZXh0LXBsYWNlaG9sZGVyL2NhcmV0LWJlZm9yZS16ZXJv
LXdpZHRoLXBsYWNlaG9sZGVyLWluLWNvbnRlbnQtZWRpdGFibGUtc3RhcnQtb2Ytd29yZC5odG1s
OiBBZGRlZC4KKwogMjAyMC0wNi0yOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nOyAicmViYXNlbGluZSIgdGhlIHZp
ZGVvLW9yaWVudGF0aW9uLWNhbnZhcy5odG1sIHRlc3QgdG8gY2VudGVyIHRoZSBleHBlY3RlZCBy
ZWQgY29sb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1wbGFjZWhvbGRl
ci9jYXJldC1iZWZvcmUtemVyby13aWR0aC1wbGFjZWhvbGRlci1pbi1jb250ZW50LWVkaXRhYmxl
LWVuZC1vZi13b3JkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1wbGFj
ZWhvbGRlci9jYXJldC1iZWZvcmUtemVyby13aWR0aC1wbGFjZWhvbGRlci1pbi1jb250ZW50LWVk
aXRhYmxlLWVuZC1vZi13b3JkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOTEwZjgxMzYxZGY3
ZmM2MWI3NGQ5MjcxYjFkYTUxN2Q4MjJmZmE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy90ZXh0LXBsYWNlaG9sZGVyL2NhcmV0LWJlZm9yZS16ZXJvLXdpZHRoLXBsYWNl
aG9sZGVyLWluLWNvbnRlbnQtZWRpdGFibGUtZW5kLW9mLXdvcmQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTEgQEAKK1RoaXMgdGVzdHMgdGhhdCB0aGUgdGV4dCBpbnNlcnRpb24gcG9pbnQgaXMg
YmVmb3JlIHRoZSBpbnNlcnRlZCB0ZXh0IHBsYWNlaG9sZGVyIHdoZW4gaXQncyBpbnNlcnRlZCBh
dCB0aGUgZW5kIG9mIGEgd29yZC4gVGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1biBpbiBXZWJLaXRU
ZXN0UnVubmVyIG9yIER1bXBSZW5kZXJUcmVlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudHlwZSBpcyAiQ2FyZXQiCitQQVNTIHdp
bmRvdy5nZXRTZWxlY3Rpb24oKS5iYXNlT2Zmc2V0IGlzICdIZWxsbycubGVuZ3RoCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZWRpdGluZy90ZXh0LXBsYWNlaG9sZGVyL2NhcmV0LWJlZm9yZS16ZXJvLXdp
ZHRoLXBsYWNlaG9sZGVyLWluLWNvbnRlbnQtZWRpdGFibGUtZW5kLW9mLXdvcmQuaHRtbCBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvdGV4dC1wbGFjZWhvbGRlci9jYXJldC1iZWZvcmUtemVyby13aWR0
aC1wbGFjZWhvbGRlci1pbi1jb250ZW50LWVkaXRhYmxlLWVuZC1vZi13b3JkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMGQxYTBhZTgzZTc5ZjQwZjlkZThmMjVmNDA0ODMyNzc4OTExMmI4ZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1wbGFjZWhvbGRlci9jYXJldC1iZWZv
cmUtemVyby13aWR0aC1wbGFjZWhvbGRlci1pbi1jb250ZW50LWVkaXRhYmxlLWVuZC1vZi13b3Jk
Lmh0bWwKQEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgor
PG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9ImluaXRpYWwtc2NhbGU9MS4wIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy90ZXN0LmNzcyI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
IGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0idGVzdCIgY2xhc3M9InRlc3QiIHN0eWxl
PSJ3aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHg7IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrIiBj
b250ZW50ZWRpdGFibGU9InRydWUiPkhlbGxvIGZyb20gQ3VwZXJ0aW5vITwvZGl2PgorPHAgaWQ9
ImNvbnNvbGUiPjwvcD4KKzxzY3JpcHQ+Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisK
K2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgdGhlIHRleHQgaW5zZXJ0aW9uIHBvaW50IGlz
IGJlZm9yZSB0aGUgaW5zZXJ0ZWQgdGV4dCBwbGFjZWhvbGRlciB3aGVuIGl0J3MgaW5zZXJ0ZWQg
YXQgdGhlIGVuZCBvZiBhIHdvcmQuIFRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gaW4gV2ViS2l0
VGVzdFJ1bm5lciBvciBEdW1wUmVuZGVyVHJlZS4iKTsKKworYXN5bmMgZnVuY3Rpb24gcnVuVGVz
dCgpCit7CisgICAgbGV0IHRlc3RFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRl
c3QiKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIGF3YWl0IFVJSGVscGVy
LmFjdGl2YXRlRWxlbWVudEFuZFdhaXRGb3JJbnB1dFNlc3Npb24odGVzdEVsZW1lbnQpOworICAg
IGVsc2UKKyAgICAgICAgYXdhaXQgVUlIZWxwZXIuY2FsbEZ1bmN0aW9uQW5kV2FpdEZvckV2ZW50
KCgpID0+IHRlc3RFbGVtZW50LmZvY3VzKCksIHRlc3RFbGVtZW50LCAiZm9jdXMiKTsKKworICAg
IGxldCBlbmRPZkhlbGxvID0gdGVzdEVsZW1lbnQudGV4dENvbnRlbnQuaW5kZXhPZigiSGVsbG8i
KSArIDU7CisgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGVzdEVs
ZW1lbnQuZmlyc3RDaGlsZCwgZW5kT2ZIZWxsbywgdGVzdEVsZW1lbnQuZmlyc3RDaGlsZCwgZW5k
T2ZIZWxsbyk7CisKKyAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICBsZXQgbGlu
ZUhlaWdodCA9IHBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3RFbGVtZW50LCBu
dWxsKS5saW5lSGVpZ2h0LCAxMCk7CisgICAgICAgIGludGVybmFscy5pbnNlcnRUZXh0UGxhY2Vo
b2xkZXIoMCAvKiB3aWR0aCAqLywgbGluZUhlaWdodCk7CisgICAgfQorCisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudHlwZSIsICJDYXJldCIpOworICAg
IHNob3VsZEJlKCJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYmFzZU9mZnNldCIsICInSGVsbG8nLmxl
bmd0aCIpOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIC8vIENsZWFu
dXAgdG8gbWFrZSB0aGUgcmVzdWx0cyBwcmV0dHkuCisgICAgICAgIGRvY3VtZW50LmJvZHkucmVt
b3ZlQ2hpbGQodGVzdEVsZW1lbnQpOworICAgIH0KKworICAgIGZpbmlzaEpTVGVzdCgpOworfQor
cnVuVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL3RleHQtcGxhY2Vob2xkZXIvY2FyZXQtYmVmb3JlLXplcm8td2lkdGgt
cGxhY2Vob2xkZXItaW4tY29udGVudC1lZGl0YWJsZS1zdGFydC1vZi13b3JkLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1wbGFjZWhvbGRlci9jYXJldC1iZWZvcmUtemVy
by13aWR0aC1wbGFjZWhvbGRlci1pbi1jb250ZW50LWVkaXRhYmxlLXN0YXJ0LW9mLXdvcmQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2ZGNhMmQ5NDM0MzVkZTFkOWFjNzAzMjQ5YzIxYzExNjRk
N2U4NjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3RleHQtcGxhY2Vo
b2xkZXIvY2FyZXQtYmVmb3JlLXplcm8td2lkdGgtcGxhY2Vob2xkZXItaW4tY29udGVudC1lZGl0
YWJsZS1zdGFydC1vZi13b3JkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUaGlzIHRl
c3RzIHRoYXQgdGhlIHRleHQgaW5zZXJ0aW9uIHBvaW50IGlzIGJlZm9yZSB0aGUgaW5zZXJ0ZWQg
dGV4dCBwbGFjZWhvbGRlciB3aGVuIGl0J3MgaW5zZXJ0ZWQgYmVmb3JlIHRoZSBzdGFydCBvZiBh
IHdvcmQuIFRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gaW4gV2ViS2l0VGVzdFJ1bm5lciBvciBE
dW1wUmVuZGVyVHJlZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgd2lu
ZG93LmdldFNlbGVjdGlvbigpLnR5cGUgaXMgIkNhcmV0IgorUEFTUyB3aW5kb3cuZ2V0U2VsZWN0
aW9uKCkuYmFzZU9mZnNldCBpcyAnSGVsbG8nLmxlbmd0aAorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Vk
aXRpbmcvdGV4dC1wbGFjZWhvbGRlci9jYXJldC1iZWZvcmUtemVyby13aWR0aC1wbGFjZWhvbGRl
ci1pbi1jb250ZW50LWVkaXRhYmxlLXN0YXJ0LW9mLXdvcmQuaHRtbCBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvdGV4dC1wbGFjZWhvbGRlci9jYXJldC1iZWZvcmUtemVyby13aWR0aC1wbGFjZWhvbGRl
ci1pbi1jb250ZW50LWVkaXRhYmxlLXN0YXJ0LW9mLXdvcmQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMmQ1
OGUxY2E4N2IxMTNiNTI4Nzk4ZDBkODc3NDQwODA2Nzc4ZjM1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZWRpdGluZy90ZXh0LXBsYWNlaG9sZGVyL2NhcmV0LWJlZm9yZS16ZXJvLXdp
ZHRoLXBsYWNlaG9sZGVyLWluLWNvbnRlbnQtZWRpdGFibGUtc3RhcnQtb2Ytd29yZC5odG1sCkBA
IC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIG5h
bWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEuMCI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSJyZXNvdXJjZXMvdGVzdC5jc3MiPgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9InRlc3QiIGNsYXNzPSJ0ZXN0IiBzdHlsZT0id2lkdGg6
IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyBib3JkZXI6IDFweCBzb2xpZCBibGFjayIgY29udGVudGVk
aXRhYmxlPSJ0cnVlIj5IZWxsbyBmcm9tIEN1cGVydGlubyE8L2Rpdj4KKzxwIGlkPSJjb25zb2xl
Ij48L3A+Cis8c2NyaXB0Pgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitkZXNjcmlw
dGlvbigiVGhpcyB0ZXN0cyB0aGF0IHRoZSB0ZXh0IGluc2VydGlvbiBwb2ludCBpcyBiZWZvcmUg
dGhlIGluc2VydGVkIHRleHQgcGxhY2Vob2xkZXIgd2hlbiBpdCdzIGluc2VydGVkIGJlZm9yZSB0
aGUgc3RhcnQgb2YgYSB3b3JkLiBUaGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVuIGluIFdlYktpdFRl
c3RSdW5uZXIgb3IgRHVtcFJlbmRlclRyZWUuIik7CisKK2FzeW5jIGZ1bmN0aW9uIHJ1blRlc3Qo
KQoreworICAgIGxldCB0ZXN0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0
Iik7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICBhd2FpdCBVSUhlbHBlci5h
Y3RpdmF0ZUVsZW1lbnRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uKHRlc3RFbGVtZW50KTsKKyAgICBl
bHNlCisgICAgICAgIGF3YWl0IFVJSGVscGVyLmNhbGxGdW5jdGlvbkFuZFdhaXRGb3JFdmVudCgo
KSA9PiB0ZXN0RWxlbWVudC5mb2N1cygpLCB0ZXN0RWxlbWVudCwgImZvY3VzIik7CisKKyAgICBs
ZXQgcG9zaXRpb25PZkZyb20gPSB0ZXN0RWxlbWVudC50ZXh0Q29udGVudC5pbmRleE9mKCJmcm9t
Iik7CisgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGVzdEVsZW1l
bnQuZmlyc3RDaGlsZCwgcG9zaXRpb25PZkZyb20sIHRlc3RFbGVtZW50LmZpcnN0Q2hpbGQsIHBv
c2l0aW9uT2ZGcm9tKTsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGxl
dCBsaW5lSGVpZ2h0ID0gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdEVsZW1l
bnQsIG51bGwpLmxpbmVIZWlnaHQsIDEwKTsKKyAgICAgICAgaW50ZXJuYWxzLmluc2VydFRleHRQ
bGFjZWhvbGRlcigwIC8qIHdpZHRoICovLCBsaW5lSGVpZ2h0KTsKKyAgICB9CisKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRTZWxlY3Rpb24oKS50eXBlIiwgIkNhcmV0Iik7
CisgICAgc2hvdWxkQmUoIndpbmRvdy5nZXRTZWxlY3Rpb24oKS5iYXNlT2Zmc2V0IiwgIidIZWxs
bycubGVuZ3RoIik7CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgLy8g
Q2xlYW51cCB0byBtYWtlIHRoZSByZXN1bHRzIHByZXR0eS4KKyAgICAgICAgZG9jdW1lbnQuYm9k
eS5yZW1vdmVDaGlsZCh0ZXN0RWxlbWVudCk7CisgICAgfQorCisgICAgZmluaXNoSlNUZXN0KCk7
Cit9CitydW5UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404380</attachid>
            <date>2020-07-15 13:08:11 -0700</date>
            <delta_ts>2020-07-15 13:22:10 -0700</delta_ts>
            <desc>To Land</desc>
            <filename>bug-214319-20200715130810.patch</filename>
            <type>text/plain</type>
            <size>16513</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjAzNTllNjQ4NWE2ZTUy
MWM4ZjNjYjY0M2M4YTNiNWZiYzNmZWVmYy4uZDAxNDFhNzY1NjUzNjY2ZDVhZjBmODY0MjlmZWE4
Y2U1YjE0NDMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA3LTE1ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDYXJldCBzaG91
bGQgYmUgYmVmb3JlIHRleHQgcGxhY2Vob2xkZXIgaW5zdGVhZCBvZiBhZnRlciBpdAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzE5CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82NTI5NTUyMz4KKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24g
SHNpZWguCisKKyAgICAgICAgTW92ZSB0aGUgY2FyZXQgdG8gYmVmb3JlIHRoZSB0ZXh0IHBsYWNl
aG9sZGVyIHRvIG1hdGNoIFVJS2l0LgorCisgICAgICAgIFRlc3RzOiBlZGl0aW5nL3RleHQtcGxh
Y2Vob2xkZXIvY2FyZXQtYmVmb3JlLXplcm8td2lkdGgtcGxhY2Vob2xkZXItaW4tY29udGVudC1l
ZGl0YWJsZS1lbmQtb2Ytd29yZC5odG1sCisgICAgICAgICAgICAgICBlZGl0aW5nL3RleHQtcGxh
Y2Vob2xkZXIvY2FyZXQtYmVmb3JlLXplcm8td2lkdGgtcGxhY2Vob2xkZXItaW4tY29udGVudC1l
ZGl0YWJsZS1zdGFydC1vZi13b3JkLmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvdGV4dC1w
bGFjZWhvbGRlci9pbnNlcnQtaW50by1jb250ZW50LWVkaXRhYmxlLWFuZC1yZW1vdmUtdmlhLW11
dGF0aW9uLWV2ZW50Lmh0bWwKKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkVkaXRvcjo6aW5zZXJ0VGV4dFBsYWNlaG9sZGVyKTogQ29tcHV0ZSB0aGUg
cG9zaXRpb24gYmVmb3JlIHRoZSBwbGFjZWhvbGRlciBpbiBpdHMgcGFyZW50LgorICAgICAgICBU
aGlzIGNvbXB1dGF0aW9uIGNhbiBvbmx5IGJlIGRvbmUgaWYgdGhlIHBsYWNlaG9sZGVyIHN0aWxs
IGhhcyBhIHBhcmVudC4gSXQgbWF5IG5vdCBhZnRlciBpbnNlcnRpb24KKyAgICAgICAgYmVjYXVz
ZSBhcmJpdHJhcnkgSmF2YVNjcmlwdCBjb2RlIGNhbiBydW4uIElmIHRoaXMgaGFwcGVucyB0aGVu
IGJhaWwgb3V0IGFuZCByZXR1cm4gbnVsbHB0ci4gT3RoZXJ3aXNlLAorICAgICAgICBzZXQgdGhl
IG5ldyBzZWxlY3Rpb24uCisKIDIwMjAtMDUtMTcgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBw
bGUuY29tPgogCiAgICAgICAgIEJvdHRsZSB1cCBpT1Mgd29yZCBib3VuZGFyeSBoYWNrIGJlaGlu
ZCBpbnRlcmZhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCA5ODQ2ZWVkNzFiNTky
YjEwYzhlNzgwNjBlMWE2MTg1OTVlNzgyYTM4Li4zN2ZlZmYzMjlhZGUxZWU2YjU2NWI1MDVmYmVi
Zjk4OTFiYzFhOTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0zMzIzLDggKzMz
MjMsMTEgQEAgUmVmUHRyPFRleHRQbGFjZWhvbGRlckVsZW1lbnQ+IEVkaXRvcjo6aW5zZXJ0VGV4
dFBsYWNlaG9sZGVyKGNvbnN0IEludFNpemUmIHNpemUKICAgICBhdXRvIHBsYWNlaG9sZGVyID0g
VGV4dFBsYWNlaG9sZGVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBzaXplKTsKICAgICBjcmVh
dGVMaXZlUmFuZ2UoKnJhbmdlKS0+aW5zZXJ0Tm9kZShwbGFjZWhvbGRlci5jb3B5UmVmKCkpOwog
Ci0gICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24geyBwb3NpdGlvbkJlZm9yZU5vZGUo
cGxhY2Vob2xkZXIucHRyKCkpLCBwb3NpdGlvbkFmdGVyTm9kZShwbGFjZWhvbGRlci5wdHIoKSkg
fTsKLSAgICBtX2RvY3VtZW50LnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24s
IEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVk
KSk7CisgICAgLy8gSW5zZXJ0aW5nIHRoZSBwbGFjZWhvbGRlciBjYW4gcnVuIGFyYml0cmFyeSBK
YXZhU2NyaXB0LiBDaGVjayB0aGF0IGl0IHN0aWxsIGhhcyBhIHBhcmVudC4KKyAgICBpZiAoIXBs
YWNlaG9sZGVyLT5wYXJlbnROb2RlKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
bV9kb2N1bWVudC5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbiB7IHBv
c2l0aW9uSW5QYXJlbnRCZWZvcmVOb2RlKHBsYWNlaG9sZGVyLnB0cigpKSwgU0VMX0RFRkFVTFRf
QUZGSU5JVFkgfSwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVz
ZXJUcmlnZ2VyZWQpKTsKIAogICAgIHJldHVybiBwbGFjZWhvbGRlcjsKIH0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzYzZk
ZmVlYWJlMzRlMmFiY2Y3MDc5ODQ5YzEwNjc0OTc3YzIwYzE3Li45YjEwYzM5ZTk5MGJjN2UzNWFk
YmEzNTc0NjZlZjk3NGZmZDM1NDIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDctMTUg
IERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIENhcmV0
IHNob3VsZCBiZSBiZWZvcmUgdGV4dCBwbGFjZWhvbGRlciBpbnN0ZWFkIG9mIGFmdGVyIGl0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQzMTkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY1Mjk1NTIzPgorCisgICAgICAgIFJldmlld2VkIGJ5IFdl
bnNvbiBIc2llaC4KKworICAgICAgICBBZGQgc29tZSB0ZXN0cy4KKworICAgICAgICAqIGVkaXRp
bmcvdGV4dC1wbGFjZWhvbGRlci9jYXJldC1iZWZvcmUtemVyby13aWR0aC1wbGFjZWhvbGRlci1p
bi1jb250ZW50LWVkaXRhYmxlLWVuZC1vZi13b3JkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZWRpdGluZy90ZXh0LXBsYWNlaG9sZGVyL2NhcmV0LWJlZm9yZS16ZXJvLXdpZHRoLXBs
YWNlaG9sZGVyLWluLWNvbnRlbnQtZWRpdGFibGUtZW5kLW9mLXdvcmQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZWRpdGluZy90ZXh0LXBsYWNlaG9sZGVyL2NhcmV0LWJlZm9yZS16ZXJvLXdpZHRo
LXBsYWNlaG9sZGVyLWluLWNvbnRlbnQtZWRpdGFibGUtc3RhcnQtb2Ytd29yZC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvdGV4dC1wbGFjZWhvbGRlci9jYXJldC1iZWZv
cmUtemVyby13aWR0aC1wbGFjZWhvbGRlci1pbi1jb250ZW50LWVkaXRhYmxlLXN0YXJ0LW9mLXdv
cmQuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy90ZXh0LXBsYWNlaG9sZGVyL2luc2Vy
dC1pbnRvLWNvbnRlbnQtZWRpdGFibGUtYW5kLXJlbW92ZS12aWEtbXV0YXRpb24tZXZlbnQtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3RleHQtcGxhY2Vob2xkZXIvaW5z
ZXJ0LWludG8tY29udGVudC1lZGl0YWJsZS1hbmQtcmVtb3ZlLXZpYS1tdXRhdGlvbi1ldmVudC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiByZXNvdXJjZXMvanMtdGVzdC5qczoKKyAgICAgICAgKHNo
b3VsZEJlTGVzc1RoYW5PckVxdWFsKTogQWRkZWQuIEp1c3QgbGlrZSBzaG91bGRCZUdyZWF0ZXJU
aGFuT3JFcXVhbCwgYnV0IGZvciA8PS4KKwogMjAyMC0wNi0yOSAgSmVyIE5vYmxlICA8amVyLm5v
YmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nOyAicmVi
YXNlbGluZSIgdGhlIHZpZGVvLW9yaWVudGF0aW9uLWNhbnZhcy5odG1sIHRlc3QgdG8gY2VudGVy
IHRoZSBleHBlY3RlZCByZWQgY29sb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcv
dGV4dC1wbGFjZWhvbGRlci9jYXJldC1iZWZvcmUtemVyby13aWR0aC1wbGFjZWhvbGRlci1pbi1j
b250ZW50LWVkaXRhYmxlLWVuZC1vZi13b3JkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvdGV4dC1wbGFjZWhvbGRlci9jYXJldC1iZWZvcmUtemVyby13aWR0aC1wbGFjZWhvbGRl
ci1pbi1jb250ZW50LWVkaXRhYmxlLWVuZC1vZi13b3JkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mOTEwZjgxMzYxZGY3ZmM2MWI3NGQ5MjcxYjFkYTUxN2Q4MjJmZmE4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy90ZXh0LXBsYWNlaG9sZGVyL2NhcmV0LWJlZm9yZS16
ZXJvLXdpZHRoLXBsYWNlaG9sZGVyLWluLWNvbnRlbnQtZWRpdGFibGUtZW5kLW9mLXdvcmQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1RoaXMgdGVzdHMgdGhhdCB0aGUgdGV4dCBpbnNl
cnRpb24gcG9pbnQgaXMgYmVmb3JlIHRoZSBpbnNlcnRlZCB0ZXh0IHBsYWNlaG9sZGVyIHdoZW4g
aXQncyBpbnNlcnRlZCBhdCB0aGUgZW5kIG9mIGEgd29yZC4gVGhpcyB0ZXN0IGNhbiBvbmx5IGJl
IHJ1biBpbiBXZWJLaXRUZXN0UnVubmVyIG9yIER1bXBSZW5kZXJUcmVlLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudHlwZSBpcyAi
Q2FyZXQiCitQQVNTIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5iYXNlT2Zmc2V0IGlzICdIZWxsbycu
bGVuZ3RoCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy90ZXh0LXBsYWNlaG9sZGVyL2NhcmV0
LWJlZm9yZS16ZXJvLXdpZHRoLXBsYWNlaG9sZGVyLWluLWNvbnRlbnQtZWRpdGFibGUtZW5kLW9m
LXdvcmQuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1wbGFjZWhvbGRlci9jYXJldC1i
ZWZvcmUtemVyby13aWR0aC1wbGFjZWhvbGRlci1pbi1jb250ZW50LWVkaXRhYmxlLWVuZC1vZi13
b3JkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMGQxYTBhZTgzZTc5ZjQwZjlkZThmMjVmNDA0ODMyNzc4OTEx
MmI4ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1wbGFjZWhv
bGRlci9jYXJldC1iZWZvcmUtemVyby13aWR0aC1wbGFjZWhvbGRlci1pbi1jb250ZW50LWVkaXRh
YmxlLWVuZC1vZi13b3JkLmh0bWwKQEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+IDwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8
aHRtbD4KKzxoZWFkPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9ImluaXRpYWwtc2Nh
bGU9MS4wIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+
Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy90ZXN0LmNzcyI+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0idGVzdCIgY2xh
c3M9InRlc3QiIHN0eWxlPSJ3aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHg7IGJvcmRlcjogMXB4
IHNvbGlkIGJsYWNrIiBjb250ZW50ZWRpdGFibGU9InRydWUiPkhlbGxvIGZyb20gQ3VwZXJ0aW5v
ITwvZGl2PgorPHAgaWQ9ImNvbnNvbGUiPjwvcD4KKzxzY3JpcHQ+Cit3aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgdGhlIHRleHQgaW5z
ZXJ0aW9uIHBvaW50IGlzIGJlZm9yZSB0aGUgaW5zZXJ0ZWQgdGV4dCBwbGFjZWhvbGRlciB3aGVu
IGl0J3MgaW5zZXJ0ZWQgYXQgdGhlIGVuZCBvZiBhIHdvcmQuIFRoaXMgdGVzdCBjYW4gb25seSBi
ZSBydW4gaW4gV2ViS2l0VGVzdFJ1bm5lciBvciBEdW1wUmVuZGVyVHJlZS4iKTsKKworYXN5bmMg
ZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgbGV0IHRlc3RFbGVtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRlc3QiKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
IGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlRWxlbWVudEFuZFdhaXRGb3JJbnB1dFNlc3Npb24odGVz
dEVsZW1lbnQpOworICAgIGVsc2UKKyAgICAgICAgYXdhaXQgVUlIZWxwZXIuY2FsbEZ1bmN0aW9u
QW5kV2FpdEZvckV2ZW50KCgpID0+IHRlc3RFbGVtZW50LmZvY3VzKCksIHRlc3RFbGVtZW50LCAi
Zm9jdXMiKTsKKworICAgIGxldCBlbmRPZkhlbGxvID0gdGVzdEVsZW1lbnQudGV4dENvbnRlbnQu
aW5kZXhPZigiSGVsbG8iKSArIDU7CisgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNldEJhc2VB
bmRFeHRlbnQodGVzdEVsZW1lbnQuZmlyc3RDaGlsZCwgZW5kT2ZIZWxsbywgdGVzdEVsZW1lbnQu
Zmlyc3RDaGlsZCwgZW5kT2ZIZWxsbyk7CisKKyAgICBpZiAod2luZG93LmludGVybmFscykgewor
ICAgICAgICBsZXQgbGluZUhlaWdodCA9IHBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KHRlc3RFbGVtZW50LCBudWxsKS5saW5lSGVpZ2h0LCAxMCk7CisgICAgICAgIGludGVybmFscy5p
bnNlcnRUZXh0UGxhY2Vob2xkZXIoMCAvKiB3aWR0aCAqLywgbGluZUhlaWdodCk7CisgICAgfQor
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudHlwZSIs
ICJDYXJldCIpOworICAgIHNob3VsZEJlKCJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYmFzZU9mZnNl
dCIsICInSGVsbG8nLmxlbmd0aCIpOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgICAgIC8vIENsZWFudXAgdG8gbWFrZSB0aGUgcmVzdWx0cyBwcmV0dHkuCisgICAgICAgIGRv
Y3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGVzdEVsZW1lbnQpOworICAgIH0KKworICAgIGZpbmlz
aEpTVGVzdCgpOworfQorcnVuVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3RleHQtcGxhY2Vob2xkZXIvY2FyZXQtYmVm
b3JlLXplcm8td2lkdGgtcGxhY2Vob2xkZXItaW4tY29udGVudC1lZGl0YWJsZS1zdGFydC1vZi13
b3JkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1wbGFjZWhvbGRlci9j
YXJldC1iZWZvcmUtemVyby13aWR0aC1wbGFjZWhvbGRlci1pbi1jb250ZW50LWVkaXRhYmxlLXN0
YXJ0LW9mLXdvcmQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2ZGNhMmQ5NDM0MzVkZTFkOWFj
NzAzMjQ5YzIxYzExNjRkN2U4NjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3RleHQtcGxhY2Vob2xkZXIvY2FyZXQtYmVmb3JlLXplcm8td2lkdGgtcGxhY2Vob2xkZXIt
aW4tY29udGVudC1lZGl0YWJsZS1zdGFydC1vZi13b3JkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDExIEBACitUaGlzIHRlc3RzIHRoYXQgdGhlIHRleHQgaW5zZXJ0aW9uIHBvaW50IGlzIGJlZm9y
ZSB0aGUgaW5zZXJ0ZWQgdGV4dCBwbGFjZWhvbGRlciB3aGVuIGl0J3MgaW5zZXJ0ZWQgYmVmb3Jl
IHRoZSBzdGFydCBvZiBhIHdvcmQuIFRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gaW4gV2ViS2l0
VGVzdFJ1bm5lciBvciBEdW1wUmVuZGVyVHJlZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1Mgd2luZG93LmdldFNlbGVjdGlvbigpLnR5cGUgaXMgIkNhcmV0IgorUEFTUyB3
aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYmFzZU9mZnNldCBpcyAnSGVsbG8nLmxlbmd0aAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1wbGFjZWhvbGRlci9jYXJldC1iZWZvcmUtemVyby13
aWR0aC1wbGFjZWhvbGRlci1pbi1jb250ZW50LWVkaXRhYmxlLXN0YXJ0LW9mLXdvcmQuaHRtbCBi
L0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1wbGFjZWhvbGRlci9jYXJldC1iZWZvcmUtemVyby13
aWR0aC1wbGFjZWhvbGRlci1pbi1jb250ZW50LWVkaXRhYmxlLXN0YXJ0LW9mLXdvcmQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iMmQ1OGUxY2E4N2IxMTNiNTI4Nzk4ZDBkODc3NDQwODA2Nzc4ZjM1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy90ZXh0LXBsYWNlaG9sZGVyL2NhcmV0
LWJlZm9yZS16ZXJvLXdpZHRoLXBsYWNlaG9sZGVyLWluLWNvbnRlbnQtZWRpdGFibGUtc3RhcnQt
b2Ytd29yZC5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8
aGVhZD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEuMCI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvdGVzdC5jc3MiPgorPC9oZWFkPgorPGJv
ZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9InRlc3QiIGNsYXNzPSJ0ZXN0
IiBzdHlsZT0id2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyBib3JkZXI6IDFweCBzb2xpZCBi
bGFjayIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj5IZWxsbyBmcm9tIEN1cGVydGlubyE8L2Rpdj4K
KzxwIGlkPSJjb25zb2xlIj48L3A+Cis8c2NyaXB0Pgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOworCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IHRoZSB0ZXh0IGluc2VydGlvbiBw
b2ludCBpcyBiZWZvcmUgdGhlIGluc2VydGVkIHRleHQgcGxhY2Vob2xkZXIgd2hlbiBpdCdzIGlu
c2VydGVkIGJlZm9yZSB0aGUgc3RhcnQgb2YgYSB3b3JkLiBUaGlzIHRlc3QgY2FuIG9ubHkgYmUg
cnVuIGluIFdlYktpdFRlc3RSdW5uZXIgb3IgRHVtcFJlbmRlclRyZWUuIik7CisKK2FzeW5jIGZ1
bmN0aW9uIHJ1blRlc3QoKQoreworICAgIGxldCB0ZXN0RWxlbWVudCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0ZXN0Iik7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICBh
d2FpdCBVSUhlbHBlci5hY3RpdmF0ZUVsZW1lbnRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uKHRlc3RF
bGVtZW50KTsKKyAgICBlbHNlCisgICAgICAgIGF3YWl0IFVJSGVscGVyLmNhbGxGdW5jdGlvbkFu
ZFdhaXRGb3JFdmVudCgoKSA9PiB0ZXN0RWxlbWVudC5mb2N1cygpLCB0ZXN0RWxlbWVudCwgImZv
Y3VzIik7CisKKyAgICBsZXQgcG9zaXRpb25PZkZyb20gPSB0ZXN0RWxlbWVudC50ZXh0Q29udGVu
dC5pbmRleE9mKCJmcm9tIik7CisgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRF
eHRlbnQodGVzdEVsZW1lbnQuZmlyc3RDaGlsZCwgcG9zaXRpb25PZkZyb20sIHRlc3RFbGVtZW50
LmZpcnN0Q2hpbGQsIHBvc2l0aW9uT2ZGcm9tKTsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KSB7CisgICAgICAgIGxldCBsaW5lSGVpZ2h0ID0gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVk
U3R5bGUodGVzdEVsZW1lbnQsIG51bGwpLmxpbmVIZWlnaHQsIDEwKTsKKyAgICAgICAgaW50ZXJu
YWxzLmluc2VydFRleHRQbGFjZWhvbGRlcigwIC8qIHdpZHRoICovLCBsaW5lSGVpZ2h0KTsKKyAg
ICB9CisKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRTZWxlY3Rpb24oKS50
eXBlIiwgIkNhcmV0Iik7CisgICAgc2hvdWxkQmUoIndpbmRvdy5nZXRTZWxlY3Rpb24oKS5iYXNl
T2Zmc2V0IiwgIidIZWxsbycubGVuZ3RoIik7CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgLy8gQ2xlYW51cCB0byBtYWtlIHRoZSByZXN1bHRzIHByZXR0eS4KKyAgICAg
ICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0ZXN0RWxlbWVudCk7CisgICAgfQorCisgICAg
ZmluaXNoSlNUZXN0KCk7Cit9CitydW5UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1wbGFjZWhvbGRlci9pbnNl
cnQtaW50by1jb250ZW50LWVkaXRhYmxlLWFuZC1yZW1vdmUtdmlhLW11dGF0aW9uLWV2ZW50LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1wbGFjZWhvbGRlci9pbnNlcnQt
aW50by1jb250ZW50LWVkaXRhYmxlLWFuZC1yZW1vdmUtdmlhLW11dGF0aW9uLWV2ZW50LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kNTQ0MDIxYzczNGEzM2I1YjJjNmEyMTEwODJiZWQ3OWEwMzk4
OWYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy90ZXh0LXBsYWNlaG9s
ZGVyL2luc2VydC1pbnRvLWNvbnRlbnQtZWRpdGFibGUtYW5kLXJlbW92ZS12aWEtbXV0YXRpb24t
ZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKK1RoaXMgdGVzdHMgdGhhdCBhIHRl
eHQgcGxhY2Vob2xkZXIgdGhhdCBpcyByZW1vdmVkIGZyb20gdGhlIHBhZ2UgdmlhIGEgbXV0YXRp
b24gZXZlbnQgY2FsbGJhY2sgYWZ0ZXIgYmVpbmcgaW5zZXJ0ZWQgZG9lcyBub3QgY2F1c2UgYSBj
cmFzaC4gVGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1biBpbiBXZWJLaXRUZXN0UnVubmVyIG9yIER1
bXBSZW5kZXJUcmVlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworQmVmb3JlIGlu
c2VydGluZyBwbGFjZWhvbGRlcjoKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3Qi
KS5jaGlsZE5vZGVzLmxlbmd0aCBpcyAxCisKK0FmdGVyIGluc2VydGluZyBwbGFjZWhvbGRlcjoK
K1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKS5jaGlsZE5vZGVzLmxlbmd0aCBp
cyAzCitQQVNTIHBsYWNlaG9sZGVyRWxlbWVudC5wYXJlbnROb2RlIGlzIG5vbi1udWxsLgorCitB
ZnRlciByZW1vdmluZyBwbGFjZWhvbGRlcjoKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRlc3QiKS5jaGlsZE5vZGVzLmxlbmd0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMworUEFTUyBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpLmNoaWxkTm9kZXMubGVuZ3RoIGlzIDw9IDIK
K1BBU1MgcGxhY2Vob2xkZXJFbGVtZW50LnBhcmVudE5vZGUgYmVjYW1lIG51bGwKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL3RleHQtcGxhY2Vob2xkZXIvaW5zZXJ0LWludG8tY29udGVudC1l
ZGl0YWJsZS1hbmQtcmVtb3ZlLXZpYS1tdXRhdGlvbi1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy90ZXh0LXBsYWNlaG9sZGVyL2luc2VydC1pbnRvLWNvbnRlbnQtZWRpdGFibGUtYW5k
LXJlbW92ZS12aWEtbXV0YXRpb24tZXZlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYjA3ZjY2YTM1ZDI5
MDIxOTFlMTkzYWRhMWRmYjc0MjliZDkzMTBmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy90ZXh0LXBsYWNlaG9sZGVyL2luc2VydC1pbnRvLWNvbnRlbnQtZWRpdGFibGUt
YW5kLXJlbW92ZS12aWEtbXV0YXRpb24tZXZlbnQuaHRtbApAQCAtMCwwICsxLDc3IEBACis8IURP
Q1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0
PXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVu
dD0iaW5pdGlhbC1zY2FsZT0xLjAiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdWktaGVscGVy
LmpzIj48L3NjcmlwdD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3Rl
c3QuY3NzIj4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2
IGlkPSJ0ZXN0IiBjbGFzcz0idGVzdCIgc3R5bGU9IndpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBw
eDsgYm9yZGVyOiAxcHggc29saWQgYmxhY2siIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+SGVsbG8g
ZnJvbSBDdXBlcnRpbm8hPC9kaXY+Cis8cCBpZD0iY29uc29sZSI+PC9wPgorPHNjcmlwdD4KK3dp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhh
dCBhIHRleHQgcGxhY2Vob2xkZXIgdGhhdCBpcyByZW1vdmVkIGZyb20gdGhlIHBhZ2UgdmlhIGEg
bXV0YXRpb24gZXZlbnQgY2FsbGJhY2sgYWZ0ZXIgYmVpbmcgaW5zZXJ0ZWQgZG9lcyBub3QgY2F1
c2UgYSBjcmFzaC4gVGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1biBpbiBXZWJLaXRUZXN0UnVubmVy
IG9yIER1bXBSZW5kZXJUcmVlLiIpOworCitsZXQgcGxhY2Vob2xkZXJFbGVtZW50OworCitmdW5j
dGlvbiBkb25lKCkKK3sKKyAgICAvLyBDbGVhbiB1cCB0byBtYWtlIHRoZSByZXN1bHQgcHJldHR5
LgorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRlc3QiKS5yZW1vdmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rp
b24gZGlkUmVtb3ZlUGxhY2Vob2xkZXIoKQoreworICAgIGRlYnVnKCI8YnI+QWZ0ZXIgcmVtb3Zp
bmcgcGxhY2Vob2xkZXI6Iik7CisgICAgLy8gTnVtYmVyIG9mIGNoaWxkIG5vZGVzIHNob3VsZCBi
ZSAyIG9yIGZld2VyLiBJdCBkZXBlbmRzIG9uIGhvdyBhZ2dyZXNzaXZlbHkgYWRqYWNlbnQgI3Rl
eHQgbm9kZXMgYXJlIGNvYWxlc2NlZC4KKyAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoJ2RvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0IikuY2hpbGROb2Rlcy5sZW5ndGgnLCAiMyIsICgpID0+
IHsKKyAgICAgICAgc2hvdWxkQmVMZXNzVGhhbk9yRXF1YWwoJ2RvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0ZXN0IikuY2hpbGROb2Rlcy5sZW5ndGgnLCAiMiIpOworICAgICAgICBzaG91bGRCZWNv
bWVFcXVhbCgicGxhY2Vob2xkZXJFbGVtZW50LnBhcmVudE5vZGUiLCAibnVsbCIsIGRvbmUpOwor
ICAgIH0pOworfQorCitmdW5jdGlvbiBkaWRJbnNlcnRQbGFjZWhvbGRlcigpCit7CisgICAgZGVi
dWcoIjxicj5BZnRlciBpbnNlcnRpbmcgcGxhY2Vob2xkZXI6Iik7CisgICAgc2hvdWxkQmUoJ2Rv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0IikuY2hpbGROb2Rlcy5sZW5ndGgnLCAiMyIpOwor
CisgICAgY29uc29sZS5hc3NlcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKS5jaGls
ZE5vZGVzLmxlbmd0aCA+PSAyKTsKKyAgICBjb25zb2xlLmFzc2VydChkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGVzdCIpLmNoaWxkTm9kZXNbMV0gaW5zdGFuY2VvZiBFbGVtZW50KTsKKworICAg
IGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTVN1YnRyZWVNb2RpZmllZCIsIGRpZFJlbW92
ZVBsYWNlaG9sZGVyLCB7IG9uY2U6IHRydWUgfSk7CisgICAgcGxhY2Vob2xkZXJFbGVtZW50ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKS5jaGlsZE5vZGVzWzFdOworICAgIHNob3Vs
ZEJlTm9uTnVsbCgicGxhY2Vob2xkZXJFbGVtZW50LnBhcmVudE5vZGUiKTsKKyAgICBwbGFjZWhv
bGRlckVsZW1lbnQucmVtb3ZlKCk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQorewor
ICAgIGxldCB0ZXN0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7Cisg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0
ZUVsZW1lbnRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uKHRlc3RFbGVtZW50KTsKKyAgICBlbHNlCisg
ICAgICAgIGF3YWl0IFVJSGVscGVyLmNhbGxGdW5jdGlvbkFuZFdhaXRGb3JFdmVudCgoKSA9PiB0
ZXN0RWxlbWVudC5mb2N1cygpLCB0ZXN0RWxlbWVudCwgImZvY3VzIik7CisKKyAgICBsZXQgcG9z
aXRpb25PZkZyb20gPSB0ZXN0RWxlbWVudC50ZXh0Q29udGVudC5pbmRleE9mKCJmcm9tIik7Cisg
ICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGVzdEVsZW1lbnQuZmly
c3RDaGlsZCwgcG9zaXRpb25PZkZyb20sIHRlc3RFbGVtZW50LmZpcnN0Q2hpbGQsIHBvc2l0aW9u
T2ZGcm9tKTsKKworICAgIGRlYnVnKCJCZWZvcmUgaW5zZXJ0aW5nIHBsYWNlaG9sZGVyOiIpCisg
ICAgc2hvdWxkQmVFcXVhbFRvTnVtYmVyKCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIp
LmNoaWxkTm9kZXMubGVuZ3RoJywgMSk7CisKKyAgICAvLyBUbyBhbGxvdyBmb3IgdGhlIGNvbnRy
b2wgZmxvdyB0byBiZSBkZWJ1Z2dlZCBvbiBNYWMsIGFkZCB0aGUgZXZlbnQgbGlzdGVuZXIgaGVy
ZSBpbnN0ZWFkIG9mIHJpZ2h0IGJlZm9yZSBpbnNlcnRUZXh0UGxhY2Vob2xkZXIuCisgICAgZG9j
dW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NU3VidHJlZU1vZGlmaWVkIiwgZGlkSW5zZXJ0UGxh
Y2Vob2xkZXIsIHsgb25jZTogdHJ1ZSB9KTsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgIGxldCBsaW5lSGVpZ2h0ID0gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5
bGUodGVzdEVsZW1lbnQsIG51bGwpLmxpbmVIZWlnaHQsIDEwKTsKKyAgICAgICAgaW50ZXJuYWxz
Lmluc2VydFRleHRQbGFjZWhvbGRlcigwIC8qIHdpZHRoICovLCBsaW5lSGVpZ2h0KTsKKyAgICB9
Cit9CitydW5UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3Jlc291cmNlcy9qcy10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2Vz
L2pzLXRlc3QuanMKaW5kZXggOWU0ZjM0ODA5ZjRkYjczNDRmMTYyNTZhZWIwNGUzMjA5YWM5YjJl
MC4uN2M4YWU2NWVhODg2NjhiZDFlYzE3MDJmNTc0ZDQ2YzM1MjFiNWI4MyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvcmVzb3Vy
Y2VzL2pzLXRlc3QuanMKQEAgLTYyMCw2ICs2MjAsMjcgQEAgZnVuY3Rpb24gc2hvdWxkQmVHcmVh
dGVyVGhhbk9yRXF1YWwoX2EsIF9iKSB7CiAgICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzID49
ICIgKyBfYik7CiB9CiAKK2Z1bmN0aW9uIHNob3VsZEJlTGVzc1RoYW5PckVxdWFsKF9hLCBfYikg
eworICAgIGlmICh0eXBlb2YgX2EgIT0gInN0cmluZyIgfHwgdHlwZW9mIF9iICE9ICJzdHJpbmci
KQorICAgICAgICBkZWJ1ZygiV0FSTjogc2hvdWxkQmVMZXNzVGhhbk9yRXF1YWwgZXhwZWN0cyBz
dHJpbmcgYXJndW1lbnRzIik7CisKKyAgICB2YXIgX2V4Y2VwdGlvbjsKKyAgICB2YXIgX2F2Owor
ICAgIHRyeSB7CisgICAgICAgIF9hdiA9IGV2YWwoX2EpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAg
ICAgICAgX2V4Y2VwdGlvbiA9IGU7CisgICAgfQorICAgIHZhciBfYnYgPSBldmFsKF9iKTsKKwor
ICAgIGlmIChfZXhjZXB0aW9uKQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUg
PD0gIiArIF9iICsgIi4gVGhyZXcgZXhjZXB0aW9uICIgKyBfZXhjZXB0aW9uKTsKKyAgICBlbHNl
IGlmICh0eXBlb2YgX2F2ID09ICJ1bmRlZmluZWQiIHx8IF9hdiA+IF9idikKKyAgICAgICAgdGVz
dEZhaWxlZChfYSArICIgc2hvdWxkIGJlIDw9ICIgKyBfYiArICIuIFdhcyAiICsgX2F2ICsgIiAo
b2YgdHlwZSAiICsgdHlwZW9mIF9hdiArICIpLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdFBh
c3NlZChfYSArICIgaXMgPD0gIiArIF9iKTsKK30KKwogZnVuY3Rpb24gZXhwZWN0VHJ1ZSh2LCBt
c2cpIHsKICAgaWYgKHYpIHsKICAgICB0ZXN0UGFzc2VkKG1zZyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404382</attachid>
            <date>2020-07-15 13:22:12 -0700</date>
            <delta_ts>2020-07-15 13:22:12 -0700</delta_ts>
            <desc>To Land</desc>
            <filename>bug-214319-20200715132211.patch</filename>
            <type>text/plain</type>
            <size>16659</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjAzNTllNjQ4NWE2ZTUy
MWM4ZjNjYjY0M2M4YTNiNWZiYzNmZWVmYy4uZDAxNDFhNzY1NjUzNjY2ZDVhZjBmODY0MjlmZWE4
Y2U1YjE0NDMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA3LTE1ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDYXJldCBzaG91
bGQgYmUgYmVmb3JlIHRleHQgcGxhY2Vob2xkZXIgaW5zdGVhZCBvZiBhZnRlciBpdAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzE5CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82NTI5NTUyMz4KKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24g
SHNpZWguCisKKyAgICAgICAgTW92ZSB0aGUgY2FyZXQgdG8gYmVmb3JlIHRoZSB0ZXh0IHBsYWNl
aG9sZGVyIHRvIG1hdGNoIFVJS2l0LgorCisgICAgICAgIFRlc3RzOiBlZGl0aW5nL3RleHQtcGxh
Y2Vob2xkZXIvY2FyZXQtYmVmb3JlLXplcm8td2lkdGgtcGxhY2Vob2xkZXItaW4tY29udGVudC1l
ZGl0YWJsZS1lbmQtb2Ytd29yZC5odG1sCisgICAgICAgICAgICAgICBlZGl0aW5nL3RleHQtcGxh
Y2Vob2xkZXIvY2FyZXQtYmVmb3JlLXplcm8td2lkdGgtcGxhY2Vob2xkZXItaW4tY29udGVudC1l
ZGl0YWJsZS1zdGFydC1vZi13b3JkLmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvdGV4dC1w
bGFjZWhvbGRlci9pbnNlcnQtaW50by1jb250ZW50LWVkaXRhYmxlLWFuZC1yZW1vdmUtdmlhLW11
dGF0aW9uLWV2ZW50Lmh0bWwKKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkVkaXRvcjo6aW5zZXJ0VGV4dFBsYWNlaG9sZGVyKTogQ29tcHV0ZSB0aGUg
cG9zaXRpb24gYmVmb3JlIHRoZSBwbGFjZWhvbGRlciBpbiBpdHMgcGFyZW50LgorICAgICAgICBU
aGlzIGNvbXB1dGF0aW9uIGNhbiBvbmx5IGJlIGRvbmUgaWYgdGhlIHBsYWNlaG9sZGVyIHN0aWxs
IGhhcyBhIHBhcmVudC4gSXQgbWF5IG5vdCBhZnRlciBpbnNlcnRpb24KKyAgICAgICAgYmVjYXVz
ZSBhcmJpdHJhcnkgSmF2YVNjcmlwdCBjb2RlIGNhbiBydW4uIElmIHRoaXMgaGFwcGVucyB0aGVu
IGJhaWwgb3V0IGFuZCByZXR1cm4gbnVsbHB0ci4gT3RoZXJ3aXNlLAorICAgICAgICBzZXQgdGhl
IG5ldyBzZWxlY3Rpb24uCisKIDIwMjAtMDUtMTcgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBw
bGUuY29tPgogCiAgICAgICAgIEJvdHRsZSB1cCBpT1Mgd29yZCBib3VuZGFyeSBoYWNrIGJlaGlu
ZCBpbnRlcmZhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCA5ODQ2ZWVkNzFiNTky
YjEwYzhlNzgwNjBlMWE2MTg1OTVlNzgyYTM4Li4zN2ZlZmYzMjlhZGUxZWU2YjU2NWI1MDVmYmVi
Zjk4OTFiYzFhOTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0zMzIzLDggKzMz
MjMsMTEgQEAgUmVmUHRyPFRleHRQbGFjZWhvbGRlckVsZW1lbnQ+IEVkaXRvcjo6aW5zZXJ0VGV4
dFBsYWNlaG9sZGVyKGNvbnN0IEludFNpemUmIHNpemUKICAgICBhdXRvIHBsYWNlaG9sZGVyID0g
VGV4dFBsYWNlaG9sZGVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBzaXplKTsKICAgICBjcmVh
dGVMaXZlUmFuZ2UoKnJhbmdlKS0+aW5zZXJ0Tm9kZShwbGFjZWhvbGRlci5jb3B5UmVmKCkpOwog
Ci0gICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24geyBwb3NpdGlvbkJlZm9yZU5vZGUo
cGxhY2Vob2xkZXIucHRyKCkpLCBwb3NpdGlvbkFmdGVyTm9kZShwbGFjZWhvbGRlci5wdHIoKSkg
fTsKLSAgICBtX2RvY3VtZW50LnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24s
IEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVk
KSk7CisgICAgLy8gSW5zZXJ0aW5nIHRoZSBwbGFjZWhvbGRlciBjYW4gcnVuIGFyYml0cmFyeSBK
YXZhU2NyaXB0LiBDaGVjayB0aGF0IGl0IHN0aWxsIGhhcyBhIHBhcmVudC4KKyAgICBpZiAoIXBs
YWNlaG9sZGVyLT5wYXJlbnROb2RlKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
bV9kb2N1bWVudC5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbiB7IHBv
c2l0aW9uSW5QYXJlbnRCZWZvcmVOb2RlKHBsYWNlaG9sZGVyLnB0cigpKSwgU0VMX0RFRkFVTFRf
QUZGSU5JVFkgfSwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVz
ZXJUcmlnZ2VyZWQpKTsKIAogICAgIHJldHVybiBwbGFjZWhvbGRlcjsKIH0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzYzZk
ZmVlYWJlMzRlMmFiY2Y3MDc5ODQ5YzEwNjc0OTc3YzIwYzE3Li5mYzNjNjMxYWY5YWFkOTIwYzk0
ZjA0ZTQ3NzIxOTVhOWFhMDBiODFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjAtMDctMTUg
IERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIENhcmV0
IHNob3VsZCBiZSBiZWZvcmUgdGV4dCBwbGFjZWhvbGRlciBpbnN0ZWFkIG9mIGFmdGVyIGl0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQzMTkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY1Mjk1NTIzPgorCisgICAgICAgIFJldmlld2VkIGJ5IFdl
bnNvbiBIc2llaCBhbmQgU2ltb24gRnJhc2VyICgxKS4KKworICAgICAgICBBZGQgc29tZSB0ZXN0
cy4KKworICAgICAgICBbMV0gU2ltb24gb25seSByZXZpZXdlZCBlZGl0aW5nL3RleHQtcGxhY2Vo
b2xkZXIvaW5zZXJ0LWludG8tY29udGVudC1lZGl0YWJsZS1hbmQtcmVtb3ZlLXZpYS1tdXRhdGlv
bi1ldmVudC5odG1sLgorCisgICAgICAgICogZWRpdGluZy90ZXh0LXBsYWNlaG9sZGVyL2NhcmV0
LWJlZm9yZS16ZXJvLXdpZHRoLXBsYWNlaG9sZGVyLWluLWNvbnRlbnQtZWRpdGFibGUtZW5kLW9m
LXdvcmQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3RleHQtcGxhY2Vo
b2xkZXIvY2FyZXQtYmVmb3JlLXplcm8td2lkdGgtcGxhY2Vob2xkZXItaW4tY29udGVudC1lZGl0
YWJsZS1lbmQtb2Ytd29yZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3RleHQtcGxh
Y2Vob2xkZXIvY2FyZXQtYmVmb3JlLXplcm8td2lkdGgtcGxhY2Vob2xkZXItaW4tY29udGVudC1l
ZGl0YWJsZS1zdGFydC1vZi13b3JkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRp
dGluZy90ZXh0LXBsYWNlaG9sZGVyL2NhcmV0LWJlZm9yZS16ZXJvLXdpZHRoLXBsYWNlaG9sZGVy
LWluLWNvbnRlbnQtZWRpdGFibGUtc3RhcnQtb2Ytd29yZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBlZGl0aW5nL3RleHQtcGxhY2Vob2xkZXIvaW5zZXJ0LWludG8tY29udGVudC1lZGl0YWJsZS1h
bmQtcmVtb3ZlLXZpYS1tdXRhdGlvbi1ldmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGVkaXRpbmcvdGV4dC1wbGFjZWhvbGRlci9pbnNlcnQtaW50by1jb250ZW50LWVkaXRhYmxl
LWFuZC1yZW1vdmUtdmlhLW11dGF0aW9uLWV2ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHJl
c291cmNlcy9qcy10ZXN0LmpzOgorICAgICAgICAoc2hvdWxkQmVMZXNzVGhhbk9yRXF1YWwpOiBB
ZGRlZC4gSnVzdCBsaWtlIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsLCBidXQgZm9yIDw9Lgor
CiAyMDIwLTA2LTI5ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmc7ICJyZWJhc2VsaW5lIiB0aGUgdmlkZW8tb3JpZW50
YXRpb24tY2FudmFzLmh0bWwgdGVzdCB0byBjZW50ZXIgdGhlIGV4cGVjdGVkIHJlZCBjb2xvcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy90ZXh0LXBsYWNlaG9sZGVyL2NhcmV0LWJl
Zm9yZS16ZXJvLXdpZHRoLXBsYWNlaG9sZGVyLWluLWNvbnRlbnQtZWRpdGFibGUtZW5kLW9mLXdv
cmQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy90ZXh0LXBsYWNlaG9sZGVyL2Nh
cmV0LWJlZm9yZS16ZXJvLXdpZHRoLXBsYWNlaG9sZGVyLWluLWNvbnRlbnQtZWRpdGFibGUtZW5k
LW9mLXdvcmQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5MTBmODEzNjFkZjdmYzYxYjc0ZDky
NzFiMWRhNTE3ZDgyMmZmYTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L3RleHQtcGxhY2Vob2xkZXIvY2FyZXQtYmVmb3JlLXplcm8td2lkdGgtcGxhY2Vob2xkZXItaW4t
Y29udGVudC1lZGl0YWJsZS1lbmQtb2Ytd29yZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBA
QAorVGhpcyB0ZXN0cyB0aGF0IHRoZSB0ZXh0IGluc2VydGlvbiBwb2ludCBpcyBiZWZvcmUgdGhl
IGluc2VydGVkIHRleHQgcGxhY2Vob2xkZXIgd2hlbiBpdCdzIGluc2VydGVkIGF0IHRoZSBlbmQg
b2YgYSB3b3JkLiBUaGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVuIGluIFdlYktpdFRlc3RSdW5uZXIg
b3IgRHVtcFJlbmRlclRyZWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IHdpbmRvdy5nZXRTZWxlY3Rpb24oKS50eXBlIGlzICJDYXJldCIKK1BBU1Mgd2luZG93LmdldFNl
bGVjdGlvbigpLmJhc2VPZmZzZXQgaXMgJ0hlbGxvJy5sZW5ndGgKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL3RleHQtcGxhY2Vob2xkZXIvY2FyZXQtYmVmb3JlLXplcm8td2lkdGgtcGxhY2Vo
b2xkZXItaW4tY29udGVudC1lZGl0YWJsZS1lbmQtb2Ytd29yZC5odG1sIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy90ZXh0LXBsYWNlaG9sZGVyL2NhcmV0LWJlZm9yZS16ZXJvLXdpZHRoLXBsYWNlaG9s
ZGVyLWluLWNvbnRlbnQtZWRpdGFibGUtZW5kLW9mLXdvcmQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZDFh
MGFlODNlNzlmNDBmOWRlOGYyNWY0MDQ4MzI3Nzg5MTEyYjhlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZWRpdGluZy90ZXh0LXBsYWNlaG9sZGVyL2NhcmV0LWJlZm9yZS16ZXJvLXdp
ZHRoLXBsYWNlaG9sZGVyLWluLWNvbnRlbnQtZWRpdGFibGUtZW5kLW9mLXdvcmQuaHRtbApAQCAt
MCwwICsxLDQ3IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1
c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBuYW1l
PSJ2aWV3cG9ydCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0xLjAiPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0icmVzb3VyY2VzL3Rlc3QuY3NzIj4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJ0ZXN0IiBjbGFzcz0idGVzdCIgc3R5bGU9IndpZHRoOiAy
MDBweDsgaGVpZ2h0OiAyMDBweDsgYm9yZGVyOiAxcHggc29saWQgYmxhY2siIGNvbnRlbnRlZGl0
YWJsZT0idHJ1ZSI+SGVsbG8gZnJvbSBDdXBlcnRpbm8hPC9kaXY+Cis8cCBpZD0iY29uc29sZSI+
PC9wPgorPHNjcmlwdD4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZGVzY3JpcHRp
b24oIlRoaXMgdGVzdHMgdGhhdCB0aGUgdGV4dCBpbnNlcnRpb24gcG9pbnQgaXMgYmVmb3JlIHRo
ZSBpbnNlcnRlZCB0ZXh0IHBsYWNlaG9sZGVyIHdoZW4gaXQncyBpbnNlcnRlZCBhdCB0aGUgZW5k
IG9mIGEgd29yZC4gVGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1biBpbiBXZWJLaXRUZXN0UnVubmVy
IG9yIER1bXBSZW5kZXJUcmVlLiIpOworCithc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAg
ICBsZXQgdGVzdEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVF
bGVtZW50QW5kV2FpdEZvcklucHV0U2Vzc2lvbih0ZXN0RWxlbWVudCk7CisgICAgZWxzZQorICAg
ICAgICBhd2FpdCBVSUhlbHBlci5jYWxsRnVuY3Rpb25BbmRXYWl0Rm9yRXZlbnQoKCkgPT4gdGVz
dEVsZW1lbnQuZm9jdXMoKSwgdGVzdEVsZW1lbnQsICJmb2N1cyIpOworCisgICAgbGV0IGVuZE9m
SGVsbG8gPSB0ZXN0RWxlbWVudC50ZXh0Q29udGVudC5pbmRleE9mKCJIZWxsbyIpICsgNTsKKyAg
ICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0ZXN0RWxlbWVudC5maXJz
dENoaWxkLCBlbmRPZkhlbGxvLCB0ZXN0RWxlbWVudC5maXJzdENoaWxkLCBlbmRPZkhlbGxvKTsK
KworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGxldCBsaW5lSGVpZ2h0ID0g
cGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdEVsZW1lbnQsIG51bGwpLmxpbmVI
ZWlnaHQsIDEwKTsKKyAgICAgICAgaW50ZXJuYWxzLmluc2VydFRleHRQbGFjZWhvbGRlcigwIC8q
IHdpZHRoICovLCBsaW5lSGVpZ2h0KTsKKyAgICB9CisKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoIndpbmRvdy5nZXRTZWxlY3Rpb24oKS50eXBlIiwgIkNhcmV0Iik7CisgICAgc2hvdWxkQmUo
IndpbmRvdy5nZXRTZWxlY3Rpb24oKS5iYXNlT2Zmc2V0IiwgIidIZWxsbycubGVuZ3RoIik7CisK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgLy8gQ2xlYW51cCB0byBtYWtl
IHRoZSByZXN1bHRzIHByZXR0eS4KKyAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0
ZXN0RWxlbWVudCk7CisgICAgfQorCisgICAgZmluaXNoSlNUZXN0KCk7Cit9CitydW5UZXN0KCk7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Vk
aXRpbmcvdGV4dC1wbGFjZWhvbGRlci9jYXJldC1iZWZvcmUtemVyby13aWR0aC1wbGFjZWhvbGRl
ci1pbi1jb250ZW50LWVkaXRhYmxlLXN0YXJ0LW9mLXdvcmQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZWRpdGluZy90ZXh0LXBsYWNlaG9sZGVyL2NhcmV0LWJlZm9yZS16ZXJvLXdpZHRoLXBs
YWNlaG9sZGVyLWluLWNvbnRlbnQtZWRpdGFibGUtc3RhcnQtb2Ytd29yZC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTZkY2EyZDk0MzQzNWRlMWQ5YWM3MDMyNDljMjFjMTE2NGQ3ZTg2NwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1wbGFjZWhvbGRlci9jYXJl
dC1iZWZvcmUtemVyby13aWR0aC1wbGFjZWhvbGRlci1pbi1jb250ZW50LWVkaXRhYmxlLXN0YXJ0
LW9mLXdvcmQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1RoaXMgdGVzdHMgdGhhdCB0
aGUgdGV4dCBpbnNlcnRpb24gcG9pbnQgaXMgYmVmb3JlIHRoZSBpbnNlcnRlZCB0ZXh0IHBsYWNl
aG9sZGVyIHdoZW4gaXQncyBpbnNlcnRlZCBiZWZvcmUgdGhlIHN0YXJ0IG9mIGEgd29yZC4gVGhp
cyB0ZXN0IGNhbiBvbmx5IGJlIHJ1biBpbiBXZWJLaXRUZXN0UnVubmVyIG9yIER1bXBSZW5kZXJU
cmVlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkudHlwZSBpcyAiQ2FyZXQiCitQQVNTIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5iYXNl
T2Zmc2V0IGlzICdIZWxsbycubGVuZ3RoCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy90ZXh0
LXBsYWNlaG9sZGVyL2NhcmV0LWJlZm9yZS16ZXJvLXdpZHRoLXBsYWNlaG9sZGVyLWluLWNvbnRl
bnQtZWRpdGFibGUtc3RhcnQtb2Ytd29yZC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy90ZXh0
LXBsYWNlaG9sZGVyL2NhcmV0LWJlZm9yZS16ZXJvLXdpZHRoLXBsYWNlaG9sZGVyLWluLWNvbnRl
bnQtZWRpdGFibGUtc3RhcnQtb2Ytd29yZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyZDU4ZTFjYTg3YjEx
M2I1Mjg3OThkMGQ4Nzc0NDA4MDY3NzhmMzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL3RleHQtcGxhY2Vob2xkZXIvY2FyZXQtYmVmb3JlLXplcm8td2lkdGgtcGxhY2Vo
b2xkZXItaW4tY29udGVudC1lZGl0YWJsZS1zdGFydC1vZi13b3JkLmh0bWwKQEAgLTAsMCArMSw0
NyBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGli
bGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgbmFtZT0idmlld3Bv
cnQiIGNvbnRlbnQ9ImluaXRpYWwtc2NhbGU9MS4wIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJl
c291cmNlcy90ZXN0LmNzcyI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+
PC9wPgorPGRpdiBpZD0idGVzdCIgY2xhc3M9InRlc3QiIHN0eWxlPSJ3aWR0aDogMjAwcHg7IGhl
aWdodDogMjAwcHg7IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrIiBjb250ZW50ZWRpdGFibGU9InRy
dWUiPkhlbGxvIGZyb20gQ3VwZXJ0aW5vITwvZGl2PgorPHAgaWQ9ImNvbnNvbGUiPjwvcD4KKzxz
Y3JpcHQ+Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCJUaGlz
IHRlc3RzIHRoYXQgdGhlIHRleHQgaW5zZXJ0aW9uIHBvaW50IGlzIGJlZm9yZSB0aGUgaW5zZXJ0
ZWQgdGV4dCBwbGFjZWhvbGRlciB3aGVuIGl0J3MgaW5zZXJ0ZWQgYmVmb3JlIHRoZSBzdGFydCBv
ZiBhIHdvcmQuIFRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gaW4gV2ViS2l0VGVzdFJ1bm5lciBv
ciBEdW1wUmVuZGVyVHJlZS4iKTsKKworYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAg
bGV0IHRlc3RFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKKyAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlRWxl
bWVudEFuZFdhaXRGb3JJbnB1dFNlc3Npb24odGVzdEVsZW1lbnQpOworICAgIGVsc2UKKyAgICAg
ICAgYXdhaXQgVUlIZWxwZXIuY2FsbEZ1bmN0aW9uQW5kV2FpdEZvckV2ZW50KCgpID0+IHRlc3RF
bGVtZW50LmZvY3VzKCksIHRlc3RFbGVtZW50LCAiZm9jdXMiKTsKKworICAgIGxldCBwb3NpdGlv
bk9mRnJvbSA9IHRlc3RFbGVtZW50LnRleHRDb250ZW50LmluZGV4T2YoImZyb20iKTsKKyAgICB3
aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0ZXN0RWxlbWVudC5maXJzdENo
aWxkLCBwb3NpdGlvbk9mRnJvbSwgdGVzdEVsZW1lbnQuZmlyc3RDaGlsZCwgcG9zaXRpb25PZkZy
b20pOworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgbGV0IGxpbmVIZWln
aHQgPSBwYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxlbWVudCwgbnVsbCku
bGluZUhlaWdodCwgMTApOworICAgICAgICBpbnRlcm5hbHMuaW5zZXJ0VGV4dFBsYWNlaG9sZGVy
KDAgLyogd2lkdGggKi8sIGxpbmVIZWlnaHQpOworICAgIH0KKworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygid2luZG93LmdldFNlbGVjdGlvbigpLnR5cGUiLCAiQ2FyZXQiKTsKKyAgICBzaG91
bGRCZSgid2luZG93LmdldFNlbGVjdGlvbigpLmJhc2VPZmZzZXQiLCAiJ0hlbGxvJy5sZW5ndGgi
KTsKKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAvLyBDbGVhbnVwIHRv
IG1ha2UgdGhlIHJlc3VsdHMgcHJldHR5LgorICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNo
aWxkKHRlc3RFbGVtZW50KTsKKyAgICB9CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KK3J1blRl
c3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZWRpdGluZy90ZXh0LXBsYWNlaG9sZGVyL2luc2VydC1pbnRvLWNvbnRlbnQtZWRpdGFibGUt
YW5kLXJlbW92ZS12aWEtbXV0YXRpb24tZXZlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy90ZXh0LXBsYWNlaG9sZGVyL2luc2VydC1pbnRvLWNvbnRlbnQtZWRpdGFibGUtYW5k
LXJlbW92ZS12aWEtbXV0YXRpb24tZXZlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1NDQw
MjFjNzM0YTMzYjViMmM2YTIxMTA4MmJlZDc5YTAzOTg5ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3RleHQtcGxhY2Vob2xkZXIvaW5zZXJ0LWludG8tY29udGVudC1l
ZGl0YWJsZS1hbmQtcmVtb3ZlLXZpYS1tdXRhdGlvbi1ldmVudC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwyMCBAQAorVGhpcyB0ZXN0cyB0aGF0IGEgdGV4dCBwbGFjZWhvbGRlciB0aGF0IGlzIHJl
bW92ZWQgZnJvbSB0aGUgcGFnZSB2aWEgYSBtdXRhdGlvbiBldmVudCBjYWxsYmFjayBhZnRlciBi
ZWluZyBpbnNlcnRlZCBkb2VzIG5vdCBjYXVzZSBhIGNyYXNoLiBUaGlzIHRlc3QgY2FuIG9ubHkg
YmUgcnVuIGluIFdlYktpdFRlc3RSdW5uZXIgb3IgRHVtcFJlbmRlclRyZWUuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitCZWZvcmUgaW5zZXJ0aW5nIHBsYWNlaG9sZGVyOgorUEFT
UyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpLmNoaWxkTm9kZXMubGVuZ3RoIGlzIDEK
KworQWZ0ZXIgaW5zZXJ0aW5nIHBsYWNlaG9sZGVyOgorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGVzdCIpLmNoaWxkTm9kZXMubGVuZ3RoIGlzIDMKK1BBU1MgcGxhY2Vob2xkZXJFbGVt
ZW50LnBhcmVudE5vZGUgaXMgbm9uLW51bGwuCisKK0FmdGVyIHJlbW92aW5nIHBsYWNlaG9sZGVy
OgorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpLmNoaWxkTm9kZXMubGVuZ3Ro
IGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAzCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
ZXN0IikuY2hpbGROb2Rlcy5sZW5ndGggaXMgPD0gMgorUEFTUyBwbGFjZWhvbGRlckVsZW1lbnQu
cGFyZW50Tm9kZSBiZWNhbWUgbnVsbAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1w
bGFjZWhvbGRlci9pbnNlcnQtaW50by1jb250ZW50LWVkaXRhYmxlLWFuZC1yZW1vdmUtdmlhLW11
dGF0aW9uLWV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3RleHQtcGxhY2Vob2xkZXIv
aW5zZXJ0LWludG8tY29udGVudC1lZGl0YWJsZS1hbmQtcmVtb3ZlLXZpYS1tdXRhdGlvbi1ldmVu
dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjBiMDdmNjZhMzVkMjkwMjE5MWUxOTNhZGExZGZiNzQyOWJkOTMx
MGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3RleHQtcGxhY2Vob2xk
ZXIvaW5zZXJ0LWludG8tY29udGVudC1lZGl0YWJsZS1hbmQtcmVtb3ZlLXZpYS1tdXRhdGlvbi1l
dmVudC5odG1sCkBAIC0wLDAgKzEsNzcgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVh
ZD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEuMCI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvdGVzdC5jc3MiPgorPC9oZWFkPgorPGJvZHk+
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9InRlc3QiIGNsYXNzPSJ0ZXN0IiBz
dHlsZT0id2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyBib3JkZXI6IDFweCBzb2xpZCBibGFj
ayIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj5IZWxsbyBmcm9tIEN1cGVydGlubyE8L2Rpdj4KKzxw
IGlkPSJjb25zb2xlIj48L3A+Cis8c2NyaXB0Pgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVl
OworCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IGEgdGV4dCBwbGFjZWhvbGRlciB0aGF0
IGlzIHJlbW92ZWQgZnJvbSB0aGUgcGFnZSB2aWEgYSBtdXRhdGlvbiBldmVudCBjYWxsYmFjayBh
ZnRlciBiZWluZyBpbnNlcnRlZCBkb2VzIG5vdCBjYXVzZSBhIGNyYXNoLiBUaGlzIHRlc3QgY2Fu
IG9ubHkgYmUgcnVuIGluIFdlYktpdFRlc3RSdW5uZXIgb3IgRHVtcFJlbmRlclRyZWUuIik7CisK
K2xldCBwbGFjZWhvbGRlckVsZW1lbnQ7CisKK2Z1bmN0aW9uIGRvbmUoKQoreworICAgIC8vIENs
ZWFuIHVwIHRvIG1ha2UgdGhlIHJlc3VsdCBwcmV0dHkuCisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpLnJlbW92ZSgpOwor
ICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiBkaWRSZW1vdmVQbGFjZWhvbGRlcigp
Cit7CisgICAgZGVidWcoIjxicj5BZnRlciByZW1vdmluZyBwbGFjZWhvbGRlcjoiKTsKKyAgICAv
LyBOdW1iZXIgb2YgY2hpbGQgbm9kZXMgc2hvdWxkIGJlIDIgb3IgZmV3ZXIuIEl0IGRlcGVuZHMg
b24gaG93IGFnZ3Jlc3NpdmVseSBhZGphY2VudCAjdGV4dCBub2RlcyBhcmUgY29hbGVzY2VkLgor
ICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3Qi
KS5jaGlsZE5vZGVzLmxlbmd0aCcsICIzIiwgKCkgPT4geworICAgICAgICBzaG91bGRCZUxlc3NU
aGFuT3JFcXVhbCgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKS5jaGlsZE5vZGVzLmxl
bmd0aCcsICIyIik7CisgICAgICAgIHNob3VsZEJlY29tZUVxdWFsKCJwbGFjZWhvbGRlckVsZW1l
bnQucGFyZW50Tm9kZSIsICJudWxsIiwgZG9uZSk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGRp
ZEluc2VydFBsYWNlaG9sZGVyKCkKK3sKKyAgICBkZWJ1ZygiPGJyPkFmdGVyIGluc2VydGluZyBw
bGFjZWhvbGRlcjoiKTsKKyAgICBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRl
c3QiKS5jaGlsZE5vZGVzLmxlbmd0aCcsICIzIik7CisKKyAgICBjb25zb2xlLmFzc2VydChkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpLmNoaWxkTm9kZXMubGVuZ3RoID49IDIpOworICAg
IGNvbnNvbGUuYXNzZXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0IikuY2hpbGROb2Rl
c1sxXSBpbnN0YW5jZW9mIEVsZW1lbnQpOworCisgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5l
cigiRE9NU3VidHJlZU1vZGlmaWVkIiwgZGlkUmVtb3ZlUGxhY2Vob2xkZXIsIHsgb25jZTogdHJ1
ZSB9KTsKKyAgICBwbGFjZWhvbGRlckVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGVzdCIpLmNoaWxkTm9kZXNbMV07CisgICAgc2hvdWxkQmVOb25OdWxsKCJwbGFjZWhvbGRlckVs
ZW1lbnQucGFyZW50Tm9kZSIpOworICAgIHBsYWNlaG9sZGVyRWxlbWVudC5yZW1vdmUoKTsKK30K
KworYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgbGV0IHRlc3RFbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlRWxlbWVudEFuZFdhaXRGb3JJbnB1dFNl
c3Npb24odGVzdEVsZW1lbnQpOworICAgIGVsc2UKKyAgICAgICAgYXdhaXQgVUlIZWxwZXIuY2Fs
bEZ1bmN0aW9uQW5kV2FpdEZvckV2ZW50KCgpID0+IHRlc3RFbGVtZW50LmZvY3VzKCksIHRlc3RF
bGVtZW50LCAiZm9jdXMiKTsKKworICAgIGxldCBwb3NpdGlvbk9mRnJvbSA9IHRlc3RFbGVtZW50
LnRleHRDb250ZW50LmluZGV4T2YoImZyb20iKTsKKyAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCku
c2V0QmFzZUFuZEV4dGVudCh0ZXN0RWxlbWVudC5maXJzdENoaWxkLCBwb3NpdGlvbk9mRnJvbSwg
dGVzdEVsZW1lbnQuZmlyc3RDaGlsZCwgcG9zaXRpb25PZkZyb20pOworCisgICAgZGVidWcoIkJl
Zm9yZSBpbnNlcnRpbmcgcGxhY2Vob2xkZXI6IikKKyAgICBzaG91bGRCZUVxdWFsVG9OdW1iZXIo
J2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0IikuY2hpbGROb2Rlcy5sZW5ndGgnLCAxKTsK
KworICAgIC8vIFRvIGFsbG93IGZvciB0aGUgY29udHJvbCBmbG93IHRvIGJlIGRlYnVnZ2VkIG9u
IE1hYywgYWRkIHRoZSBldmVudCBsaXN0ZW5lciBoZXJlIGluc3RlYWQgb2YgcmlnaHQgYmVmb3Jl
IGluc2VydFRleHRQbGFjZWhvbGRlci4KKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJE
T01TdWJ0cmVlTW9kaWZpZWQiLCBkaWRJbnNlcnRQbGFjZWhvbGRlciwgeyBvbmNlOiB0cnVlIH0p
OworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgbGV0IGxpbmVIZWlnaHQg
PSBwYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxlbWVudCwgbnVsbCkubGlu
ZUhlaWdodCwgMTApOworICAgICAgICBpbnRlcm5hbHMuaW5zZXJ0VGV4dFBsYWNlaG9sZGVyKDAg
Lyogd2lkdGggKi8sIGxpbmVIZWlnaHQpOworICAgIH0KK30KK3J1blRlc3QoKTsKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2pz
LXRlc3QuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvanMtdGVzdC5qcwppbmRleCA5ZTRmMzQ4
MDlmNGRiNzM0NGYxNjI1NmFlYjA0ZTMyMDlhYzliMmUwLi43YzhhZTY1ZWE4ODY2OGJkMWVjMTcw
MmY1NzRkNDZjMzUyMWI1YjgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvanMt
dGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvanMtdGVzdC5qcwpAQCAtNjIwLDYg
KzYyMCwyNyBAQCBmdW5jdGlvbiBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbChfYSwgX2IpIHsK
ICAgICAgICAgdGVzdFBhc3NlZChfYSArICIgaXMgPj0gIiArIF9iKTsKIH0KIAorZnVuY3Rpb24g
c2hvdWxkQmVMZXNzVGhhbk9yRXF1YWwoX2EsIF9iKSB7CisgICAgaWYgKHR5cGVvZiBfYSAhPSAi
c3RyaW5nIiB8fCB0eXBlb2YgX2IgIT0gInN0cmluZyIpCisgICAgICAgIGRlYnVnKCJXQVJOOiBz
aG91bGRCZUxlc3NUaGFuT3JFcXVhbCBleHBlY3RzIHN0cmluZyBhcmd1bWVudHMiKTsKKworICAg
IHZhciBfZXhjZXB0aW9uOworICAgIHZhciBfYXY7CisgICAgdHJ5IHsKKyAgICAgICAgX2F2ID0g
ZXZhbChfYSk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBfZXhjZXB0aW9uID0gZTsKKyAg
ICB9CisgICAgdmFyIF9idiA9IGV2YWwoX2IpOworCisgICAgaWYgKF9leGNlcHRpb24pCisgICAg
ICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSA8PSAiICsgX2IgKyAiLiBUaHJldyBleGNl
cHRpb24gIiArIF9leGNlcHRpb24pOworICAgIGVsc2UgaWYgKHR5cGVvZiBfYXYgPT0gInVuZGVm
aW5lZCIgfHwgX2F2ID4gX2J2KQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUg
PD0gIiArIF9iICsgIi4gV2FzICIgKyBfYXYgKyAiIChvZiB0eXBlICIgKyB0eXBlb2YgX2F2ICsg
IikuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBpcyA8PSAiICsgX2Ip
OworfQorCiBmdW5jdGlvbiBleHBlY3RUcnVlKHYsIG1zZykgewogICBpZiAodikgewogICAgIHRl
c3RQYXNzZWQobXNnKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>