<?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>185584</bug_id>
          
          <creation_ts>2018-05-12 21:11:13 -0700</creation_ts>
          <short_desc>[macOS] Spelling errors in the middle of an inserted paragraph are not displayed</short_desc>
          <delta_ts>2018-06-06 09:59:49 -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>HTML Editing</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mitz</cc>
    
    <cc>rniwa</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1423381</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-05-12 21:11:13 -0700</bug_when>
    <thetext>Spellcheck results in the middle of an inserted paragraph of text are not displayed after ending the paragraph.

To reproduce:

1. Paste &quot;Helol wrodl&quot; into a contenteditable div or textarea.
2. Hit enter to insert a newline

Expected: red underlines underneath &quot;Helol&quot; and &quot;wrodl&quot;.
Observed: red underlines only underneath &quot;wrodl&quot;.

Reproduces on macOS El Capitan using system Safari (possibly reproduces earlier than El Capitan).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423389</commentid>
    <comment_count>1</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-05-12 23:58:02 -0700</bug_when>
    <thetext>&lt;rdar://problem/38676081&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430193</commentid>
    <comment_count>2</comment_count>
      <attachid>341987</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-06-05 13:16:52 -0700</bug_when>
    <thetext>Created attachment 341987
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430298</commentid>
    <comment_count>3</comment_count>
      <attachid>341987</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-06-05 17:45:41 -0700</bug_when>
    <thetext>Comment on attachment 341987
Patch

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

&gt; Source/WebCore/ChangeLog:25
&gt; +        non-contiguous spelling correction ranges â see the FIXME in markMisspellingsAfterTypingToWord for more detail.

Did you mean to put a period between ranges &amp; see?

&gt; Source/WebCore/editing/Editor.cpp:2388
&gt; +        while (sentenceStart &lt; spellCheckingStart) {

Should we be running this code in old macOS too? Does that even work?

&gt; LayoutTests/editing/spelling/retro-correction-spelling-markers.html:11
&gt; +        document.getElementById(&quot;description&quot;).innerHTML = `To manually test, type &lt;strong&gt;It&apos;s muhc to late

Hm.. I think typeCharacterCommand should trigger spell checking in the browser too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430304</commentid>
    <comment_count>4</comment_count>
      <attachid>341987</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-06-05 17:57:59 -0700</bug_when>
    <thetext>Comment on attachment 341987
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:25
&gt;&gt; +        non-contiguous spelling correction ranges â see the FIXME in markMisspellingsAfterTypingToWord for more detail.
&gt; 
&gt; Did you mean to put a period between ranges &amp; see?

I put an emdash (—), but it seems Bugzilla&apos;s diff viewer doesn&apos;t handle unicode well :/

&gt;&gt; Source/WebCore/editing/Editor.cpp:2388
&gt;&gt; +        while (sentenceStart &lt; spellCheckingStart) {
&gt; 
&gt; Should we be running this code in old macOS too? Does that even work?

Yes, I believe so. This fixes an existing bug wherein pasting some text that contains misspelled words will not add document markers for the misspelled ranges. This case is covered by one of the new tests, spelling-markers-after-pasting-sentence.html.

&gt;&gt; LayoutTests/editing/spelling/retro-correction-spelling-markers.html:11
&gt;&gt; +        document.getElementById(&quot;description&quot;).innerHTML = `To manually test, type &lt;strong&gt;It&apos;s muhc to late
&gt; 
&gt; Hm.. I think typeCharacterCommand should trigger spell checking in the browser too.

Oh, that&apos;s a good point! I&apos;ll make it so that we automatically type out the string when opening this manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430305</commentid>
    <comment_count>5</comment_count>
      <attachid>342011</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-06-05 18:05:28 -0700</bug_when>
    <thetext>Created attachment 342011
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430319</commentid>
    <comment_count>6</comment_count>
      <attachid>342011</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-05 18:44:09 -0700</bug_when>
    <thetext>Comment on attachment 342011
Patch for landing

Clearing flags on attachment: 342011

Committed r232530: &lt;https://trac.webkit.org/changeset/232530&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341987</attachid>
            <date>2018-06-05 13:16:52 -0700</date>
            <delta_ts>2018-06-05 17:45:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185584-20180605131652.patch</filename>
            <type>text/plain</type>
            <size>26791</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyNDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTk5YjgwN2JmMzAxMzFh
MGMxMGJkNGM3M2RlZGJiNTA5ZmZlYTFiYi4uNzc4NmM3M2Q0MmRmMGQzMTM5MWVjZWRmYzI1Zjgw
YTljNjRjODlmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE4LTA2LTA1ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gU3Bl
bGxpbmcgZXJyb3JzIGluIHRoZSBtaWRkbGUgb2YgYW4gaW5zZXJ0ZWQgcGFyYWdyYXBoIGFyZSBu
b3QgZGlzcGxheWVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODU1ODQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM4Njc2MDgxPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSB3aGVuIHR5
cGluZywgd2Ugb25seSBjb25zaWRlciB0aGUgcmFuZ2Ugb2YgYWRqYWNlbnQgd29yZHMgd2hlbiBk
ZXRlcm1pbmluZyB3aGVyZSB0byBwbGFjZSBzcGVsbGluZworICAgICAgICBjb3JyZWN0aW9uIG1h
cmtlcnMsIGV2ZW4gdGhvdWdoIHdlIHByb3ZpZGUgTlNTcGVsbENoZWNrZXIgd2l0aCB0aGUgZnVs
bCBjb250ZXh0IG9mIHRoZSBzZW50ZW5jZSAoYW5kIGdldCBiYWNrCisgICAgICAgIHJlc3VsdHMg
ZW5jb21wYXNzaW5nIHRoZSBmdWxsIHJhbmdlKS4gSW4gbWFjT1MgTW9qYXZlLCBOU1NwZWxsQ2hl
Y2tlciBtYXkgbm93IHJldHVybiBzcGVsbCBjaGVja2luZyByZXN1bHRzIHRoYXQKKyAgICAgICAg
aW5jbHVkZSBjb3JyZWN0bHkgc3BlbGxlZCB3b3JkcyB0aGF0IGFyZSBtaXN1c2VkIGluIHRoZSBj
b250ZXh0IG9mIHRoZSBzZW50ZW5jZS4gVGhpcyBtZWFucyB0aGF0IHdoaWxlIHR5cGluZyBhCisg
ICAgICAgIHNlbnRlbmNlLCBhIGRpZmZlcmVudCBwYXJ0IG9mIHRoZSBzZW50ZW5jZSBtYXkgZ2Fp
biBvciBsb3NlIHNwZWxsaW5nIG1hcmtlcnMgYXMgYSByZXN1bHQuCisKKyAgICAgICAgVG8gc3Vw
cG9ydCB0aGlzLCBXZWJLaXQgbmVlZHMgdG8gbWFyayBvciB1bm1hcmsgc3BlbGxpbmcgY29ycmVj
dGlvbnMgaW4gdGhlIGZ1bGwgcmFuZ2Ugb2YgdGhlIHNlbnRlbmNlIHdoZW5ldmVyCisgICAgICAg
IGEgZnVsbCB3b3JkIGlzIHR5cGVkIChzaW5jZSB0aGUgY29udGV4dCBvZiBvdGhlciB3b3JkcyB3
aXRoaW4gdGhlIHNlbnRlbmNlIG1heSBoYXZlIGNoYW5nZWQsIHJlc3VsdGluZyBpbgorICAgICAg
ICBkaWZmZXJlbnQgcGxhdGZvcm0gc3BlbGxjaGVja2luZyByZXN1bHRzKS4gSW4gbWFya01pc3Nw
ZWxsaW5nc0FmdGVyVHlwaW5nVG9Xb3JkLCB3ZSBleHBhbmQgdGhlIHNwZWxsIGNoZWNraW5nCisg
ICAgICAgIHJhbmdlIHBhc3QgdGhlIGFkamFjZW50IHdvcmRzIHNvIHRoYXQgaXQgZW5jb21wYXNz
ZXMgdGhlIGxhcmdlc3Qgc3VicmFuZ2Ugb2YgdGhlIGZ1bGwgc2VudGVuY2UgdGhhdCBpbmNsdWRl
cyB0aGUKKyAgICAgICAgc3RhcnQgb2YgdGhlIHR5cGVkIHdvcmQsIGFuZCBkb2VzIG5vdCBpbmNs
dWRlIGFueSBwb3NpdGlvbiB0aGF0IGlzIHVuZGVyIGFuIGVsZW1lbnQgd2l0aCBgc3BlbGxjaGVj
az1mYWxzZWAuCisKKyAgICAgICAgVGhpcyBndWFyYW50ZWVzIHRoYXQgd2UgZG9uJ3QgZXJyb25l
b3VzbHkgcGxhY2Ugc3BlbGxpbmcgZG9jdW1lbnQgbWFya2VycyB1bmRlciBlbGVtZW50cyB3aGVy
ZSBzcGVsbGNoZWNraW5nIGlzCisgICAgICAgIGRpc2FibGVkLCB3aGlsZSBhbGxvd2luZyBmb3Ig
c2VudGVuY2UgcmV0cm8gY29ycmVjdGlvbnMgd2hlbiBzcGVsbGNoZWNraW5nIGlzIGVuYWJsZWQu
IEhvd2V2ZXIsIHRoaXMgZG9lc24ndAorICAgICAgICBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgYW4g
ZWxlbWVudCB3aXRoIHNwZWxsY2hlY2tpbmcgZGlzYWJsZWQgbGllcyBiZXR3ZWVuIGEgc2VudGVu
Y2UgcmV0cm8gY29ycmVjdGlvbiByYW5nZSBhbmQKKyAgICAgICAgdGhlIGN1cnJlbnRseSB0eXBl
ZCB3b3JkLiBJbiB0aGUgZnV0dXJlLCB3ZSBjb3VsZCBmaXggdGhpcyBieSByZWZhY3RvcmluZyBT
cGVsbENoZWNrUmVxdWVzdCB0byB0cmFjayBhIGxpc3Qgb2YKKyAgICAgICAgbm9uLWNvbnRpZ3Vv
dXMgc3BlbGxpbmcgY29ycmVjdGlvbiByYW5nZXMg4oCUIHNlZSB0aGUgRklYTUUgaW4gbWFya01p
c3NwZWxsaW5nc0FmdGVyVHlwaW5nVG9Xb3JkIGZvciBtb3JlIGRldGFpbC4KKworICAgICAgICBD
b3ZlcmVkIGJ5IDIgbmV3IGxheW91dCB0ZXN0cywgYXMgd2VsbCBhcyBhbiBleGlzdGluZyBzcGVs
bC1jaGVja2luZyB0ZXN0IHRoYXQgc2hvdWxkIG5vdyBiZSBwYXNzaW5nLgorCisgICAgICAgIFRl
c3RzOiBlZGl0aW5nL3NwZWxsaW5nL3JldHJvLWNvcnJlY3Rpb24tc3BlbGxpbmctbWFya2Vycy5o
dG1sCisgICAgICAgICAgICAgICBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLW1hcmtlcnMtYWZ0
ZXItcGFzdGluZy1zZW50ZW5jZS5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGluZ1Rv
V29yZCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5n
L0ludGVybmFscy5pZGw6CisKKyAgICAgICAgQWRkIGFuIGludGVybmFsIHRlc3RpbmcgaGVscGVy
IHRvIGRldGVybWluZSB3aGV0aGVyIHJldHJvIHNlbnRlbmNlIGNvcnJlY3Rpb25zIGFyZSBlbmFi
bGVkLgorCiAyMDE4LTA2LTAxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIEVkaXRvciBjYW4gaG9sZCByZWZlcmVuY2VzIHRvIERvY3VtZW50cyBhZnRlciB5b3Ug
bmF2aWdhdGUgYXdheQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDE3MWQ4NzcwMzk3
ZWE3MTg4YjM4MTc0OTNmMDI4MWU0N2M4MGY5NDMuLjgwMDJlMmJmZjA0YjFlOWY0ODEzNTBlNzMy
MzA2YjU2OWM1OTQ1YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTIzNzEsMTIg
KzIzNzEsNTkgQEAgdm9pZCBFZGl0b3I6Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGluZ1RvV29y
ZChjb25zdCBWaXNpYmxlUG9zaXRpb24gJndvcmRTdGFydCwKICAgICAgICAgaWYgKGlzR3JhbW1h
ckNoZWNraW5nRW5hYmxlZCgpKQogICAgICAgICAgICAgdGV4dENoZWNraW5nT3B0aW9ucyB8PSBU
ZXh0Q2hlY2tpbmdUeXBlR3JhbW1hcjsKIAotICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIGFkamFj
ZW50V29yZHMgPSBWaXNpYmxlU2VsZWN0aW9uKHN0YXJ0T2ZXb3JkKHdvcmRTdGFydCwgTGVmdFdv
cmRJZk9uQm91bmRhcnkpLCBlbmRPZldvcmQod29yZFN0YXJ0LCBSaWdodFdvcmRJZk9uQm91bmRh
cnkpKTsKLSAgICAgICAgaWYgKHRleHRDaGVja2luZ09wdGlvbnMgJiBUZXh0Q2hlY2tpbmdUeXBl
R3JhbW1hcikgewotICAgICAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3RlZFNlbnRlbmNl
ID0gVmlzaWJsZVNlbGVjdGlvbihzdGFydE9mU2VudGVuY2Uod29yZFN0YXJ0KSwgZW5kT2ZTZW50
ZW5jZSh3b3JkU3RhcnQpKTsKLSAgICAgICAgICAgIG1hcmtBbGxNaXNzcGVsbGluZ3NBbmRCYWRH
cmFtbWFySW5SYW5nZXModGV4dENoZWNraW5nT3B0aW9ucywgYWRqYWNlbnRXb3Jkcy50b05vcm1h
bGl6ZWRSYW5nZSgpLmdldCgpLCBzZWxlY3RlZFNlbnRlbmNlLnRvTm9ybWFsaXplZFJhbmdlKCku
Z2V0KCkpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIG1hcmtBbGxNaXNzcGVsbGluZ3NB
bmRCYWRHcmFtbWFySW5SYW5nZXModGV4dENoZWNraW5nT3B0aW9ucywgYWRqYWNlbnRXb3Jkcy50
b05vcm1hbGl6ZWRSYW5nZSgpLmdldCgpLCBhZGphY2VudFdvcmRzLnRvTm9ybWFsaXplZFJhbmdl
KCkuZ2V0KCkpOworICAgICAgICBhdXRvIHNlbnRlbmNlU3RhcnQgPSBzdGFydE9mU2VudGVuY2Uo
d29yZFN0YXJ0KTsKKyAgICAgICAgYXV0byBzZW50ZW5jZUVuZCA9IGVuZE9mU2VudGVuY2Uod29y
ZFN0YXJ0KTsKKyAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBmdWxsU2VudGVuY2Uoc2VudGVuY2VT
dGFydCwgc2VudGVuY2VFbmQpOworICAgICAgICBhdXRvIGZ1bGxTZW50ZW5jZVJhbmdlID0gZnVs
bFNlbnRlbmNlLnRvTm9ybWFsaXplZFJhbmdlKCk7CisgICAgICAgIGlmICghZnVsbFNlbnRlbmNl
UmFuZ2UpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYXV0byBzcGVsbENoZWNraW5n
U3RhcnQgPSB3b3JkU3RhcnQ7CisgICAgICAgIGF1dG8gc3BlbGxDaGVja2luZ0VuZCA9IHdvcmRT
dGFydDsKKworICAgICAgICAvLyBGSVhNRTogVGhlIGZvbGxvd2luZyBsb2dpYyBkb2Vzbid0IGhh
bmRsZSBhZGRpbmcgc3BlbGxpbmcgbWFya2VycyBkdWUgdG8gcmV0cm8gc2VudGVuY2UgY29ycmVj
dGlvbnMgd2hlbiBhbgorICAgICAgICAvLyBpbmNvcnJlY3RseSBzcGVsbGVkIHJhbmdlIGlzIHNl
cGFyYXRlZCBmcm9tIHRoZSBzdGFydCBvZiB0aGUgY3VycmVudCB3b3JkIGJ5IGEgdGV4dCBub2Rl
IGluc2lkZSBhbiBlbGVtZW50CisgICAgICAgIC8vIHdpdGggc3BlbGxjaGVjayBkaXNhYmxlZC4g
VG8gZml4IHRoaXMsIHdlIG5lZWQgdG8gcmVmYWN0b3IgbWFya0FsbE1pc3NwZWxsaW5nc0FuZEJh
ZEdyYW1tYXJJblJhbmdlcyBzbyB0aGF0CisgICAgICAgIC8vIGl0IGNhbiBoYW5kbGUgYSBsaXN0
IG9mIHNwZWxsaW5nIHJhbmdlcywgYWxvbmdzaWRlIHRoZSBncmFtbWFyIHJhbmdlLgorICAgICAg
ICB3aGlsZSAoc2VudGVuY2VTdGFydCA8IHNwZWxsQ2hlY2tpbmdTdGFydCkgeworICAgICAgICAg
ICAgYXV0byBwcmV2aW91c1Bvc2l0aW9uID0gc3BlbGxDaGVja2luZ1N0YXJ0LnByZXZpb3VzKENh
bm5vdENyb3NzRWRpdGluZ0JvdW5kYXJ5KTsKKyAgICAgICAgICAgIGlmIChwcmV2aW91c1Bvc2l0
aW9uLmlzTnVsbCgpIHx8IHByZXZpb3VzUG9zaXRpb24gPT0gc3BlbGxDaGVja2luZ1N0YXJ0KQor
ICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBhdXRvKiBjb250YWluZXIgPSBw
cmV2aW91c1Bvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZG93bnN0cmVhbSgpLmNvbnRhaW5lck5v
ZGUoKTsKKyAgICAgICAgICAgIGlmIChhdXRvKiBjb250YWluZXJFbGVtZW50ID0gaXM8RWxlbWVu
dD4oY29udGFpbmVyKSA/IGRvd25jYXN0PEVsZW1lbnQ+KGNvbnRhaW5lcikgOiBjb250YWluZXIt
PnBhcmVudEVsZW1lbnQoKSkgeworICAgICAgICAgICAgICAgIGlmICghY29udGFpbmVyRWxlbWVu
dC0+aXNTcGVsbENoZWNraW5nRW5hYmxlZCgpKQorICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3BlbGxDaGVja2luZ1N0YXJ0ID0gcHJldmlv
dXNQb3NpdGlvbjsKKyAgICAgICAgfQorCisgICAgICAgIHdoaWxlIChzcGVsbENoZWNraW5nRW5k
IDwgc2VudGVuY2VFbmQpIHsKKyAgICAgICAgICAgIGF1dG8gbmV4dFBvc2l0aW9uID0gc3BlbGxD
aGVja2luZ0VuZC5uZXh0KENhbm5vdENyb3NzRWRpdGluZ0JvdW5kYXJ5KTsKKyAgICAgICAgICAg
IGlmIChuZXh0UG9zaXRpb24uaXNOdWxsKCkgfHwgbmV4dFBvc2l0aW9uID09IHNwZWxsQ2hlY2tp
bmdFbmQpCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGF1dG8qIGNvbnRh
aW5lciA9IG5leHRQb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLnVwc3RyZWFtKCkuY29udGFpbmVy
Tm9kZSgpOworICAgICAgICAgICAgaWYgKGF1dG8qIGNvbnRhaW5lckVsZW1lbnQgPSBpczxFbGVt
ZW50Pihjb250YWluZXIpID8gZG93bmNhc3Q8RWxlbWVudD4oY29udGFpbmVyKSA6IGNvbnRhaW5l
ci0+cGFyZW50RWxlbWVudCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFjb250YWluZXJFbGVt
ZW50LT5pc1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkpCisgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzcGVsbENoZWNraW5nRW5kID0gbmV4dFBv
c2l0aW9uOworICAgICAgICB9CisKKyAgICAgICAgYXV0byBzcGVsbENoZWNraW5nUmFuZ2UgPSBW
aXNpYmxlU2VsZWN0aW9uKHNwZWxsQ2hlY2tpbmdTdGFydCwgc3BlbGxDaGVja2luZ0VuZCkudG9O
b3JtYWxpemVkUmFuZ2UoKTsKKyAgICAgICAgaWYgKCFzcGVsbENoZWNraW5nUmFuZ2UpCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgLy8gVGhlIHNwZWxsaW5nIGFuZCBncmFtbWFyIG1h
cmtlcnMgaW4gdGhlc2UgcmFuZ2VzIGFyZSByZWNvbXB1dGVkLiBUaGlzIGlzIGJlY2F1c2UgdHlw
aW5nIGEgd29yZCBtYXkKKyAgICAgICAgLy8gY2F1c2UgYW55IG90aGVyIHBhcnQgb2YgdGhlIGN1
cnJlbnQgc2VudGVuY2UgdG8gbG9zZSBvciBnYWluIHNwZWxsaW5nIGNvcnJlY3Rpb24gbWFya2Vy
cywgZHVlIHRvCisgICAgICAgIC8vIHNlbnRlbmNlIHJldHJvIGNvcnJlY3Rpb24uIEFzIHN1Y2gs
IHdlIGV4cGFuZCB0aGUgc3BlbGwgY2hlY2tpbmcgcmFuZ2UgdG8gZW5jb21wYXNzIGFzIG11Y2gg
b2YgdGhlCisgICAgICAgIC8vIGZ1bGwgc2VudGVuY2UgYXMgd2UgY2FuLCByZXNwZWN0aW5nIGJv
dW5kYXJpZXMgd2hlcmUgc3BlbGxjaGVja2luZyBpcyBkaXNhYmxlZC4KKyAgICAgICAgZnVsbFNl
bnRlbmNlUmFuZ2UtPm93bmVyRG9jdW1lbnQoKS5tYXJrZXJzKCkucmVtb3ZlTWFya2VycyhmdWxs
U2VudGVuY2VSYW5nZS5nZXQoKSwgRG9jdW1lbnRNYXJrZXI6OkdyYW1tYXIpOworICAgICAgICBz
cGVsbENoZWNraW5nUmFuZ2UtPm93bmVyRG9jdW1lbnQoKS5tYXJrZXJzKCkucmVtb3ZlTWFya2Vy
cyhzcGVsbENoZWNraW5nUmFuZ2UuZ2V0KCksIERvY3VtZW50TWFya2VyOjpTcGVsbGluZyk7Cisg
ICAgICAgIG1hcmtBbGxNaXNzcGVsbGluZ3NBbmRCYWRHcmFtbWFySW5SYW5nZXModGV4dENoZWNr
aW5nT3B0aW9ucywgc3BlbGxDaGVja2luZ1JhbmdlLmdldCgpLCBmdWxsU2VudGVuY2VSYW5nZS5n
ZXQoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5oCmluZGV4IGQwNTkxMDhmMDY4MDdhYjkyNzhiMzdkMzIyNDFiNzRjYzljMTg1YTAuLjkzYTc0
NjM0NjRlMGU5OWRjZWI4MDFjZTU1ZmZkMTBkN2U4YTdhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaApAQCAtMjg2LDYgKzI4NiwxNCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHVwZGF0
ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQoKTsKIAorICAgIGJvb2wgc2VudGVuY2VSZXRyb0NvcnJl
Y3Rpb25FbmFibGVkKCkgY29uc3QKKyAgICB7CisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMAorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyNlbHNlCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorICAgIH0KICAgICBib29sIGhh
c1NwZWxsaW5nTWFya2VyKGludCBmcm9tLCBpbnQgbGVuZ3RoKTsKICAgICBib29sIGhhc0dyYW1t
YXJNYXJrZXIoaW50IGZyb20sIGludCBsZW5ndGgpOwogICAgIGJvb2wgaGFzQXV0b2NvcnJlY3Rl
ZE1hcmtlcihpbnQgZnJvbSwgaW50IGxlbmd0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwKaW5kZXggNTQwOTFhZDAwM2ZjMWI3MTY3NTM0MmQ1NjEzMWJhNmJjZDk4OWFkNS4uNDA3
M2EwNDgyMGRmNTY3YjlmNjNkY2ZkMmNmZTI0ZWNlOTU4Y2VhYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbApAQCAtMjU4LDYgKzI1OCw3IEBAIGVudW0gRXZlbnRUaHJvdHRsaW5n
QmVoYXZpb3IgewogCiAgICAgdm9pZCB1cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7CiAK
KyAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBzZW50ZW5jZVJldHJvQ29ycmVjdGlvbkVu
YWJsZWQ7CiAgICAgYm9vbGVhbiBoYXNTcGVsbGluZ01hcmtlcihsb25nIGZyb20sIGxvbmcgbGVu
Z3RoKTsKICAgICBib29sZWFuIGhhc0dyYW1tYXJNYXJrZXIobG9uZyBmcm9tLCBsb25nIGxlbmd0
aCk7CiAgICAgYm9vbGVhbiBoYXNBdXRvY29ycmVjdGVkTWFya2VyKGxvbmcgZnJvbSwgbG9uZyBs
ZW5ndGgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGJjZGY3NjlmZGU0ODZmZmIwMTQ4ODgxODhmMWY5ZjliOGQ4ZDIwZTgu
LjE2MTlmZDc3OGU1OGYyYWNhYzY0YTFkNWFhNWExZGRhODlmZTYxYjAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw0MCBAQAorMjAxOC0wNi0wNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KKworICAgICAgICBbbWFjT1NdIFNwZWxsaW5nIGVycm9ycyBpbiB0aGUgbWlkZGxlIG9mIGFu
IGluc2VydGVkIHBhcmFncmFwaCBhcmUgbm90IGRpc3BsYXllZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1NTg0CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8zODY3NjA4MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGRzIDIgbmV3IHNwZWxsY2hlY2tpbmcgdGVzdHMsIGFuZCByZWZhY3RvcnMgc29t
ZSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvZ3JhbW1hci1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9ncmFtbWFyLmh0bWw6Cisg
ICAgICAgICogZWRpdGluZy9zcGVsbGluZy9tYXJrZXJzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBlZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMuaHRtbDoKKworICAgICAgICBUd2Vha2VkIHNvIHRo
YXQgdGhlc2UgdGVzdHMgcGFzcyByZWdhcmRsZXNzIG9mIHdoZXRoZXIgc2VudGVuY2UgcmV0cm8g
Y29ycmVjdGlvbiBpcyBlbmFibGVkIG9yIGRpc2FibGVkLgorCisgICAgICAgICogZWRpdGluZy9z
cGVsbGluZy9yZXRyby1jb3JyZWN0aW9uLXNwZWxsaW5nLW1hcmtlcnMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3JldHJvLWNvcnJlY3Rpb24tc3BlbGxp
bmctbWFya2Vycy5odG1sOiBBZGRlZC4KKworICAgICAgICBUZXN0cyB0aGF0IHR5cGluZyBhdCB0
aGUgZW5kIG9mIGEgc2VudGVuY2Ugd2lsbCBtYXJrIG90aGVyIHBhcnRzIG9mIHRoZSBzZW50ZW5j
ZSBhcyBtaXNzcGVsbGluZ3MsIGlmIHJldHJvCisgICAgICAgIHNlbnRlbmNlIGNvcnJlY3Rpb24g
aXMgZW5hYmxlZC4KKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctY2hhbmdl
ZC10ZXh0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5n
LWNoYW5nZWQtdGV4dC5odG1sOgorCisgICAgICAgIFR3ZWFrZWQgdG8gY29ycmVjdGx5IHdhaXQg
Zm9yIHRoZSBtYXJrZXIgcmFuZ2UgdG8gYmVjb21lIHRoZSBleHBlY3RlZCB2YWx1ZS4KKworICAg
ICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctbWFya2Vycy1hZnRlci1wYXN0aW5nLXNl
bnRlbmNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9z
cGVsbGluZy1tYXJrZXJzLWFmdGVyLXBhc3Rpbmctc2VudGVuY2UuaHRtbDogQWRkZWQuCisKKyAg
ICAgICAgVGVzdHMgdGhhdCBhZnRlciBwYXN0aW5nIGEgc2VudGVuY2Ugd2l0aCBtaXNzcGVsbGVk
IHdvcmRzLCB0aG9zZSBtaXNzcGVsbGVkIHdvcmRzIHdpbGwgYmUgbWFya2VkIGFzIG1pc3NwZWxs
aW5ncy4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTgtMDYtMDEgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW0V4dHJhIHpvb20gbW9kZV0gVGhl
IHVzZXIgc2hvdWxkIGFsd2F5cyBiZSBhYmxlIHRvIGRvdWJsZSB0YXAgdG8gem9vbSB0byBhIHNj
YWxlIG9mIGF0IGxlYXN0IDEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxp
bmcvZ3JhbW1hci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL2dy
YW1tYXItZXhwZWN0ZWQudHh0CmluZGV4IDQ1YWM3MjE3NWZkNmVhNGNiOGNiNjZmYTg2YTU4YmI2
YzM4NTRkNzEuLmZkYmI3M2Q1MTJmN2U1MDJmMWJmOTY5NjY1MjVlN2YzN2I2MTA1ZDAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvZ3JhbW1hci1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9ncmFtbWFyLWV4cGVjdGVkLnR4dApA
QCAtMyw3ICszLDcgQEAgVGhpcyB0ZXN0cyB3aGV0aGVyIHRoZSBncmFtbWF0aWNhbGx5LWluY29y
cmVjdCBwaHJhc2UgJ0kgaGF2ZSBhIGlzc3VlJyBoYXMgZ3JhbW0KIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KIAogCi1QQVNTIGludGVybmFscy5oYXNHcmFtbWFyTWFya2VyKDcsIDEpIGJlY2Ft
ZSB0cnVlCitQQVNTIGhhc0V4cGVjdGVkU3BlbGxpbmdPckdyYW1tYXJNYXJrZXJJblJhbmdlKDcs
IDEpIGJlY2FtZSB0cnVlCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1Qg
Q09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvZ3JhbW1h
ci5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9ncmFtbWFyLmh0bWwKaW5kZXgg
ZjU4M2I2YjI5ODViOWNiMWQyNGQxZjE0Y2FjNzAwMTZlYTM4ZmE1MS4uOTIzZTQxZmJkN2I2M2Y2
ODExOTEwNmNkZmI3NzY4ZTk2ZDg4NTc2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zcGVsbGluZy9ncmFtbWFyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGlu
Zy9ncmFtbWFyLmh0bWwKQEAgLTExLDEyICsxMSwxOCBAQAogPHNjcmlwdCBzcmM9Li4vZWRpdGlu
Zy5qcyBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9KYXZhU2NyaXB0IiA+PC9zY3Jp
cHQ+CiAKIDxzY3JpcHQ+CitmdW5jdGlvbiBoYXNFeHBlY3RlZFNwZWxsaW5nT3JHcmFtbWFyTWFy
a2VySW5SYW5nZShmcm9tLCBsZW5ndGgpIHsKKyAgICBpZiAoaW50ZXJuYWxzLnNlbnRlbmNlUmV0
cm9Db3JyZWN0aW9uRW5hYmxlZCkKKyAgICAgICAgcmV0dXJuIGludGVybmFscy5oYXNTcGVsbGlu
Z01hcmtlcihmcm9tLCBsZW5ndGgpOworICAgIHJldHVybiBpbnRlcm5hbHMuaGFzR3JhbW1hck1h
cmtlcihmcm9tLCBsZW5ndGgpOworfQorCiBmdW5jdGlvbiBlZGl0aW5nVGVzdCgpIHsKICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicm9vdCIpLmZvY3VzKCk7CiAgICAgZG9jdW1lbnQuZXhl
Y0NvbW1hbmQoIkluc2VydFRleHQiLCBmYWxzZSwgIkkgaGF2ZSBhIGlzc3VlLiIpOwogCiAgICAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgICAgc2hvdWxkQmVjb21lRXF1YWwoJ2ludGVy
bmFscy5oYXNHcmFtbWFyTWFya2VyKDcsIDEpJywgJ3RydWUnLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgc2hvdWxkQmVjb21lRXF1YWwoJ2hhc0V4cGVjdGVkU3BlbGxpbmdPckdyYW1tYXJNYXJrZXJJ
blJhbmdlKDcsIDEpJywgJ3RydWUnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJyb290Iikuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKICAgICAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NwZWxsaW5nL21hcmtlcnMtZXhwZWN0ZWQudHh0CmluZGV4IGMxYmMxNmFlMGY0ZjNhMGY1
NjA5YTUyYTY4MGExODRhZWQ1M2Y4N2QuLjc5MWM5ZGU4MTI1YTIwYTcxNzIxMjEyYjc3ZjIwN2Yz
YzQ2MmQ0ZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvbWFya2Vy
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9tYXJrZXJz
LWV4cGVjdGVkLnR4dApAQCAtMywyNiArMywyNiBAQCBUZXN0cyBzcGVsbGluZyBhbmQgZ3JhbW1h
ciBtYXJrZXJzIGZvciBtaXNzcGVsbGluZ3MuCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAK
IAotQ2hlY2tpbmcgZ3JhbW1hciBpc3N1ZSBvbiAnSSBoYXZlIGEgaXNzdWUuJworQ2hlY2tpbmcg
Zm9yIGlzc3VlIG9uICdJIGhhdmUgYSBpc3N1ZS4nCiBQQVNTIGludGVybmFscy5tYXJrZXJSYW5n
ZUZvck5vZGUoZWxlbWVudC5maXJzdENoaWxkLCBuZXh0TWlzc3BlbGxpbmdEYXRhLm1hcmtlciwg
MCkgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKIFBBU1MgcmFuZ2UudG9TdHJpbmcoKSBpcyAi
YSIKIAotQ2hlY2tpbmcgc3BlbGxpbmcgaXNzdWUgb24gJ3p6LicKK0NoZWNraW5nIGZvciBpc3N1
ZSBvbiAnenouJwogUEFTUyBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGVsZW1lbnQuZmly
c3RDaGlsZCwgbmV4dE1pc3NwZWxsaW5nRGF0YS5tYXJrZXIsIDApIGJlY2FtZSBkaWZmZXJlbnQg
ZnJvbSBudWxsCiBQQVNTIHJhbmdlLnRvU3RyaW5nKCkgaXMgInp6IgogCi1DaGVja2luZyBzcGVs
bGluZyBpc3N1ZSBvbiAnb3JhbmdlLHp6LGFwcGxlLicKK0NoZWNraW5nIGZvciBpc3N1ZSBvbiAn
b3JhbmdlLHp6LGFwcGxlLicKIFBBU1MgaW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZShlbGVt
ZW50LmZpcnN0Q2hpbGQsIG5leHRNaXNzcGVsbGluZ0RhdGEubWFya2VyLCAwKSBiZWNhbWUgZGlm
ZmVyZW50IGZyb20gbnVsbAotUEFTUyByYW5nZS50b1N0cmluZygpIGlzICJ6eiIKK1BBU1MgcmFu
Z2UudG9TdHJpbmcoKSBpcyAib3JhbmdlLHp6LGFwcGxlLiIKIAotQ2hlY2tpbmcgZ3JhbW1hciBp
c3N1ZSBvbiAnb3JhbmdlLHp6LGFwcGxlLicKK0NoZWNraW5nIGZvciBpc3N1ZSBvbiAnb3Jhbmdl
LHp6LGFwcGxlLicKIFBBU1MgaW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZShlbGVtZW50LmZp
cnN0Q2hpbGQsIG5leHRNaXNzcGVsbGluZ0RhdGEubWFya2VyLCAwKSBiZWNhbWUgZGlmZmVyZW50
IGZyb20gbnVsbAotUEFTUyByYW5nZS50b1N0cmluZygpIGlzICJvcmFuZ2UsenosYXBwbGUuIgor
UEFTUyByYW5nZS50b1N0cmluZygpIGlzICJvcmFuZ2UsenosYXBwbGUiCiAKLUNoZWNraW5nIHNw
ZWxsaW5nIGlzc3VlIG9uICdJIGhhdmUgYSBpc3N1ZS4nCitDaGVja2luZyBmb3Igbm8gb3RoZXIg
aXNzdWVzIG9uICdJIGhhdmUgYSBpc3N1ZS4nCiBQQVNTIGludGVybmFscy5tYXJrZXJDb3VudEZv
ck5vZGUoZWxlbWVudC5maXJzdENoaWxkLCBvcHBvc2l0ZU1hcmtlcikgYmVjYW1lIDAKIAotQ2hl
Y2tpbmcgZ3JhbW1hciBpc3N1ZSBvbiAnenouJworQ2hlY2tpbmcgZm9yIG5vIG90aGVyIGlzc3Vl
cyBvbiAnenouJwogUEFTUyBpbnRlcm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGVsZW1lbnQuZmly
c3RDaGlsZCwgb3Bwb3NpdGVNYXJrZXIpIGJlY2FtZSAwCiAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvbWFy
a2Vycy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9tYXJrZXJzLmh0bWwKaW5k
ZXggMGE3N2Q2ZjFmZWUwYTI2ZTVjMzY3M2RmODRkZDA0ZDY5NDJkNTA1MC4uOTRiNWNiNzk4OWM5
NmYzYjM2N2Q2MzkzNTBmNzRmN2QxN2U3ZTNlYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRp
dGluZy9zcGVsbGluZy9tYXJrZXJzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVs
bGluZy9tYXJrZXJzLmh0bWwKQEAgLTUyLDE1ICs1MiwxNiBAQCB2YXIgZWxlbWVudFdpdGhHcmFt
bWFyQW5kU3BlbGxpbmdJc3N1ZSA9IGNyZWF0ZUVkaXRhYmxlRWxlbWVudChjb250YWluZXIpOwog
dHlwZVRleHQoZWxlbWVudFdpdGhHcmFtbWFyQW5kU3BlbGxpbmdJc3N1ZSwgJ29yYW5nZSx6eixh
cHBsZS4nKTsKIAogdmFyIG1pc3NwZWxsaW5ncyA9IFsKLSAgICB7IG1hcmtlcjonZ3JhbW1hcics
ICBpc3N1ZTonYScgfSwKLSAgICB7IG1hcmtlcjonc3BlbGxpbmcnLCBpc3N1ZTonenonIH0sCi0g
ICAgeyBtYXJrZXI6J2dyYW1tYXInLCAgaXNzdWU6J29yYW5nZSx6eixhcHBsZS4nIH0KKyAgICB7
IG1hcmtlcjogaW50ZXJuYWxzLnNlbnRlbmNlUmV0cm9Db3JyZWN0aW9uRW5hYmxlZCA/ICdzcGVs
bGluZycgOiAnZ3JhbW1hcicsICBpc3N1ZTogJ2EnIH0sCisgICAgeyBtYXJrZXI6ICdzcGVsbGlu
ZycsIGlzc3VlOiAnenonIH0sCisgICAgeyBtYXJrZXI6ICdncmFtbWFyJywgIGlzc3VlOiAnb3Jh
bmdlLHp6LGFwcGxlLicgfSwKKyAgICB7IG1hcmtlcjogJ3NwZWxsaW5nJywgIGlzc3VlOiAnb3Jh
bmdlLHp6LGFwcGxlJyB9LAogXTsKIAogdmFyIHRlc3RzID0gWwogICAgIGZ1bmN0aW9uKCkgeyB2
ZXJpZnlEZXNpcmVkTWFya2VycyhlbGVtZW50V2l0aEdyYW1tYXJJc3N1ZSwgbWlzc3BlbGxpbmdz
LnNsaWNlKDAsIDEpKSB9LAogICAgIGZ1bmN0aW9uKCkgeyB2ZXJpZnlEZXNpcmVkTWFya2Vycyhl
bGVtZW50V2l0aFNwZWxsaW5nSXNzdWUsIG1pc3NwZWxsaW5ncy5zbGljZSgxLCAyKSkgfSwKLSAg
ICBmdW5jdGlvbigpIHsgdmVyaWZ5RGVzaXJlZE1hcmtlcnMoZWxlbWVudFdpdGhHcmFtbWFyQW5k
U3BlbGxpbmdJc3N1ZSwgbWlzc3BlbGxpbmdzLnNsaWNlKDEsIDMpKSB9LAorICAgIGZ1bmN0aW9u
KCkgeyB2ZXJpZnlEZXNpcmVkTWFya2VycyhlbGVtZW50V2l0aEdyYW1tYXJBbmRTcGVsbGluZ0lz
c3VlLCBtaXNzcGVsbGluZ3Muc2xpY2UoMiwgNCkpIH0sCiAKICAgICAvLyBUaG9zZSBleHBlY3Qg
dG8gaGF2ZSBvbmx5IG9uZSBraW5kIG9mIG1hcmtlcnMgZWl0aGVyIHNwZWxsaW5nIG9yIGdyYW1t
YXIuCiAgICAgZnVuY3Rpb24oKSB7IHZlcmlmeVVuZXhwZWN0ZWRNYXJrZXJzKGVsZW1lbnRXaXRo
R3JhbW1hcklzc3VlLCBtaXNzcGVsbGluZ3Muc2xpY2UoMCwgMSkpIH0sCkBAIC04MCw3ICs4MSw3
IEBAIGZ1bmN0aW9uIHZlcmlmeURlc2lyZWRNYXJrZXJzKGUsIG1pc3NwZWxsaW5ncykKICAgICBp
ZiAoIW5leHRNaXNzcGVsbGluZ0RhdGEpCiAgICAgICAgIHJldHVybiBkb25lKCk7CiAKLSAgICBk
ZWJ1ZygiQ2hlY2tpbmcgIiArIG5leHRNaXNzcGVsbGluZ0RhdGEubWFya2VyICsgIiBpc3N1ZSBv
biAnIiArIGVsZW1lbnQuZmlyc3RDaGlsZC5ub2RlVmFsdWUgKyAiJyIpOworICAgIGRlYnVnKCJD
aGVja2luZyBmb3IgaXNzdWUgb24gJyIgKyBlbGVtZW50LmZpcnN0Q2hpbGQubm9kZVZhbHVlICsg
IiciKTsKIAogICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgnaW50ZXJuYWxzLm1hcmtlclJhbmdl
Rm9yTm9kZShlbGVtZW50LmZpcnN0Q2hpbGQsIG5leHRNaXNzcGVsbGluZ0RhdGEubWFya2VyLCAw
KScsICJudWxsIiwgZnVuY3Rpb24oKSB7CiAgICAgICAgIHJhbmdlID0gaW50ZXJuYWxzLm1hcmtl
clJhbmdlRm9yTm9kZShlbGVtZW50LmZpcnN0Q2hpbGQsIG5leHRNaXNzcGVsbGluZ0RhdGEubWFy
a2VyLCAwKTsKQEAgLTEwMSw3ICsxMDIsNyBAQCBmdW5jdGlvbiB2ZXJpZnlVbmV4cGVjdGVkTWFy
a2VycyhlLCBtaXNzcGVsbGluZ3MpCiAgICAgZWxzZSBpZiAobmV4dE1pc3NwZWxsaW5nRGF0YS5t
YXJrZXIgPT0gJ3NwZWxsaW5nJykKICAgICAgICAgb3Bwb3NpdGVNYXJrZXIgPSAnZ3JhbW1hcic7
CiAKLSAgICBkZWJ1ZygiQ2hlY2tpbmcgIiArIG9wcG9zaXRlTWFya2VyICsgIiBpc3N1ZSBvbiAn
IiArIGVsZW1lbnQuZmlyc3RDaGlsZC5ub2RlVmFsdWUgKyAiJyIpOworICAgIGRlYnVnKCJDaGVj
a2luZyBmb3Igbm8gb3RoZXIgaXNzdWVzIG9uICciICsgZWxlbWVudC5maXJzdENoaWxkLm5vZGVW
YWx1ZSArICInIik7CiAKICAgICBzaG91bGRCZWNvbWVFcXVhbCgnaW50ZXJuYWxzLm1hcmtlckNv
dW50Rm9yTm9kZShlbGVtZW50LmZpcnN0Q2hpbGQsIG9wcG9zaXRlTWFya2VyKScsICcwJywgZnVu
Y3Rpb24oKSB7CiAgICAgICAgIGRlYnVnKCIiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Vk
aXRpbmcvc3BlbGxpbmcvcmV0cm8tY29ycmVjdGlvbi1zcGVsbGluZy1tYXJrZXJzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvcmV0cm8tY29ycmVjdGlvbi1zcGVs
bGluZy1tYXJrZXJzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43M2NjNWNkNWQ0NTNkYTdiNzVi
MTRlMGZiY2UyMDQ5YjY1OTdjODg0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9zcGVsbGluZy9yZXRyby1jb3JyZWN0aW9uLXNwZWxsaW5nLW1hcmtlcnMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNyBAQAorUEFTUyBpbnRlcm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIoNSwg
NCkgYmVjYW1lIHRydWUKK1BBU1MgIWludGVybmFscy5zZW50ZW5jZVJldHJvQ29ycmVjdGlvbkVu
YWJsZWQgfHwgaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFya2VyKDEwLCAyKSBpcyB0cnVlCitQQVNT
ICFpbnRlcm5hbHMuc2VudGVuY2VSZXRyb0NvcnJlY3Rpb25FbmFibGVkIHx8IGludGVybmFscy5o
YXNTcGVsbGluZ01hcmtlcigxOCwgMykgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitJdCdzIG11aGMgdG8gbGF0ZSB0b28gZmluaXNoIHRo
aXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3JldHJvLWNvcnJl
Y3Rpb24tc3BlbGxpbmctbWFya2Vycy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGlu
Zy9yZXRyby1jb3JyZWN0aW9uLXNwZWxsaW5nLW1hcmtlcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzI3
MDI1MjZiY2QwYWFhNWY1MjAzNDY0MjA4MjVjYmNiNTBjMmU2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9yZXRyby1jb3JyZWN0aW9uLXNwZWxsaW5nLW1h
cmtlcnMuaHRtbApAQCAtMCwwICsxLDQ0IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vZWRpdGluZy5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+Cithc3luYyBmdW5jdGlvbiBydW5U
ZXN0KCkgeworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgaWYgKCF3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzY3JpcHRpb24i
KS5pbm5lckhUTUwgPSBgVG8gbWFudWFsbHkgdGVzdCwgdHlwZSA8c3Ryb25nPkl0J3MgbXVoYyB0
byBsYXRlCisgICAgICAgICAgICB0b28gZmluaXNoIHRoaXMuPC9zdHJvbmc+IGhlcmUuIFlvdSBz
aG91bGQgc2VlIHNwZWxsaW5nIGNvcnJlY3Rpb24gbWFya2VycyBiZWxvdyA8c3Ryb25nPm11aGM8
L3N0cm9uZz4KKyAgICAgICAgICAgIGFzIHdlbGwgYXMgPHN0cm9uZz50bzwvc3Ryb25nPiBhbmQg
PHN0cm9uZz50b288L3N0cm9uZz4gb24gbWFjT1MgTW9qYXZlLmA7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0VW5pZmllZFRleHRDaGVja2VyRW5h
YmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QXN5bmNocm9ub3VzU3BlbGxD
aGVja2luZ0VuYWJsZWQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldEF1dG9tYXRpY1RleHRSZXBs
YWNlbWVudEVuYWJsZWQoZmFsc2UpOworICAgIGludGVybmFscy5zZXRBdXRvbWF0aWNTcGVsbGlu
Z0NvcnJlY3Rpb25FbmFibGVkKGZhbHNlKTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJlZGl0b3IiKS5mb2N1cygpOworICAgIGZvciAoY29uc3QgY2hhcmFjdGVyIG9mICJJdCdzIG11
aGMgdG8gbGF0ZSB0b28gZmluaXNoIHRoaXMuIikKKyAgICAgICAgdHlwZUNoYXJhY3RlckNvbW1h
bmQoY2hhcmFjdGVyKTsKKworICAgIHNob3VsZEJlY29tZUVxdWFsKCJpbnRlcm5hbHMuaGFzU3Bl
bGxpbmdNYXJrZXIoNSwgNCkiLCAidHJ1ZSIsICgpID0+IHsKKyAgICAgICAgc2hvdWxkQmVUcnVl
KCIhaW50ZXJuYWxzLnNlbnRlbmNlUmV0cm9Db3JyZWN0aW9uRW5hYmxlZCB8fCBpbnRlcm5hbHMu
aGFzU3BlbGxpbmdNYXJrZXIoMTAsIDIpIiwgInRydWUiKTsKKyAgICAgICAgc2hvdWxkQmVUcnVl
KCIhaW50ZXJuYWxzLnNlbnRlbmNlUmV0cm9Db3JyZWN0aW9uRW5hYmxlZCB8fCBpbnRlcm5hbHMu
aGFzU3BlbGxpbmdNYXJrZXIoMTgsIDMpIiwgInRydWUiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgfSk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4KKyAgICA8ZGl2
IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+CisgICAgPGRpdiBjb250ZW50ZWRpdGFibGUgc3R5bGU9
Im1hcmdpbi1ib3R0b206IDFlbTsgYm9yZGVyOiAxcHggb3JhbmdlIGRhc2hlZDsiIGlkPSJlZGl0
b3IiPjwvZGl2PgorICAgIDxzY3JpcHQ+CisgICAgICAgIHJ1blRlc3QoKTsKKyAgICA8L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NwZWxsaW5nL3NwZWxsaW5nLWNoYW5nZWQtdGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWNoYW5nZWQtdGV4dC1leHBlY3RlZC50eHQKaW5k
ZXggMzUyZTMyOWZjOGFlYmQxMzNkMzRkZWJlZmFmMjk3MjQwZTUyZGIwMi4uNjM3MDMxNzI4NGEx
ODM3ZGJlNDY1MmZmZTRmNGIyYmI2MjU2ZTFhZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRp
dGluZy9zcGVsbGluZy9zcGVsbGluZy1jaGFuZ2VkLXRleHQtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctY2hhbmdlZC10ZXh0LWV4cGVjdGVk
LnR4dApAQCAtNSw3ICs1LDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogUEFTUyBpbnRl
cm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGRlc3RpbmF0aW9uLmNoaWxkTm9kZXNbMF0sICJzcGVs
bGluZyIpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCiBQQVNTIHdpbmRvdy5nZXRTZWxlY3Rpb24o
KS50b1N0cmluZygpIGlzICIgSXMgaXQgYnJva2VuPyIKLVBBU1Mgc3BlbGxpbmdNYXJrZXJSYW5n
ZS50b1N0cmluZygpIGJlY2FtZSAid2VsbGNvbWUiCitQQVNTIG1pc3NwZWxsaW5nU3RyaW5nKCkg
YmVjYW1lICJ3ZWxsY29tZSIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVT
VCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVs
bGluZy1jaGFuZ2VkLXRleHQuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3Bl
bGxpbmctY2hhbmdlZC10ZXh0Lmh0bWwKaW5kZXggYjcwNzhkMzEyYjVhYzNmNzk4MDc5ZGQ0NTBi
NjM2YjU4MmU5YWU1NS4uYWU2NzlmYTAzZGQ4OTU2NzU5YTQ5YzJlNzNlZGMxYTAyMWUzOWIzYSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1jaGFuZ2Vk
LXRleHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWNo
YW5nZWQtdGV4dC5odG1sCkBAIC0xNiw2ICsxNiwxMCBAQCBkZXNjcmlwdGlvbigiV2ViS2l0IHNo
b3VsZCBub3QgY3Jhc2ggYWZ0ZXIgdGhlIHRleHQgaGFzIGNoYW5nZWQgYW5kIHJlc3VsdHMgYXJl
CiAgICAgKyAiIFRoZSB0ZXN0IHN1Y2NlZWRzIHdoZW4gV2ViS2l0IGRvZXMgbm90IGNyYXNoIGFu
ZCAnd2VsbGNvbWUnIGhhcyBzcGVsbGluZyBtYXJrZXIuIik7CiAKIGluaXRTcGVsbFRlc3QoImRl
c3RpbmF0aW9uIiwgIlNwZWxsIHdlbGxjb21lLiBJcyBpdCBicm9rZW4/IiwgZnVuY3Rpb24odGV4
dE5vZGUpIHsKKyAgICBtaXNzcGVsbGluZ1N0cmluZyA9ICgpID0+IHsKKyAgICAgICAgY29uc3Qg
cmFuZ2UgPSBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKHRleHROb2RlLCAic3BlbGxpbmci
LCAwKTsKKyAgICAgICAgcmV0dXJuIHJhbmdlID8gcmFuZ2UudG9TdHJpbmcoKSA6IG51bGw7Cisg
ICAgfTsKICAgICAvLyBTZWxlY3QgdGhlIHRleHQgIklzIGl0IGJyb2tlbj8iLgogICAgIHZhciBk
ZWxldGVSYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CiAgICAgZGVsZXRlUmFuZ2Uuc2V0
U3RhcnQodGV4dE5vZGUsIDE1KTsKQEAgLTI1LDkgKzI5LDcgQEAgaW5pdFNwZWxsVGVzdCgiZGVz
dGluYXRpb24iLCAiU3BlbGwgd2VsbGNvbWUuIElzIGl0IGJyb2tlbj8iLCBmdW5jdGlvbih0ZXh0
Tm9kZSkKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRTZWxlY3Rpb24oKS50
b1N0cmluZygpIiwgIiBJcyBpdCBicm9rZW4/Iik7CiAgICAgLy8gRGVsIGtleSB0byBkZWxldGUg
dGhlIHRleHQgIklzIGl0IGJyb2tlbj8iLgogICAgIGV2ZW50U2VuZGVyLmtleURvd24oU3RyaW5n
LmZyb21DaGFyQ29kZSgweDAwN0YpLCBudWxsKTsKLQotICAgIHNwZWxsaW5nTWFya2VyUmFuZ2Ug
PSBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKHRleHROb2RlLCAic3BlbGxpbmciLCAwKTsK
LSAgICBzaG91bGRCZWNvbWVFcXVhbFRvU3RyaW5nKCJzcGVsbGluZ01hcmtlclJhbmdlLnRvU3Ry
aW5nKCkiLCAid2VsbGNvbWUiLCBmdW5jdGlvbigpIHsKKyAgICBzaG91bGRCZWNvbWVFcXVhbFRv
U3RyaW5nKCJtaXNzcGVsbGluZ1N0cmluZygpIiwgIndlbGxjb21lIiwgZnVuY3Rpb24oKSB7CiAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXN0aW5hdGlvbiIpLmlubmVySFRNTCA9
ICIiOwogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctbWFya2Vycy1hZnRlci1wYXN0aW5nLXNl
bnRlbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxp
bmctbWFya2Vycy1hZnRlci1wYXN0aW5nLXNlbnRlbmNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jNjMzMTJjYjgzMTlkODNjNjFhYTYzZmYzZTVhMTMzMzkyYTQ5ZDNhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1tYXJrZXJzLWFmdGVy
LXBhc3Rpbmctc2VudGVuY2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorUEFTUyBpbnRl
cm5hbHMuaGFzU3BlbGxpbmdNYXJrZXIoMCwgNSkgYmVjYW1lIHRydWUKK1BBU1MgaW50ZXJuYWxz
Lmhhc1NwZWxsaW5nTWFya2VyKDYsIDUpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorSGVsb2wgd29yZGwgdGhpcyBpcyBhIHRlc3QKK0hl
bG9sIHdvcmRsIHRoaXMgaXMgYSB0ZXN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NwZWxsaW5nL3NwZWxsaW5nLW1hcmtlcnMtYWZ0ZXItcGFzdGluZy1zZW50ZW5jZS5odG1sIGIv
TGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1tYXJrZXJzLWFmdGVyLXBhc3Rp
bmctc2VudGVuY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZGJiNzU4NjU2YjVlYmJhYmVjNGM4NWFkMmRj
YWFhNjUzMDllNTU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVs
bGluZy9zcGVsbGluZy1tYXJrZXJzLWFmdGVyLXBhc3Rpbmctc2VudGVuY2UuaHRtbApAQCAtMCww
ICsxLDQ2IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZWRpdGluZy5qcyI+PC9z
Y3JpcHQ+CisKKzxzY3JpcHQ+CitmdW5jdGlvbiBhc3luY0VxdWFsaXR5Q2hlY2soZmlyc3QsIHNl
Y29uZCkgeworICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNob3VsZEJlY29tZUVx
dWFsKGZpcnN0LCBzZWNvbmQsIHJlc29sdmUpKTsKK30KKworYXN5bmMgZnVuY3Rpb24gcnVuVGVz
dCgpIHsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICBnZXRTZWxlY3Rpb24oKS5zZXRC
YXNlQW5kRXh0ZW50KHNvdXJjZSwgMCwgc291cmNlLCAxKTsKKworICAgIGlmICghd2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlc2NyaXB0aW9u
IikuaW5uZXJIVE1MID0gYFRvIG1hbnVhbGx5IHRlc3QsIHNlbGVjdCB0aGUgdGV4dCBiZWxvdyBh
bmQgcGFzdGUgaW50byB0aGUKKyAgICAgICAgICAgIGVkaXRhYmxlIGFyZWEuIFRoZXJlIHNob3Vs
ZCBiZSBtaXNzcGVsbGluZyBtYXJrZXJzIGJlbG93IGJvdGggd29yZHMuYDsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRVbmlmaWVkVGV4dENoZWNr
ZXJFbmFibGVkKHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBc3luY2hyb25vdXNT
cGVsbENoZWNraW5nRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0QXV0b21hdGljVGV4
dFJlcGxhY2VtZW50RW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldEF1dG9tYXRpY1Nw
ZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQoZmFsc2UpOworCisgICAgY29weUNvbW1hbmQoKTsKKyAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWRpdG9yIikuZm9jdXMoKTsKKyAgICBwYXN0ZUNv
bW1hbmQoKTsKKyAgICBzaG91bGRCZWNvbWVFcXVhbCgiaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFy
a2VyKDAsIDUpIiwgInRydWUiLCAoKSA9PiB7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgiaW50ZXJu
YWxzLmhhc1NwZWxsaW5nTWFya2VyKDYsIDUpIiwgInRydWUiKTsKKyAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgfSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHk+CisgICAgPGRp
diBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorICAgIDxkaXYgaWQ9InNvdXJjZSI+SGVsb2wgd29y
ZGwgdGhpcyBpcyBhIHRlc3Q8L2Rpdj4KKyAgICA8ZGl2IGNvbnRlbnRlZGl0YWJsZSBzdHlsZT0i
bWFyZ2luLWJvdHRvbTogMWVtOyBib3JkZXI6IDFweCBvcmFuZ2UgZGFzaGVkOyIgaWQ9ImVkaXRv
ciI+PC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICAgICAgcnVuVGVzdCgpOworICAgIDwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDU4N2E3MWJiN2MxYTY5
MjIxMzgwOTIwNzFkYTJkNzg4MTQ5ODkxZmEuLjU1ZDM5ZjEzMjcyZjU0YzdiYmRlYWM5ODQ3N2U0
MzBjNzI1NzEzZjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25z
CkBAIC05OSw3ICs5OSw5IEBAIGZhc3QvZm9ybXMvZmlsZS9maWxlLWlucHV0LWNhcHR1cmUuaHRt
bAogZmFzdC9jc3MvZHJhZ2dhYmxlLXJlZ2lvbi1wYXJzZXIuaHRtbAogCiAjIFNwZWxsaW5nIGFu
ZCBncmFtbWFyIG1hcmtlcnMgYXJlIG5vdCBzdXBwb3J0ZWQKK2VkaXRpbmcvc3BlbGxpbmcvcmV0
cm8tY29ycmVjdGlvbi1zcGVsbGluZy1tYXJrZXJzLmh0bWwgWyBXb250Rml4IF0KIGVkaXRpbmcv
c3BlbGxpbmcvc3BlbGxpbmctbWFya2VyLWluY2x1ZGVzLWh5cGhlbi5odG1sIFsgV29udEZpeCBd
CitlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLW1hcmtlcnMtYWZ0ZXItcGFzdGluZy1zZW50ZW5j
ZS5odG1sIFsgV29udEZpeCBdCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLW1hcmtlcnMtaW4t
b3ZlcmxhcHBpbmctbGluZXMuaHRtbCBbIFdvbnRGaXggXQogZWRpdGluZy9zcGVsbGluZy9zcGVs
bGluZy1tYXJrZXJzLWluLW92ZXJsYXBwaW5nLWxpbmVzLWxhcmdlLWZvbnQuaHRtbCBbIFdvbnRG
aXggXQogZmFzdC93cml0aW5nLW1vZGUvZW5nbGlzaC1idC10ZXh0LXdpdGgtc3BlbGxpbmctbWFy
a2VyLmh0bWwgWyBXb250Rml4IF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azEvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCAzNTE5OTg4N2VkZjU5MGE1YTk5YzU3ODRjNzMwMjhmYmQzNTg4
OWNjLi5mNzIxYjFjNzQ0MjNkNzQxZTE5MWU2ZWRlOWNjYjY4YTZiNzUxYjlkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCkBAIC0zNDgsNyArMzQ4
LDYgQEAgd2Via2l0Lm9yZy9iLzE1ODU4NSB3ZWJnbC93ZWJnbC1iYWNraW5nLXN0b3JlLXNpemUt
dXBkYXRlLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQogCiAjIDxyZGFyOi8vcHJvYmxlbS8yNjM5OTU5
OD4KIFsgU2llcnJhKyBdIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1hc3luYy5odG1sIFsg
RmFpbHVyZSBdCi1bIFNpZXJyYSsgXSBlZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMuaHRtbCBbIEZh
aWx1cmUgXQogWyBTaWVycmErIF0gZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy11bmlmaWVkLWVt
dWxhdGlvbi5odG1sIFsgRmFpbHVyZSBdCiAKICMgPHJkYXI6Ly9wcm9ibGVtLzI2MDUwOTIzPiBU
aGUgcmVzdWx0IGlzIHByb2JhYmx5IHN0aWxsIGEgcGFzcywgYnV0IHdlIGRvbid0IGhhdmUgYSB3
YXkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCA2YjBkZTQyMjRiMWNmNTAxYWQ0NmM1MzMxN2NmNjVjZmI5N2ZjN2Q2Li5mMDA2NGIwY2NjZTRm
NWVlZWM0MTRiNDRjZjIxYzMwYWUwZWE1OGRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNzcsNiArMTc3LDggQEAgd2Via2l0Lm9yZy9i
LzEwNTYxNiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXdpdGgtcHVuY3R1YXRpb24tc2VsZWN0
aW9uLmh0bWwKIHdlYmtpdC5vcmcvYi8xMDU2MTYgZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy13
aXRoLXdoaXRlc3BhY2Utc2VsZWN0aW9uLmh0bWwKIHdlYmtpdC5vcmcvYi8xMDU2MTYgZWRpdGlu
Zy9zcGVsbGluZy9ncmFtbWFyLmh0bWwKIHdlYmtpdC5vcmcvYi8xMDU2MTYgZWRpdGluZy9zcGVs
bGluZy9tYXJrZXJzLmh0bWwKK3dlYmtpdC5vcmcvYi8xMDU2MTYgZWRpdGluZy9zcGVsbGluZy9y
ZXRyby1jb3JyZWN0aW9uLXNwZWxsaW5nLW1hcmtlcnMuaHRtbAord2Via2l0Lm9yZy9iLzEwNTYx
NiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLW1hcmtlcnMtYWZ0ZXItcGFzdGluZy1zZW50ZW5j
ZS5odG1sCiB3ZWJraXQub3JnL2IvMTA1NjE2IGVkaXRpbmcvbWFjL3NwZWxsaW5nL2F1dG9jb3Jy
ZWN0aW9uLWRlbGV0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTA1NjE2IGVkaXRp
bmcvbWFjL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLXJlbW92aW5nLXVuZGVybGluZS1hZnRlci1w
YXN0ZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTA1NjE2IGVkaXRpbmcvbWFjL3Nw
ZWxsaW5nL2F1dG9jb3JyZWN0aW9uLXJlbW92aW5nLXVuZGVybGluZS5odG1sIFsgRmFpbHVyZSBd
Cg==
</data>
<flag name="review"
          id="360143"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>342011</attachid>
            <date>2018-06-05 18:05:28 -0700</date>
            <delta_ts>2018-06-05 18:44:09 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-185584-20180605180527.patch</filename>
            <type>text/plain</type>
            <size>26588</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyNTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzY0NmQxMzc4NTMzZDRk
MGE1NDAzMGIzZmEwMmE3NjY0YWQ2MTBlNi4uMTM3ZjExYWE2ZjYwNWU2NjhkMTg5MGNmMGE0ZWM1
MGEyNDcwZTNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE4LTA2LTA1ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gU3Bl
bGxpbmcgZXJyb3JzIGluIHRoZSBtaWRkbGUgb2YgYW4gaW5zZXJ0ZWQgcGFyYWdyYXBoIGFyZSBu
b3QgZGlzcGxheWVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODU1ODQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM4Njc2MDgxPgorCisgICAgICAg
IFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBDdXJyZW50bHkgd2hlbiB0eXBp
bmcsIHdlIG9ubHkgY29uc2lkZXIgdGhlIHJhbmdlIG9mIGFkamFjZW50IHdvcmRzIHdoZW4gZGV0
ZXJtaW5pbmcgd2hlcmUgdG8gcGxhY2Ugc3BlbGxpbmcKKyAgICAgICAgY29ycmVjdGlvbiBtYXJr
ZXJzLCBldmVuIHRob3VnaCB3ZSBwcm92aWRlIE5TU3BlbGxDaGVja2VyIHdpdGggdGhlIGZ1bGwg
Y29udGV4dCBvZiB0aGUgc2VudGVuY2UgKGFuZCBnZXQgYmFjaworICAgICAgICByZXN1bHRzIGVu
Y29tcGFzc2luZyB0aGUgZnVsbCByYW5nZSkuIEluIG1hY09TIE1vamF2ZSwgTlNTcGVsbENoZWNr
ZXIgbWF5IG5vdyByZXR1cm4gc3BlbGwgY2hlY2tpbmcgcmVzdWx0cyB0aGF0CisgICAgICAgIGlu
Y2x1ZGUgY29ycmVjdGx5IHNwZWxsZWQgd29yZHMgdGhhdCBhcmUgbWlzdXNlZCBpbiB0aGUgY29u
dGV4dCBvZiB0aGUgc2VudGVuY2UuIFRoaXMgbWVhbnMgdGhhdCB3aGlsZSB0eXBpbmcgYQorICAg
ICAgICBzZW50ZW5jZSwgYSBkaWZmZXJlbnQgcGFydCBvZiB0aGUgc2VudGVuY2UgbWF5IGdhaW4g
b3IgbG9zZSBzcGVsbGluZyBtYXJrZXJzIGFzIGEgcmVzdWx0LgorCisgICAgICAgIFRvIHN1cHBv
cnQgdGhpcywgV2ViS2l0IG5lZWRzIHRvIG1hcmsgb3IgdW5tYXJrIHNwZWxsaW5nIGNvcnJlY3Rp
b25zIGluIHRoZSBmdWxsIHJhbmdlIG9mIHRoZSBzZW50ZW5jZSB3aGVuZXZlcgorICAgICAgICBh
IGZ1bGwgd29yZCBpcyB0eXBlZCAoc2luY2UgdGhlIGNvbnRleHQgb2Ygb3RoZXIgd29yZHMgd2l0
aGluIHRoZSBzZW50ZW5jZSBtYXkgaGF2ZSBjaGFuZ2VkLCByZXN1bHRpbmcgaW4KKyAgICAgICAg
ZGlmZmVyZW50IHBsYXRmb3JtIHNwZWxsY2hlY2tpbmcgcmVzdWx0cykuIEluIG1hcmtNaXNzcGVs
bGluZ3NBZnRlclR5cGluZ1RvV29yZCwgd2UgZXhwYW5kIHRoZSBzcGVsbCBjaGVja2luZworICAg
ICAgICByYW5nZSBwYXN0IHRoZSBhZGphY2VudCB3b3JkcyBzbyB0aGF0IGl0IGVuY29tcGFzc2Vz
IHRoZSBsYXJnZXN0IHN1YnJhbmdlIG9mIHRoZSBmdWxsIHNlbnRlbmNlIHRoYXQgaW5jbHVkZXMg
dGhlCisgICAgICAgIHN0YXJ0IG9mIHRoZSB0eXBlZCB3b3JkLCBhbmQgZG9lcyBub3QgaW5jbHVk
ZSBhbnkgcG9zaXRpb24gdGhhdCBpcyB1bmRlciBhbiBlbGVtZW50IHdpdGggYHNwZWxsY2hlY2s9
ZmFsc2VgLgorCisgICAgICAgIFRoaXMgZ3VhcmFudGVlcyB0aGF0IHdlIGRvbid0IGVycm9uZW91
c2x5IHBsYWNlIHNwZWxsaW5nIGRvY3VtZW50IG1hcmtlcnMgdW5kZXIgZWxlbWVudHMgd2hlcmUg
c3BlbGxjaGVja2luZyBpcworICAgICAgICBkaXNhYmxlZCwgd2hpbGUgYWxsb3dpbmcgZm9yIHNl
bnRlbmNlIHJldHJvIGNvcnJlY3Rpb25zIHdoZW4gc3BlbGxjaGVja2luZyBpcyBlbmFibGVkLiBI
b3dldmVyLCB0aGlzIGRvZXNuJ3QKKyAgICAgICAgaGFuZGxlIHRoZSBjYXNlIHdoZXJlIGFuIGVs
ZW1lbnQgd2l0aCBzcGVsbGNoZWNraW5nIGRpc2FibGVkIGxpZXMgYmV0d2VlbiBhIHNlbnRlbmNl
IHJldHJvIGNvcnJlY3Rpb24gcmFuZ2UgYW5kCisgICAgICAgIHRoZSBjdXJyZW50bHkgdHlwZWQg
d29yZC4gSW4gdGhlIGZ1dHVyZSwgd2UgY291bGQgZml4IHRoaXMgYnkgcmVmYWN0b3JpbmcgU3Bl
bGxDaGVja1JlcXVlc3QgdG8gdHJhY2sgYSBsaXN0IG9mCisgICAgICAgIG5vbi1jb250aWd1b3Vz
IHNwZWxsaW5nIGNvcnJlY3Rpb24gcmFuZ2VzIOKAlCBzZWUgdGhlIEZJWE1FIGluIG1hcmtNaXNz
cGVsbGluZ3NBZnRlclR5cGluZ1RvV29yZCBmb3IgbW9yZSBkZXRhaWwuCisKKyAgICAgICAgQ292
ZXJlZCBieSAyIG5ldyBsYXlvdXQgdGVzdHMsIGFzIHdlbGwgYXMgYW4gZXhpc3Rpbmcgc3BlbGwt
Y2hlY2tpbmcgdGVzdCB0aGF0IHNob3VsZCBub3cgYmUgcGFzc2luZy4KKworICAgICAgICBUZXN0
czogZWRpdGluZy9zcGVsbGluZy9yZXRyby1jb3JyZWN0aW9uLXNwZWxsaW5nLW1hcmtlcnMuaHRt
bAorICAgICAgICAgICAgICAgZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1tYXJrZXJzLWFmdGVy
LXBhc3Rpbmctc2VudGVuY2UuaHRtbAorCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjptYXJrTWlzc3BlbGxpbmdzQWZ0ZXJUeXBpbmdUb1dv
cmQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuaWRsOgorCisgICAgICAgIEFkZCBhbiBpbnRlcm5hbCB0ZXN0aW5nIGhlbHBlciB0
byBkZXRlcm1pbmUgd2hldGhlciByZXRybyBzZW50ZW5jZSBjb3JyZWN0aW9ucyBhcmUgZW5hYmxl
ZC4KKwogMjAxOC0wNi0wNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0NvY29hXSBJbXByb3ZlIHNvbWUgc29mdCBsaW5raW5nIGNvbXBhdGliaWxpdHkgd2l0aCBB
UkMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCAxNzFkODc3MDM5N2VhNzE4OGIzODE3
NDkzZjAyODFlNDdjODBmOTQzLi44MDAyZTJiZmYwNGIxZTlmNDgxMzUwZTczMjMwNmI1NjljNTk0
NWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0yMzcxLDEyICsyMzcxLDU5IEBA
IHZvaWQgRWRpdG9yOjptYXJrTWlzc3BlbGxpbmdzQWZ0ZXJUeXBpbmdUb1dvcmQoY29uc3QgVmlz
aWJsZVBvc2l0aW9uICZ3b3JkU3RhcnQsCiAgICAgICAgIGlmIChpc0dyYW1tYXJDaGVja2luZ0Vu
YWJsZWQoKSkKICAgICAgICAgICAgIHRleHRDaGVja2luZ09wdGlvbnMgfD0gVGV4dENoZWNraW5n
VHlwZUdyYW1tYXI7CiAKLSAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBhZGphY2VudFdvcmRzID0g
VmlzaWJsZVNlbGVjdGlvbihzdGFydE9mV29yZCh3b3JkU3RhcnQsIExlZnRXb3JkSWZPbkJvdW5k
YXJ5KSwgZW5kT2ZXb3JkKHdvcmRTdGFydCwgUmlnaHRXb3JkSWZPbkJvdW5kYXJ5KSk7Ci0gICAg
ICAgIGlmICh0ZXh0Q2hlY2tpbmdPcHRpb25zICYgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIpIHsK
LSAgICAgICAgICAgIFZpc2libGVTZWxlY3Rpb24gc2VsZWN0ZWRTZW50ZW5jZSA9IFZpc2libGVT
ZWxlY3Rpb24oc3RhcnRPZlNlbnRlbmNlKHdvcmRTdGFydCksIGVuZE9mU2VudGVuY2Uod29yZFN0
YXJ0KSk7Ci0gICAgICAgICAgICBtYXJrQWxsTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hckluUmFu
Z2VzKHRleHRDaGVja2luZ09wdGlvbnMsIGFkamFjZW50V29yZHMudG9Ob3JtYWxpemVkUmFuZ2Uo
KS5nZXQoKSwgc2VsZWN0ZWRTZW50ZW5jZS50b05vcm1hbGl6ZWRSYW5nZSgpLmdldCgpKTsKLSAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICBtYXJrQWxsTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1h
ckluUmFuZ2VzKHRleHRDaGVja2luZ09wdGlvbnMsIGFkamFjZW50V29yZHMudG9Ob3JtYWxpemVk
UmFuZ2UoKS5nZXQoKSwgYWRqYWNlbnRXb3Jkcy50b05vcm1hbGl6ZWRSYW5nZSgpLmdldCgpKTsK
KyAgICAgICAgYXV0byBzZW50ZW5jZVN0YXJ0ID0gc3RhcnRPZlNlbnRlbmNlKHdvcmRTdGFydCk7
CisgICAgICAgIGF1dG8gc2VudGVuY2VFbmQgPSBlbmRPZlNlbnRlbmNlKHdvcmRTdGFydCk7Cisg
ICAgICAgIFZpc2libGVTZWxlY3Rpb24gZnVsbFNlbnRlbmNlKHNlbnRlbmNlU3RhcnQsIHNlbnRl
bmNlRW5kKTsKKyAgICAgICAgYXV0byBmdWxsU2VudGVuY2VSYW5nZSA9IGZ1bGxTZW50ZW5jZS50
b05vcm1hbGl6ZWRSYW5nZSgpOworICAgICAgICBpZiAoIWZ1bGxTZW50ZW5jZVJhbmdlKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGF1dG8gc3BlbGxDaGVja2luZ1N0YXJ0ID0gd29y
ZFN0YXJ0OworICAgICAgICBhdXRvIHNwZWxsQ2hlY2tpbmdFbmQgPSB3b3JkU3RhcnQ7CisKKyAg
ICAgICAgLy8gRklYTUU6IFRoZSBmb2xsb3dpbmcgbG9naWMgZG9lc24ndCBoYW5kbGUgYWRkaW5n
IHNwZWxsaW5nIG1hcmtlcnMgZHVlIHRvIHJldHJvIHNlbnRlbmNlIGNvcnJlY3Rpb25zIHdoZW4g
YW4KKyAgICAgICAgLy8gaW5jb3JyZWN0bHkgc3BlbGxlZCByYW5nZSBpcyBzZXBhcmF0ZWQgZnJv
bSB0aGUgc3RhcnQgb2YgdGhlIGN1cnJlbnQgd29yZCBieSBhIHRleHQgbm9kZSBpbnNpZGUgYW4g
ZWxlbWVudAorICAgICAgICAvLyB3aXRoIHNwZWxsY2hlY2sgZGlzYWJsZWQuIFRvIGZpeCB0aGlz
LCB3ZSBuZWVkIHRvIHJlZmFjdG9yIG1hcmtBbGxNaXNzcGVsbGluZ3NBbmRCYWRHcmFtbWFySW5S
YW5nZXMgc28gdGhhdAorICAgICAgICAvLyBpdCBjYW4gaGFuZGxlIGEgbGlzdCBvZiBzcGVsbGlu
ZyByYW5nZXMsIGFsb25nc2lkZSB0aGUgZ3JhbW1hciByYW5nZS4KKyAgICAgICAgd2hpbGUgKHNl
bnRlbmNlU3RhcnQgPCBzcGVsbENoZWNraW5nU3RhcnQpIHsKKyAgICAgICAgICAgIGF1dG8gcHJl
dmlvdXNQb3NpdGlvbiA9IHNwZWxsQ2hlY2tpbmdTdGFydC5wcmV2aW91cyhDYW5ub3RDcm9zc0Vk
aXRpbmdCb3VuZGFyeSk7CisgICAgICAgICAgICBpZiAocHJldmlvdXNQb3NpdGlvbi5pc051bGwo
KSB8fCBwcmV2aW91c1Bvc2l0aW9uID09IHNwZWxsQ2hlY2tpbmdTdGFydCkKKyAgICAgICAgICAg
ICAgICBicmVhazsKKworICAgICAgICAgICAgYXV0byogY29udGFpbmVyID0gcHJldmlvdXNQb3Np
dGlvbi5kZWVwRXF1aXZhbGVudCgpLmRvd25zdHJlYW0oKS5jb250YWluZXJOb2RlKCk7CisgICAg
ICAgICAgICBpZiAoYXV0byogY29udGFpbmVyRWxlbWVudCA9IGlzPEVsZW1lbnQ+KGNvbnRhaW5l
cikgPyBkb3duY2FzdDxFbGVtZW50Pihjb250YWluZXIpIDogY29udGFpbmVyLT5wYXJlbnRFbGVt
ZW50KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnRhaW5lckVsZW1lbnQtPmlzU3BlbGxD
aGVja2luZ0VuYWJsZWQoKSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIHNwZWxsQ2hlY2tpbmdTdGFydCA9IHByZXZpb3VzUG9zaXRpb247
CisgICAgICAgIH0KKworICAgICAgICB3aGlsZSAoc3BlbGxDaGVja2luZ0VuZCA8IHNlbnRlbmNl
RW5kKSB7CisgICAgICAgICAgICBhdXRvIG5leHRQb3NpdGlvbiA9IHNwZWxsQ2hlY2tpbmdFbmQu
bmV4dChDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSk7CisgICAgICAgICAgICBpZiAobmV4dFBv
c2l0aW9uLmlzTnVsbCgpIHx8IG5leHRQb3NpdGlvbiA9PSBzcGVsbENoZWNraW5nRW5kKQorICAg
ICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBhdXRvKiBjb250YWluZXIgPSBuZXh0
UG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS51cHN0cmVhbSgpLmNvbnRhaW5lck5vZGUoKTsKKyAg
ICAgICAgICAgIGlmIChhdXRvKiBjb250YWluZXJFbGVtZW50ID0gaXM8RWxlbWVudD4oY29udGFp
bmVyKSA/IGRvd25jYXN0PEVsZW1lbnQ+KGNvbnRhaW5lcikgOiBjb250YWluZXItPnBhcmVudEVs
ZW1lbnQoKSkgeworICAgICAgICAgICAgICAgIGlmICghY29udGFpbmVyRWxlbWVudC0+aXNTcGVs
bENoZWNraW5nRW5hYmxlZCgpKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgc3BlbGxDaGVja2luZ0VuZCA9IG5leHRQb3NpdGlvbjsKKyAg
ICAgICAgfQorCisgICAgICAgIGF1dG8gc3BlbGxDaGVja2luZ1JhbmdlID0gVmlzaWJsZVNlbGVj
dGlvbihzcGVsbENoZWNraW5nU3RhcnQsIHNwZWxsQ2hlY2tpbmdFbmQpLnRvTm9ybWFsaXplZFJh
bmdlKCk7CisgICAgICAgIGlmICghc3BlbGxDaGVja2luZ1JhbmdlKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIC8vIFRoZSBzcGVsbGluZyBhbmQgZ3JhbW1hciBtYXJrZXJzIGluIHRo
ZXNlIHJhbmdlcyBhcmUgcmVjb21wdXRlZC4gVGhpcyBpcyBiZWNhdXNlIHR5cGluZyBhIHdvcmQg
bWF5CisgICAgICAgIC8vIGNhdXNlIGFueSBvdGhlciBwYXJ0IG9mIHRoZSBjdXJyZW50IHNlbnRl
bmNlIHRvIGxvc2Ugb3IgZ2FpbiBzcGVsbGluZyBjb3JyZWN0aW9uIG1hcmtlcnMsIGR1ZSB0bwor
ICAgICAgICAvLyBzZW50ZW5jZSByZXRybyBjb3JyZWN0aW9uLiBBcyBzdWNoLCB3ZSBleHBhbmQg
dGhlIHNwZWxsIGNoZWNraW5nIHJhbmdlIHRvIGVuY29tcGFzcyBhcyBtdWNoIG9mIHRoZQorICAg
ICAgICAvLyBmdWxsIHNlbnRlbmNlIGFzIHdlIGNhbiwgcmVzcGVjdGluZyBib3VuZGFyaWVzIHdo
ZXJlIHNwZWxsY2hlY2tpbmcgaXMgZGlzYWJsZWQuCisgICAgICAgIGZ1bGxTZW50ZW5jZVJhbmdl
LT5vd25lckRvY3VtZW50KCkubWFya2VycygpLnJlbW92ZU1hcmtlcnMoZnVsbFNlbnRlbmNlUmFu
Z2UuZ2V0KCksIERvY3VtZW50TWFya2VyOjpHcmFtbWFyKTsKKyAgICAgICAgc3BlbGxDaGVja2lu
Z1JhbmdlLT5vd25lckRvY3VtZW50KCkubWFya2VycygpLnJlbW92ZU1hcmtlcnMoc3BlbGxDaGVj
a2luZ1JhbmdlLmdldCgpLCBEb2N1bWVudE1hcmtlcjo6U3BlbGxpbmcpOworICAgICAgICBtYXJr
QWxsTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hckluUmFuZ2VzKHRleHRDaGVja2luZ09wdGlvbnMs
IHNwZWxsQ2hlY2tpbmdSYW5nZS5nZXQoKSwgZnVsbFNlbnRlbmNlUmFuZ2UuZ2V0KCkpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBk
MDU5MTA4ZjA2ODA3YWI5Mjc4YjM3ZDMyMjQxYjc0Y2M5YzE4NWEwLi45M2E3NDYzNDY0ZTBlOTlk
Y2ViODAxY2U1NWZmZDEwZDdlOGE3YTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgK
QEAgLTI4Niw2ICsyODYsMTQgQEAgcHVibGljOgogCiAgICAgdm9pZCB1cGRhdGVFZGl0b3JVSU5v
d0lmU2NoZWR1bGVkKCk7CiAKKyAgICBib29sIHNlbnRlbmNlUmV0cm9Db3JyZWN0aW9uRW5hYmxl
ZCgpIGNvbnN0CisgICAgeworI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDE0MDAKKyAgICAgICAgcmV0dXJuIHRydWU7CisjZWxzZQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKyAgICB9CiAgICAgYm9vbCBoYXNTcGVsbGluZ01h
cmtlcihpbnQgZnJvbSwgaW50IGxlbmd0aCk7CiAgICAgYm9vbCBoYXNHcmFtbWFyTWFya2VyKGlu
dCBmcm9tLCBpbnQgbGVuZ3RoKTsKICAgICBib29sIGhhc0F1dG9jb3JyZWN0ZWRNYXJrZXIoaW50
IGZyb20sIGludCBsZW5ndGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4
IDU0MDkxYWQwMDNmYzFiNzE2NzUzNDJkNTYxMzFiYTZiY2Q5ODlhZDUuLjQwNzNhMDQ4MjBkZjU2
N2I5ZjYzZGNmZDJjZmUyNGVjZTk1OGNlYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwKQEAgLTI1OCw2ICsyNTgsNyBAQCBlbnVtIEV2ZW50VGhyb3R0bGluZ0JlaGF2aW9yIHsK
IAogICAgIHZvaWQgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwogCisgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGJvb2xlYW4gc2VudGVuY2VSZXRyb0NvcnJlY3Rpb25FbmFibGVkOwogICAg
IGJvb2xlYW4gaGFzU3BlbGxpbmdNYXJrZXIobG9uZyBmcm9tLCBsb25nIGxlbmd0aCk7CiAgICAg
Ym9vbGVhbiBoYXNHcmFtbWFyTWFya2VyKGxvbmcgZnJvbSwgbG9uZyBsZW5ndGgpOwogICAgIGJv
b2xlYW4gaGFzQXV0b2NvcnJlY3RlZE1hcmtlcihsb25nIGZyb20sIGxvbmcgbGVuZ3RoKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCAwNDVlNTRmZjEwZTBhMzMxZjdiZDQyYTFkOTJiMDg2OGQ0ZjNhNmJkLi5hN2EwOTY3YmRi
NWM3NjYzYWJiY2FiOTcyZWJkOWVkYmViNDViNjk5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIw
MTgtMDYtMDUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAg
ICAgW21hY09TXSBTcGVsbGluZyBlcnJvcnMgaW4gdGhlIG1pZGRsZSBvZiBhbiBpbnNlcnRlZCBw
YXJhZ3JhcGggYXJlIG5vdCBkaXNwbGF5ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4NTU4NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzg2NzYw
ODE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIEFkZHMg
MiBuZXcgc3BlbGxjaGVja2luZyB0ZXN0cywgYW5kIHJlZmFjdG9ycyBzb21lIGV4aXN0aW5nIHRl
c3RzLgorCisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9ncmFtbWFyLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL2dyYW1tYXIuaHRtbDoKKyAgICAgICAgKiBlZGl0
aW5nL3NwZWxsaW5nL21hcmtlcnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVkaXRpbmcvc3Bl
bGxpbmcvbWFya2Vycy5odG1sOgorCisgICAgICAgIFR3ZWFrZWQgc28gdGhhdCB0aGVzZSB0ZXN0
cyBwYXNzIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBzZW50ZW5jZSByZXRybyBjb3JyZWN0aW9uIGlz
IGVuYWJsZWQgb3IgZGlzYWJsZWQuCisKKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3JldHJv
LWNvcnJlY3Rpb24tc3BlbGxpbmctbWFya2Vycy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGVkaXRpbmcvc3BlbGxpbmcvcmV0cm8tY29ycmVjdGlvbi1zcGVsbGluZy1tYXJrZXJzLmh0
bWw6IEFkZGVkLgorCisgICAgICAgIFRlc3RzIHRoYXQgdHlwaW5nIGF0IHRoZSBlbmQgb2YgYSBz
ZW50ZW5jZSB3aWxsIG1hcmsgb3RoZXIgcGFydHMgb2YgdGhlIHNlbnRlbmNlIGFzIG1pc3NwZWxs
aW5ncywgaWYgcmV0cm8KKyAgICAgICAgc2VudGVuY2UgY29ycmVjdGlvbiBpcyBlbmFibGVkLgor
CisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1jaGFuZ2VkLXRleHQtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctY2hhbmdlZC10ZXh0
Lmh0bWw6CisKKyAgICAgICAgVHdlYWtlZCB0byBjb3JyZWN0bHkgd2FpdCBmb3IgdGhlIG1hcmtl
ciByYW5nZSB0byBiZWNvbWUgdGhlIGV4cGVjdGVkIHZhbHVlLgorCisgICAgICAgICogZWRpdGlu
Zy9zcGVsbGluZy9zcGVsbGluZy1tYXJrZXJzLWFmdGVyLXBhc3Rpbmctc2VudGVuY2UtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLW1hcmtl
cnMtYWZ0ZXItcGFzdGluZy1zZW50ZW5jZS5odG1sOiBBZGRlZC4KKworICAgICAgICBUZXN0cyB0
aGF0IGFmdGVyIHBhc3RpbmcgYSBzZW50ZW5jZSB3aXRoIG1pc3NwZWxsZWQgd29yZHMsIHRob3Nl
IG1pc3NwZWxsZWQgd29yZHMgd2lsbCBiZSBtYXJrZWQgYXMgbWlzc3BlbGxpbmdzLgorCisgICAg
ICAgICogcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0v
bWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvVGVz
dEV4cGVjdGF0aW9uczoKKwogMjAxOC0wNi0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CiAKICAgICAgICAgU2VydmljZVdvcmtlciByZWdpc3RyYXRpb24gc2hvdWxkIHN0b3Jl
IGFueSBzY3JpcHQgZmV0Y2hlZCB0aHJvdWdoIGltcG9ydFNjcmlwdHMKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvZ3JhbW1hci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3NwZWxsaW5nL2dyYW1tYXItZXhwZWN0ZWQudHh0CmluZGV4IDQ1YWM3MjE3
NWZkNmVhNGNiOGNiNjZmYTg2YTU4YmI2YzM4NTRkNzEuLmZkYmI3M2Q1MTJmN2U1MDJmMWJmOTY5
NjY1MjVlN2YzN2I2MTA1ZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxp
bmcvZ3JhbW1hci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGlu
Zy9ncmFtbWFyLWV4cGVjdGVkLnR4dApAQCAtMyw3ICszLDcgQEAgVGhpcyB0ZXN0cyB3aGV0aGVy
IHRoZSBncmFtbWF0aWNhbGx5LWluY29ycmVjdCBwaHJhc2UgJ0kgaGF2ZSBhIGlzc3VlJyBoYXMg
Z3JhbW0KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGludGVybmFscy5oYXNH
cmFtbWFyTWFya2VyKDcsIDEpIGJlY2FtZSB0cnVlCitQQVNTIGhhc0V4cGVjdGVkU3BlbGxpbmdP
ckdyYW1tYXJNYXJrZXJJblJhbmdlKDcsIDEpIGJlY2FtZSB0cnVlCiBQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvc3BlbGxpbmcvZ3JhbW1hci5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVs
bGluZy9ncmFtbWFyLmh0bWwKaW5kZXggZjU4M2I2YjI5ODViOWNiMWQyNGQxZjE0Y2FjNzAwMTZl
YTM4ZmE1MS4uOTIzZTQxZmJkN2I2M2Y2ODExOTEwNmNkZmI3NzY4ZTk2ZDg4NTc2NSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9ncmFtbWFyLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9ncmFtbWFyLmh0bWwKQEAgLTExLDEyICsxMSwxOCBA
QAogPHNjcmlwdCBzcmM9Li4vZWRpdGluZy5qcyBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0i
dGV4dC9KYXZhU2NyaXB0IiA+PC9zY3JpcHQ+CiAKIDxzY3JpcHQ+CitmdW5jdGlvbiBoYXNFeHBl
Y3RlZFNwZWxsaW5nT3JHcmFtbWFyTWFya2VySW5SYW5nZShmcm9tLCBsZW5ndGgpIHsKKyAgICBp
ZiAoaW50ZXJuYWxzLnNlbnRlbmNlUmV0cm9Db3JyZWN0aW9uRW5hYmxlZCkKKyAgICAgICAgcmV0
dXJuIGludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcihmcm9tLCBsZW5ndGgpOworICAgIHJldHVy
biBpbnRlcm5hbHMuaGFzR3JhbW1hck1hcmtlcihmcm9tLCBsZW5ndGgpOworfQorCiBmdW5jdGlv
biBlZGl0aW5nVGVzdCgpIHsKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicm9vdCIpLmZv
Y3VzKCk7CiAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkluc2VydFRleHQiLCBmYWxzZSwgIkkg
aGF2ZSBhIGlzc3VlLiIpOwogCiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgICAg
c2hvdWxkQmVjb21lRXF1YWwoJ2ludGVybmFscy5oYXNHcmFtbWFyTWFya2VyKDcsIDEpJywgJ3Ry
dWUnLCBmdW5jdGlvbigpIHsKKyAgICAgICAgc2hvdWxkQmVjb21lRXF1YWwoJ2hhc0V4cGVjdGVk
U3BlbGxpbmdPckdyYW1tYXJNYXJrZXJJblJhbmdlKDcsIDEpJywgJ3RydWUnLCBmdW5jdGlvbigp
IHsKICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyb290Iikuc3R5bGUuZGlz
cGxheSA9ICJub25lIjsKICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICB9KTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMtZXhwZWN0ZWQudHh0
CmluZGV4IGMxYmMxNmFlMGY0ZjNhMGY1NjA5YTUyYTY4MGExODRhZWQ1M2Y4N2QuLjc5MWM5ZGU4
MTI1YTIwYTcxNzIxMjEyYjc3ZjIwN2YzYzQ2MmQ0ZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zcGVsbGluZy9tYXJrZXJzLWV4cGVjdGVkLnR4dApAQCAtMywyNiArMywyNiBAQCBU
ZXN0cyBzcGVsbGluZyBhbmQgZ3JhbW1hciBtYXJrZXJzIGZvciBtaXNzcGVsbGluZ3MuCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotQ2hlY2tpbmcgZ3JhbW1hciBpc3N1ZSBvbiAnSSBo
YXZlIGEgaXNzdWUuJworQ2hlY2tpbmcgZm9yIGlzc3VlIG9uICdJIGhhdmUgYSBpc3N1ZS4nCiBQ
QVNTIGludGVybmFscy5tYXJrZXJSYW5nZUZvck5vZGUoZWxlbWVudC5maXJzdENoaWxkLCBuZXh0
TWlzc3BlbGxpbmdEYXRhLm1hcmtlciwgMCkgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKIFBB
U1MgcmFuZ2UudG9TdHJpbmcoKSBpcyAiYSIKIAotQ2hlY2tpbmcgc3BlbGxpbmcgaXNzdWUgb24g
J3p6LicKK0NoZWNraW5nIGZvciBpc3N1ZSBvbiAnenouJwogUEFTUyBpbnRlcm5hbHMubWFya2Vy
UmFuZ2VGb3JOb2RlKGVsZW1lbnQuZmlyc3RDaGlsZCwgbmV4dE1pc3NwZWxsaW5nRGF0YS5tYXJr
ZXIsIDApIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCiBQQVNTIHJhbmdlLnRvU3RyaW5nKCkg
aXMgInp6IgogCi1DaGVja2luZyBzcGVsbGluZyBpc3N1ZSBvbiAnb3JhbmdlLHp6LGFwcGxlLicK
K0NoZWNraW5nIGZvciBpc3N1ZSBvbiAnb3JhbmdlLHp6LGFwcGxlLicKIFBBU1MgaW50ZXJuYWxz
Lm1hcmtlclJhbmdlRm9yTm9kZShlbGVtZW50LmZpcnN0Q2hpbGQsIG5leHRNaXNzcGVsbGluZ0Rh
dGEubWFya2VyLCAwKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFTUyByYW5nZS50b1N0
cmluZygpIGlzICJ6eiIKK1BBU1MgcmFuZ2UudG9TdHJpbmcoKSBpcyAib3JhbmdlLHp6LGFwcGxl
LiIKIAotQ2hlY2tpbmcgZ3JhbW1hciBpc3N1ZSBvbiAnb3JhbmdlLHp6LGFwcGxlLicKK0NoZWNr
aW5nIGZvciBpc3N1ZSBvbiAnb3JhbmdlLHp6LGFwcGxlLicKIFBBU1MgaW50ZXJuYWxzLm1hcmtl
clJhbmdlRm9yTm9kZShlbGVtZW50LmZpcnN0Q2hpbGQsIG5leHRNaXNzcGVsbGluZ0RhdGEubWFy
a2VyLCAwKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFTUyByYW5nZS50b1N0cmluZygp
IGlzICJvcmFuZ2UsenosYXBwbGUuIgorUEFTUyByYW5nZS50b1N0cmluZygpIGlzICJvcmFuZ2Us
enosYXBwbGUiCiAKLUNoZWNraW5nIHNwZWxsaW5nIGlzc3VlIG9uICdJIGhhdmUgYSBpc3N1ZS4n
CitDaGVja2luZyBmb3Igbm8gb3RoZXIgaXNzdWVzIG9uICdJIGhhdmUgYSBpc3N1ZS4nCiBQQVNT
IGludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUoZWxlbWVudC5maXJzdENoaWxkLCBvcHBvc2l0
ZU1hcmtlcikgYmVjYW1lIDAKIAotQ2hlY2tpbmcgZ3JhbW1hciBpc3N1ZSBvbiAnenouJworQ2hl
Y2tpbmcgZm9yIG5vIG90aGVyIGlzc3VlcyBvbiAnenouJwogUEFTUyBpbnRlcm5hbHMubWFya2Vy
Q291bnRGb3JOb2RlKGVsZW1lbnQuZmlyc3RDaGlsZCwgb3Bwb3NpdGVNYXJrZXIpIGJlY2FtZSAw
CiAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2VkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9z
cGVsbGluZy9tYXJrZXJzLmh0bWwKaW5kZXggMGE3N2Q2ZjFmZWUwYTI2ZTVjMzY3M2RmODRkZDA0
ZDY5NDJkNTA1MC4uOTRiNWNiNzk4OWM5NmYzYjM2N2Q2MzkzNTBmNzRmN2QxN2U3ZTNlYyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9tYXJrZXJzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9tYXJrZXJzLmh0bWwKQEAgLTUyLDE1ICs1Miwx
NiBAQCB2YXIgZWxlbWVudFdpdGhHcmFtbWFyQW5kU3BlbGxpbmdJc3N1ZSA9IGNyZWF0ZUVkaXRh
YmxlRWxlbWVudChjb250YWluZXIpOwogdHlwZVRleHQoZWxlbWVudFdpdGhHcmFtbWFyQW5kU3Bl
bGxpbmdJc3N1ZSwgJ29yYW5nZSx6eixhcHBsZS4nKTsKIAogdmFyIG1pc3NwZWxsaW5ncyA9IFsK
LSAgICB7IG1hcmtlcjonZ3JhbW1hcicsICBpc3N1ZTonYScgfSwKLSAgICB7IG1hcmtlcjonc3Bl
bGxpbmcnLCBpc3N1ZTonenonIH0sCi0gICAgeyBtYXJrZXI6J2dyYW1tYXInLCAgaXNzdWU6J29y
YW5nZSx6eixhcHBsZS4nIH0KKyAgICB7IG1hcmtlcjogaW50ZXJuYWxzLnNlbnRlbmNlUmV0cm9D
b3JyZWN0aW9uRW5hYmxlZCA/ICdzcGVsbGluZycgOiAnZ3JhbW1hcicsICBpc3N1ZTogJ2EnIH0s
CisgICAgeyBtYXJrZXI6ICdzcGVsbGluZycsIGlzc3VlOiAnenonIH0sCisgICAgeyBtYXJrZXI6
ICdncmFtbWFyJywgIGlzc3VlOiAnb3JhbmdlLHp6LGFwcGxlLicgfSwKKyAgICB7IG1hcmtlcjog
J3NwZWxsaW5nJywgIGlzc3VlOiAnb3JhbmdlLHp6LGFwcGxlJyB9LAogXTsKIAogdmFyIHRlc3Rz
ID0gWwogICAgIGZ1bmN0aW9uKCkgeyB2ZXJpZnlEZXNpcmVkTWFya2VycyhlbGVtZW50V2l0aEdy
YW1tYXJJc3N1ZSwgbWlzc3BlbGxpbmdzLnNsaWNlKDAsIDEpKSB9LAogICAgIGZ1bmN0aW9uKCkg
eyB2ZXJpZnlEZXNpcmVkTWFya2VycyhlbGVtZW50V2l0aFNwZWxsaW5nSXNzdWUsIG1pc3NwZWxs
aW5ncy5zbGljZSgxLCAyKSkgfSwKLSAgICBmdW5jdGlvbigpIHsgdmVyaWZ5RGVzaXJlZE1hcmtl
cnMoZWxlbWVudFdpdGhHcmFtbWFyQW5kU3BlbGxpbmdJc3N1ZSwgbWlzc3BlbGxpbmdzLnNsaWNl
KDEsIDMpKSB9LAorICAgIGZ1bmN0aW9uKCkgeyB2ZXJpZnlEZXNpcmVkTWFya2VycyhlbGVtZW50
V2l0aEdyYW1tYXJBbmRTcGVsbGluZ0lzc3VlLCBtaXNzcGVsbGluZ3Muc2xpY2UoMiwgNCkpIH0s
CiAKICAgICAvLyBUaG9zZSBleHBlY3QgdG8gaGF2ZSBvbmx5IG9uZSBraW5kIG9mIG1hcmtlcnMg
ZWl0aGVyIHNwZWxsaW5nIG9yIGdyYW1tYXIuCiAgICAgZnVuY3Rpb24oKSB7IHZlcmlmeVVuZXhw
ZWN0ZWRNYXJrZXJzKGVsZW1lbnRXaXRoR3JhbW1hcklzc3VlLCBtaXNzcGVsbGluZ3Muc2xpY2Uo
MCwgMSkpIH0sCkBAIC04MCw3ICs4MSw3IEBAIGZ1bmN0aW9uIHZlcmlmeURlc2lyZWRNYXJrZXJz
KGUsIG1pc3NwZWxsaW5ncykKICAgICBpZiAoIW5leHRNaXNzcGVsbGluZ0RhdGEpCiAgICAgICAg
IHJldHVybiBkb25lKCk7CiAKLSAgICBkZWJ1ZygiQ2hlY2tpbmcgIiArIG5leHRNaXNzcGVsbGlu
Z0RhdGEubWFya2VyICsgIiBpc3N1ZSBvbiAnIiArIGVsZW1lbnQuZmlyc3RDaGlsZC5ub2RlVmFs
dWUgKyAiJyIpOworICAgIGRlYnVnKCJDaGVja2luZyBmb3IgaXNzdWUgb24gJyIgKyBlbGVtZW50
LmZpcnN0Q2hpbGQubm9kZVZhbHVlICsgIiciKTsKIAogICAgIHNob3VsZEJlY29tZURpZmZlcmVu
dCgnaW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZShlbGVtZW50LmZpcnN0Q2hpbGQsIG5leHRN
aXNzcGVsbGluZ0RhdGEubWFya2VyLCAwKScsICJudWxsIiwgZnVuY3Rpb24oKSB7CiAgICAgICAg
IHJhbmdlID0gaW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZShlbGVtZW50LmZpcnN0Q2hpbGQs
IG5leHRNaXNzcGVsbGluZ0RhdGEubWFya2VyLCAwKTsKQEAgLTEwMSw3ICsxMDIsNyBAQCBmdW5j
dGlvbiB2ZXJpZnlVbmV4cGVjdGVkTWFya2VycyhlLCBtaXNzcGVsbGluZ3MpCiAgICAgZWxzZSBp
ZiAobmV4dE1pc3NwZWxsaW5nRGF0YS5tYXJrZXIgPT0gJ3NwZWxsaW5nJykKICAgICAgICAgb3Bw
b3NpdGVNYXJrZXIgPSAnZ3JhbW1hcic7CiAKLSAgICBkZWJ1ZygiQ2hlY2tpbmcgIiArIG9wcG9z
aXRlTWFya2VyICsgIiBpc3N1ZSBvbiAnIiArIGVsZW1lbnQuZmlyc3RDaGlsZC5ub2RlVmFsdWUg
KyAiJyIpOworICAgIGRlYnVnKCJDaGVja2luZyBmb3Igbm8gb3RoZXIgaXNzdWVzIG9uICciICsg
ZWxlbWVudC5maXJzdENoaWxkLm5vZGVWYWx1ZSArICInIik7CiAKICAgICBzaG91bGRCZWNvbWVF
cXVhbCgnaW50ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9kZShlbGVtZW50LmZpcnN0Q2hpbGQsIG9w
cG9zaXRlTWFya2VyKScsICcwJywgZnVuY3Rpb24oKSB7CiAgICAgICAgIGRlYnVnKCIiKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvcmV0cm8tY29ycmVjdGlvbi1z
cGVsbGluZy1tYXJrZXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxp
bmcvcmV0cm8tY29ycmVjdGlvbi1zcGVsbGluZy1tYXJrZXJzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43M2NjNWNkNWQ0NTNkYTdiNzViMTRlMGZiY2UyMDQ5YjY1OTdjODg0Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9yZXRyby1jb3JyZWN0aW9uLXNw
ZWxsaW5nLW1hcmtlcnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorUEFTUyBpbnRlcm5h
bHMuaGFzU3BlbGxpbmdNYXJrZXIoNSwgNCkgYmVjYW1lIHRydWUKK1BBU1MgIWludGVybmFscy5z
ZW50ZW5jZVJldHJvQ29ycmVjdGlvbkVuYWJsZWQgfHwgaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFy
a2VyKDEwLCAyKSBpcyB0cnVlCitQQVNTICFpbnRlcm5hbHMuc2VudGVuY2VSZXRyb0NvcnJlY3Rp
b25FbmFibGVkIHx8IGludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcigxOCwgMykgaXMgdHJ1ZQor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitJdCdzIG11
aGMgdG8gbGF0ZSB0b28gZmluaXNoIHRoaXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NwZWxsaW5nL3JldHJvLWNvcnJlY3Rpb24tc3BlbGxpbmctbWFya2Vycy5odG1sIGIvTGF5
b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9yZXRyby1jb3JyZWN0aW9uLXNwZWxsaW5nLW1hcmtl
cnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41YzlkNmViMjI4NjBlMTEyMDJjOThlNjM5ZjQ2OTZjNWNlZWMw
ODhjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9yZXRy
by1jb3JyZWN0aW9uLXNwZWxsaW5nLW1hcmtlcnMuaHRtbApAQCAtMCwwICsxLDQ0IEBACis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZWRpdGluZy5qcyI+PC9zY3JpcHQ+CisKKzxzY3Jp
cHQ+CitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQodHJ1ZSk7CisgICAgICAgIGludGVybmFscy5zZXR0
aW5ncy5zZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCh0cnVlKTsKKyAgICAgICAg
aW50ZXJuYWxzLnNldEF1dG9tYXRpY1RleHRSZXBsYWNlbWVudEVuYWJsZWQoZmFsc2UpOworICAg
ICAgICBpbnRlcm5hbHMuc2V0QXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZChmYWxz
ZSk7CisgICAgfQorCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVkaXRvciIpLmZvY3Vz
KCk7CisgICAgZm9yIChjb25zdCBjaGFyYWN0ZXIgb2YgIkl0J3MgbXVoYyB0byBsYXRlIHRvbyBm
aW5pc2ggdGhpcy4iKQorICAgICAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZChjaGFyYWN0ZXIpOwor
CisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiZGVzY3JpcHRpb24iKS5pbm5lckhUTUwgPSBgVG8gbWFudWFsbHkgdGVzdCwgdmVy
aWZ5IHRoYXQgdGhlcmUgYXJlIGNvcnJlY3Rpb24gbWFya2VycworICAgICAgICAgICAgYmVsb3cg
PHN0cm9uZz5tdWhjPC9zdHJvbmc+IGFzIHdlbGwgYXMgPHN0cm9uZz50bzwvc3Ryb25nPiBhbmQg
PHN0cm9uZz50b288L3N0cm9uZz4gb24gbWFjT1MgTW9qYXZlLmA7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBzaG91bGRCZWNvbWVFcXVhbCgiaW50ZXJuYWxzLmhhc1NwZWxsaW5nTWFy
a2VyKDUsIDQpIiwgInRydWUiLCAoKSA9PiB7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgiIWludGVy
bmFscy5zZW50ZW5jZVJldHJvQ29ycmVjdGlvbkVuYWJsZWQgfHwgaW50ZXJuYWxzLmhhc1NwZWxs
aW5nTWFya2VyKDEwLCAyKSIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgiIWludGVy
bmFscy5zZW50ZW5jZVJldHJvQ29ycmVjdGlvbkVuYWJsZWQgfHwgaW50ZXJuYWxzLmhhc1NwZWxs
aW5nTWFya2VyKDE4LCAzKSIsICJ0cnVlIik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
IH0pOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5PgorICAgIDxkaXYgaWQ9ImRlc2Ny
aXB0aW9uIj48L2Rpdj4KKyAgICA8ZGl2IGNvbnRlbnRlZGl0YWJsZSBzdHlsZT0ibWFyZ2luLWJv
dHRvbTogMWVtOyBib3JkZXI6IDFweCBvcmFuZ2UgZGFzaGVkOyIgaWQ9ImVkaXRvciI+PC9kaXY+
CisgICAgPHNjcmlwdD4KKyAgICAgICAgcnVuVGVzdCgpOworICAgIDwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcv
c3BlbGxpbmctY2hhbmdlZC10ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcv
c3BlbGxpbmcvc3BlbGxpbmctY2hhbmdlZC10ZXh0LWV4cGVjdGVkLnR4dAppbmRleCAzNTJlMzI5
ZmM4YWViZDEzM2QzNGRlYmVmYWYyOTcyNDBlNTJkYjAyLi42MzcwMzE3Mjg0YTE4MzdkYmU0NjUy
ZmZlNGY0YjJiYjYyNTZlMWFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxs
aW5nL3NwZWxsaW5nLWNoYW5nZWQtdGV4dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1jaGFuZ2VkLXRleHQtZXhwZWN0ZWQudHh0CkBAIC01
LDcgKzUsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBQQVNTIGludGVybmFscy5tYXJr
ZXJDb3VudEZvck5vZGUoZGVzdGluYXRpb24uY2hpbGROb2Rlc1swXSwgInNwZWxsaW5nIikgYmVj
YW1lIGRpZmZlcmVudCBmcm9tIDAKIFBBU1Mgd2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5n
KCkgaXMgIiBJcyBpdCBicm9rZW4/IgotUEFTUyBzcGVsbGluZ01hcmtlclJhbmdlLnRvU3RyaW5n
KCkgYmVjYW1lICJ3ZWxsY29tZSIKK1BBU1MgbWlzc3BlbGxpbmdTdHJpbmcoKSBiZWNhbWUgIndl
bGxjb21lIgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWNoYW5n
ZWQtdGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1jaGFu
Z2VkLXRleHQuaHRtbAppbmRleCBiNzA3OGQzMTJiNWFjM2Y3OTgwNzlkZDQ1MGI2MzZiNTgyZTlh
ZTU1Li5hZTY3OWZhMDNkZDg5NTY3NTlhNDljMmU3M2VkYzFhMDIxZTM5YjNhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWNoYW5nZWQtdGV4dC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctY2hhbmdlZC10ZXh0
Lmh0bWwKQEAgLTE2LDYgKzE2LDEwIEBAIGRlc2NyaXB0aW9uKCJXZWJLaXQgc2hvdWxkIG5vdCBj
cmFzaCBhZnRlciB0aGUgdGV4dCBoYXMgY2hhbmdlZCBhbmQgcmVzdWx0cyBhcmUKICAgICArICIg
VGhlIHRlc3Qgc3VjY2VlZHMgd2hlbiBXZWJLaXQgZG9lcyBub3QgY3Jhc2ggYW5kICd3ZWxsY29t
ZScgaGFzIHNwZWxsaW5nIG1hcmtlci4iKTsKIAogaW5pdFNwZWxsVGVzdCgiZGVzdGluYXRpb24i
LCAiU3BlbGwgd2VsbGNvbWUuIElzIGl0IGJyb2tlbj8iLCBmdW5jdGlvbih0ZXh0Tm9kZSkgewor
ICAgIG1pc3NwZWxsaW5nU3RyaW5nID0gKCkgPT4geworICAgICAgICBjb25zdCByYW5nZSA9IGlu
dGVybmFscy5tYXJrZXJSYW5nZUZvck5vZGUodGV4dE5vZGUsICJzcGVsbGluZyIsIDApOworICAg
ICAgICByZXR1cm4gcmFuZ2UgPyByYW5nZS50b1N0cmluZygpIDogbnVsbDsKKyAgICB9OwogICAg
IC8vIFNlbGVjdCB0aGUgdGV4dCAiSXMgaXQgYnJva2VuPyIuCiAgICAgdmFyIGRlbGV0ZVJhbmdl
ID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKICAgICBkZWxldGVSYW5nZS5zZXRTdGFydCh0ZXh0
Tm9kZSwgMTUpOwpAQCAtMjUsOSArMjksNyBAQCBpbml0U3BlbGxUZXN0KCJkZXN0aW5hdGlvbiIs
ICJTcGVsbCB3ZWxsY29tZS4gSXMgaXQgYnJva2VuPyIsIGZ1bmN0aW9uKHRleHROb2RlKQogICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCki
LCAiIElzIGl0IGJyb2tlbj8iKTsKICAgICAvLyBEZWwga2V5IHRvIGRlbGV0ZSB0aGUgdGV4dCAi
SXMgaXQgYnJva2VuPyIuCiAgICAgZXZlbnRTZW5kZXIua2V5RG93bihTdHJpbmcuZnJvbUNoYXJD
b2RlKDB4MDA3RiksIG51bGwpOwotCi0gICAgc3BlbGxpbmdNYXJrZXJSYW5nZSA9IGludGVybmFs
cy5tYXJrZXJSYW5nZUZvck5vZGUodGV4dE5vZGUsICJzcGVsbGluZyIsIDApOwotICAgIHNob3Vs
ZEJlY29tZUVxdWFsVG9TdHJpbmcoInNwZWxsaW5nTWFya2VyUmFuZ2UudG9TdHJpbmcoKSIsICJ3
ZWxsY29tZSIsIGZ1bmN0aW9uKCkgeworICAgIHNob3VsZEJlY29tZUVxdWFsVG9TdHJpbmcoIm1p
c3NwZWxsaW5nU3RyaW5nKCkiLCAid2VsbGNvbWUiLCBmdW5jdGlvbigpIHsKICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlc3RpbmF0aW9uIikuaW5uZXJIVE1MID0gIiI7CiAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRp
dGluZy9zcGVsbGluZy9zcGVsbGluZy1tYXJrZXJzLWFmdGVyLXBhc3Rpbmctc2VudGVuY2UtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1tYXJrZXJz
LWFmdGVyLXBhc3Rpbmctc2VudGVuY2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2MzMxMmNi
ODMxOWQ4M2M2MWFhNjNmZjNlNWExMzMzOTJhNDlkM2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLW1hcmtlcnMtYWZ0ZXItcGFzdGluZy1z
ZW50ZW5jZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitQQVNTIGludGVybmFscy5oYXNT
cGVsbGluZ01hcmtlcigwLCA1KSBiZWNhbWUgdHJ1ZQorUEFTUyBpbnRlcm5hbHMuaGFzU3BlbGxp
bmdNYXJrZXIoNiwgNSkgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCitIZWxvbCB3b3JkbCB0aGlzIGlzIGEgdGVzdAorSGVsb2wgd29yZGwg
dGhpcyBpcyBhIHRlc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcv
c3BlbGxpbmctbWFya2Vycy1hZnRlci1wYXN0aW5nLXNlbnRlbmNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLW1hcmtlcnMtYWZ0ZXItcGFzdGluZy1zZW50ZW5j
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmIwMmQ4NDM0ZTgzNDFjZGI1NTRhYzI1MjljNzQ5NDA5YTE2MjZk
ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxs
aW5nLW1hcmtlcnMtYWZ0ZXItcGFzdGluZy1zZW50ZW5jZS5odG1sCkBAIC0wLDAgKzEsNDIgQEAK
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9lZGl0aW5nLmpzIj48L3NjcmlwdD4KKwor
PHNjcmlwdD4KK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7
CisgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChzb3VyY2UsIDAsIHNvdXJjZSwg
MSk7CisKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLmlubmVySFRNTCA9IGBUbyBtYW51YWxseSB0ZXN0
LCBzZWxlY3QgdGhlIHRleHQgYmVsb3cgYW5kIHBhc3RlIGludG8gdGhlCisgICAgICAgICAgICBl
ZGl0YWJsZSBhcmVhLiBUaGVyZSBzaG91bGQgYmUgbWlzc3BlbGxpbmcgbWFya2VycyBiZWxvdyBi
b3RoIHdvcmRzLmA7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0VW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQodHJ1ZSk7CisgICAg
aW50ZXJuYWxzLnNldEF1dG9tYXRpY1RleHRSZXBsYWNlbWVudEVuYWJsZWQoZmFsc2UpOworICAg
IGludGVybmFscy5zZXRBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkKGZhbHNlKTsK
KworICAgIGNvcHlDb21tYW5kKCk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVkaXRv
ciIpLmZvY3VzKCk7CisgICAgcGFzdGVDb21tYW5kKCk7CisgICAgc2hvdWxkQmVjb21lRXF1YWwo
ImludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcigwLCA1KSIsICJ0cnVlIiwgKCkgPT4geworICAg
ICAgICBzaG91bGRCZVRydWUoImludGVybmFscy5oYXNTcGVsbGluZ01hcmtlcig2LCA1KSIsICJ0
cnVlIik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOworfQorPC9zY3JpcHQ+Cis8
L2hlYWQ+CisKKzxib2R5PgorICAgIDxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKyAgICA8
ZGl2IGlkPSJzb3VyY2UiPkhlbG9sIHdvcmRsIHRoaXMgaXMgYSB0ZXN0PC9kaXY+CisgICAgPGRp
diBjb250ZW50ZWRpdGFibGUgc3R5bGU9Im1hcmdpbi1ib3R0b206IDFlbTsgYm9yZGVyOiAxcHgg
b3JhbmdlIGRhc2hlZDsiIGlkPSJlZGl0b3IiPjwvZGl2PgorICAgIDxzY3JpcHQ+CisgICAgICAg
IHJ1blRlc3QoKTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCA1ODdhNzFiYjdjMWE2OTIyMTM4MDkyMDcxZGEyZDc4ODE0OTg5MWZhLi41NWQz
OWYxMzI3MmY1NGM3YmJkZWFjOTg0NzdlNDMwYzcyNTcxM2YwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtOTksNyArOTksOSBAQCBmYXN0L2Zvcm1zL2Zp
bGUvZmlsZS1pbnB1dC1jYXB0dXJlLmh0bWwKIGZhc3QvY3NzL2RyYWdnYWJsZS1yZWdpb24tcGFy
c2VyLmh0bWwKIAogIyBTcGVsbGluZyBhbmQgZ3JhbW1hciBtYXJrZXJzIGFyZSBub3Qgc3VwcG9y
dGVkCitlZGl0aW5nL3NwZWxsaW5nL3JldHJvLWNvcnJlY3Rpb24tc3BlbGxpbmctbWFya2Vycy5o
dG1sIFsgV29udEZpeCBdCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLW1hcmtlci1pbmNsdWRl
cy1oeXBoZW4uaHRtbCBbIFdvbnRGaXggXQorZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1tYXJr
ZXJzLWFmdGVyLXBhc3Rpbmctc2VudGVuY2UuaHRtbCBbIFdvbnRGaXggXQogZWRpdGluZy9zcGVs
bGluZy9zcGVsbGluZy1tYXJrZXJzLWluLW92ZXJsYXBwaW5nLWxpbmVzLmh0bWwgWyBXb250Rml4
IF0KIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctbWFya2Vycy1pbi1vdmVybGFwcGluZy1saW5l
cy1sYXJnZS1mb250Lmh0bWwgWyBXb250Rml4IF0KIGZhc3Qvd3JpdGluZy1tb2RlL2VuZ2xpc2gt
YnQtdGV4dC13aXRoLXNwZWxsaW5nLW1hcmtlci5odG1sIFsgV29udEZpeCBdCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMzUxOTk4ODdlZGY1
OTBhNWE5OWM1Nzg0YzczMDI4ZmJkMzU4ODljYy4uZjcyMWIxYzc0NDIzZDc0MWUxOTFlNmVkZTlj
Y2I2OGE2Yjc1MWI5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMzQ4LDcgKzM0OCw2IEBAIHdlYmtpdC5vcmcvYi8xNTg1ODUgd2ViZ2wv
d2ViZ2wtYmFja2luZy1zdG9yZS1zaXplLXVwZGF0ZS5odG1sIFsgUGFzcyBUaW1lb3V0IF0KIAog
IyA8cmRhcjovL3Byb2JsZW0vMjYzOTk1OTg+CiBbIFNpZXJyYSsgXSBlZGl0aW5nL3NwZWxsaW5n
L3NwZWxsY2hlY2stYXN5bmMuaHRtbCBbIEZhaWx1cmUgXQotWyBTaWVycmErIF0gZWRpdGluZy9z
cGVsbGluZy9tYXJrZXJzLmh0bWwgWyBGYWlsdXJlIF0KIFsgU2llcnJhKyBdIGVkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxpbmctdW5pZmllZC1lbXVsYXRpb24uaHRtbCBbIEZhaWx1cmUgXQogCiAjIDxy
ZGFyOi8vcHJvYmxlbS8yNjA1MDkyMz4gVGhlIHJlc3VsdCBpcyBwcm9iYWJseSBzdGlsbCBhIHBh
c3MsIGJ1dCB3ZSBkb24ndCBoYXZlIGEgd2F5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNmIwZGU0MjI0YjFjZjUwMWFkNDZjNTMzMTdjZjY1
Y2ZiOTdmYzdkNi4uZjAwNjRiMGNjY2U0ZjVlZWVjNDE0YjQ0Y2YyMWMzMGFlMGVhNThkYyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTc3
LDYgKzE3Nyw4IEBAIHdlYmtpdC5vcmcvYi8xMDU2MTYgZWRpdGluZy9zcGVsbGluZy9zcGVsbGlu
Zy13aXRoLXB1bmN0dWF0aW9uLXNlbGVjdGlvbi5odG1sCiB3ZWJraXQub3JnL2IvMTA1NjE2IGVk
aXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctd2l0aC13aGl0ZXNwYWNlLXNlbGVjdGlvbi5odG1sCiB3
ZWJraXQub3JnL2IvMTA1NjE2IGVkaXRpbmcvc3BlbGxpbmcvZ3JhbW1hci5odG1sCiB3ZWJraXQu
b3JnL2IvMTA1NjE2IGVkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy5odG1sCit3ZWJraXQub3JnL2Iv
MTA1NjE2IGVkaXRpbmcvc3BlbGxpbmcvcmV0cm8tY29ycmVjdGlvbi1zcGVsbGluZy1tYXJrZXJz
Lmh0bWwKK3dlYmtpdC5vcmcvYi8xMDU2MTYgZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1tYXJr
ZXJzLWFmdGVyLXBhc3Rpbmctc2VudGVuY2UuaHRtbAogd2Via2l0Lm9yZy9iLzEwNTYxNiBlZGl0
aW5nL21hYy9zcGVsbGluZy9hdXRvY29ycmVjdGlvbi1kZWxldGUuaHRtbCBbIEZhaWx1cmUgXQog
d2Via2l0Lm9yZy9iLzEwNTYxNiBlZGl0aW5nL21hYy9zcGVsbGluZy9hdXRvY29ycmVjdGlvbi1y
ZW1vdmluZy11bmRlcmxpbmUtYWZ0ZXItcGFzdGUuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9y
Zy9iLzEwNTYxNiBlZGl0aW5nL21hYy9zcGVsbGluZy9hdXRvY29ycmVjdGlvbi1yZW1vdmluZy11
bmRlcmxpbmUuaHRtbCBbIEZhaWx1cmUgXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>