<?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>208343</bug_id>
          
          <creation_ts>2020-02-27 14:42:59 -0800</creation_ts>
          <short_desc>Shrink-to-fit InlineFormattingContext</short_desc>
          <delta_ts>2020-02-28 11:37:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1623678</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-27 14:42:59 -0800</bug_when>
    <thetext>Shrink-to-fit InlineFormattingContext</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623770</commentid>
    <comment_count>1</comment_count>
      <attachid>391941</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-27 16:41:29 -0800</bug_when>
    <thetext>Created attachment 391941
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623771</commentid>
    <comment_count>2</comment_count>
      <attachid>391942</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-27 16:42:53 -0800</bug_when>
    <thetext>Created attachment 391942
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623778</commentid>
    <comment_count>3</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-27 17:04:35 -0800</bug_when>
    <thetext>I&apos;ve inserted logging of actually used capacity, and run several web pages including Gmail, webkit.org, Speedometer. The result is large part of this is only 1.
I think our inlineCapacity for Display::InlineContent is too large.
Data collected from Speedometer2.

RUNS
1 =&gt; 19257
2 =&gt; 4
3 =&gt; 2
4 =&gt; 4
5 =&gt; 1
LINEBOXES
1 =&gt; 19257
2 =&gt; 5
3 =&gt; 3
4 =&gt; 2
5 =&gt; 1


I think we should pick Vector&lt;..., 1&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623780</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-27 17:04:51 -0800</bug_when>
    <thetext>*** Bug 208350 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623785</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-27 17:14:15 -0800</bug_when>
    <thetext>I&apos;m now collecting PLT5&apos;s data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623795</commentid>
    <comment_count>6</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-02-27 17:31:31 -0800</bug_when>
    <thetext>Speedometer has a very specific and uncommon text content structure and I don&apos;t think we should optimize for this uncommon case.
Normally we generate one (or a few) runs per line and a common paragraph (think of it as a section on a news page) has many lines of text. On live nytimes.com it averages over 2.1 for me. Apple.com has around 1.6 runs. Book content has an average over 10 for sure.
Also keep in mind the low number is also an indication of low coverage of this feature which will change drastically very soon, so the number of runs will increase as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623817</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-27 17:46:33 -0800</bug_when>
    <thetext>This is PLT5 data.

RUNS
1 =&gt; 6910
2 =&gt; 813
3 =&gt; 1306
4 =&gt; 546
5 =&gt; 175
6 =&gt; 145
7 =&gt; 43
8 =&gt; 5
9 =&gt; 39
17 =&gt; 16
LINEBOXES
1 =&gt; 6925
2 =&gt; 1517
3 =&gt; 587
4 =&gt; 546
5 =&gt; 175
6 =&gt; 145
7 =&gt; 43
8 =&gt; 5
9 =&gt; 39
17 =&gt; 16</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623822</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-27 17:52:38 -0800</bug_when>
    <thetext>CDF from PLT5&apos;s data. To me, picking 4 sounds safe, it covers 95%.

RUNS
1 =&gt; 6910, CDF 0.6911382276455291%
2 =&gt; 813, CDF 0.7724544908981796%
3 =&gt; 1306, CDF 0.9030806161232247%
4 =&gt; 546, CDF 0.9576915383076615%
5 =&gt; 175, CDF 0.9751950390078016%
6 =&gt; 145, CDF 0.9896979395879176%
7 =&gt; 43, CDF 0.993998799759952%
8 =&gt; 5, CDF 0.994498899779956%
9 =&gt; 39, CDF 0.9983996799359872%
17 =&gt; 16, CDF 1.0%
LINEBOXES
1 =&gt; 6925, CDF 0.6926385277055411%
2 =&gt; 1517, CDF 0.844368873774755%
3 =&gt; 587, CDF 0.9030806161232247%
4 =&gt; 546, CDF 0.9576915383076615%
5 =&gt; 175, CDF 0.9751950390078016%
6 =&gt; 145, CDF 0.9896979395879176%
7 =&gt; 43, CDF 0.993998799759952%
8 =&gt; 5, CDF 0.994498899779956%
9 =&gt; 39, CDF 0.9983996799359872%
17 =&gt; 16, CDF 1.0%</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623823</commentid>
    <comment_count>9</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-02-27 17:54:12 -0800</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #8)
&gt; CDF from PLT5&apos;s data. To me, picking 4 sounds safe, it covers 95%.
&gt; 
&gt; RUNS
&gt; 1 =&gt; 6910, CDF 0.6911382276455291%
&gt; 2 =&gt; 813, CDF 0.7724544908981796%
&gt; 3 =&gt; 1306, CDF 0.9030806161232247%
&gt; 4 =&gt; 546, CDF 0.9576915383076615%
&gt; 5 =&gt; 175, CDF 0.9751950390078016%
&gt; 6 =&gt; 145, CDF 0.9896979395879176%
&gt; 7 =&gt; 43, CDF 0.993998799759952%
&gt; 8 =&gt; 5, CDF 0.994498899779956%
&gt; 9 =&gt; 39, CDF 0.9983996799359872%
&gt; 17 =&gt; 16, CDF 1.0%
&gt; LINEBOXES
&gt; 1 =&gt; 6925, CDF 0.6926385277055411%
&gt; 2 =&gt; 1517, CDF 0.844368873774755%
&gt; 3 =&gt; 587, CDF 0.9030806161232247%
&gt; 4 =&gt; 546, CDF 0.9576915383076615%
&gt; 5 =&gt; 175, CDF 0.9751950390078016%
&gt; 6 =&gt; 145, CDF 0.9896979395879176%
&gt; 7 =&gt; 43, CDF 0.993998799759952%
&gt; 8 =&gt; 5, CDF 0.994498899779956%
&gt; 9 =&gt; 39, CDF 0.9983996799359872%
&gt; 17 =&gt; 16, CDF 1.0%

I am fine with 4 for not but please keep in mind we will increase this number over time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623828</commentid>
    <comment_count>10</comment_count>
      <attachid>391951</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-27 17:57:28 -0800</bug_when>
    <thetext>Created attachment 391951
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623830</commentid>
    <comment_count>11</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-27 18:04:16 -0800</bug_when>
    <thetext>(In reply to zalan from comment #9)
&gt; (In reply to Yusuke Suzuki from comment #8)
&gt; &gt; CDF from PLT5&apos;s data. To me, picking 4 sounds safe, it covers 95%.
&gt; &gt; 
&gt; &gt; RUNS
&gt; &gt; 1 =&gt; 6910, CDF 0.6911382276455291%
&gt; &gt; 2 =&gt; 813, CDF 0.7724544908981796%
&gt; &gt; 3 =&gt; 1306, CDF 0.9030806161232247%
&gt; &gt; 4 =&gt; 546, CDF 0.9576915383076615%
&gt; &gt; 5 =&gt; 175, CDF 0.9751950390078016%
&gt; &gt; 6 =&gt; 145, CDF 0.9896979395879176%
&gt; &gt; 7 =&gt; 43, CDF 0.993998799759952%
&gt; &gt; 8 =&gt; 5, CDF 0.994498899779956%
&gt; &gt; 9 =&gt; 39, CDF 0.9983996799359872%
&gt; &gt; 17 =&gt; 16, CDF 1.0%
&gt; &gt; LINEBOXES
&gt; &gt; 1 =&gt; 6925, CDF 0.6926385277055411%
&gt; &gt; 2 =&gt; 1517, CDF 0.844368873774755%
&gt; &gt; 3 =&gt; 587, CDF 0.9030806161232247%
&gt; &gt; 4 =&gt; 546, CDF 0.9576915383076615%
&gt; &gt; 5 =&gt; 175, CDF 0.9751950390078016%
&gt; &gt; 6 =&gt; 145, CDF 0.9896979395879176%
&gt; &gt; 7 =&gt; 43, CDF 0.993998799759952%
&gt; &gt; 8 =&gt; 5, CDF 0.994498899779956%
&gt; &gt; 9 =&gt; 39, CDF 0.9983996799359872%
&gt; &gt; 17 =&gt; 16, CDF 1.0%
&gt; 
&gt; I am fine with 4 for not but please keep in mind we will increase this
&gt; number over time.

Right. For now, 4 looks a balanced number.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623832</commentid>
    <comment_count>12</comment_count>
      <attachid>391951</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-27 18:09:26 -0800</bug_when>
    <thetext>Comment on attachment 391951
Patch

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

&gt; Source/WebCore/layout/inlineformatting/InlineFormattingContext.cpp:136
&gt; +    formattingState().shrinkToFit();

Another design choice is calling this from low-memory-warning, but this sounds like a hack</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623833</commentid>
    <comment_count>13</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-27 18:16:04 -0800</bug_when>
    <thetext>Another idea is adjusting this number at runtime. We can do that for growth factor etc. But here, we are changing initial-capacity to avoid any growth etc. And this is compile time number (because we do not want to allocate memory three times for each allocation of Display::InlineContent). So, we are now collecting the data AOT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623834</commentid>
    <comment_count>14</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-02-27 18:20:15 -0800</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #13)
&gt; Another idea is adjusting this number at runtime. We can do that for growth
&gt; factor etc. But here, we are changing initial-capacity to avoid any growth
&gt; etc. And this is compile time number (because we do not want to allocate
&gt; memory three times for each allocation of Display::InlineContent). So, we
&gt; are now collecting the data AOT.

I think having this constant value is okay for now. The patch however needs some work because:
1. shrinkToFit is an actual layout concept and calling this function like that is extremely confusing.
2. there&apos;s a better place for this call (outside of core layout)
I can re-work this patch if you don&apos;t mind.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623841</commentid>
    <comment_count>15</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-27 18:34:07 -0800</bug_when>
    <thetext>(In reply to zalan from comment #14)
&gt; (In reply to Yusuke Suzuki from comment #13)
&gt; &gt; Another idea is adjusting this number at runtime. We can do that for growth
&gt; &gt; factor etc. But here, we are changing initial-capacity to avoid any growth
&gt; &gt; etc. And this is compile time number (because we do not want to allocate
&gt; &gt; memory three times for each allocation of Display::InlineContent). So, we
&gt; &gt; are now collecting the data AOT.
&gt; 
&gt; I think having this constant value is okay for now. The patch however needs
&gt; some work because:
&gt; 1. shrinkToFit is an actual layout concept and calling this function like
&gt; that is extremely confusing.
&gt; 2. there&apos;s a better place for this call (outside of core layout)
&gt; I can re-work this patch if you don&apos;t mind.

You can do that :) Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623868</commentid>
    <comment_count>16</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-27 21:04:02 -0800</bug_when>
    <thetext>&lt;rdar://problem/59875758&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623870</commentid>
    <comment_count>17</comment_count>
      <attachid>391959</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-02-27 21:09:24 -0800</bug_when>
    <thetext>Created attachment 391959
Patch by Yusuke Suzuki</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623871</commentid>
    <comment_count>18</comment_count>
      <attachid>391960</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-02-27 21:11:35 -0800</bug_when>
    <thetext>Created attachment 391960
Patch by Yusuke</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623891</commentid>
    <comment_count>19</comment_count>
      <attachid>391960</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-02-27 23:33:26 -0800</bug_when>
    <thetext>Comment on attachment 391960
Patch by Yusuke

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

&gt; Source/WebCore/layout/integration/LayoutIntegrationLineLayout.cpp:114
&gt; +    m_inlineFormattingState.shrinkDisplayInlineContent();

Couldn’t this be done in generic IFC code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623944</commentid>
    <comment_count>20</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-02-28 06:35:23 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #19)
&gt; Comment on attachment 391960 [details]
&gt; Patch by Yusuke
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=391960&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/layout/integration/LayoutIntegrationLineLayout.cpp:114
&gt; &gt; +    m_inlineFormattingState.shrinkDisplayInlineContent();
&gt; 
&gt; Couldn’t this be done in generic IFC code?
We need to come up with some strategy for shrinking formatting state data in general (for all the other formatting contexts) until then I think the integration layer is as good as any.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623949</commentid>
    <comment_count>21</comment_count>
      <attachid>391960</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-28 07:21:34 -0800</bug_when>
    <thetext>Comment on attachment 391960
Patch by Yusuke

Clearing flags on attachment: 391960

Committed r257637: &lt;https://trac.webkit.org/changeset/257637&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623950</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-28 07:21:36 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624050</commentid>
    <comment_count>23</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-02-28 11:37:07 -0800</bug_when>
    <thetext>Thanks Alan and Antti!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391941</attachid>
            <date>2020-02-27 16:41:29 -0800</date>
            <delta_ts>2020-02-27 16:42:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208343-20200227164128.patch</filename>
            <type>text/plain</type>
            <size>4390</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDExNTIxNjNmMWU0YTU2
ZmMzOWMzNjQ0ZjA4OTBjMjMwNjkyMWMxMy4uZGIzOGU5ZDM3OGIyMGU3YWJjMDU2NmMyNTJkNGY0
MTE5NDFkNTI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTAyLTI3ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2hyaW5rLXRvLWZpdCBJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA4MzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRnJvbSB0aGUgY29sbGVjdGVkIGRhdGEgaW4gU3BlZWRvbWV0ZXIyLCA5
OS45JSBvZiBSdW5zL0xpbmVCb3hlcyBWZWN0b3IncyBzaXplIGlzIDEgaW4gSW5saW5lRm9ybWF0
dGluZ1N0YXRlLgorICAgICAgICBXZSBzaG91bGQgdXNlIGlubGluZUNhcGFjaXR5ID0gMS4gQW5k
IHdlIGNhbGwgYHNocmlua1RvRml0YCB0byBtYWtlIGl0IHRoZSBleGFjdCBzaXplIGFmdGVyIGJh
a2luZyBEaXNwbGF5OjpJbmxpbmVDb250ZW50LgorICAgICAgICBJdCBzaG91bGQgYmUgbm8tb3Ag
aW4gOTkuOSUgY2FzZXMuCisKKyAgICAgICAgKiBsYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUlu
bGluZUNvbnRlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OklubGluZUNvbnRlbnQ6
OnNocmlua1RvRml0KToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVG
b3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZv
cm1hdHRpbmdDb250ZXh0OjpsYXlvdXRJbkZsb3dDb250ZW50KToKKyAgICAgICAgKiBsYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nU3RhdGU6OnNocmlua1RvRml0KToKKyAgICAg
ICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuaDoKKwog
MjAyMC0wMi0yNyAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgogCiAgICAgICAgIE1l
ZGlhUmVzb3VyY2VMb2FkZXIgb2JqZWN0cyBhcmUgbGVha2luZyBvbiByZWRkaXQuY29tCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUlubGluZUNv
bnRlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5SW5saW5l
Q29udGVudC5oCmluZGV4IGQ3ZGRkYjM1YzAzYjhjZjU4YzVjMWI1MGY1Njk1NjkwYmJiYmFlYzYu
LmIzNDkyNTc2YWEwZGIwYTk4YWZhNTdmNjMxM2EwMGM3YjA4MGI1ZGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5SW5saW5lQ29udGVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5SW5saW5lQ29udGVu
dC5oCkBAIC0zOCwxNCArMzgsMjAgQEAgbmFtZXNwYWNlIERpc3BsYXkgewogc3RydWN0IElubGlu
ZUNvbnRlbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxJbmxpbmVDb250ZW50PiB7CiAgICAgfklubGlu
ZUNvbnRlbnQoKTsKIAotICAgIHVzaW5nIFJ1bnMgPSBWZWN0b3I8UnVuLCAxMD47Ci0gICAgdXNp
bmcgTGluZUJveGVzID0gVmVjdG9yPExpbmVCb3gsIDU+OworICAgIHVzaW5nIFJ1bnMgPSBWZWN0
b3I8UnVuLCAxPjsKKyAgICB1c2luZyBMaW5lQm94ZXMgPSBWZWN0b3I8TGluZUJveCwgMT47CiAK
ICAgICBSdW5zIHJ1bnM7CiAgICAgTGluZUJveGVzIGxpbmVCb3hlczsKIAogICAgIGNvbnN0IExp
bmVCb3gmIGxpbmVCb3hGb3JSdW4oY29uc3QgUnVuJiBydW4pIGNvbnN0IHsgcmV0dXJuIGxpbmVC
b3hlc1tydW4ubGluZUluZGV4KCldOyB9CiAgICAgV1RGOjpJdGVyYXRvclJhbmdlPGNvbnN0IFJ1
bio+IHJ1bnNGb3JSZWN0KGNvbnN0IExheW91dFJlY3QmKSBjb25zdDsKKworICAgIHZvaWQgc2hy
aW5rVG9GaXQoKQorICAgIHsKKyAgICAgICAgcnVucy5zaHJpbmtUb0ZpdCgpOworICAgICAgICBs
aW5lQm94ZXMuc2hyaW5rVG9GaXQoKTsKKyAgICB9CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dC5jcHAKaW5kZXggZGZmZDkzZTA1MTU0ZWYyYzRmNjYxMTFiY2E5MzZhNTc3
OTJiNDkyNy4uMDM1NDNkN2M3YTY3NmRhMTZkM2EwMjdjZjAxY2U0NzE2YTE3NWQ2YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0
dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0
aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMTMzLDYgKzEzMyw3IEBAIHZvaWQg
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEluRmxvd0NvbnRlbnQoSW52YWxpZGF0aW9u
U3RhdGUmIGludmFsaWRhdGlvCiAKICAgICBhdXRvJiBpbmxpbmVJdGVtcyA9IGZvcm1hdHRpbmdT
dGF0ZSgpLmlubGluZUl0ZW1zKCk7CiAgICAgbGluZUxheW91dChpbmxpbmVJdGVtcywgeyAwLCBp
bmxpbmVJdGVtcy5zaXplKCkgfSwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB2ZXJ0aWNhbENvbnN0
cmFpbnRzKTsKKyAgICBmb3JtYXR0aW5nU3RhdGUoKS5zaHJpbmtUb0ZpdCgpOwogICAgIExPR19X
SVRIX1NUUkVBTShGb3JtYXR0aW5nQ29udGV4dExheW91dCwgc3RyZWFtIDw8ICJbRW5kXSAtPiBp
bmxpbmUgZm9ybWF0dGluZyBjb250ZXh0IC0+IGZvcm1hdHRpbmcgcm9vdCgiIDw8ICZyb290KCkg
PDwgIikiKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5jcHAKaW5kZXggODdiNmM5
NWMxNTQ1ZDY0NWNkYmQ0YjA1NDZhZWMxODZjZjNjY2Y1ZC4uMmY1MGIwOGM2YTA4ZmZlYWFjYmYw
ZDVhNWM4NDM2YzRiZjRmZTU3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuY3BwCkBA
IC00NCw2ICs0NCwxMiBAQCBJbmxpbmVGb3JtYXR0aW5nU3RhdGU6On5JbmxpbmVGb3JtYXR0aW5n
U3RhdGUoKQogewogfQogCit2b2lkIElubGluZUZvcm1hdHRpbmdTdGF0ZTo6c2hyaW5rVG9GaXQo
KQoreworICAgIGlmIChtX2Rpc3BsYXlJbmxpbmVDb250ZW50KQorICAgICAgICBtX2Rpc3BsYXlJ
bmxpbmVDb250ZW50LT5zaHJpbmtUb0ZpdCgpOworfQorCiB9CiB9CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRp
bmdTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
Rm9ybWF0dGluZ1N0YXRlLmgKaW5kZXggZjdiZGIzYjBhMjVhN2Y0ZDMxNzRkMDNjMjY1NGJkNGM2
MDA3YzM2MS4uMGE4YWJmYzEzYzYyYzc2N2U4ZDNjOWY2ZTBjMTEwYjAzOGQ4MDAwNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0
dGluZ1N0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lRm9ybWF0dGluZ1N0YXRlLmgKQEAgLTUyLDYgKzUyLDggQEAgY2xhc3MgSW5saW5lRm9y
bWF0dGluZ1N0YXRlIDogcHVibGljIEZvcm1hdHRpbmdTdGF0ZSB7CiAgICAgRGlzcGxheTo6SW5s
aW5lQ29udGVudCYgZW5zdXJlRGlzcGxheUlubGluZUNvbnRlbnQoKTsKICAgICB2b2lkIGNsZWFy
RGlzcGxheUlubGluZUNvbnRlbnQoKSB7IG1fZGlzcGxheUlubGluZUNvbnRlbnQgPSBudWxscHRy
OyB9CiAKKyAgICB2b2lkIHNocmlua1RvRml0KCk7CisKIHByaXZhdGU6CiAgICAgLy8gQ2FjaGVh
YmxlIGlucHV0IHRvIGxpbmUgbGF5b3V0LgogICAgIElubGluZUl0ZW1zIG1faW5saW5lSXRlbXM7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391942</attachid>
            <date>2020-02-27 16:42:53 -0800</date>
            <delta_ts>2020-02-27 17:57:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208343-20200227164252.patch</filename>
            <type>text/plain</type>
            <size>4390</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDExNTIxNjNmMWU0YTU2
ZmMzOWMzNjQ0ZjA4OTBjMjMwNjkyMWMxMy4uZGIzOGU5ZDM3OGIyMGU3YWJjMDU2NmMyNTJkNGY0
MTE5NDFkNTI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTAyLTI3ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2hyaW5rLXRvLWZpdCBJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA4MzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRnJvbSB0aGUgY29sbGVjdGVkIGRhdGEgaW4gU3BlZWRvbWV0ZXIyLCA5
OS45JSBvZiBSdW5zL0xpbmVCb3hlcyBWZWN0b3IncyBzaXplIGlzIDEgaW4gSW5saW5lRm9ybWF0
dGluZ1N0YXRlLgorICAgICAgICBXZSBzaG91bGQgdXNlIGlubGluZUNhcGFjaXR5ID0gMS4gQW5k
IHdlIGNhbGwgYHNocmlua1RvRml0YCB0byBtYWtlIGl0IHRoZSBleGFjdCBzaXplIGFmdGVyIGJh
a2luZyBEaXNwbGF5OjpJbmxpbmVDb250ZW50LgorICAgICAgICBJdCBzaG91bGQgYmUgbm8tb3Ag
aW4gOTkuOSUgY2FzZXMuCisKKyAgICAgICAgKiBsYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUlu
bGluZUNvbnRlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OklubGluZUNvbnRlbnQ6
OnNocmlua1RvRml0KToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVG
b3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZv
cm1hdHRpbmdDb250ZXh0OjpsYXlvdXRJbkZsb3dDb250ZW50KToKKyAgICAgICAgKiBsYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nU3RhdGU6OnNocmlua1RvRml0KToKKyAgICAg
ICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuaDoKKwog
MjAyMC0wMi0yNyAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgogCiAgICAgICAgIE1l
ZGlhUmVzb3VyY2VMb2FkZXIgb2JqZWN0cyBhcmUgbGVha2luZyBvbiByZWRkaXQuY29tCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUlubGluZUNv
bnRlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5SW5saW5l
Q29udGVudC5oCmluZGV4IGQ3ZGRkYjM1YzAzYjhjZjU4YzVjMWI1MGY1Njk1NjkwYmJiYmFlYzYu
LmIzNDkyNTc2YWEwZGIwYTk4YWZhNTdmNjMxM2EwMGM3YjA4MGI1ZGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5SW5saW5lQ29udGVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5SW5saW5lQ29udGVu
dC5oCkBAIC0zOCwxNCArMzgsMjAgQEAgbmFtZXNwYWNlIERpc3BsYXkgewogc3RydWN0IElubGlu
ZUNvbnRlbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxJbmxpbmVDb250ZW50PiB7CiAgICAgfklubGlu
ZUNvbnRlbnQoKTsKIAotICAgIHVzaW5nIFJ1bnMgPSBWZWN0b3I8UnVuLCAxMD47Ci0gICAgdXNp
bmcgTGluZUJveGVzID0gVmVjdG9yPExpbmVCb3gsIDU+OworICAgIHVzaW5nIFJ1bnMgPSBWZWN0
b3I8UnVuLCAxPjsKKyAgICB1c2luZyBMaW5lQm94ZXMgPSBWZWN0b3I8TGluZUJveCwgMT47CiAK
ICAgICBSdW5zIHJ1bnM7CiAgICAgTGluZUJveGVzIGxpbmVCb3hlczsKIAogICAgIGNvbnN0IExp
bmVCb3gmIGxpbmVCb3hGb3JSdW4oY29uc3QgUnVuJiBydW4pIGNvbnN0IHsgcmV0dXJuIGxpbmVC
b3hlc1tydW4ubGluZUluZGV4KCldOyB9CiAgICAgV1RGOjpJdGVyYXRvclJhbmdlPGNvbnN0IFJ1
bio+IHJ1bnNGb3JSZWN0KGNvbnN0IExheW91dFJlY3QmKSBjb25zdDsKKworICAgIHZvaWQgc2hy
aW5rVG9GaXQoKQorICAgIHsKKyAgICAgICAgcnVucy5zaHJpbmtUb0ZpdCgpOworICAgICAgICBs
aW5lQm94ZXMuc2hyaW5rVG9GaXQoKTsKKyAgICB9CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dC5jcHAKaW5kZXggZGZmZDkzZTA1MTU0ZWYyYzRmNjYxMTFiY2E5MzZhNTc3
OTJiNDkyNy4uMDM1NDNkN2M3YTY3NmRhMTZkM2EwMjdjZjAxY2U0NzE2YTE3NWQ2YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0
dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0
aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMTMzLDYgKzEzMyw3IEBAIHZvaWQg
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEluRmxvd0NvbnRlbnQoSW52YWxpZGF0aW9u
U3RhdGUmIGludmFsaWRhdGlvCiAKICAgICBhdXRvJiBpbmxpbmVJdGVtcyA9IGZvcm1hdHRpbmdT
dGF0ZSgpLmlubGluZUl0ZW1zKCk7CiAgICAgbGluZUxheW91dChpbmxpbmVJdGVtcywgeyAwLCBp
bmxpbmVJdGVtcy5zaXplKCkgfSwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB2ZXJ0aWNhbENvbnN0
cmFpbnRzKTsKKyAgICBmb3JtYXR0aW5nU3RhdGUoKS5zaHJpbmtUb0ZpdCgpOwogICAgIExPR19X
SVRIX1NUUkVBTShGb3JtYXR0aW5nQ29udGV4dExheW91dCwgc3RyZWFtIDw8ICJbRW5kXSAtPiBp
bmxpbmUgZm9ybWF0dGluZyBjb250ZXh0IC0+IGZvcm1hdHRpbmcgcm9vdCgiIDw8ICZyb290KCkg
PDwgIikiKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5jcHAKaW5kZXggODdiNmM5
NWMxNTQ1ZDY0NWNkYmQ0YjA1NDZhZWMxODZjZjNjY2Y1ZC4uMmY1MGIwOGM2YTA4ZmZlYWFjYmYw
ZDVhNWM4NDM2YzRiZjRmZTU3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuY3BwCkBA
IC00NCw2ICs0NCwxMiBAQCBJbmxpbmVGb3JtYXR0aW5nU3RhdGU6On5JbmxpbmVGb3JtYXR0aW5n
U3RhdGUoKQogewogfQogCit2b2lkIElubGluZUZvcm1hdHRpbmdTdGF0ZTo6c2hyaW5rVG9GaXQo
KQoreworICAgIGlmIChtX2Rpc3BsYXlJbmxpbmVDb250ZW50KQorICAgICAgICBtX2Rpc3BsYXlJ
bmxpbmVDb250ZW50LT5zaHJpbmtUb0ZpdCgpOworfQorCiB9CiB9CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRp
bmdTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
Rm9ybWF0dGluZ1N0YXRlLmgKaW5kZXggZjdiZGIzYjBhMjVhN2Y0ZDMxNzRkMDNjMjY1NGJkNGM2
MDA3YzM2MS4uMGE4YWJmYzEzYzYyYzc2N2U4ZDNjOWY2ZTBjMTEwYjAzOGQ4MDAwNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0
dGluZ1N0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lRm9ybWF0dGluZ1N0YXRlLmgKQEAgLTUyLDYgKzUyLDggQEAgY2xhc3MgSW5saW5lRm9y
bWF0dGluZ1N0YXRlIDogcHVibGljIEZvcm1hdHRpbmdTdGF0ZSB7CiAgICAgRGlzcGxheTo6SW5s
aW5lQ29udGVudCYgZW5zdXJlRGlzcGxheUlubGluZUNvbnRlbnQoKTsKICAgICB2b2lkIGNsZWFy
RGlzcGxheUlubGluZUNvbnRlbnQoKSB7IG1fZGlzcGxheUlubGluZUNvbnRlbnQgPSBudWxscHRy
OyB9CiAKKyAgICB2b2lkIHNocmlua1RvRml0KCk7CisKIHByaXZhdGU6CiAgICAgLy8gQ2FjaGVh
YmxlIGlucHV0IHRvIGxpbmUgbGF5b3V0LgogICAgIElubGluZUl0ZW1zIG1faW5saW5lSXRlbXM7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391951</attachid>
            <date>2020-02-27 17:57:28 -0800</date>
            <delta_ts>2020-02-27 21:09:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208343-20200227175727.patch</filename>
            <type>text/plain</type>
            <size>4583</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDExNTIxNjNmMWU0YTU2
ZmMzOWMzNjQ0ZjA4OTBjMjMwNjkyMWMxMy4uMWU5YTg4ZDNmOTg3M2FkYzAzM2NmNDNhMjY4YzE2
MzRiY2RmOTRkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTAyLTI3ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2hyaW5rLXRvLWZpdCBJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA4MzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRnJvbSB0aGUgY29sbGVjdGVkIGRhdGEgaW4gUExUNSwgOTUlIG9mIFJ1
bnMgLyBMaW5lQm94ZXMgYXJlIDw9IDQsIHdoaWxlIHdlIGFyZSBoYXZpbmcgMTAgYW5kIDUgaW5s
aW5lQ2FwYWNpdHkuCisgICAgICAgIFdlIGFkanVzdCB0aGlzIGlubGluZUNhcGFjaXR5IHRvIDQg
YmFzZWQgb24gdGhpcyBudW1iZXIuIEl0IGFsc28gY292ZXJzIGFsbW9zdCBhbGwgb2YgU3BlZWRv
bWV0ZXIyLjAgY29udGVudCAoaW4gaXQsIDk5LjklIGlzIDEpLgorICAgICAgICBXZSBhbHNvIGNh
bGwgYHNocmlua1RvRml0YCB0byBtYWtlIGl0IHRoZSBleGFjdCBzaXplIGFmdGVyIGJha2luZyBE
aXNwbGF5OjpJbmxpbmVDb250ZW50LiBJdCBzaG91bGQgYmUgbm8tb3AgaW4gOTUlIGNhc2VzLgor
CisgICAgICAgICogbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlJbmxpbmVDb250ZW50Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpJbmxpbmVDb250ZW50OjpzaHJpbmtUb0ZpdCk6Cisg
ICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6
bGF5b3V0SW5GbG93Q29udGVudCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lRm9ybWF0dGluZ1N0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5s
aW5lRm9ybWF0dGluZ1N0YXRlOjpzaHJpbmtUb0ZpdCk6CisgICAgICAgICogbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmg6CisKIDIwMjAtMDItMjcgIFBlbmcg
TGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBNZWRpYVJlc291cmNlTG9hZGVy
IG9iamVjdHMgYXJlIGxlYWtpbmcgb24gcmVkZGl0LmNvbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlJbmxpbmVDb250ZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUlubGluZUNvbnRlbnQuaAppbmRleCBk
N2RkZGIzNWMwM2I4Y2Y1OGM1YzFiNTBmNTY5NTY5MGJiYmJhZWM2Li42NTcwY2JlNjYyNDY2N2My
NGE0NGZkMDM1MDg1NTkzYTdlYmZmZTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZGlzcGxheXRyZWUvRGlzcGxheUlubGluZUNvbnRlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUlubGluZUNvbnRlbnQuaApAQCAtMzgsMTQgKzM4
LDIxIEBAIG5hbWVzcGFjZSBEaXNwbGF5IHsKIHN0cnVjdCBJbmxpbmVDb250ZW50IDogcHVibGlj
IFJlZkNvdW50ZWQ8SW5saW5lQ29udGVudD4gewogICAgIH5JbmxpbmVDb250ZW50KCk7CiAKLSAg
ICB1c2luZyBSdW5zID0gVmVjdG9yPFJ1biwgMTA+OwotICAgIHVzaW5nIExpbmVCb3hlcyA9IFZl
Y3RvcjxMaW5lQm94LCA1PjsKKyAgICAvLyBOdW1iZXJzIGFyZSBzZWxlY3RlZCBmcm9tIFBMVDUg
ZGF0YS4gOTUlIG9mIERpc3BsYXk6OklubGluZUNvbnRlbnQgY2FuIGJlIGNvdmVyZWQgYnkgNC4K
KyAgICB1c2luZyBSdW5zID0gVmVjdG9yPFJ1biwgND47CisgICAgdXNpbmcgTGluZUJveGVzID0g
VmVjdG9yPExpbmVCb3gsIDQ+OwogCiAgICAgUnVucyBydW5zOwogICAgIExpbmVCb3hlcyBsaW5l
Qm94ZXM7CiAKICAgICBjb25zdCBMaW5lQm94JiBsaW5lQm94Rm9yUnVuKGNvbnN0IFJ1biYgcnVu
KSBjb25zdCB7IHJldHVybiBsaW5lQm94ZXNbcnVuLmxpbmVJbmRleCgpXTsgfQogICAgIFdURjo6
SXRlcmF0b3JSYW5nZTxjb25zdCBSdW4qPiBydW5zRm9yUmVjdChjb25zdCBMYXlvdXRSZWN0Jikg
Y29uc3Q7CisKKyAgICB2b2lkIHNocmlua1RvRml0KCkKKyAgICB7CisgICAgICAgIHJ1bnMuc2hy
aW5rVG9GaXQoKTsKKyAgICAgICAgbGluZUJveGVzLnNocmlua1RvRml0KCk7CisgICAgfQogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IGRmZmQ5M2UwNTE1
NGVmMmM0ZjY2MTExYmNhOTM2YTU3NzkyYjQ5MjcuLjAzNTQzZDdjN2E2NzZkYTE2ZDNhMDI3Y2Yw
MWNlNDcxNmExNzVkNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAg
LTEzMyw2ICsxMzMsNyBAQCB2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRJbkZs
b3dDb250ZW50KEludmFsaWRhdGlvblN0YXRlJiBpbnZhbGlkYXRpbwogCiAgICAgYXV0byYgaW5s
aW5lSXRlbXMgPSBmb3JtYXR0aW5nU3RhdGUoKS5pbmxpbmVJdGVtcygpOwogICAgIGxpbmVMYXlv
dXQoaW5saW5lSXRlbXMsIHsgMCwgaW5saW5lSXRlbXMuc2l6ZSgpIH0sIGhvcml6b250YWxDb25z
dHJhaW50cywgdmVydGljYWxDb25zdHJhaW50cyk7CisgICAgZm9ybWF0dGluZ1N0YXRlKCkuc2hy
aW5rVG9GaXQoKTsKICAgICBMT0dfV0lUSF9TVFJFQU0oRm9ybWF0dGluZ0NvbnRleHRMYXlvdXQs
IHN0cmVhbSA8PCAiW0VuZF0gLT4gaW5saW5lIGZvcm1hdHRpbmcgY29udGV4dCAtPiBmb3JtYXR0
aW5nIHJvb3QoIiA8PCAmcm9vdCgpIDw8ICIpIik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5n
U3RhdGUuY3BwCmluZGV4IDg3YjZjOTVjMTU0NWQ2NDVjZGJkNGIwNTQ2YWVjMTg2Y2YzY2NmNWQu
LjJmNTBiMDhjNmEwOGZmZWFhY2JmMGQ1YTVjODQzNmM0YmY0ZmU1NzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
Rm9ybWF0dGluZ1N0YXRlLmNwcApAQCAtNDQsNiArNDQsMTIgQEAgSW5saW5lRm9ybWF0dGluZ1N0
YXRlOjp+SW5saW5lRm9ybWF0dGluZ1N0YXRlKCkKIHsKIH0KIAordm9pZCBJbmxpbmVGb3JtYXR0
aW5nU3RhdGU6OnNocmlua1RvRml0KCkKK3sKKyAgICBpZiAobV9kaXNwbGF5SW5saW5lQ29udGVu
dCkKKyAgICAgICAgbV9kaXNwbGF5SW5saW5lQ29udGVudC0+c2hyaW5rVG9GaXQoKTsKK30KKwog
fQogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9y
bWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5oCmluZGV4IGY3YmRiM2IwYTI1
YTdmNGQzMTc0ZDAzYzI2NTRiZDRjNjAwN2MzNjEuLjBhOGFiZmMxM2M2MmM3NjdlOGQzYzlmNmUw
YzExMGIwMzhkODAwMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5oCkBAIC01Miw2ICs1
Miw4IEBAIGNsYXNzIElubGluZUZvcm1hdHRpbmdTdGF0ZSA6IHB1YmxpYyBGb3JtYXR0aW5nU3Rh
dGUgewogICAgIERpc3BsYXk6OklubGluZUNvbnRlbnQmIGVuc3VyZURpc3BsYXlJbmxpbmVDb250
ZW50KCk7CiAgICAgdm9pZCBjbGVhckRpc3BsYXlJbmxpbmVDb250ZW50KCkgeyBtX2Rpc3BsYXlJ
bmxpbmVDb250ZW50ID0gbnVsbHB0cjsgfQogCisgICAgdm9pZCBzaHJpbmtUb0ZpdCgpOworCiBw
cml2YXRlOgogICAgIC8vIENhY2hlYWJsZSBpbnB1dCB0byBsaW5lIGxheW91dC4KICAgICBJbmxp
bmVJdGVtcyBtX2lubGluZUl0ZW1zOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391959</attachid>
            <date>2020-02-27 21:09:24 -0800</date>
            <delta_ts>2020-02-27 21:09:50 -0800</delta_ts>
            <desc>Patch by Yusuke Suzuki</desc>
            <filename>Patch.txt</filename>
            <type>text/plain</type>
            <size>7589</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxYzZkYWNmNmZlYS4uYjBkYjc5M2Q2MWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAyMC0wMi0yNyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgor
CisgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGZvciBub24tdW5pZmllZCBidWlsZHMgYWZ0
ZXIgcjI1NzUwNy4KKworICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dC5oOgorICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tN
YXJnaW5Db2xsYXBzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0
dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpjb21wdXRlZFBvc2l0aXZlQW5kTmVnYXRpdmVN
YXJnaW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6dXBkYXRlTWFyZ2luQWZ0ZXJGb3JQcmV2aW91c1NpYmxp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0Ojpjb21wdXRlZFBvc2l0aXZlQW5kTmVnYXRp
dmVNYXJnaW4pOiBEZWxldGVkLgorCiAyMDIwLTAyLTI2ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3
ZWJraXQub3JnPgogCiAgICAgICAgIENyZWF0ZSBBdWRpb0Rlc3RpbmF0aW9uIGluIHRoZSBHUFUg
cHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGlu
Zy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tm
b3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaAppbmRleCAxMGZhNWMxMTg5OC4uNjcx
YTg4ODFlYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRp
bmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9i
bG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oCkBAIC0xMzQsNiArMTM0LDgg
QEAgcHJpdmF0ZToKICAgICAgICAgUG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luOjpW
YWx1ZXMgcHJlY29tcHV0ZWRQb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlKGNvbnN0IEJveCYs
IFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzKSBjb25zdDsKICAgICAgICAg
UG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luOjpWYWx1ZXMgcHJlY29tcHV0ZWRQb3Np
dGl2ZU5lZ2F0aXZlVmFsdWVzKGNvbnN0IEJveCYsIE1hcmdpblR5cGUpIGNvbnN0OwogCisgICAg
ICAgIFBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbjo6VmFsdWVzIGNvbXB1dGVkUG9z
aXRpdmVBbmROZWdhdGl2ZU1hcmdpbihQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW46
OlZhbHVlcywgUG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luOjpWYWx1ZXMpIGNvbnN0
OworCiAgICAgICAgIGJvb2wgaGFzQ2xlYXJhbmNlKGNvbnN0IEJveCYpIGNvbnN0OwogCiAgICAg
ICAgIExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIHsgcmV0dXJuIG1fYmxvY2tGb3JtYXR0aW5n
Q29udGV4dC5sYXlvdXRTdGF0ZSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcAppbmRleCBh
NWU3MGI2MGJmZi4uNjhkNjNhZDQ1YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcApAQCAt
NDI3LDcgKzQyNyw3IEBAIGJvb2wgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFw
c2U6Om1hcmdpbnNDb2xsYXBzZVRocm91Z2goY29uc3QgQm94JiBsCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLXN0YXRpYyBQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW46OlZhbHVlcyBj
b21wdXRlZFBvc2l0aXZlQW5kTmVnYXRpdmVNYXJnaW4oUG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRp
Y2FsTWFyZ2luOjpWYWx1ZXMgYSwgUG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luOjpW
YWx1ZXMgYikKK1Bvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbjo6VmFsdWVzIEJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpjb21wdXRlZFBvc2l0aXZlQW5kTmVn
YXRpdmVNYXJnaW4oUG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luOjpWYWx1ZXMgYSwg
UG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luOjpWYWx1ZXMgYikgY29uc3QKIHsKICAg
ICBQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW46OlZhbHVlcyBjb21wdXRlZFZhbHVl
czsKICAgICBpZiAoYS5wb3NpdGl2ZSAmJiBiLnBvc2l0aXZlKQpAQCAtNDkxLDkgKzQ5MSw5IEBA
IHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6OnVwZGF0ZU1hcmdp
bkFmdGVyRm9yUHJldmlvdXNTaWJsaW5nCiAgICAgICAgIGF1dG8gcHJldmlvdXNTaWJsaW5nUG9z
aXRpdmVOZWdhdGl2ZU1hcmdpbiA9IGJsb2NrRm9ybWF0dGluZ1N0YXRlLnBvc2l0aXZlQW5kTmVn
YXRpdmVWZXJ0aWNhbE1hcmdpbihwcmV2aW91c1NpYmxpbmcpOwogICAgICAgICBhdXRvIHBvc2l0
aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUgPSBibG9ja0Zvcm1hdHRpbmdTdGF0ZS5wb3NpdGl2ZUFu
ZE5lZ2F0aXZlVmVydGljYWxNYXJnaW4oKmN1cnJlbnRCb3gpLmJlZm9yZTsKIAotICAgICAgICBw
cmV2aW91c1NpYmxpbmdQb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luLmFmdGVyID0gY29tcHV0ZWRQb3Np
dGl2ZUFuZE5lZ2F0aXZlTWFyZ2luKHBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUsIHByZXZp
b3VzU2libGluZ1Bvc2l0aXZlTmVnYXRpdmVNYXJnaW4uYWZ0ZXIpOworICAgICAgICBwcmV2aW91
c1NpYmxpbmdQb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luLmFmdGVyID0gbWFyZ2luQ29sbGFwc2UuY29t
cHV0ZWRQb3NpdGl2ZUFuZE5lZ2F0aXZlTWFyZ2luKHBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZv
cmUsIHByZXZpb3VzU2libGluZ1Bvc2l0aXZlTmVnYXRpdmVNYXJnaW4uYWZ0ZXIpOwogICAgICAg
ICBpZiAobWFyZ2luc0NvbGxhcHNlVGhyb3VnaCkgewotICAgICAgICAgICAgcHJldmlvdXNTaWJs
aW5nUG9zaXRpdmVOZWdhdGl2ZU1hcmdpbi5iZWZvcmUgPSBjb21wdXRlZFBvc2l0aXZlQW5kTmVn
YXRpdmVNYXJnaW4ocHJldmlvdXNTaWJsaW5nUG9zaXRpdmVOZWdhdGl2ZU1hcmdpbi5iZWZvcmUs
IHByZXZpb3VzU2libGluZ1Bvc2l0aXZlTmVnYXRpdmVNYXJnaW4uYWZ0ZXIpOworICAgICAgICAg
ICAgcHJldmlvdXNTaWJsaW5nUG9zaXRpdmVOZWdhdGl2ZU1hcmdpbi5iZWZvcmUgPSBtYXJnaW5D
b2xsYXBzZS5jb21wdXRlZFBvc2l0aXZlQW5kTmVnYXRpdmVNYXJnaW4ocHJldmlvdXNTaWJsaW5n
UG9zaXRpdmVOZWdhdGl2ZU1hcmdpbi5iZWZvcmUsIHByZXZpb3VzU2libGluZ1Bvc2l0aXZlTmVn
YXRpdmVNYXJnaW4uYWZ0ZXIpOwogICAgICAgICAgICAgcHJldmlvdXNTaWJsaW5nUG9zaXRpdmVO
ZWdhdGl2ZU1hcmdpbi5hZnRlciA9IHByZXZpb3VzU2libGluZ1Bvc2l0aXZlTmVnYXRpdmVNYXJn
aW4uYmVmb3JlOwogICAgICAgICB9CiAgICAgICAgIGJsb2NrRm9ybWF0dGluZ1N0YXRlLnNldFBv
c2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbihwcmV2aW91c1NpYmxpbmcsIHByZXZpb3Vz
U2libGluZ1Bvc2l0aXZlTmVnYXRpdmVNYXJnaW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDFjNmRhY2Y2ZmVh
Li4zMTdiZmQ0Njk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTAyLTI3ICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2hyaW5rLXRvLWZp
dCBEaXNwbGF5OjpMaW5lQm94L0Rpc3BsYXk6OlJ1biB2ZWN0b3JzLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4MzQzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRnJvbSB0aGUgY29sbGVjdGVkIGRhdGEg
aW4gUExUNSwgOTUlIG9mIFJ1bnMgLyBMaW5lQm94ZXMgYXJlIDw9IDQsIHdoaWxlIHdlIGFyZSBo
YXZpbmcgMTAgYW5kIDUgaW5saW5lQ2FwYWNpdHkuCisgICAgICAgIFdlIGFkanVzdCB0aGlzIGlu
bGluZUNhcGFjaXR5IHRvIDQgYmFzZWQgb24gdGhpcyBudW1iZXIuIEl0IGFsc28gY292ZXJzIGFs
bW9zdCBhbGwgb2YgU3BlZWRvbWV0ZXIyLjAgY29udGVudCAoaW4gaXQsIDk5LjklIGlzIDEpLgor
ICAgICAgICBXZSBhbHNvIGNhbGwgYHNocmlua1RvRml0YCB0byBtYWtlIGl0IHRoZSBleGFjdCBz
aXplIGFmdGVyIGJha2luZyBEaXNwbGF5OjpJbmxpbmVDb250ZW50LiBJdCBzaG91bGQgYmUgbm8t
b3AgaW4gOTUlIGNhc2VzLgorCisgICAgICAgICogbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlJ
bmxpbmVDb250ZW50Lmg6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
Rm9ybWF0dGluZ1N0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1h
dHRpbmdTdGF0ZTo6c2hyaW5rRGlzcGxheUlubGluZUNvbnRlbnQpOgorICAgICAgICAqIGxheW91
dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6OmxheW91dCk6CisKIDIwMjAt
MDItMjYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ3JlYXRl
IEF1ZGlvRGVzdGluYXRpb24gaW4gdGhlIEdQVSBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUlubGluZUNvbnRlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5SW5saW5lQ29udGVudC5oCmluZGV4
IGQ3ZGRkYjM1YzAzLi43MDM0NDM4MzlmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlJbmxpbmVDb250ZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlJbmxpbmVDb250ZW50LmgKQEAgLTM4LDggKzM4
LDggQEAgbmFtZXNwYWNlIERpc3BsYXkgewogc3RydWN0IElubGluZUNvbnRlbnQgOiBwdWJsaWMg
UmVmQ291bnRlZDxJbmxpbmVDb250ZW50PiB7CiAgICAgfklubGluZUNvbnRlbnQoKTsKIAotICAg
IHVzaW5nIFJ1bnMgPSBWZWN0b3I8UnVuLCAxMD47Ci0gICAgdXNpbmcgTGluZUJveGVzID0gVmVj
dG9yPExpbmVCb3gsIDU+OworICAgIHVzaW5nIFJ1bnMgPSBWZWN0b3I8UnVuLCA0PjsKKyAgICB1
c2luZyBMaW5lQm94ZXMgPSBWZWN0b3I8TGluZUJveCwgND47CiAKICAgICBSdW5zIHJ1bnM7CiAg
ICAgTGluZUJveGVzIGxpbmVCb3hlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5oIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgKaW5kZXgg
ZjdiZGIzYjBhMjUuLjY4NzlkNDEyM2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuaApA
QCAtNTAsNyArNTAsOSBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBEaXNwbGF5OjpJbmxpbmVDb250
ZW50KiBkaXNwbGF5SW5saW5lQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheUlubGlu
ZUNvbnRlbnQuZ2V0KCk7IH0KICAgICBEaXNwbGF5OjpJbmxpbmVDb250ZW50JiBlbnN1cmVEaXNw
bGF5SW5saW5lQ29udGVudCgpOworCiAgICAgdm9pZCBjbGVhckRpc3BsYXlJbmxpbmVDb250ZW50
KCkgeyBtX2Rpc3BsYXlJbmxpbmVDb250ZW50ID0gbnVsbHB0cjsgfQorICAgIHZvaWQgc2hyaW5r
RGlzcGxheUlubGluZUNvbnRlbnQoKTsKIAogcHJpdmF0ZToKICAgICAvLyBDYWNoZWFibGUgaW5w
dXQgdG8gbGluZSBsYXlvdXQuCkBAIC02Niw2ICs2OCwxNCBAQCBpbmxpbmUgRGlzcGxheTo6SW5s
aW5lQ29udGVudCYgSW5saW5lRm9ybWF0dGluZ1N0YXRlOjplbnN1cmVEaXNwbGF5SW5saW5lQ29u
dGVudAogICAgIHJldHVybiAqbV9kaXNwbGF5SW5saW5lQ29udGVudDsKIH0KIAoraW5saW5lIHZv
aWQgSW5saW5lRm9ybWF0dGluZ1N0YXRlOjpzaHJpbmtEaXNwbGF5SW5saW5lQ29udGVudCgpCit7
CisgICAgaWYgKCFtX2Rpc3BsYXlJbmxpbmVDb250ZW50KQorICAgICAgICByZXR1cm47CisgICAg
bV9kaXNwbGF5SW5saW5lQ29udGVudC0+cnVucy5zaHJpbmtUb0ZpdCgpOworICAgIG1fZGlzcGxh
eUlubGluZUNvbnRlbnQtPmxpbmVCb3hlcy5zaHJpbmtUb0ZpdCgpOworfQorCiB9CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvbkxpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xh
eW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHAKaW5kZXggZTRiZTA0YTc2MzEuLmU4ZGIzNzgz
NTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0
SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcApAQCAtMTExLDYgKzExMSw3
IEBAIHZvaWQgTGluZUxheW91dDo6bGF5b3V0KCkKICAgICBhdXRvIHZlcnRpY2FsQ29uc3RyYWlu
dHMgPSBMYXlvdXQ6OlZlcnRpY2FsQ29uc3RyYWludHMgeyBtX2Zsb3cuYm9yZGVyQW5kUGFkZGlu
Z0JlZm9yZSgpLCB7IH0gfTsKIAogICAgIGlubGluZUZvcm1hdHRpbmdDb250ZXh0LmxheW91dElu
Rmxvd0NvbnRlbnQoaW52YWxpZGF0aW9uU3RhdGUsIGhvcml6b250YWxDb25zdHJhaW50cywgdmVy
dGljYWxDb25zdHJhaW50cyk7CisgICAgbV9pbmxpbmVGb3JtYXR0aW5nU3RhdGUuc2hyaW5rRGlz
cGxheUlubGluZUNvbnRlbnQoKTsKIH0KIAogdm9pZCBMaW5lTGF5b3V0OjpwcmVwYXJlTGF5b3V0
U3RhdGUoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391960</attachid>
            <date>2020-02-27 21:11:35 -0800</date>
            <delta_ts>2020-02-28 07:21:34 -0800</delta_ts>
            <desc>Patch by Yusuke</desc>
            <filename>Patch.txt</filename>
            <type>text/plain</type>
            <size>3567</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxYzZkYWNmNmZlYS4uMzE3YmZkNDY5NmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAyMC0wMi0yNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFNocmluay10by1maXQgRGlzcGxheTo6TGluZUJveC9EaXNwbGF5OjpSdW4g
dmVjdG9ycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwODM0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEZyb20gdGhlIGNvbGxlY3RlZCBkYXRhIGluIFBMVDUsIDk1JSBvZiBSdW5zIC8gTGluZUJveGVz
IGFyZSA8PSA0LCB3aGlsZSB3ZSBhcmUgaGF2aW5nIDEwIGFuZCA1IGlubGluZUNhcGFjaXR5Lgor
ICAgICAgICBXZSBhZGp1c3QgdGhpcyBpbmxpbmVDYXBhY2l0eSB0byA0IGJhc2VkIG9uIHRoaXMg
bnVtYmVyLiBJdCBhbHNvIGNvdmVycyBhbG1vc3QgYWxsIG9mIFNwZWVkb21ldGVyMi4wIGNvbnRl
bnQgKGluIGl0LCA5OS45JSBpcyAxKS4KKyAgICAgICAgV2UgYWxzbyBjYWxsIGBzaHJpbmtUb0Zp
dGAgdG8gbWFrZSBpdCB0aGUgZXhhY3Qgc2l6ZSBhZnRlciBiYWtpbmcgRGlzcGxheTo6SW5saW5l
Q29udGVudC4gSXQgc2hvdWxkIGJlIG5vLW9wIGluIDk1JSBjYXNlcy4KKworICAgICAgICAqIGxh
eW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5SW5saW5lQ29udGVudC5oOgorICAgICAgICAqIGxheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nU3RhdGU6OnNocmlua0Rpc3BsYXlJbmxpbmVD
b250ZW50KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25M
aW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMaW5l
TGF5b3V0OjpsYXlvdXQpOgorCiAyMDIwLTAyLTI2ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIENyZWF0ZSBBdWRpb0Rlc3RpbmF0aW9uIGluIHRoZSBHUFUgcHJv
Y2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3Bs
YXlJbmxpbmVDb250ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlz
cGxheUlubGluZUNvbnRlbnQuaAppbmRleCBkN2RkZGIzNWMwMy4uNzAzNDQzODM5ZjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5SW5saW5lQ29u
dGVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5SW5s
aW5lQ29udGVudC5oCkBAIC0zOCw4ICszOCw4IEBAIG5hbWVzcGFjZSBEaXNwbGF5IHsKIHN0cnVj
dCBJbmxpbmVDb250ZW50IDogcHVibGljIFJlZkNvdW50ZWQ8SW5saW5lQ29udGVudD4gewogICAg
IH5JbmxpbmVDb250ZW50KCk7CiAKLSAgICB1c2luZyBSdW5zID0gVmVjdG9yPFJ1biwgMTA+Owot
ICAgIHVzaW5nIExpbmVCb3hlcyA9IFZlY3RvcjxMaW5lQm94LCA1PjsKKyAgICB1c2luZyBSdW5z
ID0gVmVjdG9yPFJ1biwgND47CisgICAgdXNpbmcgTGluZUJveGVzID0gVmVjdG9yPExpbmVCb3gs
IDQ+OwogCiAgICAgUnVucyBydW5zOwogICAgIExpbmVCb3hlcyBsaW5lQm94ZXM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0
aW5nU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUZvcm1hdHRpbmdTdGF0ZS5oCmluZGV4IGY3YmRiM2IwYTI1Li42ODc5ZDQxMjNjMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0
dGluZ1N0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lRm9ybWF0dGluZ1N0YXRlLmgKQEAgLTUwLDcgKzUwLDkgQEAgcHVibGljOgogCiAgICAg
Y29uc3QgRGlzcGxheTo6SW5saW5lQ29udGVudCogZGlzcGxheUlubGluZUNvbnRlbnQoKSBjb25z
dCB7IHJldHVybiBtX2Rpc3BsYXlJbmxpbmVDb250ZW50LmdldCgpOyB9CiAgICAgRGlzcGxheTo6
SW5saW5lQ29udGVudCYgZW5zdXJlRGlzcGxheUlubGluZUNvbnRlbnQoKTsKKwogICAgIHZvaWQg
Y2xlYXJEaXNwbGF5SW5saW5lQ29udGVudCgpIHsgbV9kaXNwbGF5SW5saW5lQ29udGVudCA9IG51
bGxwdHI7IH0KKyAgICB2b2lkIHNocmlua0Rpc3BsYXlJbmxpbmVDb250ZW50KCk7CiAKIHByaXZh
dGU6CiAgICAgLy8gQ2FjaGVhYmxlIGlucHV0IHRvIGxpbmUgbGF5b3V0LgpAQCAtNjYsNiArNjgs
MTQgQEAgaW5saW5lIERpc3BsYXk6OklubGluZUNvbnRlbnQmIElubGluZUZvcm1hdHRpbmdTdGF0
ZTo6ZW5zdXJlRGlzcGxheUlubGluZUNvbnRlbnQKICAgICByZXR1cm4gKm1fZGlzcGxheUlubGlu
ZUNvbnRlbnQ7CiB9CiAKK2lubGluZSB2b2lkIElubGluZUZvcm1hdHRpbmdTdGF0ZTo6c2hyaW5r
RGlzcGxheUlubGluZUNvbnRlbnQoKQoreworICAgIGlmICghbV9kaXNwbGF5SW5saW5lQ29udGVu
dCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fZGlzcGxheUlubGluZUNvbnRlbnQtPnJ1bnMuc2hy
aW5rVG9GaXQoKTsKKyAgICBtX2Rpc3BsYXlJbmxpbmVDb250ZW50LT5saW5lQm94ZXMuc2hyaW5r
VG9GaXQoKTsKK30KKwogfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCmlu
ZGV4IGU0YmUwNGE3NjMxLi5lOGRiMzc4MzU4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxh
eW91dC5jcHAKQEAgLTExMSw2ICsxMTEsNyBAQCB2b2lkIExpbmVMYXlvdXQ6OmxheW91dCgpCiAg
ICAgYXV0byB2ZXJ0aWNhbENvbnN0cmFpbnRzID0gTGF5b3V0OjpWZXJ0aWNhbENvbnN0cmFpbnRz
IHsgbV9mbG93LmJvcmRlckFuZFBhZGRpbmdCZWZvcmUoKSwgeyB9IH07CiAKICAgICBpbmxpbmVG
b3JtYXR0aW5nQ29udGV4dC5sYXlvdXRJbkZsb3dDb250ZW50KGludmFsaWRhdGlvblN0YXRlLCBo
b3Jpem9udGFsQ29uc3RyYWludHMsIHZlcnRpY2FsQ29uc3RyYWludHMpOworICAgIG1faW5saW5l
Rm9ybWF0dGluZ1N0YXRlLnNocmlua0Rpc3BsYXlJbmxpbmVDb250ZW50KCk7CiB9CiAKIHZvaWQg
TGluZUxheW91dDo6cHJlcGFyZUxheW91dFN0YXRlKCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>