<?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>227948</bug_id>
          
          <creation_ts>2021-07-14 06:44:07 -0700</creation_ts>
          <short_desc>[Performance test][css-contain] Add test to contain: size layout</short_desc>
          <delta_ts>2021-07-25 06:01:07 -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>CSS</component>
          <version>WebKit Local 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>
          
          <blocked>172026</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="cathiechen">cathiechen</reporter>
          <assigned_to name="cathiechen">cathiechen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jbedard</cc>
    
    <cc>jfernandez</cc>
    
    <cc>rbuis</cc>
    
    <cc>rego</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1776921</commentid>
    <comment_count>0</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-07-14 06:44:07 -0700</bug_when>
    <thetext>To test the scenario to change the content of size and layout containment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777418</commentid>
    <comment_count>1</comment_count>
      <attachid>433649</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-07-15 20:23:45 -0700</bug_when>
    <thetext>Created attachment 433649
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777419</commentid>
    <comment_count>2</comment_count>
      <attachid>433650</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-07-15 20:33:03 -0700</bug_when>
    <thetext>Created attachment 433650
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777459</commentid>
    <comment_count>3</comment_count>
      <attachid>433650</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-07-16 00:53:06 -0700</bug_when>
    <thetext>Comment on attachment 433650
Patch

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

&gt; PerformanceTests/CSS/css-contain/css-contain-change-text.html:1
&gt; +&lt;!DOCTYPE html&gt;

This should be under PerfomanceTests/Layout.

&gt; PerformanceTests/CSS/css-contain/css-contain-change-text.html:70
&gt; +        PerfTestRunner.measureTime({

Please use measureRunsPerSecond instead.

&gt; PerformanceTests/CSS/css-contain/css-contain-change-text.html:75
&gt; +                    PerfTestRunner.forceLayout();

I don&apos;t think we need a helper function like this. Just call getBoundingClientRect() on some node manually instead.

&gt; PerformanceTests/resources/runner.js:62
&gt; +        doc = doc || document;
&gt; +        if (doc.body)
&gt; +            doc.body.offsetHeight;
&gt; +        else if (doc.documentElement)
&gt; +            doc.documentElement.offsetHeight;

Are you copying this code from somewhere else? If so, you need to give the credit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777482</commentid>
    <comment_count>4</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2021-07-16 03:29:10 -0700</bug_when>
    <thetext>Do the performance bots in WebKit run with experimental flags enabled?

If not I&apos;m not sure if it&apos;s really useful to land perf tests for CSS Containment yet, as the bots are not going to notice any optimization based on that.

WDYT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777487</commentid>
    <comment_count>5</comment_count>
      <attachid>433650</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-07-16 03:53:12 -0700</bug_when>
    <thetext>Comment on attachment 433650
Patch

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

Hi Ryosuke,
Thanks for the review!

&gt;&gt; PerformanceTests/CSS/css-contain/css-contain-change-text.html:1
&gt;&gt; +&lt;!DOCTYPE html&gt;
&gt; 
&gt; This should be under PerfomanceTests/Layout.

Done.

&gt;&gt; PerformanceTests/CSS/css-contain/css-contain-change-text.html:70
&gt;&gt; +        PerfTestRunner.measureTime({
&gt; 
&gt; Please use measureRunsPerSecond instead.

Done!

&gt;&gt; PerformanceTests/CSS/css-contain/css-contain-change-text.html:75
&gt;&gt; +                    PerfTestRunner.forceLayout();
&gt; 
&gt; I don&apos;t think we need a helper function like this. Just call getBoundingClientRect() on some node manually instead.

Done!

&gt;&gt; PerformanceTests/resources/runner.js:62
&gt;&gt; +            doc.documentElement.offsetHeight;
&gt; 
&gt; Are you copying this code from somewhere else? If so, you need to give the credit.

Yeah, I copy this and the test from Chromium. I&apos;ll explain it in changelog and cc the reviewers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777518</commentid>
    <comment_count>6</comment_count>
      <attachid>433680</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-07-16 09:34:40 -0700</bug_when>
    <thetext>Created attachment 433680
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777522</commentid>
    <comment_count>7</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-07-16 09:44:02 -0700</bug_when>
    <thetext>(In reply to Manuel Rego Casasnovas from comment #4)
&gt; Do the performance bots in WebKit run with experimental flags enabled?
&gt; 
&gt; If not I&apos;m not sure if it&apos;s really useful to land perf tests for CSS
&gt; Containment yet, as the bots are not going to notice any optimization based
&gt; on that.
&gt; 
&gt; WDYT?

Nope, the experimental flags are not enabled while I run it locally.

Maybe there is a way to enable the experimental flag?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778405</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-21 06:45:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/80894989&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779017</commentid>
    <comment_count>9</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-07-23 02:33:41 -0700</bug_when>
    <thetext>The test result I ran locally with containment enabled and disable are: 14.87580277047857 runs/s to 6.369440777576201 runs/s
Analyzed the profiler data. The performance improvement is related to the changes to objectIsRelayoutBoundary(), which makes layout containment as a relayout boundary.
Then in FrameViewLayoutContext::layout, the layout could start from m_subtreeLayoutRoot instead of RenderView. Then in FrameView::didLayout, it reduces a lot of RenderLayer::updateLayerPositions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779163</commentid>
    <comment_count>10</comment_count>
      <attachid>433680</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-07-23 13:58:23 -0700</bug_when>
    <thetext>Comment on attachment 433680
Patch

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

&gt; PerformanceTests/Layout/css-contain-change-size.html:28
&gt; +    let flexibleNodes = [];
&gt; +    let NUM_ROWS = 10;
&gt; +    let NUM_COLS = 10;

These should all be const. Also, please call them rowCount &amp; colCount.
No need to capitalize them like this.

&gt; PerformanceTests/Layout/css-contain-change-size.html:31
&gt; +        let container = document.createElement(&apos;div&apos;);

const.

&gt; PerformanceTests/Layout/css-contain-change-size.html:36
&gt; +            let row = document.createElement(&apos;div&apos;);

const.

&gt; PerformanceTests/Layout/css-contain-change-size.html:40
&gt; +                let cell = document.createElement(&apos;div&apos;);

const.

&gt; PerformanceTests/Layout/css-contain-change-size.html:42
&gt; +                let flexibleNode = document.createElement(&apos;div&apos;);

const.

&gt; PerformanceTests/Layout/css-contain-change-size.html:43
&gt; +                flexibleNode.style.width = (100 * Math.random()).toFixed(0) + &quot;px&quot;;

Let&apos;s use PerfTestRunner.random to make it clear this won&apos;t be truly random.

&gt; PerformanceTests/Layout/css-contain-change-size.html:66
&gt; +                for (let i = 0; i &lt; flexibleNodes.length; i++) {

Use for-of loop like this: for (const node of flexibleNodes) {

&gt; PerformanceTests/Layout/css-contain-change-size.html:67
&gt; +                    flexibleNodes[i].style.width = (100 * Math.random()).toFixed(0) + &apos;px&apos;;

Ditto about using PerfTestRunner.random instead of Math.random.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779288</commentid>
    <comment_count>11</comment_count>
      <attachid>433680</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-07-23 19:45:03 -0700</bug_when>
    <thetext>Comment on attachment 433680
Patch

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

&gt;&gt; PerformanceTests/Layout/css-contain-change-size.html:28
&gt;&gt; +    let NUM_COLS = 10;
&gt; 
&gt; These should all be const. Also, please call them rowCount &amp; colCount.
&gt; No need to capitalize them like this.

I see... Done, thanks!

&gt;&gt; PerformanceTests/Layout/css-contain-change-size.html:31
&gt;&gt; +        let container = document.createElement(&apos;div&apos;);
&gt; 
&gt; const.

Done.

&gt;&gt; PerformanceTests/Layout/css-contain-change-size.html:36
&gt;&gt; +            let row = document.createElement(&apos;div&apos;);
&gt; 
&gt; const.

Done.

&gt;&gt; PerformanceTests/Layout/css-contain-change-size.html:40
&gt;&gt; +                let cell = document.createElement(&apos;div&apos;);
&gt; 
&gt; const.

Done.

&gt;&gt; PerformanceTests/Layout/css-contain-change-size.html:42
&gt;&gt; +                let flexibleNode = document.createElement(&apos;div&apos;);
&gt; 
&gt; const.

Done.

&gt;&gt; PerformanceTests/Layout/css-contain-change-size.html:43
&gt;&gt; +                flexibleNode.style.width = (100 * Math.random()).toFixed(0) + &quot;px&quot;;
&gt; 
&gt; Let&apos;s use PerfTestRunner.random to make it clear this won&apos;t be truly random.

Done!

&gt;&gt; PerformanceTests/Layout/css-contain-change-size.html:66
&gt;&gt; +                for (let i = 0; i &lt; flexibleNodes.length; i++) {
&gt; 
&gt; Use for-of loop like this: for (const node of flexibleNodes) {

Done, thanks!

&gt;&gt; PerformanceTests/Layout/css-contain-change-size.html:67
&gt;&gt; +                    flexibleNodes[i].style.width = (100 * Math.random()).toFixed(0) + &apos;px&apos;;
&gt; 
&gt; Ditto about using PerfTestRunner.random instead of Math.random.

Done!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779290</commentid>
    <comment_count>12</comment_count>
      <attachid>434157</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-07-23 20:06:56 -0700</bug_when>
    <thetext>Created attachment 434157
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779305</commentid>
    <comment_count>13</comment_count>
      <attachid>434157</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-07-24 00:50:28 -0700</bug_when>
    <thetext>Comment on attachment 434157
Patch

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

&gt; PerformanceTests/Layout/css-contain-change-size.html:26
&gt; +    let flexibleNodes = [];

Since we&apos;re not assigning a new value to this variable, this should also be const.
JavaScript const semantics ins&apos;t like that of C++.
It doesn&apos;t mean that the object referenced by the variable isn&apos;t mutable.
So even if we declared this const variable, we can still push more contents to the array.
Also, we should call this widthChangingElements or resizingElements. &quot;flexibleNodes&quot; seems rather vague.

&gt; PerformanceTests/Layout/css-contain-change-size.html:38
&gt; +            row.style.top = top + &quot;px&quot;;

We should probably use single quotation marks throughout the script for consistency.

&gt; PerformanceTests/Layout/css-contain-change-size.html:44
&gt; +                flexibleNode.style.width = (100 * PerfTestRunner.random()).toFixed(0) + &quot;px&quot;;
&gt; +                flexibleNode.style.height = &quot;100px&quot;;

Ditto.

&gt; PerformanceTests/Layout/css-contain-change-size.html:46
&gt; +                cell.style.left = left + &quot;px&quot;;

Ditto.

&gt; PerformanceTests/Layout/css-contain-change-size.html:63
&gt; +            description: &quot;Measures performance of changing widths of nodes.&quot;,

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779349</commentid>
    <comment_count>14</comment_count>
      <attachid>434157</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-07-24 19:47:13 -0700</bug_when>
    <thetext>Comment on attachment 434157
Patch

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

&gt;&gt; PerformanceTests/Layout/css-contain-change-size.html:26
&gt;&gt; +    let flexibleNodes = [];
&gt; 
&gt; Since we&apos;re not assigning a new value to this variable, this should also be const.
&gt; JavaScript const semantics ins&apos;t like that of C++.
&gt; It doesn&apos;t mean that the object referenced by the variable isn&apos;t mutable.
&gt; So even if we declared this const variable, we can still push more contents to the array.
&gt; Also, we should call this widthChangingElements or resizingElements. &quot;flexibleNodes&quot; seems rather vague.

Done! Thanks for the explanation!

&gt;&gt; PerformanceTests/Layout/css-contain-change-size.html:38
&gt;&gt; +            row.style.top = top + &quot;px&quot;;
&gt; 
&gt; We should probably use single quotation marks throughout the script for consistency.

Done, thanks!

&gt;&gt; PerformanceTests/Layout/css-contain-change-size.html:44
&gt;&gt; +                flexibleNode.style.height = &quot;100px&quot;;
&gt; 
&gt; Ditto.

Done.

&gt;&gt; PerformanceTests/Layout/css-contain-change-size.html:46
&gt;&gt; +                cell.style.left = left + &quot;px&quot;;
&gt; 
&gt; Ditto.

Done.

&gt;&gt; PerformanceTests/Layout/css-contain-change-size.html:63
&gt;&gt; +            description: &quot;Measures performance of changing widths of nodes.&quot;,
&gt; 
&gt; Ditto.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779351</commentid>
    <comment_count>15</comment_count>
      <attachid>434177</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-07-24 19:50:07 -0700</bug_when>
    <thetext>Created attachment 434177
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779362</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-25 06:01:05 -0700</bug_when>
    <thetext>Committed r280286 (239944@main): &lt;https://commits.webkit.org/239944@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 434177.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433649</attachid>
            <date>2021-07-15 20:23:45 -0700</date>
            <delta_ts>2021-07-15 20:32:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227948-20210716112343.patch</filename>
            <type>text/plain</type>
            <size>5991</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MTEwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzA2YmIxMjY1OTk0MjM0NzY5Y2JiYmZjODM1NGQ1NWM3
YTk1YjY3MC4uZGZmM2Y1NDg4YWY1ZWJjNWQ1OTEzNTljMWQzYjhiM2Q4OTllMTM3MSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDIxLTA3LTE0ICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbUGVyZm9ybWFuY2UgdGVzdF1bY3NzLWNvbnRhaW5dIEFkZCB0ZXN0IHRvIGNvbnRh
aW46IHNpemUgbGF5b3V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjc5NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBXaGVuIHRoZSBvdXRwdXQgdGV4dCBtaWdodCBjb250YWluIEpTJ3Mgb3V0cHV0LCBp
dCBtaWdodCBub3QgbWF0Y2ggX21ldHJpY3NfcmVnZXgsIGJ1dCBpdCdzIG5vdCBhbiBlcnJvci4K
KworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3Qu
cHk6CisgICAgICAgIChQZXJmVGVzdC5fcnVuX3dpdGhfZHJpdmVyKToKKwogMjAyMS0wNi0yMSAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtXSzJdIERvbid0IHBy
b2Nlc3Mtc3dhcCBvbiBuYXZpZ2F0aW9ucyB3aXRoaW4gdGhlIHNhbWUgbm9uLUhUVFAocykgcHJv
dG9jb2wKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVz
dHMvcGVyZnRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNlX3Rlc3Rz
L3BlcmZ0ZXN0LnB5CmluZGV4IGU5NzZiYjEzNjQ5NTQ0ODU3M2EzZDA2YWZkZTM5MzVkOTA3YmEz
MzcuLmQyOGE1OGRhZTE0ZmMyNzcxYmM0MTc3NDk5NWI0YmU0ZTU1OGEzZjggMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3QucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdC5weQpA
QCAtMTgzLDggKzE4Myw4IEBAIGNsYXNzIFBlcmZUZXN0KG9iamVjdCk6CiAKICAgICAgICAgICAg
IG1ldHJpY19tYXRjaCA9IHNlbGYuX21ldHJpY3NfcmVnZXgubWF0Y2gobGluZSkKICAgICAgICAg
ICAgIGlmIG5vdCBtZXRyaWNfbWF0Y2g6Ci0gICAgICAgICAgICAgICAgX2xvZy5lcnJvcignRVJS
T1I6ICcgKyBsaW5lKQotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAg
ICAgIF9sb2cuZXJyb3IoJycgKyBsaW5lKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAKICAg
ICAgICAgICAgIG1ldHJpYyA9IHNlbGYuX2Vuc3VyZV9tZXRyaWNzKG1ldHJpY19tYXRjaC5ncm91
cCgnbWV0cmljJyksIG1ldHJpY19tYXRjaC5ncm91cCgnc3VidGVzdCcpLCBtZXRyaWNfbWF0Y2gu
Z3JvdXAoJ3VuaXQnKSwgbWV0cmljX21hdGNoLmdyb3VwKCdhZ2dyZWdhdG9yJykpCiAgICAgICAg
ICAgICBtZXRyaWMuYXBwZW5kX2dyb3VwKGxpc3QobWFwKGxhbWJkYSB2YWx1ZTogZmxvYXQodmFs
dWUpLCBtZXRyaWNfbWF0Y2guZ3JvdXAoJ3ZhbHVlcycpLnNwbGl0KCcsICcpKSkpCmRpZmYgLS1n
aXQgYS9QZXJmb3JtYW5jZVRlc3RzL0NTUy9jc3MtY29udGFpbi9jc3MtY29udGFpbi1jaGFuZ2Ut
dGV4dC5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9DU1MvY3NzLWNvbnRhaW4vY3NzLWNvbnRhaW4t
Y2hhbmdlLXRleHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDVlMTU1NTY1NWFkYWJhY2QwZTlhYjhiYmEx
ODI2MDFmMGQ5MmI5Ci0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DU1MvY3Nz
LWNvbnRhaW4vY3NzLWNvbnRhaW4tY2hhbmdlLXRleHQuaHRtbApAQCAtMCwwICsxLDgzIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICAuY29udGFpbmVyIHsKKyAgICAgICAgcG9zaXRp
b246IHJlbGF0aXZlOworICAgICAgICBoZWlnaHQ6IDMwMDBweDsKKyAgICB9CisKKyAgICAucm93
IHsKKyAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICBib3JkZXItdG9wOiAxcHgg
c29saWQ7CisgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgICAgIHdpZHRoOiAx
MjBweDsKKyAgICB9CisKKyAgICAuY2VsbCB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsK
KyAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZWQ7CisgICAgICAgIHdpZHRoOiA2MHB4
OworICAgICAgICBoZWlnaHQ6IDMwcHg7CisgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7
CisgICAgICAgIGNvbnRhaW46IHNpemUgbGF5b3V0OworICAgICAgICBsaW5lLWhlaWdodDogMTsK
KyAgICB9CisKKyAgICAucm93Om50aC1jaGlsZCgybikgeworICAgICAgICB0ZXh0LWFsaWduOiBj
ZW50ZXI7CisgICAgfQorCisgICAgLnJvdzpudGgtY2hpbGQoM24pIHsKKyAgICAgICAgdGV4dC1h
bGlnbjogZW5kOworICAgIH0KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1
bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIGxldCB0ZXh0Tm9kZXMgPSBbXTsKKyAg
ICBsZXQgTlVNX1JPV1MgPSAxMDsKKyAgICBsZXQgTlVNX0NPTFMgPSAxMDsKKworICAgIGZ1bmN0
aW9uIHBvcHVsYXRlRGF0YSgpIHsKKyAgICAgICAgbGV0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBjb250YWluZXIuY2xhc3NMaXN0LmFkZCgnY29u
dGFpbmVyJyk7CisgICAgICAgIGxldCB0b3AgPSAwOworICAgICAgICBmb3IgKGxldCBpID0gMDsg
aSA8IE5VTV9ST1dTOyBpKyspIHsKKyAgICAgICAgICAgIGxldCBsZWZ0ID0gMDsKKyAgICAgICAg
ICAgIGxldCByb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgICAg
IHJvdy5jbGFzc0xpc3QuYWRkKCdyb3cnKTsKKyAgICAgICAgICAgIHJvdy5zdHlsZS50b3AgPSB0
b3AgKyAicHgiOworICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBOVU1fQ09MUzsgaisr
KSB7CisgICAgICAgICAgICAgICAgbGV0IGNlbGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKKyAgICAgICAgICAgICAgICBjZWxsLmNsYXNzTGlzdC5hZGQoJ2NlbGwnKTsKKyAgICAg
ICAgICAgICAgICBsZXQgdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnJyArICgx
MDAgKiBNYXRoLnJhbmRvbSgpKS50b0ZpeGVkKDIpKTsKKyAgICAgICAgICAgICAgICBjZWxsLmFw
cGVuZENoaWxkKHRleHROb2RlKTsKKyAgICAgICAgICAgICAgICBjZWxsLnN0eWxlLmxlZnQgPSBs
ZWZ0ICsgInB4IjsKKyAgICAgICAgICAgICAgICByb3cuYXBwZW5kQ2hpbGQoY2VsbCk7CisKKyAg
ICAgICAgICAgICAgICB0ZXh0Tm9kZXMucHVzaCh0ZXh0Tm9kZSk7CisgICAgICAgICAgICAgICAg
bGVmdCArPSA2MDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRvcCArPSAzMDsKKyAgICAg
ICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChyb3cpOworICAgICAgICB9CisgICAgICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY29udGFpbmVyKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBzdGFydFRlc3QoKSB7CisgICAgICAgIHBvcHVsYXRlRGF0YSgpOworCisgICAgICAgIFBlcmZU
ZXN0UnVubmVyLmZvcmNlTGF5b3V0KCk7CisKKyAgICAgICAgUGVyZlRlc3RSdW5uZXIubWVhc3Vy
ZVRpbWUoeworICAgICAgICAgICAgZGVzY3JpcHRpb246ICJNZWFzdXJlcyBwZXJmb3JtYW5jZSBv
ZiBjaGFuZ2luZyB0ZXh0IG5vZGVzIGNvbnRlbnQuIiwKKyAgICAgICAgICAgIHJ1bjogZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dE5vZGVzLmxl
bmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRleHROb2Rlc1tpXS5kYXRhID0gJycg
KyAoMTAwICogTWF0aC5yYW5kb20oKSkudG9GaXhlZCgyKTsKKyAgICAgICAgICAgICAgICAgICAg
UGVyZlRlc3RSdW5uZXIuZm9yY2VMYXlvdXQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9LAorICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGJvZHkgb25sb2FkPSJz
dGFydFRlc3QoKTsiPgorPC9ib2R5PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggZTIxZjY5YmZkNWU1NDU1MDE1Y2YxNzNmYmVjYzUyMzgzZTJmNTE4OS4uODI0
MGIxZWM3NDNkYjUzOWI1YjRiN2EzODg3YjU5ZDkzMTcwNDJhZiAxMDA2NDQKLS0tIGEvUGVyZm9y
bWFuY2VUZXN0cy9DaGFuZ2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAyMS0wNy0xNCAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxp
YS5jb20+CisKKyAgICAgICAgW1BlcmZvcm1hbmNlIHRlc3RdW2Nzcy1jb250YWluXSBBZGQgdGVz
dCB0byBjb250YWluOiBzaXplIGxheW91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI3OTQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhpcyB0ZXN0IGVtdWxhdGVzIHRoZSBzY2VuYXJpbyB0aGF0IGEg
c21hbGwgcGFydCBvZiB0aGUgcGFnZSBpcyBjaGFuZ2VkLiBJZiBpdCdzIGFwcGxpZWQgY29udGFp
bjogc2l6ZSBsYXlvdXQsCisgICAgICAgIHRoZSBwZXJmb3JtYW5jZSBzaG91bGQgYmUgaW1wcm92
ZWQuCisKKyAgICAgICAgKiBDU1MvY3NzLWNvbnRhaW4vY3NzLWNvbnRhaW4tY2hhbmdlLXRleHQu
aHRtbDogQWRkZWQuCisgICAgICAgICogcmVzb3VyY2VzL3J1bm5lci5qczoKKyAgICAgICAgKFBl
cmZUZXN0UnVubmVyLmZvcmNlTGF5b3V0KToKKwogMjAyMS0wNi0wMyAgU2FpZCBBYm91LUhhbGxh
d2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBbTW90aW9uTWFya10gQ29udHJvbGxlci5m
aWx0ZXJPdXRPdXRsaWVycygpIHNvcnRzIHRoZSBmcmFtZUxlbmd0aHMgYXJyYXkgaW5jb3JyZWN0
bHkKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvcmVzb3VyY2VzL3J1bm5lci5qcyBiL1Bl
cmZvcm1hbmNlVGVzdHMvcmVzb3VyY2VzL3J1bm5lci5qcwppbmRleCA2MDFiY2Q3MjVlNjY1YTI4
NGM2YThkNzNkNzQ0NjQ5ZjQ1ZWM2NzYxLi5kMDcyNDI3ODdiMDZjY2NmNDhjZGU4N2QzZjEzYjkz
N2JiNjJiMzRjIDEwMDc1NQotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL3Jlc291cmNlcy9ydW5uZXIu
anMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvcnVubmVyLmpzCkBAIC01NCw2ICs1
NCwxNCBAQCBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgICAgIHRoaXMubG9nKCcg
ICAgJyArIGxhYmVsICsgJzogJyArIHZhbHVlKTsKICAgICB9CiAKKyAgICBQZXJmVGVzdFJ1bm5l
ci5mb3JjZUxheW91dCA9IGZ1bmN0aW9uIChkb2MpIHsKKyAgICAgICAgZG9jID0gZG9jIHx8IGRv
Y3VtZW50OworICAgICAgICBpZiAoZG9jLmJvZHkpCisgICAgICAgICAgICBkb2MuYm9keS5vZmZz
ZXRIZWlnaHQ7CisgICAgICAgIGVsc2UgaWYgKGRvYy5kb2N1bWVudEVsZW1lbnQpCisgICAgICAg
ICAgICBkb2MuZG9jdW1lbnRFbGVtZW50Lm9mZnNldEhlaWdodDsKKyAgICB9CisKICAgICBQZXJm
VGVzdFJ1bm5lci5sb2FkRmlsZSA9IGZ1bmN0aW9uIChwYXRoKSB7CiAgICAgICAgIHZhciB4aHIg
PSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKICAgICAgICAgeGhyLm9wZW4oIkdFVCIsIHBhdGgsIGZh
bHNlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433650</attachid>
            <date>2021-07-15 20:33:03 -0700</date>
            <delta_ts>2021-07-16 09:34:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227948-20210716113301.patch</filename>
            <type>text/plain</type>
            <size>4317</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5OTc0CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0NTUy9jc3MtY29udGFpbi9jc3MtY29udGFpbi1jaGFuZ2UtdGV4dC5odG1sIGIvUGVyZm9ybWFu
Y2VUZXN0cy9DU1MvY3NzLWNvbnRhaW4vY3NzLWNvbnRhaW4tY2hhbmdlLXRleHQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kNDVlMTU1NTY1NWFkYWJhY2QwZTlhYjhiYmExODI2MDFmMGQ5MmI5Ci0tLSAvZGV2
L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DU1MvY3NzLWNvbnRhaW4vY3NzLWNvbnRhaW4t
Y2hhbmdlLXRleHQuaHRtbApAQCAtMCwwICsxLDgzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHls
ZT4KKyAgICAuY29udGFpbmVyIHsKKyAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAg
ICBoZWlnaHQ6IDMwMDBweDsKKyAgICB9CisKKyAgICAucm93IHsKKyAgICAgICAgcG9zaXRpb246
IHJlbGF0aXZlOworICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQ7CisgICAgICAgIGJveC1z
aXppbmc6IGJvcmRlci1ib3g7CisgICAgICAgIHdpZHRoOiAxMjBweDsKKyAgICB9CisKKyAgICAu
Y2VsbCB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgYm9yZGVyLWxlZnQ6
IDFweCBzb2xpZCByZWQ7CisgICAgICAgIHdpZHRoOiA2MHB4OworICAgICAgICBoZWlnaHQ6IDMw
cHg7CisgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgICAgIGNvbnRhaW46IHNp
emUgbGF5b3V0OworICAgICAgICBsaW5lLWhlaWdodDogMTsKKyAgICB9CisKKyAgICAucm93Om50
aC1jaGlsZCgybikgeworICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgICAgfQorCisgICAg
LnJvdzpudGgtY2hpbGQoM24pIHsKKyAgICAgICAgdGV4dC1hbGlnbjogZW5kOworICAgIH0KKzwv
c3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorICAgIGxldCB0ZXh0Tm9kZXMgPSBbXTsKKyAgICBsZXQgTlVNX1JPV1MgPSAxMDsK
KyAgICBsZXQgTlVNX0NPTFMgPSAxMDsKKworICAgIGZ1bmN0aW9uIHBvcHVsYXRlRGF0YSgpIHsK
KyAgICAgICAgbGV0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwor
ICAgICAgICBjb250YWluZXIuY2xhc3NMaXN0LmFkZCgnY29udGFpbmVyJyk7CisgICAgICAgIGxl
dCB0b3AgPSAwOworICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IE5VTV9ST1dTOyBpKyspIHsK
KyAgICAgICAgICAgIGxldCBsZWZ0ID0gMDsKKyAgICAgICAgICAgIGxldCByb3cgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgICAgIHJvdy5jbGFzc0xpc3QuYWRkKCdy
b3cnKTsKKyAgICAgICAgICAgIHJvdy5zdHlsZS50b3AgPSB0b3AgKyAicHgiOworICAgICAgICAg
ICAgZm9yIChsZXQgaiA9IDA7IGogPCBOVU1fQ09MUzsgaisrKSB7CisgICAgICAgICAgICAgICAg
bGV0IGNlbGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgICAgICAg
ICBjZWxsLmNsYXNzTGlzdC5hZGQoJ2NlbGwnKTsKKyAgICAgICAgICAgICAgICBsZXQgdGV4dE5v
ZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnJyArICgxMDAgKiBNYXRoLnJhbmRvbSgpKS50
b0ZpeGVkKDIpKTsKKyAgICAgICAgICAgICAgICBjZWxsLmFwcGVuZENoaWxkKHRleHROb2RlKTsK
KyAgICAgICAgICAgICAgICBjZWxsLnN0eWxlLmxlZnQgPSBsZWZ0ICsgInB4IjsKKyAgICAgICAg
ICAgICAgICByb3cuYXBwZW5kQ2hpbGQoY2VsbCk7CisKKyAgICAgICAgICAgICAgICB0ZXh0Tm9k
ZXMucHVzaCh0ZXh0Tm9kZSk7CisgICAgICAgICAgICAgICAgbGVmdCArPSA2MDsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIHRvcCArPSAzMDsKKyAgICAgICAgICAgIGNvbnRhaW5lci5hcHBl
bmRDaGlsZChyb3cpOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoY29udGFpbmVyKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGFydFRlc3QoKSB7CisgICAg
ICAgIHBvcHVsYXRlRGF0YSgpOworCisgICAgICAgIFBlcmZUZXN0UnVubmVyLmZvcmNlTGF5b3V0
KCk7CisKKyAgICAgICAgUGVyZlRlc3RSdW5uZXIubWVhc3VyZVRpbWUoeworICAgICAgICAgICAg
ZGVzY3JpcHRpb246ICJNZWFzdXJlcyBwZXJmb3JtYW5jZSBvZiBjaGFuZ2luZyB0ZXh0IG5vZGVz
IGNvbnRlbnQuIiwKKyAgICAgICAgICAgIHJ1bjogZnVuY3Rpb24gKCkgeworICAgICAgICAgICAg
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dE5vZGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAg
ICAgICAgICAgICAgIHRleHROb2Rlc1tpXS5kYXRhID0gJycgKyAoMTAwICogTWF0aC5yYW5kb20o
KSkudG9GaXhlZCgyKTsKKyAgICAgICAgICAgICAgICAgICAgUGVyZlRlc3RSdW5uZXIuZm9yY2VM
YXlvdXQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICB9KTsK
KyAgICB9Cis8L3NjcmlwdD4KKworPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKTsiPgorPC9ib2R5
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVz
dHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTIxZjY5YmZk
NWU1NDU1MDE1Y2YxNzNmYmVjYzUyMzgzZTJmNTE4OS4uODI0MGIxZWM3NDNkYjUzOWI1YjRiN2Ez
ODg3YjU5ZDkzMTcwNDJhZiAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0w
Ny0xNCAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1Bl
cmZvcm1hbmNlIHRlc3RdW2Nzcy1jb250YWluXSBBZGQgdGVzdCB0byBjb250YWluOiBzaXplIGxh
eW91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3
OTQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyB0ZXN0IGVtdWxhdGVzIHRoZSBzY2VuYXJpbyB0aGF0IGEgc21hbGwgcGFydCBvZiB0aGUgcGFn
ZSBpcyBjaGFuZ2VkLiBJZiBpdCdzIGFwcGxpZWQgY29udGFpbjogc2l6ZSBsYXlvdXQsCisgICAg
ICAgIHRoZSBwZXJmb3JtYW5jZSBzaG91bGQgYmUgaW1wcm92ZWQuCisKKyAgICAgICAgKiBDU1Mv
Y3NzLWNvbnRhaW4vY3NzLWNvbnRhaW4tY2hhbmdlLXRleHQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogcmVzb3VyY2VzL3J1bm5lci5qczoKKyAgICAgICAgKFBlcmZUZXN0UnVubmVyLmZvcmNlTGF5
b3V0KToKKwogMjAyMS0wNi0wMyAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4K
IAogICAgICAgICBbTW90aW9uTWFya10gQ29udHJvbGxlci5maWx0ZXJPdXRPdXRsaWVycygpIHNv
cnRzIHRoZSBmcmFtZUxlbmd0aHMgYXJyYXkgaW5jb3JyZWN0bHkKZGlmZiAtLWdpdCBhL1BlcmZv
cm1hbmNlVGVzdHMvcmVzb3VyY2VzL3J1bm5lci5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvcmVzb3Vy
Y2VzL3J1bm5lci5qcwppbmRleCA2MDFiY2Q3MjVlNjY1YTI4NGM2YThkNzNkNzQ0NjQ5ZjQ1ZWM2
NzYxLi5kMDcyNDI3ODdiMDZjY2NmNDhjZGU4N2QzZjEzYjkzN2JiNjJiMzRjIDEwMDc1NQotLS0g
YS9QZXJmb3JtYW5jZVRlc3RzL3Jlc291cmNlcy9ydW5uZXIuanMKKysrIGIvUGVyZm9ybWFuY2VU
ZXN0cy9yZXNvdXJjZXMvcnVubmVyLmpzCkBAIC01NCw2ICs1NCwxNCBAQCBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKICAgICAgICAgICAgIHRoaXMubG9nKCcgICAgJyArIGxhYmVsICsgJzogJyAr
IHZhbHVlKTsKICAgICB9CiAKKyAgICBQZXJmVGVzdFJ1bm5lci5mb3JjZUxheW91dCA9IGZ1bmN0
aW9uIChkb2MpIHsKKyAgICAgICAgZG9jID0gZG9jIHx8IGRvY3VtZW50OworICAgICAgICBpZiAo
ZG9jLmJvZHkpCisgICAgICAgICAgICBkb2MuYm9keS5vZmZzZXRIZWlnaHQ7CisgICAgICAgIGVs
c2UgaWYgKGRvYy5kb2N1bWVudEVsZW1lbnQpCisgICAgICAgICAgICBkb2MuZG9jdW1lbnRFbGVt
ZW50Lm9mZnNldEhlaWdodDsKKyAgICB9CisKICAgICBQZXJmVGVzdFJ1bm5lci5sb2FkRmlsZSA9
IGZ1bmN0aW9uIChwYXRoKSB7CiAgICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3Qo
KTsKICAgICAgICAgeGhyLm9wZW4oIkdFVCIsIHBhdGgsIGZhbHNlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433680</attachid>
            <date>2021-07-16 09:34:40 -0700</date>
            <delta_ts>2021-07-23 20:06:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227948-20210717003438.patch</filename>
            <type>text/plain</type>
            <size>3614</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5OTc0CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGUyMWY2OWJmZDVl
NTQ1NTAxNWNmMTczZmJlY2M1MjM4M2UyZjUxODkuLjc3MDljYjNlZDQ4ZjRiZTQ5MDBmOGIxMzI3
MzRlMTI2ZjdjNzgxM2EgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDct
MTYgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtQZXJm
b3JtYW5jZSB0ZXN0XVtjc3MtY29udGFpbl0gQWRkIHRlc3QgdG8gY29udGFpbjogc2l6ZSBsYXlv
dXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzk0
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
dGVzdCBlbXVsYXRlcyB0aGUgc2NlbmFyaW8gdGhhdCBhIHNtYWxsIHBhcnQgb2YgdGhlIHBhZ2Ug
aXMgY2hhbmdlZC4gSWYgaXQncyBhcHBsaWVkIGNvbnRhaW46IHNpemUgbGF5b3V0LAorICAgICAg
ICB0aGUgcGVyZm9ybWFuY2Ugc2hvdWxkIGJlIGltcHJvdmVkLiBUaGlzIHRlc3QgaXMgYSB0cmFu
c2Zvcm0gb2YgdGhlIHRlc3QgWzFdIGluIGJsaW5rLgorCisgICAgICAgIFsxXSB0aGlyZF9wYXJ0
eS9ibGluay9wZXJmX3Rlc3RzL2xheW91dC9jc3MtY29udGFpbi1jaGFuZ2UtdGV4dC5odG1sCisK
KyAgICAgICAgKiBMYXlvdXQvY3NzLWNvbnRhaW4tY2hhbmdlLXNpemUuaHRtbDogQWRkZWQuCisK
IDIwMjEtMDYtMDMgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAg
ICAgW01vdGlvbk1hcmtdIENvbnRyb2xsZXIuZmlsdGVyT3V0T3V0bGllcnMoKSBzb3J0cyB0aGUg
ZnJhbWVMZW5ndGhzIGFycmF5IGluY29ycmVjdGx5CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRl
c3RzL0xheW91dC9jc3MtY29udGFpbi1jaGFuZ2Utc2l6ZS5odG1sIGIvUGVyZm9ybWFuY2VUZXN0
cy9MYXlvdXQvY3NzLWNvbnRhaW4tY2hhbmdlLXNpemUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NTk1NmUz
MDY1MzA4ZDgyMzg4ZGYxYTUyZmQxZGIwZjkxNjFiZGYzCi0tLSAvZGV2L251bGwKKysrIGIvUGVy
Zm9ybWFuY2VUZXN0cy9MYXlvdXQvY3NzLWNvbnRhaW4tY2hhbmdlLXNpemUuaHRtbApAQCAtMCww
ICsxLDc2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICAuY29udGFpbmVyIHsKKyAg
ICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICBoZWlnaHQ6IDMwMDBweDsKKyAgICB9
CisKKyAgICAucm93IHsKKyAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICBib3Jk
ZXItdG9wOiAxcHggc29saWQ7CisgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAg
ICAgIHdpZHRoOiAxMjBweDsKKyAgICB9CisKKyAgICAuY2VsbCB7CisgICAgICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKKyAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZWQ7CisgICAgICAg
IHdpZHRoOiA2MHB4OworICAgICAgICBoZWlnaHQ6IDMwcHg7CisgICAgICAgIGJveC1zaXppbmc6
IGJvcmRlci1ib3g7CisgICAgICAgIGNvbnRhaW46IHNpemUgbGF5b3V0OworICAgIH0KKzwvc3R5
bGU+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorICAgIGxldCBmbGV4aWJsZU5vZGVzID0gW107CisgICAgbGV0IE5VTV9ST1dTID0gMTA7
CisgICAgbGV0IE5VTV9DT0xTID0gMTA7CisKKyAgICBmdW5jdGlvbiBwb3B1bGF0ZURhdGEoKSB7
CisgICAgICAgIGxldCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
KyAgICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2NvbnRhaW5lcicpOworICAgICAgICBs
ZXQgdG9wID0gMDsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBOVU1fUk9XUzsgaSsrKSB7
CisgICAgICAgICAgICBsZXQgbGVmdCA9IDA7CisgICAgICAgICAgICBsZXQgcm93ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgICAgICByb3cuY2xhc3NMaXN0LmFkZCgn
cm93Jyk7CisgICAgICAgICAgICByb3cuc3R5bGUudG9wID0gdG9wICsgInB4IjsKKyAgICAgICAg
ICAgIGZvciAobGV0IGogPSAwOyBqIDwgTlVNX0NPTFM7IGorKykgeworICAgICAgICAgICAgICAg
IGxldCBjZWxsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgICAgICAg
ICAgY2VsbC5jbGFzc0xpc3QuYWRkKCdjZWxsJyk7CisgICAgICAgICAgICAgICAgbGV0IGZsZXhp
YmxlTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICAgICAgICAg
IGZsZXhpYmxlTm9kZS5zdHlsZS53aWR0aCA9ICgxMDAgKiBNYXRoLnJhbmRvbSgpKS50b0ZpeGVk
KDApICsgInB4IjsKKyAgICAgICAgICAgICAgICBmbGV4aWJsZU5vZGUuc3R5bGUuaGVpZ2h0ID0g
IjEwMHB4IjsKKyAgICAgICAgICAgICAgICBjZWxsLmFwcGVuZENoaWxkKGZsZXhpYmxlTm9kZSk7
CisgICAgICAgICAgICAgICAgY2VsbC5zdHlsZS5sZWZ0ID0gbGVmdCArICJweCI7CisgICAgICAg
ICAgICAgICAgcm93LmFwcGVuZENoaWxkKGNlbGwpOworCisgICAgICAgICAgICAgICAgZmxleGli
bGVOb2Rlcy5wdXNoKGZsZXhpYmxlTm9kZSk7CisgICAgICAgICAgICAgICAgbGVmdCArPSA2MDsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRvcCArPSAzMDsKKyAgICAgICAgICAgIGNvbnRh
aW5lci5hcHBlbmRDaGlsZChyb3cpOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoY29udGFpbmVyKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGFydFRlc3Qo
KSB7CisgICAgICAgIHBvcHVsYXRlRGF0YSgpOworCisgICAgICAgIGRvY3VtZW50LmJvZHkuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCk7CisKKyAgICAgICAgUGVyZlRlc3RSdW5uZXIubWVhc3VyZVJ1
bnNQZXJTZWNvbmQoeworICAgICAgICAgICAgZGVzY3JpcHRpb246ICJNZWFzdXJlcyBwZXJmb3Jt
YW5jZSBvZiBjaGFuZ2luZyB3aWR0aHMgb2Ygbm9kZXMuIiwKKyAgICAgICAgICAgIHJ1bjogZnVu
Y3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmxleGlibGVO
b2Rlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBmbGV4aWJsZU5vZGVzW2ld
LnN0eWxlLndpZHRoID0gKDEwMCAqIE1hdGgucmFuZG9tKCkpLnRvRml4ZWQoMCkgKyAncHgnOwor
ICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgIH0pOworICAgIH0K
Kzwvc2NyaXB0PgorCis8Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpOyI+Cis8L2JvZHk+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434157</attachid>
            <date>2021-07-23 20:06:56 -0700</date>
            <delta_ts>2021-07-24 19:50:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227948-20210724110653.patch</filename>
            <type>text/plain</type>
            <size>3619</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5OTc0CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGUyMWY2OWJmZDVl
NTQ1NTAxNWNmMTczZmJlY2M1MjM4M2UyZjUxODkuLjc3MDljYjNlZDQ4ZjRiZTQ5MDBmOGIxMzI3
MzRlMTI2ZjdjNzgxM2EgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDct
MTYgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtQZXJm
b3JtYW5jZSB0ZXN0XVtjc3MtY29udGFpbl0gQWRkIHRlc3QgdG8gY29udGFpbjogc2l6ZSBsYXlv
dXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzk0
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
dGVzdCBlbXVsYXRlcyB0aGUgc2NlbmFyaW8gdGhhdCBhIHNtYWxsIHBhcnQgb2YgdGhlIHBhZ2Ug
aXMgY2hhbmdlZC4gSWYgaXQncyBhcHBsaWVkIGNvbnRhaW46IHNpemUgbGF5b3V0LAorICAgICAg
ICB0aGUgcGVyZm9ybWFuY2Ugc2hvdWxkIGJlIGltcHJvdmVkLiBUaGlzIHRlc3QgaXMgYSB0cmFu
c2Zvcm0gb2YgdGhlIHRlc3QgWzFdIGluIGJsaW5rLgorCisgICAgICAgIFsxXSB0aGlyZF9wYXJ0
eS9ibGluay9wZXJmX3Rlc3RzL2xheW91dC9jc3MtY29udGFpbi1jaGFuZ2UtdGV4dC5odG1sCisK
KyAgICAgICAgKiBMYXlvdXQvY3NzLWNvbnRhaW4tY2hhbmdlLXNpemUuaHRtbDogQWRkZWQuCisK
IDIwMjEtMDYtMDMgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAg
ICAgW01vdGlvbk1hcmtdIENvbnRyb2xsZXIuZmlsdGVyT3V0T3V0bGllcnMoKSBzb3J0cyB0aGUg
ZnJhbWVMZW5ndGhzIGFycmF5IGluY29ycmVjdGx5CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRl
c3RzL0xheW91dC9jc3MtY29udGFpbi1jaGFuZ2Utc2l6ZS5odG1sIGIvUGVyZm9ybWFuY2VUZXN0
cy9MYXlvdXQvY3NzLWNvbnRhaW4tY2hhbmdlLXNpemUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZDE4ZjRl
MTM2YmM0NmExOWY0YWJmMTUxNGVkYWFhOGZmZGY2NjA3Ci0tLSAvZGV2L251bGwKKysrIGIvUGVy
Zm9ybWFuY2VUZXN0cy9MYXlvdXQvY3NzLWNvbnRhaW4tY2hhbmdlLXNpemUuaHRtbApAQCAtMCww
ICsxLDc1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICAuY29udGFpbmVyIHsKKyAg
ICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICBoZWlnaHQ6IDMwMDBweDsKKyAgICB9
CisKKyAgICAucm93IHsKKyAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICBib3Jk
ZXItdG9wOiAxcHggc29saWQ7CisgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAg
ICAgIHdpZHRoOiAxMjBweDsKKyAgICB9CisKKyAgICAuY2VsbCB7CisgICAgICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKKyAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZWQ7CisgICAgICAg
IHdpZHRoOiA2MHB4OworICAgICAgICBoZWlnaHQ6IDMwcHg7CisgICAgICAgIGJveC1zaXppbmc6
IGJvcmRlci1ib3g7CisgICAgICAgIGNvbnRhaW46IHNpemUgbGF5b3V0OworICAgIH0KKzwvc3R5
bGU+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorICAgIGxldCBmbGV4aWJsZU5vZGVzID0gW107CisgICAgY29uc3Qgcm93Q291bnQgPSAx
MDsKKyAgICBjb25zdCBjb2xDb3VudCA9IDEwOworCisgICAgZnVuY3Rpb24gcG9wdWxhdGVEYXRh
KCkgeworICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKKyAgICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2NvbnRhaW5lcicpOworICAg
ICAgICBsZXQgdG9wID0gMDsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByb3dDb3VudDsg
aSsrKSB7CisgICAgICAgICAgICBsZXQgbGVmdCA9IDA7CisgICAgICAgICAgICBjb25zdCByb3cg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgICAgIHJvdy5jbGFzc0xp
c3QuYWRkKCdyb3cnKTsKKyAgICAgICAgICAgIHJvdy5zdHlsZS50b3AgPSB0b3AgKyAicHgiOwor
ICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBjb2xDb3VudDsgaisrKSB7CisgICAgICAg
ICAgICAgICAgY29uc3QgY2VsbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAg
ICAgICAgICAgICAgIGNlbGwuY2xhc3NMaXN0LmFkZCgnY2VsbCcpOworICAgICAgICAgICAgICAg
IGNvbnN0IGZsZXhpYmxlTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAg
ICAgICAgICAgICAgIGZsZXhpYmxlTm9kZS5zdHlsZS53aWR0aCA9ICgxMDAgKiBQZXJmVGVzdFJ1
bm5lci5yYW5kb20oKSkudG9GaXhlZCgwKSArICJweCI7CisgICAgICAgICAgICAgICAgZmxleGli
bGVOb2RlLnN0eWxlLmhlaWdodCA9ICIxMDBweCI7CisgICAgICAgICAgICAgICAgY2VsbC5hcHBl
bmRDaGlsZChmbGV4aWJsZU5vZGUpOworICAgICAgICAgICAgICAgIGNlbGwuc3R5bGUubGVmdCA9
IGxlZnQgKyAicHgiOworICAgICAgICAgICAgICAgIHJvdy5hcHBlbmRDaGlsZChjZWxsKTsKKwor
ICAgICAgICAgICAgICAgIGZsZXhpYmxlTm9kZXMucHVzaChmbGV4aWJsZU5vZGUpOworICAgICAg
ICAgICAgICAgIGxlZnQgKz0gNjA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0b3AgKz0g
MzA7CisgICAgICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQocm93KTsKKyAgICAgICAgfQor
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbnRhaW5lcik7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gc3RhcnRUZXN0KCkgeworICAgICAgICBwb3B1bGF0ZURhdGEoKTsKKyAgICAg
ICAgZG9jdW1lbnQuYm9keS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKworICAgICAgICBQZXJm
VGVzdFJ1bm5lci5tZWFzdXJlUnVuc1BlclNlY29uZCh7CisgICAgICAgICAgICBkZXNjcmlwdGlv
bjogIk1lYXN1cmVzIHBlcmZvcm1hbmNlIG9mIGNoYW5naW5nIHdpZHRocyBvZiBub2Rlcy4iLAor
ICAgICAgICAgICAgcnVuOiBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgZm9yIChjb25z
dCBub2RlIG9mIGZsZXhpYmxlTm9kZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgbm9kZS5zdHls
ZS53aWR0aCA9ICgxMDAgKiBQZXJmVGVzdFJ1bm5lci5yYW5kb20oKSkudG9GaXhlZCgwKSArICdw
eCc7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgfSk7Cisg
ICAgfQorPC9zY3JpcHQ+CisKKzxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCk7Ij4KKzwvYm9keT4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434177</attachid>
            <date>2021-07-24 19:50:07 -0700</date>
            <delta_ts>2021-07-25 06:01:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227948-20210725105006.patch</filename>
            <type>text/plain</type>
            <size>3649</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5OTc0CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGUyMWY2OWJmZDVl
NTQ1NTAxNWNmMTczZmJlY2M1MjM4M2UyZjUxODkuLjY2NGZlMjVlYzBkMzMzOWI0NDU0ZDRkOWNh
MDNlMTViMTVmMGExNTggMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDct
MTYgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtQZXJm
b3JtYW5jZSB0ZXN0XVtjc3MtY29udGFpbl0gQWRkIHRlc3QgdG8gY29udGFpbjogc2l6ZSBsYXlv
dXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzk0
OAorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBUaGlzIHRl
c3QgZW11bGF0ZXMgdGhlIHNjZW5hcmlvIHRoYXQgYSBzbWFsbCBwYXJ0IG9mIHRoZSBwYWdlIGlz
IGNoYW5nZWQuIElmIGl0J3MgYXBwbGllZCBjb250YWluOiBzaXplIGxheW91dCwKKyAgICAgICAg
dGhlIHBlcmZvcm1hbmNlIHNob3VsZCBiZSBpbXByb3ZlZC4gVGhpcyB0ZXN0IGlzIGEgdHJhbnNm
b3JtIG9mIHRoZSB0ZXN0IFsxXSBpbiBibGluay4KKworICAgICAgICBbMV0gdGhpcmRfcGFydHkv
YmxpbmsvcGVyZl90ZXN0cy9sYXlvdXQvY3NzLWNvbnRhaW4tY2hhbmdlLXRleHQuaHRtbAorCisg
ICAgICAgICogTGF5b3V0L2Nzcy1jb250YWluLWNoYW5nZS1zaXplLmh0bWw6IEFkZGVkLgorCiAy
MDIxLTA2LTAzICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgogCiAgICAgICAg
IFtNb3Rpb25NYXJrXSBDb250cm9sbGVyLmZpbHRlck91dE91dGxpZXJzKCkgc29ydHMgdGhlIGZy
YW1lTGVuZ3RocyBhcnJheSBpbmNvcnJlY3RseQpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0
cy9MYXlvdXQvY3NzLWNvbnRhaW4tY2hhbmdlLXNpemUuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMv
TGF5b3V0L2Nzcy1jb250YWluLWNoYW5nZS1zaXplLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWU4YjEyOWI3
M2VjNzA5NGYxOGYyY2NjM2JjYzIzNmIzNzY0OGZmMAotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZv
cm1hbmNlVGVzdHMvTGF5b3V0L2Nzcy1jb250YWluLWNoYW5nZS1zaXplLmh0bWwKQEAgLTAsMCAr
MSw3NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgLmNvbnRhaW5lciB7CisgICAg
ICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgaGVpZ2h0OiAzMDAwcHg7CisgICAgfQor
CisgICAgLnJvdyB7CisgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgYm9yZGVy
LXRvcDogMXB4IHNvbGlkOworICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OworICAgICAg
ICB3aWR0aDogMTIwcHg7CisgICAgfQorCisgICAgLmNlbGwgeworICAgICAgICBwb3NpdGlvbjog
YWJzb2x1dGU7CisgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmVkOworICAgICAgICB3
aWR0aDogNjBweDsKKyAgICAgICAgaGVpZ2h0OiAzMHB4OworICAgICAgICBib3gtc2l6aW5nOiBi
b3JkZXItYm94OworICAgICAgICBjb250YWluOiBzaXplIGxheW91dDsKKyAgICB9Cis8L3N0eWxl
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KKyAgICBjb25zdCByZXNpemluZ0VsZW1lbnRzID0gW107CisgICAgY29uc3Qgcm93Q291bnQg
PSAxMDsKKyAgICBjb25zdCBjb2xDb3VudCA9IDEwOworCisgICAgZnVuY3Rpb24gcG9wdWxhdGVE
YXRhKCkgeworICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKKyAgICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2NvbnRhaW5lcicpOwor
ICAgICAgICBsZXQgdG9wID0gMDsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByb3dDb3Vu
dDsgaSsrKSB7CisgICAgICAgICAgICBsZXQgbGVmdCA9IDA7CisgICAgICAgICAgICBjb25zdCBy
b3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgICAgIHJvdy5jbGFz
c0xpc3QuYWRkKCdyb3cnKTsKKyAgICAgICAgICAgIHJvdy5zdHlsZS50b3AgPSB0b3AgKyAncHgn
OworICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBjb2xDb3VudDsgaisrKSB7CisgICAg
ICAgICAgICAgICAgY29uc3QgY2VsbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwor
ICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NMaXN0LmFkZCgnY2VsbCcpOworICAgICAgICAgICAg
ICAgIGNvbnN0IHJlc2l6aW5nRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OworICAgICAgICAgICAgICAgIHJlc2l6aW5nRWxlbWVudC5zdHlsZS53aWR0aCA9ICgxMDAgKiBQ
ZXJmVGVzdFJ1bm5lci5yYW5kb20oKSkudG9GaXhlZCgwKSArICdweCc7CisgICAgICAgICAgICAg
ICAgcmVzaXppbmdFbGVtZW50LnN0eWxlLmhlaWdodCA9ICcxMDBweCc7CisgICAgICAgICAgICAg
ICAgY2VsbC5hcHBlbmRDaGlsZChyZXNpemluZ0VsZW1lbnQpOworICAgICAgICAgICAgICAgIGNl
bGwuc3R5bGUubGVmdCA9IGxlZnQgKyAncHgnOworICAgICAgICAgICAgICAgIHJvdy5hcHBlbmRD
aGlsZChjZWxsKTsKKworICAgICAgICAgICAgICAgIHJlc2l6aW5nRWxlbWVudHMucHVzaChyZXNp
emluZ0VsZW1lbnQpOworICAgICAgICAgICAgICAgIGxlZnQgKz0gNjA7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICB0b3AgKz0gMzA7CisgICAgICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hp
bGQocm93KTsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNv
bnRhaW5lcik7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RhcnRUZXN0KCkgeworICAgICAgICBw
b3B1bGF0ZURhdGEoKTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5nZXRCb3VuZGluZ0NsaWVudFJl
Y3QoKTsKKworICAgICAgICBQZXJmVGVzdFJ1bm5lci5tZWFzdXJlUnVuc1BlclNlY29uZCh7Cisg
ICAgICAgICAgICBkZXNjcmlwdGlvbjogJ01lYXN1cmVzIHBlcmZvcm1hbmNlIG9mIGNoYW5naW5n
IHdpZHRocyBvZiBub2Rlcy4nLAorICAgICAgICAgICAgcnVuOiBmdW5jdGlvbiAoKSB7CisgICAg
ICAgICAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHJlc2l6aW5nRWxlbWVudHMpIHsKKyAg
ICAgICAgICAgICAgICAgICAgZWxlbWVudC5zdHlsZS53aWR0aCA9ICgxMDAgKiBQZXJmVGVzdFJ1
bm5lci5yYW5kb20oKSkudG9GaXhlZCgwKSArICdweCc7CisgICAgICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmJvZHkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfSwKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+CisKKzxib2R5IG9u
bG9hZD0ic3RhcnRUZXN0KCk7Ij4KKzwvYm9keT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>