<?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>199929</bug_id>
          
          <creation_ts>2019-07-18 20:17:26 -0700</creation_ts>
          <short_desc>[JSC] Make DFG Local CSE and AI conservative for huge basic block</short_desc>
          <delta_ts>2019-07-22 16:07:16 -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>JavaScriptCore</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>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1554113</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-18 20:17:26 -0700</bug_when>
    <thetext>Precise structure transition tracking takes quadratic complexity for N, where N nodes are in a basic block.
We should give up for ridiculously large basic block.

I would like to adjust the threshold for DFG optimization too, but it would be good in a separate patch, idk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554117</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-18 21:03:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/49309924&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554119</commentid>
    <comment_count>2</comment_count>
      <attachid>374438</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-18 21:14:48 -0700</bug_when>
    <thetext>Created attachment 374438
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554120</commentid>
    <comment_count>3</comment_count>
      <attachid>374439</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-18 21:16:34 -0700</bug_when>
    <thetext>Created attachment 374439
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554123</commentid>
    <comment_count>4</comment_count>
      <attachid>374441</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-18 21:33:30 -0700</bug_when>
    <thetext>Created attachment 374441
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554124</commentid>
    <comment_count>5</comment_count>
      <attachid>374442</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-18 21:58:00 -0700</bug_when>
    <thetext>Created attachment 374442
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554145</commentid>
    <comment_count>6</comment_count>
      <attachid>374442</attachid>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-07-18 23:55:03 -0700</bug_when>
    <thetext>Comment on attachment 374442
Patch

Attachment 374442 did not pass jsc-ews (mac):
Output: https://webkit-queues.webkit.org/results/12770865

New failing tests:
mozilla-tests.yaml/js1_5/Array/regress-101964.js.mozilla-no-ftl
apiTests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554299</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-19 13:38:42 -0700</bug_when>
    <thetext>Discussed with Keith, and now we have an idea reducing this quadratic complexity.
But anyway, I think reducing the threshold is also nice anyway.

And note that the above AI mitigation seems showing some regression in Speedometer, and reducing the threshold is posing some improvement in Speedometer.

I&apos;ll first do reducing the threshold thing, it is anyway invalid now.
And after that, I&apos;ll do AI improvement. For many cases, it could not pose speed up, but it definitely prevents pathological cases.

So, for now, just reducing the threshold.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554308</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-19 14:08:49 -0700</bug_when>
    <thetext>The maximum bytecode cost in JetStream2 is 36065.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554324</commentid>
    <comment_count>9</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-19 14:35:30 -0700</bug_when>
    <thetext>The maximum bytecode cost in Speedometer2 is 5671.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554330</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-19 14:48:16 -0700</bug_when>
    <thetext>BTW, CNN&apos;s problematic function&apos;s bytecode cost is 67904, it is ridiculously large...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554404</commentid>
    <comment_count>11</comment_count>
      <attachid>374524</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-19 16:45:37 -0700</bug_when>
    <thetext>Created attachment 374524
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554406</commentid>
    <comment_count>12</comment_count>
      <attachid>374524</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-07-19 16:59:24 -0700</bug_when>
    <thetext>Comment on attachment 374524
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:44
&gt; +        So I think 60000 seems reasonable threshold while avoiding pathologically large functions (as we have a threshold for # of DFG nodes in FTL). While we avoid compiling incredibly large functions,
&gt; +        I think this should be covered by introducing DFG tracelet compiler once it is introduced. And it is also possible that we can compile small hot functions while avoiding such an large function.

I suggest rephrasing &quot;While we avoid compiling incredibly large functions, I think this should be covered by introducing DFG tracelet compiler once it is introduced.&quot; ...
...as &quot;While we would like incredibly large functions to also be able to run fast, I think this should be covered later by introducing a DFG tracelet compiler to handle it.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554407</commentid>
    <comment_count>13</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-19 17:08:27 -0700</bug_when>
    <thetext>I&apos;ll check whether it is laggy with O(1) thing in iPhone 7. But anyway, for now, reducing the threshold is the safest. I would like to implement O(N) algorithm after this, and I would like to revisit this threshold later. If O(N) algorithm removes the laggy behavior, we can increase this threshold again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554445</commentid>
    <comment_count>14</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-19 18:58:21 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #13)
&gt; I&apos;ll check whether it is laggy with O(1) thing in iPhone 7. But anyway, for
&gt; now, reducing the threshold is the safest. I would like to implement O(N)
&gt; algorithm after this, and I would like to revisit this threshold later. If
&gt; O(N) algorithm removes the laggy behavior, we can increase this threshold
&gt; again.

Checked it and it seems laggy without avoiding DFG compilation with that threshold. I&apos;ll update the patch with additional description and put it for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554446</commentid>
    <comment_count>15</comment_count>
      <attachid>374524</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-19 19:01:21 -0700</bug_when>
    <thetext>Comment on attachment 374524
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:44
&gt;&gt; +        I think this should be covered by introducing DFG tracelet compiler once it is introduced. And it is also possible that we can compile small hot functions while avoiding such an large function.
&gt; 
&gt; I suggest rephrasing &quot;While we avoid compiling incredibly large functions, I think this should be covered by introducing DFG tracelet compiler once it is introduced.&quot; ...
&gt; ...as &quot;While we would like incredibly large functions to also be able to run fast, I think this should be covered later by introducing a DFG tracelet compiler to handle it.&quot;

Sounds nice. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554450</commentid>
    <comment_count>16</comment_count>
      <attachid>374536</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-19 19:03:37 -0700</bug_when>
    <thetext>Created attachment 374536
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554451</commentid>
    <comment_count>17</comment_count>
      <attachid>374536</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-19 19:13:26 -0700</bug_when>
    <thetext>Comment on attachment 374536
Patch

No, I missed one function in JetStream2. Adjusting the threshold now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554467</commentid>
    <comment_count>18</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-19 21:57:56 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #17)
&gt; Comment on attachment 374536 [details]
&gt; Patch
&gt; 
&gt; No, I missed one function in JetStream2. Adjusting the threshold now.

Hmmm, it seems that JetStream/octane-zlib has 61949 bytecode cost function and it is later compiled in DFG.
While JetStream also has larger functions (77617, 115144, 120248, 65567, 64881), they do not get DFG.
While JetStream/octane-zlib&apos;s 61949 is really large, this is critical for performance. Sad thing is that anyway compiling this function in DFG takes 354.434433 ms, lol.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554468</commentid>
    <comment_count>19</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-19 23:18:26 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #18)
&gt; (In reply to Yusuke Suzuki from comment #17)
&gt; &gt; Comment on attachment 374536 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; No, I missed one function in JetStream2. Adjusting the threshold now.
&gt; 
&gt; Hmmm, it seems that JetStream/octane-zlib has 61949 bytecode cost function
&gt; and it is later compiled in DFG.
&gt; While JetStream also has larger functions (77617, 115144, 120248, 65567,
&gt; 64881), they do not get DFG.
&gt; While JetStream/octane-zlib&apos;s 61949 is really large, this is critical for
&gt; performance. Sad thing is that anyway compiling this function in DFG takes
&gt; 354.434433 ms, lol.

Maybe, I think that the lagging with AI mitigation thing is not due to DFG.
I would like to try with AI mitigation for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554475</commentid>
    <comment_count>20</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-19 23:53:25 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #19)
&gt; (In reply to Yusuke Suzuki from comment #18)
&gt; &gt; (In reply to Yusuke Suzuki from comment #17)
&gt; &gt; &gt; Comment on attachment 374536 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; No, I missed one function in JetStream2. Adjusting the threshold now.
&gt; &gt; 
&gt; &gt; Hmmm, it seems that JetStream/octane-zlib has 61949 bytecode cost function
&gt; &gt; and it is later compiled in DFG.
&gt; &gt; While JetStream also has larger functions (77617, 115144, 120248, 65567,
&gt; &gt; 64881), they do not get DFG.
&gt; &gt; While JetStream/octane-zlib&apos;s 61949 is really large, this is critical for
&gt; &gt; performance. Sad thing is that anyway compiling this function in DFG takes
&gt; &gt; 354.434433 ms, lol.
&gt; 
&gt; Maybe, I think that the lagging with AI mitigation thing is not due to DFG.
&gt; I would like to try with AI mitigation for now.

AI mitigation + CFAPhase safepoint insertion seems working well. Let&apos;s go with this direction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554476</commentid>
    <comment_count>21</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-19 23:56:24 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #20)
&gt; (In reply to Yusuke Suzuki from comment #19)
&gt; &gt; (In reply to Yusuke Suzuki from comment #18)
&gt; &gt; &gt; (In reply to Yusuke Suzuki from comment #17)
&gt; &gt; &gt; &gt; Comment on attachment 374536 [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; No, I missed one function in JetStream2. Adjusting the threshold now.
&gt; &gt; &gt; 
&gt; &gt; &gt; Hmmm, it seems that JetStream/octane-zlib has 61949 bytecode cost function
&gt; &gt; &gt; and it is later compiled in DFG.
&gt; &gt; &gt; While JetStream also has larger functions (77617, 115144, 120248, 65567,
&gt; &gt; &gt; 64881), they do not get DFG.
&gt; &gt; &gt; While JetStream/octane-zlib&apos;s 61949 is really large, this is critical for
&gt; &gt; &gt; performance. Sad thing is that anyway compiling this function in DFG takes
&gt; &gt; &gt; 354.434433 ms, lol.
&gt; &gt; 
&gt; &gt; Maybe, I think that the lagging with AI mitigation thing is not due to DFG.
&gt; &gt; I would like to try with AI mitigation for now.
&gt; 
&gt; AI mitigation + CFAPhase safepoint insertion seems working well. Let&apos;s go
&gt; with this direction.

Ah, hmm, not so much. Anyway it is much better than the current ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554479</commentid>
    <comment_count>22</comment_count>
      <attachid>374544</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-20 03:54:17 -0700</bug_when>
    <thetext>Created attachment 374544
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554480</commentid>
    <comment_count>23</comment_count>
      <attachid>374545</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-20 03:55:48 -0700</bug_when>
    <thetext>Created attachment 374545
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554481</commentid>
    <comment_count>24</comment_count>
      <attachid>374546</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-20 03:57:08 -0700</bug_when>
    <thetext>Created attachment 374546
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554514</commentid>
    <comment_count>25</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-07-20 10:43:09 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #18)
&gt; (In reply to Yusuke Suzuki from comment #17)
&gt; &gt; Comment on attachment 374536 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; No, I missed one function in JetStream2. Adjusting the threshold now.
&gt; 
&gt; Hmmm, it seems that JetStream/octane-zlib has 61949 bytecode cost function
&gt; and it is later compiled in DFG.
&gt; While JetStream also has larger functions (77617, 115144, 120248, 65567,
&gt; 64881), they do not get DFG.
&gt; While JetStream/octane-zlib&apos;s 61949 is really large, this is critical for
&gt; performance. Sad thing is that anyway compiling this function in DFG takes
&gt; 354.434433 ms, lol.

Yikes! 

I’m not sure if you already tried this but have you considered making bytecode cost be equivalent to the old instruction size for any given instruction? I think this would just be bytecode cost = 1 + number of inline inline data entries + number of out of line metadata entries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554549</commentid>
    <comment_count>26</comment_count>
      <attachid>374546</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-07-20 17:32:44 -0700</bug_when>
    <thetext>Comment on attachment 374546
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:13
&gt; +        DFG compiler stops at GC safepoints, and they are inserted between DFG phases. So, if some of DFG phases take very long time, the main thread is blocked during that.
&gt; +        As a result, the main thread is blocked due to this pathological compilation.

For phases that might take a long time, should we consider inserting GC safe points in the middle?

If it&apos;s not practical for a GC safe point to pause and continue a phase, could we insert a special GC safe point that canceled the compilation and rescheduled it for later?

GC happens regularly, so it&apos;s likely that any long compilation will eventually intersect GC. It&apos;s frustrating that compilation stops being concurrent when the concurrency would benefit you the most! :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554569</commentid>
    <comment_count>27</comment_count>
      <attachid>374546</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-21 02:15:06 -0700</bug_when>
    <thetext>Comment on attachment 374546
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:13
&gt;&gt; +        As a result, the main thread is blocked due to this pathological compilation.
&gt; 
&gt; For phases that might take a long time, should we consider inserting GC safe points in the middle?
&gt; 
&gt; If it&apos;s not practical for a GC safe point to pause and continue a phase, could we insert a special GC safe point that canceled the compilation and rescheduled it for later?
&gt; 
&gt; GC happens regularly, so it&apos;s likely that any long compilation will eventually intersect GC. It&apos;s frustrating that compilation stops being concurrent when the concurrency would benefit you the most! :P

Yeah! This is good point. As you think so, I think we should eventually add GCSafepoint between the iterations inside DFG phase to offer fine-grained GC responsiveness too :)
For the other scripts taking much longer time for compiling, I think we can do that to give more chance to perform GC in a well responsive manner. I guess that it would be beneficial for JetStream2/Octane-zlib case (but not sure).

However, while this improves the general responsiveness, this does not work well for this CNN page case :(
At first, I tried inserting GCSafepoint in the middle of CFA phase: inserting GCSafepoint between iterations of CFA analysis because this phase is the phase driving AI with iterations. However, IIRC, I cannot get good responsiveness in this CNN page.
This is because this script has one incredibly large basic block (crazily, it has 43297 DFG nodes in one basic block!) and even executing block-local analysis onto this block once can take enough amount of time because of O(N^2) complexity.
For example, we can see DFGSpeculativeJIT machine code generating phase also takes very long time because it drives AI even though it does not have any iterations inside it.

Sadly, inserting GCSafepoint between basic block analysis also does not solve the problem. This is because the problematic graph has one huge basic block and almost all the time is just consumed by this one basic block.
And inserting GCSafepoint for N DFG nodes processing also does not work because processing a DFG node at the end of the basic block takes more time compared to the time processing a DFG node at the beginning of the basic block. (complexity is proportional to # of previous DFG nodes).

But I think, after solving this CNN page problem with this patch (avoiding O(N^2) complexity), inserting GCSafepoints would be more effective for the other time-consuming function compilation case :)

I think this bug is another good reason why we should have the global GC feature. If the global GC is implemented, concurrent compilers just uses GC-managed values with write barriers and they do not need to have GC safepoints. GC can stop concurrent compilers at arbitrary point by using `Thread::suspend()`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554570</commentid>
    <comment_count>28</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-21 02:29:50 -0700</bug_when>
    <thetext>(In reply to Keith Miller from comment #25)
&gt; (In reply to Yusuke Suzuki from comment #18)
&gt; &gt; (In reply to Yusuke Suzuki from comment #17)
&gt; &gt; &gt; Comment on attachment 374536 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; No, I missed one function in JetStream2. Adjusting the threshold now.
&gt; &gt; 
&gt; &gt; Hmmm, it seems that JetStream/octane-zlib has 61949 bytecode cost function
&gt; &gt; and it is later compiled in DFG.
&gt; &gt; While JetStream also has larger functions (77617, 115144, 120248, 65567,
&gt; &gt; 64881), they do not get DFG.
&gt; &gt; While JetStream/octane-zlib&apos;s 61949 is really large, this is critical for
&gt; &gt; performance. Sad thing is that anyway compiling this function in DFG takes
&gt; &gt; 354.434433 ms, lol.
&gt; 
&gt; Yikes! 
&gt; 
&gt; I’m not sure if you already tried this but have you considered making
&gt; bytecode cost be equivalent to the old instruction size for any given
&gt; instruction? I think this would just be bytecode cost = 1 + number of inline
&gt; inline data entries + number of out of line metadata entries.

Interesting! I didn&apos;t try it. Sadly, this blocking problem happens even in WebKit revision with old bytecode format (I tried this to ensure that this is not a regression). It would be possible that old bytecode cost calculation can differenciate values between octane-zlib and CNN page.
However, since the bytecode cost is representing the whole graph size, it does not represent how large each basic block is. And the time consuming operation in CNN page is related to the size of one basic block, and not related to the size of whole graph, because the other functions having such a large graph size can be compiled within 100-300ms. So I think using basic block size for a threshold is more direct solution.

On the other hand, I think that we can possibly have a problem with this bytecode cost threshold because we did not change this value while we revisit inlining cost heuristics when we introduced a new bytecode format. It seems that typical bytecode cost is 50-70% of the old bytecode cost. It would be possible that we are starting compiling incredibly large function that are not selected before, and getting subsequent DFG compilation requests blocked. And it would be possible that revising this threshold, or how we calculate the cost can dramatically improve the score of JetStream2 / Speedometer2 etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554714</commentid>
    <comment_count>29</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-07-22 10:16:54 -0700</bug_when>
    <thetext>&gt; I think this bug is another good reason why we should have the global GC
&gt; feature. If the global GC is implemented, concurrent compilers just uses
&gt; GC-managed values with write barriers and they do not need to have GC
&gt; safepoints. GC can stop concurrent compilers at arbitrary point by using
&gt; `Thread::suspend()`.

I like this idea!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554799</commentid>
    <comment_count>30</comment_count>
      <attachid>374546</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-07-22 13:01:12 -0700</bug_when>
    <thetext>Comment on attachment 374546
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:40
&gt; +        Local CSE&apos;s clobbering iterates all the impure heap values to remove the clobbered one. Since # of impure heap values tend to be proportional to # of DFG nodes we visited,
&gt; +        each CSE for a basic block gets O(N^2) complexity. To avoid this, we introduce HugeMap. This has the same interface to LargeMap and SmallMap in CSE, but its clobbering
&gt; +        implementation just clears the map completely.

Should we switch to using epochs? Would that help?

&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:4098
&gt; +    // If it is too large, we conservatively clobber the structures.

&quot;clobber the&quot; =&gt; &quot;clobber all the&quot;

&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:4121
&gt; +    // If it is too large, we conservatively clobber the structures.

ditto

&gt; Source/JavaScriptCore/dfg/DFGCSEPhase.cpp:446
&gt; +    // This is used only for huge basic block. Our usual CSE is quadratic complexity for # of DFG nodes in a basic block.

&quot;huge basic block&quot; =&gt; &quot;huge basic blocks&quot;

&gt; Source/JavaScriptCore/dfg/DFGCSEPhase.cpp:447
&gt; +    // This HugeMaps tells conservative results instead of avoiding O(N^2) way.

I would say something like:
&quot;HugeMaps models results conservatively to avoid an O(N^2) algorithm.&quot;

Might also be worth saying how results are conservative.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554834</commentid>
    <comment_count>31</comment_count>
      <attachid>374546</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-22 13:42:35 -0700</bug_when>
    <thetext>Comment on attachment 374546
Patch

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

Thanks!

&gt;&gt; Source/JavaScriptCore/ChangeLog:40
&gt;&gt; +        implementation just clears the map completely.
&gt; 
&gt; Should we switch to using epochs? Would that help?

Discussed with Saam. It sounds nice, I&apos;ll track this in a separate patch.
https://bugs.webkit.org/show_bug.cgi?id=200014

&gt;&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:4098
&gt;&gt; +    // If it is too large, we conservatively clobber the structures.
&gt; 
&gt; &quot;clobber the&quot; =&gt; &quot;clobber all the&quot;

Fixed.

&gt;&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:4121
&gt;&gt; +    // If it is too large, we conservatively clobber the structures.
&gt; 
&gt; ditto

Fixed.

&gt;&gt; Source/JavaScriptCore/dfg/DFGCSEPhase.cpp:446
&gt;&gt; +    // This is used only for huge basic block. Our usual CSE is quadratic complexity for # of DFG nodes in a basic block.
&gt; 
&gt; &quot;huge basic block&quot; =&gt; &quot;huge basic blocks&quot;

Fixed.

&gt;&gt; Source/JavaScriptCore/dfg/DFGCSEPhase.cpp:447
&gt;&gt; +    // This HugeMaps tells conservative results instead of avoiding O(N^2) way.
&gt; 
&gt; I would say something like:
&gt; &quot;HugeMaps models results conservatively to avoid an O(N^2) algorithm.&quot;
&gt; 
&gt; Might also be worth saying how results are conservative.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554861</commentid>
    <comment_count>32</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-22 14:30:48 -0700</bug_when>
    <thetext>I also added a configuration to run-jsc-stress-tests to run tests with maxDFGNodesInBasicBlockForPreciseAnalysis=small-value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554889</commentid>
    <comment_count>33</comment_count>
      <attachid>374546</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-22 15:26:44 -0700</bug_when>
    <thetext>Comment on attachment 374546
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGCSEPhase.cpp:171
&gt; +            if (conservative)
&gt; +                return heap.kind() == pair.key.heap().kind();

Ah, I think this needs to care m_abstractHeapStackMap&apos;s content too. I&apos;ll fix this part to maintain m_debugImpureData while this does not affect on the correctness of this algorithm change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554902</commentid>
    <comment_count>34</comment_count>
      <attachid>374648</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-22 16:02:22 -0700</bug_when>
    <thetext>Created attachment 374648
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554903</commentid>
    <comment_count>35</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-22 16:07:16 -0700</bug_when>
    <thetext>Committed r247703: &lt;https://trac.webkit.org/changeset/247703&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374438</attachid>
            <date>2019-07-18 21:14:48 -0700</date>
            <delta_ts>2019-07-18 21:16:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199929-20190718211448.patch</filename>
            <type>text/plain</type>
            <size>5368</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NjI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZTc5MDIxODcxYWIzZmM5Yzg5MTkyNTEwYmZmYTY0N2Q4ZjE3ZjMyLi45N2UwYTIyNjJkMDJjZTAx
YzBjZjc4NTRjY2NkYmQ2OWM4NzQzMGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxOS0wNy0xOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFN0b3AgcGVyZm9ybWluZyBwcmVjaXNlIHN0cnVjdHVyZSB0cmFu
c2l0aW9uIHRyYWNraW5nIGlmICMgb2Ygbm9kZXMgaW4gYmFzaWMgYmxvY2sgaXMgdG9vIGxhcmdl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk5MjkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRmZy9E
RkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3Ry
YWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAg
ICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46Om9i
c2VydmVUcmFuc2l0aW9uKToKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVy
PEFic3RyYWN0U3RhdGVUeXBlPjo6b2JzZXJ2ZVRyYW5zaXRpb25zKToKKyAgICAgICAgKiBydW50
aW1lL09wdGlvbnMuaDoKKwogMjAxOS0wNy0xNyAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBw
bGUuY29tPgogCiAgICAgICAgIERpc2FibGUgUG9pbnRlciBFdmVudHMgcHJpb3IgdG8gd2F0Y2hP
UyA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggODlkYWViOTEzM2MxMjUyYjAwMzZkYTkwZmFkOWIw
MDU1NDk1M2QyOC4uYzhhMTRhYTY5OGI4ODRlMGVhNGQ5MDlhZDc2MjFiZjQxY2RkYmRhZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVy
SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRl
cnByZXRlcklubGluZXMuaApAQCAtMzA3OSw4ICszMDc5LDcgQEAgYm9vbCBBYnN0cmFjdEludGVy
cHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJl
ckxpbWkKICAgICAgICAgICAgICAgICBkaWRGb2xkQ2xvYmJlclN0cnVjdHVyZXMoKTsKICAgICAg
ICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOwogICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICBvYnNlcnZlVHJhbnNpdGlvbigKLSAgICAgICAgICAg
ICAgICAgICAgY2xvYmJlckxpbWl0LCBub2RlLT50cmFuc2l0aW9uKCktPnByZXZpb3VzLCBub2Rl
LT50cmFuc2l0aW9uKCktPm5leHQpOworICAgICAgICAgICAgICAgIG9ic2VydmVUcmFuc2l0aW9u
KGNsb2JiZXJMaW1pdCwgbm9kZS0+dHJhbnNpdGlvbigpLT5wcmV2aW91cywgbm9kZS0+dHJhbnNp
dGlvbigpLT5uZXh0KTsKICAgICAgICAgICAgICAgICBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS5j
aGFuZ2VTdHJ1Y3R1cmUobV9ncmFwaCwgbm9kZS0+dHJhbnNpdGlvbigpLT5uZXh0KTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKQEAgLTQwOTMsMTIgKzQwOTIsMjEgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgQWJzdHJhY3RTdGF0ZVR5cGU+CiB2b2lkIEFic3RyYWN0SW50ZXJwcmV0ZXI8
QWJzdHJhY3RTdGF0ZVR5cGU+OjpvYnNlcnZlVHJhbnNpdGlvbigKICAgICB1bnNpZ25lZCBjbG9i
YmVyTGltaXQsIFJlZ2lzdGVyZWRTdHJ1Y3R1cmUgZnJvbSwgUmVnaXN0ZXJlZFN0cnVjdHVyZSB0
bykKIHsKKyAgICAvLyBTdG9wIHBlcmZvcm1pbmcgcHJlY2lzZSBzdHJ1Y3R1cmUgdHJhbnNpdGlv
biB0cmFja2luZy4KKyAgICAvLyBQcmVjaXNlIHN0cnVjdHVyZSB0cmFuc2l0aW9uIHRyYWNraW5n
IHNob3dzIHF1YWRyYXRpYyBjb21wbGV4aXR5IGZvciAjIG9mIG5vZGVzIGluIGEgYmFzaWMgYmxv
Y2suCisgICAgLy8gSWYgaXQgaXMgdG9vIGxhcmdlLCB3ZSBjb25zZXJ2YXRpdmVseSBjbG9iYmVy
IHRoZSBzdHJ1Y3R1cmVzLgorICAgIGlmIChtX3N0YXRlLmJsb2NrKCktPnNpemUoKSA+PSBPcHRp
b25zOjp0aHJlc2hvbGRGb3JERkdQcmVjaXNlU3RydWN0dXJlVHJhbnNpdGlvbkFuYWx5c2lzKCkp
IHsKKyAgICAgICAgY2xvYmJlclN0cnVjdHVyZXMoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KwogICAgIEFic3RyYWN0VmFsdWU6OlRyYW5zaXRpb25PYnNlcnZlciB0cmFuc2l0aW9uT2JzZXJ2
ZXIoZnJvbSwgdG8pOwogICAgIGZvckFsbFZhbHVlcyhjbG9iYmVyTGltaXQsIHRyYW5zaXRpb25P
YnNlcnZlcik7CiAgICAgCiAgICAgQVNTRVJUKCFmcm9tLT5kZmdTaG91bGRXYXRjaCgpKTsgLy8g
V2UgZG9uJ3QgbmVlZCB0byBjbGFpbSB0byBiZSBpbiBhIGNsb2JiZXJlZCBzdGF0ZSBiZWNhdXNl
ICdmcm9tJyB3YXMgbmV2ZXIgd2F0Y2hhYmxlIChkdXJpbmcgdGhlIHRpbWUgd2Ugd2VyZSBjb21w
aWxpbmcpLCBoZW5jZSBubyBjb25zdGFudHMgZXZlciBpbnRyb2R1Y2VkIGludG8gdGhlIERGRyBJ
UiB0aGF0IGV2ZXIgaGFkIGEgd2F0Y2hhYmxlIHN0cnVjdHVyZSB3b3VsZCBldmVyIGhhdmUgdGhl
IHNhbWUgc3RydWN0dXJlIGFzIGZyb20uCiAgICAgCiAgICAgbV9zdGF0ZS5tZXJnZUNsb2JiZXJT
dGF0ZShBYnN0cmFjdEludGVycHJldGVyQ2xvYmJlclN0YXRlOjpPYnNlcnZlZFRyYW5zaXRpb25z
KTsKKyAgICByZXR1cm47CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEFic3RyYWN0U3RhdGVUeXBl
PgpAQCAtNDEwOCw2ICs0MTE2LDE0IEBAIHZvaWQgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFj
dFN0YXRlVHlwZT46Om9ic2VydmVUcmFuc2l0aW9ucygKICAgICBpZiAodmVjdG9yLmlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuOwogICAgIAorICAgIC8vIFN0b3AgcGVyZm9ybWluZyBwcmVjaXNl
IHN0cnVjdHVyZSB0cmFuc2l0aW9uIHRyYWNraW5nLgorICAgIC8vIFByZWNpc2Ugc3RydWN0dXJl
IHRyYW5zaXRpb24gdHJhY2tpbmcgc2hvd3MgcXVhZHJhdGljIGNvbXBsZXhpdHkgZm9yICMgb2Yg
bm9kZXMgaW4gYSBiYXNpYyBibG9jay4KKyAgICAvLyBJZiBpdCBpcyB0b28gbGFyZ2UsIHdlIGNv
bnNlcnZhdGl2ZWx5IGNsb2JiZXIgdGhlIHN0cnVjdHVyZXMuCisgICAgaWYgKG1fc3RhdGUuYmxv
Y2soKS0+c2l6ZSgpID49IE9wdGlvbnM6OnRocmVzaG9sZEZvckRGR1ByZWNpc2VTdHJ1Y3R1cmVU
cmFuc2l0aW9uQW5hbHlzaXMoKSkgeworICAgICAgICBjbG9iYmVyU3RydWN0dXJlcygpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCiAgICAgQWJzdHJhY3RWYWx1ZTo6VHJhbnNpdGlvbnNPYnNl
cnZlciB0cmFuc2l0aW9uc09ic2VydmVyKHZlY3Rvcik7CiAgICAgZm9yQWxsVmFsdWVzKGNsb2Ji
ZXJMaW1pdCwgdHJhbnNpdGlvbnNPYnNlcnZlcik7CiAgICAgCkBAIC00MTE4LDYgKzQxMzQsNyBA
QCB2b2lkIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpvYnNlcnZlVHJh
bnNpdGlvbnMoCiAgICAgfQogCiAgICAgbV9zdGF0ZS5tZXJnZUNsb2JiZXJTdGF0ZShBYnN0cmFj
dEludGVycHJldGVyQ2xvYmJlclN0YXRlOjpPYnNlcnZlZFRyYW5zaXRpb25zKTsKKyAgICByZXR1
cm47CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEFic3RyYWN0U3RhdGVUeXBlPgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCmluZGV4IDAzYTZjMmQ5OTU4YWRhOWQ1NWY0ZDE0
YTI0ZmQ2YjAwNjYyZjdmYmUuLjhlMzI4YjA2NWJmZjgyN2FiMmY1Y2QwOTUwMWVkYWRmNTM3ZGY3
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKQEAgLTI3Myw2ICsy
NzMsNyBAQCBjb25zdGV4cHIgYm9vbCBlbmFibGVXZWJBc3NlbWJseVN0cmVhbWluZ0FwaSA9IGZh
bHNlOwogICAgIHYoYm9vbCwgdXNlVmFsdWVSZXBFbGltaW5hdGlvbiwgdHJ1ZSwgTm9ybWFsLCBu
dWxscHRyKSBcCiAgICAgdihib29sLCB1c2VBcml0eUZpeHVwSW5saW5pbmcsIHRydWUsIE5vcm1h
bCwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwgbG9nRXhlY3V0YWJsZUFsbG9jYXRpb24sIGZhbHNl
LCBOb3JtYWwsIG51bGxwdHIpIFwKKyAgICB2KHVuc2lnbmVkLCB0aHJlc2hvbGRGb3JERkdQcmVj
aXNlU3RydWN0dXJlVHJhbnNpdGlvbkFuYWx5c2lzLCAxMDAwMCwgTm9ybWFsLCBudWxscHRyKSBc
CiAgICAgXAogICAgIHYoYm9vbCwgdXNlQ29uY3VycmVudEpJVCwgdHJ1ZSwgTm9ybWFsLCAiYWxs
b3dzIHRoZSBERkcgLyBGVEwgY29tcGlsYXRpb24gaW4gdGhyZWFkcyBvdGhlciB0aGFuIHRoZSBl
eGVjdXRpbmcgSlMgdGhyZWFkIikgXAogICAgIHYodW5zaWduZWQsIG51bWJlck9mREZHQ29tcGls
ZXJUaHJlYWRzLCBjb21wdXRlTnVtYmVyT2ZXb3JrZXJUaHJlYWRzKDMsIDIpIC0gMSwgTm9ybWFs
LCBudWxscHRyKSBcCkBAIC0yODgsNyArMjg5LDcgQEAgY29uc3RleHByIGJvb2wgZW5hYmxlV2Vi
QXNzZW1ibHlTdHJlYW1pbmdBcGkgPSBmYWxzZTsKICAgICBcCiAgICAgdihib29sLCBicmVha09u
VGhyb3csIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICBcCi0gICAgdih1bnNpZ25lZCwg
bWF4aW11bU9wdGltaXphdGlvbkNhbmRpZGF0ZUJ5dGVjb2RlQ29zdCwgMTAwMDAwLCBOb3JtYWws
IG51bGxwdHIpIFwKKyAgICB2KHVuc2lnbmVkLCBtYXhpbXVtT3B0aW1pemF0aW9uQ2FuZGlkYXRl
Qnl0ZWNvZGVDb3N0LCA2MDAwMCwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgXAogICAgIHYodW5z
aWduZWQsIG1heGltdW1GdW5jdGlvbkZvckNhbGxJbmxpbmVDYW5kaWRhdGVCeXRlY29kZUNvc3Qs
IDEyMCwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdih1bnNpZ25lZCwgbWF4aW11bUZ1bmN0aW9u
Rm9yQ2xvc3VyZUNhbGxJbmxpbmVDYW5kaWRhdGVCeXRlY29kZUNvc3QsIDEwMCwgTm9ybWFsLCBu
dWxscHRyKSBcCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374439</attachid>
            <date>2019-07-18 21:16:34 -0700</date>
            <delta_ts>2019-07-18 21:33:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199929-20190718211633.patch</filename>
            <type>text/plain</type>
            <size>4030</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NjI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZTc5MDIxODcxYWIzZmM5Yzg5MTkyNTEwYmZmYTY0N2Q4ZjE3ZjMyLi4xMmM0MGEwYTI0YWI2N2U4
YWU4ODI4OWZjM2FmMDY5YzJlN2JkNGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxOS0wNy0xOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFN0b3AgcGVyZm9ybWluZyBwcmVjaXNlIHN0cnVjdHVyZSB0cmFu
c2l0aW9uIHRyYWNraW5nIGlmICMgb2Ygbm9kZXMgaW4gYmFzaWMgYmxvY2sgaXMgdG9vIGxhcmdl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk5MjkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRmZy9E
RkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3Ry
YWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpvYnNlcnZlVHJhbnNpdGlvbik6Cisg
ICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46
Om9ic2VydmVUcmFuc2l0aW9ucyk6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmg6CisKIDIw
MTktMDctMTcgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBE
aXNhYmxlIFBvaW50ZXIgRXZlbnRzIHByaW9yIHRvIHdhdGNoT1MgNgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5o
CmluZGV4IDg5ZGFlYjkxMzNjMTI1MmIwMDM2ZGE5MGZhZDliMDA1NTQ5NTNkMjguLjIxYWZlNmY5
NzFkMTRjYjk0YjEwMzRiMDdiYWJhODkyNDlkNjBkMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAg
LTQwOTMsNiArNDA5MywxNCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBBYnN0cmFjdFN0YXRlVHlwZT4K
IHZvaWQgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46Om9ic2VydmVUcmFu
c2l0aW9uKAogICAgIHVuc2lnbmVkIGNsb2JiZXJMaW1pdCwgUmVnaXN0ZXJlZFN0cnVjdHVyZSBm
cm9tLCBSZWdpc3RlcmVkU3RydWN0dXJlIHRvKQogeworICAgIC8vIFN0b3AgcGVyZm9ybWluZyBw
cmVjaXNlIHN0cnVjdHVyZSB0cmFuc2l0aW9uIHRyYWNraW5nLgorICAgIC8vIFByZWNpc2Ugc3Ry
dWN0dXJlIHRyYW5zaXRpb24gdHJhY2tpbmcgc2hvd3MgcXVhZHJhdGljIGNvbXBsZXhpdHkgZm9y
ICMgb2Ygbm9kZXMgaW4gYSBiYXNpYyBibG9jay4KKyAgICAvLyBJZiBpdCBpcyB0b28gbGFyZ2Us
IHdlIGNvbnNlcnZhdGl2ZWx5IGNsb2JiZXIgdGhlIHN0cnVjdHVyZXMuCisgICAgaWYgKG1fc3Rh
dGUuYmxvY2soKS0+c2l6ZSgpID49IE9wdGlvbnM6OnRocmVzaG9sZEZvckRGR1ByZWNpc2VTdHJ1
Y3R1cmVUcmFuc2l0aW9uQW5hbHlzaXMoKSkgeworICAgICAgICBjbG9iYmVyU3RydWN0dXJlcygp
OworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgQWJzdHJhY3RWYWx1ZTo6VHJhbnNpdGlv
bk9ic2VydmVyIHRyYW5zaXRpb25PYnNlcnZlcihmcm9tLCB0byk7CiAgICAgZm9yQWxsVmFsdWVz
KGNsb2JiZXJMaW1pdCwgdHJhbnNpdGlvbk9ic2VydmVyKTsKICAgICAKQEAgLTQxMDgsNiArNDEx
NiwxNCBAQCB2b2lkIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpvYnNl
cnZlVHJhbnNpdGlvbnMoCiAgICAgaWYgKHZlY3Rvci5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
bjsKICAgICAKKyAgICAvLyBTdG9wIHBlcmZvcm1pbmcgcHJlY2lzZSBzdHJ1Y3R1cmUgdHJhbnNp
dGlvbiB0cmFja2luZy4KKyAgICAvLyBQcmVjaXNlIHN0cnVjdHVyZSB0cmFuc2l0aW9uIHRyYWNr
aW5nIHNob3dzIHF1YWRyYXRpYyBjb21wbGV4aXR5IGZvciAjIG9mIG5vZGVzIGluIGEgYmFzaWMg
YmxvY2suCisgICAgLy8gSWYgaXQgaXMgdG9vIGxhcmdlLCB3ZSBjb25zZXJ2YXRpdmVseSBjbG9i
YmVyIHRoZSBzdHJ1Y3R1cmVzLgorICAgIGlmIChtX3N0YXRlLmJsb2NrKCktPnNpemUoKSA+PSBP
cHRpb25zOjp0aHJlc2hvbGRGb3JERkdQcmVjaXNlU3RydWN0dXJlVHJhbnNpdGlvbkFuYWx5c2lz
KCkpIHsKKyAgICAgICAgY2xvYmJlclN0cnVjdHVyZXMoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKwogICAgIEFic3RyYWN0VmFsdWU6OlRyYW5zaXRpb25zT2JzZXJ2ZXIgdHJhbnNpdGlvbnNP
YnNlcnZlcih2ZWN0b3IpOwogICAgIGZvckFsbFZhbHVlcyhjbG9iYmVyTGltaXQsIHRyYW5zaXRp
b25zT2JzZXJ2ZXIpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5o
CmluZGV4IDAzYTZjMmQ5OTU4YWRhOWQ1NWY0ZDE0YTI0ZmQ2YjAwNjYyZjdmYmUuLjhlMzI4YjA2
NWJmZjgyN2FiMmY1Y2QwOTUwMWVkYWRmNTM3ZGY3ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcHRpb25zLmgKQEAgLTI3Myw2ICsyNzMsNyBAQCBjb25zdGV4cHIgYm9vbCBlbmFi
bGVXZWJBc3NlbWJseVN0cmVhbWluZ0FwaSA9IGZhbHNlOwogICAgIHYoYm9vbCwgdXNlVmFsdWVS
ZXBFbGltaW5hdGlvbiwgdHJ1ZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihib29sLCB1c2VB
cml0eUZpeHVwSW5saW5pbmcsIHRydWUsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwg
bG9nRXhlY3V0YWJsZUFsbG9jYXRpb24sIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKKyAgICB2
KHVuc2lnbmVkLCB0aHJlc2hvbGRGb3JERkdQcmVjaXNlU3RydWN0dXJlVHJhbnNpdGlvbkFuYWx5
c2lzLCAxMDAwMCwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgXAogICAgIHYoYm9vbCwgdXNlQ29u
Y3VycmVudEpJVCwgdHJ1ZSwgTm9ybWFsLCAiYWxsb3dzIHRoZSBERkcgLyBGVEwgY29tcGlsYXRp
b24gaW4gdGhyZWFkcyBvdGhlciB0aGFuIHRoZSBleGVjdXRpbmcgSlMgdGhyZWFkIikgXAogICAg
IHYodW5zaWduZWQsIG51bWJlck9mREZHQ29tcGlsZXJUaHJlYWRzLCBjb21wdXRlTnVtYmVyT2ZX
b3JrZXJUaHJlYWRzKDMsIDIpIC0gMSwgTm9ybWFsLCBudWxscHRyKSBcCkBAIC0yODgsNyArMjg5
LDcgQEAgY29uc3RleHByIGJvb2wgZW5hYmxlV2ViQXNzZW1ibHlTdHJlYW1pbmdBcGkgPSBmYWxz
ZTsKICAgICBcCiAgICAgdihib29sLCBicmVha09uVGhyb3csIGZhbHNlLCBOb3JtYWwsIG51bGxw
dHIpIFwKICAgICBcCi0gICAgdih1bnNpZ25lZCwgbWF4aW11bU9wdGltaXphdGlvbkNhbmRpZGF0
ZUJ5dGVjb2RlQ29zdCwgMTAwMDAwLCBOb3JtYWwsIG51bGxwdHIpIFwKKyAgICB2KHVuc2lnbmVk
LCBtYXhpbXVtT3B0aW1pemF0aW9uQ2FuZGlkYXRlQnl0ZWNvZGVDb3N0LCA2MDAwMCwgTm9ybWFs
LCBudWxscHRyKSBcCiAgICAgXAogICAgIHYodW5zaWduZWQsIG1heGltdW1GdW5jdGlvbkZvckNh
bGxJbmxpbmVDYW5kaWRhdGVCeXRlY29kZUNvc3QsIDEyMCwgTm9ybWFsLCBudWxscHRyKSBcCiAg
ICAgdih1bnNpZ25lZCwgbWF4aW11bUZ1bmN0aW9uRm9yQ2xvc3VyZUNhbGxJbmxpbmVDYW5kaWRh
dGVCeXRlY29kZUNvc3QsIDEwMCwgTm9ybWFsLCBudWxscHRyKSBcCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374441</attachid>
            <date>2019-07-18 21:33:30 -0700</date>
            <delta_ts>2019-07-18 21:57:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199929-20190718213329.patch</filename>
            <type>text/plain</type>
            <size>3520</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NjI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZTc5MDIxODcxYWIzZmM5Yzg5MTkyNTEwYmZmYTY0N2Q4ZjE3ZjMyLi4xMmM0MGEwYTI0YWI2N2U4
YWU4ODI4OWZjM2FmMDY5YzJlN2JkNGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxOS0wNy0xOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFN0b3AgcGVyZm9ybWluZyBwcmVjaXNlIHN0cnVjdHVyZSB0cmFu
c2l0aW9uIHRyYWNraW5nIGlmICMgb2Ygbm9kZXMgaW4gYmFzaWMgYmxvY2sgaXMgdG9vIGxhcmdl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk5MjkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRmZy9E
RkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3Ry
YWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpvYnNlcnZlVHJhbnNpdGlvbik6Cisg
ICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46
Om9ic2VydmVUcmFuc2l0aW9ucyk6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmg6CisKIDIw
MTktMDctMTcgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBE
aXNhYmxlIFBvaW50ZXIgRXZlbnRzIHByaW9yIHRvIHdhdGNoT1MgNgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5o
CmluZGV4IDg5ZGFlYjkxMzNjMTI1MmIwMDM2ZGE5MGZhZDliMDA1NTQ5NTNkMjguLjIxYWZlNmY5
NzFkMTRjYjk0YjEwMzRiMDdiYWJhODkyNDlkNjBkMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAg
LTQwOTMsNiArNDA5MywxNCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBBYnN0cmFjdFN0YXRlVHlwZT4K
IHZvaWQgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46Om9ic2VydmVUcmFu
c2l0aW9uKAogICAgIHVuc2lnbmVkIGNsb2JiZXJMaW1pdCwgUmVnaXN0ZXJlZFN0cnVjdHVyZSBm
cm9tLCBSZWdpc3RlcmVkU3RydWN0dXJlIHRvKQogeworICAgIC8vIFN0b3AgcGVyZm9ybWluZyBw
cmVjaXNlIHN0cnVjdHVyZSB0cmFuc2l0aW9uIHRyYWNraW5nLgorICAgIC8vIFByZWNpc2Ugc3Ry
dWN0dXJlIHRyYW5zaXRpb24gdHJhY2tpbmcgc2hvd3MgcXVhZHJhdGljIGNvbXBsZXhpdHkgZm9y
ICMgb2Ygbm9kZXMgaW4gYSBiYXNpYyBibG9jay4KKyAgICAvLyBJZiBpdCBpcyB0b28gbGFyZ2Us
IHdlIGNvbnNlcnZhdGl2ZWx5IGNsb2JiZXIgdGhlIHN0cnVjdHVyZXMuCisgICAgaWYgKG1fc3Rh
dGUuYmxvY2soKS0+c2l6ZSgpID49IE9wdGlvbnM6OnRocmVzaG9sZEZvckRGR1ByZWNpc2VTdHJ1
Y3R1cmVUcmFuc2l0aW9uQW5hbHlzaXMoKSkgeworICAgICAgICBjbG9iYmVyU3RydWN0dXJlcygp
OworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgQWJzdHJhY3RWYWx1ZTo6VHJhbnNpdGlv
bk9ic2VydmVyIHRyYW5zaXRpb25PYnNlcnZlcihmcm9tLCB0byk7CiAgICAgZm9yQWxsVmFsdWVz
KGNsb2JiZXJMaW1pdCwgdHJhbnNpdGlvbk9ic2VydmVyKTsKICAgICAKQEAgLTQxMDgsNiArNDEx
NiwxNCBAQCB2b2lkIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpvYnNl
cnZlVHJhbnNpdGlvbnMoCiAgICAgaWYgKHZlY3Rvci5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
bjsKICAgICAKKyAgICAvLyBTdG9wIHBlcmZvcm1pbmcgcHJlY2lzZSBzdHJ1Y3R1cmUgdHJhbnNp
dGlvbiB0cmFja2luZy4KKyAgICAvLyBQcmVjaXNlIHN0cnVjdHVyZSB0cmFuc2l0aW9uIHRyYWNr
aW5nIHNob3dzIHF1YWRyYXRpYyBjb21wbGV4aXR5IGZvciAjIG9mIG5vZGVzIGluIGEgYmFzaWMg
YmxvY2suCisgICAgLy8gSWYgaXQgaXMgdG9vIGxhcmdlLCB3ZSBjb25zZXJ2YXRpdmVseSBjbG9i
YmVyIHRoZSBzdHJ1Y3R1cmVzLgorICAgIGlmIChtX3N0YXRlLmJsb2NrKCktPnNpemUoKSA+PSBP
cHRpb25zOjp0aHJlc2hvbGRGb3JERkdQcmVjaXNlU3RydWN0dXJlVHJhbnNpdGlvbkFuYWx5c2lz
KCkpIHsKKyAgICAgICAgY2xvYmJlclN0cnVjdHVyZXMoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKwogICAgIEFic3RyYWN0VmFsdWU6OlRyYW5zaXRpb25zT2JzZXJ2ZXIgdHJhbnNpdGlvbnNP
YnNlcnZlcih2ZWN0b3IpOwogICAgIGZvckFsbFZhbHVlcyhjbG9iYmVyTGltaXQsIHRyYW5zaXRp
b25zT2JzZXJ2ZXIpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5o
CmluZGV4IDAzYTZjMmQ5OTU4YWRhOWQ1NWY0ZDE0YTI0ZmQ2YjAwNjYyZjdmYmUuLmVmZWYyMDg1
NDA3NmI0MGUyNzExN2ZkNjZhMTAwNTc1ZDk3OTNhZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcHRpb25zLmgKQEAgLTI3Myw2ICsyNzMsNyBAQCBjb25zdGV4cHIgYm9vbCBlbmFi
bGVXZWJBc3NlbWJseVN0cmVhbWluZ0FwaSA9IGZhbHNlOwogICAgIHYoYm9vbCwgdXNlVmFsdWVS
ZXBFbGltaW5hdGlvbiwgdHJ1ZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihib29sLCB1c2VB
cml0eUZpeHVwSW5saW5pbmcsIHRydWUsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwg
bG9nRXhlY3V0YWJsZUFsbG9jYXRpb24sIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKKyAgICB2
KHVuc2lnbmVkLCB0aHJlc2hvbGRGb3JERkdQcmVjaXNlU3RydWN0dXJlVHJhbnNpdGlvbkFuYWx5
c2lzLCAxMDAwMCwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgXAogICAgIHYoYm9vbCwgdXNlQ29u
Y3VycmVudEpJVCwgdHJ1ZSwgTm9ybWFsLCAiYWxsb3dzIHRoZSBERkcgLyBGVEwgY29tcGlsYXRp
b24gaW4gdGhyZWFkcyBvdGhlciB0aGFuIHRoZSBleGVjdXRpbmcgSlMgdGhyZWFkIikgXAogICAg
IHYodW5zaWduZWQsIG51bWJlck9mREZHQ29tcGlsZXJUaHJlYWRzLCBjb21wdXRlTnVtYmVyT2ZX
b3JrZXJUaHJlYWRzKDMsIDIpIC0gMSwgTm9ybWFsLCBudWxscHRyKSBcCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374442</attachid>
            <date>2019-07-18 21:58:00 -0700</date>
            <delta_ts>2019-07-19 16:45:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199929-20190718215759.patch</filename>
            <type>text/plain</type>
            <size>4030</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NjI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZTc5MDIxODcxYWIzZmM5Yzg5MTkyNTEwYmZmYTY0N2Q4ZjE3ZjMyLi4xMmM0MGEwYTI0YWI2N2U4
YWU4ODI4OWZjM2FmMDY5YzJlN2JkNGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxOS0wNy0xOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFN0b3AgcGVyZm9ybWluZyBwcmVjaXNlIHN0cnVjdHVyZSB0cmFu
c2l0aW9uIHRyYWNraW5nIGlmICMgb2Ygbm9kZXMgaW4gYmFzaWMgYmxvY2sgaXMgdG9vIGxhcmdl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk5MjkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRmZy9E
RkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3Ry
YWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpvYnNlcnZlVHJhbnNpdGlvbik6Cisg
ICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46
Om9ic2VydmVUcmFuc2l0aW9ucyk6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmg6CisKIDIw
MTktMDctMTcgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBE
aXNhYmxlIFBvaW50ZXIgRXZlbnRzIHByaW9yIHRvIHdhdGNoT1MgNgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5o
CmluZGV4IDg5ZGFlYjkxMzNjMTI1MmIwMDM2ZGE5MGZhZDliMDA1NTQ5NTNkMjguLjIxYWZlNmY5
NzFkMTRjYjk0YjEwMzRiMDdiYWJhODkyNDlkNjBkMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAg
LTQwOTMsNiArNDA5MywxNCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBBYnN0cmFjdFN0YXRlVHlwZT4K
IHZvaWQgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46Om9ic2VydmVUcmFu
c2l0aW9uKAogICAgIHVuc2lnbmVkIGNsb2JiZXJMaW1pdCwgUmVnaXN0ZXJlZFN0cnVjdHVyZSBm
cm9tLCBSZWdpc3RlcmVkU3RydWN0dXJlIHRvKQogeworICAgIC8vIFN0b3AgcGVyZm9ybWluZyBw
cmVjaXNlIHN0cnVjdHVyZSB0cmFuc2l0aW9uIHRyYWNraW5nLgorICAgIC8vIFByZWNpc2Ugc3Ry
dWN0dXJlIHRyYW5zaXRpb24gdHJhY2tpbmcgc2hvd3MgcXVhZHJhdGljIGNvbXBsZXhpdHkgZm9y
ICMgb2Ygbm9kZXMgaW4gYSBiYXNpYyBibG9jay4KKyAgICAvLyBJZiBpdCBpcyB0b28gbGFyZ2Us
IHdlIGNvbnNlcnZhdGl2ZWx5IGNsb2JiZXIgdGhlIHN0cnVjdHVyZXMuCisgICAgaWYgKG1fc3Rh
dGUuYmxvY2soKS0+c2l6ZSgpID49IE9wdGlvbnM6OnRocmVzaG9sZEZvckRGR1ByZWNpc2VTdHJ1
Y3R1cmVUcmFuc2l0aW9uQW5hbHlzaXMoKSkgeworICAgICAgICBjbG9iYmVyU3RydWN0dXJlcygp
OworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgQWJzdHJhY3RWYWx1ZTo6VHJhbnNpdGlv
bk9ic2VydmVyIHRyYW5zaXRpb25PYnNlcnZlcihmcm9tLCB0byk7CiAgICAgZm9yQWxsVmFsdWVz
KGNsb2JiZXJMaW1pdCwgdHJhbnNpdGlvbk9ic2VydmVyKTsKICAgICAKQEAgLTQxMDgsNiArNDEx
NiwxNCBAQCB2b2lkIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpvYnNl
cnZlVHJhbnNpdGlvbnMoCiAgICAgaWYgKHZlY3Rvci5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
bjsKICAgICAKKyAgICAvLyBTdG9wIHBlcmZvcm1pbmcgcHJlY2lzZSBzdHJ1Y3R1cmUgdHJhbnNp
dGlvbiB0cmFja2luZy4KKyAgICAvLyBQcmVjaXNlIHN0cnVjdHVyZSB0cmFuc2l0aW9uIHRyYWNr
aW5nIHNob3dzIHF1YWRyYXRpYyBjb21wbGV4aXR5IGZvciAjIG9mIG5vZGVzIGluIGEgYmFzaWMg
YmxvY2suCisgICAgLy8gSWYgaXQgaXMgdG9vIGxhcmdlLCB3ZSBjb25zZXJ2YXRpdmVseSBjbG9i
YmVyIHRoZSBzdHJ1Y3R1cmVzLgorICAgIGlmIChtX3N0YXRlLmJsb2NrKCktPnNpemUoKSA+PSBP
cHRpb25zOjp0aHJlc2hvbGRGb3JERkdQcmVjaXNlU3RydWN0dXJlVHJhbnNpdGlvbkFuYWx5c2lz
KCkpIHsKKyAgICAgICAgY2xvYmJlclN0cnVjdHVyZXMoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKwogICAgIEFic3RyYWN0VmFsdWU6OlRyYW5zaXRpb25zT2JzZXJ2ZXIgdHJhbnNpdGlvbnNP
YnNlcnZlcih2ZWN0b3IpOwogICAgIGZvckFsbFZhbHVlcyhjbG9iYmVyTGltaXQsIHRyYW5zaXRp
b25zT2JzZXJ2ZXIpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5o
CmluZGV4IDAzYTZjMmQ5OTU4YWRhOWQ1NWY0ZDE0YTI0ZmQ2YjAwNjYyZjdmYmUuLjhlMzI4YjA2
NWJmZjgyN2FiMmY1Y2QwOTUwMWVkYWRmNTM3ZGY3ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcHRpb25zLmgKQEAgLTI3Myw2ICsyNzMsNyBAQCBjb25zdGV4cHIgYm9vbCBlbmFi
bGVXZWJBc3NlbWJseVN0cmVhbWluZ0FwaSA9IGZhbHNlOwogICAgIHYoYm9vbCwgdXNlVmFsdWVS
ZXBFbGltaW5hdGlvbiwgdHJ1ZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihib29sLCB1c2VB
cml0eUZpeHVwSW5saW5pbmcsIHRydWUsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwg
bG9nRXhlY3V0YWJsZUFsbG9jYXRpb24sIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKKyAgICB2
KHVuc2lnbmVkLCB0aHJlc2hvbGRGb3JERkdQcmVjaXNlU3RydWN0dXJlVHJhbnNpdGlvbkFuYWx5
c2lzLCAxMDAwMCwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgXAogICAgIHYoYm9vbCwgdXNlQ29u
Y3VycmVudEpJVCwgdHJ1ZSwgTm9ybWFsLCAiYWxsb3dzIHRoZSBERkcgLyBGVEwgY29tcGlsYXRp
b24gaW4gdGhyZWFkcyBvdGhlciB0aGFuIHRoZSBleGVjdXRpbmcgSlMgdGhyZWFkIikgXAogICAg
IHYodW5zaWduZWQsIG51bWJlck9mREZHQ29tcGlsZXJUaHJlYWRzLCBjb21wdXRlTnVtYmVyT2ZX
b3JrZXJUaHJlYWRzKDMsIDIpIC0gMSwgTm9ybWFsLCBudWxscHRyKSBcCkBAIC0yODgsNyArMjg5
LDcgQEAgY29uc3RleHByIGJvb2wgZW5hYmxlV2ViQXNzZW1ibHlTdHJlYW1pbmdBcGkgPSBmYWxz
ZTsKICAgICBcCiAgICAgdihib29sLCBicmVha09uVGhyb3csIGZhbHNlLCBOb3JtYWwsIG51bGxw
dHIpIFwKICAgICBcCi0gICAgdih1bnNpZ25lZCwgbWF4aW11bU9wdGltaXphdGlvbkNhbmRpZGF0
ZUJ5dGVjb2RlQ29zdCwgMTAwMDAwLCBOb3JtYWwsIG51bGxwdHIpIFwKKyAgICB2KHVuc2lnbmVk
LCBtYXhpbXVtT3B0aW1pemF0aW9uQ2FuZGlkYXRlQnl0ZWNvZGVDb3N0LCA2MDAwMCwgTm9ybWFs
LCBudWxscHRyKSBcCiAgICAgXAogICAgIHYodW5zaWduZWQsIG1heGltdW1GdW5jdGlvbkZvckNh
bGxJbmxpbmVDYW5kaWRhdGVCeXRlY29kZUNvc3QsIDEyMCwgTm9ybWFsLCBudWxscHRyKSBcCiAg
ICAgdih1bnNpZ25lZCwgbWF4aW11bUZ1bmN0aW9uRm9yQ2xvc3VyZUNhbGxJbmxpbmVDYW5kaWRh
dGVCeXRlY29kZUNvc3QsIDEwMCwgTm9ybWFsLCBudWxscHRyKSBcCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374524</attachid>
            <date>2019-07-19 16:45:37 -0700</date>
            <delta_ts>2019-07-19 19:03:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199929-20190719164536.patch</filename>
            <type>text/plain</type>
            <size>13099</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NjI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZTc5MDIxODcxYWIzZmM5Yzg5MTkyNTEwYmZmYTY0N2Q4ZjE3ZjMyLi41OWFiYWNlN2I3YTI1YzQy
YmZlNDg0NzIxMGY1NDAzODhiNTQ1OGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NyBAQAorMjAxOS0wNy0xOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFJlZHVjaW5nIHRoZSB0aHJlc2hvbGQgb2YgbWF4aW11bU9wdGlt
aXphdGlvbkNhbmRpZGF0ZUJ5dGVjb2RlQ29zdCB0byByZWZsZWN0IHJlY2VudCBieXRlY29kZSBm
b3JtYXQgY2hhbmdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTk5MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbiBDTk4gcGFnZSwgdGhlIG1haW4gdGhyZWFkIGhhbmdzIHNldmVyYWwgc2Vjb25kcy4g
T24gbGVzcy1wb3dlcmZ1bCBkZXZpY2VzIChsaWtlIGlQaG9uZTcpLCBpdCBoYW5ncyBmb3IgOX4g
c2Vjb25kcy4gVGhpcyBpcyBub3QgYWNjZXB0YWJsZSBiZWhhdmlvci4KKyAgICAgICAgVGhlIHJl
YXNvbiBvZiB0aGlzIGlzIHRoYXQgdGhlIERGRyBjb21waWxlciB0YWtlcyB0b28gbG9uZyB0aW1l
IGluIHRoZSBjb21waWxhdGlvbiBmb3IgYSBwYXJ0aWN1bGFyIGZ1bmN0aW9uLiBJdCB0YWtlcyA4
NzY1IG1zIGV2ZW4gaW4gcG93ZXJmdWwgeDY0IG1hY2hpbmUhCisgICAgICAgIERGRyBjb21waWxl
ciBpcyBjb25jdXJyZW50IG9uZS4gSG93ZXZlciwgd2hlbiBHQyByZXF1aXJlcyBhbGwgdGhlIHBl
cmlwaGVyYWwgdGhyZWFkcyB0byBiZSBzdG9wcGVkLCB0aGUgbWFpbiB0aHJlYWQgbmVlZHMgdG8g
d2FpdCBmb3IgdGhlIERGRyBjb21waWxlcidzIHN0b3AuCisgICAgICAgIERGRyBjb21waWxlciBz
dG9wcyBhdCBHQyBzYWZlcG9pbnRzLCBhbmQgdGhleSBhcmUgaW5zZXJ0ZWQgYmV0d2VlbiBERkcg
cGhhc2VzLiBTbywgaWYgc29tZSBvZiBERkcgcGhhc2VzIHRha2UgdmVyeSBsb25nIHRpbWUsIHRo
ZSBtYWluIHRocmVhZCBpcyBibG9ja2VkIGR1cmluZyB0aGF0LgorICAgICAgICBBcyBhIHJlc3Vs
dCwgdGhlIG1haW4gdGhyZWFkIGlzIGJsb2NrZWQgZHVlIHRvIHRoaXMgcGF0aG9sb2dpY2FsIGNv
bXBpbGF0aW9uLgorCisgICAgICAgIFRvIGZpeCB0aGlzIGlzc3VlLCB3ZSByZWR1Y2UgdGhlIG1h
eGltdW1PcHRpbWl6YXRpb25DYW5kaWRhdGVCeXRlY29kZUNvc3QgZnJvbSAxMDAwMDAgdG8gNjAw
MDAuIFRoaXMgaXMgYmVjYXVzZSB3ZSBldmVudHVhbGx5IGZvdW5kIHRoYXQgdGhlIG1haW4gcHJv
YmxlbSBpcyB0aGF0CisgICAgICAgIERGRyBpcyBhY2NlcHRpbmcgdG9vIGxhcmdlIGZ1bmN0aW9u
IG5vdy4gV2UgZGVzY3JpYmUgd2h5IHdlIHRvb2sgdGhpcyB3YXkgaGVyZS4KKworICAgICAgICBU
aGVyZSBhcmUgdHdvIHByb2JsZW1zIGluIEpTQyBERkcgd2l0aCBDTk4gcGFnZS4KKworICAgICAg
ICAxLiBERkcgQUkgaGFzIHN0cnVjdHVyZSB0cmFuc2l0aW9uIHRyYWNraW5nIHdoaWNoIGhhcyBx
dWFkcmF0aWMgY29tcGxleGl0eQorCisgICAgICAgICAgICBTdHJ1Y3R1cmUgdHJhbnNpdGlvbiB0
cmFja2luZyB0YWtlcyB2ZXJ5IGxvbmcgdGltZSBzaW5jZSBpdHMgY29tcGxleGl0eSBpcyBPKE5e
Mikgd2hlcmUgTiBpcyAjIG9mIERGRyBub2RlcyBpbiBhIGJhc2ljIGJsb2NrLgorICAgICAgICAg
ICAgQ05OIGhhcyB2ZXJ5IHBhdGhvbG9naWNhbCBzY3JpcHQgYW5kIGl0IHNob3dzIDQzMjk3IERG
RyBub2Rlcy4KKyAgICAgICAgICAgIFdlIHNob3VsZCByZWR1Y2UgdGhlIGNvbXBsZXhpdHkgb2Yg
dGhpcyBhbGdvcml0aG0uIEknbSB0cmFja2luZyB0aGlzIGluIFsxXS4KKworICAgICAgICAyLiBB
bnl3YXkgQ05OJ3MgZnVuY3Rpb24gaXMgdG9vIGxhcmdlIHRvIGJlIGNvbXBpbGVkIGluIERGRy4K
KworICAgICAgICAgICAgSG93ZXZlciwgKDEpIGlzIG5vdCBwZXJmZWN0IGluIHRoaXMgQ05OIGNh
c2UuIEkgdHJpZWQgc29tZSBtaXRpZ2F0aW9uLCB3aGljaCByZWR1Y2VzIHRoZSBjb21wbGV4aXR5
IGZyb20gTyhOXjIpIHRvIE8oMSkgaW5zdGVhZAorICAgICAgICAgICAgb2YgbWFraW5nIGFuYWx5
c2lzIHJlc3VsdHMgY29uc2VydmF0aXZlIGZvciBzdWNoIGEgbGFyZ2UgYmFzaWMgYmxvY2sgY2Fz
ZS4gRXZlbiB0aG91Z2gsIHdlIHN0aWxsIHNlZSA5MjggbXMgY29tcGlsZSB0aW1lIGV2ZW4gaW4K
KyAgICAgICAgICAgIHg2NCwgdGhpcyBpcyBub3QgYWNjZXB0YWJsZSBhbnl3YXkuCisKKyAgICAg
ICAgICAgIFdlIGF2b2lkZWQgc3VjaCBhbiBsYXJnZSBERkcgZ3JhcGggY29tcGlsYXRpb24gYnkg
aW50cm9kdWNpbmcgYSB0aHJlc2hvbGQuIFRoZSByZWNlbnQgYnl0ZWNvZGUgY2hhbmdlIHJlZHVj
ZWQgdGhlIHNpemUgb2YKKyAgICAgICAgICAgIGluc3RydWN0aW9uQ291bnQgKHNvIGNhbGxlZCBi
eXRlY29kZUNvc3QpIG5vdyBiZWNhdXNlIHRoYXQgY2hhbmdlIG1vdmVkIG1hbnkgb3BlcmFuZHMg
aW50byBtZXRhZGF0YSB0YWJsZS4gV2hpbGUgd2UgcmV2aXNpdCB0aGUgaW5saW5pbmcKKyAgICAg
ICAgICAgIGNvc3QgdG8gYWRqdXN0IGl0IHRvIHRoaXMgbmV3IGJ5dGVjb2RlIGZvcm1hdCwgd2Ug
ZGlkIG5vdCByZXZpc2l0IHRoZSB0aHJlc2hvbGQgZm9yIERGRyBjb21waWxhdGlvbi4gU28gaW4g
dGhpcyBwYXRjaCwgd2UgcmV2aXNpdAorICAgICAgICAgICAgdGhpcyB0aHJlc2hvbGQgdG8gcGlj
ayBhbiBhcHByb3ByaWF0ZSBvbmUuIFdlIHJlZHVjZWQgdGhlIERGRyBvcHRpbWl6YXRpb24gdGhy
ZXNob2xkIGZyb20gMTAwMDAwIHRvIDYwMDAwIGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgcmVhc29u
cy4KKworICAgICAgICAgICAgMS4gQmFzZWQgb24gdGhlIHRpbWUtY29uc3VtaW5nIGNvbXBpbGUt
dGltZSBleHBlcmllbmNlIG9mIENOTidzIHZlcnkgbGFyZ2Ugc2NyaXB0ICg2NzkwNCBjb3N0KS4g
RXZlbiBpZiB3ZSByZW1vdmUgcXVhZHJhdGljIGNvbXBsZXhpdHkgaW4gQUkncyBvYnNlcnZlVHJh
bnNpdGlvbiwgaXQgc3RpbGwgdGFrZXMgOTI4IG1zIGluIERGRyBjb21waWxhdGlvbiwgdGhpcyBp
cyBub3QgYWNjZXB0YWJsZS4KKyAgICAgICAgICAgIDIuIEpldFN0cmVhbTIgaGFzIGF1dG8tZ2Vu
ZXJhdGVkIGNvZGUgaW4gb2N0YW5lLXpsaWIsIGFuZCBpdCBpcyBoaXN0b3JpY2FsbHkgc3RyZXNz
aW5nIHRoZSBjb21waWxlLXRpbWUuIEV2ZW4gc3VjaCBhbiBmdW5jdGlvbiBoYXMgMzYwNjUgYnl0
ZWNvZGUgY29zdC4gNjAwMDAgY2FuIGNvdmVyIGl0IHdlbGwuCisgICAgICAgICAgICAzLiBUaGUg
bWF4aW11bSBieXRlY29kZSBjb3N0IGluIFNwZWVkb21ldGVyMiBpcyA1NjcxLiA2MDAwMCBjb3Zl
cnMgYWxsIHdoaWxlIGF2b2lkaW5nIENOTidzIHBhdGhvbG9naWNhbCBjYXNlLgorICAgICAgICAg
ICAgNC4gT3VyIGJ5dGVjb2RlIHNocmlua3MgbXVjaC4gSW4gQ05OIHByb2JsZW1hdGljIGZ1bmN0
aW9uIGNhc2UsIGl0IHJlZHVjZWQgZnJvbSA5NTA5MSB0byA2NzkwNCwgNzElLiBJdCB2YXJpZXMs
IGJ1dCBpdCB0ZW5kcyB0byBiZSA1MCAtIDYwJX4gdXN1YWxseS4gQW5kIHdlIHdvdWxkIGxpa2Ug
dG8gYXZvaWQgdGhhdCBjb21waWxhdGlvbiAoaXQgYWxzbyBibG9ja2VkIHRoZSBtYWluIHRocmVh
ZAorICAgICAgICAgICAgICAgZXZlbiBiZWZvcmUgdGhlIGJ5dGVjb2RlIGZvcm1hdCBpcyBjaGFu
Z2VkKSBpZiB3ZSBwaWNrIDgwMDAwLTkwMDAwIGZvciB0aGUgdGhyZXNob2xkIGluIHRoZSBvbGQg
Zm9ybWF0LCBpdCB3b3VsZCBiZSA0MDAwMCAtIDYzOTAwLiBTbyA1MDAwMCAtIDYwMDAwIHNlZW1z
IHJlYXNvbmFibGUuCisgICAgICAgICAgICA1LiBUaGlzIDEwMDAwMCBpcyBvcmlnaW5hbGx5IHBp
Y2tlZCB0byBjb3ZlciBBc21CZW5jaFsyXS4gQXNtQmVuY2gncyBtYXhpbXVtIGJ5dGVjb2RlIGNv
c3QgaXMgMjE2MDkgaW4gYmlnZmliLmNwcCBhbmQgc3RlcGFub3ZfY29udGFpbmVyLmNwcC4gNjAw
MDAgY292ZXJzIGFsbCB3ZWxsLgorCisgICAgICAgIFNvIEkgdGhpbmsgNjAwMDAgc2VlbXMgcmVh
c29uYWJsZSB0aHJlc2hvbGQgd2hpbGUgYXZvaWRpbmcgcGF0aG9sb2dpY2FsbHkgbGFyZ2UgZnVu
Y3Rpb25zIChhcyB3ZSBoYXZlIGEgdGhyZXNob2xkIGZvciAjIG9mIERGRyBub2RlcyBpbiBGVEwp
LiBXaGlsZSB3ZSBhdm9pZCBjb21waWxpbmcgaW5jcmVkaWJseSBsYXJnZSBmdW5jdGlvbnMsCisg
ICAgICAgIEkgdGhpbmsgdGhpcyBzaG91bGQgYmUgY292ZXJlZCBieSBpbnRyb2R1Y2luZyBERkcg
dHJhY2VsZXQgY29tcGlsZXIgb25jZSBpdCBpcyBpbnRyb2R1Y2VkLiBBbmQgaXQgaXMgYWxzbyBw
b3NzaWJsZSB0aGF0IHdlIGNhbiBjb21waWxlIHNtYWxsIGhvdCBmdW5jdGlvbnMgd2hpbGUgYXZv
aWRpbmcgc3VjaCBhbiBsYXJnZSBmdW5jdGlvbi4KKworICAgICAgICBbMV06IGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk5NTkKKyAgICAgICAgWzJdOiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MjEyCisKKyAgICAgICAgKiBieXRl
Y29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmR1bXBBc3N1bWlu
Z0pJVFR5cGUgY29uc3QpOgorICAgICAgICAqIGRmZy9ERkdEaXNhc3NlbWJsZXIuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OkRpc2Fzc2VtYmxlcjo6ZHVtcEhlYWRlcik6CisgICAgICAgICogZGZn
L0RGR0RyaXZlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y29tcGlsZUltcGwpOgorICAgICAg
ICAqIGRmZy9ERkdQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpQbGFuOjpjb21waWxlSW5U
aHJlYWQpOgorICAgICAgICAqIGZ0bC9GVExDb21waWxlLmNwcDoKKyAgICAgICAgKEpTQzo6RlRM
Ojpjb21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMTGluay5jcHA6CisgICAgICAgIChKU0M6OkZU
TDo6bGluayk6CisgICAgICAgICogaml0L0pJVERpc2Fzc2VtYmxlci5jcHA6CisgICAgICAgIChK
U0M6OkpJVERpc2Fzc2VtYmxlcjo6ZHVtcEhlYWRlcik6CisgICAgICAgICogcnVudGltZS9PcHRp
b25zLmg6CisKIDIwMTktMDctMTcgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4K
IAogICAgICAgICBEaXNhYmxlIFBvaW50ZXIgRXZlbnRzIHByaW9yIHRvIHdhdGNoT1MgNgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAppbmRleCA5M2QwZmE5
MTFkYjllNzVlNzVjYzA0NzAxN2Y4MWViMGJmMzFmYjNmLi42MTQ0OTVkMGEyZDNhYTk4ODk3NDEz
NzM4Yjg5NjYwOGI1ODE4ODZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Q29kZUJsb2NrLmNwcApAQCAtMTkwLDcgKzE5MCw3IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQXNz
dW1pbmdKSVRUeXBlKFByaW50U3RyZWFtJiBvdXQsIEpJVFR5cGUgaml0VHlwZSkgY29uc3QKIAog
ICAgIGlmIChjb2RlVHlwZSgpID09IEZ1bmN0aW9uQ29kZSkKICAgICAgICAgb3V0LnByaW50KHNw
ZWNpYWxpemF0aW9uS2luZCgpKTsKLSAgICBvdXQucHJpbnQoIiwgIiwgaW5zdHJ1Y3Rpb25zU2l6
ZSgpKTsKKyAgICBvdXQucHJpbnQoIiwgaW5zdHJ1Y3Rpb25zU2l6ZToiLCBpbnN0cnVjdGlvbnNT
aXplKCksICIsIGJ5dGVjb2RlQ29zdDoiLCBieXRlY29kZUNvc3QoKSk7CiAgICAgaWYgKHRoaXMt
PmppdFR5cGUoKSA9PSBKSVRUeXBlOjpCYXNlbGluZUpJVCAmJiBtX3Nob3VsZEFsd2F5c0JlSW5s
aW5lZCkKICAgICAgICAgb3V0LnByaW50KCIgKFNob3VsZEFsd2F5c0JlSW5saW5lZCkiKTsKICAg
ICBpZiAob3duZXJFeGVjdXRhYmxlKCktPm5ldmVySW5saW5lKCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rpc2Fzc2VtYmxlci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Rpc2Fzc2VtYmxlci5jcHAKaW5kZXggNzI3ZWI0OGFmMWI2OGU5NzBk
YjcwNzdlYmVhMmQwYWRmY2IzYTFlNi4uY2RmNzZiN2Y3NjI3YzA3ZDQ1NWQxZGUxOGI0NzI1Mjhl
Mzg2ODE1OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEaXNhc3Nl
bWJsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRGlzYXNzZW1ibGVy
LmNwcApAQCAtNzQsNyArNzQsNyBAQCB2b2lkIERpc2Fzc2VtYmxlcjo6cmVwb3J0VG9Qcm9maWxl
cihQcm9maWxlcjo6Q29tcGlsYXRpb24qIGNvbXBpbGF0aW9uLCBMaW5rQnVmZgogCiB2b2lkIERp
c2Fzc2VtYmxlcjo6ZHVtcEhlYWRlcihQcmludFN0cmVhbSYgb3V0LCBMaW5rQnVmZmVyJiBsaW5r
QnVmZmVyKQogewotICAgIG91dC5wcmludCgiR2VuZXJhdGVkIERGRyBKSVQgY29kZSBmb3IgIiwg
Q29kZUJsb2NrV2l0aEpJVFR5cGUobV9ncmFwaC5tX2NvZGVCbG9jaywgSklUVHlwZTo6REZHSklU
KSwgIiwgaW5zdHJ1Y3Rpb25zIHNpemUgPSAiLCBtX2dyYXBoLm1fY29kZUJsb2NrLT5pbnN0cnVj
dGlvbnNTaXplKCksICI6XG4iKTsKKyAgICBvdXQucHJpbnQoIkdlbmVyYXRlZCBERkcgSklUIGNv
ZGUgZm9yICIsIENvZGVCbG9ja1dpdGhKSVRUeXBlKG1fZ3JhcGgubV9jb2RlQmxvY2ssIEpJVFR5
cGU6OkRGR0pJVCksICIsIGluc3RydWN0aW9ucyBzaXplID0gIiwgbV9ncmFwaC5tX2NvZGVCbG9j
ay0+aW5zdHJ1Y3Rpb25zU2l6ZSgpLCAiLCBieXRlY29kZSBjb3N0ID0gIiwgbV9ncmFwaC5tX2Nv
ZGVCbG9jay0+Ynl0ZWNvZGVDb3N0KCksICI6XG4iKTsKICAgICBvdXQucHJpbnQoIiAgICBPcHRp
bWl6ZWQgd2l0aCBleGVjdXRpb24gY291bnRlciA9ICIsIG1fZ3JhcGgubV9wcm9maWxlZEJsb2Nr
LT5qaXRFeGVjdXRlQ291bnRlcigpLCAiXG4iKTsKICAgICBvdXQucHJpbnQoIiAgICBDb2RlIGF0
IFsiLCBSYXdQb2ludGVyKGxpbmtCdWZmZXIuZGVidWdBZGRyZXNzKCkpLCAiLCAiLCBSYXdQb2lu
dGVyKHN0YXRpY19jYXN0PGNoYXIqPihsaW5rQnVmZmVyLmRlYnVnQWRkcmVzcygpKSArIGxpbmtC
dWZmZXIuc2l6ZSgpKSwgIik6XG4iKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRHJpdmVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRHJp
dmVyLmNwcAppbmRleCBkYjY5ZjFiZGQ2M2QxMTVhZmI1ZTVkMGZhZGI4NDA3MTEzMmE0YzlkLi4x
MmUyOTdjNWZhOGJmMjQ0OTYwZDM0MjNlZjgxYmQ5NDBlMTZjZTNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdEcml2ZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIHN0YXRpYyBDb21waWxh
dGlvblJlc3VsdCBjb21waWxlSW1wbCgKICAgICBBU1NFUlQoIXByb2ZpbGVkREZHQ29kZUJsb2Nr
IHx8IHByb2ZpbGVkREZHQ29kZUJsb2NrLT5qaXRUeXBlKCkgPT0gSklUVHlwZTo6REZHSklUKTsK
ICAgICAKICAgICBpZiAobG9nQ29tcGlsYXRpb25DaGFuZ2VzKG1vZGUpKQotICAgICAgICBkYXRh
TG9nKCJERkcoRHJpdmVyKSBjb21waWxpbmcgIiwgKmNvZGVCbG9jaywgIiB3aXRoICIsIG1vZGUs
ICIsIGluc3RydWN0aW9ucyBzaXplID0gIiwgY29kZUJsb2NrLT5pbnN0cnVjdGlvbnNTaXplKCks
ICJcbiIpOworICAgICAgICBkYXRhTG9nKCJERkcoRHJpdmVyKSBjb21waWxpbmcgIiwgKmNvZGVC
bG9jaywgIiB3aXRoICIsIG1vZGUsICIsIGluc3RydWN0aW9ucyBzaXplID0gIiwgY29kZUJsb2Nr
LT5pbnN0cnVjdGlvbnNTaXplKCksICIsIGJ5dGVjb2RlIGNvc3QgPSAiLCBjb2RlQmxvY2stPmJ5
dGVjb2RlQ29zdCgpLCAiXG4iKTsKICAgICAKICAgICAvLyBNYWtlIHN1cmUgdGhhdCBhbnkgc3R1
YnMgdGhhdCB0aGUgREZHIGlzIGdvaW5nIHRvIHVzZSBhcmUgaW5pdGlhbGl6ZWQuIFdlIHdhbnQg
dG8KICAgICAvLyBtYWtlIHN1cmUgdGhhdCBhbGwgSklUIGNvZGUgZ2VuZXJhdGlvbiBkb2VzIGZp
bmFsaXphdGlvbiBvbiB0aGUgbWFpbiB0aHJlYWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
bGFuLmNwcAppbmRleCA1NzU4YTZlODJlMTdjNzc3MjJhNWI4Y2EzOTU0MzliMTMwZjVjZDkwLi5h
Y2M0ZjBkNGE3ZTlhMTNlOTViOTU3ZDJkOTg5YmI1ZjAxNDNkYjhiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHUGxhbi5jcHAKQEAgLTE4NCw3ICsxODQsNyBAQCB2b2lkIFBsYW46OmNvbXBp
bGVJblRocmVhZChUaHJlYWREYXRhKiB0aHJlYWREYXRhKQogICAgIENvbXBpbGF0aW9uU2NvcGUg
Y29tcGlsYXRpb25TY29wZTsKIAogICAgIGlmIChsb2dDb21waWxhdGlvbkNoYW5nZXMobV9tb2Rl
KSB8fCBPcHRpb25zOjpsb2dQaGFzZVRpbWVzKCkpCi0gICAgICAgIGRhdGFMb2coIkRGRyhQbGFu
KSBjb21waWxpbmcgIiwgKm1fY29kZUJsb2NrLCAiIHdpdGggIiwgbV9tb2RlLCAiLCBpbnN0cnVj
dGlvbnMgc2l6ZSA9ICIsIG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnNTaXplKCksICJcbiIpOwor
ICAgICAgICBkYXRhTG9nKCJERkcoUGxhbikgY29tcGlsaW5nICIsICptX2NvZGVCbG9jaywgIiB3
aXRoICIsIG1fbW9kZSwgIiwgaW5zdHJ1Y3Rpb25zIHNpemUgPSAiLCBtX2NvZGVCbG9jay0+aW5z
dHJ1Y3Rpb25zU2l6ZSgpLCAiLCBieXRlY29kZSBjb3N0ID0gIiwgbV9jb2RlQmxvY2stPmJ5dGVj
b2RlQ29zdCgpLCAiXG4iKTsKIAogICAgIENvbXBpbGF0aW9uUGF0aCBwYXRoID0gY29tcGlsZUlu
VGhyZWFkSW1wbCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TENvbXBpbGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcApp
bmRleCA1ZDA0YjcyZjA0ODMxZDA2MzAyMzA0ZDFlYjdlNDkyOWQ0ODA0MjdmLi5kMWMxMWIwYWMx
NzE0YmM3Y2YwMjdjNzEwYzNiZWQwNjYwMWNhOWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMQ29tcGlsZS5jcHAKQEAgLTE2OSw3ICsxNjksNyBAQCB2b2lkIGNvbXBpbGUoU3RhdGUm
IHN0YXRlLCBTYWZlcG9pbnQ6OlJlc3VsdCYgc2FmZXBvaW50UmVzdWx0KQogICAgIGlmIChCMzo6
QWlyOjpEaXNhc3NlbWJsZXIqIGRpc2Fzc2VtYmxlciA9IHN0YXRlLnByb2MtPmNvZGUoKS5kaXNh
c3NlbWJsZXIoKSkgewogICAgICAgICBQcmludFN0cmVhbSYgb3V0ID0gV1RGOjpkYXRhRmlsZSgp
OwogCi0gICAgICAgIG91dC5wcmludCgiR2VuZXJhdGVkICIsIHN0YXRlLmdyYXBoLm1fcGxhbi5t
b2RlKCksICIgY29kZSBmb3IgIiwgQ29kZUJsb2NrV2l0aEpJVFR5cGUoc3RhdGUuZ3JhcGgubV9j
b2RlQmxvY2ssIEpJVFR5cGU6OkZUTEpJVCksICIsIGluc3RydWN0aW9ucyBzaXplID0gIiwgc3Rh
dGUuZ3JhcGgubV9jb2RlQmxvY2stPmluc3RydWN0aW9uc1NpemUoKSwgIjpcbiIpOworICAgICAg
ICBvdXQucHJpbnQoIkdlbmVyYXRlZCAiLCBzdGF0ZS5ncmFwaC5tX3BsYW4ubW9kZSgpLCAiIGNv
ZGUgZm9yICIsIENvZGVCbG9ja1dpdGhKSVRUeXBlKHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBK
SVRUeXBlOjpGVExKSVQpLCAiLCBpbnN0cnVjdGlvbnMgc2l6ZSA9ICIsIHN0YXRlLmdyYXBoLm1f
Y29kZUJsb2NrLT5pbnN0cnVjdGlvbnNTaXplKCksICIsIGJ5dGVjb2RlIGNvc3QgPSAiLCBzdGF0
ZS5ncmFwaC5tX2NvZGVCbG9jay0+Ynl0ZWNvZGVDb3N0KCksICI6XG4iKTsKIAogICAgICAgICBM
aW5rQnVmZmVyJiBsaW5rQnVmZmVyID0gKnN0YXRlLmZpbmFsaXplci0+YjNDb2RlTGlua0J1ZmZl
cjsKICAgICAgICAgQjM6OlZhbHVlKiBjdXJyZW50QjNWYWx1ZSA9IG51bGxwdHI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExpbmsuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExMaW5rLmNwcAppbmRleCAwODU0MDU2ZWM3ZDE2MmIxMWNkYzIxY2Q3
OGZlMTUxN2Y3YWNmM2ViLi41NjhmYmQ3ZWMxMmMzNmU2NTE5NmJmODEyYzc1YTczMTNkZjkxYTQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExpbmsuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGluay5jcHAKQEAgLTcxLDcgKzcxLDcgQEAg
dm9pZCBsaW5rKFN0YXRlJiBzdGF0ZSkKICAgICBpZiAoVU5MSUtFTFkoY29tcGlsYXRpb24pKSB7
CiAgICAgICAgIGNvbXBpbGF0aW9uLT5hZGREZXNjcmlwdGlvbigKICAgICAgICAgICAgIFByb2Zp
bGVyOjpPcmlnaW5TdGFjaygpLAotICAgICAgICAgICAgdG9DU3RyaW5nKCJHZW5lcmF0ZWQgRlRM
IEpJVCBjb2RlIGZvciAiLCBDb2RlQmxvY2tXaXRoSklUVHlwZShjb2RlQmxvY2ssIEpJVFR5cGU6
OkZUTEpJVCksICIsIGluc3RydWN0aW9ucyBzaXplID0gIiwgZ3JhcGgubV9jb2RlQmxvY2stPmlu
c3RydWN0aW9uc1NpemUoKSwgIjpcbiIpKTsKKyAgICAgICAgICAgIHRvQ1N0cmluZygiR2VuZXJh
dGVkIEZUTCBKSVQgY29kZSBmb3IgIiwgQ29kZUJsb2NrV2l0aEpJVFR5cGUoY29kZUJsb2NrLCBK
SVRUeXBlOjpGVExKSVQpLCAiLCBpbnN0cnVjdGlvbnMgc2l6ZSA9ICIsIGdyYXBoLm1fY29kZUJs
b2NrLT5pbnN0cnVjdGlvbnNTaXplKCksICIsIGJ5dGVjb2RlIGNvc3QgPSAiLCBncmFwaC5tX2Nv
ZGVCbG9jay0+Ynl0ZWNvZGVDb3N0KCksICI6XG4iKSk7CiAgICAgICAgIAogICAgICAgICBncmFw
aC5lbnN1cmVTU0FEb21pbmF0b3JzKCk7CiAgICAgICAgIGdyYXBoLmVuc3VyZVNTQU5hdHVyYWxM
b29wcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVREaXNhc3Nl
bWJsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVREaXNhc3NlbWJsZXIuY3Bw
CmluZGV4IDIwZWQzN2ZlZTNhMGYzYzk5YzYyODI1NDVhNGMxMGIzYmJlMzc5YzkuLjNiNDMxMWM0
YjE1YmM2NDBkMDc1ZjI1N2JhMWY4ODlkOWI0MWZmOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklURGlzYXNzZW1ibGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVERpc2Fzc2VtYmxlci5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBKSVRE
aXNhc3NlbWJsZXI6OnJlcG9ydFRvUHJvZmlsZXIoUHJvZmlsZXI6OkNvbXBpbGF0aW9uKiBjb21w
aWxhdGlvbiwgTGlua0IKIAogdm9pZCBKSVREaXNhc3NlbWJsZXI6OmR1bXBIZWFkZXIoUHJpbnRT
dHJlYW0mIG91dCwgTGlua0J1ZmZlciYgbGlua0J1ZmZlcikKIHsKLSAgICBvdXQucHJpbnQoIkdl
bmVyYXRlZCBCYXNlbGluZSBKSVQgY29kZSBmb3IgIiwgQ29kZUJsb2NrV2l0aEpJVFR5cGUobV9j
b2RlQmxvY2ssIEpJVFR5cGU6OkJhc2VsaW5lSklUKSwgIiwgaW5zdHJ1Y3Rpb25zIHNpemUgPSAi
LCBtX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zU2l6ZSgpLCAiXG4iKTsKKyAgICBvdXQucHJpbnQo
IkdlbmVyYXRlZCBCYXNlbGluZSBKSVQgY29kZSBmb3IgIiwgQ29kZUJsb2NrV2l0aEpJVFR5cGUo
bV9jb2RlQmxvY2ssIEpJVFR5cGU6OkJhc2VsaW5lSklUKSwgIiwgaW5zdHJ1Y3Rpb25zIHNpemUg
PSAiLCBtX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zU2l6ZSgpLCAiLCBieXRlY29kZSBjb3N0ID0g
IiwgbV9jb2RlQmxvY2stPmJ5dGVjb2RlQ29zdCgpLCAiXG4iKTsKICAgICBvdXQucHJpbnQoIiAg
IFNvdXJjZTogIiwgbV9jb2RlQmxvY2stPnNvdXJjZUNvZGVPbk9uZUxpbmUoKSwgIlxuIik7CiAg
ICAgb3V0LnByaW50KCIgICBDb2RlIGF0IFsiLCBSYXdQb2ludGVyKGxpbmtCdWZmZXIuZGVidWdB
ZGRyZXNzKCkpLCAiLCAiLCBSYXdQb2ludGVyKHN0YXRpY19jYXN0PGNoYXIqPihsaW5rQnVmZmVy
LmRlYnVnQWRkcmVzcygpKSArIGxpbmtCdWZmZXIuc2l6ZSgpKSwgIik6XG4iKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAppbmRleCAwM2E2YzJkOTk1OGFkYTlkNTVm
NGQxNGEyNGZkNmIwMDY2MmY3ZmJlLi42MTg2NWJjMGE1ZmMzYTZlYWU2Mjc2NDAwNWRkMDY0Y2Vl
NWVkNTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25z
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCkBAIC0yODgs
NyArMjg4LDcgQEAgY29uc3RleHByIGJvb2wgZW5hYmxlV2ViQXNzZW1ibHlTdHJlYW1pbmdBcGkg
PSBmYWxzZTsKICAgICBcCiAgICAgdihib29sLCBicmVha09uVGhyb3csIGZhbHNlLCBOb3JtYWws
IG51bGxwdHIpIFwKICAgICBcCi0gICAgdih1bnNpZ25lZCwgbWF4aW11bU9wdGltaXphdGlvbkNh
bmRpZGF0ZUJ5dGVjb2RlQ29zdCwgMTAwMDAwLCBOb3JtYWwsIG51bGxwdHIpIFwKKyAgICB2KHVu
c2lnbmVkLCBtYXhpbXVtT3B0aW1pemF0aW9uQ2FuZGlkYXRlQnl0ZWNvZGVDb3N0LCA2MDAwMCwg
Tm9ybWFsLCBudWxscHRyKSBcCiAgICAgXAogICAgIHYodW5zaWduZWQsIG1heGltdW1GdW5jdGlv
bkZvckNhbGxJbmxpbmVDYW5kaWRhdGVCeXRlY29kZUNvc3QsIDEyMCwgTm9ybWFsLCBudWxscHRy
KSBcCiAgICAgdih1bnNpZ25lZCwgbWF4aW11bUZ1bmN0aW9uRm9yQ2xvc3VyZUNhbGxJbmxpbmVD
YW5kaWRhdGVCeXRlY29kZUNvc3QsIDEwMCwgTm9ybWFsLCBudWxscHRyKSBcCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374536</attachid>
            <date>2019-07-19 19:03:37 -0700</date>
            <delta_ts>2019-07-20 03:54:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199929-20190719190336.patch</filename>
            <type>text/plain</type>
            <size>13223</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NjI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZTc5MDIxODcxYWIzZmM5Yzg5MTkyNTEwYmZmYTY0N2Q4ZjE3ZjMyLi42YjFmNDYzYmI5ODU3YjI4
MDlmMmU4YTIzNjk2MGNkNWEwMzc1ZTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2OCBAQAorMjAxOS0wNy0xOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFJlZHVjaW5nIHRoZSB0aHJlc2hvbGQgb2YgbWF4aW11bU9wdGlt
aXphdGlvbkNhbmRpZGF0ZUJ5dGVjb2RlQ29zdCB0byByZWZsZWN0IHJlY2VudCBieXRlY29kZSBm
b3JtYXQgY2hhbmdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTk5MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbiBDTk4gcGFnZSwgdGhlIG1haW4gdGhyZWFkIGhhbmdzIHNldmVyYWwgc2Vjb25kcy4g
T24gbGVzcy1wb3dlcmZ1bCBkZXZpY2VzIChsaWtlIGlQaG9uZTcpLCBpdCBoYW5ncyBmb3IgOX4g
c2Vjb25kcy4gVGhpcyBpcyBub3QgYWNjZXB0YWJsZSBiZWhhdmlvci4KKyAgICAgICAgVGhlIHJl
YXNvbiBvZiB0aGlzIGlzIHRoYXQgdGhlIERGRyBjb21waWxlciB0YWtlcyB0b28gbG9uZyB0aW1l
IGluIHRoZSBjb21waWxhdGlvbiBmb3IgYSBwYXJ0aWN1bGFyIGZ1bmN0aW9uLiBJdCB0YWtlcyA4
NzY1IG1zIGV2ZW4gaW4gcG93ZXJmdWwgeDY0IG1hY2hpbmUhCisgICAgICAgIERGRyBjb21waWxl
ciBpcyBjb25jdXJyZW50IG9uZS4gSG93ZXZlciwgd2hlbiBHQyByZXF1aXJlcyBhbGwgdGhlIHBl
cmlwaGVyYWwgdGhyZWFkcyB0byBiZSBzdG9wcGVkLCB0aGUgbWFpbiB0aHJlYWQgbmVlZHMgdG8g
d2FpdCBmb3IgdGhlIERGRyBjb21waWxlcidzIHN0b3AuCisgICAgICAgIERGRyBjb21waWxlciBz
dG9wcyBhdCBHQyBzYWZlcG9pbnRzLCBhbmQgdGhleSBhcmUgaW5zZXJ0ZWQgYmV0d2VlbiBERkcg
cGhhc2VzLiBTbywgaWYgc29tZSBvZiBERkcgcGhhc2VzIHRha2UgdmVyeSBsb25nIHRpbWUsIHRo
ZSBtYWluIHRocmVhZCBpcyBibG9ja2VkIGR1cmluZyB0aGF0LgorICAgICAgICBBcyBhIHJlc3Vs
dCwgdGhlIG1haW4gdGhyZWFkIGlzIGJsb2NrZWQgZHVlIHRvIHRoaXMgcGF0aG9sb2dpY2FsIGNv
bXBpbGF0aW9uLgorCisgICAgICAgIFRvIGZpeCB0aGlzIGlzc3VlLCB3ZSByZWR1Y2UgdGhlIG1h
eGltdW1PcHRpbWl6YXRpb25DYW5kaWRhdGVCeXRlY29kZUNvc3QgZnJvbSAxMDAwMDAgdG8gNjAw
MDAuIFRoaXMgaXMgYmVjYXVzZSB3ZSBldmVudHVhbGx5IGZvdW5kIHRoYXQgdGhlIG1haW4gcHJv
YmxlbSBpcyB0aGF0CisgICAgICAgIERGRyBpcyBhY2NlcHRpbmcgdG9vIGxhcmdlIGZ1bmN0aW9u
IG5vdy4gV2UgZGVzY3JpYmUgd2h5IHdlIHRvb2sgdGhpcyB3YXkgaGVyZS4KKworICAgICAgICBU
aGVyZSBhcmUgdHdvIHByb2JsZW1zIGluIEpTQyBERkcgd2l0aCBDTk4gcGFnZS4KKworICAgICAg
ICAxLiBERkcgQUkgaGFzIHN0cnVjdHVyZSB0cmFuc2l0aW9uIHRyYWNraW5nIHdoaWNoIGhhcyBx
dWFkcmF0aWMgY29tcGxleGl0eQorCisgICAgICAgICAgICBTdHJ1Y3R1cmUgdHJhbnNpdGlvbiB0
cmFja2luZyB0YWtlcyB2ZXJ5IGxvbmcgdGltZSBzaW5jZSBpdHMgY29tcGxleGl0eSBpcyBPKE5e
Mikgd2hlcmUgTiBpcyAjIG9mIERGRyBub2RlcyBpbiBhIGJhc2ljIGJsb2NrLgorICAgICAgICAg
ICAgQ05OIGhhcyB2ZXJ5IHBhdGhvbG9naWNhbCBzY3JpcHQgYW5kIGl0IHNob3dzIDQzMjk3IERG
RyBub2Rlcy4KKyAgICAgICAgICAgIFdlIHNob3VsZCByZWR1Y2UgdGhlIGNvbXBsZXhpdHkgb2Yg
dGhpcyBhbGdvcml0aG0uIEknbSB0cmFja2luZyB0aGlzIGluIFsxXS4KKworICAgICAgICAyLiBB
bnl3YXkgQ05OJ3MgZnVuY3Rpb24gaXMgdG9vIGxhcmdlIHRvIGJlIGNvbXBpbGVkIGluIERGRy4K
KworICAgICAgICAgICAgSG93ZXZlciwgKDEpIGlzIG5vdCBwZXJmZWN0IGluIHRoaXMgQ05OIGNh
c2UuIEkgdHJpZWQgc29tZSBtaXRpZ2F0aW9uLCB3aGljaCByZWR1Y2VzIHRoZSBjb21wbGV4aXR5
IGZyb20gTyhOXjIpIHRvIE8oMSkgaW5zdGVhZAorICAgICAgICAgICAgb2YgbWFraW5nIGFuYWx5
c2lzIHJlc3VsdHMgdmVyeSBjb25zZXJ2YXRpdmUgZm9yIHN1Y2ggYSBsYXJnZSBiYXNpYyBibG9j
ayBjYXNlLiBFdmVuIHRob3VnaCwgd2Ugc3RpbGwgc2VlIDkyOCBtcyBjb21waWxlIHRpbWUgZXZl
bgorICAgICAgICAgICAgaW4geDY0LCB0aGlzIGlzIG5vdCBhY2NlcHRhYmxlIGFueXdheS4gSSBh
bHNvIHRlc3RlZCBpdCBvbiBpUGhvbmU3IGFuZCBJIGNhbiBzdGlsbCBzZWUgbm90aWNlYWJsZSBs
YWdnaW5nIHdpdGggTygxKSBhbGdvcml0aG0uCisKKyAgICAgICAgICAgIFdlIGF2b2lkZWQgc3Vj
aCBhbiBsYXJnZSBERkcgZ3JhcGggY29tcGlsYXRpb24gYnkgaW50cm9kdWNpbmcgYSB0aHJlc2hv
bGQuIFRoZSByZWNlbnQgYnl0ZWNvZGUgY2hhbmdlIHJlZHVjZWQgdGhlIHNpemUgb2YKKyAgICAg
ICAgICAgIGluc3RydWN0aW9uQ291bnQgKHNvIGNhbGxlZCBieXRlY29kZUNvc3QpIG5vdyBiZWNh
dXNlIHRoYXQgY2hhbmdlIG1vdmVkIG1hbnkgb3BlcmFuZHMgaW50byBtZXRhZGF0YSB0YWJsZS4g
V2hpbGUgd2UgcmV2aXNpdCB0aGUgaW5saW5pbmcKKyAgICAgICAgICAgIGNvc3QgdG8gYWRqdXN0
IGl0IHRvIHRoaXMgbmV3IGJ5dGVjb2RlIGZvcm1hdCwgd2UgZGlkIG5vdCByZXZpc2l0IHRoZSB0
aHJlc2hvbGQgZm9yIERGRyBjb21waWxhdGlvbi4gU28gaW4gdGhpcyBwYXRjaCwgd2UgcmV2aXNp
dAorICAgICAgICAgICAgdGhpcyB0aHJlc2hvbGQgdG8gcGljayBhbiBhcHByb3ByaWF0ZSBvbmUu
IFdlIHJlZHVjZWQgdGhlIERGRyBvcHRpbWl6YXRpb24gdGhyZXNob2xkIGZyb20gMTAwMDAwIHRv
IDYwMDAwIGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgcmVhc29ucy4KKworICAgICAgICAgICAgMS4g
QmFzZWQgb24gdGhlIHRpbWUtY29uc3VtaW5nIGNvbXBpbGUtdGltZSBleHBlcmllbmNlIG9mIENO
TidzIHZlcnkgbGFyZ2Ugc2NyaXB0ICg2NzkwNCBjb3N0KS4gRXZlbiBpZiB3ZSByZW1vdmUgcXVh
ZHJhdGljIGNvbXBsZXhpdHkgaW4gQUkncyBvYnNlcnZlVHJhbnNpdGlvbiwgaXQgc3RpbGwgdGFr
ZXMgOTI4IG1zIGluIERGRyBjb21waWxhdGlvbiwgdGhpcyBpcyBub3QgYWNjZXB0YWJsZS4KKyAg
ICAgICAgICAgIDIuIEpldFN0cmVhbTIgaGFzIGF1dG8tZ2VuZXJhdGVkIGNvZGUgaW4gb2N0YW5l
LXpsaWIsIGFuZCBpdCBpcyBoaXN0b3JpY2FsbHkgc3RyZXNzaW5nIHRoZSBjb21waWxlLXRpbWUu
IEV2ZW4gc3VjaCBhbiBmdW5jdGlvbiBoYXMgMzYwNjUgYnl0ZWNvZGUgY29zdC4gNjAwMDAgY2Fu
IGNvdmVyIGl0IHdlbGwuCisgICAgICAgICAgICAzLiBUaGUgbWF4aW11bSBieXRlY29kZSBjb3N0
IGluIFNwZWVkb21ldGVyMiBpcyA1NjcxLiA2MDAwMCBjb3ZlcnMgYWxsIHdoaWxlIGF2b2lkaW5n
IENOTidzIHBhdGhvbG9naWNhbCBjYXNlLgorICAgICAgICAgICAgNC4gT3VyIGJ5dGVjb2RlIHNo
cmlua3MgbXVjaC4gSW4gQ05OIHByb2JsZW1hdGljIGZ1bmN0aW9uIGNhc2UsIGl0IHJlZHVjZWQg
ZnJvbSA5NTA5MSB0byA2NzkwNCwgNzElLiBJdCB2YXJpZXMsIGJ1dCBpdCB0ZW5kcyB0byBiZSA1
MCAtIDYwJX4gdXN1YWxseS4gQW5kIHdlIHdvdWxkIGxpa2UgdG8gYXZvaWQgdGhhdCBjb21waWxh
dGlvbiAoaXQgYWxzbyBibG9ja2VkIHRoZSBtYWluIHRocmVhZAorICAgICAgICAgICAgICAgZXZl
biBiZWZvcmUgdGhlIGJ5dGVjb2RlIGZvcm1hdCBpcyBjaGFuZ2VkKSBpZiB3ZSBwaWNrIDgwMDAw
LTkwMDAwIGZvciB0aGUgdGhyZXNob2xkIGluIHRoZSBvbGQgZm9ybWF0LCBpdCB3b3VsZCBiZSA0
MDAwMCAtIDYzOTAwLiBTbyA1MDAwMCAtIDYwMDAwIHNlZW1zIHJlYXNvbmFibGUuCisgICAgICAg
ICAgICA1LiBUaGlzIDEwMDAwMCBpcyBvcmlnaW5hbGx5IHBpY2tlZCB0byBjb3ZlciBBc21CZW5j
aFsyXS4gQXNtQmVuY2gncyBtYXhpbXVtIGJ5dGVjb2RlIGNvc3QgaXMgMjE2MDkgaW4gYmlnZmli
LmNwcCBhbmQgc3RlcGFub3ZfY29udGFpbmVyLmNwcC4gNjAwMDAgY292ZXJzIGFsbCB3ZWxsLgor
CisgICAgICAgIFNvIEkgdGhpbmsgNjAwMDAgc2VlbXMgcmVhc29uYWJsZSB0aHJlc2hvbGQgd2hp
bGUgYXZvaWRpbmcgcGF0aG9sb2dpY2FsbHkgbGFyZ2UgZnVuY3Rpb25zIChhcyB3ZSBoYXZlIGEg
dGhyZXNob2xkIGZvciAjIG9mIERGRyBub2RlcyBpbiBGVEwpLgorICAgICAgICBXaGlsZSB3ZSB3
b3VsZCBsaWtlIGluY3JlZGlibHkgbGFyZ2UgZnVuY3Rpb25zIHRvIGFsc28gYmUgYWJsZSB0byBy
dW4gZmFzdCwgSSB0aGluayB0aGlzIHNob3VsZCBiZSBjb3ZlcmVkIGxhdGVyIGJ5IGludHJvZHVj
aW5nIGEgREZHIHRyYWNlbGV0IGNvbXBpbGVyIHRvIGhhbmRsZSBpdC4KKyAgICAgICAgQW5kIGl0
IGlzIGFsc28gcG9zc2libGUgdGhhdCB3ZSBjYW4gY29tcGlsZSBzbWFsbCBob3QgZnVuY3Rpb25z
IHdoaWxlIGF2b2lkaW5nIHN1Y2ggYW4gbGFyZ2UgZnVuY3Rpb24uCisKKyAgICAgICAgWzFdOiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTU5CisgICAgICAgIFsy
XTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTIxMgorCisgICAg
ICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpk
dW1wQXNzdW1pbmdKSVRUeXBlIGNvbnN0KToKKyAgICAgICAgKiBkZmcvREZHRGlzYXNzZW1ibGVy
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpEaXNhc3NlbWJsZXI6OmR1bXBIZWFkZXIpOgorICAg
ICAgICAqIGRmZy9ERkdEcml2ZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNvbXBpbGVJbXBs
KToKKyAgICAgICAgKiBkZmcvREZHUGxhbi5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UGxhbjo6
Y29tcGlsZUluVGhyZWFkKToKKyAgICAgICAgKiBmdGwvRlRMQ29tcGlsZS5jcHA6CisgICAgICAg
IChKU0M6OkZUTDo6Y29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTExpbmsuY3BwOgorICAgICAg
ICAoSlNDOjpGVEw6OmxpbmspOgorICAgICAgICAqIGppdC9KSVREaXNhc3NlbWJsZXIuY3BwOgor
ICAgICAgICAoSlNDOjpKSVREaXNhc3NlbWJsZXI6OmR1bXBIZWFkZXIpOgorICAgICAgICAqIHJ1
bnRpbWUvT3B0aW9ucy5oOgorCiAyMDE5LTA3LTE3ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0Bh
cHBsZS5jb20+CiAKICAgICAgICAgRGlzYWJsZSBQb2ludGVyIEV2ZW50cyBwcmlvciB0byB3YXRj
aE9TIDYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5k
ZXggOTNkMGZhOTExZGI5ZTc1ZTc1Y2MwNDcwMTdmODFlYjBiZjMxZmIzZi4uNjE0NDk1ZDBhMmQz
YWE5ODg5NzQxMzczOGI4OTY2MDhiNTgxODg2ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTE5MCw3ICsxOTAsNyBAQCB2b2lkIENvZGVCbG9j
azo6ZHVtcEFzc3VtaW5nSklUVHlwZShQcmludFN0cmVhbSYgb3V0LCBKSVRUeXBlIGppdFR5cGUp
IGNvbnN0CiAKICAgICBpZiAoY29kZVR5cGUoKSA9PSBGdW5jdGlvbkNvZGUpCiAgICAgICAgIG91
dC5wcmludChzcGVjaWFsaXphdGlvbktpbmQoKSk7Ci0gICAgb3V0LnByaW50KCIsICIsIGluc3Ry
dWN0aW9uc1NpemUoKSk7CisgICAgb3V0LnByaW50KCIsIGluc3RydWN0aW9uc1NpemU6IiwgaW5z
dHJ1Y3Rpb25zU2l6ZSgpLCAiLCBieXRlY29kZUNvc3Q6IiwgYnl0ZWNvZGVDb3N0KCkpOwogICAg
IGlmICh0aGlzLT5qaXRUeXBlKCkgPT0gSklUVHlwZTo6QmFzZWxpbmVKSVQgJiYgbV9zaG91bGRB
bHdheXNCZUlubGluZWQpCiAgICAgICAgIG91dC5wcmludCgiIChTaG91bGRBbHdheXNCZUlubGlu
ZWQpIik7CiAgICAgaWYgKG93bmVyRXhlY3V0YWJsZSgpLT5uZXZlcklubGluZSgpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEaXNhc3NlbWJsZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEaXNhc3NlbWJsZXIuY3BwCmluZGV4IDcyN2ViNDhh
ZjFiNjhlOTcwZGI3MDc3ZWJlYTJkMGFkZmNiM2ExZTYuLmNkZjc2YjdmNzYyN2MwN2Q0NTVkMWRl
MThiNDcyNTI4ZTM4NjgxNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRGlzYXNzZW1ibGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rp
c2Fzc2VtYmxlci5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgdm9pZCBEaXNhc3NlbWJsZXI6OnJlcG9y
dFRvUHJvZmlsZXIoUHJvZmlsZXI6OkNvbXBpbGF0aW9uKiBjb21waWxhdGlvbiwgTGlua0J1ZmYK
IAogdm9pZCBEaXNhc3NlbWJsZXI6OmR1bXBIZWFkZXIoUHJpbnRTdHJlYW0mIG91dCwgTGlua0J1
ZmZlciYgbGlua0J1ZmZlcikKIHsKLSAgICBvdXQucHJpbnQoIkdlbmVyYXRlZCBERkcgSklUIGNv
ZGUgZm9yICIsIENvZGVCbG9ja1dpdGhKSVRUeXBlKG1fZ3JhcGgubV9jb2RlQmxvY2ssIEpJVFR5
cGU6OkRGR0pJVCksICIsIGluc3RydWN0aW9ucyBzaXplID0gIiwgbV9ncmFwaC5tX2NvZGVCbG9j
ay0+aW5zdHJ1Y3Rpb25zU2l6ZSgpLCAiOlxuIik7CisgICAgb3V0LnByaW50KCJHZW5lcmF0ZWQg
REZHIEpJVCBjb2RlIGZvciAiLCBDb2RlQmxvY2tXaXRoSklUVHlwZShtX2dyYXBoLm1fY29kZUJs
b2NrLCBKSVRUeXBlOjpERkdKSVQpLCAiLCBpbnN0cnVjdGlvbnMgc2l6ZSA9ICIsIG1fZ3JhcGgu
bV9jb2RlQmxvY2stPmluc3RydWN0aW9uc1NpemUoKSwgIiwgYnl0ZWNvZGUgY29zdCA9ICIsIG1f
Z3JhcGgubV9jb2RlQmxvY2stPmJ5dGVjb2RlQ29zdCgpLCAiOlxuIik7CiAgICAgb3V0LnByaW50
KCIgICAgT3B0aW1pemVkIHdpdGggZXhlY3V0aW9uIGNvdW50ZXIgPSAiLCBtX2dyYXBoLm1fcHJv
ZmlsZWRCbG9jay0+aml0RXhlY3V0ZUNvdW50ZXIoKSwgIlxuIik7CiAgICAgb3V0LnByaW50KCIg
ICAgQ29kZSBhdCBbIiwgUmF3UG9pbnRlcihsaW5rQnVmZmVyLmRlYnVnQWRkcmVzcygpKSwgIiwg
IiwgUmF3UG9pbnRlcihzdGF0aWNfY2FzdDxjaGFyKj4obGlua0J1ZmZlci5kZWJ1Z0FkZHJlc3Mo
KSkgKyBsaW5rQnVmZmVyLnNpemUoKSksICIpOlxuIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0RyaXZlci5jcHAKaW5kZXggZGI2OWYxYmRkNjNkMTE1YWZiNWU1ZDBmYWRiODQwNzEx
MzJhNGM5ZC4uMTJlMjk3YzVmYThiZjI0NDk2MGQzNDIzZWY4MWJkOTQwZTE2Y2UzZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRHJpdmVyLmNwcApAQCAtODUsNyArODUsNyBAQCBzdGF0
aWMgQ29tcGlsYXRpb25SZXN1bHQgY29tcGlsZUltcGwoCiAgICAgQVNTRVJUKCFwcm9maWxlZERG
R0NvZGVCbG9jayB8fCBwcm9maWxlZERGR0NvZGVCbG9jay0+aml0VHlwZSgpID09IEpJVFR5cGU6
OkRGR0pJVCk7CiAgICAgCiAgICAgaWYgKGxvZ0NvbXBpbGF0aW9uQ2hhbmdlcyhtb2RlKSkKLSAg
ICAgICAgZGF0YUxvZygiREZHKERyaXZlcikgY29tcGlsaW5nICIsICpjb2RlQmxvY2ssICIgd2l0
aCAiLCBtb2RlLCAiLCBpbnN0cnVjdGlvbnMgc2l6ZSA9ICIsIGNvZGVCbG9jay0+aW5zdHJ1Y3Rp
b25zU2l6ZSgpLCAiXG4iKTsKKyAgICAgICAgZGF0YUxvZygiREZHKERyaXZlcikgY29tcGlsaW5n
ICIsICpjb2RlQmxvY2ssICIgd2l0aCAiLCBtb2RlLCAiLCBpbnN0cnVjdGlvbnMgc2l6ZSA9ICIs
IGNvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zU2l6ZSgpLCAiLCBieXRlY29kZSBjb3N0ID0gIiwgY29k
ZUJsb2NrLT5ieXRlY29kZUNvc3QoKSwgIlxuIik7CiAgICAgCiAgICAgLy8gTWFrZSBzdXJlIHRo
YXQgYW55IHN0dWJzIHRoYXQgdGhlIERGRyBpcyBnb2luZyB0byB1c2UgYXJlIGluaXRpYWxpemVk
LiBXZSB3YW50IHRvCiAgICAgLy8gbWFrZSBzdXJlIHRoYXQgYWxsIEpJVCBjb2RlIGdlbmVyYXRp
b24gZG9lcyBmaW5hbGl6YXRpb24gb24gdGhlIG1haW4gdGhyZWFkLgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHUGxhbi5jcHAKaW5kZXggNTc1OGE2ZTgyZTE3Yzc3NzIyYTViOGNhMzk1NDM5YjEz
MGY1Y2Q5MC4uYWNjNGYwZDRhN2U5YTEzZTk1Yjk1N2QyZDk4OWJiNWYwMTQzZGI4YiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwCkBAIC0xODQsNyArMTg0LDcgQEAgdm9pZCBQ
bGFuOjpjb21waWxlSW5UaHJlYWQoVGhyZWFkRGF0YSogdGhyZWFkRGF0YSkKICAgICBDb21waWxh
dGlvblNjb3BlIGNvbXBpbGF0aW9uU2NvcGU7CiAKICAgICBpZiAobG9nQ29tcGlsYXRpb25DaGFu
Z2VzKG1fbW9kZSkgfHwgT3B0aW9uczo6bG9nUGhhc2VUaW1lcygpKQotICAgICAgICBkYXRhTG9n
KCJERkcoUGxhbikgY29tcGlsaW5nICIsICptX2NvZGVCbG9jaywgIiB3aXRoICIsIG1fbW9kZSwg
IiwgaW5zdHJ1Y3Rpb25zIHNpemUgPSAiLCBtX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zU2l6ZSgp
LCAiXG4iKTsKKyAgICAgICAgZGF0YUxvZygiREZHKFBsYW4pIGNvbXBpbGluZyAiLCAqbV9jb2Rl
QmxvY2ssICIgd2l0aCAiLCBtX21vZGUsICIsIGluc3RydWN0aW9ucyBzaXplID0gIiwgbV9jb2Rl
QmxvY2stPmluc3RydWN0aW9uc1NpemUoKSwgIiwgYnl0ZWNvZGUgY29zdCA9ICIsIG1fY29kZUJs
b2NrLT5ieXRlY29kZUNvc3QoKSwgIlxuIik7CiAKICAgICBDb21waWxhdGlvblBhdGggcGF0aCA9
IGNvbXBpbGVJblRocmVhZEltcGwoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExDb21waWxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29t
cGlsZS5jcHAKaW5kZXggNWQwNGI3MmYwNDgzMWQwNjMwMjMwNGQxZWI3ZTQ5MjlkNDgwNDI3Zi4u
ZDFjMTFiMGFjMTcxNGJjN2NmMDI3YzcxMGMzYmVkMDY2MDFjYTljYiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCkBAIC0xNjksNyArMTY5LDcgQEAgdm9pZCBjb21w
aWxlKFN0YXRlJiBzdGF0ZSwgU2FmZXBvaW50OjpSZXN1bHQmIHNhZmVwb2ludFJlc3VsdCkKICAg
ICBpZiAoQjM6OkFpcjo6RGlzYXNzZW1ibGVyKiBkaXNhc3NlbWJsZXIgPSBzdGF0ZS5wcm9jLT5j
b2RlKCkuZGlzYXNzZW1ibGVyKCkpIHsKICAgICAgICAgUHJpbnRTdHJlYW0mIG91dCA9IFdURjo6
ZGF0YUZpbGUoKTsKIAotICAgICAgICBvdXQucHJpbnQoIkdlbmVyYXRlZCAiLCBzdGF0ZS5ncmFw
aC5tX3BsYW4ubW9kZSgpLCAiIGNvZGUgZm9yICIsIENvZGVCbG9ja1dpdGhKSVRUeXBlKHN0YXRl
LmdyYXBoLm1fY29kZUJsb2NrLCBKSVRUeXBlOjpGVExKSVQpLCAiLCBpbnN0cnVjdGlvbnMgc2l6
ZSA9ICIsIHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnNTaXplKCksICI6XG4i
KTsKKyAgICAgICAgb3V0LnByaW50KCJHZW5lcmF0ZWQgIiwgc3RhdGUuZ3JhcGgubV9wbGFuLm1v
ZGUoKSwgIiBjb2RlIGZvciAiLCBDb2RlQmxvY2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2Nv
ZGVCbG9jaywgSklUVHlwZTo6RlRMSklUKSwgIiwgaW5zdHJ1Y3Rpb25zIHNpemUgPSAiLCBzdGF0
ZS5ncmFwaC5tX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zU2l6ZSgpLCAiLCBieXRlY29kZSBjb3N0
ID0gIiwgc3RhdGUuZ3JhcGgubV9jb2RlQmxvY2stPmJ5dGVjb2RlQ29zdCgpLCAiOlxuIik7CiAK
ICAgICAgICAgTGlua0J1ZmZlciYgbGlua0J1ZmZlciA9ICpzdGF0ZS5maW5hbGl6ZXItPmIzQ29k
ZUxpbmtCdWZmZXI7CiAgICAgICAgIEIzOjpWYWx1ZSogY3VycmVudEIzVmFsdWUgPSBudWxscHRy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMaW5rLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGluay5jcHAKaW5kZXggMDg1NDA1NmVjN2QxNjJi
MTFjZGMyMWNkNzhmZTE1MTdmN2FjZjNlYi4uNTY4ZmJkN2VjMTJjMzZlNjUxOTZiZjgxMmM3NWE3
MzEzZGY5MWE0NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMaW5r
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExpbmsuY3BwCkBAIC03MSw3
ICs3MSw3IEBAIHZvaWQgbGluayhTdGF0ZSYgc3RhdGUpCiAgICAgaWYgKFVOTElLRUxZKGNvbXBp
bGF0aW9uKSkgewogICAgICAgICBjb21waWxhdGlvbi0+YWRkRGVzY3JpcHRpb24oCiAgICAgICAg
ICAgICBQcm9maWxlcjo6T3JpZ2luU3RhY2soKSwKLSAgICAgICAgICAgIHRvQ1N0cmluZygiR2Vu
ZXJhdGVkIEZUTCBKSVQgY29kZSBmb3IgIiwgQ29kZUJsb2NrV2l0aEpJVFR5cGUoY29kZUJsb2Nr
LCBKSVRUeXBlOjpGVExKSVQpLCAiLCBpbnN0cnVjdGlvbnMgc2l6ZSA9ICIsIGdyYXBoLm1fY29k
ZUJsb2NrLT5pbnN0cnVjdGlvbnNTaXplKCksICI6XG4iKSk7CisgICAgICAgICAgICB0b0NTdHJp
bmcoIkdlbmVyYXRlZCBGVEwgSklUIGNvZGUgZm9yICIsIENvZGVCbG9ja1dpdGhKSVRUeXBlKGNv
ZGVCbG9jaywgSklUVHlwZTo6RlRMSklUKSwgIiwgaW5zdHJ1Y3Rpb25zIHNpemUgPSAiLCBncmFw
aC5tX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zU2l6ZSgpLCAiLCBieXRlY29kZSBjb3N0ID0gIiwg
Z3JhcGgubV9jb2RlQmxvY2stPmJ5dGVjb2RlQ29zdCgpLCAiOlxuIikpOwogICAgICAgICAKICAg
ICAgICAgZ3JhcGguZW5zdXJlU1NBRG9taW5hdG9ycygpOwogICAgICAgICBncmFwaC5lbnN1cmVT
U0FOYXR1cmFsTG9vcHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklURGlzYXNzZW1ibGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURGlzYXNz
ZW1ibGVyLmNwcAppbmRleCAyMGVkMzdmZWUzYTBmM2M5OWM2MjgyNTQ1YTRjMTBiM2JiZTM3OWM5
Li4zYjQzMTFjNGIxNWJjNjQwZDA3NWYyNTdiYTFmODg5ZDliNDFmZjkxIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVERpc2Fzc2VtYmxlci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVREaXNhc3NlbWJsZXIuY3BwCkBAIC04OSw3ICs4OSw3IEBA
IHZvaWQgSklURGlzYXNzZW1ibGVyOjpyZXBvcnRUb1Byb2ZpbGVyKFByb2ZpbGVyOjpDb21waWxh
dGlvbiogY29tcGlsYXRpb24sIExpbmtCCiAKIHZvaWQgSklURGlzYXNzZW1ibGVyOjpkdW1wSGVh
ZGVyKFByaW50U3RyZWFtJiBvdXQsIExpbmtCdWZmZXImIGxpbmtCdWZmZXIpCiB7Ci0gICAgb3V0
LnByaW50KCJHZW5lcmF0ZWQgQmFzZWxpbmUgSklUIGNvZGUgZm9yICIsIENvZGVCbG9ja1dpdGhK
SVRUeXBlKG1fY29kZUJsb2NrLCBKSVRUeXBlOjpCYXNlbGluZUpJVCksICIsIGluc3RydWN0aW9u
cyBzaXplID0gIiwgbV9jb2RlQmxvY2stPmluc3RydWN0aW9uc1NpemUoKSwgIlxuIik7CisgICAg
b3V0LnByaW50KCJHZW5lcmF0ZWQgQmFzZWxpbmUgSklUIGNvZGUgZm9yICIsIENvZGVCbG9ja1dp
dGhKSVRUeXBlKG1fY29kZUJsb2NrLCBKSVRUeXBlOjpCYXNlbGluZUpJVCksICIsIGluc3RydWN0
aW9ucyBzaXplID0gIiwgbV9jb2RlQmxvY2stPmluc3RydWN0aW9uc1NpemUoKSwgIiwgYnl0ZWNv
ZGUgY29zdCA9ICIsIG1fY29kZUJsb2NrLT5ieXRlY29kZUNvc3QoKSwgIlxuIik7CiAgICAgb3V0
LnByaW50KCIgICBTb3VyY2U6ICIsIG1fY29kZUJsb2NrLT5zb3VyY2VDb2RlT25PbmVMaW5lKCks
ICJcbiIpOwogICAgIG91dC5wcmludCgiICAgQ29kZSBhdCBbIiwgUmF3UG9pbnRlcihsaW5rQnVm
ZmVyLmRlYnVnQWRkcmVzcygpKSwgIiwgIiwgUmF3UG9pbnRlcihzdGF0aWNfY2FzdDxjaGFyKj4o
bGlua0J1ZmZlci5kZWJ1Z0FkZHJlc3MoKSkgKyBsaW5rQnVmZmVyLnNpemUoKSksICIpOlxuIik7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKaW5kZXggMDNhNmMyZDk5
NThhZGE5ZDU1ZjRkMTRhMjRmZDZiMDA2NjJmN2ZiZS4uNjE4NjViYzBhNWZjM2E2ZWFlNjI3NjQw
MDVkZDA2NGNlZTVlZDU1MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMu
aApAQCAtMjg4LDcgKzI4OCw3IEBAIGNvbnN0ZXhwciBib29sIGVuYWJsZVdlYkFzc2VtYmx5U3Ry
ZWFtaW5nQXBpID0gZmFsc2U7CiAgICAgXAogICAgIHYoYm9vbCwgYnJlYWtPblRocm93LCBmYWxz
ZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgXAotICAgIHYodW5zaWduZWQsIG1heGltdW1PcHRp
bWl6YXRpb25DYW5kaWRhdGVCeXRlY29kZUNvc3QsIDEwMDAwMCwgTm9ybWFsLCBudWxscHRyKSBc
CisgICAgdih1bnNpZ25lZCwgbWF4aW11bU9wdGltaXphdGlvbkNhbmRpZGF0ZUJ5dGVjb2RlQ29z
dCwgNjAwMDAsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIFwKICAgICB2KHVuc2lnbmVkLCBtYXhp
bXVtRnVuY3Rpb25Gb3JDYWxsSW5saW5lQ2FuZGlkYXRlQnl0ZWNvZGVDb3N0LCAxMjAsIE5vcm1h
bCwgbnVsbHB0cikgXAogICAgIHYodW5zaWduZWQsIG1heGltdW1GdW5jdGlvbkZvckNsb3N1cmVD
YWxsSW5saW5lQ2FuZGlkYXRlQnl0ZWNvZGVDb3N0LCAxMDAsIE5vcm1hbCwgbnVsbHB0cikgXAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374544</attachid>
            <date>2019-07-20 03:54:17 -0700</date>
            <delta_ts>2019-07-20 03:55:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199929-20190720035417.patch</filename>
            <type>text/plain</type>
            <size>12162</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NjI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZTc5MDIxODcxYWIzZmM5Yzg5MTkyNTEwYmZmYTY0N2Q4ZjE3ZjMyLi40N2RmN2ZmNjM5MmQxNGM0
N2MzMDFhN2NjZDk4MDRhZTQ5YTkyYTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MSBAQAorMjAxOS0wNy0yMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIE1ha2UgREZHIExvY2FsIENTRSBhbmQgQUkgY29uc2VydmF0aXZl
IGZvciBodWdlIGJhc2ljIGJsb2NrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTk5MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbiBDTk4gcGFnZSwgdGhlIG1haW4gdGhyZWFkIGhhbmdzIHNldmVyYWwg
c2Vjb25kcy4gT24gbGVzcy1wb3dlcmZ1bCBkZXZpY2VzIChsaWtlIGlQaG9uZTcpLCBpdCBoYW5n
cyBmb3IgfjExIHNlY29uZHMuIFRoaXMgaXMgbm90IGFuIGFjY2VwdGFibGUgYmVoYXZpb3IuCisg
ICAgICAgIFRoZSByZWFzb24gb2YgdGhpcyBpcyB0aGF0IHRoZSBERkcgY29tcGlsZXIgdGFrZXMg
dG9vIGxvbmcgdGltZSBpbiB0aGUgY29tcGlsYXRpb24gZm9yIGEgcGFydGljdWxhciBmdW5jdGlv
bi4gSXQgdGFrZXMgODc2NSBtcyBldmVuIGluIHBvd2VyZnVsIHg2NCBtYWNoaW5lIQorICAgICAg
ICBERkcgY29tcGlsZXIgaXMgY29uY3VycmVudCBvbmUuIEhvd2V2ZXIsIHdoZW4gR0MgcmVxdWly
ZXMgYWxsIHRoZSBwZXJpcGhlcmFsIHRocmVhZHMgdG8gYmUgc3RvcHBlZCwgdGhlIG1haW4gdGhy
ZWFkIG5lZWRzIHRvIHdhaXQgZm9yIHRoZSBERkcgY29tcGlsZXIncyBzdG9wLgorICAgICAgICBE
RkcgY29tcGlsZXIgc3RvcHMgYXQgR0Mgc2FmZXBvaW50cywgYW5kIHRoZXkgYXJlIGluc2VydGVk
IGJldHdlZW4gREZHIHBoYXNlcy4gU28sIGlmIHNvbWUgb2YgREZHIHBoYXNlcyB0YWtlIHZlcnkg
bG9uZyB0aW1lLCB0aGUgbWFpbiB0aHJlYWQgaXMgYmxvY2tlZCBkdXJpbmcgdGhhdC4KKyAgICAg
ICAgQXMgYSByZXN1bHQsIHRoZSBtYWluIHRocmVhZCBpcyBibG9ja2VkIGR1ZSB0byB0aGlzIHBh
dGhvbG9naWNhbCBjb21waWxhdGlvbi4KKworICAgICAgICBCeSBtZWFzdXJpbmcgdGhlIHRpbWUg
dGFrZW4gaW4gZWFjaCBERkcgcGhhc2UsIHdlIGZvdW5kIHRoYXQgb3VyIEFJIGFuZCBDU0UgcGhh
c2UgaGF2ZSBhIHByb2JsZW0gaGF2aW5nIHF1YWRyYXRpYyBjb21wbGV4aXR5IGZvciAjIG9mIERG
RyBub2RlcyBpbiBhIGJhc2ljIGJsb2NrLgorICAgICAgICBJbiB0aGlzIHBhdGNoLCB3ZSBhZGQg
YSB0aHJlc2hvbGQgZm9yICMgb2YgREZHIG5vZGVzIGluIGEgYmFzaWMgYmxvY2suIElmIGEgYmFz
aWMgYmxvY2sgZXhjZWVkcyB0aGlzIHRocmVzaG9sZCwgd2UgdXNlIGNvbnNlcnZhdGl2ZSBidXQg
TygxKSBhbGdvcml0aG0gZm9yIEFJIGFuZCBMb2NhbCBDU0UgcGhhc2UuCisgICAgICAgIFdlIGRp
ZCBub3QgYWRkIHRoaXMgdGhyZXNob2xkIGZvciBHbG9iYWwgQ1NFIHNpbmNlIEZUTCBoYXMgYW5v
dGhlciBieXRlY29kZSBjb3N0IHRocmVzaG9sZCB3aGljaCBwcmV2ZW50cyB1cyBmcm9tIGNvbXBp
bGluZyB0aGUgbGFyZ2UgZnVuY3Rpb25zLiBCdXQgb24gdGhlIG90aGVyIGhhbmQsCisgICAgICAg
IERGRyBzaG91bGQgY29tcGlsZSB0aGVtIGJlY2F1c2UgREZHIGlzIGludGVuZGVkIHRvIGJlIGEg
ZmFzdCBjb21waWxlciBldmVuIGZvciBhIGJpdCBsYXJnZXIgQ29kZUJsb2NrLgorCisgICAgICAg
IFdlIGZpcnN0IGF0dGVtcHRlZCB0byByZWR1Y2UgdGhlIHRocmVzaG9sZCBmb3IgREZHIGNvbXBp
bGF0aW9uLiBXZSBhcmUgdXNpbmcgMTAwMDAwIGJ5dGVjb2RlIGNvc3QgZm9yIERGRyBjb21waWxh
dGlvbiBhbmQgaXQgaXMgdmVyeSBsYXJnZS4gSG93ZXZlciwgd2UgZm91bmQgdGhhdCBieXRlY29k
ZSBjb3N0CisgICAgICAgIGlzIG5vdCB0aGUgcHJvYmxlbSBpbiBDTk4gcGFnZS4gVGhlIHByb2Js
ZW1hdGljIGZ1bmN0aW9uIGhhcyA2NzkwNCBjb3N0LCBhbmQgaXQgdGFrZXMgODc2NSBtcyBpbiB4
NjQgbWFjaGluZS4gSG93ZXZlciwgSmV0U3RyZWFtMi9vY3RhbmUtemxpYiBoYXMgNjE5NDkgZnVu
Y3Rpb24gYW5kIGl0IG9ubHkgdGFrZXMKKyAgICAgICAgfjQwMCBtcy4gVGhpcyBkaWZmZXJlbmNl
IGNvbWVzIGZyb20gdGhlICMgb2YgREZHIG5vZGVzIGluIGEgYmFzaWMgYmxvY2suIFRoZSBwcm9i
bGVtYXRpYyBmdW5jdGlvbiBoYXMgNDMyOTcgREZHIG5vZGVzIGluIG9uZSBiYXNpYyBibG9jayBh
bmQgaXQgbWFrZXMgQUkgYW5kIExvY2FsIENTRSBzdXBlciB0aW1lLWNvbnN1bWluZy4KKyAgICAg
ICAgUmF0aGVyIHRoYW4gcmVseWluZyBvbiB0aGUgYnl0ZWNvZGUgY29zdCB3aGljaCBhIGJpdCBp
bmRpcmVjdGx5IHJlbGF0ZWQgdG8gdGhpcyBwYXRob2xvZ2ljYWwgY29tcGlsZS10aW1lLCB3ZSBz
aG91bGQgbG9vayBpbnRvICMgb2YgREZHIG5vZGVzIGluIGEgYmFzaWMgYmxvY2sgd2hpY2ggaXMg
bW9yZSBkaXJlY3RseQorICAgICAgICByZWxhdGVkIHRvIHRoaXMgcHJvYmxlbS4gQW5kIHdlIGFs
c28gZm91bmQgdGhhdCA2MTk0OSdzIE9jdGFuZS16bGliIGZ1bmN0aW9uIGlzIHZlcnkgY3JpdGlj
YWwgZm9yIHBlcmZvcm1hbmNlLiBUaGlzIGZhY3QgbWFrZXMgYSBiaXQgaGFyZCB0byBwaWNrIGEg
cmlnaHQgdGhyZXNob2xkOiA2NzkwNCBjYXVzZXMgdGhlIHByb2JsZW0sCisgICAgICAgIGFuZCA2
MTk0OSBtdXN0IGJlIGNvbXBpbGVkLiBUaGlzIGlzIHdoeSB0aGlzIHBhdGNoIGlzIGludHJvZHVj
aW5nIGNvbnNlcnZhdGl2ZSBhbmFseXNpcyBpbnN0ZWFkIG9mIGFkanVzdGluZyB0aGUgdGhyZXNo
b2xkIGZvciBERkcuCisKKyAgICAgICAgVGhpcyBwYXRjaCBoYXMgdHdvIGNoYW5nZXMuCisKKyAg
ICAgICAgMS4gREZHIEFJIGhhcyBzdHJ1Y3R1cmUgdHJhbnNpdGlvbiB0cmFja2luZyB3aGljaCBo
YXMgcXVhZHJhdGljIGNvbXBsZXhpdHkKKworICAgICAgICBTdHJ1Y3R1cmUgdHJhbnNpdGlvbiB0
cmFja2luZyB0YWtlcyB2ZXJ5IGxvbmcgdGltZSBzaW5jZSBpdHMgY29tcGxleGl0eSBpcyBPKE5e
Mikgd2hlcmUgTiBpcyAjIG9mIERGRyBub2RlcyBpbiBhIGJhc2ljIGJsb2NrLgorICAgICAgICBD
Tk4gaGFzIHZlcnkgcGF0aG9sb2dpY2FsIHNjcmlwdCBhbmQgaXQgc2hvd3MgNDMyOTcgREZHIG5v
ZGVzLiBXZSBzaG91bGQgcmVkdWNlIHRoZSBjb21wbGV4aXR5IG9mIHRoaXMgYWxnb3JpdGhtLgor
ICAgICAgICBGb3Igbm93LCB3ZSBqdXN0IHNheSAic3RydWN0dXJlcyBhcmUgY2xvYmJlcmVkIiBp
ZiAjIG9mIERGRyBub2RlcyBpbiBhIGJhc2ljIGJsb2NrIGV4Y2VlZHMgdGhlIHRocmVzaG9sZCAo
MjAwMDApLgorICAgICAgICBXZSBjb3VsZCBpbXByb3ZlIHRoZSBjdXJyZW50IGFsZ29yaXRobSBm
cm9tIE8oTl4yKSB0byBPKDJOKSB3aXRob3V0IGJlaW5nIGNvbnNlcnZhdGl2ZSwgYW5kIEknbSB0
cmFja2luZyB0aGlzIGluIFsxXS4KKworICAgICAgICAyLiBERkcgTG9jYWwgQ1NFIGhhcyBxdWFk
cmF0aWMgY29tcGxleGl0eQorCisgICAgICAgIExvY2FsIENTRSdzIGNsb2JiZXJpbmcgaXRlcmF0
ZXMgYWxsIHRoZSBpbXB1cmUgaGVhcCB2YWx1ZXMgdG8gcmVtb3ZlIHRoZSBjbG9iYmVyZWQgb25l
LiBTaW5jZSAjIG9mIGltcHVyZSBoZWFwIHZhbHVlcyB0ZW5kIHRvIGJlIHByb3BvcnRpb25hbCB0
byAjIG9mIERGRyBub2RlcyB3ZSB2aXNpdGVkLAorICAgICAgICBlYWNoIENTRSBmb3IgYSBiYXNp
YyBibG9jayBnZXRzIE8oTl4yKSBjb21wbGV4aXR5LiBUbyBhdm9pZCB0aGlzLCB3ZSBpbnRyb2R1
Y2UgSHVnZU1hcC4gVGhpcyBoYXMgdGhlIHNhbWUgaW50ZXJmYWNlIHRvIExhcmdlTWFwIGFuZCBT
bWFsbE1hcCBpbiBDU0UsIGJ1dCBpdHMgY2xvYmJlcmluZworICAgICAgICBpbXBsZW1lbnRhdGlv
biBqdXN0IGNsZWFycyB0aGUgbWFwIGNvbXBsZXRlbHkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBy
ZWR1Y2VzIHRoZSBjb21waWxhdGlvbiB0aW1lIGZyb20gfjExIHNlY29uZHMgdG8gfjIwMCBtcy4K
KworICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAg
ICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpvYnNl
cnZlVHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxB
YnN0cmFjdFN0YXRlVHlwZT46Om9ic2VydmVUcmFuc2l0aW9ucyk6CisgICAgICAgICogZGZnL0RG
R0NTRVBoYXNlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuaDoKKwogMjAxOS0wNy0x
NyAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIERpc2FibGUg
UG9pbnRlciBFdmVudHMgcHJpb3IgdG8gd2F0Y2hPUyA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXgg
ODlkYWViOTEzM2MxMjUyYjAwMzZkYTkwZmFkOWIwMDU1NDk1M2QyOC4uOTQ3Y2IwY2NlMjYyYjMz
ZDczODZmYmQxNTdkYTM5NmJjYTEyNzcyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtNDA5Myw2
ICs0MDkzLDE0IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEFic3RyYWN0U3RhdGVUeXBlPgogdm9pZCBB
YnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6b2JzZXJ2ZVRyYW5zaXRpb24o
CiAgICAgdW5zaWduZWQgY2xvYmJlckxpbWl0LCBSZWdpc3RlcmVkU3RydWN0dXJlIGZyb20sIFJl
Z2lzdGVyZWRTdHJ1Y3R1cmUgdG8pCiB7CisgICAgLy8gU3RvcCBwZXJmb3JtaW5nIHByZWNpc2Ug
c3RydWN0dXJlIHRyYW5zaXRpb24gdHJhY2tpbmcuCisgICAgLy8gUHJlY2lzZSBzdHJ1Y3R1cmUg
dHJhbnNpdGlvbiB0cmFja2luZyBzaG93cyBxdWFkcmF0aWMgY29tcGxleGl0eSBmb3IgIyBvZiBu
b2RlcyBpbiBhIGJhc2ljIGJsb2NrLgorICAgIC8vIElmIGl0IGlzIHRvbyBsYXJnZSwgd2UgY29u
c2VydmF0aXZlbHkgY2xvYmJlciB0aGUgc3RydWN0dXJlcy4KKyAgICBpZiAobV9zdGF0ZS5ibG9j
aygpLT5zaXplKCkgPiBPcHRpb25zOjptYXhERkdOb2Rlc0luQmFzaWNCbG9ja0ZvclByZWNpc2VB
bmFseXNpcygpKSB7CisgICAgICAgIGNsb2JiZXJTdHJ1Y3R1cmVzKCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKICAgICBBYnN0cmFjdFZhbHVlOjpUcmFuc2l0aW9uT2JzZXJ2ZXIgdHJhbnNp
dGlvbk9ic2VydmVyKGZyb20sIHRvKTsKICAgICBmb3JBbGxWYWx1ZXMoY2xvYmJlckxpbWl0LCB0
cmFuc2l0aW9uT2JzZXJ2ZXIpOwogICAgIApAQCAtNDEwOCw2ICs0MTE2LDE0IEBAIHZvaWQgQWJz
dHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46Om9ic2VydmVUcmFuc2l0aW9ucygK
ICAgICBpZiAodmVjdG9yLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogICAgIAorICAgIC8v
IFN0b3AgcGVyZm9ybWluZyBwcmVjaXNlIHN0cnVjdHVyZSB0cmFuc2l0aW9uIHRyYWNraW5nLgor
ICAgIC8vIFByZWNpc2Ugc3RydWN0dXJlIHRyYW5zaXRpb24gdHJhY2tpbmcgc2hvd3MgcXVhZHJh
dGljIGNvbXBsZXhpdHkgZm9yICMgb2Ygbm9kZXMgaW4gYSBiYXNpYyBibG9jay4KKyAgICAvLyBJ
ZiBpdCBpcyB0b28gbGFyZ2UsIHdlIGNvbnNlcnZhdGl2ZWx5IGNsb2JiZXIgdGhlIHN0cnVjdHVy
ZXMuCisgICAgaWYgKG1fc3RhdGUuYmxvY2soKS0+c2l6ZSgpID4gT3B0aW9uczo6bWF4REZHTm9k
ZXNJbkJhc2ljQmxvY2tGb3JQcmVjaXNlQW5hbHlzaXMoKSkgeworICAgICAgICBjbG9iYmVyU3Ry
dWN0dXJlcygpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgQWJzdHJhY3RWYWx1ZTo6
VHJhbnNpdGlvbnNPYnNlcnZlciB0cmFuc2l0aW9uc09ic2VydmVyKHZlY3Rvcik7CiAgICAgZm9y
QWxsVmFsdWVzKGNsb2JiZXJMaW1pdCwgdHJhbnNpdGlvbnNPYnNlcnZlcik7CiAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NTRVBoYXNlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1NFUGhhc2UuY3BwCmluZGV4IGU4OWRhYWU0OTU3NDVm
M2Y4MzU0ZDkzY2ZjYWQ2NTI1Y2M1ODJhMDMuLjRhYjZkYWIwMjcxM2JmMGJjMWZiMGI0MzgyYTI2
NzE1ZjRhYmI5Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1NF
UGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1NFUGhhc2UuY3Bw
CkBAIC0xMzYsOCArMTM2LDkgQEAgY2xhc3MgSW1wdXJlTWFwIHsKICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKICAgICB9CiAKLSAgICB2b2lkIGNsb2JiZXIoQWJzdHJhY3RIZWFwIGhlYXApCisgICAg
dm9pZCBjbG9iYmVyKEFic3RyYWN0SGVhcCBoZWFwLCBib29sIGNsb2JiZXJDb25zZXJ2YXRpdmVs
eSkKICAgICB7CisgICAgICAgIGJvb2wgY29uc2VydmF0aXZlID0gZmFsc2U7CiAgICAgICAgIHN3
aXRjaCAoaGVhcC5raW5kKCkpIHsKICAgICAgICAgY2FzZSBXb3JsZDogewogICAgICAgICAgICAg
Y2xlYXIoKTsKQEAgLTE0OSwxNSArMTUwLDI1IEBAIGNsYXNzIEltcHVyZU1hcCB7CiAgICAgICAg
ICAgICBBU1NFUlQoIWhlYXAucGF5bG9hZCgpLmlzVG9wKCkpOwogICAgICAgICAgICAgQVNTRVJU
KGhlYXAucGF5bG9hZCgpLnZhbHVlKCkgPT0gaGVhcC5wYXlsb2FkKCkudmFsdWUzMigpKTsKICAg
ICAgICAgICAgIG1fYWJzdHJhY3RIZWFwU3RhY2tNYXAucmVtb3ZlKGhlYXAucGF5bG9hZCgpLnZh
bHVlMzIoKSk7Ci0gICAgICAgICAgICBjbG9iYmVyKG1fZmFsbGJhY2tTdGFja01hcCwgaGVhcCk7
CisgICAgICAgICAgICBpZiAoY2xvYmJlckNvbnNlcnZhdGl2ZWx5KSB7CisgICAgICAgICAgICAg
ICAgY29uc2VydmF0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBtX2ZhbGxiYWNrU3RhY2tN
YXAuY2xlYXIoKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIGNsb2JiZXIo
bV9mYWxsYmFja1N0YWNrTWFwLCBoZWFwKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBjbG9iYmVyKG1faGVhcE1hcCwgaGVhcCk7
CisgICAgICAgICAgICBpZiAoY2xvYmJlckNvbnNlcnZhdGl2ZWx5KSB7CisgICAgICAgICAgICAg
ICAgY29uc2VydmF0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBtX2hlYXBNYXAuY2xlYXIo
KTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIGNsb2JiZXIobV9oZWFwTWFw
LCBoZWFwKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAjaWYgIWRlZmluZWQoTkRF
QlVHKQotICAgICAgICBtX2RlYnVnSW1wdXJlRGF0YS5yZW1vdmVJZihbaGVhcF0oY29uc3QgSGFz
aE1hcDxIZWFwTG9jYXRpb24sIExhenlOb2RlPjo6S2V5VmFsdWVQYWlyVHlwZSYgcGFpcikgLT4g
Ym9vbCB7CisgICAgICAgIG1fZGVidWdJbXB1cmVEYXRhLnJlbW92ZUlmKFtoZWFwLCBjb25zZXJ2
YXRpdmVdKGNvbnN0IEhhc2hNYXA8SGVhcExvY2F0aW9uLCBMYXp5Tm9kZT46OktleVZhbHVlUGFp
clR5cGUmIHBhaXIpIC0+IGJvb2wgeworICAgICAgICAgICAgaWYgKGNvbnNlcnZhdGl2ZSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gaGVhcC5raW5kKCkgPT0gcGFpci5rZXkuaGVhcCgpLmtpbmQo
KTsKICAgICAgICAgICAgIHJldHVybiBoZWFwLm92ZXJsYXBzKHBhaXIua2V5LmhlYXAoKSk7CiAg
ICAgICAgIH0pOwogICAgICAgICBBU1NFUlQobV9kZWJ1Z0ltcHVyZURhdGEuc2l6ZSgpCkBAIC0y
ODQsNiArMjk1LDcgQEAgY2xhc3MgTG9jYWxDU0VQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAg
ICAgIDogUGhhc2UoZ3JhcGgsICJsb2NhbCBjb21tb24gc3ViZXhwcmVzc2lvbiBlbGltaW5hdGlv
biIpCiAgICAgICAgICwgbV9zbWFsbEJsb2NrKGdyYXBoKQogICAgICAgICAsIG1fbGFyZ2VCbG9j
ayhncmFwaCkKKyAgICAgICAgLCBtX2h1Z2VCbG9jayhncmFwaCkKICAgICB7CiAgICAgfQogICAg
IApAQCAtMzAzLDggKzMxNSwxMCBAQCBjbGFzcyBMb2NhbENTRVBoYXNlIDogcHVibGljIFBoYXNl
IHsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKGJsb2NrLT5zaXplKCkgPD0gU21hbGxN
YXBzOjpjYXBhY2l0eSkKICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fc21hbGxCbG9jay5y
dW4oYmxvY2spOwotICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgZWxzZSBpZiAoYmxvY2st
PnNpemUoKSA8PSBPcHRpb25zOjptYXhERkdOb2Rlc0luQmFzaWNCbG9ja0ZvclByZWNpc2VBbmFs
eXNpcygpKQogICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbV9sYXJnZUJsb2NrLnJ1bihibG9j
ayk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtX2h1Z2VC
bG9jay5ydW4oYmxvY2spOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICByZXR1cm4gY2hh
bmdlZDsKQEAgLTQwMCw3ICs0MTQsOCBAQCBjbGFzcyBMb2NhbENTRVBoYXNlIDogcHVibGljIFBo
YXNlIHsKICAgICAKICAgICAgICAgdm9pZCB3cml0ZShBYnN0cmFjdEhlYXAgaGVhcCkKICAgICAg
ICAgewotICAgICAgICAgICAgbV9pbXB1cmVNYXAuY2xvYmJlcihoZWFwKTsKKyAgICAgICAgICAg
IGJvb2wgY2xvYmJlckNvbnNlcnZhdGl2ZWx5ID0gZmFsc2U7CisgICAgICAgICAgICBtX2ltcHVy
ZU1hcC5jbG9iYmVyKGhlYXAsIGNsb2JiZXJDb25zZXJ2YXRpdmVseSk7CiAgICAgICAgIH0KICAg
ICAKICAgICAgICAgTm9kZSogYWRkUHVyZShQdXJlVmFsdWUgdmFsdWUsIE5vZGUqIG5vZGUpCkBA
IC00MjgsNiArNDQzLDQ5IEBAIGNsYXNzIExvY2FsQ1NFUGhhc2UgOiBwdWJsaWMgUGhhc2Ugewog
ICAgICAgICBJbXB1cmVNYXAgbV9pbXB1cmVNYXA7CiAgICAgfTsKIAorICAgIC8vIFRoaXMgaXMg
dXNlZCBvbmx5IGZvciBodWdlIGJhc2ljIGJsb2NrLiBPdXIgdXN1YWwgQ1NFIGlzIHF1YWRyYXRp
YyBjb21wbGV4aXR5IGZvciAjIG9mIERGRyBub2RlcyBpbiBhIGJhc2ljIGJsb2NrLgorICAgIC8v
IFRoaXMgSHVnZU1hcHMgdGVsbHMgY29uc2VydmF0aXZlIHJlc3VsdHMgaW5zdGVhZCBvZiBhdm9p
ZGluZyBPKE5eMikgd2F5LgorICAgIGNsYXNzIEh1Z2VNYXBzIHsKKyAgICBwdWJsaWM6CisgICAg
ICAgIEh1Z2VNYXBzKCkgPSBkZWZhdWx0OworCisgICAgICAgIHZvaWQgY2xlYXIoKQorICAgICAg
ICB7CisgICAgICAgICAgICBtX3B1cmVNYXAuY2xlYXIoKTsKKyAgICAgICAgICAgIG1faW1wdXJl
TWFwLmNsZWFyKCk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHdyaXRlKEFic3RyYWN0SGVh
cCBoZWFwKQorICAgICAgICB7CisgICAgICAgICAgICBib29sIGNsb2JiZXJDb25zZXJ2YXRpdmVs
eSA9IHRydWU7CisgICAgICAgICAgICBtX2ltcHVyZU1hcC5jbG9iYmVyKGhlYXAsIGNsb2JiZXJD
b25zZXJ2YXRpdmVseSk7CisgICAgICAgIH0KKworICAgICAgICBOb2RlKiBhZGRQdXJlKFB1cmVW
YWx1ZSB2YWx1ZSwgTm9kZSogbm9kZSkKKyAgICAgICAgeworICAgICAgICAgICAgYXV0byByZXN1
bHQgPSBtX3B1cmVNYXAuYWRkKHZhbHVlLCBub2RlKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQu
aXNOZXdFbnRyeSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAg
IHJldHVybiByZXN1bHQuaXRlcmF0b3ItPnZhbHVlOworICAgICAgICB9CisKKyAgICAgICAgTGF6
eU5vZGUgZmluZFJlcGxhY2VtZW50KEhlYXBMb2NhdGlvbiBsb2NhdGlvbikKKyAgICAgICAgewor
ICAgICAgICAgICAgcmV0dXJuIG1faW1wdXJlTWFwLmdldChsb2NhdGlvbik7CisgICAgICAgIH0K
KworICAgICAgICBMYXp5Tm9kZSBhZGRJbXB1cmUoY29uc3QgSGVhcExvY2F0aW9uJiBsb2NhdGlv
biwgY29uc3QgTGF6eU5vZGUmIG5vZGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChjb25z
dCBJbXB1cmVEYXRhU2xvdCogc2xvdCA9IG1faW1wdXJlTWFwLmFkZChsb2NhdGlvbiwgbm9kZSkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIHNsb3QtPnZhbHVlOworICAgICAgICAgICAgcmV0dXJu
IExhenlOb2RlKCk7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIEhhc2hNYXA8
UHVyZVZhbHVlLCBOb2RlKj4gbV9wdXJlTWFwOworICAgICAgICBJbXB1cmVNYXAgbV9pbXB1cmVN
YXA7CisgICAgfTsKKwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1hcHM+CiAgICAgY2xhc3MgQmxv
Y2tDU0UgewogICAgIHB1YmxpYzoKQEAgLTU4MSw2ICs2MzksNyBAQCBjbGFzcyBMb2NhbENTRVBo
YXNlIDogcHVibGljIFBoYXNlIHsKIAogICAgIEJsb2NrQ1NFPFNtYWxsTWFwcz4gbV9zbWFsbEJs
b2NrOwogICAgIEJsb2NrQ1NFPExhcmdlTWFwcz4gbV9sYXJnZUJsb2NrOworICAgIEJsb2NrQ1NF
PEh1Z2VNYXBzPiBtX2h1Z2VCbG9jazsKIH07CiAKIGNsYXNzIEdsb2JhbENTRVBoYXNlIDogcHVi
bGljIFBoYXNlIHsKQEAgLTY2OCw3ICs3MjcsOCBAQCBjbGFzcyBHbG9iYWxDU0VQaGFzZSA6IHB1
YmxpYyBQaGFzZSB7CiAgICAgCiAgICAgdm9pZCB3cml0ZShBYnN0cmFjdEhlYXAgaGVhcCkKICAg
ICB7Ci0gICAgICAgIG1faW1wdXJlRGF0YS0+YXZhaWxhYmxlQXRUYWlsLmNsb2JiZXIoaGVhcCk7
CisgICAgICAgIGJvb2wgY2xvYmJlckNvbnNlcnZhdGl2ZWx5ID0gZmFsc2U7CisgICAgICAgIG1f
aW1wdXJlRGF0YS0+YXZhaWxhYmxlQXRUYWlsLmNsb2JiZXIoaGVhcCwgY2xvYmJlckNvbnNlcnZh
dGl2ZWx5KTsKICAgICAgICAgbV93cml0ZXNTb0Zhci5hZGQoaGVhcCk7CiAgICAgfQogICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCmluZGV4IDAzYTZjMmQ5OTU4YWRh
OWQ1NWY0ZDE0YTI0ZmQ2YjAwNjYyZjdmYmUuLjhlNzNkMWI2NTViYTI3ZjUzNzA2MDI5NzNiNzcz
MjBjMTU4ZjM2NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09w
dGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKQEAg
LTI3Myw2ICsyNzMsNyBAQCBjb25zdGV4cHIgYm9vbCBlbmFibGVXZWJBc3NlbWJseVN0cmVhbWlu
Z0FwaSA9IGZhbHNlOwogICAgIHYoYm9vbCwgdXNlVmFsdWVSZXBFbGltaW5hdGlvbiwgdHJ1ZSwg
Tm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihib29sLCB1c2VBcml0eUZpeHVwSW5saW5pbmcsIHRy
dWUsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwgbG9nRXhlY3V0YWJsZUFsbG9jYXRp
b24sIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKKyAgICB2KHVuc2lnbmVkLCBtYXhERkdOb2Rl
c0luQmFzaWNCbG9ja0ZvclByZWNpc2VBbmFseXNpcywgMjAwMDAsIE5vcm1hbCwgIkRpc2FibGUg
cHJlY2lzZSBidXQgY29zdGx5IGFuYWx5c2lzIGFuZCBnaXZlIGNvbnNlcnZhdGl2ZSByZXN1bHRz
IGlmIHRoZSBudW1iZXIgb2YgREZHIG5vZGVzIGluIGEgYmxvY2sgZXhjZWVkcyB0aGlzIHRocmVz
aG9sZCIpIFwKICAgICBcCiAgICAgdihib29sLCB1c2VDb25jdXJyZW50SklULCB0cnVlLCBOb3Jt
YWwsICJhbGxvd3MgdGhlIERGRyAvIEZUTCBjb21waWxhdGlvbiBpbiB0aHJlYWRzIG90aGVyIHRo
YW4gdGhlIGV4ZWN1dGluZyBKUyB0aHJlYWQiKSBcCiAgICAgdih1bnNpZ25lZCwgbnVtYmVyT2ZE
RkdDb21waWxlclRocmVhZHMsIGNvbXB1dGVOdW1iZXJPZldvcmtlclRocmVhZHMoMywgMikgLSAx
LCBOb3JtYWwsIG51bGxwdHIpIFwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374545</attachid>
            <date>2019-07-20 03:55:48 -0700</date>
            <delta_ts>2019-07-20 03:57:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199929-20190720035548.patch</filename>
            <type>text/plain</type>
            <size>12197</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NjI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZTc5MDIxODcxYWIzZmM5Yzg5MTkyNTEwYmZmYTY0N2Q4ZjE3ZjMyLi43MzM1MTg5MGNhNzI0NmY1
YTIzYTc5NjAwOTM1NDQ4MTlhM2Q0N2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAxOS0wNy0yMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIE1ha2UgREZHIExvY2FsIENTRSBhbmQgQUkgY29uc2VydmF0aXZl
IGZvciBodWdlIGJhc2ljIGJsb2NrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTk5MjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ5MzA5OTI0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIENOTiBw
YWdlLCB0aGUgbWFpbiB0aHJlYWQgaGFuZ3Mgc2V2ZXJhbCBzZWNvbmRzLiBPbiBsZXNzLXBvd2Vy
ZnVsIGRldmljZXMgKGxpa2UgaVBob25lNyksIGl0IGhhbmdzIGZvciB+MTEgc2Vjb25kcy4gVGhp
cyBpcyBub3QgYW4gYWNjZXB0YWJsZSBiZWhhdmlvci4KKyAgICAgICAgVGhlIHJlYXNvbiBvZiB0
aGlzIGlzIHRoYXQgdGhlIERGRyBjb21waWxlciB0YWtlcyB0b28gbG9uZyB0aW1lIGluIHRoZSBj
b21waWxhdGlvbiBmb3IgYSBwYXJ0aWN1bGFyIGZ1bmN0aW9uLiBJdCB0YWtlcyA4NzY1IG1zIGV2
ZW4gaW4gcG93ZXJmdWwgeDY0IG1hY2hpbmUhCisgICAgICAgIERGRyBjb21waWxlciBpcyBjb25j
dXJyZW50IG9uZS4gSG93ZXZlciwgd2hlbiBHQyByZXF1aXJlcyBhbGwgdGhlIHBlcmlwaGVyYWwg
dGhyZWFkcyB0byBiZSBzdG9wcGVkLCB0aGUgbWFpbiB0aHJlYWQgbmVlZHMgdG8gd2FpdCBmb3Ig
dGhlIERGRyBjb21waWxlcidzIHN0b3AuCisgICAgICAgIERGRyBjb21waWxlciBzdG9wcyBhdCBH
QyBzYWZlcG9pbnRzLCBhbmQgdGhleSBhcmUgaW5zZXJ0ZWQgYmV0d2VlbiBERkcgcGhhc2VzLiBT
bywgaWYgc29tZSBvZiBERkcgcGhhc2VzIHRha2UgdmVyeSBsb25nIHRpbWUsIHRoZSBtYWluIHRo
cmVhZCBpcyBibG9ja2VkIGR1cmluZyB0aGF0LgorICAgICAgICBBcyBhIHJlc3VsdCwgdGhlIG1h
aW4gdGhyZWFkIGlzIGJsb2NrZWQgZHVlIHRvIHRoaXMgcGF0aG9sb2dpY2FsIGNvbXBpbGF0aW9u
LgorCisgICAgICAgIEJ5IG1lYXN1cmluZyB0aGUgdGltZSB0YWtlbiBpbiBlYWNoIERGRyBwaGFz
ZSwgd2UgZm91bmQgdGhhdCBvdXIgQUkgYW5kIENTRSBwaGFzZSBoYXZlIGEgcHJvYmxlbSBoYXZp
bmcgcXVhZHJhdGljIGNvbXBsZXhpdHkgZm9yICMgb2YgREZHIG5vZGVzIGluIGEgYmFzaWMgYmxv
Y2suCisgICAgICAgIEluIHRoaXMgcGF0Y2gsIHdlIGFkZCBhIHRocmVzaG9sZCBmb3IgIyBvZiBE
Rkcgbm9kZXMgaW4gYSBiYXNpYyBibG9jay4gSWYgYSBiYXNpYyBibG9jayBleGNlZWRzIHRoaXMg
dGhyZXNob2xkLCB3ZSB1c2UgY29uc2VydmF0aXZlIGJ1dCBPKDEpIGFsZ29yaXRobSBmb3IgQUkg
YW5kIExvY2FsIENTRSBwaGFzZS4KKyAgICAgICAgV2UgZGlkIG5vdCBhZGQgdGhpcyB0aHJlc2hv
bGQgZm9yIEdsb2JhbCBDU0Ugc2luY2UgRlRMIGhhcyBhbm90aGVyIGJ5dGVjb2RlIGNvc3QgdGhy
ZXNob2xkIHdoaWNoIHByZXZlbnRzIHVzIGZyb20gY29tcGlsaW5nIHRoZSBsYXJnZSBmdW5jdGlv
bnMuIEJ1dCBvbiB0aGUgb3RoZXIgaGFuZCwKKyAgICAgICAgREZHIHNob3VsZCBjb21waWxlIHRo
ZW0gYmVjYXVzZSBERkcgaXMgaW50ZW5kZWQgdG8gYmUgYSBmYXN0IGNvbXBpbGVyIGV2ZW4gZm9y
IGEgYml0IGxhcmdlciBDb2RlQmxvY2suCisKKyAgICAgICAgV2UgZmlyc3QgYXR0ZW1wdGVkIHRv
IHJlZHVjZSB0aGUgdGhyZXNob2xkIGZvciBERkcgY29tcGlsYXRpb24uIFdlIGFyZSB1c2luZyAx
MDAwMDAgYnl0ZWNvZGUgY29zdCBmb3IgREZHIGNvbXBpbGF0aW9uIGFuZCBpdCBpcyB2ZXJ5IGxh
cmdlLiBIb3dldmVyLCB3ZSBmb3VuZCB0aGF0IGJ5dGVjb2RlIGNvc3QKKyAgICAgICAgaXMgbm90
IHRoZSBwcm9ibGVtIGluIENOTiBwYWdlLiBUaGUgcHJvYmxlbWF0aWMgZnVuY3Rpb24gaGFzIDY3
OTA0IGNvc3QsIGFuZCBpdCB0YWtlcyA4NzY1IG1zIGluIHg2NCBtYWNoaW5lLiBIb3dldmVyLCBK
ZXRTdHJlYW0yL29jdGFuZS16bGliIGhhcyA2MTk0OSBmdW5jdGlvbiBhbmQgaXQgb25seSB0YWtl
cworICAgICAgICB+NDAwIG1zLiBUaGlzIGRpZmZlcmVuY2UgY29tZXMgZnJvbSB0aGUgIyBvZiBE
Rkcgbm9kZXMgaW4gYSBiYXNpYyBibG9jay4gVGhlIHByb2JsZW1hdGljIGZ1bmN0aW9uIGhhcyA0
MzI5NyBERkcgbm9kZXMgaW4gb25lIGJhc2ljIGJsb2NrIGFuZCBpdCBtYWtlcyBBSSBhbmQgTG9j
YWwgQ1NFIHN1cGVyIHRpbWUtY29uc3VtaW5nLgorICAgICAgICBSYXRoZXIgdGhhbiByZWx5aW5n
IG9uIHRoZSBieXRlY29kZSBjb3N0IHdoaWNoIGEgYml0IGluZGlyZWN0bHkgcmVsYXRlZCB0byB0
aGlzIHBhdGhvbG9naWNhbCBjb21waWxlLXRpbWUsIHdlIHNob3VsZCBsb29rIGludG8gIyBvZiBE
Rkcgbm9kZXMgaW4gYSBiYXNpYyBibG9jayB3aGljaCBpcyBtb3JlIGRpcmVjdGx5CisgICAgICAg
IHJlbGF0ZWQgdG8gdGhpcyBwcm9ibGVtLiBBbmQgd2UgYWxzbyBmb3VuZCB0aGF0IDYxOTQ5J3Mg
T2N0YW5lLXpsaWIgZnVuY3Rpb24gaXMgdmVyeSBjcml0aWNhbCBmb3IgcGVyZm9ybWFuY2UuIFRo
aXMgZmFjdCBtYWtlcyBhIGJpdCBoYXJkIHRvIHBpY2sgYSByaWdodCB0aHJlc2hvbGQ6IDY3OTA0
IGNhdXNlcyB0aGUgcHJvYmxlbSwKKyAgICAgICAgYW5kIDYxOTQ5IG11c3QgYmUgY29tcGlsZWQu
IFRoaXMgaXMgd2h5IHRoaXMgcGF0Y2ggaXMgaW50cm9kdWNpbmcgY29uc2VydmF0aXZlIGFuYWx5
c2lzIGluc3RlYWQgb2YgYWRqdXN0aW5nIHRoZSB0aHJlc2hvbGQgZm9yIERGRy4KKworICAgICAg
ICBUaGlzIHBhdGNoIGhhcyB0d28gY2hhbmdlcy4KKworICAgICAgICAxLiBERkcgQUkgaGFzIHN0
cnVjdHVyZSB0cmFuc2l0aW9uIHRyYWNraW5nIHdoaWNoIGhhcyBxdWFkcmF0aWMgY29tcGxleGl0
eQorCisgICAgICAgIFN0cnVjdHVyZSB0cmFuc2l0aW9uIHRyYWNraW5nIHRha2VzIHZlcnkgbG9u
ZyB0aW1lIHNpbmNlIGl0cyBjb21wbGV4aXR5IGlzIE8oTl4yKSB3aGVyZSBOIGlzICMgb2YgREZH
IG5vZGVzIGluIGEgYmFzaWMgYmxvY2suCisgICAgICAgIENOTiBoYXMgdmVyeSBwYXRob2xvZ2lj
YWwgc2NyaXB0IGFuZCBpdCBzaG93cyA0MzI5NyBERkcgbm9kZXMuIFdlIHNob3VsZCByZWR1Y2Ug
dGhlIGNvbXBsZXhpdHkgb2YgdGhpcyBhbGdvcml0aG0uCisgICAgICAgIEZvciBub3csIHdlIGp1
c3Qgc2F5ICJzdHJ1Y3R1cmVzIGFyZSBjbG9iYmVyZWQiIGlmICMgb2YgREZHIG5vZGVzIGluIGEg
YmFzaWMgYmxvY2sgZXhjZWVkcyB0aGUgdGhyZXNob2xkICgyMDAwMCkuCisgICAgICAgIFdlIGNv
dWxkIGltcHJvdmUgdGhlIGN1cnJlbnQgYWxnb3JpdGhtIGZyb20gTyhOXjIpIHRvIE8oMk4pIHdp
dGhvdXQgYmVpbmcgY29uc2VydmF0aXZlLCBhbmQgSSdtIHRyYWNraW5nIHRoaXMgaW4gWzFdLgor
CisgICAgICAgIDIuIERGRyBMb2NhbCBDU0UgaGFzIHF1YWRyYXRpYyBjb21wbGV4aXR5CisKKyAg
ICAgICAgTG9jYWwgQ1NFJ3MgY2xvYmJlcmluZyBpdGVyYXRlcyBhbGwgdGhlIGltcHVyZSBoZWFw
IHZhbHVlcyB0byByZW1vdmUgdGhlIGNsb2JiZXJlZCBvbmUuIFNpbmNlICMgb2YgaW1wdXJlIGhl
YXAgdmFsdWVzIHRlbmQgdG8gYmUgcHJvcG9ydGlvbmFsIHRvICMgb2YgREZHIG5vZGVzIHdlIHZp
c2l0ZWQsCisgICAgICAgIGVhY2ggQ1NFIGZvciBhIGJhc2ljIGJsb2NrIGdldHMgTyhOXjIpIGNv
bXBsZXhpdHkuIFRvIGF2b2lkIHRoaXMsIHdlIGludHJvZHVjZSBIdWdlTWFwLiBUaGlzIGhhcyB0
aGUgc2FtZSBpbnRlcmZhY2UgdG8gTGFyZ2VNYXAgYW5kIFNtYWxsTWFwIGluIENTRSwgYnV0IGl0
cyBjbG9iYmVyaW5nCisgICAgICAgIGltcGxlbWVudGF0aW9uIGp1c3QgY2xlYXJzIHRoZSBtYXAg
Y29tcGxldGVseS4KKworICAgICAgICBUaGlzIHBhdGNoIHJlZHVjZXMgdGhlIGNvbXBpbGF0aW9u
IHRpbWUgZnJvbSB+MTEgc2Vjb25kcyB0byB+MjAwIG1zLgorCisgICAgICAgICogZGZnL0RGR0Fi
c3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJ
bnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46Om9ic2VydmVUcmFuc2l0aW9uKToKKyAgICAg
ICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6b2Jz
ZXJ2ZVRyYW5zaXRpb25zKToKKyAgICAgICAgKiBkZmcvREZHQ1NFUGhhc2UuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvT3B0aW9ucy5oOgorCiAyMDE5LTA3LTE3ICBBbnRvaW5lIFF1aW50ICA8Z3Jh
b3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgRGlzYWJsZSBQb2ludGVyIEV2ZW50cyBwcmlvciB0
byB3YXRjaE9TIDYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJz
dHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAppbmRleCA4OWRhZWI5MTMzYzEyNTJiMDAzNmRh
OTBmYWQ5YjAwNTU0OTUzZDI4Li45NDdjYjBjY2UyNjJiMzNkNzM4NmZiZDE1N2RhMzk2YmNhMTI3
NzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0
cmFjdEludGVycHJldGVySW5saW5lcy5oCkBAIC00MDkzLDYgKzQwOTMsMTQgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgQWJzdHJhY3RTdGF0ZVR5cGU+CiB2b2lkIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJz
dHJhY3RTdGF0ZVR5cGU+OjpvYnNlcnZlVHJhbnNpdGlvbigKICAgICB1bnNpZ25lZCBjbG9iYmVy
TGltaXQsIFJlZ2lzdGVyZWRTdHJ1Y3R1cmUgZnJvbSwgUmVnaXN0ZXJlZFN0cnVjdHVyZSB0bykK
IHsKKyAgICAvLyBTdG9wIHBlcmZvcm1pbmcgcHJlY2lzZSBzdHJ1Y3R1cmUgdHJhbnNpdGlvbiB0
cmFja2luZy4KKyAgICAvLyBQcmVjaXNlIHN0cnVjdHVyZSB0cmFuc2l0aW9uIHRyYWNraW5nIHNo
b3dzIHF1YWRyYXRpYyBjb21wbGV4aXR5IGZvciAjIG9mIG5vZGVzIGluIGEgYmFzaWMgYmxvY2su
CisgICAgLy8gSWYgaXQgaXMgdG9vIGxhcmdlLCB3ZSBjb25zZXJ2YXRpdmVseSBjbG9iYmVyIHRo
ZSBzdHJ1Y3R1cmVzLgorICAgIGlmIChtX3N0YXRlLmJsb2NrKCktPnNpemUoKSA+IE9wdGlvbnM6
Om1heERGR05vZGVzSW5CYXNpY0Jsb2NrRm9yUHJlY2lzZUFuYWx5c2lzKCkpIHsKKyAgICAgICAg
Y2xvYmJlclN0cnVjdHVyZXMoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIEFic3Ry
YWN0VmFsdWU6OlRyYW5zaXRpb25PYnNlcnZlciB0cmFuc2l0aW9uT2JzZXJ2ZXIoZnJvbSwgdG8p
OwogICAgIGZvckFsbFZhbHVlcyhjbG9iYmVyTGltaXQsIHRyYW5zaXRpb25PYnNlcnZlcik7CiAg
ICAgCkBAIC00MTA4LDYgKzQxMTYsMTQgQEAgdm9pZCBBYnN0cmFjdEludGVycHJldGVyPEFic3Ry
YWN0U3RhdGVUeXBlPjo6b2JzZXJ2ZVRyYW5zaXRpb25zKAogICAgIGlmICh2ZWN0b3IuaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm47CiAgICAgCisgICAgLy8gU3RvcCBwZXJmb3JtaW5nIHByZWNp
c2Ugc3RydWN0dXJlIHRyYW5zaXRpb24gdHJhY2tpbmcuCisgICAgLy8gUHJlY2lzZSBzdHJ1Y3R1
cmUgdHJhbnNpdGlvbiB0cmFja2luZyBzaG93cyBxdWFkcmF0aWMgY29tcGxleGl0eSBmb3IgIyBv
ZiBub2RlcyBpbiBhIGJhc2ljIGJsb2NrLgorICAgIC8vIElmIGl0IGlzIHRvbyBsYXJnZSwgd2Ug
Y29uc2VydmF0aXZlbHkgY2xvYmJlciB0aGUgc3RydWN0dXJlcy4KKyAgICBpZiAobV9zdGF0ZS5i
bG9jaygpLT5zaXplKCkgPiBPcHRpb25zOjptYXhERkdOb2Rlc0luQmFzaWNCbG9ja0ZvclByZWNp
c2VBbmFseXNpcygpKSB7CisgICAgICAgIGNsb2JiZXJTdHJ1Y3R1cmVzKCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKICAgICBBYnN0cmFjdFZhbHVlOjpUcmFuc2l0aW9uc09ic2VydmVyIHRy
YW5zaXRpb25zT2JzZXJ2ZXIodmVjdG9yKTsKICAgICBmb3JBbGxWYWx1ZXMoY2xvYmJlckxpbWl0
LCB0cmFuc2l0aW9uc09ic2VydmVyKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ1NFUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDU0VQaGFzZS5jcHAKaW5kZXggZTg5ZGFhZTQ5NTc0NWYzZjgzNTRkOTNjZmNhZDY1MjVjYzU4
MmEwMy4uNGFiNmRhYjAyNzEzYmYwYmMxZmIwYjQzODJhMjY3MTVmNGFiYjljYiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQaGFzZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQaGFzZS5jcHAKQEAgLTEzNiw4ICsxMzYsOSBAQCBj
bGFzcyBJbXB1cmVNYXAgewogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAotICAgIHZv
aWQgY2xvYmJlcihBYnN0cmFjdEhlYXAgaGVhcCkKKyAgICB2b2lkIGNsb2JiZXIoQWJzdHJhY3RI
ZWFwIGhlYXAsIGJvb2wgY2xvYmJlckNvbnNlcnZhdGl2ZWx5KQogICAgIHsKKyAgICAgICAgYm9v
bCBjb25zZXJ2YXRpdmUgPSBmYWxzZTsKICAgICAgICAgc3dpdGNoIChoZWFwLmtpbmQoKSkgewog
ICAgICAgICBjYXNlIFdvcmxkOiB7CiAgICAgICAgICAgICBjbGVhcigpOwpAQCAtMTQ5LDE1ICsx
NTAsMjUgQEAgY2xhc3MgSW1wdXJlTWFwIHsKICAgICAgICAgICAgIEFTU0VSVCghaGVhcC5wYXls
b2FkKCkuaXNUb3AoKSk7CiAgICAgICAgICAgICBBU1NFUlQoaGVhcC5wYXlsb2FkKCkudmFsdWUo
KSA9PSBoZWFwLnBheWxvYWQoKS52YWx1ZTMyKCkpOwogICAgICAgICAgICAgbV9hYnN0cmFjdEhl
YXBTdGFja01hcC5yZW1vdmUoaGVhcC5wYXlsb2FkKCkudmFsdWUzMigpKTsKLSAgICAgICAgICAg
IGNsb2JiZXIobV9mYWxsYmFja1N0YWNrTWFwLCBoZWFwKTsKKyAgICAgICAgICAgIGlmIChjbG9i
YmVyQ29uc2VydmF0aXZlbHkpIHsKKyAgICAgICAgICAgICAgICBjb25zZXJ2YXRpdmUgPSB0cnVl
OworICAgICAgICAgICAgICAgIG1fZmFsbGJhY2tTdGFja01hcC5jbGVhcigpOworICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgY2xvYmJlcihtX2ZhbGxiYWNrU3RhY2tNYXAsIGhl
YXApOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKLSAg
ICAgICAgICAgIGNsb2JiZXIobV9oZWFwTWFwLCBoZWFwKTsKKyAgICAgICAgICAgIGlmIChjbG9i
YmVyQ29uc2VydmF0aXZlbHkpIHsKKyAgICAgICAgICAgICAgICBjb25zZXJ2YXRpdmUgPSB0cnVl
OworICAgICAgICAgICAgICAgIG1faGVhcE1hcC5jbGVhcigpOworICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICAgICAgY2xvYmJlcihtX2hlYXBNYXAsIGhlYXApOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICNpZiAhZGVmaW5lZChOREVCVUcpCi0gICAgICAgIG1fZGVidWdJ
bXB1cmVEYXRhLnJlbW92ZUlmKFtoZWFwXShjb25zdCBIYXNoTWFwPEhlYXBMb2NhdGlvbiwgTGF6
eU5vZGU+OjpLZXlWYWx1ZVBhaXJUeXBlJiBwYWlyKSAtPiBib29sIHsKKyAgICAgICAgbV9kZWJ1
Z0ltcHVyZURhdGEucmVtb3ZlSWYoW2hlYXAsIGNvbnNlcnZhdGl2ZV0oY29uc3QgSGFzaE1hcDxI
ZWFwTG9jYXRpb24sIExhenlOb2RlPjo6S2V5VmFsdWVQYWlyVHlwZSYgcGFpcikgLT4gYm9vbCB7
CisgICAgICAgICAgICBpZiAoY29uc2VydmF0aXZlKQorICAgICAgICAgICAgICAgIHJldHVybiBo
ZWFwLmtpbmQoKSA9PSBwYWlyLmtleS5oZWFwKCkua2luZCgpOwogICAgICAgICAgICAgcmV0dXJu
IGhlYXAub3ZlcmxhcHMocGFpci5rZXkuaGVhcCgpKTsKICAgICAgICAgfSk7CiAgICAgICAgIEFT
U0VSVChtX2RlYnVnSW1wdXJlRGF0YS5zaXplKCkKQEAgLTI4NCw2ICsyOTUsNyBAQCBjbGFzcyBM
b2NhbENTRVBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgOiBQaGFzZShncmFwaCwgImxv
Y2FsIGNvbW1vbiBzdWJleHByZXNzaW9uIGVsaW1pbmF0aW9uIikKICAgICAgICAgLCBtX3NtYWxs
QmxvY2soZ3JhcGgpCiAgICAgICAgICwgbV9sYXJnZUJsb2NrKGdyYXBoKQorICAgICAgICAsIG1f
aHVnZUJsb2NrKGdyYXBoKQogICAgIHsKICAgICB9CiAgICAgCkBAIC0zMDMsOCArMzE1LDEwIEBA
IGNsYXNzIExvY2FsQ1NFUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgCiAgICAg
ICAgICAgICBpZiAoYmxvY2stPnNpemUoKSA8PSBTbWFsbE1hcHM6OmNhcGFjaXR5KQogICAgICAg
ICAgICAgICAgIGNoYW5nZWQgfD0gbV9zbWFsbEJsb2NrLnJ1bihibG9jayk7Ci0gICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICBlbHNlIGlmIChibG9jay0+c2l6ZSgpIDw9IE9wdGlvbnM6Om1h
eERGR05vZGVzSW5CYXNpY0Jsb2NrRm9yUHJlY2lzZUFuYWx5c2lzKCkpCiAgICAgICAgICAgICAg
ICAgY2hhbmdlZCB8PSBtX2xhcmdlQmxvY2sucnVuKGJsb2NrKTsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1faHVnZUJsb2NrLnJ1bihibG9jayk7CiAgICAg
ICAgIH0KICAgICAgICAgCiAgICAgICAgIHJldHVybiBjaGFuZ2VkOwpAQCAtNDAwLDcgKzQxNCw4
IEBAIGNsYXNzIExvY2FsQ1NFUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgIAogICAgICAgICB2
b2lkIHdyaXRlKEFic3RyYWN0SGVhcCBoZWFwKQogICAgICAgICB7Ci0gICAgICAgICAgICBtX2lt
cHVyZU1hcC5jbG9iYmVyKGhlYXApOworICAgICAgICAgICAgYm9vbCBjbG9iYmVyQ29uc2VydmF0
aXZlbHkgPSBmYWxzZTsKKyAgICAgICAgICAgIG1faW1wdXJlTWFwLmNsb2JiZXIoaGVhcCwgY2xv
YmJlckNvbnNlcnZhdGl2ZWx5KTsKICAgICAgICAgfQogICAgIAogICAgICAgICBOb2RlKiBhZGRQ
dXJlKFB1cmVWYWx1ZSB2YWx1ZSwgTm9kZSogbm9kZSkKQEAgLTQyOCw2ICs0NDMsNDkgQEAgY2xh
c3MgTG9jYWxDU0VQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgIEltcHVyZU1hcCBtX2lt
cHVyZU1hcDsKICAgICB9OwogCisgICAgLy8gVGhpcyBpcyB1c2VkIG9ubHkgZm9yIGh1Z2UgYmFz
aWMgYmxvY2suIE91ciB1c3VhbCBDU0UgaXMgcXVhZHJhdGljIGNvbXBsZXhpdHkgZm9yICMgb2Yg
REZHIG5vZGVzIGluIGEgYmFzaWMgYmxvY2suCisgICAgLy8gVGhpcyBIdWdlTWFwcyB0ZWxscyBj
b25zZXJ2YXRpdmUgcmVzdWx0cyBpbnN0ZWFkIG9mIGF2b2lkaW5nIE8oTl4yKSB3YXkuCisgICAg
Y2xhc3MgSHVnZU1hcHMgeworICAgIHB1YmxpYzoKKyAgICAgICAgSHVnZU1hcHMoKSA9IGRlZmF1
bHQ7CisKKyAgICAgICAgdm9pZCBjbGVhcigpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fcHVy
ZU1hcC5jbGVhcigpOworICAgICAgICAgICAgbV9pbXB1cmVNYXAuY2xlYXIoKTsKKyAgICAgICAg
fQorCisgICAgICAgIHZvaWQgd3JpdGUoQWJzdHJhY3RIZWFwIGhlYXApCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGJvb2wgY2xvYmJlckNvbnNlcnZhdGl2ZWx5ID0gdHJ1ZTsKKyAgICAgICAgICAg
IG1faW1wdXJlTWFwLmNsb2JiZXIoaGVhcCwgY2xvYmJlckNvbnNlcnZhdGl2ZWx5KTsKKyAgICAg
ICAgfQorCisgICAgICAgIE5vZGUqIGFkZFB1cmUoUHVyZVZhbHVlIHZhbHVlLCBOb2RlKiBub2Rl
KQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IG1fcHVyZU1hcC5hZGQodmFs
dWUsIG5vZGUpOworICAgICAgICAgICAgaWYgKHJlc3VsdC5pc05ld0VudHJ5KQorICAgICAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5pdGVyYXRv
ci0+dmFsdWU7CisgICAgICAgIH0KKworICAgICAgICBMYXp5Tm9kZSBmaW5kUmVwbGFjZW1lbnQo
SGVhcExvY2F0aW9uIGxvY2F0aW9uKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbV9p
bXB1cmVNYXAuZ2V0KGxvY2F0aW9uKTsKKyAgICAgICAgfQorCisgICAgICAgIExhenlOb2RlIGFk
ZEltcHVyZShjb25zdCBIZWFwTG9jYXRpb24mIGxvY2F0aW9uLCBjb25zdCBMYXp5Tm9kZSYgbm9k
ZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGNvbnN0IEltcHVyZURhdGFTbG90KiBzbG90
ID0gbV9pbXB1cmVNYXAuYWRkKGxvY2F0aW9uLCBub2RlKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gc2xvdC0+dmFsdWU7CisgICAgICAgICAgICByZXR1cm4gTGF6eU5vZGUoKTsKKyAgICAgICAg
fQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgSGFzaE1hcDxQdXJlVmFsdWUsIE5vZGUqPiBtX3B1
cmVNYXA7CisgICAgICAgIEltcHVyZU1hcCBtX2ltcHVyZU1hcDsKKyAgICB9OworCiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgTWFwcz4KICAgICBjbGFzcyBCbG9ja0NTRSB7CiAgICAgcHVibGljOgpA
QCAtNTgxLDYgKzYzOSw3IEBAIGNsYXNzIExvY2FsQ1NFUGhhc2UgOiBwdWJsaWMgUGhhc2Ugewog
CiAgICAgQmxvY2tDU0U8U21hbGxNYXBzPiBtX3NtYWxsQmxvY2s7CiAgICAgQmxvY2tDU0U8TGFy
Z2VNYXBzPiBtX2xhcmdlQmxvY2s7CisgICAgQmxvY2tDU0U8SHVnZU1hcHM+IG1faHVnZUJsb2Nr
OwogfTsKIAogY2xhc3MgR2xvYmFsQ1NFUGhhc2UgOiBwdWJsaWMgUGhhc2UgewpAQCAtNjY4LDcg
KzcyNyw4IEBAIGNsYXNzIEdsb2JhbENTRVBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAKICAg
ICB2b2lkIHdyaXRlKEFic3RyYWN0SGVhcCBoZWFwKQogICAgIHsKLSAgICAgICAgbV9pbXB1cmVE
YXRhLT5hdmFpbGFibGVBdFRhaWwuY2xvYmJlcihoZWFwKTsKKyAgICAgICAgYm9vbCBjbG9iYmVy
Q29uc2VydmF0aXZlbHkgPSBmYWxzZTsKKyAgICAgICAgbV9pbXB1cmVEYXRhLT5hdmFpbGFibGVB
dFRhaWwuY2xvYmJlcihoZWFwLCBjbG9iYmVyQ29uc2VydmF0aXZlbHkpOwogICAgICAgICBtX3dy
aXRlc1NvRmFyLmFkZChoZWFwKTsKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcHRpb25zLmgKaW5kZXggMDNhNmMyZDk5NThhZGE5ZDU1ZjRkMTRhMjRmZDZiMDA2NjJm
N2ZiZS4uOGU3M2QxYjY1NWJhMjdmNTM3MDYwMjk3M2I3NzMyMGMxNThmMzY0MCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaApAQCAtMjczLDYgKzI3Myw3IEBAIGNvbnN0
ZXhwciBib29sIGVuYWJsZVdlYkFzc2VtYmx5U3RyZWFtaW5nQXBpID0gZmFsc2U7CiAgICAgdihi
b29sLCB1c2VWYWx1ZVJlcEVsaW1pbmF0aW9uLCB0cnVlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAg
ICB2KGJvb2wsIHVzZUFyaXR5Rml4dXBJbmxpbmluZywgdHJ1ZSwgTm9ybWFsLCBudWxscHRyKSBc
CiAgICAgdihib29sLCBsb2dFeGVjdXRhYmxlQWxsb2NhdGlvbiwgZmFsc2UsIE5vcm1hbCwgbnVs
bHB0cikgXAorICAgIHYodW5zaWduZWQsIG1heERGR05vZGVzSW5CYXNpY0Jsb2NrRm9yUHJlY2lz
ZUFuYWx5c2lzLCAyMDAwMCwgTm9ybWFsLCAiRGlzYWJsZSBwcmVjaXNlIGJ1dCBjb3N0bHkgYW5h
bHlzaXMgYW5kIGdpdmUgY29uc2VydmF0aXZlIHJlc3VsdHMgaWYgdGhlIG51bWJlciBvZiBERkcg
bm9kZXMgaW4gYSBibG9jayBleGNlZWRzIHRoaXMgdGhyZXNob2xkIikgXAogICAgIFwKICAgICB2
KGJvb2wsIHVzZUNvbmN1cnJlbnRKSVQsIHRydWUsIE5vcm1hbCwgImFsbG93cyB0aGUgREZHIC8g
RlRMIGNvbXBpbGF0aW9uIGluIHRocmVhZHMgb3RoZXIgdGhhbiB0aGUgZXhlY3V0aW5nIEpTIHRo
cmVhZCIpIFwKICAgICB2KHVuc2lnbmVkLCBudW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkcywgY29t
cHV0ZU51bWJlck9mV29ya2VyVGhyZWFkcygzLCAyKSAtIDEsIE5vcm1hbCwgbnVsbHB0cikgXAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374546</attachid>
            <date>2019-07-20 03:57:08 -0700</date>
            <delta_ts>2019-07-20 16:22:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199929-20190720035707.patch</filename>
            <type>text/plain</type>
            <size>12260</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NjI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZTc5MDIxODcxYWIzZmM5Yzg5MTkyNTEwYmZmYTY0N2Q4ZjE3ZjMyLi5lMzJhODNiODY3MzAxOTEw
YjdjODM2MTNjMjAwMzI2NjAzN2U3ZDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NCBAQAorMjAxOS0wNy0yMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIE1ha2UgREZHIExvY2FsIENTRSBhbmQgQUkgY29uc2VydmF0aXZl
IGZvciBodWdlIGJhc2ljIGJsb2NrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTk5MjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ5MzA5OTI0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIENOTiBw
YWdlLCB0aGUgbWFpbiB0aHJlYWQgaGFuZ3Mgc2V2ZXJhbCBzZWNvbmRzLiBPbiBsZXNzLXBvd2Vy
ZnVsIGRldmljZXMgKGxpa2UgaVBob25lNyksIGl0IGhhbmdzIGZvciB+MTEgc2Vjb25kcy4gVGhp
cyBpcyBub3QgYW4gYWNjZXB0YWJsZSBiZWhhdmlvci4KKyAgICAgICAgVGhlIHJlYXNvbiBvZiB0
aGlzIGlzIHRoYXQgdGhlIERGRyBjb21waWxlciB0YWtlcyB0b28gbG9uZyB0aW1lIGluIHRoZSBj
b21waWxhdGlvbiBmb3IgYSBwYXJ0aWN1bGFyIGZ1bmN0aW9uLiBJdCB0YWtlcyA4NzY1IG1zIGV2
ZW4gaW4gcG93ZXJmdWwgeDY0IG1hY2hpbmUhCisgICAgICAgIERGRyBjb21waWxlciBpcyBjb25j
dXJyZW50IG9uZS4gSG93ZXZlciwgd2hlbiBHQyByZXF1aXJlcyBhbGwgdGhlIHBlcmlwaGVyYWwg
dGhyZWFkcyB0byBiZSBzdG9wcGVkLCB0aGUgbWFpbiB0aHJlYWQgbmVlZHMgdG8gd2FpdCBmb3Ig
dGhlIERGRyBjb21waWxlcidzIHN0b3AuCisgICAgICAgIERGRyBjb21waWxlciBzdG9wcyBhdCBH
QyBzYWZlcG9pbnRzLCBhbmQgdGhleSBhcmUgaW5zZXJ0ZWQgYmV0d2VlbiBERkcgcGhhc2VzLiBT
bywgaWYgc29tZSBvZiBERkcgcGhhc2VzIHRha2UgdmVyeSBsb25nIHRpbWUsIHRoZSBtYWluIHRo
cmVhZCBpcyBibG9ja2VkIGR1cmluZyB0aGF0LgorICAgICAgICBBcyBhIHJlc3VsdCwgdGhlIG1h
aW4gdGhyZWFkIGlzIGJsb2NrZWQgZHVlIHRvIHRoaXMgcGF0aG9sb2dpY2FsIGNvbXBpbGF0aW9u
LgorCisgICAgICAgIEJ5IG1lYXN1cmluZyB0aGUgdGltZSB0YWtlbiBpbiBlYWNoIERGRyBwaGFz
ZSwgd2UgZm91bmQgdGhhdCBvdXIgQUkgYW5kIENTRSBwaGFzZSBoYXZlIGEgcHJvYmxlbSBoYXZp
bmcgcXVhZHJhdGljIGNvbXBsZXhpdHkgZm9yICMgb2YgREZHIG5vZGVzIGluIGEgYmFzaWMgYmxv
Y2suCisgICAgICAgIEluIHRoaXMgcGF0Y2gsIHdlIGFkZCBhIHRocmVzaG9sZCBmb3IgIyBvZiBE
Rkcgbm9kZXMgaW4gYSBiYXNpYyBibG9jay4gSWYgYSBiYXNpYyBibG9jayBleGNlZWRzIHRoaXMg
dGhyZXNob2xkLCB3ZSB1c2UgY29uc2VydmF0aXZlIGJ1dCBPKDEpIGFsZ29yaXRobSBmb3IgQUkg
YW5kIExvY2FsIENTRSBwaGFzZS4KKyAgICAgICAgV2UgZGlkIG5vdCBhZGQgdGhpcyB0aHJlc2hv
bGQgZm9yIEdsb2JhbCBDU0Ugc2luY2UgRlRMIGhhcyBhbm90aGVyIGJ5dGVjb2RlIGNvc3QgdGhy
ZXNob2xkIHdoaWNoIHByZXZlbnRzIHVzIGZyb20gY29tcGlsaW5nIHRoZSBsYXJnZSBmdW5jdGlv
bnMuIEJ1dCBvbiB0aGUgb3RoZXIgaGFuZCwKKyAgICAgICAgREZHIHNob3VsZCBjb21waWxlIHRo
ZW0gYmVjYXVzZSBERkcgaXMgaW50ZW5kZWQgdG8gYmUgYSBmYXN0IGNvbXBpbGVyIGV2ZW4gZm9y
IGEgYml0IGxhcmdlciBDb2RlQmxvY2suCisKKyAgICAgICAgV2UgZmlyc3QgYXR0ZW1wdGVkIHRv
IHJlZHVjZSB0aGUgdGhyZXNob2xkIGZvciBERkcgY29tcGlsYXRpb24uIFdlIGFyZSB1c2luZyAx
MDAwMDAgYnl0ZWNvZGUgY29zdCBmb3IgREZHIGNvbXBpbGF0aW9uIGFuZCBpdCBpcyB2ZXJ5IGxh
cmdlLiBIb3dldmVyLCB3ZSBmb3VuZCB0aGF0IGJ5dGVjb2RlIGNvc3QKKyAgICAgICAgaXMgbm90
IHRoZSBwcm9ibGVtIGluIENOTiBwYWdlLiBUaGUgcHJvYmxlbWF0aWMgZnVuY3Rpb24gaGFzIDY3
OTA0IGNvc3QsIGFuZCBpdCB0YWtlcyA4NzY1IG1zIGluIHg2NCBtYWNoaW5lLiBIb3dldmVyLCBK
ZXRTdHJlYW0yL29jdGFuZS16bGliIGhhcyA2MTk0OSBmdW5jdGlvbiBhbmQgaXQgb25seSB0YWtl
cworICAgICAgICB+NDAwIG1zLiBUaGlzIGRpZmZlcmVuY2UgY29tZXMgZnJvbSB0aGUgIyBvZiBE
Rkcgbm9kZXMgaW4gYSBiYXNpYyBibG9jay4gVGhlIHByb2JsZW1hdGljIGZ1bmN0aW9uIGhhcyA0
MzI5NyBERkcgbm9kZXMgaW4gb25lIGJhc2ljIGJsb2NrIGFuZCBpdCBtYWtlcyBBSSBhbmQgTG9j
YWwgQ1NFIHN1cGVyIHRpbWUtY29uc3VtaW5nLgorICAgICAgICBSYXRoZXIgdGhhbiByZWx5aW5n
IG9uIHRoZSBieXRlY29kZSBjb3N0IHdoaWNoIGEgYml0IGluZGlyZWN0bHkgcmVsYXRlZCB0byB0
aGlzIHBhdGhvbG9naWNhbCBjb21waWxlLXRpbWUsIHdlIHNob3VsZCBsb29rIGludG8gIyBvZiBE
Rkcgbm9kZXMgaW4gYSBiYXNpYyBibG9jayB3aGljaCBpcyBtb3JlIGRpcmVjdGx5CisgICAgICAg
IHJlbGF0ZWQgdG8gdGhpcyBwcm9ibGVtLiBBbmQgd2UgYWxzbyBmb3VuZCB0aGF0IDYxOTQ5J3Mg
T2N0YW5lLXpsaWIgZnVuY3Rpb24gaXMgdmVyeSBjcml0aWNhbCBmb3IgcGVyZm9ybWFuY2UuIFRo
aXMgZmFjdCBtYWtlcyBhIGJpdCBoYXJkIHRvIHBpY2sgYSByaWdodCB0aHJlc2hvbGQ6IDY3OTA0
IGNhdXNlcyB0aGUgcHJvYmxlbSwKKyAgICAgICAgYW5kIDYxOTQ5IG11c3QgYmUgY29tcGlsZWQu
IFRoaXMgaXMgd2h5IHRoaXMgcGF0Y2ggaXMgaW50cm9kdWNpbmcgY29uc2VydmF0aXZlIGFuYWx5
c2lzIGluc3RlYWQgb2YgYWRqdXN0aW5nIHRoZSB0aHJlc2hvbGQgZm9yIERGRy4KKworICAgICAg
ICBUaGlzIHBhdGNoIGhhcyB0d28gY2hhbmdlcy4KKworICAgICAgICAxLiBERkcgQUkgaGFzIHN0
cnVjdHVyZSB0cmFuc2l0aW9uIHRyYWNraW5nIHdoaWNoIGhhcyBxdWFkcmF0aWMgY29tcGxleGl0
eQorCisgICAgICAgIFN0cnVjdHVyZSB0cmFuc2l0aW9uIHRyYWNraW5nIHRha2VzIHZlcnkgbG9u
ZyB0aW1lIHNpbmNlIGl0cyBjb21wbGV4aXR5IGlzIE8oTl4yKSB3aGVyZSBOIGlzICMgb2YgREZH
IG5vZGVzIGluIGEgYmFzaWMgYmxvY2suCisgICAgICAgIENOTiBoYXMgdmVyeSBwYXRob2xvZ2lj
YWwgc2NyaXB0IGFuZCBpdCBzaG93cyA0MzI5NyBERkcgbm9kZXMuIFdlIHNob3VsZCByZWR1Y2Ug
dGhlIGNvbXBsZXhpdHkgb2YgdGhpcyBhbGdvcml0aG0uCisgICAgICAgIEZvciBub3csIHdlIGp1
c3Qgc2F5ICJzdHJ1Y3R1cmVzIGFyZSBjbG9iYmVyZWQiIGlmICMgb2YgREZHIG5vZGVzIGluIGEg
YmFzaWMgYmxvY2sgZXhjZWVkcyB0aGUgdGhyZXNob2xkICgyMDAwMCkuCisgICAgICAgIFdlIGNv
dWxkIGltcHJvdmUgdGhlIGN1cnJlbnQgYWxnb3JpdGhtIGZyb20gTyhOXjIpIHRvIE8oMk4pIHdp
dGhvdXQgYmVpbmcgY29uc2VydmF0aXZlLCBhbmQgSSdtIHRyYWNraW5nIHRoaXMgaW4gWzFdLgor
CisgICAgICAgIDIuIERGRyBMb2NhbCBDU0UgaGFzIHF1YWRyYXRpYyBjb21wbGV4aXR5CisKKyAg
ICAgICAgTG9jYWwgQ1NFJ3MgY2xvYmJlcmluZyBpdGVyYXRlcyBhbGwgdGhlIGltcHVyZSBoZWFw
IHZhbHVlcyB0byByZW1vdmUgdGhlIGNsb2JiZXJlZCBvbmUuIFNpbmNlICMgb2YgaW1wdXJlIGhl
YXAgdmFsdWVzIHRlbmQgdG8gYmUgcHJvcG9ydGlvbmFsIHRvICMgb2YgREZHIG5vZGVzIHdlIHZp
c2l0ZWQsCisgICAgICAgIGVhY2ggQ1NFIGZvciBhIGJhc2ljIGJsb2NrIGdldHMgTyhOXjIpIGNv
bXBsZXhpdHkuIFRvIGF2b2lkIHRoaXMsIHdlIGludHJvZHVjZSBIdWdlTWFwLiBUaGlzIGhhcyB0
aGUgc2FtZSBpbnRlcmZhY2UgdG8gTGFyZ2VNYXAgYW5kIFNtYWxsTWFwIGluIENTRSwgYnV0IGl0
cyBjbG9iYmVyaW5nCisgICAgICAgIGltcGxlbWVudGF0aW9uIGp1c3QgY2xlYXJzIHRoZSBtYXAg
Y29tcGxldGVseS4KKworICAgICAgICBUaGlzIHBhdGNoIHJlZHVjZXMgdGhlIGNvbXBpbGF0aW9u
IHRpbWUgZnJvbSB+MTEgc2Vjb25kcyB0byB+MjAwIG1zLgorCisgICAgICAgIFsxXTogaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTk1OQorCisgICAgICAgICogZGZn
L0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJz
dHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46Om9ic2VydmVUcmFuc2l0aW9uKToK
KyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBl
Pjo6b2JzZXJ2ZVRyYW5zaXRpb25zKToKKyAgICAgICAgKiBkZmcvREZHQ1NFUGhhc2UuY3BwOgor
ICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5oOgorCiAyMDE5LTA3LTE3ICBBbnRvaW5lIFF1aW50
ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgRGlzYWJsZSBQb2ludGVyIEV2ZW50cyBw
cmlvciB0byB3YXRjaE9TIDYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAppbmRleCA4OWRhZWI5MTMzYzEyNTJi
MDAzNmRhOTBmYWQ5YjAwNTU0OTUzZDI4Li45NDdjYjBjY2UyNjJiMzNkNzM4NmZiZDE1N2RhMzk2
YmNhMTI3NzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3Ry
YWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCkBAIC00MDkzLDYgKzQwOTMsMTQgQEAgdGVt
cGxhdGU8dHlwZW5hbWUgQWJzdHJhY3RTdGF0ZVR5cGU+CiB2b2lkIEFic3RyYWN0SW50ZXJwcmV0
ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpvYnNlcnZlVHJhbnNpdGlvbigKICAgICB1bnNpZ25lZCBj
bG9iYmVyTGltaXQsIFJlZ2lzdGVyZWRTdHJ1Y3R1cmUgZnJvbSwgUmVnaXN0ZXJlZFN0cnVjdHVy
ZSB0bykKIHsKKyAgICAvLyBTdG9wIHBlcmZvcm1pbmcgcHJlY2lzZSBzdHJ1Y3R1cmUgdHJhbnNp
dGlvbiB0cmFja2luZy4KKyAgICAvLyBQcmVjaXNlIHN0cnVjdHVyZSB0cmFuc2l0aW9uIHRyYWNr
aW5nIHNob3dzIHF1YWRyYXRpYyBjb21wbGV4aXR5IGZvciAjIG9mIG5vZGVzIGluIGEgYmFzaWMg
YmxvY2suCisgICAgLy8gSWYgaXQgaXMgdG9vIGxhcmdlLCB3ZSBjb25zZXJ2YXRpdmVseSBjbG9i
YmVyIHRoZSBzdHJ1Y3R1cmVzLgorICAgIGlmIChtX3N0YXRlLmJsb2NrKCktPnNpemUoKSA+IE9w
dGlvbnM6Om1heERGR05vZGVzSW5CYXNpY0Jsb2NrRm9yUHJlY2lzZUFuYWx5c2lzKCkpIHsKKyAg
ICAgICAgY2xvYmJlclN0cnVjdHVyZXMoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAg
IEFic3RyYWN0VmFsdWU6OlRyYW5zaXRpb25PYnNlcnZlciB0cmFuc2l0aW9uT2JzZXJ2ZXIoZnJv
bSwgdG8pOwogICAgIGZvckFsbFZhbHVlcyhjbG9iYmVyTGltaXQsIHRyYW5zaXRpb25PYnNlcnZl
cik7CiAgICAgCkBAIC00MTA4LDYgKzQxMTYsMTQgQEAgdm9pZCBBYnN0cmFjdEludGVycHJldGVy
PEFic3RyYWN0U3RhdGVUeXBlPjo6b2JzZXJ2ZVRyYW5zaXRpb25zKAogICAgIGlmICh2ZWN0b3Iu
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAgICAgCisgICAgLy8gU3RvcCBwZXJmb3JtaW5n
IHByZWNpc2Ugc3RydWN0dXJlIHRyYW5zaXRpb24gdHJhY2tpbmcuCisgICAgLy8gUHJlY2lzZSBz
dHJ1Y3R1cmUgdHJhbnNpdGlvbiB0cmFja2luZyBzaG93cyBxdWFkcmF0aWMgY29tcGxleGl0eSBm
b3IgIyBvZiBub2RlcyBpbiBhIGJhc2ljIGJsb2NrLgorICAgIC8vIElmIGl0IGlzIHRvbyBsYXJn
ZSwgd2UgY29uc2VydmF0aXZlbHkgY2xvYmJlciB0aGUgc3RydWN0dXJlcy4KKyAgICBpZiAobV9z
dGF0ZS5ibG9jaygpLT5zaXplKCkgPiBPcHRpb25zOjptYXhERkdOb2Rlc0luQmFzaWNCbG9ja0Zv
clByZWNpc2VBbmFseXNpcygpKSB7CisgICAgICAgIGNsb2JiZXJTdHJ1Y3R1cmVzKCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKICAgICBBYnN0cmFjdFZhbHVlOjpUcmFuc2l0aW9uc09ic2Vy
dmVyIHRyYW5zaXRpb25zT2JzZXJ2ZXIodmVjdG9yKTsKICAgICBmb3JBbGxWYWx1ZXMoY2xvYmJl
ckxpbWl0LCB0cmFuc2l0aW9uc09ic2VydmVyKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQ1NFUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDU0VQaGFzZS5jcHAKaW5kZXggZTg5ZGFhZTQ5NTc0NWYzZjgzNTRkOTNjZmNhZDY1
MjVjYzU4MmEwMy4uNGFiNmRhYjAyNzEzYmYwYmMxZmIwYjQzODJhMjY3MTVmNGFiYjljYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQaGFzZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQaGFzZS5jcHAKQEAgLTEzNiw4ICsxMzYs
OSBAQCBjbGFzcyBJbXB1cmVNYXAgewogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAot
ICAgIHZvaWQgY2xvYmJlcihBYnN0cmFjdEhlYXAgaGVhcCkKKyAgICB2b2lkIGNsb2JiZXIoQWJz
dHJhY3RIZWFwIGhlYXAsIGJvb2wgY2xvYmJlckNvbnNlcnZhdGl2ZWx5KQogICAgIHsKKyAgICAg
ICAgYm9vbCBjb25zZXJ2YXRpdmUgPSBmYWxzZTsKICAgICAgICAgc3dpdGNoIChoZWFwLmtpbmQo
KSkgewogICAgICAgICBjYXNlIFdvcmxkOiB7CiAgICAgICAgICAgICBjbGVhcigpOwpAQCAtMTQ5
LDE1ICsxNTAsMjUgQEAgY2xhc3MgSW1wdXJlTWFwIHsKICAgICAgICAgICAgIEFTU0VSVCghaGVh
cC5wYXlsb2FkKCkuaXNUb3AoKSk7CiAgICAgICAgICAgICBBU1NFUlQoaGVhcC5wYXlsb2FkKCku
dmFsdWUoKSA9PSBoZWFwLnBheWxvYWQoKS52YWx1ZTMyKCkpOwogICAgICAgICAgICAgbV9hYnN0
cmFjdEhlYXBTdGFja01hcC5yZW1vdmUoaGVhcC5wYXlsb2FkKCkudmFsdWUzMigpKTsKLSAgICAg
ICAgICAgIGNsb2JiZXIobV9mYWxsYmFja1N0YWNrTWFwLCBoZWFwKTsKKyAgICAgICAgICAgIGlm
IChjbG9iYmVyQ29uc2VydmF0aXZlbHkpIHsKKyAgICAgICAgICAgICAgICBjb25zZXJ2YXRpdmUg
PSB0cnVlOworICAgICAgICAgICAgICAgIG1fZmFsbGJhY2tTdGFja01hcC5jbGVhcigpOworICAg
ICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgY2xvYmJlcihtX2ZhbGxiYWNrU3RhY2tN
YXAsIGhlYXApOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVs
dDoKLSAgICAgICAgICAgIGNsb2JiZXIobV9oZWFwTWFwLCBoZWFwKTsKKyAgICAgICAgICAgIGlm
IChjbG9iYmVyQ29uc2VydmF0aXZlbHkpIHsKKyAgICAgICAgICAgICAgICBjb25zZXJ2YXRpdmUg
PSB0cnVlOworICAgICAgICAgICAgICAgIG1faGVhcE1hcC5jbGVhcigpOworICAgICAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICAgICAgY2xvYmJlcihtX2hlYXBNYXAsIGhlYXApOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICNpZiAhZGVmaW5lZChOREVCVUcpCi0gICAgICAgIG1f
ZGVidWdJbXB1cmVEYXRhLnJlbW92ZUlmKFtoZWFwXShjb25zdCBIYXNoTWFwPEhlYXBMb2NhdGlv
biwgTGF6eU5vZGU+OjpLZXlWYWx1ZVBhaXJUeXBlJiBwYWlyKSAtPiBib29sIHsKKyAgICAgICAg
bV9kZWJ1Z0ltcHVyZURhdGEucmVtb3ZlSWYoW2hlYXAsIGNvbnNlcnZhdGl2ZV0oY29uc3QgSGFz
aE1hcDxIZWFwTG9jYXRpb24sIExhenlOb2RlPjo6S2V5VmFsdWVQYWlyVHlwZSYgcGFpcikgLT4g
Ym9vbCB7CisgICAgICAgICAgICBpZiAoY29uc2VydmF0aXZlKQorICAgICAgICAgICAgICAgIHJl
dHVybiBoZWFwLmtpbmQoKSA9PSBwYWlyLmtleS5oZWFwKCkua2luZCgpOwogICAgICAgICAgICAg
cmV0dXJuIGhlYXAub3ZlcmxhcHMocGFpci5rZXkuaGVhcCgpKTsKICAgICAgICAgfSk7CiAgICAg
ICAgIEFTU0VSVChtX2RlYnVnSW1wdXJlRGF0YS5zaXplKCkKQEAgLTI4NCw2ICsyOTUsNyBAQCBj
bGFzcyBMb2NhbENTRVBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgOiBQaGFzZShncmFw
aCwgImxvY2FsIGNvbW1vbiBzdWJleHByZXNzaW9uIGVsaW1pbmF0aW9uIikKICAgICAgICAgLCBt
X3NtYWxsQmxvY2soZ3JhcGgpCiAgICAgICAgICwgbV9sYXJnZUJsb2NrKGdyYXBoKQorICAgICAg
ICAsIG1faHVnZUJsb2NrKGdyYXBoKQogICAgIHsKICAgICB9CiAgICAgCkBAIC0zMDMsOCArMzE1
LDEwIEBAIGNsYXNzIExvY2FsQ1NFUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAg
CiAgICAgICAgICAgICBpZiAoYmxvY2stPnNpemUoKSA8PSBTbWFsbE1hcHM6OmNhcGFjaXR5KQog
ICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbV9zbWFsbEJsb2NrLnJ1bihibG9jayk7Ci0gICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICBlbHNlIGlmIChibG9jay0+c2l6ZSgpIDw9IE9wdGlv
bnM6Om1heERGR05vZGVzSW5CYXNpY0Jsb2NrRm9yUHJlY2lzZUFuYWx5c2lzKCkpCiAgICAgICAg
ICAgICAgICAgY2hhbmdlZCB8PSBtX2xhcmdlQmxvY2sucnVuKGJsb2NrKTsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1faHVnZUJsb2NrLnJ1bihibG9jayk7
CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHJldHVybiBjaGFuZ2VkOwpAQCAtNDAwLDcg
KzQxNCw4IEBAIGNsYXNzIExvY2FsQ1NFUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgIAogICAg
ICAgICB2b2lkIHdyaXRlKEFic3RyYWN0SGVhcCBoZWFwKQogICAgICAgICB7Ci0gICAgICAgICAg
ICBtX2ltcHVyZU1hcC5jbG9iYmVyKGhlYXApOworICAgICAgICAgICAgYm9vbCBjbG9iYmVyQ29u
c2VydmF0aXZlbHkgPSBmYWxzZTsKKyAgICAgICAgICAgIG1faW1wdXJlTWFwLmNsb2JiZXIoaGVh
cCwgY2xvYmJlckNvbnNlcnZhdGl2ZWx5KTsKICAgICAgICAgfQogICAgIAogICAgICAgICBOb2Rl
KiBhZGRQdXJlKFB1cmVWYWx1ZSB2YWx1ZSwgTm9kZSogbm9kZSkKQEAgLTQyOCw2ICs0NDMsNDkg
QEAgY2xhc3MgTG9jYWxDU0VQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgIEltcHVyZU1h
cCBtX2ltcHVyZU1hcDsKICAgICB9OwogCisgICAgLy8gVGhpcyBpcyB1c2VkIG9ubHkgZm9yIGh1
Z2UgYmFzaWMgYmxvY2suIE91ciB1c3VhbCBDU0UgaXMgcXVhZHJhdGljIGNvbXBsZXhpdHkgZm9y
ICMgb2YgREZHIG5vZGVzIGluIGEgYmFzaWMgYmxvY2suCisgICAgLy8gVGhpcyBIdWdlTWFwcyB0
ZWxscyBjb25zZXJ2YXRpdmUgcmVzdWx0cyBpbnN0ZWFkIG9mIGF2b2lkaW5nIE8oTl4yKSB3YXku
CisgICAgY2xhc3MgSHVnZU1hcHMgeworICAgIHB1YmxpYzoKKyAgICAgICAgSHVnZU1hcHMoKSA9
IGRlZmF1bHQ7CisKKyAgICAgICAgdm9pZCBjbGVhcigpCisgICAgICAgIHsKKyAgICAgICAgICAg
IG1fcHVyZU1hcC5jbGVhcigpOworICAgICAgICAgICAgbV9pbXB1cmVNYXAuY2xlYXIoKTsKKyAg
ICAgICAgfQorCisgICAgICAgIHZvaWQgd3JpdGUoQWJzdHJhY3RIZWFwIGhlYXApCisgICAgICAg
IHsKKyAgICAgICAgICAgIGJvb2wgY2xvYmJlckNvbnNlcnZhdGl2ZWx5ID0gdHJ1ZTsKKyAgICAg
ICAgICAgIG1faW1wdXJlTWFwLmNsb2JiZXIoaGVhcCwgY2xvYmJlckNvbnNlcnZhdGl2ZWx5KTsK
KyAgICAgICAgfQorCisgICAgICAgIE5vZGUqIGFkZFB1cmUoUHVyZVZhbHVlIHZhbHVlLCBOb2Rl
KiBub2RlKQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IG1fcHVyZU1hcC5h
ZGQodmFsdWUsIG5vZGUpOworICAgICAgICAgICAgaWYgKHJlc3VsdC5pc05ld0VudHJ5KQorICAg
ICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5p
dGVyYXRvci0+dmFsdWU7CisgICAgICAgIH0KKworICAgICAgICBMYXp5Tm9kZSBmaW5kUmVwbGFj
ZW1lbnQoSGVhcExvY2F0aW9uIGxvY2F0aW9uKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1
cm4gbV9pbXB1cmVNYXAuZ2V0KGxvY2F0aW9uKTsKKyAgICAgICAgfQorCisgICAgICAgIExhenlO
b2RlIGFkZEltcHVyZShjb25zdCBIZWFwTG9jYXRpb24mIGxvY2F0aW9uLCBjb25zdCBMYXp5Tm9k
ZSYgbm9kZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGNvbnN0IEltcHVyZURhdGFTbG90
KiBzbG90ID0gbV9pbXB1cmVNYXAuYWRkKGxvY2F0aW9uLCBub2RlKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gc2xvdC0+dmFsdWU7CisgICAgICAgICAgICByZXR1cm4gTGF6eU5vZGUoKTsKKyAg
ICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgSGFzaE1hcDxQdXJlVmFsdWUsIE5vZGUq
PiBtX3B1cmVNYXA7CisgICAgICAgIEltcHVyZU1hcCBtX2ltcHVyZU1hcDsKKyAgICB9OworCiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgTWFwcz4KICAgICBjbGFzcyBCbG9ja0NTRSB7CiAgICAgcHVi
bGljOgpAQCAtNTgxLDYgKzYzOSw3IEBAIGNsYXNzIExvY2FsQ1NFUGhhc2UgOiBwdWJsaWMgUGhh
c2UgewogCiAgICAgQmxvY2tDU0U8U21hbGxNYXBzPiBtX3NtYWxsQmxvY2s7CiAgICAgQmxvY2tD
U0U8TGFyZ2VNYXBzPiBtX2xhcmdlQmxvY2s7CisgICAgQmxvY2tDU0U8SHVnZU1hcHM+IG1faHVn
ZUJsb2NrOwogfTsKIAogY2xhc3MgR2xvYmFsQ1NFUGhhc2UgOiBwdWJsaWMgUGhhc2UgewpAQCAt
NjY4LDcgKzcyNyw4IEBAIGNsYXNzIEdsb2JhbENTRVBoYXNlIDogcHVibGljIFBoYXNlIHsKICAg
ICAKICAgICB2b2lkIHdyaXRlKEFic3RyYWN0SGVhcCBoZWFwKQogICAgIHsKLSAgICAgICAgbV9p
bXB1cmVEYXRhLT5hdmFpbGFibGVBdFRhaWwuY2xvYmJlcihoZWFwKTsKKyAgICAgICAgYm9vbCBj
bG9iYmVyQ29uc2VydmF0aXZlbHkgPSBmYWxzZTsKKyAgICAgICAgbV9pbXB1cmVEYXRhLT5hdmFp
bGFibGVBdFRhaWwuY2xvYmJlcihoZWFwLCBjbG9iYmVyQ29uc2VydmF0aXZlbHkpOwogICAgICAg
ICBtX3dyaXRlc1NvRmFyLmFkZChoZWFwKTsKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcHRpb25zLmgKaW5kZXggMDNhNmMyZDk5NThhZGE5ZDU1ZjRkMTRhMjRmZDZi
MDA2NjJmN2ZiZS4uOGU3M2QxYjY1NWJhMjdmNTM3MDYwMjk3M2I3NzMyMGMxNThmMzY0MCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaApAQCAtMjczLDYgKzI3Myw3IEBA
IGNvbnN0ZXhwciBib29sIGVuYWJsZVdlYkFzc2VtYmx5U3RyZWFtaW5nQXBpID0gZmFsc2U7CiAg
ICAgdihib29sLCB1c2VWYWx1ZVJlcEVsaW1pbmF0aW9uLCB0cnVlLCBOb3JtYWwsIG51bGxwdHIp
IFwKICAgICB2KGJvb2wsIHVzZUFyaXR5Rml4dXBJbmxpbmluZywgdHJ1ZSwgTm9ybWFsLCBudWxs
cHRyKSBcCiAgICAgdihib29sLCBsb2dFeGVjdXRhYmxlQWxsb2NhdGlvbiwgZmFsc2UsIE5vcm1h
bCwgbnVsbHB0cikgXAorICAgIHYodW5zaWduZWQsIG1heERGR05vZGVzSW5CYXNpY0Jsb2NrRm9y
UHJlY2lzZUFuYWx5c2lzLCAyMDAwMCwgTm9ybWFsLCAiRGlzYWJsZSBwcmVjaXNlIGJ1dCBjb3N0
bHkgYW5hbHlzaXMgYW5kIGdpdmUgY29uc2VydmF0aXZlIHJlc3VsdHMgaWYgdGhlIG51bWJlciBv
ZiBERkcgbm9kZXMgaW4gYSBibG9jayBleGNlZWRzIHRoaXMgdGhyZXNob2xkIikgXAogICAgIFwK
ICAgICB2KGJvb2wsIHVzZUNvbmN1cnJlbnRKSVQsIHRydWUsIE5vcm1hbCwgImFsbG93cyB0aGUg
REZHIC8gRlRMIGNvbXBpbGF0aW9uIGluIHRocmVhZHMgb3RoZXIgdGhhbiB0aGUgZXhlY3V0aW5n
IEpTIHRocmVhZCIpIFwKICAgICB2KHVuc2lnbmVkLCBudW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFk
cywgY29tcHV0ZU51bWJlck9mV29ya2VyVGhyZWFkcygzLCAyKSAtIDEsIE5vcm1hbCwgbnVsbHB0
cikgXAo=
</data>
<flag name="review"
          id="390330"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374648</attachid>
            <date>2019-07-22 16:02:22 -0700</date>
            <delta_ts>2019-07-22 16:02:22 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-199929-20190722160221.patch</filename>
            <type>text/plain</type>
            <size>15068</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NzAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
YTMzZTJjMmM3YzY3MWI1ODkxNDE0MWU5OTBlYmI2NTFhNTJkZTAxLi4wYzg4ZmQwYWJmODljOGJm
YjA5ZWE4YTI1NTJkMGQ3MTM3NWJlODM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NiBAQAorMjAxOS0wNy0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIE1ha2UgREZHIExvY2FsIENTRSBhbmQgQUkgY29uc2VydmF0aXZl
IGZvciBodWdlIGJhc2ljIGJsb2NrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTk5MjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ5MzA5OTI0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIENOTiBw
YWdlLCB0aGUgbWFpbiB0aHJlYWQgaGFuZ3Mgc2V2ZXJhbCBzZWNvbmRzLiBPbiBsZXNzLXBvd2Vy
ZnVsIGRldmljZXMgKGxpa2UgaVBob25lNyksIGl0IGhhbmdzIGZvciB+MTEgc2Vjb25kcy4gVGhp
cyBpcyBub3QgYW4gYWNjZXB0YWJsZSBiZWhhdmlvci4KKyAgICAgICAgVGhlIHJlYXNvbiBvZiB0
aGlzIGlzIHRoYXQgdGhlIERGRyBjb21waWxlciB0YWtlcyB0b28gbG9uZyB0aW1lIGluIHRoZSBj
b21waWxhdGlvbiBmb3IgYSBwYXJ0aWN1bGFyIGZ1bmN0aW9uLiBJdCB0YWtlcyA4NzY1IG1zIGV2
ZW4gaW4gcG93ZXJmdWwgeDY0IG1hY2hpbmUhCisgICAgICAgIERGRyBjb21waWxlciBpcyBjb25j
dXJyZW50IG9uZS4gSG93ZXZlciwgd2hlbiBHQyByZXF1aXJlcyBhbGwgdGhlIHBlcmlwaGVyYWwg
dGhyZWFkcyB0byBiZSBzdG9wcGVkLCB0aGUgbWFpbiB0aHJlYWQgbmVlZHMgdG8gd2FpdCBmb3Ig
dGhlIERGRyBjb21waWxlcidzIHN0b3AuCisgICAgICAgIERGRyBjb21waWxlciBzdG9wcyBhdCBH
QyBzYWZlcG9pbnRzLCBhbmQgdGhleSBhcmUgaW5zZXJ0ZWQgYmV0d2VlbiBERkcgcGhhc2VzLiBT
bywgaWYgc29tZSBvZiBERkcgcGhhc2VzIHRha2UgdmVyeSBsb25nIHRpbWUsIHRoZSBtYWluIHRo
cmVhZCBpcyBibG9ja2VkIGR1cmluZyB0aGF0LgorICAgICAgICBBcyBhIHJlc3VsdCwgdGhlIG1h
aW4gdGhyZWFkIGlzIGJsb2NrZWQgZHVlIHRvIHRoaXMgcGF0aG9sb2dpY2FsIGNvbXBpbGF0aW9u
LgorCisgICAgICAgIEJ5IG1lYXN1cmluZyB0aGUgdGltZSB0YWtlbiBpbiBlYWNoIERGRyBwaGFz
ZSwgd2UgZm91bmQgdGhhdCBvdXIgQUkgYW5kIENTRSBwaGFzZSBoYXZlIGEgcHJvYmxlbSBoYXZp
bmcgcXVhZHJhdGljIGNvbXBsZXhpdHkgZm9yICMgb2YgREZHIG5vZGVzIGluIGEgYmFzaWMgYmxv
Y2suCisgICAgICAgIEluIHRoaXMgcGF0Y2gsIHdlIGFkZCBhIHRocmVzaG9sZCBmb3IgIyBvZiBE
Rkcgbm9kZXMgaW4gYSBiYXNpYyBibG9jay4gSWYgYSBiYXNpYyBibG9jayBleGNlZWRzIHRoaXMg
dGhyZXNob2xkLCB3ZSB1c2UgY29uc2VydmF0aXZlIGJ1dCBPKDEpIGFsZ29yaXRobSBmb3IgQUkg
YW5kIExvY2FsIENTRSBwaGFzZS4KKyAgICAgICAgV2UgZGlkIG5vdCBhZGQgdGhpcyB0aHJlc2hv
bGQgZm9yIEdsb2JhbCBDU0Ugc2luY2UgRlRMIGhhcyBhbm90aGVyIGJ5dGVjb2RlIGNvc3QgdGhy
ZXNob2xkIHdoaWNoIHByZXZlbnRzIHVzIGZyb20gY29tcGlsaW5nIHRoZSBsYXJnZSBmdW5jdGlv
bnMuIEJ1dCBvbiB0aGUgb3RoZXIgaGFuZCwKKyAgICAgICAgREZHIHNob3VsZCBjb21waWxlIHRo
ZW0gYmVjYXVzZSBERkcgaXMgaW50ZW5kZWQgdG8gYmUgYSBmYXN0IGNvbXBpbGVyIGV2ZW4gZm9y
IGEgYml0IGxhcmdlciBDb2RlQmxvY2suCisKKyAgICAgICAgV2UgZmlyc3QgYXR0ZW1wdGVkIHRv
IHJlZHVjZSB0aGUgdGhyZXNob2xkIGZvciBERkcgY29tcGlsYXRpb24uIFdlIGFyZSB1c2luZyAx
MDAwMDAgYnl0ZWNvZGUgY29zdCBmb3IgREZHIGNvbXBpbGF0aW9uIGFuZCBpdCBpcyB2ZXJ5IGxh
cmdlLiBIb3dldmVyLCB3ZSBmb3VuZCB0aGF0IGJ5dGVjb2RlIGNvc3QKKyAgICAgICAgaXMgbm90
IHRoZSBwcm9ibGVtIGluIENOTiBwYWdlLiBUaGUgcHJvYmxlbWF0aWMgZnVuY3Rpb24gaGFzIDY3
OTA0IGNvc3QsIGFuZCBpdCB0YWtlcyA4NzY1IG1zIGluIHg2NCBtYWNoaW5lLiBIb3dldmVyLCBK
ZXRTdHJlYW0yL29jdGFuZS16bGliIGhhcyA2MTk0OSBmdW5jdGlvbiBhbmQgaXQgb25seSB0YWtl
cworICAgICAgICB+NDAwIG1zLiBUaGlzIGRpZmZlcmVuY2UgY29tZXMgZnJvbSB0aGUgIyBvZiBE
Rkcgbm9kZXMgaW4gYSBiYXNpYyBibG9jay4gVGhlIHByb2JsZW1hdGljIGZ1bmN0aW9uIGhhcyA0
MzI5NyBERkcgbm9kZXMgaW4gb25lIGJhc2ljIGJsb2NrIGFuZCBpdCBtYWtlcyBBSSBhbmQgTG9j
YWwgQ1NFIHN1cGVyIHRpbWUtY29uc3VtaW5nLgorICAgICAgICBSYXRoZXIgdGhhbiByZWx5aW5n
IG9uIHRoZSBieXRlY29kZSBjb3N0IHdoaWNoIGEgYml0IGluZGlyZWN0bHkgcmVsYXRlZCB0byB0
aGlzIHBhdGhvbG9naWNhbCBjb21waWxlLXRpbWUsIHdlIHNob3VsZCBsb29rIGludG8gIyBvZiBE
Rkcgbm9kZXMgaW4gYSBiYXNpYyBibG9jayB3aGljaCBpcyBtb3JlIGRpcmVjdGx5CisgICAgICAg
IHJlbGF0ZWQgdG8gdGhpcyBwcm9ibGVtLiBBbmQgd2UgYWxzbyBmb3VuZCB0aGF0IDYxOTQ5J3Mg
T2N0YW5lLXpsaWIgZnVuY3Rpb24gaXMgdmVyeSBjcml0aWNhbCBmb3IgcGVyZm9ybWFuY2UuIFRo
aXMgZmFjdCBtYWtlcyBhIGJpdCBoYXJkIHRvIHBpY2sgYSByaWdodCB0aHJlc2hvbGQ6IDY3OTA0
IGNhdXNlcyB0aGUgcHJvYmxlbSwKKyAgICAgICAgYW5kIDYxOTQ5IG11c3QgYmUgY29tcGlsZWQu
IFRoaXMgaXMgd2h5IHRoaXMgcGF0Y2ggaXMgaW50cm9kdWNpbmcgY29uc2VydmF0aXZlIGFuYWx5
c2lzIGluc3RlYWQgb2YgYWRqdXN0aW5nIHRoZSB0aHJlc2hvbGQgZm9yIERGRy4KKworICAgICAg
ICBUaGlzIHBhdGNoIGhhcyB0d28gY2hhbmdlcy4KKworICAgICAgICAxLiBERkcgQUkgaGFzIHN0
cnVjdHVyZSB0cmFuc2l0aW9uIHRyYWNraW5nIHdoaWNoIGhhcyBxdWFkcmF0aWMgY29tcGxleGl0
eQorCisgICAgICAgIFN0cnVjdHVyZSB0cmFuc2l0aW9uIHRyYWNraW5nIHRha2VzIHZlcnkgbG9u
ZyB0aW1lIHNpbmNlIGl0cyBjb21wbGV4aXR5IGlzIE8oTl4yKSB3aGVyZSBOIGlzICMgb2YgREZH
IG5vZGVzIGluIGEgYmFzaWMgYmxvY2suCisgICAgICAgIENOTiBoYXMgdmVyeSBwYXRob2xvZ2lj
YWwgc2NyaXB0IGFuZCBpdCBzaG93cyA0MzI5NyBERkcgbm9kZXMuIFdlIHNob3VsZCByZWR1Y2Ug
dGhlIGNvbXBsZXhpdHkgb2YgdGhpcyBhbGdvcml0aG0uCisgICAgICAgIEZvciBub3csIHdlIGp1
c3Qgc2F5ICJzdHJ1Y3R1cmVzIGFyZSBjbG9iYmVyZWQiIGlmICMgb2YgREZHIG5vZGVzIGluIGEg
YmFzaWMgYmxvY2sgZXhjZWVkcyB0aGUgdGhyZXNob2xkICgyMDAwMCkuCisgICAgICAgIFdlIGNv
dWxkIGltcHJvdmUgdGhlIGN1cnJlbnQgYWxnb3JpdGhtIGZyb20gTyhOXjIpIHRvIE8oMk4pIHdp
dGhvdXQgYmVpbmcgY29uc2VydmF0aXZlLCBhbmQgSSdtIHRyYWNraW5nIHRoaXMgaW4gWzFdLgor
CisgICAgICAgIDIuIERGRyBMb2NhbCBDU0UgaGFzIHF1YWRyYXRpYyBjb21wbGV4aXR5CisKKyAg
ICAgICAgTG9jYWwgQ1NFJ3MgY2xvYmJlcmluZyBpdGVyYXRlcyBhbGwgdGhlIGltcHVyZSBoZWFw
IHZhbHVlcyB0byByZW1vdmUgdGhlIGNsb2JiZXJlZCBvbmUuIFNpbmNlICMgb2YgaW1wdXJlIGhl
YXAgdmFsdWVzIHRlbmQgdG8gYmUgcHJvcG9ydGlvbmFsIHRvICMgb2YgREZHIG5vZGVzIHdlIHZp
c2l0ZWQsCisgICAgICAgIGVhY2ggQ1NFIGZvciBhIGJhc2ljIGJsb2NrIGdldHMgTyhOXjIpIGNv
bXBsZXhpdHkuIFRvIGF2b2lkIHRoaXMsIHdlIGludHJvZHVjZSBIdWdlTWFwLiBUaGlzIGhhcyB0
aGUgc2FtZSBpbnRlcmZhY2UgdG8gTGFyZ2VNYXAgYW5kIFNtYWxsTWFwIGluIENTRSwgYnV0IGl0
cyBjbG9iYmVyaW5nCisgICAgICAgIGltcGxlbWVudGF0aW9uIGp1c3QgY2xlYXJzIHRoZSBtYXAg
Y29tcGxldGVseS4gV2UgY2FuIGZ1cnRoZXIgbWFrZSB0aGlzIE8oTikgd2l0aG91dCBpbnRyb2R1
Y2luZyBjb25zZXJ2YXRpdmUgYmVoYXZpb3IgYnkgdXNpbmcgZXBvY2hzLiBGb3Igbm93LCB3ZSBk
byBub3Qgc2VlIHN1Y2ggYSBodWdlIGJhc2ljIGJsb2NrIGluCisgICAgICAgIEpldFN0cmVhbTIg
YW5kIFNwZWVkb21ldGVyMiBzbyBJJ2xsIHRyYWNrIGl0IGluIGEgc2VwYXJhdGUgYnVnWzJdLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggcmVkdWNlcyB0aGUgY29tcGlsYXRpb24gdGltZSBmcm9tIH4x
MSBzZWNvbmRzIHRvIH4yMDAgbXMuCisKKyAgICAgICAgWzFdOiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTU5CisgICAgICAgIFsyXTogaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDAxNAorCisgICAgICAgICogZGZnL0RGR0Fic3Ry
YWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRl
cnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46Om9ic2VydmVUcmFuc2l0aW9uKToKKyAgICAgICAg
KEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6b2JzZXJ2
ZVRyYW5zaXRpb25zKToKKyAgICAgICAgKiBkZmcvREZHQ1NFUGhhc2UuY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvT3B0aW9ucy5oOgorCiAyMDE5LTA3LTIyICBaaGlmZWkgRmFuZyAgPHpoaWZlaV9m
YW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBOZWVkIHRvIHNraXAgdGVzdCBjYWNoZSBkaXJlY3Rv
cnkgZGF0YSB2YXVsdCBmb3Igbm9uIGludGVybmFsIGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5k
ZXggODlkYWViOTEzM2MxMjUyYjAwMzZkYTkwZmFkOWIwMDU1NDk1M2QyOC4uOGI4NDU5MmU0OTQ0
M2RjMjRmMTk0M2I0NzY1MjA2ZTg2MDNlMzI3MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtNDA5
Myw2ICs0MDkzLDE0IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEFic3RyYWN0U3RhdGVUeXBlPgogdm9p
ZCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6b2JzZXJ2ZVRyYW5zaXRp
b24oCiAgICAgdW5zaWduZWQgY2xvYmJlckxpbWl0LCBSZWdpc3RlcmVkU3RydWN0dXJlIGZyb20s
IFJlZ2lzdGVyZWRTdHJ1Y3R1cmUgdG8pCiB7CisgICAgLy8gU3RvcCBwZXJmb3JtaW5nIHByZWNp
c2Ugc3RydWN0dXJlIHRyYW5zaXRpb24gdHJhY2tpbmcuCisgICAgLy8gUHJlY2lzZSBzdHJ1Y3R1
cmUgdHJhbnNpdGlvbiB0cmFja2luZyBzaG93cyBxdWFkcmF0aWMgY29tcGxleGl0eSBmb3IgIyBv
ZiBub2RlcyBpbiBhIGJhc2ljIGJsb2NrLgorICAgIC8vIElmIGl0IGlzIHRvbyBsYXJnZSwgd2Ug
Y29uc2VydmF0aXZlbHkgY2xvYmJlciBhbGwgdGhlIHN0cnVjdHVyZXMuCisgICAgaWYgKG1fc3Rh
dGUuYmxvY2soKS0+c2l6ZSgpID4gT3B0aW9uczo6bWF4REZHTm9kZXNJbkJhc2ljQmxvY2tGb3JQ
cmVjaXNlQW5hbHlzaXMoKSkgeworICAgICAgICBjbG9iYmVyU3RydWN0dXJlcygpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCiAgICAgQWJzdHJhY3RWYWx1ZTo6VHJhbnNpdGlvbk9ic2VydmVy
IHRyYW5zaXRpb25PYnNlcnZlcihmcm9tLCB0byk7CiAgICAgZm9yQWxsVmFsdWVzKGNsb2JiZXJM
aW1pdCwgdHJhbnNpdGlvbk9ic2VydmVyKTsKICAgICAKQEAgLTQxMDgsNiArNDExNiwxNCBAQCB2
b2lkIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpvYnNlcnZlVHJhbnNp
dGlvbnMoCiAgICAgaWYgKHZlY3Rvci5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKICAgICAK
KyAgICAvLyBTdG9wIHBlcmZvcm1pbmcgcHJlY2lzZSBzdHJ1Y3R1cmUgdHJhbnNpdGlvbiB0cmFj
a2luZy4KKyAgICAvLyBQcmVjaXNlIHN0cnVjdHVyZSB0cmFuc2l0aW9uIHRyYWNraW5nIHNob3dz
IHF1YWRyYXRpYyBjb21wbGV4aXR5IGZvciAjIG9mIG5vZGVzIGluIGEgYmFzaWMgYmxvY2suCisg
ICAgLy8gSWYgaXQgaXMgdG9vIGxhcmdlLCB3ZSBjb25zZXJ2YXRpdmVseSBjbG9iYmVyIGFsbCB0
aGUgc3RydWN0dXJlcy4KKyAgICBpZiAobV9zdGF0ZS5ibG9jaygpLT5zaXplKCkgPiBPcHRpb25z
OjptYXhERkdOb2Rlc0luQmFzaWNCbG9ja0ZvclByZWNpc2VBbmFseXNpcygpKSB7CisgICAgICAg
IGNsb2JiZXJTdHJ1Y3R1cmVzKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBBYnN0
cmFjdFZhbHVlOjpUcmFuc2l0aW9uc09ic2VydmVyIHRyYW5zaXRpb25zT2JzZXJ2ZXIodmVjdG9y
KTsKICAgICBmb3JBbGxWYWx1ZXMoY2xvYmJlckxpbWl0LCB0cmFuc2l0aW9uc09ic2VydmVyKTsK
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1NFUGhhc2Uu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQaGFzZS5jcHAKaW5kZXggZTg5
ZGFhZTQ5NTc0NWYzZjgzNTRkOTNjZmNhZDY1MjVjYzU4MmEwMy4uOWQ5YWUzMTRhOTgwN2Y0ZDNj
NDZmMjE2ZWE0MTY4MzdkZDhlMmY4NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDU0VQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
U0VQaGFzZS5jcHAKQEAgLTEzNiw3ICsxMzYsNyBAQCBjbGFzcyBJbXB1cmVNYXAgewogICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAotICAgIHZvaWQgY2xvYmJlcihBYnN0cmFjdEhlYXAg
aGVhcCkKKyAgICB2b2lkIGNsb2JiZXIoQWJzdHJhY3RIZWFwIGhlYXAsIGJvb2wgY2xvYmJlckNv
bnNlcnZhdGl2ZWx5KQogICAgIHsKICAgICAgICAgc3dpdGNoIChoZWFwLmtpbmQoKSkgewogICAg
ICAgICBjYXNlIFdvcmxkOiB7CkBAIC0xNDksMTUgKzE0OSw0NSBAQCBjbGFzcyBJbXB1cmVNYXAg
ewogICAgICAgICAgICAgQVNTRVJUKCFoZWFwLnBheWxvYWQoKS5pc1RvcCgpKTsKICAgICAgICAg
ICAgIEFTU0VSVChoZWFwLnBheWxvYWQoKS52YWx1ZSgpID09IGhlYXAucGF5bG9hZCgpLnZhbHVl
MzIoKSk7CiAgICAgICAgICAgICBtX2Fic3RyYWN0SGVhcFN0YWNrTWFwLnJlbW92ZShoZWFwLnBh
eWxvYWQoKS52YWx1ZTMyKCkpOwotICAgICAgICAgICAgY2xvYmJlcihtX2ZhbGxiYWNrU3RhY2tN
YXAsIGhlYXApOworICAgICAgICAgICAgaWYgKGNsb2JiZXJDb25zZXJ2YXRpdmVseSkKKyAgICAg
ICAgICAgICAgICBtX2ZhbGxiYWNrU3RhY2tNYXAuY2xlYXIoKTsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICBjbG9iYmVyKG1fZmFsbGJhY2tTdGFja01hcCwgaGVhcCk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAg
Y2xvYmJlcihtX2hlYXBNYXAsIGhlYXApOworICAgICAgICAgICAgaWYgKGNsb2JiZXJDb25zZXJ2
YXRpdmVseSkKKyAgICAgICAgICAgICAgICBtX2hlYXBNYXAuY2xlYXIoKTsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICBjbG9iYmVyKG1faGVhcE1hcCwgaGVhcCk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogI2lmICFkZWZpbmVkKE5ERUJVRykKLSAgICAgICAgbV9k
ZWJ1Z0ltcHVyZURhdGEucmVtb3ZlSWYoW2hlYXBdKGNvbnN0IEhhc2hNYXA8SGVhcExvY2F0aW9u
LCBMYXp5Tm9kZT46OktleVZhbHVlUGFpclR5cGUmIHBhaXIpIC0+IGJvb2wgeworICAgICAgICBt
X2RlYnVnSW1wdXJlRGF0YS5yZW1vdmVJZihbaGVhcCwgY2xvYmJlckNvbnNlcnZhdGl2ZWx5LCB0
aGlzXShjb25zdCBIYXNoTWFwPEhlYXBMb2NhdGlvbiwgTGF6eU5vZGU+OjpLZXlWYWx1ZVBhaXJU
eXBlJiBwYWlyKSAtPiBib29sIHsKKyAgICAgICAgICAgIHN3aXRjaCAoaGVhcC5raW5kKCkpIHsK
KyAgICAgICAgICAgIGNhc2UgV29ybGQ6CisgICAgICAgICAgICBjYXNlIFNpZGVTdGF0ZToKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgU3RhY2s6IHsKKyAgICAgICAg
ICAgICAgICBpZiAoIWNsb2JiZXJDb25zZXJ2YXRpdmVseSkKKyAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgaWYgKHBhaXIua2V5LmhlYXAoKS5raW5kKCkgPT0gU3Rh
Y2spIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBpdGVyYXRvciA9IG1fYWJzdHJhY3RIZWFw
U3RhY2tNYXAuZmluZChwYWlyLmtleS5oZWFwKCkucGF5bG9hZCgpLnZhbHVlMzIoKSk7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChpdGVyYXRvciAhPSBtX2Fic3RyYWN0SGVhcFN0YWNrTWFwLmVu
ZCgpICYmIGl0ZXJhdG9yLT52YWx1ZS0+a2V5ID09IHBhaXIua2V5KQorICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICBkZWZhdWx0OiB7CisgICAgICAgICAgICAgICAgaWYgKCFjbG9iYmVyQ29u
c2VydmF0aXZlbHkpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IEFic3RyYWN0SGVhcEtpbmQga2luZCA9IHBhaXIua2V5LmhlYXAoKS5raW5kKCk7CisgICAgICAg
ICAgICAgICAgaWYgKGtpbmQgIT0gV29ybGQgJiYga2luZCAhPSBTaWRlU3RhdGUgJiYga2luZCAh
PSBTdGFjaykKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1
cm4gaGVhcC5vdmVybGFwcyhwYWlyLmtleS5oZWFwKCkpOwogICAgICAgICB9KTsKICAgICAgICAg
QVNTRVJUKG1fZGVidWdJbXB1cmVEYXRhLnNpemUoKQpAQCAtMjg0LDYgKzMxNCw3IEBAIGNsYXNz
IExvY2FsQ1NFUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICA6IFBoYXNlKGdyYXBoLCAi
bG9jYWwgY29tbW9uIHN1YmV4cHJlc3Npb24gZWxpbWluYXRpb24iKQogICAgICAgICAsIG1fc21h
bGxCbG9jayhncmFwaCkKICAgICAgICAgLCBtX2xhcmdlQmxvY2soZ3JhcGgpCisgICAgICAgICwg
bV9odWdlQmxvY2soZ3JhcGgpCiAgICAgewogICAgIH0KICAgICAKQEAgLTMwMyw4ICszMzQsMTAg
QEAgY2xhc3MgTG9jYWxDU0VQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIGlmIChibG9jay0+c2l6ZSgpIDw9IFNtYWxsTWFwczo6Y2FwYWNpdHkpCiAgICAg
ICAgICAgICAgICAgY2hhbmdlZCB8PSBtX3NtYWxsQmxvY2sucnVuKGJsb2NrKTsKLSAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIGVsc2UgaWYgKGJsb2NrLT5zaXplKCkgPD0gT3B0aW9uczo6
bWF4REZHTm9kZXNJbkJhc2ljQmxvY2tGb3JQcmVjaXNlQW5hbHlzaXMoKSkKICAgICAgICAgICAg
ICAgICBjaGFuZ2VkIHw9IG1fbGFyZ2VCbG9jay5ydW4oYmxvY2spOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gbV9odWdlQmxvY2sucnVuKGJsb2NrKTsKICAg
ICAgICAgfQogICAgICAgICAKICAgICAgICAgcmV0dXJuIGNoYW5nZWQ7CkBAIC00MDAsNyArNDMz
LDggQEAgY2xhc3MgTG9jYWxDU0VQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgCiAgICAgICAg
IHZvaWQgd3JpdGUoQWJzdHJhY3RIZWFwIGhlYXApCiAgICAgICAgIHsKLSAgICAgICAgICAgIG1f
aW1wdXJlTWFwLmNsb2JiZXIoaGVhcCk7CisgICAgICAgICAgICBib29sIGNsb2JiZXJDb25zZXJ2
YXRpdmVseSA9IGZhbHNlOworICAgICAgICAgICAgbV9pbXB1cmVNYXAuY2xvYmJlcihoZWFwLCBj
bG9iYmVyQ29uc2VydmF0aXZlbHkpOwogICAgICAgICB9CiAgICAgCiAgICAgICAgIE5vZGUqIGFk
ZFB1cmUoUHVyZVZhbHVlIHZhbHVlLCBOb2RlKiBub2RlKQpAQCAtNDI4LDYgKzQ2Miw1MiBAQCBj
bGFzcyBMb2NhbENTRVBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgSW1wdXJlTWFwIG1f
aW1wdXJlTWFwOwogICAgIH07CiAKKyAgICAvLyBUaGlzIGlzIHVzZWQgb25seSBmb3IgaHVnZSBi
YXNpYyBibG9ja3MuIE91ciB1c3VhbCBDU0UgaXMgcXVhZHJhdGljIGNvbXBsZXhpdHkgZm9yICMg
b2YgREZHIG5vZGVzIGluIGEgYmFzaWMgYmxvY2suCisgICAgLy8gSHVnZU1hcHMgbW9kZWwgcmVz
dWx0cyBjb25zZXJ2YXRpdmVseSB0byBhdm9pZCBhbiBPKE5eMikgYWxnb3JpdGhtLiBJbiBwYXJ0
aWN1bGFyLCB3ZSBjbGVhciBhbGwgdGhlIHNsb3RzIG9mIHRoZSBzcGVjaWZpZWQgaGVhcCBraW5k
CisgICAgLy8gaW4gSW1wdXJlTWFwIGluc3RlYWQgb2YgaXRlcmF0aW5nIHNsb3RzIGFuZCByZW1v
dmluZyBhIG1hdGNoZWQgc2xvdC4gVGhpcyBjaGFuZ2UgbWFrZXMgdGhlIGNvbXBsZXhpdHkgTyhO
KS4KKyAgICAvLyBGSVhNRTogV2UgY2FuIG1ha2UgTGFyZ2VNYXAgTyhOKSB3aXRob3V0IGludHJv
ZHVjaW5nIGNvbnNlcnZhdGl2ZSBiZWhhdmlvciBpZiB3ZSB0cmFjayBjbG9iYmVyaW5nIGJ5IGhp
ZXJhcmNoaWNhbCBlcG9jaHMuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMDAxNAorICAgIGNsYXNzIEh1Z2VNYXBzIHsKKyAgICBwdWJsaWM6CisgICAg
ICAgIEh1Z2VNYXBzKCkgPSBkZWZhdWx0OworCisgICAgICAgIHZvaWQgY2xlYXIoKQorICAgICAg
ICB7CisgICAgICAgICAgICBtX3B1cmVNYXAuY2xlYXIoKTsKKyAgICAgICAgICAgIG1faW1wdXJl
TWFwLmNsZWFyKCk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHdyaXRlKEFic3RyYWN0SGVh
cCBoZWFwKQorICAgICAgICB7CisgICAgICAgICAgICBib29sIGNsb2JiZXJDb25zZXJ2YXRpdmVs
eSA9IHRydWU7CisgICAgICAgICAgICBtX2ltcHVyZU1hcC5jbG9iYmVyKGhlYXAsIGNsb2JiZXJD
b25zZXJ2YXRpdmVseSk7CisgICAgICAgIH0KKworICAgICAgICBOb2RlKiBhZGRQdXJlKFB1cmVW
YWx1ZSB2YWx1ZSwgTm9kZSogbm9kZSkKKyAgICAgICAgeworICAgICAgICAgICAgYXV0byByZXN1
bHQgPSBtX3B1cmVNYXAuYWRkKHZhbHVlLCBub2RlKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQu
aXNOZXdFbnRyeSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAg
IHJldHVybiByZXN1bHQuaXRlcmF0b3ItPnZhbHVlOworICAgICAgICB9CisKKyAgICAgICAgTGF6
eU5vZGUgZmluZFJlcGxhY2VtZW50KEhlYXBMb2NhdGlvbiBsb2NhdGlvbikKKyAgICAgICAgewor
ICAgICAgICAgICAgcmV0dXJuIG1faW1wdXJlTWFwLmdldChsb2NhdGlvbik7CisgICAgICAgIH0K
KworICAgICAgICBMYXp5Tm9kZSBhZGRJbXB1cmUoY29uc3QgSGVhcExvY2F0aW9uJiBsb2NhdGlv
biwgY29uc3QgTGF6eU5vZGUmIG5vZGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChjb25z
dCBJbXB1cmVEYXRhU2xvdCogc2xvdCA9IG1faW1wdXJlTWFwLmFkZChsb2NhdGlvbiwgbm9kZSkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIHNsb3QtPnZhbHVlOworICAgICAgICAgICAgcmV0dXJu
IExhenlOb2RlKCk7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIEhhc2hNYXA8
UHVyZVZhbHVlLCBOb2RlKj4gbV9wdXJlTWFwOworICAgICAgICBJbXB1cmVNYXAgbV9pbXB1cmVN
YXA7CisgICAgfTsKKwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1hcHM+CiAgICAgY2xhc3MgQmxv
Y2tDU0UgewogICAgIHB1YmxpYzoKQEAgLTU4MSw2ICs2NjEsNyBAQCBjbGFzcyBMb2NhbENTRVBo
YXNlIDogcHVibGljIFBoYXNlIHsKIAogICAgIEJsb2NrQ1NFPFNtYWxsTWFwcz4gbV9zbWFsbEJs
b2NrOwogICAgIEJsb2NrQ1NFPExhcmdlTWFwcz4gbV9sYXJnZUJsb2NrOworICAgIEJsb2NrQ1NF
PEh1Z2VNYXBzPiBtX2h1Z2VCbG9jazsKIH07CiAKIGNsYXNzIEdsb2JhbENTRVBoYXNlIDogcHVi
bGljIFBoYXNlIHsKQEAgLTY2OCw3ICs3NDksOCBAQCBjbGFzcyBHbG9iYWxDU0VQaGFzZSA6IHB1
YmxpYyBQaGFzZSB7CiAgICAgCiAgICAgdm9pZCB3cml0ZShBYnN0cmFjdEhlYXAgaGVhcCkKICAg
ICB7Ci0gICAgICAgIG1faW1wdXJlRGF0YS0+YXZhaWxhYmxlQXRUYWlsLmNsb2JiZXIoaGVhcCk7
CisgICAgICAgIGJvb2wgY2xvYmJlckNvbnNlcnZhdGl2ZWx5ID0gZmFsc2U7CisgICAgICAgIG1f
aW1wdXJlRGF0YS0+YXZhaWxhYmxlQXRUYWlsLmNsb2JiZXIoaGVhcCwgY2xvYmJlckNvbnNlcnZh
dGl2ZWx5KTsKICAgICAgICAgbV93cml0ZXNTb0Zhci5hZGQoaGVhcCk7CiAgICAgfQogICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCmluZGV4IDAzYTZjMmQ5OTU4YWRh
OWQ1NWY0ZDE0YTI0ZmQ2YjAwNjYyZjdmYmUuLjhlNzNkMWI2NTViYTI3ZjUzNzA2MDI5NzNiNzcz
MjBjMTU4ZjM2NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09w
dGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKQEAg
LTI3Myw2ICsyNzMsNyBAQCBjb25zdGV4cHIgYm9vbCBlbmFibGVXZWJBc3NlbWJseVN0cmVhbWlu
Z0FwaSA9IGZhbHNlOwogICAgIHYoYm9vbCwgdXNlVmFsdWVSZXBFbGltaW5hdGlvbiwgdHJ1ZSwg
Tm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihib29sLCB1c2VBcml0eUZpeHVwSW5saW5pbmcsIHRy
dWUsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwgbG9nRXhlY3V0YWJsZUFsbG9jYXRp
b24sIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKKyAgICB2KHVuc2lnbmVkLCBtYXhERkdOb2Rl
c0luQmFzaWNCbG9ja0ZvclByZWNpc2VBbmFseXNpcywgMjAwMDAsIE5vcm1hbCwgIkRpc2FibGUg
cHJlY2lzZSBidXQgY29zdGx5IGFuYWx5c2lzIGFuZCBnaXZlIGNvbnNlcnZhdGl2ZSByZXN1bHRz
IGlmIHRoZSBudW1iZXIgb2YgREZHIG5vZGVzIGluIGEgYmxvY2sgZXhjZWVkcyB0aGlzIHRocmVz
aG9sZCIpIFwKICAgICBcCiAgICAgdihib29sLCB1c2VDb25jdXJyZW50SklULCB0cnVlLCBOb3Jt
YWwsICJhbGxvd3MgdGhlIERGRyAvIEZUTCBjb21waWxhdGlvbiBpbiB0aHJlYWRzIG90aGVyIHRo
YW4gdGhlIGV4ZWN1dGluZyBKUyB0aHJlYWQiKSBcCiAgICAgdih1bnNpZ25lZCwgbnVtYmVyT2ZE
RkdDb21waWxlclRocmVhZHMsIGNvbXB1dGVOdW1iZXJPZldvcmtlclRocmVhZHMoMywgMikgLSAx
LCBOb3JtYWwsIG51bGxwdHIpIFwKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCAyZjk5NzAwOWYxZGE4YTYzNzhiODZiNjRhOWNkNmUzMzUyMjk5MDg1
Li40ODk2MTA2MTZjNzM2ZDQ5ZWViOTgyMmRkMTE1MDRkMTVkYTZhODA1IDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIw
MTktMDctMjIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBb
SlNDXSBNYWtlIERGRyBMb2NhbCBDU0UgYW5kIEFJIGNvbnNlcnZhdGl2ZSBmb3IgaHVnZSBiYXNp
YyBibG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk5OTI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBTY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzOgorCiAyMDE5LTA3LTIyICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFtXSzFdIFVJV2Vi
VmlldyBhbHdheXMganVtcHMgdG8gdGhlIHRvcCBsZWZ0IGNvcm5lciB3aGVuIHNjcm9sbGluZyB0
byByZXZlYWwgdGhlIHNlbGVjdGlvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9ydW4tanNj
LXN0cmVzcy10ZXN0cyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKaW5kZXgg
ZWVhMTdmYmZjMTk5YzFiNjE0ZjRiNmM3MzA5MjY2NTY4OGQwMmQ2NS4uOWQ3N2Y1ODI3OThjMGYw
NWRmYWEyOTk0YzY1YjVkYjA3MzMwY2RmMSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9ydW4t
anNjLXN0cmVzcy10ZXN0cworKysgYi9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3Rz
CkBAIC00OTIsNyArNDkyLDcgQEAgRUFHRVJfT1BUSU9OUyA9IFsiLS10aHJlc2hvbGRGb3JKSVRB
ZnRlcldhcm1VcD0xMCIsICItLXRocmVzaG9sZEZvckpJVFNvb249MTAiLAogIyBOT1RFOiBUZXN0
cyByZWx5IG9uIHRoaXMgdXNpbmcgc2NyaWJibGVGcmVlQ2VsbHMuCiBOT19DSklUX09QVElPTlMg
PSBbIi0tdXNlQ29uY3VycmVudEpJVD1mYWxzZSIsICItLXRocmVzaG9sZEZvckpJVEFmdGVyV2Fy
bVVwPTEwMCIsICItLXNjcmliYmxlRnJlZUNlbGxzPXRydWUiXQogQjNPMV9PUFRJT05TID0gWyIt
LWRlZmF1bHRCM09wdExldmVsPTEiXQotQjNPMF9PUFRJT05TID0gWyItLWRlZmF1bHRCM09wdExl
dmVsPTAiXQorQjNPMF9PUFRJT05TID0gWyItLW1heERGR05vZGVzSW5CYXNpY0Jsb2NrRm9yUHJl
Y2lzZUFuYWx5c2lzPTEwMCIsICItLWRlZmF1bHRCM09wdExldmVsPTAiXQogRlRMX09QVElPTlMg
PSBbIi0tdXNlRlRMSklUPXRydWUiXQogUFJPQkVfT1NSX0VYSVRfT1BUSU9OID0gWyItLXVzZVBy
b2JlT1NSRXhpdD10cnVlIl0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>