<?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>199204</bug_id>
          
          <creation_ts>2019-06-25 14:29:51 -0700</creation_ts>
          <short_desc>Non-editable text selections should be modifiable with hardware keyboard</short_desc>
          <delta_ts>2019-07-03 15:03:21 -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>WebKit 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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=199211</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>190571</blocked>
    
    <blocked>199465</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>megan_gardner</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1547814</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-06-25 14:29:51 -0700</bug_when>
    <thetext>Non-editable text selections should be modifiable with hardware keyboard</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547815</commentid>
    <comment_count>1</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-06-25 14:29:59 -0700</bug_when>
    <thetext>&lt;rdar://problem/51651496&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547820</commentid>
    <comment_count>2</comment_count>
      <attachid>372863</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-06-25 14:36:31 -0700</bug_when>
    <thetext>Created attachment 372863
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547824</commentid>
    <comment_count>3</comment_count>
      <attachid>372865</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-06-25 14:40:05 -0700</bug_when>
    <thetext>Created attachment 372865
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547878</commentid>
    <comment_count>4</comment_count>
      <attachid>372865</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-06-25 16:41:34 -0700</bug_when>
    <thetext>Comment on attachment 372865
Patch

Clearing flags on attachment: 372865

Committed r246817: &lt;https://trac.webkit.org/changeset/246817&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547879</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-06-25 16:41:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372863</attachid>
            <date>2019-06-25 14:36:31 -0700</date>
            <delta_ts>2019-06-25 14:40:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199204-20190625143630.patch</filename>
            <type>text/plain</type>
            <size>17092</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2NjgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE1MzNhOWRkZGZiODc0MzUz
NjI5YzZkY2QzYjU2YWM4NjQ3MTFjZWQuLmE1NTExYWUwZGIxMmNkZTY4NGZkMTljN2NkMmQ1YTU3
ODE2N2FiOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTktMDYtMjUgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIE5vbi1lZGl0YWJsZSB0ZXh0IHNl
bGVjdGlvbnMgc2hvdWxkIGJlIG1vZGlmaWFibGUgd2l0aCBoYXJkd2FyZSBrZXlib2FyZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MjA0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS81MTY1MTQ5Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVSUtpdCBjaGFuZ2VzIGFyZSBuZWVkIGZvciB0aGlzIHRv
IHdvcmssIGluY2x1ZGluZyA8cmRhcjovL3Byb2JsZW0vNDgzMjI4OTk+LgorICAgICAgICBOb3Rl
IHRoYXQgd2l0aG91dCB0aGVzZSBjaGFuZ2VzLCAtY2FuUGVyZm9ybUFjdGlvbiBpcyBuZXZlciBj
YWxsZWQgZm9yIF9tb3ZlKgorICAgICAgICBzZWxlY3RvcnMuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBjYW5QZXJmb3JtQWN0aW9uOndpdGhTZW5kZXI6XSk6CisKIDIwMTktMDYtMjEgIERhbmll
bCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFNob3VsZCBub3Qg
cHJvY2VzcyBrZXkgZXZlbnRzIGluIG5vbi1lZGl0YWJsZSBlbGVtZW50cyB1c2luZyBJTUUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tCmluZGV4IDg2ZGE1ZWFkMmRlNmYwMWIyZGNkNDg0YzJiODAwODNlZmU5ZjhhMDku
LmIzZTE2ZjI0MTdiMTMzY2U2Yzk4MTcxYTYyZGFmMWUzMGRmMzUyOGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bQpAQCAtMjg3NiwxMSArMjg3NiwxMyBAQCAtIChCT09MKWNhblBlcmZvcm1BY3Rpb246KFNFTClh
Y3Rpb24gd2l0aFNlbmRlcjooaWQpc2VuZGVyCiAKICAgICAvLyBUaGVzZSBhcmUgVUlLaXQgSVBJ
IHNlbGVjdG9ycy4gV2UgZG9uJ3Qgd2FudCB0byBmb3J3YXJkIHRoZW0gdG8gdGhlIHdlYiB2aWV3
LgogICAgIGF1dG8gZWRpdG9yU3RhdGUgPSBfcGFnZS0+ZWRpdG9yU3RhdGUoKTsKLSAgICBpZiAo
YWN0aW9uID09IEBzZWxlY3RvcihfZGVsZXRlQnlXb3JkKSB8fCBhY3Rpb24gPT0gQHNlbGVjdG9y
KF9kZWxldGVGb3J3YXJkQW5kTm90aWZ5OikgfHwgYWN0aW9uID09IEBzZWxlY3RvcihfZGVsZXRl
VG9FbmRPZlBhcmFncmFwaCkgfHwgYWN0aW9uID09IEBzZWxlY3RvcihfZGVsZXRlVG9TdGFydE9m
TGluZSkKLSAgICAgICAgfHwgYWN0aW9uID09IEBzZWxlY3RvcihfbW92ZURvd246d2l0aEhpc3Rv
cnk6KSB8fCBhY3Rpb24gPT0gQHNlbGVjdG9yKF9tb3ZlTGVmdDp3aXRoSGlzdG9yeTopIHx8IGFj
dGlvbiA9PSBAc2VsZWN0b3IoX21vdmVSaWdodDp3aXRoSGlzdG9yeTopCisgICAgaWYgKGFjdGlv
biA9PSBAc2VsZWN0b3IoX21vdmVEb3duOndpdGhIaXN0b3J5OikgfHwgYWN0aW9uID09IEBzZWxl
Y3RvcihfbW92ZUxlZnQ6d2l0aEhpc3Rvcnk6KSB8fCBhY3Rpb24gPT0gQHNlbGVjdG9yKF9tb3Zl
UmlnaHQ6d2l0aEhpc3Rvcnk6KQogICAgICAgICB8fCBhY3Rpb24gPT0gQHNlbGVjdG9yKF9tb3Zl
VG9FbmRPZkRvY3VtZW50OndpdGhIaXN0b3J5OikgfHwgYWN0aW9uID09IEBzZWxlY3RvcihfbW92
ZVRvRW5kT2ZMaW5lOndpdGhIaXN0b3J5OikgfHwgYWN0aW9uID09IEBzZWxlY3RvcihfbW92ZVRv
RW5kT2ZQYXJhZ3JhcGg6d2l0aEhpc3Rvcnk6KQogICAgICAgICB8fCBhY3Rpb24gPT0gQHNlbGVj
dG9yKF9tb3ZlVG9FbmRPZldvcmQ6d2l0aEhpc3Rvcnk6KSB8fCBhY3Rpb24gPT0gQHNlbGVjdG9y
KF9tb3ZlVG9TdGFydE9mRG9jdW1lbnQ6d2l0aEhpc3Rvcnk6KSB8fCBhY3Rpb24gPT0gQHNlbGVj
dG9yKF9tb3ZlVG9TdGFydE9mTGluZTp3aXRoSGlzdG9yeTopCi0gICAgICAgIHx8IGFjdGlvbiA9
PSBAc2VsZWN0b3IoX21vdmVUb1N0YXJ0T2ZQYXJhZ3JhcGg6d2l0aEhpc3Rvcnk6KSB8fCBhY3Rp
b24gPT0gQHNlbGVjdG9yKF9tb3ZlVG9TdGFydE9mV29yZDp3aXRoSGlzdG9yeTopIHx8IGFjdGlv
biA9PSBAc2VsZWN0b3IoX21vdmVVcDp3aXRoSGlzdG9yeTopCisgICAgICAgIHx8IGFjdGlvbiA9
PSBAc2VsZWN0b3IoX21vdmVUb1N0YXJ0T2ZQYXJhZ3JhcGg6d2l0aEhpc3Rvcnk6KSB8fCBhY3Rp
b24gPT0gQHNlbGVjdG9yKF9tb3ZlVG9TdGFydE9mV29yZDp3aXRoSGlzdG9yeTopIHx8IGFjdGlv
biA9PSBAc2VsZWN0b3IoX21vdmVVcDp3aXRoSGlzdG9yeTopKQorICAgICAgICByZXR1cm4gWUVT
OworCisgICAgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IoX2RlbGV0ZUJ5V29yZCkgfHwgYWN0aW9u
ID09IEBzZWxlY3RvcihfZGVsZXRlRm9yd2FyZEFuZE5vdGlmeTopIHx8IGFjdGlvbiA9PSBAc2Vs
ZWN0b3IoX2RlbGV0ZVRvRW5kT2ZQYXJhZ3JhcGgpIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IoX2Rl
bGV0ZVRvU3RhcnRPZkxpbmUpCiAgICAgICAgIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IoX3RyYW5z
cG9zZSkpCiAgICAgICAgIHJldHVybiBlZGl0b3JTdGF0ZS5pc0NvbnRlbnRFZGl0YWJsZTsKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDE1MTQ3ZWQyNjMwOWJjOTlmY2JhM2VlZjc4Yzc1MDlmYTJkNWU3ZDIuLmVkMTFmMGM4
M2YyMDZkYjkzMDI3ZWQxNGRkZGI2MmQyMTk0YzA1YTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAor
MjAxOS0wNi0yNSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKKyAgICAgICAg
Tm9uLWVkaXRhYmxlIHRleHQgc2VsZWN0aW9ucyBzaG91bGQgYmUgbW9kaWZpYWJsZSB3aXRoIGhh
cmR3YXJlIGtleWJvYXJkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTkyMDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxNjUxNDk2PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3QsIHNr
aXBwZWQgZm9yIG5vdywgdW50aWwgd2UgaGF2ZSB0aGUgZml4IGZvciA8cmRhcjovL3Byb2JsZW0v
NDgzMjI4OTk+LgorCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vaW9zL3NlbGVjdC1ub24t
ZWRpdGFibGUtdGV4dC11c2luZy1rZXlib2FyZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGVkaXRpbmcvc2VsZWN0aW9uL2lvcy9zZWxlY3Qtbm9uLWVkaXRhYmxlLXRleHQtdXNpbmct
a2V5Ym9hcmQuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3Rh
dGlvbnM6CisgICAgICAgICogcmVzb3VyY2VzL3VpLWhlbHBlci5qczoKKyAgICAgICAgKHdpbmRv
dy5VSUhlbHBlci5jYWxsRnVuY3Rpb25BbmRXYWl0Rm9yRXZlbnQpOiBBZGRlZC4KKwogMjAxOS0w
Ni0yMSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10g
U2hvdWxkIG5vdCBwcm9jZXNzIGtleSBldmVudHMgaW4gbm9uLWVkaXRhYmxlIGVsZW1lbnRzIHVz
aW5nIElNRQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vaW9zL3Nl
bGVjdC1ub24tZWRpdGFibGUtdGV4dC11c2luZy1rZXlib2FyZC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9pb3Mvc2VsZWN0LW5vbi1lZGl0YWJsZS10ZXh0LXVz
aW5nLWtleWJvYXJkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZTIyMzJlNTIyMTlmMWIyM2Fl
ODJlY2ZlZDU1NjExMTg1YWY5YjMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9zZWxlY3Rpb24vaW9zL3NlbGVjdC1ub24tZWRpdGFibGUtdGV4dC11c2luZy1rZXlib2Fy
ZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0NSBAQAorVGVzdCBzZWxlY3Rpbmcgbm9uLWVkaXRh
YmxlIHRleHQgdXNpbmcgdGhlIGtleWJvYXJkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworCitQcmVzcyBTaGlmdCArIHJpZ2h0IGFycm93IHRvIHNlbGVjdCB0aGUgbmV4dCBjaGFy
YWN0ZXI6CitQQVNTIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIGlzICJIZSIKKwor
UHJlc3MgU2hpZnQgKyBsZWZ0IGFycm93IHRvIHNlbGVjdCB0aGUgcHJldmlvdXMgY2hhcmFjdGVy
OgorUEFTUyB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSBpcyAiSGVyIgorCitQcmVz
cyBTaGlmdCArIE9wdGlvbiArIHJpZ2h0IGFycm93IHRvIHNlbGVjdCB0byB0aGUgZW5kIG9mIHRo
ZSB3b3JkOgorUEFTUyB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSBpcyAiSGVyZSdz
ICIKKworUHJlc3MgU2hpZnQgKyBPcHRpb24gKyBsZWZ0IGFycm93IHRvIHNlbGVjdCB0byB0aGUg
YmVnaW5uaW5nIG9mIHRoZSB3b3JkOgorUEFTUyB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJp
bmcoKSBpcyAiVGhlIgorCitQcmVzcyBTaGlmdCArIENvbnRyb2wgKyByaWdodCBhcnJvdyB0byBz
ZWxlY3QgdG8gdGhlIGVuZCBvZiB0aGUgbGluZToKK1BBU1Mgd2luZG93LmdldFNlbGVjdGlvbigp
LnRvU3RyaW5nKCkgaXMgIkhlcmUncyB0byB0aGUgY3Jhenkgb25lcy4iCisKK1ByZXNzIFNoaWZ0
ICsgQ29udHJvbCArIGxlZnQgYXJyb3cgdG8gc2VsZWN0IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhl
IGxpbmU6CitQQVNTIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIGlzICJUaGUgbWlz
Zml0cy4iCisKK1ByZXNzIFNoaWZ0ICsgdXAgYXJyb3cgdG8gc2VsZWN0IHVwOgorUEFTUyB3aW5k
b3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSBpcyAiSGVyZSdzIHRvIHRoZSBjcmF6eSBvbmVz
LlxuXG5UIgorCitQcmVzcyBTaGlmdCArIGRvd24gYXJyb3cgdG8gc2VsZWN0IGRvd246CitQQVNT
IHdpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIGlzICJUaGUgbWlzZml0cy5cblxuVCIK
KworUHJlc3MgU2hpZnQgKyBPcHRpb24gKyBkb3duIGFycm93IHRvIHNlbGVjdCB0byB0aGUgZW5k
IG9mIHRoZSBwYXJhZ3JhcGg6CitQQVNTIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygp
IGlzICJIZXJlJ3MgdG8gdGhlIGNyYXp5IG9uZXMuIgorCitQcmVzcyBTaGlmdCArIE9wdGlvbiAr
IHVwIGFycm93IHRvIHNlbGVjdCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBwYXJhZ3JhcGg6CitQ
QVNTIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIGlzICJUaGUgcmViZWxzLiIKKwor
UHJlc3MgU2hpZnQgKyBDb250cm9sICsgZG93biBhcnJvdyB0byBzZWxlY3QgdG8gdGhlIGVuZCBv
ZiB0aGUgZG9jdW1lbnQ6CitQQVNTIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIGlz
ICJIZXJlJ3MgdG8gdGhlIGNyYXp5IG9uZXMuXG5cblRoZSBtaXNmaXRzLlxuXG5UaGUgcmViZWxz
LiIKKworUHJlc3MgU2hpZnQgKyBDb250cm9sICsgdXAgYXJyb3cgdG8gc2VsZWN0IHRvIHRoZSBi
ZWdpbm5pbmcgb2YgdGhlIGRvY3VtZW50OgorUEFTUyB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9T
dHJpbmcoKSBpcyAiSGVyZSdzIHRvIHRoZSBjcmF6eSBvbmVzLlxuXG5UaGUgbWlzZml0cy4iCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vaW9zL3NlbGVjdC1ub24tZWRpdGFi
bGUtdGV4dC11c2luZy1rZXlib2FyZC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vaW9zL3NlbGVjdC1ub24tZWRpdGFibGUtdGV4dC11c2luZy1rZXlib2FyZC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmUxNDgxMGE2Mjc1ZmFiM2MxMTA0OWVmNzZiNDRkZWI3ODI3MmFmMTkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9pb3Mvc2VsZWN0LW5vbi1l
ZGl0YWJsZS10ZXh0LXVzaW5nLWtleWJvYXJkLmh0bWwKQEAgLTAsMCArMSwxNzYgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+Citib2R5LmhpZGUtZXZlcnl0aGluZy1l
eGNlcHQtdGVzdC1jb250YWluZXIgPiA6bm90KCN0ZXN0LWNvbnRhaW5lcikgeworICAgIGRpc3Bs
YXk6IG5vbmU7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJ0ZXN0LWNv
bnRhaW5lciI+CisgICAgPHA+SGVyZSdzIHRvIHRoZSBjcmF6eSBvbmVzLjwvcD4KKyAgICA8cD5U
aGUgbWlzZml0cy48L3A+CisgICAgPHA+VGhlIHJlYmVscy48L3A+Cis8L2Rpdj4KKzxzY3JpcHQ+
CitsZXQgdGVzdENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0LWNvbnRh
aW5lciIpOworbGV0IHBhcmFncmFwaHMgPSB0ZXN0Q29udGFpbmVyLmNoaWxkcmVuOworbGV0IHNl
bGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKKworZnVuY3Rpb24gdG9nZ2xlT25seVNo
b3dUZXN0Q29udGFpbmVyKCkKK3sKKyAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUo
ImhpZGUtZXZlcnl0aGluZy1leGNlcHQtdGVzdC1jb250YWluZXIiKTsKK30KKworYXN5bmMgZnVu
Y3Rpb24gdGVzdEV4dGVuZFNlbGVjdGlvblRvTmV4dENoYXJhY3RlcigpCit7CisgICAgYXdhaXQg
VUlIZWxwZXIuY2FsbEZ1bmN0aW9uQW5kV2FpdEZvckV2ZW50KCgpID0+IHNlbGVjdGlvbi5zZXRC
YXNlQW5kRXh0ZW50KHBhcmFncmFwaHNbMF0uZmlyc3RDaGlsZCwgMCwgcGFyYWdyYXBoc1swXS5m
aXJzdENoaWxkLCAxKSwgZG9jdW1lbnQsICJzZWxlY3Rpb25jaGFuZ2UiKTsKKworICAgIGRlYnVn
KCI8YnI+UHJlc3MgU2hpZnQgKyByaWdodCBhcnJvdyB0byBzZWxlY3QgdGhlIG5leHQgY2hhcmFj
dGVyOiIpOworICAgIGF3YWl0IFVJSGVscGVyLmNhbGxGdW5jdGlvbkFuZFdhaXRGb3JFdmVudCgo
KSA9PiB3aW5kb3cudGVzdFJ1bm5lciAmJiBVSUhlbHBlci5rZXlEb3duKCJyaWdodEFycm93Iiwg
WyJzaGlmdEtleSJdKSAsIGRvY3VtZW50LCAic2VsZWN0aW9uY2hhbmdlIik7CisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSIsICJIZSIp
OworfQorCithc3luYyBmdW5jdGlvbiB0ZXN0RXh0ZW5kU2VsZWN0aW9uVG9QcmV2aW91c0NoYXJh
Y3RlcigpCit7CisgICAgYXdhaXQgVUlIZWxwZXIuY2FsbEZ1bmN0aW9uQW5kV2FpdEZvckV2ZW50
KCgpID0+IHNlbGVjdGlvbi5zZXRCYXNlQW5kRXh0ZW50KHBhcmFncmFwaHNbMF0uZmlyc3RDaGls
ZCwgMywgcGFyYWdyYXBoc1swXS5maXJzdENoaWxkLCAxKSwgZG9jdW1lbnQsICJzZWxlY3Rpb25j
aGFuZ2UiKTsKKworICAgIGRlYnVnKCI8YnI+UHJlc3MgU2hpZnQgKyBsZWZ0IGFycm93IHRvIHNl
bGVjdCB0aGUgcHJldmlvdXMgY2hhcmFjdGVyOiIpOworICAgIGF3YWl0IFVJSGVscGVyLmNhbGxG
dW5jdGlvbkFuZFdhaXRGb3JFdmVudCgoKSA9PiB3aW5kb3cudGVzdFJ1bm5lciAmJiBVSUhlbHBl
ci5rZXlEb3duKCJsZWZ0QXJyb3ciLCBbInNoaWZ0S2V5Il0pICwgZG9jdW1lbnQsICJzZWxlY3Rp
b25jaGFuZ2UiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRTZWxlY3Rp
b24oKS50b1N0cmluZygpIiwgIkhlciIpOworfQorCithc3luYyBmdW5jdGlvbiB0ZXN0RXh0ZW5k
U2VsZWN0aW9uVG9FbmRPZldvcmQoKQoreworICAgIGF3YWl0IFVJSGVscGVyLmNhbGxGdW5jdGlv
bkFuZFdhaXRGb3JFdmVudCgoKSA9PiBzZWxlY3Rpb24uc2V0QmFzZUFuZEV4dGVudChwYXJhZ3Jh
cGhzWzBdLmZpcnN0Q2hpbGQsIDAsIHBhcmFncmFwaHNbMF0uZmlyc3RDaGlsZCwgMSksIGRvY3Vt
ZW50LCAic2VsZWN0aW9uY2hhbmdlIik7CisKKyAgICBkZWJ1ZygiPGJyPlByZXNzIFNoaWZ0ICsg
T3B0aW9uICsgcmlnaHQgYXJyb3cgdG8gc2VsZWN0IHRvIHRoZSBlbmQgb2YgdGhlIHdvcmQ6Iik7
CisgICAgYXdhaXQgVUlIZWxwZXIuY2FsbEZ1bmN0aW9uQW5kV2FpdEZvckV2ZW50KCgpID0+IHdp
bmRvdy50ZXN0UnVubmVyICYmIFVJSGVscGVyLmtleURvd24oInJpZ2h0QXJyb3ciLCBbInNoaWZ0
S2V5IiwgImFsdEtleSJdKSAsIGRvY3VtZW50LCAic2VsZWN0aW9uY2hhbmdlIik7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSIsICJI
ZXJlJ3MgIik7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3RFeHRlbmRTZWxlY3Rpb25Ub0JlZ2lu
bmluZ09mV29yZCgpCit7CisgICAgYXdhaXQgVUlIZWxwZXIuY2FsbEZ1bmN0aW9uQW5kV2FpdEZv
ckV2ZW50KCgpID0+IHNlbGVjdGlvbi5zZXRCYXNlQW5kRXh0ZW50KHBhcmFncmFwaHNbMV0uZmly
c3RDaGlsZCwgMywgcGFyYWdyYXBoc1sxXS5maXJzdENoaWxkLCAxKSwgZG9jdW1lbnQsICJzZWxl
Y3Rpb25jaGFuZ2UiKTsKKworICAgIGRlYnVnKCI8YnI+UHJlc3MgU2hpZnQgKyBPcHRpb24gKyBs
ZWZ0IGFycm93IHRvIHNlbGVjdCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB3b3JkOiIpOworICAg
IGF3YWl0IFVJSGVscGVyLmNhbGxGdW5jdGlvbkFuZFdhaXRGb3JFdmVudCgoKSA9PiB3aW5kb3cu
dGVzdFJ1bm5lciAmJiBVSUhlbHBlci5rZXlEb3duKCJsZWZ0QXJyb3ciLCBbInNoaWZ0S2V5Iiwg
ImFsdEtleSJdKSAsIGRvY3VtZW50LCAic2VsZWN0aW9uY2hhbmdlIik7CisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSIsICJUaGUiKTsK
K30KKworYXN5bmMgZnVuY3Rpb24gdGV4dEV4dGVuZFNlbGVjdGlvblRvRW5kT2ZMaW5lKCkKK3sK
KyAgICBhd2FpdCBVSUhlbHBlci5jYWxsRnVuY3Rpb25BbmRXYWl0Rm9yRXZlbnQoKCkgPT4gc2Vs
ZWN0aW9uLnNldEJhc2VBbmRFeHRlbnQocGFyYWdyYXBoc1swXS5maXJzdENoaWxkLCAwLCBwYXJh
Z3JhcGhzWzBdLmZpcnN0Q2hpbGQsIDEpLCBkb2N1bWVudCwgInNlbGVjdGlvbmNoYW5nZSIpOwor
CisgICAgZGVidWcoIjxicj5QcmVzcyBTaGlmdCArIENvbnRyb2wgKyByaWdodCBhcnJvdyB0byBz
ZWxlY3QgdG8gdGhlIGVuZCBvZiB0aGUgbGluZToiKTsKKyAgICBhd2FpdCBVSUhlbHBlci5jYWxs
RnVuY3Rpb25BbmRXYWl0Rm9yRXZlbnQoKCkgPT4gd2luZG93LnRlc3RSdW5uZXIgJiYgVUlIZWxw
ZXIua2V5RG93bigicmlnaHRBcnJvdyIsIFsic2hpZnRLZXkiLCAiY3RybEtleSJdKSAsIGRvY3Vt
ZW50LCAic2VsZWN0aW9uY2hhbmdlIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5k
b3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSIsICJIZXJlJ3MgdG8gdGhlIGNyYXp5IG9uZXMu
Iik7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3RFeHRlbmRTZWxlY3Rpb25Ub0JlZ2lubmluZ09m
TGluZSgpCit7CisgICAgYXdhaXQgVUlIZWxwZXIuY2FsbEZ1bmN0aW9uQW5kV2FpdEZvckV2ZW50
KCgpID0+IHNlbGVjdGlvbi5zZXRCYXNlQW5kRXh0ZW50KHBhcmFncmFwaHNbMV0uZmlyc3RDaGls
ZCwgcGFyYWdyYXBoc1sxXS5maXJzdENoaWxkLmxlbmd0aCwgcGFyYWdyYXBoc1sxXS5maXJzdENo
aWxkLCBwYXJhZ3JhcGhzWzFdLmZpcnN0Q2hpbGQubGVuZ3RoIC0gMSksIGRvY3VtZW50LCAic2Vs
ZWN0aW9uY2hhbmdlIik7CisKKyAgICBkZWJ1ZygiPGJyPlByZXNzIFNoaWZ0ICsgQ29udHJvbCAr
IGxlZnQgYXJyb3cgdG8gc2VsZWN0IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmU6Iik7Cisg
ICAgYXdhaXQgVUlIZWxwZXIuY2FsbEZ1bmN0aW9uQW5kV2FpdEZvckV2ZW50KCgpID0+IHdpbmRv
dy50ZXN0UnVubmVyICYmIFVJSGVscGVyLmtleURvd24oImxlZnRBcnJvdyIsIFsic2hpZnRLZXki
LCAiY3RybEtleSJdKSAsIGRvY3VtZW50LCAic2VsZWN0aW9uY2hhbmdlIik7CisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSIsICJUaGUg
bWlzZml0cy4iKTsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdEV4dGVuZFNlbGVjdGlvblVwKCkK
K3sKKyAgICBhd2FpdCBVSUhlbHBlci5jYWxsRnVuY3Rpb25BbmRXYWl0Rm9yRXZlbnQoKCkgPT4g
c2VsZWN0aW9uLnNldEJhc2VBbmRFeHRlbnQocGFyYWdyYXBoc1sxXS5maXJzdENoaWxkLCAxLCBw
YXJhZ3JhcGhzWzFdLmZpcnN0Q2hpbGQsIDApLCBkb2N1bWVudCwgInNlbGVjdGlvbmNoYW5nZSIp
OworCisgICAgZGVidWcoIjxicj5QcmVzcyBTaGlmdCArIHVwIGFycm93IHRvIHNlbGVjdCB1cDoi
KTsKKyAgICBhd2FpdCBVSUhlbHBlci5jYWxsRnVuY3Rpb25BbmRXYWl0Rm9yRXZlbnQoKCkgPT4g
d2luZG93LnRlc3RSdW5uZXIgJiYgVUlIZWxwZXIua2V5RG93bigidXBBcnJvdyIsIFsic2hpZnRL
ZXkiXSkgLCBkb2N1bWVudCwgInNlbGVjdGlvbmNoYW5nZSIpOworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygid2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiLCAiSGVyZSdzIHRvIHRo
ZSBjcmF6eSBvbmVzLlxuXG5UIik7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3RFeHRlbmRTZWxl
Y3Rpb25Eb3duKCkKK3sKKyAgICBhd2FpdCBVSUhlbHBlci5jYWxsRnVuY3Rpb25BbmRXYWl0Rm9y
RXZlbnQoKCkgPT4gc2VsZWN0aW9uLnNldEJhc2VBbmRFeHRlbnQocGFyYWdyYXBoc1sxXS5maXJz
dENoaWxkLCAwLCBwYXJhZ3JhcGhzWzFdLmZpcnN0Q2hpbGQsIDEpLCBkb2N1bWVudCwgInNlbGVj
dGlvbmNoYW5nZSIpOworCisgICAgZGVidWcoIjxicj5QcmVzcyBTaGlmdCArIGRvd24gYXJyb3cg
dG8gc2VsZWN0IGRvd246Iik7CisgICAgYXdhaXQgVUlIZWxwZXIuY2FsbEZ1bmN0aW9uQW5kV2Fp
dEZvckV2ZW50KCgpID0+IHdpbmRvdy50ZXN0UnVubmVyICYmIFVJSGVscGVyLmtleURvd24oImRv
d25BcnJvdyIsIFsic2hpZnRLZXkiXSkgLCBkb2N1bWVudCwgInNlbGVjdGlvbmNoYW5nZSIpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5n
KCkiLCAiVGhlIG1pc2ZpdHMuXG5cblQiKTsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdEV4dGVu
ZFNlbGVjdGlvblRvRW5kT2ZQYXJhZ3JhcGgoKQoreworICAgIHRvZ2dsZU9ubHlTaG93VGVzdENv
bnRhaW5lcigpOworCisgICAgYXdhaXQgVUlIZWxwZXIuY2FsbEZ1bmN0aW9uQW5kV2FpdEZvckV2
ZW50KCgpID0+IHNlbGVjdGlvbi5zZXRCYXNlQW5kRXh0ZW50KHBhcmFncmFwaHNbMF0uZmlyc3RD
aGlsZCwgMCwgcGFyYWdyYXBoc1swXS5maXJzdENoaWxkLCAxKSwgZG9jdW1lbnQsICJzZWxlY3Rp
b25jaGFuZ2UiKTsKKworICAgIGRlYnVnKCI8YnI+UHJlc3MgU2hpZnQgKyBPcHRpb24gKyBkb3du
IGFycm93IHRvIHNlbGVjdCB0byB0aGUgZW5kIG9mIHRoZSBwYXJhZ3JhcGg6Iik7CisgICAgYXdh
aXQgVUlIZWxwZXIuY2FsbEZ1bmN0aW9uQW5kV2FpdEZvckV2ZW50KCgpID0+IHdpbmRvdy50ZXN0
UnVubmVyICYmIFVJSGVscGVyLmtleURvd24oImRvd25BcnJvdyIsIFsic2hpZnRLZXkiLCAiYWx0
S2V5Il0pICwgZG9jdW1lbnQsICJzZWxlY3Rpb25jaGFuZ2UiKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoIndpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIiwgIkhlcmUncyB0byB0
aGUgY3Jhenkgb25lcy4iKTsKKworICAgIHRvZ2dsZU9ubHlTaG93VGVzdENvbnRhaW5lcigpOwor
fQorCithc3luYyBmdW5jdGlvbiB0ZXN0RXh0ZW5kU2VsZWN0aW9uVG9CZWdpbm5pbmdPZlBhcmFn
cmFwaCgpCit7CisgICAgdG9nZ2xlT25seVNob3dUZXN0Q29udGFpbmVyKCk7CisKKyAgICBhd2Fp
dCBVSUhlbHBlci5jYWxsRnVuY3Rpb25BbmRXYWl0Rm9yRXZlbnQoKCkgPT4gc2VsZWN0aW9uLnNl
dEJhc2VBbmRFeHRlbnQocGFyYWdyYXBoc1syXS5maXJzdENoaWxkLCBwYXJhZ3JhcGhzWzJdLmZp
cnN0Q2hpbGQubGVuZ3RoLCBwYXJhZ3JhcGhzWzJdLmZpcnN0Q2hpbGQsIHBhcmFncmFwaHNbMl0u
Zmlyc3RDaGlsZC5sZW5ndGggLSAxKSwgZG9jdW1lbnQsICJzZWxlY3Rpb25jaGFuZ2UiKTsKKwor
ICAgIGRlYnVnKCI8YnI+UHJlc3MgU2hpZnQgKyBPcHRpb24gKyB1cCBhcnJvdyB0byBzZWxlY3Qg
dG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgcGFyYWdyYXBoOiIpOworICAgIGF3YWl0IFVJSGVscGVy
LmNhbGxGdW5jdGlvbkFuZFdhaXRGb3JFdmVudCgoKSA9PiB3aW5kb3cudGVzdFJ1bm5lciAmJiBV
SUhlbHBlci5rZXlEb3duKCJ1cEFycm93IiwgWyJzaGlmdEtleSIsICJhbHRLZXkiXSkgLCBkb2N1
bWVudCwgInNlbGVjdGlvbmNoYW5nZSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2lu
ZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiLCAiVGhlIHJlYmVscy4iKTsKKworICAgIHRv
Z2dsZU9ubHlTaG93VGVzdENvbnRhaW5lcigpOworfQorCithc3luYyBmdW5jdGlvbiB0ZXN0RXh0
ZW5kU2VsZWN0aW9uVG9FbmRPZkRvY3VtZW50KCkKK3sKKyAgICB0b2dnbGVPbmx5U2hvd1Rlc3RD
b250YWluZXIoKTsKKworICAgIGF3YWl0IFVJSGVscGVyLmNhbGxGdW5jdGlvbkFuZFdhaXRGb3JF
dmVudCgoKSA9PiBzZWxlY3Rpb24uc2V0QmFzZUFuZEV4dGVudChwYXJhZ3JhcGhzWzBdLmZpcnN0
Q2hpbGQsIDAsIHBhcmFncmFwaHNbMF0uZmlyc3RDaGlsZCwgMSksIGRvY3VtZW50LCAic2VsZWN0
aW9uY2hhbmdlIik7CisKKyAgICBkZWJ1ZygiPGJyPlByZXNzIFNoaWZ0ICsgQ29udHJvbCArIGRv
d24gYXJyb3cgdG8gc2VsZWN0IHRvIHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50OiIpOworICAgIGF3
YWl0IFVJSGVscGVyLmNhbGxGdW5jdGlvbkFuZFdhaXRGb3JFdmVudCgoKSA9PiB3aW5kb3cudGVz
dFJ1bm5lciAmJiBVSUhlbHBlci5rZXlEb3duKCJkb3duQXJyb3ciLCBbInNoaWZ0S2V5IiwgImN0
cmxLZXkiXSkgLCBkb2N1bWVudCwgInNlbGVjdGlvbmNoYW5nZSIpOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygid2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiLCAiSGVyZSdzIHRv
IHRoZSBjcmF6eSBvbmVzLlxuXG5UaGUgbWlzZml0cy5cblxuVGhlIHJlYmVscy4iKTsKKworICAg
IHRvZ2dsZU9ubHlTaG93VGVzdENvbnRhaW5lcigpOworfQorCithc3luYyBmdW5jdGlvbiB0ZXN0
RXh0ZW5kU2VsZWN0aW9uVG9CZWdpbm5pbmdPZkRvY3VtZW50KCkKK3sKKyAgICB0b2dnbGVPbmx5
U2hvd1Rlc3RDb250YWluZXIoKTsKKworICAgIGF3YWl0IFVJSGVscGVyLmNhbGxGdW5jdGlvbkFu
ZFdhaXRGb3JFdmVudCgoKSA9PiBzZWxlY3Rpb24uc2V0QmFzZUFuZEV4dGVudChwYXJhZ3JhcGhz
WzFdLmZpcnN0Q2hpbGQsIHBhcmFncmFwaHNbMV0uZmlyc3RDaGlsZC5sZW5ndGgsIHBhcmFncmFw
aHNbMV0uZmlyc3RDaGlsZCwgcGFyYWdyYXBoc1sxXS5maXJzdENoaWxkLmxlbmd0aCAtIDEpLCBk
b2N1bWVudCwgInNlbGVjdGlvbmNoYW5nZSIpOworCisgICAgZGVidWcoIjxicj5QcmVzcyBTaGlm
dCArIENvbnRyb2wgKyB1cCBhcnJvdyB0byBzZWxlY3QgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUg
ZG9jdW1lbnQ6Iik7CisgICAgYXdhaXQgVUlIZWxwZXIuY2FsbEZ1bmN0aW9uQW5kV2FpdEZvckV2
ZW50KCgpID0+IHdpbmRvdy50ZXN0UnVubmVyICYmIFVJSGVscGVyLmtleURvd24oInVwQXJyb3ci
LCBbInNoaWZ0S2V5IiwgImN0cmxLZXkiXSkgLCBkb2N1bWVudCwgInNlbGVjdGlvbmNoYW5nZSIp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldFNlbGVjdGlvbigpLnRvU3Ry
aW5nKCkiLCAiSGVyZSdzIHRvIHRoZSBjcmF6eSBvbmVzLlxuXG5UaGUgbWlzZml0cy4iKTsKKwor
ICAgIHRvZ2dsZU9ubHlTaG93VGVzdENvbnRhaW5lcigpOworfQorCithc3luYyBmdW5jdGlvbiBy
dW5UZXN0cygpCit7CisgICAgYXdhaXQgdGVzdEV4dGVuZFNlbGVjdGlvblRvTmV4dENoYXJhY3Rl
cigpOworICAgIGF3YWl0IHRlc3RFeHRlbmRTZWxlY3Rpb25Ub1ByZXZpb3VzQ2hhcmFjdGVyKCk7
CisgICAgYXdhaXQgdGVzdEV4dGVuZFNlbGVjdGlvblRvRW5kT2ZXb3JkKCk7CisgICAgYXdhaXQg
dGVzdEV4dGVuZFNlbGVjdGlvblRvQmVnaW5uaW5nT2ZXb3JkKCk7CisgICAgYXdhaXQgdGV4dEV4
dGVuZFNlbGVjdGlvblRvRW5kT2ZMaW5lKCk7CisgICAgYXdhaXQgdGVzdEV4dGVuZFNlbGVjdGlv
blRvQmVnaW5uaW5nT2ZMaW5lKCk7CisgICAgYXdhaXQgdGVzdEV4dGVuZFNlbGVjdGlvblVwKCk7
CisgICAgYXdhaXQgdGVzdEV4dGVuZFNlbGVjdGlvbkRvd24oKTsKKyAgICBhd2FpdCB0ZXN0RXh0
ZW5kU2VsZWN0aW9uVG9FbmRPZlBhcmFncmFwaCgpOworICAgIGF3YWl0IHRlc3RFeHRlbmRTZWxl
Y3Rpb25Ub0JlZ2lubmluZ09mUGFyYWdyYXBoKCk7CisgICAgYXdhaXQgdGVzdEV4dGVuZFNlbGVj
dGlvblRvRW5kT2ZEb2N1bWVudCgpOworICAgIGF3YWl0IHRlc3RFeHRlbmRTZWxlY3Rpb25Ub0Jl
Z2lubmluZ09mRG9jdW1lbnQoKTsKKworICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QtY29udGFpbmVyIikpOworICAgIGZpbmlzaEpTVGVz
dCgpOworfQorCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZXNjcmlwdGlvbigiVGVz
dCBzZWxlY3Rpbmcgbm9uLWVkaXRhYmxlIHRleHQgdXNpbmcgdGhlIGtleWJvYXJkLiIpOworcnVu
VGVzdHMoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA3ZTlkZDhkOGNjMzY2ZDIzY2JiODY4ZGIwZGU3
ZjBlNTVhMmU1OWJkLi5kYzI4YzQyZjEwOGZmMWJjYjNlNjg2NjA3M2Q4NDg1ZjBiZDQyOTIyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucworKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzI1Miw1ICsz
MjUyLDggQEAgd2Via2l0Lm9yZy9iLzE5Nzc3OCBbIERlYnVnIF0gd2ViZ2wvMi4wLjAvY29uZm9y
bWFuY2UyL2F0dHJpYnMvZ2wtdmVydGV4YXR0cmliaXAKICMgV2FzIHVuc2tpcHBlZCwgYnV0IG5v
dyBoYXMgbWlzc2luZyByZXN1bHRzIGluIGlPUyAuIFNraXBwaW5nIG9uIGlPUyBvbmx5LgogbWVk
aWEvY29udHJvbHMtYWZ0ZXItcmVsb2FkLmh0bWwgWyBTa2lwIF0KIAorIyBGSVhNRTogVW5za2lw
IHRoZSBmb2xsb3dpbmcgdGVzdCBvbmNlIHdlIGhhdmUgdGhlIGZpeCBmb3IgPHJkYXI6Ly9wcm9i
bGVtLzQ4MzIyODk5Pi4KK2VkaXRpbmcvc2VsZWN0aW9uL2lvcy9zZWxlY3Qtbm9uLWVkaXRhYmxl
LXRleHQtdXNpbmcta2V5Ym9hcmQuaHRtbCBbIFNraXAgXQorCiAjIEZJWE1FOiBVbnNraXAgdGhl
IGZvbGxvd2luZyB0ZXN0IG9uY2Ugd2UgaGF2ZSB0aGUgZml4IGZvciA8cmRhcjovL3Byb2JsZW0v
NDY0MzA3OTY+LgogZmFzdC9ldmVudHMvaW9zL2tleS1jb21tYW5kLXNlbGVjdC1hbGwtcHJldmVu
dC1kZWZhdWx0Lmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Jlc291cmNl
cy91aS1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCmluZGV4
IDUyMjZiODcwZGJkZWJmZDdlM2NhYmUyMDcyY2Y5NmM3NDYzOTMyOTguLjllYjk3ZDA3MGVlYjRk
MGNkNGM0Yzg5ZDFlZDg2NTBmNGM1NWNlYmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Jlc291
cmNlcy91aS1oZWxwZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5q
cwpAQCAtODk5LDYgKzg5OSwxNSBAQCB3aW5kb3cuVUlIZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7
CiAgICAgICAgICAgICBhd2FpdCB0aGlzLmFjdGl2YXRlQXQobWVudVJlY3QubGVmdCArIG1lbnVS
ZWN0LndpZHRoIC8gMiwgbWVudVJlY3QudG9wICsgbWVudVJlY3QuaGVpZ2h0IC8gMik7CiAgICAg
fQogCisgICAgc3RhdGljIGNhbGxGdW5jdGlvbkFuZFdhaXRGb3JFdmVudChmdW5jdGlvblRvQ2Fs
bCwgdGFyZ2V0LCBldmVudE5hbWUpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFByb21pc2Uo
KHJlc29sdmUpID0+IHsKKyAgICAgICAgICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKGV2ZW50
TmFtZSwgcmVzb2x2ZSwgeyBvbmNlOiB0cnVlIH0pOworICAgICAgICAgICAgZnVuY3Rpb25Ub0Nh
bGwoKTsKKyAgICAgICAgfSk7CisKKyAgICB9CisKICAgICBzdGF0aWMgY2FsbEZ1bmN0aW9uQW5k
V2FpdEZvclNjcm9sbFRvRmluaXNoKGZ1bmN0aW9uVG9DYWxsLCAuLi50aGVBcmd1bWVudHMpCiAg
ICAgewogICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmVkKSA9PiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372865</attachid>
            <date>2019-06-25 14:40:05 -0700</date>
            <delta_ts>2019-06-25 16:41:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199204-20190625144004.patch</filename>
            <type>text/plain</type>
            <size>16971</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2ODA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM2MDY1NDBiM2RmY2Q0MWRj
YTk4NjJkNzdlNjRkZTkyMmUzMWYyYWQuLjBlODRkOTA3YjdhYWZmNGUxYWY5ZWU2ZmUzZDM1YzBi
YWNhM2JlZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTktMDYtMjUgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIE5vbi1lZGl0YWJsZSB0ZXh0IHNl
bGVjdGlvbnMgc2hvdWxkIGJlIG1vZGlmaWFibGUgd2l0aCBoYXJkd2FyZSBrZXlib2FyZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MjA0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS81MTY1MTQ5Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVSUtpdCBjaGFuZ2VzIGFyZSBuZWVkIGZvciB0aGlzIHRv
IHdvcmssIGluY2x1ZGluZyA8cmRhcjovL3Byb2JsZW0vNDgzMjI4OTk+LgorICAgICAgICBOb3Rl
IHRoYXQgd2l0aG91dCB0aGVzZSBjaGFuZ2VzLCAtY2FuUGVyZm9ybUFjdGlvbiBpcyBuZXZlciBj
YWxsZWQgZm9yIF9tb3ZlKgorICAgICAgICBzZWxlY3RvcnMuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBjYW5QZXJmb3JtQWN0aW9uOndpdGhTZW5kZXI6XSk6CisKIDIwMTktMDYtMjUgIEFsZXgg
Q2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBNYWtlIEhU
VFBDb29raWVBY2NlcHRQb2xpY3kgYW4gZW51bSBjbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggNGQ0
MmYwYjAxZWFhMWUxNWU2NGFkNDlhYzQxYTdkOGQ1NzAyYzZlOS4uMzIzYzZjZjkxOWY3MDg4MThi
MTllOTU2MjM4YTk2MTdkNDhhMWU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0yODkyLDExICsyODky
LDEzIEBAIC0gKEJPT0wpY2FuUGVyZm9ybUFjdGlvbjooU0VMKWFjdGlvbiB3aXRoU2VuZGVyOihp
ZClzZW5kZXIKIAogICAgIC8vIFRoZXNlIGFyZSBVSUtpdCBJUEkgc2VsZWN0b3JzLiBXZSBkb24n
dCB3YW50IHRvIGZvcndhcmQgdGhlbSB0byB0aGUgd2ViIHZpZXcuCiAgICAgYXV0byBlZGl0b3JT
dGF0ZSA9IF9wYWdlLT5lZGl0b3JTdGF0ZSgpOwotICAgIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9y
KF9kZWxldGVCeVdvcmQpIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IoX2RlbGV0ZUZvcndhcmRBbmRO
b3RpZnk6KSB8fCBhY3Rpb24gPT0gQHNlbGVjdG9yKF9kZWxldGVUb0VuZE9mUGFyYWdyYXBoKSB8
fCBhY3Rpb24gPT0gQHNlbGVjdG9yKF9kZWxldGVUb1N0YXJ0T2ZMaW5lKQotICAgICAgICB8fCBh
Y3Rpb24gPT0gQHNlbGVjdG9yKF9tb3ZlRG93bjp3aXRoSGlzdG9yeTopIHx8IGFjdGlvbiA9PSBA
c2VsZWN0b3IoX21vdmVMZWZ0OndpdGhIaXN0b3J5OikgfHwgYWN0aW9uID09IEBzZWxlY3Rvcihf
bW92ZVJpZ2h0OndpdGhIaXN0b3J5OikKKyAgICBpZiAoYWN0aW9uID09IEBzZWxlY3RvcihfbW92
ZURvd246d2l0aEhpc3Rvcnk6KSB8fCBhY3Rpb24gPT0gQHNlbGVjdG9yKF9tb3ZlTGVmdDp3aXRo
SGlzdG9yeTopIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IoX21vdmVSaWdodDp3aXRoSGlzdG9yeTop
CiAgICAgICAgIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IoX21vdmVUb0VuZE9mRG9jdW1lbnQ6d2l0
aEhpc3Rvcnk6KSB8fCBhY3Rpb24gPT0gQHNlbGVjdG9yKF9tb3ZlVG9FbmRPZkxpbmU6d2l0aEhp
c3Rvcnk6KSB8fCBhY3Rpb24gPT0gQHNlbGVjdG9yKF9tb3ZlVG9FbmRPZlBhcmFncmFwaDp3aXRo
SGlzdG9yeTopCiAgICAgICAgIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IoX21vdmVUb0VuZE9mV29y
ZDp3aXRoSGlzdG9yeTopIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IoX21vdmVUb1N0YXJ0T2ZEb2N1
bWVudDp3aXRoSGlzdG9yeTopIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IoX21vdmVUb1N0YXJ0T2ZM
aW5lOndpdGhIaXN0b3J5OikKLSAgICAgICAgfHwgYWN0aW9uID09IEBzZWxlY3RvcihfbW92ZVRv
U3RhcnRPZlBhcmFncmFwaDp3aXRoSGlzdG9yeTopIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IoX21v
dmVUb1N0YXJ0T2ZXb3JkOndpdGhIaXN0b3J5OikgfHwgYWN0aW9uID09IEBzZWxlY3RvcihfbW92
ZVVwOndpdGhIaXN0b3J5OikKKyAgICAgICAgfHwgYWN0aW9uID09IEBzZWxlY3RvcihfbW92ZVRv
U3RhcnRPZlBhcmFncmFwaDp3aXRoSGlzdG9yeTopIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IoX21v
dmVUb1N0YXJ0T2ZXb3JkOndpdGhIaXN0b3J5OikgfHwgYWN0aW9uID09IEBzZWxlY3RvcihfbW92
ZVVwOndpdGhIaXN0b3J5OikpCisgICAgICAgIHJldHVybiBZRVM7CisKKyAgICBpZiAoYWN0aW9u
ID09IEBzZWxlY3RvcihfZGVsZXRlQnlXb3JkKSB8fCBhY3Rpb24gPT0gQHNlbGVjdG9yKF9kZWxl
dGVGb3J3YXJkQW5kTm90aWZ5OikgfHwgYWN0aW9uID09IEBzZWxlY3RvcihfZGVsZXRlVG9FbmRP
ZlBhcmFncmFwaCkgfHwgYWN0aW9uID09IEBzZWxlY3RvcihfZGVsZXRlVG9TdGFydE9mTGluZSkK
ICAgICAgICAgfHwgYWN0aW9uID09IEBzZWxlY3RvcihfdHJhbnNwb3NlKSkKICAgICAgICAgcmV0
dXJuIGVkaXRvclN0YXRlLmlzQ29udGVudEVkaXRhYmxlOwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjQ3YzZmMDI2MGFm
ZjJlYTNkMDk3Mjc2NjlhYzIyNjI4MWFjM2IwYS4uMGMxZWVkNmJmMWQ0N2JkMTBmM2Y2MDgzYjQ1
NDcxMmRjNGM2N2E1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTA2LTI1ICBEYW5pZWwg
QmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBOb24tZWRpdGFibGUgdGV4dCBz
ZWxlY3Rpb25zIHNob3VsZCBiZSBtb2RpZmlhYmxlIHdpdGggaGFyZHdhcmUga2V5Ym9hcmQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTIwNAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNTE2NTE0OTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgdGVzdCwgc2tpcHBlZCBmb3Igbm93LCB1bnRp
bCB3ZSBoYXZlIHRoZSBmaXggZm9yIDxyZGFyOi8vcHJvYmxlbS80ODMyMjg5OT4uCisKKyAgICAg
ICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9pb3Mvc2VsZWN0LW5vbi1lZGl0YWJsZS10ZXh0LXVzaW5n
LWtleWJvYXJkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rp
b24vaW9zL3NlbGVjdC1ub24tZWRpdGFibGUtdGV4dC11c2luZy1rZXlib2FyZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBy
ZXNvdXJjZXMvdWktaGVscGVyLmpzOgorICAgICAgICAod2luZG93LlVJSGVscGVyLmNhbGxGdW5j
dGlvbkFuZFdhaXRGb3JFdmVudCk6IEFkZGVkLgorCiAyMDE5LTA2LTI1ICBUcnVpdHQgU2F2ZWxs
ICA8dHNhdmVsbEBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TIFdLMl0gUkVHUkVTU0lPTiAo
cjI0MjMxMyk6IExheW91dCBUZXN0IHNjcm9sbGluZ2Nvb3JkaW5hdG9yL21hYy9tdWx0aXBsZS1m
aXhlZC5odG1sIGlzIGEgZmxha3kgdGltZSBvdXQgYW5kIGltYWdlIGRpZmYKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2lvcy9zZWxlY3Qtbm9uLWVkaXRhYmxlLXRl
eHQtdXNpbmcta2V5Ym9hcmQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vaW9zL3NlbGVjdC1ub24tZWRpdGFibGUtdGV4dC11c2luZy1rZXlib2FyZC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYmUyMjMyZTUyMjE5ZjFiMjNhZTgyZWNmZWQ1NTYxMTE4NWFmOWIz
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2lvcy9z
ZWxlY3Qtbm9uLWVkaXRhYmxlLXRleHQtdXNpbmcta2V5Ym9hcmQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNDUgQEAKK1Rlc3Qgc2VsZWN0aW5nIG5vbi1lZGl0YWJsZSB0ZXh0IHVzaW5nIHRoZSBr
ZXlib2FyZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKworUHJlc3MgU2hpZnQg
KyByaWdodCBhcnJvdyB0byBzZWxlY3QgdGhlIG5leHQgY2hhcmFjdGVyOgorUEFTUyB3aW5kb3cu
Z2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSBpcyAiSGUiCisKK1ByZXNzIFNoaWZ0ICsgbGVmdCBh
cnJvdyB0byBzZWxlY3QgdGhlIHByZXZpb3VzIGNoYXJhY3RlcjoKK1BBU1Mgd2luZG93LmdldFNl
bGVjdGlvbigpLnRvU3RyaW5nKCkgaXMgIkhlciIKKworUHJlc3MgU2hpZnQgKyBPcHRpb24gKyBy
aWdodCBhcnJvdyB0byBzZWxlY3QgdG8gdGhlIGVuZCBvZiB0aGUgd29yZDoKK1BBU1Mgd2luZG93
LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkgaXMgIkhlcmUncyAiCisKK1ByZXNzIFNoaWZ0ICsg
T3B0aW9uICsgbGVmdCBhcnJvdyB0byBzZWxlY3QgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgd29y
ZDoKK1BBU1Mgd2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkgaXMgIlRoZSIKKworUHJl
c3MgU2hpZnQgKyBDb250cm9sICsgcmlnaHQgYXJyb3cgdG8gc2VsZWN0IHRvIHRoZSBlbmQgb2Yg
dGhlIGxpbmU6CitQQVNTIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIGlzICJIZXJl
J3MgdG8gdGhlIGNyYXp5IG9uZXMuIgorCitQcmVzcyBTaGlmdCArIENvbnRyb2wgKyBsZWZ0IGFy
cm93IHRvIHNlbGVjdCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaW5lOgorUEFTUyB3aW5kb3cu
Z2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSBpcyAiVGhlIG1pc2ZpdHMuIgorCitQcmVzcyBTaGlm
dCArIHVwIGFycm93IHRvIHNlbGVjdCB1cDoKK1BBU1Mgd2luZG93LmdldFNlbGVjdGlvbigpLnRv
U3RyaW5nKCkgaXMgIkhlcmUncyB0byB0aGUgY3Jhenkgb25lcy5cblxuVCIKKworUHJlc3MgU2hp
ZnQgKyBkb3duIGFycm93IHRvIHNlbGVjdCBkb3duOgorUEFTUyB3aW5kb3cuZ2V0U2VsZWN0aW9u
KCkudG9TdHJpbmcoKSBpcyAiVGhlIG1pc2ZpdHMuXG5cblQiCisKK1ByZXNzIFNoaWZ0ICsgT3B0
aW9uICsgZG93biBhcnJvdyB0byBzZWxlY3QgdG8gdGhlIGVuZCBvZiB0aGUgcGFyYWdyYXBoOgor
UEFTUyB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSBpcyAiSGVyZSdzIHRvIHRoZSBj
cmF6eSBvbmVzLiIKKworUHJlc3MgU2hpZnQgKyBPcHRpb24gKyB1cCBhcnJvdyB0byBzZWxlY3Qg
dG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgcGFyYWdyYXBoOgorUEFTUyB3aW5kb3cuZ2V0U2VsZWN0
aW9uKCkudG9TdHJpbmcoKSBpcyAiVGhlIHJlYmVscy4iCisKK1ByZXNzIFNoaWZ0ICsgQ29udHJv
bCArIGRvd24gYXJyb3cgdG8gc2VsZWN0IHRvIHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50OgorUEFT
UyB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSBpcyAiSGVyZSdzIHRvIHRoZSBjcmF6
eSBvbmVzLlxuXG5UaGUgbWlzZml0cy5cblxuVGhlIHJlYmVscy4iCisKK1ByZXNzIFNoaWZ0ICsg
Q29udHJvbCArIHVwIGFycm93IHRvIHNlbGVjdCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBkb2N1
bWVudDoKK1BBU1Mgd2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkgaXMgIkhlcmUncyB0
byB0aGUgY3Jhenkgb25lcy5cblxuVGhlIG1pc2ZpdHMuIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL2lvcy9zZWxlY3Qtbm9uLWVkaXRhYmxlLXRleHQtdXNpbmcta2V5Ym9h
cmQuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2lvcy9zZWxlY3Qtbm9uLWVk
aXRhYmxlLXRleHQtdXNpbmcta2V5Ym9hcmQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTQ4MTBhNjI3NWZh
YjNjMTEwNDllZjc2YjQ0ZGViNzgyNzJhZjE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vaW9zL3NlbGVjdC1ub24tZWRpdGFibGUtdGV4dC11c2luZy1r
ZXlib2FyZC5odG1sCkBAIC0wLDAgKzEsMTc2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2Ny
aXB0PgorPHN0eWxlPgorYm9keS5oaWRlLWV2ZXJ5dGhpbmctZXhjZXB0LXRlc3QtY29udGFpbmVy
ID4gOm5vdCgjdGVzdC1jb250YWluZXIpIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorPC9zdHls
ZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0idGVzdC1jb250YWluZXIiPgorICAgIDxwPkhl
cmUncyB0byB0aGUgY3Jhenkgb25lcy48L3A+CisgICAgPHA+VGhlIG1pc2ZpdHMuPC9wPgorICAg
IDxwPlRoZSByZWJlbHMuPC9wPgorPC9kaXY+Cis8c2NyaXB0PgorbGV0IHRlc3RDb250YWluZXIg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdC1jb250YWluZXIiKTsKK2xldCBwYXJhZ3Jh
cGhzID0gdGVzdENvbnRhaW5lci5jaGlsZHJlbjsKK2xldCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0
U2VsZWN0aW9uKCk7CisKK2Z1bmN0aW9uIHRvZ2dsZU9ubHlTaG93VGVzdENvbnRhaW5lcigpCit7
CisgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCJoaWRlLWV2ZXJ5dGhpbmctZXhj
ZXB0LXRlc3QtY29udGFpbmVyIik7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3RFeHRlbmRTZWxl
Y3Rpb25Ub05leHRDaGFyYWN0ZXIoKQoreworICAgIGF3YWl0IFVJSGVscGVyLmNhbGxGdW5jdGlv
bkFuZFdhaXRGb3JFdmVudCgoKSA9PiBzZWxlY3Rpb24uc2V0QmFzZUFuZEV4dGVudChwYXJhZ3Jh
cGhzWzBdLmZpcnN0Q2hpbGQsIDAsIHBhcmFncmFwaHNbMF0uZmlyc3RDaGlsZCwgMSksIGRvY3Vt
ZW50LCAic2VsZWN0aW9uY2hhbmdlIik7CisKKyAgICBkZWJ1ZygiPGJyPlByZXNzIFNoaWZ0ICsg
cmlnaHQgYXJyb3cgdG8gc2VsZWN0IHRoZSBuZXh0IGNoYXJhY3RlcjoiKTsKKyAgICBhd2FpdCBV
SUhlbHBlci5jYWxsRnVuY3Rpb25BbmRXYWl0Rm9yRXZlbnQoKCkgPT4gd2luZG93LnRlc3RSdW5u
ZXIgJiYgVUlIZWxwZXIua2V5RG93bigicmlnaHRBcnJvdyIsIFsic2hpZnRLZXkiXSkgLCBkb2N1
bWVudCwgInNlbGVjdGlvbmNoYW5nZSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2lu
ZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiLCAiSGUiKTsKK30KKworYXN5bmMgZnVuY3Rp
b24gdGVzdEV4dGVuZFNlbGVjdGlvblRvUHJldmlvdXNDaGFyYWN0ZXIoKQoreworICAgIGF3YWl0
IFVJSGVscGVyLmNhbGxGdW5jdGlvbkFuZFdhaXRGb3JFdmVudCgoKSA9PiBzZWxlY3Rpb24uc2V0
QmFzZUFuZEV4dGVudChwYXJhZ3JhcGhzWzBdLmZpcnN0Q2hpbGQsIDMsIHBhcmFncmFwaHNbMF0u
Zmlyc3RDaGlsZCwgMSksIGRvY3VtZW50LCAic2VsZWN0aW9uY2hhbmdlIik7CisKKyAgICBkZWJ1
ZygiPGJyPlByZXNzIFNoaWZ0ICsgbGVmdCBhcnJvdyB0byBzZWxlY3QgdGhlIHByZXZpb3VzIGNo
YXJhY3RlcjoiKTsKKyAgICBhd2FpdCBVSUhlbHBlci5jYWxsRnVuY3Rpb25BbmRXYWl0Rm9yRXZl
bnQoKCkgPT4gd2luZG93LnRlc3RSdW5uZXIgJiYgVUlIZWxwZXIua2V5RG93bigibGVmdEFycm93
IiwgWyJzaGlmdEtleSJdKSAsIGRvY3VtZW50LCAic2VsZWN0aW9uY2hhbmdlIik7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSIsICJI
ZXIiKTsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdEV4dGVuZFNlbGVjdGlvblRvRW5kT2ZXb3Jk
KCkKK3sKKyAgICBhd2FpdCBVSUhlbHBlci5jYWxsRnVuY3Rpb25BbmRXYWl0Rm9yRXZlbnQoKCkg
PT4gc2VsZWN0aW9uLnNldEJhc2VBbmRFeHRlbnQocGFyYWdyYXBoc1swXS5maXJzdENoaWxkLCAw
LCBwYXJhZ3JhcGhzWzBdLmZpcnN0Q2hpbGQsIDEpLCBkb2N1bWVudCwgInNlbGVjdGlvbmNoYW5n
ZSIpOworCisgICAgZGVidWcoIjxicj5QcmVzcyBTaGlmdCArIE9wdGlvbiArIHJpZ2h0IGFycm93
IHRvIHNlbGVjdCB0byB0aGUgZW5kIG9mIHRoZSB3b3JkOiIpOworICAgIGF3YWl0IFVJSGVscGVy
LmNhbGxGdW5jdGlvbkFuZFdhaXRGb3JFdmVudCgoKSA9PiB3aW5kb3cudGVzdFJ1bm5lciAmJiBV
SUhlbHBlci5rZXlEb3duKCJyaWdodEFycm93IiwgWyJzaGlmdEtleSIsICJhbHRLZXkiXSkgLCBk
b2N1bWVudCwgInNlbGVjdGlvbmNoYW5nZSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
d2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiLCAiSGVyZSdzICIpOworfQorCithc3lu
YyBmdW5jdGlvbiB0ZXN0RXh0ZW5kU2VsZWN0aW9uVG9CZWdpbm5pbmdPZldvcmQoKQoreworICAg
IGF3YWl0IFVJSGVscGVyLmNhbGxGdW5jdGlvbkFuZFdhaXRGb3JFdmVudCgoKSA9PiBzZWxlY3Rp
b24uc2V0QmFzZUFuZEV4dGVudChwYXJhZ3JhcGhzWzFdLmZpcnN0Q2hpbGQsIDMsIHBhcmFncmFw
aHNbMV0uZmlyc3RDaGlsZCwgMSksIGRvY3VtZW50LCAic2VsZWN0aW9uY2hhbmdlIik7CisKKyAg
ICBkZWJ1ZygiPGJyPlByZXNzIFNoaWZ0ICsgT3B0aW9uICsgbGVmdCBhcnJvdyB0byBzZWxlY3Qg
dG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgd29yZDoiKTsKKyAgICBhd2FpdCBVSUhlbHBlci5jYWxs
RnVuY3Rpb25BbmRXYWl0Rm9yRXZlbnQoKCkgPT4gd2luZG93LnRlc3RSdW5uZXIgJiYgVUlIZWxw
ZXIua2V5RG93bigibGVmdEFycm93IiwgWyJzaGlmdEtleSIsICJhbHRLZXkiXSkgLCBkb2N1bWVu
dCwgInNlbGVjdGlvbmNoYW5nZSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93
LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiLCAiVGhlIik7Cit9CisKK2FzeW5jIGZ1bmN0aW9u
IHRleHRFeHRlbmRTZWxlY3Rpb25Ub0VuZE9mTGluZSgpCit7CisgICAgYXdhaXQgVUlIZWxwZXIu
Y2FsbEZ1bmN0aW9uQW5kV2FpdEZvckV2ZW50KCgpID0+IHNlbGVjdGlvbi5zZXRCYXNlQW5kRXh0
ZW50KHBhcmFncmFwaHNbMF0uZmlyc3RDaGlsZCwgMCwgcGFyYWdyYXBoc1swXS5maXJzdENoaWxk
LCAxKSwgZG9jdW1lbnQsICJzZWxlY3Rpb25jaGFuZ2UiKTsKKworICAgIGRlYnVnKCI8YnI+UHJl
c3MgU2hpZnQgKyBDb250cm9sICsgcmlnaHQgYXJyb3cgdG8gc2VsZWN0IHRvIHRoZSBlbmQgb2Yg
dGhlIGxpbmU6Iik7CisgICAgYXdhaXQgVUlIZWxwZXIuY2FsbEZ1bmN0aW9uQW5kV2FpdEZvckV2
ZW50KCgpID0+IHdpbmRvdy50ZXN0UnVubmVyICYmIFVJSGVscGVyLmtleURvd24oInJpZ2h0QXJy
b3ciLCBbInNoaWZ0S2V5IiwgImN0cmxLZXkiXSkgLCBkb2N1bWVudCwgInNlbGVjdGlvbmNoYW5n
ZSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldFNlbGVjdGlvbigpLnRv
U3RyaW5nKCkiLCAiSGVyZSdzIHRvIHRoZSBjcmF6eSBvbmVzLiIpOworfQorCithc3luYyBmdW5j
dGlvbiB0ZXN0RXh0ZW5kU2VsZWN0aW9uVG9CZWdpbm5pbmdPZkxpbmUoKQoreworICAgIGF3YWl0
IFVJSGVscGVyLmNhbGxGdW5jdGlvbkFuZFdhaXRGb3JFdmVudCgoKSA9PiBzZWxlY3Rpb24uc2V0
QmFzZUFuZEV4dGVudChwYXJhZ3JhcGhzWzFdLmZpcnN0Q2hpbGQsIHBhcmFncmFwaHNbMV0uZmly
c3RDaGlsZC5sZW5ndGgsIHBhcmFncmFwaHNbMV0uZmlyc3RDaGlsZCwgcGFyYWdyYXBoc1sxXS5m
aXJzdENoaWxkLmxlbmd0aCAtIDEpLCBkb2N1bWVudCwgInNlbGVjdGlvbmNoYW5nZSIpOworCisg
ICAgZGVidWcoIjxicj5QcmVzcyBTaGlmdCArIENvbnRyb2wgKyBsZWZ0IGFycm93IHRvIHNlbGVj
dCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaW5lOiIpOworICAgIGF3YWl0IFVJSGVscGVyLmNh
bGxGdW5jdGlvbkFuZFdhaXRGb3JFdmVudCgoKSA9PiB3aW5kb3cudGVzdFJ1bm5lciAmJiBVSUhl
bHBlci5rZXlEb3duKCJsZWZ0QXJyb3ciLCBbInNoaWZ0S2V5IiwgImN0cmxLZXkiXSkgLCBkb2N1
bWVudCwgInNlbGVjdGlvbmNoYW5nZSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2lu
ZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiLCAiVGhlIG1pc2ZpdHMuIik7Cit9CisKK2Fz
eW5jIGZ1bmN0aW9uIHRlc3RFeHRlbmRTZWxlY3Rpb25VcCgpCit7CisgICAgYXdhaXQgVUlIZWxw
ZXIuY2FsbEZ1bmN0aW9uQW5kV2FpdEZvckV2ZW50KCgpID0+IHNlbGVjdGlvbi5zZXRCYXNlQW5k
RXh0ZW50KHBhcmFncmFwaHNbMV0uZmlyc3RDaGlsZCwgMSwgcGFyYWdyYXBoc1sxXS5maXJzdENo
aWxkLCAwKSwgZG9jdW1lbnQsICJzZWxlY3Rpb25jaGFuZ2UiKTsKKworICAgIGRlYnVnKCI8YnI+
UHJlc3MgU2hpZnQgKyB1cCBhcnJvdyB0byBzZWxlY3QgdXA6Iik7CisgICAgYXdhaXQgVUlIZWxw
ZXIuY2FsbEZ1bmN0aW9uQW5kV2FpdEZvckV2ZW50KCgpID0+IHdpbmRvdy50ZXN0UnVubmVyICYm
IFVJSGVscGVyLmtleURvd24oInVwQXJyb3ciLCBbInNoaWZ0S2V5Il0pICwgZG9jdW1lbnQsICJz
ZWxlY3Rpb25jaGFuZ2UiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRT
ZWxlY3Rpb24oKS50b1N0cmluZygpIiwgIkhlcmUncyB0byB0aGUgY3Jhenkgb25lcy5cblxuVCIp
OworfQorCithc3luYyBmdW5jdGlvbiB0ZXN0RXh0ZW5kU2VsZWN0aW9uRG93bigpCit7CisgICAg
YXdhaXQgVUlIZWxwZXIuY2FsbEZ1bmN0aW9uQW5kV2FpdEZvckV2ZW50KCgpID0+IHNlbGVjdGlv
bi5zZXRCYXNlQW5kRXh0ZW50KHBhcmFncmFwaHNbMV0uZmlyc3RDaGlsZCwgMCwgcGFyYWdyYXBo
c1sxXS5maXJzdENoaWxkLCAxKSwgZG9jdW1lbnQsICJzZWxlY3Rpb25jaGFuZ2UiKTsKKworICAg
IGRlYnVnKCI8YnI+UHJlc3MgU2hpZnQgKyBkb3duIGFycm93IHRvIHNlbGVjdCBkb3duOiIpOwor
ICAgIGF3YWl0IFVJSGVscGVyLmNhbGxGdW5jdGlvbkFuZFdhaXRGb3JFdmVudCgoKSA9PiB3aW5k
b3cudGVzdFJ1bm5lciAmJiBVSUhlbHBlci5rZXlEb3duKCJkb3duQXJyb3ciLCBbInNoaWZ0S2V5
Il0pICwgZG9jdW1lbnQsICJzZWxlY3Rpb25jaGFuZ2UiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoIndpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIiwgIlRoZSBtaXNmaXRzLlxu
XG5UIik7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3RFeHRlbmRTZWxlY3Rpb25Ub0VuZE9mUGFy
YWdyYXBoKCkKK3sKKyAgICB0b2dnbGVPbmx5U2hvd1Rlc3RDb250YWluZXIoKTsKKworICAgIGF3
YWl0IFVJSGVscGVyLmNhbGxGdW5jdGlvbkFuZFdhaXRGb3JFdmVudCgoKSA9PiBzZWxlY3Rpb24u
c2V0QmFzZUFuZEV4dGVudChwYXJhZ3JhcGhzWzBdLmZpcnN0Q2hpbGQsIDAsIHBhcmFncmFwaHNb
MF0uZmlyc3RDaGlsZCwgMSksIGRvY3VtZW50LCAic2VsZWN0aW9uY2hhbmdlIik7CisKKyAgICBk
ZWJ1ZygiPGJyPlByZXNzIFNoaWZ0ICsgT3B0aW9uICsgZG93biBhcnJvdyB0byBzZWxlY3QgdG8g
dGhlIGVuZCBvZiB0aGUgcGFyYWdyYXBoOiIpOworICAgIGF3YWl0IFVJSGVscGVyLmNhbGxGdW5j
dGlvbkFuZFdhaXRGb3JFdmVudCgoKSA9PiB3aW5kb3cudGVzdFJ1bm5lciAmJiBVSUhlbHBlci5r
ZXlEb3duKCJkb3duQXJyb3ciLCBbInNoaWZ0S2V5IiwgImFsdEtleSJdKSAsIGRvY3VtZW50LCAi
c2VsZWN0aW9uY2hhbmdlIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0
U2VsZWN0aW9uKCkudG9TdHJpbmcoKSIsICJIZXJlJ3MgdG8gdGhlIGNyYXp5IG9uZXMuIik7CisK
KyAgICB0b2dnbGVPbmx5U2hvd1Rlc3RDb250YWluZXIoKTsKK30KKworYXN5bmMgZnVuY3Rpb24g
dGVzdEV4dGVuZFNlbGVjdGlvblRvQmVnaW5uaW5nT2ZQYXJhZ3JhcGgoKQoreworICAgIHRvZ2ds
ZU9ubHlTaG93VGVzdENvbnRhaW5lcigpOworCisgICAgYXdhaXQgVUlIZWxwZXIuY2FsbEZ1bmN0
aW9uQW5kV2FpdEZvckV2ZW50KCgpID0+IHNlbGVjdGlvbi5zZXRCYXNlQW5kRXh0ZW50KHBhcmFn
cmFwaHNbMl0uZmlyc3RDaGlsZCwgcGFyYWdyYXBoc1syXS5maXJzdENoaWxkLmxlbmd0aCwgcGFy
YWdyYXBoc1syXS5maXJzdENoaWxkLCBwYXJhZ3JhcGhzWzJdLmZpcnN0Q2hpbGQubGVuZ3RoIC0g
MSksIGRvY3VtZW50LCAic2VsZWN0aW9uY2hhbmdlIik7CisKKyAgICBkZWJ1ZygiPGJyPlByZXNz
IFNoaWZ0ICsgT3B0aW9uICsgdXAgYXJyb3cgdG8gc2VsZWN0IHRvIHRoZSBiZWdpbm5pbmcgb2Yg
dGhlIHBhcmFncmFwaDoiKTsKKyAgICBhd2FpdCBVSUhlbHBlci5jYWxsRnVuY3Rpb25BbmRXYWl0
Rm9yRXZlbnQoKCkgPT4gd2luZG93LnRlc3RSdW5uZXIgJiYgVUlIZWxwZXIua2V5RG93bigidXBB
cnJvdyIsIFsic2hpZnRLZXkiLCAiYWx0S2V5Il0pICwgZG9jdW1lbnQsICJzZWxlY3Rpb25jaGFu
Z2UiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRTZWxlY3Rpb24oKS50
b1N0cmluZygpIiwgIlRoZSByZWJlbHMuIik7CisKKyAgICB0b2dnbGVPbmx5U2hvd1Rlc3RDb250
YWluZXIoKTsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdEV4dGVuZFNlbGVjdGlvblRvRW5kT2ZE
b2N1bWVudCgpCit7CisgICAgdG9nZ2xlT25seVNob3dUZXN0Q29udGFpbmVyKCk7CisKKyAgICBh
d2FpdCBVSUhlbHBlci5jYWxsRnVuY3Rpb25BbmRXYWl0Rm9yRXZlbnQoKCkgPT4gc2VsZWN0aW9u
LnNldEJhc2VBbmRFeHRlbnQocGFyYWdyYXBoc1swXS5maXJzdENoaWxkLCAwLCBwYXJhZ3JhcGhz
WzBdLmZpcnN0Q2hpbGQsIDEpLCBkb2N1bWVudCwgInNlbGVjdGlvbmNoYW5nZSIpOworCisgICAg
ZGVidWcoIjxicj5QcmVzcyBTaGlmdCArIENvbnRyb2wgKyBkb3duIGFycm93IHRvIHNlbGVjdCB0
byB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudDoiKTsKKyAgICBhd2FpdCBVSUhlbHBlci5jYWxsRnVu
Y3Rpb25BbmRXYWl0Rm9yRXZlbnQoKCkgPT4gd2luZG93LnRlc3RSdW5uZXIgJiYgVUlIZWxwZXIu
a2V5RG93bigiZG93bkFycm93IiwgWyJzaGlmdEtleSIsICJjdHJsS2V5Il0pICwgZG9jdW1lbnQs
ICJzZWxlY3Rpb25jaGFuZ2UiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5n
ZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIiwgIkhlcmUncyB0byB0aGUgY3Jhenkgb25lcy5cblxu
VGhlIG1pc2ZpdHMuXG5cblRoZSByZWJlbHMuIik7CisKKyAgICB0b2dnbGVPbmx5U2hvd1Rlc3RD
b250YWluZXIoKTsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdEV4dGVuZFNlbGVjdGlvblRvQmVn
aW5uaW5nT2ZEb2N1bWVudCgpCit7CisgICAgdG9nZ2xlT25seVNob3dUZXN0Q29udGFpbmVyKCk7
CisKKyAgICBhd2FpdCBVSUhlbHBlci5jYWxsRnVuY3Rpb25BbmRXYWl0Rm9yRXZlbnQoKCkgPT4g
c2VsZWN0aW9uLnNldEJhc2VBbmRFeHRlbnQocGFyYWdyYXBoc1sxXS5maXJzdENoaWxkLCBwYXJh
Z3JhcGhzWzFdLmZpcnN0Q2hpbGQubGVuZ3RoLCBwYXJhZ3JhcGhzWzFdLmZpcnN0Q2hpbGQsIHBh
cmFncmFwaHNbMV0uZmlyc3RDaGlsZC5sZW5ndGggLSAxKSwgZG9jdW1lbnQsICJzZWxlY3Rpb25j
aGFuZ2UiKTsKKworICAgIGRlYnVnKCI8YnI+UHJlc3MgU2hpZnQgKyBDb250cm9sICsgdXAgYXJy
b3cgdG8gc2VsZWN0IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGRvY3VtZW50OiIpOworICAgIGF3
YWl0IFVJSGVscGVyLmNhbGxGdW5jdGlvbkFuZFdhaXRGb3JFdmVudCgoKSA9PiB3aW5kb3cudGVz
dFJ1bm5lciAmJiBVSUhlbHBlci5rZXlEb3duKCJ1cEFycm93IiwgWyJzaGlmdEtleSIsICJjdHJs
S2V5Il0pICwgZG9jdW1lbnQsICJzZWxlY3Rpb25jaGFuZ2UiKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoIndpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIiwgIkhlcmUncyB0byB0
aGUgY3Jhenkgb25lcy5cblxuVGhlIG1pc2ZpdHMuIik7CisKKyAgICB0b2dnbGVPbmx5U2hvd1Rl
c3RDb250YWluZXIoKTsKK30KKworYXN5bmMgZnVuY3Rpb24gcnVuVGVzdHMoKQoreworICAgIGF3
YWl0IHRlc3RFeHRlbmRTZWxlY3Rpb25Ub05leHRDaGFyYWN0ZXIoKTsKKyAgICBhd2FpdCB0ZXN0
RXh0ZW5kU2VsZWN0aW9uVG9QcmV2aW91c0NoYXJhY3RlcigpOworICAgIGF3YWl0IHRlc3RFeHRl
bmRTZWxlY3Rpb25Ub0VuZE9mV29yZCgpOworICAgIGF3YWl0IHRlc3RFeHRlbmRTZWxlY3Rpb25U
b0JlZ2lubmluZ09mV29yZCgpOworICAgIGF3YWl0IHRleHRFeHRlbmRTZWxlY3Rpb25Ub0VuZE9m
TGluZSgpOworICAgIGF3YWl0IHRlc3RFeHRlbmRTZWxlY3Rpb25Ub0JlZ2lubmluZ09mTGluZSgp
OworICAgIGF3YWl0IHRlc3RFeHRlbmRTZWxlY3Rpb25VcCgpOworICAgIGF3YWl0IHRlc3RFeHRl
bmRTZWxlY3Rpb25Eb3duKCk7CisgICAgYXdhaXQgdGVzdEV4dGVuZFNlbGVjdGlvblRvRW5kT2ZQ
YXJhZ3JhcGgoKTsKKyAgICBhd2FpdCB0ZXN0RXh0ZW5kU2VsZWN0aW9uVG9CZWdpbm5pbmdPZlBh
cmFncmFwaCgpOworICAgIGF3YWl0IHRlc3RFeHRlbmRTZWxlY3Rpb25Ub0VuZE9mRG9jdW1lbnQo
KTsKKyAgICBhd2FpdCB0ZXN0RXh0ZW5kU2VsZWN0aW9uVG9CZWdpbm5pbmdPZkRvY3VtZW50KCk7
CisKKyAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0ZXN0LWNvbnRhaW5lciIpKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKword2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOworZGVzY3JpcHRpb24oIlRlc3Qgc2VsZWN0aW5nIG5vbi1lZGl0
YWJsZSB0ZXh0IHVzaW5nIHRoZSBrZXlib2FyZC4iKTsKK3J1blRlc3RzKCk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggNDUzZDU1ODIyZWQyYjVhNzJlNDBiYWUwY2RmYjQzMDMxOTJiMWI4Ny4uOTE0Y2Nh
NjZiMTFkNjk2YmE0MzRjNmVkZjFjZmY3NmNhM2ZhN2E2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTMyNTEsMyArMzI1MSw2IEBAIHdlYmtpdC5vcmcv
Yi8xOTc3NzggWyBEZWJ1ZyBdIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9hdHRyaWJzL2dsLXZl
cnRleGF0dHJpYmlwCiAKICMgV2FzIHVuc2tpcHBlZCwgYnV0IG5vdyBoYXMgbWlzc2luZyByZXN1
bHRzIGluIGlPUyAuIFNraXBwaW5nIG9uIGlPUyBvbmx5LgogbWVkaWEvY29udHJvbHMtYWZ0ZXIt
cmVsb2FkLmh0bWwgWyBTa2lwIF0KKworIyBGSVhNRTogVW5za2lwIHRoZSBmb2xsb3dpbmcgdGVz
dCBvbmNlIHdlIGhhdmUgdGhlIGZpeCBmb3IgPHJkYXI6Ly9wcm9ibGVtLzQ4MzIyODk5Pi4KK2Vk
aXRpbmcvc2VsZWN0aW9uL2lvcy9zZWxlY3Qtbm9uLWVkaXRhYmxlLXRleHQtdXNpbmcta2V5Ym9h
cmQuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhl
bHBlci5qcyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKaW5kZXggNTIyNmI4
NzBkYmRlYmZkN2UzY2FiZTIwNzJjZjk2Yzc0NjM5MzI5OC4uOWViOTdkMDcwZWViNGQwY2Q0YzRj
ODlkMWVkODY1MGY0YzU1Y2ViYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3Vp
LWhlbHBlci5qcworKysgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCkBAIC04
OTksNiArODk5LDE1IEBAIHdpbmRvdy5VSUhlbHBlciA9IGNsYXNzIFVJSGVscGVyIHsKICAgICAg
ICAgICAgIGF3YWl0IHRoaXMuYWN0aXZhdGVBdChtZW51UmVjdC5sZWZ0ICsgbWVudVJlY3Qud2lk
dGggLyAyLCBtZW51UmVjdC50b3AgKyBtZW51UmVjdC5oZWlnaHQgLyAyKTsKICAgICB9CiAKKyAg
ICBzdGF0aWMgY2FsbEZ1bmN0aW9uQW5kV2FpdEZvckV2ZW50KGZ1bmN0aW9uVG9DYWxsLCB0YXJn
ZXQsIGV2ZW50TmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2
ZSkgPT4geworICAgICAgICAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBy
ZXNvbHZlLCB7IG9uY2U6IHRydWUgfSk7CisgICAgICAgICAgICBmdW5jdGlvblRvQ2FsbCgpOwor
ICAgICAgICB9KTsKKworICAgIH0KKwogICAgIHN0YXRpYyBjYWxsRnVuY3Rpb25BbmRXYWl0Rm9y
U2Nyb2xsVG9GaW5pc2goZnVuY3Rpb25Ub0NhbGwsIC4uLnRoZUFyZ3VtZW50cykKICAgICB7CiAg
ICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZWQpID0+IHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>