<?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>187042</bug_id>
          
          <creation_ts>2018-06-26 07:27:47 -0700</creation_ts>
          <short_desc>RegExp.exec returns wrong value with a long integer quantifier</short_desc>
          <delta_ts>2020-03-25 17:27:12 -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>Safari 11</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=209573</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Thyago Pessoa">tmp2</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>isol2</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>sukolsak</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1436493</commentid>
    <comment_count>0</comment_count>
    <who name="Thyago Pessoa">tmp2</who>
    <bug_when>2018-06-26 07:27:47 -0700</bug_when>
    <thetext>Hi everyone,

I found an inconsistence on Regexp pattern with a long integer quantifier.

version: Safari-606.1.9.4
OS: Ubuntu 16.04 x64

Step to reproduce:

r = new RegExp (&quot;(?:a{0,34028236692}?){0,1}a&quot;); // length 11
print(r.exec (&quot;aa&quot;) == &quot;aa&quot;); // returns aa

r = new RegExp (&quot;(?:a{0,340282366920}?){0,1}a&quot;); // length 12
print(r.exec (&quot;aa&quot;) == &quot;aa&quot;); // returns a

Actual results:
true
false

Expected results:
true
true

V8, Chakra and SpiderMonkey works as expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438290</commentid>
    <comment_count>1</comment_count>
      <attachid>344045</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2018-07-01 02:54:26 -0700</bug_when>
    <thetext>Created attachment 344045
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438292</commentid>
    <comment_count>2</comment_count>
      <attachid>344045</attachid>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-07-01 04:14:18 -0700</bug_when>
    <thetext>Comment on attachment 344045
Patch

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

New failing tests:
stress/regress-159744.js.ftl-no-cjit-no-inline-validate
stress/regress-159744.js.dfg-eager-no-cjit-validate
stress/regress-159744.js.no-cjit-validate-phases
stress/regress-159744.js.dfg-eager
stress/regress-159744.js.ftl-no-cjit-no-put-stack-validate
stress/regress-159744.js.no-ftl
stress/regress-159744.js.ftl-no-cjit-b3o1
stress/regress-159744.js.no-cjit-collect-continuously
stress/regress-159744.js.ftl-eager-no-cjit-b3o1
stress/regress-159744.js.ftl-eager
stress/regress-159744.js.no-llint
stress/regress-159744.js.ftl-no-cjit-validate-sampling-profiler
stress/regress-159744.js.ftl-eager-no-cjit
stress/regress-159744.js.ftl-no-cjit-small-pool
stress/regress-159744.js.default
stress/regress-159744.js.dfg-maximal-flush-validate-no-cjit
apiTests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438302</commentid>
    <comment_count>3</comment_count>
      <attachid>344045</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-07-01 07:57:24 -0700</bug_when>
    <thetext>Comment on attachment 344045
Patch

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

r- because a JSC test is failing.  Please investigate as to why it&apos;s failing.

&gt; Source/JavaScriptCore/yarr/YarrParser.h:990
&gt; -        // check for overflow.
&gt; -        for (unsigned newValue; peekIsDigit() &amp;&amp; ((newValue = n * 10 + peekDigit()) &gt;= n); ) {
&gt; -            n = newValue;
&gt; +        while (peekIsDigit()) {
&gt; +            unsigned nextDigit = peekDigit();
&gt; +            if (n &gt; (UINT_MAX - nextDigit) / 10) {
&gt; +                // Overflow. Skip past remaining decimal digits and return UINT_MAX.
&gt; +                do {
&gt; +                    consume();
&gt; +                } while (peekIsDigit());
&gt; +                return UINT_MAX;
&gt; +            }
&gt; +            n = n * 10 + nextDigit;
&gt;              consume();
&gt;          }
&gt;          return n;

Please look into using Checked&lt;unsigned, RecordOverflow&gt; (grep for other places where this is used to see how it&apos;s used).  You should use that here instead.  It will simplify this code tremendously.
Also, to be consistent with the rest of Yarr code, you should return quantifyInfinite here instead of UINT_MAX directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438305</commentid>
    <comment_count>4</comment_count>
      <attachid>344050</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2018-07-01 08:45:02 -0700</bug_when>
    <thetext>Created attachment 344050
Fix tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438306</commentid>
    <comment_count>5</comment_count>
      <attachid>344050</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-07-01 09:38:25 -0700</bug_when>
    <thetext>Comment on attachment 344050
Fix tests

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

&gt; Source/JavaScriptCore/yarr/YarrParser.h:987
&gt; +            n = n * 10 + nextDigit;

Let’s just use Checked&lt;unsigned&gt; for n</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438307</commentid>
    <comment_count>6</comment_count>
      <attachid>344050</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-07-01 09:39:49 -0700</bug_when>
    <thetext>Comment on attachment 344050
Fix tests

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

&gt;&gt; Source/JavaScriptCore/yarr/YarrParser.h:987
&gt;&gt; +            n = n * 10 + nextDigit;
&gt; 
&gt; Let’s just use Checked&lt;unsigned&gt; for n

We can then return UINT_MAX if that overflows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438308</commentid>
    <comment_count>7</comment_count>
      <attachid>344050</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-07-01 09:43:13 -0700</bug_when>
    <thetext>Comment on attachment 344050
Fix tests

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

&gt;&gt;&gt; Source/JavaScriptCore/yarr/YarrParser.h:987
&gt;&gt;&gt; +            n = n * 10 + nextDigit;
&gt;&gt; 
&gt;&gt; Let’s just use Checked&lt;unsigned&gt; for n
&gt; 
&gt; We can then return UINT_MAX if that overflows

I pointed this out earlier (in https://bugs.webkit.org/show_bug.cgi?id=187042#c3): use Checked&lt;unsigned, RecordOverflow &gt;.  Plain Checked&lt;unsigned&gt; will crash on overflow, and I think we don&apos;t want that.
Also, use quantifyInfinite instead of UINT_MAX to be consistent with the rest of Yarr code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438309</commentid>
    <comment_count>8</comment_count>
      <attachid>344051</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2018-07-01 09:47:37 -0700</bug_when>
    <thetext>Created attachment 344051
Use Checked&lt;unsigned, RecordOverflow&gt; and quantifyInfinite</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438310</commentid>
    <comment_count>9</comment_count>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2018-07-01 10:02:42 -0700</bug_when>
    <thetext>Thanks. I personally think it is semantically inconsistent to check a value against UINT_MAX but return quantifyInfinite instead of UINT_MAX (I know they have the same value) if the value exceeds UINT_MAX. But since the rest of Yarr code seems to use quantifyInfinite heavily, I will use quantifyInfinite as you suggested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438311</commentid>
    <comment_count>10</comment_count>
      <attachid>344052</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2018-07-01 10:11:06 -0700</bug_when>
    <thetext>Created attachment 344052
Forgot to update ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438340</commentid>
    <comment_count>11</comment_count>
      <attachid>344052</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-07-01 13:41:35 -0700</bug_when>
    <thetext>Comment on attachment 344052
Forgot to update ChangeLog

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

I&apos;d like Michael Saboff to take a look at the RegExp test changes.

&gt; Source/JavaScriptCore/yarr/YarrParser.h:985
&gt; +            if (n.hasOverflowed()) {
&gt; +                do {
&gt; +                    consume();
&gt; +                } while (peekIsDigit());
&gt; +                return quantifyInfinite;
&gt; +            }

This extra overflow check is not needed because in the overflow case: 1. we still need to interate all digits anyway, and the cost of the computation of n is not that expensive, and 2. overflows rarely happen.  We should favor the normal (non-overflow) case by not adding extra overflow checks to it.

&gt; Source/JavaScriptCore/yarr/YarrParser.h:988
&gt; +        return n.unsafeGet();

Do this here:
    return n.hasOverflowed() ? quantifyInfinite : n.unsafeGet();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438341</commentid>
    <comment_count>12</comment_count>
      <attachid>344052</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-07-01 13:49:58 -0700</bug_when>
    <thetext>Comment on attachment 344052
Forgot to update ChangeLog

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

&gt;&gt; Source/JavaScriptCore/yarr/YarrParser.h:985
&gt;&gt; +            }
&gt; 
&gt; This extra overflow check is not needed because in the overflow case: 1. we still need to interate all digits anyway, and the cost of the computation of n is not that expensive, and 2. overflows rarely happen.  We should favor the normal (non-overflow) case by not adding extra overflow checks to it.

So this loop should just be this:

    while (peekIsDigit())
        n = n * 10 + consumeDigit();

Then the whole function will just be four lines long, just like the original version. And more straightforward than the original, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438344</commentid>
    <comment_count>13</comment_count>
      <attachid>344052</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-07-01 14:17:52 -0700</bug_when>
    <thetext>Comment on attachment 344052
Forgot to update ChangeLog

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

&gt;&gt;&gt; Source/JavaScriptCore/yarr/YarrParser.h:985
&gt;&gt;&gt; +            }
&gt;&gt; 
&gt;&gt; This extra overflow check is not needed because in the overflow case: 1. we still need to interate all digits anyway, and the cost of the computation of n is not that expensive, and 2. overflows rarely happen.  We should favor the normal (non-overflow) case by not adding extra overflow checks to it.
&gt; 
&gt; So this loop should just be this:
&gt; 
&gt;     while (peekIsDigit())
&gt;         n = n * 10 + consumeDigit();
&gt; 
&gt; Then the whole function will just be four lines long, just like the original version. And more straightforward than the original, too.

Oh, that&apos;s even better.  I didn&apos;t think to use consumeDigit() but that is totally the way to go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438347</commentid>
    <comment_count>14</comment_count>
      <attachid>344061</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2018-07-01 14:41:29 -0700</bug_when>
    <thetext>Created attachment 344061
Remove the extra overflow loop, use consumeDigit, and update ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438400</commentid>
    <comment_count>15</comment_count>
      <attachid>344061</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-07-01 23:18:30 -0700</bug_when>
    <thetext>Comment on attachment 344061
Remove the extra overflow loop, use consumeDigit, and update ChangeLog

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:11
&gt; +        because once there has been overflow, undefined behavior has occurred.

This isn’t true. Unsigned overflow is defined behavior. Signed overflow is not. Your point below holds regardless</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438716</commentid>
    <comment_count>16</comment_count>
      <attachid>344153</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2018-07-02 17:07:39 -0700</bug_when>
    <thetext>Created attachment 344153
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438718</commentid>
    <comment_count>17</comment_count>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2018-07-02 17:09:16 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #15)
&gt; Comment on attachment 344061 [details]
&gt; Remove the extra overflow loop, use consumeDigit, and update ChangeLog
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=344061&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:11
&gt; &gt; +        because once there has been overflow, undefined behavior has occurred.
&gt; 
&gt; This isn’t true. Unsigned overflow is defined behavior. Signed overflow is
&gt; not. Your point below holds regardless

Thanks. I didn&apos;t know this. I have removed that sentence from the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438736</commentid>
    <comment_count>18</comment_count>
      <attachid>344153</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-02 17:49:54 -0700</bug_when>
    <thetext>Comment on attachment 344153
Patch for landing

Clearing flags on attachment: 344153

Committed r233451: &lt;https://trac.webkit.org/changeset/233451&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438737</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-02 17:49:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438738</commentid>
    <comment_count>20</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-07-02 17:50:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/41750143&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448761</commentid>
    <comment_count>21</comment_count>
    <who name="">isol2</who>
    <bug_when>2018-08-08 09:02:31 -0700</bug_when>
    <thetext>cinfuzz</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344045</attachid>
            <date>2018-07-01 02:54:26 -0700</date>
            <delta_ts>2018-07-01 08:45:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187042-20180701025446.patch</filename>
            <type>text/plain</type>
            <size>4860</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjMzNDA4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBA
CisyMDE4LTA3LTAxICBTdWtvbHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ21haWwuY29tPgor
CisgICAgICAgIFJlZ0V4cC5leGVjIHJldHVybnMgd3JvbmcgdmFsdWUgd2l0aCBhIGxvbmcgaW50
ZWdlciBxdWFudGlmaWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODcwNDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGUgWWFyciBwYXJzZXIgY2hlY2tlZCBmb3IgaW50ZWdlciBvdmVyZmxvdyB3aGVu
IHBhcnNpbmcgcXVhbnRpZmllcnMgaW4KKyAgICAgICAgcmVndWxhciBleHByZXNzaW9ucyBieSBh
ZGRpbmcgZGlnaXRzIHRvIGEgbnVtYmVyIG9uZSBhdCBhIHRpbWUgYW5kCisgICAgICAgIGNoZWNr
aW5nIGlmIHRoZSByZXN1bHQgZ290IGxhcmdlci4gVGhpcyBpcyB3cm9uZywgYmVjYXVzZSBvbmNl
IHRoZXJlIGhhcworICAgICAgICBiZWVuIG92ZXJmbG93LCB1bmRlZmluZWQgYmVoYXZpb3IgaGFz
IGFscmVhZHkgb2NjdXJyZWQuCisKKyAgICAgICAgQW5vdGhlciBpc3N1ZSB3YXMgdGhhdCBvbmNl
IGl0IGRldGVjdGVkIG92ZXJmbG93LCBpdCBzdG9wcGVkIGNvbnN1bWluZworICAgICAgICB0aGUg
cmVtYWluaW5nIGRpZ2l0cy4gU2luY2UgaXQgZGlkbid0IGZpbmQgdGhlIGNsb3NpbmcgYnJhY2tl
dCwgaXQKKyAgICAgICAgcGFyc2VkIHRoZSBxdWFudGlmaWVyIGFzIGEgbm9ybWFsIHN0cmluZyBp
bnN0ZWFkLgorCisgICAgICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlc2UgaXNzdWVzIGJ5IGNoZWNr
aW5nIGZvciBvdmVyZmxvdyB3aXRoIHN1YnRyYWN0aW9uLgorICAgICAgICBBbmQgaWYgaXQgb3Zl
cmZsb3dzLCBpdCBza2lwcyBwYXN0IHRoZSByZW1haW5pbmcgZGlnaXRzIGFuZCByZXR1cm5zIHRo
ZQorICAgICAgICB0aGUgbGFyZ2VzdCBwb3NzaWJsZSB2YWx1ZSAoVUlOVF9NQVggaW4gdGhpcyBj
YXNlKS4gVGhpcyBtYXRjaGVzCisgICAgICAgIENocm9tZSBbMV0sIEZpcmVmb3ggWzJdLCBhbmQg
RWRnZSBbM10uCisKKyAgICAgICAgWzFdIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNv
bS92OC92OC5naXQvKy8yMzIyMmYwYTg4NTk5ZGNmMzAyY2NmMzk1ODgzOTQ0NjIwYjcwZmQ1L3Ny
Yy9yZWdleHAvcmVnZXhwLXBhcnNlci5jYyMxMDQyCisgICAgICAgIFsyXSBodHRwczovL2R4ci5t
b3ppbGxhLm9yZy9tb3ppbGxhLWNlbnRyYWwvcmV2L2FlYTNmMzQ1N2YxNTMxNzA2OTIzYjhkNGM1
OTVhMWYyNzFkZTgzZGEvanMvc3JjL2lycmVnZXhwL1JlZ0V4cFBhcnNlci5jcHAjMTMxMAorICAg
ICAgICBbM10gaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9DaGFrcmFDb3JlL2Jsb2IvZmMw
ODk4NzM4MWRhMTQxYmI2ODZiNWQwYzcxZDc1ZGE5NmY5ZWI4YS9saWIvUGFyc2VyL1JlZ2V4UGFy
c2VyLmNwcCNMMTE0OQorCisgICAgICAgICogeWFyci9ZYXJyUGFyc2VyLmg6CisgICAgICAgIChK
U0M6OllhcnI6OlBhcnNlcjo6Y29uc3VtZU51bWJlcik6CisKIDIwMTgtMDYtMzAgIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBQb3J0IEphdmFTY3JpcHRDb3JlIHRv
IE9TKEZVQ0hTSUEpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2Vy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhcnNlci5o
CShyZXZpc2lvbiAyMzM0MDgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFy
c2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTk3NSw5ICs5NzUsMTYgQEAgcHJpdmF0ZToKICAgICB1
bnNpZ25lZCBjb25zdW1lTnVtYmVyKCkKICAgICB7CiAgICAgICAgIHVuc2lnbmVkIG4gPSBjb25z
dW1lRGlnaXQoKTsKLSAgICAgICAgLy8gY2hlY2sgZm9yIG92ZXJmbG93LgotICAgICAgICBmb3Ig
KHVuc2lnbmVkIG5ld1ZhbHVlOyBwZWVrSXNEaWdpdCgpICYmICgobmV3VmFsdWUgPSBuICogMTAg
KyBwZWVrRGlnaXQoKSkgPj0gbik7ICkgewotICAgICAgICAgICAgbiA9IG5ld1ZhbHVlOworICAg
ICAgICB3aGlsZSAocGVla0lzRGlnaXQoKSkgeworICAgICAgICAgICAgdW5zaWduZWQgbmV4dERp
Z2l0ID0gcGVla0RpZ2l0KCk7CisgICAgICAgICAgICBpZiAobiA+IChVSU5UX01BWCAtIG5leHRE
aWdpdCkgLyAxMCkgeworICAgICAgICAgICAgICAgIC8vIE92ZXJmbG93LiBTa2lwIHBhc3QgcmVt
YWluaW5nIGRlY2ltYWwgZGlnaXRzIGFuZCByZXR1cm4gVUlOVF9NQVguCisgICAgICAgICAgICAg
ICAgZG8geworICAgICAgICAgICAgICAgICAgICBjb25zdW1lKCk7CisgICAgICAgICAgICAgICAg
fSB3aGlsZSAocGVla0lzRGlnaXQoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIFVJTlRfTUFY
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgbiA9IG4gKiAxMCArIG5leHREaWdpdDsKICAg
ICAgICAgICAgIGNvbnN1bWUoKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbjsKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDIzMzQwOCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE4LTA3LTAxICBTdWtvbHNhayBTYWtzaHV3b25nICA8
c3Vrb2xzYWtAZ21haWwuY29tPgorCisgICAgICAgIFJlZ0V4cC5leGVjIHJldHVybnMgd3Jvbmcg
dmFsdWUgd2l0aCBhIGxvbmcgaW50ZWdlciBxdWFudGlmaWVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODcwNDIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvcmVnZXgvb3ZlcmZsb3ctZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVnZXgvc2NyaXB0LXRlc3RzL292ZXJmbG93LmpzOgor
ICAgICAgICAocmVnZXhwNik6CisKIDIwMTgtMDYtMjkgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRz
QGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIE1ha2UgV1BUIHRlc3QgYXQg
dGltaW5nLW1vZGVsL3RpbWVsaW5lcy9kb2N1bWVudC10aW1lbGluZXMuaHRtbCBwYXNzIHJlbGlh
Ymx5CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L292ZXJmbG93LWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L292ZXJmbG93LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMjMzNDA4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZWdleC9vdmVyZmxvdy1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTcsNiArNyw5IEBAIFBBU1MgcmVnZXhwMS5l
eGVjKCcnKSBpcyBudWxsCiBQQVNTIHJlZ2V4cDIuZXhlYygnJykgaXMgbnVsbAogUEFTUyByZWdl
eHAzLmV4ZWMoczMpIGlzIG51bGwKIFBBU1MgZnVuY3Rpb24gZigpIHsgL1teYSRdezQyOTQ5Njcy
OTV9LyB9IHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogSW52YWxpZCByZWd1bGFyIGV4cHJl
c3Npb246IG51bWJlciB0b28gbGFyZ2UgaW4ge30gcXVhbnRpZmllci4KK1BBU1MgcmVnZXhwNC5l
eGVjKCdhJykgaXMgWydhJ10KK1BBU1MgcmVnZXhwNS5leGVjKCdhJykgaXMgWydhJ10KK1BBU1Mg
cmVnZXhwNi5leGVjKCdhYScpIGlzIFsnYWEnXQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3Njcmlw
dC10ZXN0cy9vdmVyZmxvdy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlZ2V4
L3NjcmlwdC10ZXN0cy9vdmVyZmxvdy5qcwkocmV2aXNpb24gMjMzNDA4KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9yZWdleC9zY3JpcHQtdGVzdHMvb3ZlcmZsb3cuanMJKHdvcmtpbmcgY29weSkKQEAg
LTExLDMgKzExLDEyIEBAIHZhciByZWdleHAzID0gbmV3IFJlZ0V4cChzMywgIiIpOwogc2hvdWxk
QmUoInJlZ2V4cDMuZXhlYyhzMykiLCAnbnVsbCcpOwogCiBzaG91bGRUaHJvdygiZnVuY3Rpb24g
ZigpIHsgL1teYSRdezQyOTQ5NjcyOTV9LyB9IiwgJyJTeW50YXhFcnJvcjogSW52YWxpZCByZWd1
bGFyIGV4cHJlc3Npb246IG51bWJlciB0b28gbGFyZ2UgaW4ge30gcXVhbnRpZmllciInKTsKKwor
dmFyIHJlZ2V4cDQgPSAvYXswLDQyOTQ5NjcyOTV9LzsKK3Nob3VsZEJlKCJyZWdleHA0LmV4ZWMo
J2EnKSIsICJbJ2EnXSIpOworCit2YXIgcmVnZXhwNSA9IC9hezAsNDI5NDk2NzI5Nn0vOworc2hv
dWxkQmUoInJlZ2V4cDUuZXhlYygnYScpIiwgIlsnYSddIik7CisKK3ZhciByZWdleHA2ID0gLyg/
OmF7MCwzNDAyODIzNjY5MjB9Pyl7MCwxfWEvOworc2hvdWxkQmUoInJlZ2V4cDYuZXhlYygnYWEn
KSIsICJbJ2FhJ10iKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344050</attachid>
            <date>2018-07-01 08:45:02 -0700</date>
            <delta_ts>2018-07-01 09:47:36 -0700</delta_ts>
            <desc>Fix tests</desc>
            <filename>bug-187042-20180701084523.patch</filename>
            <type>text/plain</type>
            <size>7237</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMzM0MDgpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE0IEBACisyMDE4LTA3LTAxICBTdWtvbHNhayBTYWtzaHV3b25nICA8c3Vrb2xz
YWtAZ21haWwuY29tPgorCisgICAgICAgIFJlZ0V4cC5leGVjIHJldHVybnMgd3JvbmcgdmFsdWUg
d2l0aCBhIGxvbmcgaW50ZWdlciBxdWFudGlmaWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODcwNDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9yZWdleHAtbGFyZ2UtcXVhbnRpZmllci5q
czogQWRkZWQuCisgICAgICAgICh0ZXN0UmVnRXhwKToKKyAgICAgICAgKiBzdHJlc3MvcmVncmVz
cy0xNTk3NDQuanM6CisKIDIwMTgtMDYtMjkgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5j
b20+CiAKICAgICAgICAgV2Ugc2hvdWxkbid0IHJlY3Vyc2UgaW50byB0aGUgcGFyc2VyIHdoZW4g
Z2F0aGVyaW5nIG1ldGFkYXRhIGFib3V0IHZhcmlvdXMgZnVuY3Rpb24gb2Zmc2V0cwpJbmRleDog
SlNUZXN0cy9zdHJlc3MvcmVnZXhwLWxhcmdlLXF1YW50aWZpZXIuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
SlNUZXN0cy9zdHJlc3MvcmVnZXhwLWxhcmdlLXF1YW50aWZpZXIuanMJKG5vbmV4aXN0ZW50KQor
KysgSlNUZXN0cy9zdHJlc3MvcmVnZXhwLWxhcmdlLXF1YW50aWZpZXIuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24gdGVzdFJlZ0V4cChwYXR0ZXJuLCBzdHJpbmcs
IGV4cGVjdGVkTWF0Y2gpIHsKKyAgICBjb25zdCByID0gbmV3IFJlZ0V4cChwYXR0ZXJuKTsKKyAg
ICBjb25zdCBhY3R1YWxSZXN1bHQgPSByLmV4ZWMoc3RyaW5nKTsKKyAgICBpZiAoZXhwZWN0ZWRN
YXRjaCA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIGlmIChhY3R1YWxSZXN1bHQgIT09IG51bGwp
CisgICAgICAgICAgICB0aHJvdygiRXhwZWN0ZWQgIiArIHIgKyAiLmV4ZWMoXCIiICsgc3RyaW5n
ICsgIlwiKSB0byBiZSBudWxsIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGFjdHVhbFJl
c3VsdCA9PT0gbnVsbCB8fCBhY3R1YWxSZXN1bHRbMF0gIT09IGV4cGVjdGVkTWF0Y2gpCisgICAg
ICAgICAgICB0aHJvdygiRXhwZWN0ZWQgIiArIHIgKyAiLmV4ZWMoXCIiICsgc3RyaW5nICsgIlwi
KVswXSB0byBiZSAiICsgZXhwZWN0ZWRNYXRjaCArICIuIik7CisgICAgfQorfQorCit0ZXN0UmVn
RXhwKCJhezAsNDI5NDk2NzI5NX0iLCAiYSIsICJhIik7Cit0ZXN0UmVnRXhwKCJhezAsNDI5NDk2
NzI5Nn0iLCAiYSIsICJhIik7Cit0ZXN0UmVnRXhwKCJeYXswLDQyOTQ5NjcyOTZ9JCIsICJhezAs
NDI5NDk2NzI5Nn0iLCB1bmRlZmluZWQpOwordGVzdFJlZ0V4cCgiKD86YXswLDM0MDI4MjM2Njky
MH0/KXswLDF9YSIsICJhYSIsICJhYSIpOwpJbmRleDogSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0x
NTk3NDQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNTk3NDQuanMJ
KHJldmlzaW9uIDIzMzQwOCkKKysrIEpTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTU5NzQ0LmpzCSh3
b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNiBAQCBmdW5jdGlvbiB0ZXN0UmVnRXhwKHBhdHRlcm4s
IGZsYWdzLCBzdHJpCiAgICAgICAgIHRocm93KCJFeHBlY3RlZCAiICsgciArICJleGVjKFwiIiAr
IHN0cmluZyArICJcIikgdG8gcmV0dXJuICIgKyByZXN1bHQgKyAiLiIpOwogfQogCi10ZXN0UmVn
RXhwKCIoKD89JCkpPz8oPzpcXDEpezM0MzU5NzM4MzY4LH0iLCAiZ20iLCAiYWJjXG5hYmNcbmFi
Y1xuYWJjXG4iLCBudWxsKTsKIHRlc3RSZWdFeHAoIihcXHcrKSg/OlxccyhcXDEpKXsxMTAwMDAw
MDAwLH0iLCAiaSIsICJ3b3JkIFdvcmQgV09SRCBXb1JkIiwgbnVsbCk7CiB0ZXN0UmVnRXhwKCJc
XGR7NCx9LnsxMDczNzQxODI1fSIsICIiLCAiMTIzNDU2N1x1MTIzNCIsIG51bGwpOwogdGVzdFJl
Z0V4cCgiKD86YWJjZCl7MjE0ODQ3MzY0OCx9IiwgIiIsICJhYmNkYWJjZGFiY2QiLCBudWxsKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjMzNDA4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBA
CisyMDE4LTA3LTAxICBTdWtvbHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ21haWwuY29tPgor
CisgICAgICAgIFJlZ0V4cC5leGVjIHJldHVybnMgd3JvbmcgdmFsdWUgd2l0aCBhIGxvbmcgaW50
ZWdlciBxdWFudGlmaWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODcwNDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBQcmlvciB0byB0aGlzIHBhdGNoLCB0aGUgWWFyciBwYXJzZXIgY2hlY2tlZCBmb3Ig
aW50ZWdlciBvdmVyZmxvdyB3aGVuCisgICAgICAgIHBhcnNpbmcgcXVhbnRpZmllcnMgaW4gcmVn
dWxhciBleHByZXNzaW9ucyBieSBhZGRpbmcgb25lIGRpZ2l0IGF0IGEgdGltZQorICAgICAgICB0
byBhIG51bWJlciBhbmQgY2hlY2tpbmcgaWYgdGhlIHJlc3VsdCBnb3QgbGFyZ2VyLiBUaGlzIGlz
IHdyb25nLAorICAgICAgICBiZWNhdXNlIG9uY2UgdGhlcmUgaGFzIGJlZW4gb3ZlcmZsb3csIHVu
ZGVmaW5lZCBiZWhhdmlvciBoYXMgb2NjdXJyZWQuCisgICAgICAgIChUaGUgcGFyc2VyIHdvdWxk
IGZhaWwgdG8gZGV0ZWN0IG92ZXJmbG93IHdoZW4gcGFyc2luZywgZm9yIGV4YW1wbGUsCisgICAg
ICAgIDM0MDI4MjM2NjkyIGJlY2F1c2UgKDM0MDI4MjM2NjkqMTAgKyAyKSAlICgyXjMyKSA9IDM5
NjM0NjU2MjAgPiAzNDAyODIzNjY5LikKKworICAgICAgICBBbm90aGVyIGlzc3VlIHdhcyB0aGF0
IG9uY2UgaXQgZGV0ZWN0ZWQgb3ZlcmZsb3csIGl0IHN0b3BwZWQgY29uc3VtaW5nCisgICAgICAg
IHRoZSByZW1haW5pbmcgZGlnaXRzLiBTaW5jZSBpdCBkaWRuJ3QgZmluZCB0aGUgY2xvc2luZyBi
cmFja2V0LCBpdAorICAgICAgICBwYXJzZWQgdGhlIHF1YW50aWZpZXIgYXMgYSBub3JtYWwgc3Ry
aW5nIGluc3RlYWQuCisKKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyB0aGVzZSBpc3N1ZXMgYnkg
Y2hlY2tpbmcgZm9yIG92ZXJmbG93IHdpdGggc3VidHJhY3Rpb24uCisgICAgICAgIEFuZCBpZiBp
dCBvdmVyZmxvd3MsIGl0IHNraXBzIHBhc3QgdGhlIHJlbWFpbmluZyBkaWdpdHMgYW5kIHJldHVy
bnMgdGhlCisgICAgICAgIHRoZSBsYXJnZXN0IHBvc3NpYmxlIHZhbHVlIChVSU5UX01BWCBpbiB0
aGlzIGNhc2UpLiBUaGlzIG1hdGNoZXMKKyAgICAgICAgQ2hyb21lIFsxXSwgRmlyZWZveCBbMl0s
IGFuZCBFZGdlIFszXS4KKworICAgICAgICBbMV0gaHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVzb3Vy
Y2UuY29tL3Y4L3Y4LmdpdC8rLzIzMjIyZjBhODg1OTlkY2YzMDJjY2YzOTU4ODM5NDQ2MjBiNzBm
ZDUvc3JjL3JlZ2V4cC9yZWdleHAtcGFyc2VyLmNjIzEwNDIKKyAgICAgICAgWzJdIGh0dHBzOi8v
ZHhyLm1vemlsbGEub3JnL21vemlsbGEtY2VudHJhbC9yZXYvYWVhM2YzNDU3ZjE1MzE3MDY5MjNi
OGQ0YzU5NWExZjI3MWRlODNkYS9qcy9zcmMvaXJyZWdleHAvUmVnRXhwUGFyc2VyLmNwcCMxMzEw
CisgICAgICAgIFszXSBodHRwczovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L0NoYWtyYUNvcmUvYmxv
Yi9mYzA4OTg3MzgxZGExNDFiYjY4NmI1ZDBjNzFkNzVkYTk2ZjllYjhhL2xpYi9QYXJzZXIvUmVn
ZXhQYXJzZXIuY3BwI0wxMTQ5CisKKyAgICAgICAgKiB5YXJyL1lhcnJQYXJzZXIuaDoKKyAgICAg
ICAgKEpTQzo6WWFycjo6UGFyc2VyOjpjb25zdW1lTnVtYmVyKToKKwogMjAxOC0wNi0zMCAgQWRh
bSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFBvcnQgSmF2YVNjcmlwdENv
cmUgdG8gT1MoRlVDSFNJQSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQ
YXJzZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFy
c2VyLmgJKHJldmlzaW9uIDIzMzQwOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lh
cnJQYXJzZXIuaAkod29ya2luZyBjb3B5KQpAQCAtOTc1LDkgKzk3NSwxNiBAQCBwcml2YXRlOgog
ICAgIHVuc2lnbmVkIGNvbnN1bWVOdW1iZXIoKQogICAgIHsKICAgICAgICAgdW5zaWduZWQgbiA9
IGNvbnN1bWVEaWdpdCgpOwotICAgICAgICAvLyBjaGVjayBmb3Igb3ZlcmZsb3cuCi0gICAgICAg
IGZvciAodW5zaWduZWQgbmV3VmFsdWU7IHBlZWtJc0RpZ2l0KCkgJiYgKChuZXdWYWx1ZSA9IG4g
KiAxMCArIHBlZWtEaWdpdCgpKSA+PSBuKTsgKSB7Ci0gICAgICAgICAgICBuID0gbmV3VmFsdWU7
CisgICAgICAgIHdoaWxlIChwZWVrSXNEaWdpdCgpKSB7CisgICAgICAgICAgICB1bnNpZ25lZCBu
ZXh0RGlnaXQgPSBwZWVrRGlnaXQoKTsKKyAgICAgICAgICAgIGlmIChuID4gKFVJTlRfTUFYIC0g
bmV4dERpZ2l0KSAvIDEwKSB7CisgICAgICAgICAgICAgICAgLy8gT3ZlcmZsb3cuIFNraXAgcGFz
dCByZW1haW5pbmcgZGVjaW1hbCBkaWdpdHMgYW5kIHJldHVybiBVSU5UX01BWC4KKyAgICAgICAg
ICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgIGNvbnN1bWUoKTsKKyAgICAgICAgICAg
ICAgICB9IHdoaWxlIChwZWVrSXNEaWdpdCgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gVUlO
VF9NQVg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBuID0gbiAqIDEwICsgbmV4dERpZ2l0
OwogICAgICAgICAgICAgY29uc3VtZSgpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBuOwpJ
bmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0No
YW5nZUxvZwkocmV2aXNpb24gMjMzNDA4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMDctMDEgIFN1a29sc2FrIFNha3NodXdv
bmcgIDxzdWtvbHNha0BnbWFpbC5jb20+CisKKyAgICAgICAgUmVnRXhwLmV4ZWMgcmV0dXJucyB3
cm9uZyB2YWx1ZSB3aXRoIGEgbG9uZyBpbnRlZ2VyIHF1YW50aWZpZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NzA0MgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9yZWdleC9vdmVyZmxvdy1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZWdleC9zY3JpcHQtdGVzdHMvb3ZlcmZsb3cu
anM6CisKIDIwMTgtMDYtMjkgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIE1ha2UgV1BUIHRlc3QgYXQgdGltaW5nLW1vZGVsL3Rp
bWVsaW5lcy9kb2N1bWVudC10aW1lbGluZXMuaHRtbCBwYXNzIHJlbGlhYmx5CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L3JlZ2V4L292ZXJmbG93LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L3JlZ2V4L292ZXJmbG93LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjMz
NDA4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZWdleC9vdmVyZmxvdy1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTcsNiArNyw3IEBAIFBBU1MgcmVnZXhwMS5leGVjKCcnKSBpcyBudWxs
CiBQQVNTIHJlZ2V4cDIuZXhlYygnJykgaXMgbnVsbAogUEFTUyByZWdleHAzLmV4ZWMoczMpIGlz
IG51bGwKIFBBU1MgZnVuY3Rpb24gZigpIHsgL1teYSRdezQyOTQ5NjcyOTV9LyB9IHRocmV3IGV4
Y2VwdGlvbiBTeW50YXhFcnJvcjogSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb246IG51bWJlciB0
b28gbGFyZ2UgaW4ge30gcXVhbnRpZmllci4KK1BBU1MgbmV3IFJlZ0V4cCgnKCg/PSQpKT8/KD86
XFwxKXszNDM1OTczODM2OCx9JykgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBJbnZhbGlk
IHJlZ3VsYXIgZXhwcmVzc2lvbjogbnVtYmVyIHRvbyBsYXJnZSBpbiB7fSBxdWFudGlmaWVyLgog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3NjcmlwdC10ZXN0cy9vdmVyZmxvdy5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3NjcmlwdC10ZXN0cy9vdmVyZmxvdy5qcwkocmV2
aXNpb24gMjMzNDA4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9yZWdleC9zY3JpcHQtdGVzdHMvb3Zl
cmZsb3cuanMJKHdvcmtpbmcgY29weSkKQEAgLTExLDMgKzExLDUgQEAgdmFyIHJlZ2V4cDMgPSBu
ZXcgUmVnRXhwKHMzLCAiIik7CiBzaG91bGRCZSgicmVnZXhwMy5leGVjKHMzKSIsICdudWxsJyk7
CiAKIHNob3VsZFRocm93KCJmdW5jdGlvbiBmKCkgeyAvW15hJF17NDI5NDk2NzI5NX0vIH0iLCAn
IlN5bnRheEVycm9yOiBJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbjogbnVtYmVyIHRvbyBsYXJn
ZSBpbiB7fSBxdWFudGlmaWVyIicpOworCitzaG91bGRUaHJvdygibmV3IFJlZ0V4cCgnKCg/PSQp
KT8/KD86XFxcXDEpezM0MzU5NzM4MzY4LH0nKSIsICciU3ludGF4RXJyb3I6IEludmFsaWQgcmVn
dWxhciBleHByZXNzaW9uOiBudW1iZXIgdG9vIGxhcmdlIGluIHt9IHF1YW50aWZpZXIiJyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344051</attachid>
            <date>2018-07-01 09:47:37 -0700</date>
            <delta_ts>2018-07-01 10:11:04 -0700</delta_ts>
            <desc>Use Checked&lt;unsigned, RecordOverflow&gt; and quantifyInfinite</desc>
            <filename>bug-187042-20180701094758.patch</filename>
            <type>text/plain</type>
            <size>7235</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMzM0MDgpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE0IEBACisyMDE4LTA3LTAxICBTdWtvbHNhayBTYWtzaHV3b25nICA8c3Vrb2xz
YWtAZ21haWwuY29tPgorCisgICAgICAgIFJlZ0V4cC5leGVjIHJldHVybnMgd3JvbmcgdmFsdWUg
d2l0aCBhIGxvbmcgaW50ZWdlciBxdWFudGlmaWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODcwNDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9yZWdleHAtbGFyZ2UtcXVhbnRpZmllci5q
czogQWRkZWQuCisgICAgICAgICh0ZXN0UmVnRXhwKToKKyAgICAgICAgKiBzdHJlc3MvcmVncmVz
cy0xNTk3NDQuanM6CisKIDIwMTgtMDYtMjkgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5j
b20+CiAKICAgICAgICAgV2Ugc2hvdWxkbid0IHJlY3Vyc2UgaW50byB0aGUgcGFyc2VyIHdoZW4g
Z2F0aGVyaW5nIG1ldGFkYXRhIGFib3V0IHZhcmlvdXMgZnVuY3Rpb24gb2Zmc2V0cwpJbmRleDog
SlNUZXN0cy9zdHJlc3MvcmVnZXhwLWxhcmdlLXF1YW50aWZpZXIuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
SlNUZXN0cy9zdHJlc3MvcmVnZXhwLWxhcmdlLXF1YW50aWZpZXIuanMJKG5vbmV4aXN0ZW50KQor
KysgSlNUZXN0cy9zdHJlc3MvcmVnZXhwLWxhcmdlLXF1YW50aWZpZXIuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24gdGVzdFJlZ0V4cChwYXR0ZXJuLCBzdHJpbmcs
IGV4cGVjdGVkTWF0Y2gpIHsKKyAgICBjb25zdCByID0gbmV3IFJlZ0V4cChwYXR0ZXJuKTsKKyAg
ICBjb25zdCBhY3R1YWxSZXN1bHQgPSByLmV4ZWMoc3RyaW5nKTsKKyAgICBpZiAoZXhwZWN0ZWRN
YXRjaCA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIGlmIChhY3R1YWxSZXN1bHQgIT09IG51bGwp
CisgICAgICAgICAgICB0aHJvdygiRXhwZWN0ZWQgIiArIHIgKyAiLmV4ZWMoXCIiICsgc3RyaW5n
ICsgIlwiKSB0byBiZSBudWxsIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGFjdHVhbFJl
c3VsdCA9PT0gbnVsbCB8fCBhY3R1YWxSZXN1bHRbMF0gIT09IGV4cGVjdGVkTWF0Y2gpCisgICAg
ICAgICAgICB0aHJvdygiRXhwZWN0ZWQgIiArIHIgKyAiLmV4ZWMoXCIiICsgc3RyaW5nICsgIlwi
KVswXSB0byBiZSAiICsgZXhwZWN0ZWRNYXRjaCArICIuIik7CisgICAgfQorfQorCit0ZXN0UmVn
RXhwKCJhezAsNDI5NDk2NzI5NX0iLCAiYSIsICJhIik7Cit0ZXN0UmVnRXhwKCJhezAsNDI5NDk2
NzI5Nn0iLCAiYSIsICJhIik7Cit0ZXN0UmVnRXhwKCJeYXswLDQyOTQ5NjcyOTZ9JCIsICJhezAs
NDI5NDk2NzI5Nn0iLCB1bmRlZmluZWQpOwordGVzdFJlZ0V4cCgiKD86YXswLDM0MDI4MjM2Njky
MH0/KXswLDF9YSIsICJhYSIsICJhYSIpOwpJbmRleDogSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0x
NTk3NDQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNTk3NDQuanMJ
KHJldmlzaW9uIDIzMzQwOCkKKysrIEpTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTU5NzQ0LmpzCSh3
b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNiBAQCBmdW5jdGlvbiB0ZXN0UmVnRXhwKHBhdHRlcm4s
IGZsYWdzLCBzdHJpCiAgICAgICAgIHRocm93KCJFeHBlY3RlZCAiICsgciArICJleGVjKFwiIiAr
IHN0cmluZyArICJcIikgdG8gcmV0dXJuICIgKyByZXN1bHQgKyAiLiIpOwogfQogCi10ZXN0UmVn
RXhwKCIoKD89JCkpPz8oPzpcXDEpezM0MzU5NzM4MzY4LH0iLCAiZ20iLCAiYWJjXG5hYmNcbmFi
Y1xuYWJjXG4iLCBudWxsKTsKIHRlc3RSZWdFeHAoIihcXHcrKSg/OlxccyhcXDEpKXsxMTAwMDAw
MDAwLH0iLCAiaSIsICJ3b3JkIFdvcmQgV09SRCBXb1JkIiwgbnVsbCk7CiB0ZXN0UmVnRXhwKCJc
XGR7NCx9LnsxMDczNzQxODI1fSIsICIiLCAiMTIzNDU2N1x1MTIzNCIsIG51bGwpOwogdGVzdFJl
Z0V4cCgiKD86YWJjZCl7MjE0ODQ3MzY0OCx9IiwgIiIsICJhYmNkYWJjZGFiY2QiLCBudWxsKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjMzNDA4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBA
CisyMDE4LTA3LTAxICBTdWtvbHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ21haWwuY29tPgor
CisgICAgICAgIFJlZ0V4cC5leGVjIHJldHVybnMgd3JvbmcgdmFsdWUgd2l0aCBhIGxvbmcgaW50
ZWdlciBxdWFudGlmaWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODcwNDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBQcmlvciB0byB0aGlzIHBhdGNoLCB0aGUgWWFyciBwYXJzZXIgY2hlY2tlZCBmb3Ig
aW50ZWdlciBvdmVyZmxvdyB3aGVuCisgICAgICAgIHBhcnNpbmcgcXVhbnRpZmllcnMgaW4gcmVn
dWxhciBleHByZXNzaW9ucyBieSBhZGRpbmcgb25lIGRpZ2l0IGF0IGEgdGltZQorICAgICAgICB0
byBhIG51bWJlciBhbmQgY2hlY2tpbmcgaWYgdGhlIHJlc3VsdCBnb3QgbGFyZ2VyLiBUaGlzIGlz
IHdyb25nLAorICAgICAgICBiZWNhdXNlIG9uY2UgdGhlcmUgaGFzIGJlZW4gb3ZlcmZsb3csIHVu
ZGVmaW5lZCBiZWhhdmlvciBoYXMgb2NjdXJyZWQuCisgICAgICAgIChUaGUgcGFyc2VyIHdvdWxk
IGZhaWwgdG8gZGV0ZWN0IG92ZXJmbG93IHdoZW4gcGFyc2luZywgZm9yIGV4YW1wbGUsCisgICAg
ICAgIDM0MDI4MjM2NjkyIGJlY2F1c2UgKDM0MDI4MjM2NjkqMTAgKyAyKSAlICgyXjMyKSA9IDM5
NjM0NjU2MjAgPiAzNDAyODIzNjY5LikKKworICAgICAgICBBbm90aGVyIGlzc3VlIHdhcyB0aGF0
IG9uY2UgaXQgZGV0ZWN0ZWQgb3ZlcmZsb3csIGl0IHN0b3BwZWQgY29uc3VtaW5nCisgICAgICAg
IHRoZSByZW1haW5pbmcgZGlnaXRzLiBTaW5jZSBpdCBkaWRuJ3QgZmluZCB0aGUgY2xvc2luZyBi
cmFja2V0LCBpdAorICAgICAgICBwYXJzZWQgdGhlIHF1YW50aWZpZXIgYXMgYSBub3JtYWwgc3Ry
aW5nIGluc3RlYWQuCisKKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyB0aGVzZSBpc3N1ZXMgYnkg
Y2hlY2tpbmcgZm9yIG92ZXJmbG93IHdpdGggc3VidHJhY3Rpb24uCisgICAgICAgIEFuZCBpZiBp
dCBvdmVyZmxvd3MsIGl0IHNraXBzIHBhc3QgdGhlIHJlbWFpbmluZyBkaWdpdHMgYW5kIHJldHVy
bnMgdGhlCisgICAgICAgIHRoZSBsYXJnZXN0IHBvc3NpYmxlIHZhbHVlIChVSU5UX01BWCBpbiB0
aGlzIGNhc2UpLiBUaGlzIG1hdGNoZXMKKyAgICAgICAgQ2hyb21lIFsxXSwgRmlyZWZveCBbMl0s
IGFuZCBFZGdlIFszXS4KKworICAgICAgICBbMV0gaHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVzb3Vy
Y2UuY29tL3Y4L3Y4LmdpdC8rLzIzMjIyZjBhODg1OTlkY2YzMDJjY2YzOTU4ODM5NDQ2MjBiNzBm
ZDUvc3JjL3JlZ2V4cC9yZWdleHAtcGFyc2VyLmNjIzEwNDIKKyAgICAgICAgWzJdIGh0dHBzOi8v
ZHhyLm1vemlsbGEub3JnL21vemlsbGEtY2VudHJhbC9yZXYvYWVhM2YzNDU3ZjE1MzE3MDY5MjNi
OGQ0YzU5NWExZjI3MWRlODNkYS9qcy9zcmMvaXJyZWdleHAvUmVnRXhwUGFyc2VyLmNwcCMxMzEw
CisgICAgICAgIFszXSBodHRwczovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L0NoYWtyYUNvcmUvYmxv
Yi9mYzA4OTg3MzgxZGExNDFiYjY4NmI1ZDBjNzFkNzVkYTk2ZjllYjhhL2xpYi9QYXJzZXIvUmVn
ZXhQYXJzZXIuY3BwI0wxMTQ5CisKKyAgICAgICAgKiB5YXJyL1lhcnJQYXJzZXIuaDoKKyAgICAg
ICAgKEpTQzo6WWFycjo6UGFyc2VyOjpjb25zdW1lTnVtYmVyKToKKwogMjAxOC0wNi0zMCAgQWRh
bSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFBvcnQgSmF2YVNjcmlwdENv
cmUgdG8gT1MoRlVDSFNJQSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQ
YXJzZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFy
c2VyLmgJKHJldmlzaW9uIDIzMzQwOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lh
cnJQYXJzZXIuaAkod29ya2luZyBjb3B5KQpAQCAtOTc0LDEzICs5NzQsMTggQEAgcHJpdmF0ZToK
IAogICAgIHVuc2lnbmVkIGNvbnN1bWVOdW1iZXIoKQogICAgIHsKLSAgICAgICAgdW5zaWduZWQg
biA9IGNvbnN1bWVEaWdpdCgpOwotICAgICAgICAvLyBjaGVjayBmb3Igb3ZlcmZsb3cuCi0gICAg
ICAgIGZvciAodW5zaWduZWQgbmV3VmFsdWU7IHBlZWtJc0RpZ2l0KCkgJiYgKChuZXdWYWx1ZSA9
IG4gKiAxMCArIHBlZWtEaWdpdCgpKSA+PSBuKTsgKSB7Ci0gICAgICAgICAgICBuID0gbmV3VmFs
dWU7CisgICAgICAgIENoZWNrZWQ8dW5zaWduZWQsIFJlY29yZE92ZXJmbG93PiBuID0gY29uc3Vt
ZURpZ2l0KCk7CisgICAgICAgIHdoaWxlIChwZWVrSXNEaWdpdCgpKSB7CisgICAgICAgICAgICBu
ID0gbiAqIDEwICsgcGVla0RpZ2l0KCk7CisgICAgICAgICAgICBpZiAobi5oYXNPdmVyZmxvd2Vk
KCkpIHsKKyAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgIGNvbnN1bWUo
KTsKKyAgICAgICAgICAgICAgICB9IHdoaWxlIChwZWVrSXNEaWdpdCgpKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gcXVhbnRpZnlJbmZpbml0ZTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAg
IGNvbnN1bWUoKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gbjsKKyAgICAgICAgcmV0dXJu
IG4udW5zYWZlR2V0KCk7CiAgICAgfQogCiAgICAgdW5zaWduZWQgY29uc3VtZU9jdGFsKCkKSW5k
ZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDIzMzQwOCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE4LTA3LTAxICBTdWtvbHNhayBTYWtzaHV3b25n
ICA8c3Vrb2xzYWtAZ21haWwuY29tPgorCisgICAgICAgIFJlZ0V4cC5leGVjIHJldHVybnMgd3Jv
bmcgdmFsdWUgd2l0aCBhIGxvbmcgaW50ZWdlciBxdWFudGlmaWVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODcwNDIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvcmVnZXgvb3ZlcmZsb3ctZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVnZXgvc2NyaXB0LXRlc3RzL292ZXJmbG93Lmpz
OgorCiAyMDE4LTA2LTI5ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAg
ICAgICAgW1dlYiBBbmltYXRpb25zXSBNYWtlIFdQVCB0ZXN0IGF0IHRpbWluZy1tb2RlbC90aW1l
bGluZXMvZG9jdW1lbnQtdGltZWxpbmVzLmh0bWwgcGFzcyByZWxpYWJseQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9yZWdleC9vdmVyZmxvdy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9yZWdleC9vdmVyZmxvdy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIzMzQw
OCkKKysrIExheW91dFRlc3RzL2Zhc3QvcmVnZXgvb3ZlcmZsb3ctZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC03LDYgKzcsNyBAQCBQQVNTIHJlZ2V4cDEuZXhlYygnJykgaXMgbnVsbAog
UEFTUyByZWdleHAyLmV4ZWMoJycpIGlzIG51bGwKIFBBU1MgcmVnZXhwMy5leGVjKHMzKSBpcyBu
dWxsCiBQQVNTIGZ1bmN0aW9uIGYoKSB7IC9bXmEkXXs0Mjk0OTY3Mjk1fS8gfSB0aHJldyBleGNl
cHRpb24gU3ludGF4RXJyb3I6IEludmFsaWQgcmVndWxhciBleHByZXNzaW9uOiBudW1iZXIgdG9v
IGxhcmdlIGluIHt9IHF1YW50aWZpZXIuCitQQVNTIG5ldyBSZWdFeHAoJygoPz0kKSk/Pyg/Olxc
MSl7MzQzNTk3MzgzNjgsfScpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogSW52YWxpZCBy
ZWd1bGFyIGV4cHJlc3Npb246IG51bWJlciB0b28gbGFyZ2UgaW4ge30gcXVhbnRpZmllci4KIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9yZWdleC9zY3JpcHQtdGVzdHMvb3ZlcmZsb3cuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9yZWdleC9zY3JpcHQtdGVzdHMvb3ZlcmZsb3cuanMJKHJldmlz
aW9uIDIzMzQwOCkKKysrIExheW91dFRlc3RzL2Zhc3QvcmVnZXgvc2NyaXB0LXRlc3RzL292ZXJm
bG93LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xMSwzICsxMSw1IEBAIHZhciByZWdleHAzID0gbmV3
IFJlZ0V4cChzMywgIiIpOwogc2hvdWxkQmUoInJlZ2V4cDMuZXhlYyhzMykiLCAnbnVsbCcpOwog
CiBzaG91bGRUaHJvdygiZnVuY3Rpb24gZigpIHsgL1teYSRdezQyOTQ5NjcyOTV9LyB9IiwgJyJT
eW50YXhFcnJvcjogSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb246IG51bWJlciB0b28gbGFyZ2Ug
aW4ge30gcXVhbnRpZmllciInKTsKKworc2hvdWxkVGhyb3coIm5ldyBSZWdFeHAoJygoPz0kKSk/
Pyg/OlxcXFwxKXszNDM1OTczODM2OCx9JykiLCAnIlN5bnRheEVycm9yOiBJbnZhbGlkIHJlZ3Vs
YXIgZXhwcmVzc2lvbjogbnVtYmVyIHRvbyBsYXJnZSBpbiB7fSBxdWFudGlmaWVyIicpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344052</attachid>
            <date>2018-07-01 10:11:06 -0700</date>
            <delta_ts>2018-07-01 14:41:27 -0700</delta_ts>
            <desc>Forgot to update ChangeLog</desc>
            <filename>bug-187042-20180701101127.patch</filename>
            <type>text/plain</type>
            <size>7270</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMzM0MDgpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE0IEBACisyMDE4LTA3LTAxICBTdWtvbHNhayBTYWtzaHV3b25nICA8c3Vrb2xz
YWtAZ21haWwuY29tPgorCisgICAgICAgIFJlZ0V4cC5leGVjIHJldHVybnMgd3JvbmcgdmFsdWUg
d2l0aCBhIGxvbmcgaW50ZWdlciBxdWFudGlmaWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODcwNDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9yZWdleHAtbGFyZ2UtcXVhbnRpZmllci5q
czogQWRkZWQuCisgICAgICAgICh0ZXN0UmVnRXhwKToKKyAgICAgICAgKiBzdHJlc3MvcmVncmVz
cy0xNTk3NDQuanM6CisKIDIwMTgtMDYtMjkgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5j
b20+CiAKICAgICAgICAgV2Ugc2hvdWxkbid0IHJlY3Vyc2UgaW50byB0aGUgcGFyc2VyIHdoZW4g
Z2F0aGVyaW5nIG1ldGFkYXRhIGFib3V0IHZhcmlvdXMgZnVuY3Rpb24gb2Zmc2V0cwpJbmRleDog
SlNUZXN0cy9zdHJlc3MvcmVnZXhwLWxhcmdlLXF1YW50aWZpZXIuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
SlNUZXN0cy9zdHJlc3MvcmVnZXhwLWxhcmdlLXF1YW50aWZpZXIuanMJKG5vbmV4aXN0ZW50KQor
KysgSlNUZXN0cy9zdHJlc3MvcmVnZXhwLWxhcmdlLXF1YW50aWZpZXIuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24gdGVzdFJlZ0V4cChwYXR0ZXJuLCBzdHJpbmcs
IGV4cGVjdGVkTWF0Y2gpIHsKKyAgICBjb25zdCByID0gbmV3IFJlZ0V4cChwYXR0ZXJuKTsKKyAg
ICBjb25zdCBhY3R1YWxSZXN1bHQgPSByLmV4ZWMoc3RyaW5nKTsKKyAgICBpZiAoZXhwZWN0ZWRN
YXRjaCA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIGlmIChhY3R1YWxSZXN1bHQgIT09IG51bGwp
CisgICAgICAgICAgICB0aHJvdygiRXhwZWN0ZWQgIiArIHIgKyAiLmV4ZWMoXCIiICsgc3RyaW5n
ICsgIlwiKSB0byBiZSBudWxsIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGFjdHVhbFJl
c3VsdCA9PT0gbnVsbCB8fCBhY3R1YWxSZXN1bHRbMF0gIT09IGV4cGVjdGVkTWF0Y2gpCisgICAg
ICAgICAgICB0aHJvdygiRXhwZWN0ZWQgIiArIHIgKyAiLmV4ZWMoXCIiICsgc3RyaW5nICsgIlwi
KVswXSB0byBiZSAiICsgZXhwZWN0ZWRNYXRjaCArICIuIik7CisgICAgfQorfQorCit0ZXN0UmVn
RXhwKCJhezAsNDI5NDk2NzI5NX0iLCAiYSIsICJhIik7Cit0ZXN0UmVnRXhwKCJhezAsNDI5NDk2
NzI5Nn0iLCAiYSIsICJhIik7Cit0ZXN0UmVnRXhwKCJeYXswLDQyOTQ5NjcyOTZ9JCIsICJhezAs
NDI5NDk2NzI5Nn0iLCB1bmRlZmluZWQpOwordGVzdFJlZ0V4cCgiKD86YXswLDM0MDI4MjM2Njky
MH0/KXswLDF9YSIsICJhYSIsICJhYSIpOwpJbmRleDogSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0x
NTk3NDQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNTk3NDQuanMJ
KHJldmlzaW9uIDIzMzQwOCkKKysrIEpTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTU5NzQ0LmpzCSh3
b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNiBAQCBmdW5jdGlvbiB0ZXN0UmVnRXhwKHBhdHRlcm4s
IGZsYWdzLCBzdHJpCiAgICAgICAgIHRocm93KCJFeHBlY3RlZCAiICsgciArICJleGVjKFwiIiAr
IHN0cmluZyArICJcIikgdG8gcmV0dXJuICIgKyByZXN1bHQgKyAiLiIpOwogfQogCi10ZXN0UmVn
RXhwKCIoKD89JCkpPz8oPzpcXDEpezM0MzU5NzM4MzY4LH0iLCAiZ20iLCAiYWJjXG5hYmNcbmFi
Y1xuYWJjXG4iLCBudWxsKTsKIHRlc3RSZWdFeHAoIihcXHcrKSg/OlxccyhcXDEpKXsxMTAwMDAw
MDAwLH0iLCAiaSIsICJ3b3JkIFdvcmQgV09SRCBXb1JkIiwgbnVsbCk7CiB0ZXN0UmVnRXhwKCJc
XGR7NCx9LnsxMDczNzQxODI1fSIsICIiLCAiMTIzNDU2N1x1MTIzNCIsIG51bGwpOwogdGVzdFJl
Z0V4cCgiKD86YWJjZCl7MjE0ODQ3MzY0OCx9IiwgIiIsICJhYmNkYWJjZGFiY2QiLCBudWxsKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjMzNDA4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBA
CisyMDE4LTA3LTAxICBTdWtvbHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ21haWwuY29tPgor
CisgICAgICAgIFJlZ0V4cC5leGVjIHJldHVybnMgd3JvbmcgdmFsdWUgd2l0aCBhIGxvbmcgaW50
ZWdlciBxdWFudGlmaWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODcwNDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBQcmlvciB0byB0aGlzIHBhdGNoLCB0aGUgWWFyciBwYXJzZXIgY2hlY2tlZCBmb3Ig
aW50ZWdlciBvdmVyZmxvdyB3aGVuCisgICAgICAgIHBhcnNpbmcgcXVhbnRpZmllcnMgaW4gcmVn
dWxhciBleHByZXNzaW9ucyBieSBhZGRpbmcgb25lIGRpZ2l0IGF0IGEgdGltZQorICAgICAgICB0
byBhIG51bWJlciBhbmQgY2hlY2tpbmcgaWYgdGhlIHJlc3VsdCBnb3QgbGFyZ2VyLiBUaGlzIGlz
IHdyb25nLAorICAgICAgICBiZWNhdXNlIG9uY2UgdGhlcmUgaGFzIGJlZW4gb3ZlcmZsb3csIHVu
ZGVmaW5lZCBiZWhhdmlvciBoYXMgb2NjdXJyZWQuCisgICAgICAgIChUaGUgcGFyc2VyIHdvdWxk
IGZhaWwgdG8gZGV0ZWN0IG92ZXJmbG93IHdoZW4gcGFyc2luZywgZm9yIGV4YW1wbGUsCisgICAg
ICAgIDM0MDI4MjM2NjkyIGJlY2F1c2UgKDM0MDI4MjM2NjkqMTAgKyAyKSAlICgyXjMyKSA9IDM5
NjM0NjU2MjAgPiAzNDAyODIzNjY5LikKKworICAgICAgICBBbm90aGVyIGlzc3VlIHdhcyB0aGF0
IG9uY2UgaXQgZGV0ZWN0ZWQgb3ZlcmZsb3csIGl0IHN0b3BwZWQgY29uc3VtaW5nCisgICAgICAg
IHRoZSByZW1haW5pbmcgZGlnaXRzLiBTaW5jZSBpdCBkaWRuJ3QgZmluZCB0aGUgY2xvc2luZyBi
cmFja2V0LCBpdAorICAgICAgICBwYXJzZWQgdGhlIHF1YW50aWZpZXIgYXMgYSBub3JtYWwgc3Ry
aW5nIGluc3RlYWQuCisKKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyB0aGVzZSBpc3N1ZXMgYnkg
Y2hlY2tpbmcgZm9yIG92ZXJmbG93IHdpdGgKKyAgICAgICAgQ2hlY2tlZDx1bnNpZ25lZCwgUmVj
b3JkT3ZlcmZsb3c+LiBBbmQgaWYgaXQgb3ZlcmZsb3dzLCBpdCBza2lwcyBwYXN0CisgICAgICAg
IHRoZSByZW1haW5pbmcgZGlnaXRzIGFuZCByZXR1cm5zIHRoZSBsYXJnZXN0IHBvc3NpYmxlIHZh
bHVlCisgICAgICAgIChxdWFudGlmeUluZmluaXRlIGluIHRoaXMgY2FzZSkuIFRoaXMgbWF0Y2hl
cyBDaHJvbWUgWzFdLCBGaXJlZm94IFsyXSwKKyAgICAgICAgYW5kIEVkZ2UgWzNdLgorCisgICAg
ICAgIFsxXSBodHRwczovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vdjgvdjguZ2l0LysvMjMy
MjJmMGE4ODU5OWRjZjMwMmNjZjM5NTg4Mzk0NDYyMGI3MGZkNS9zcmMvcmVnZXhwL3JlZ2V4cC1w
YXJzZXIuY2MjMTA0MgorICAgICAgICBbMl0gaHR0cHM6Ly9keHIubW96aWxsYS5vcmcvbW96aWxs
YS1jZW50cmFsL3Jldi9hZWEzZjM0NTdmMTUzMTcwNjkyM2I4ZDRjNTk1YTFmMjcxZGU4M2RhL2pz
L3NyYy9pcnJlZ2V4cC9SZWdFeHBQYXJzZXIuY3BwIzEzMTAKKyAgICAgICAgWzNdIGh0dHBzOi8v
Z2l0aHViLmNvbS9NaWNyb3NvZnQvQ2hha3JhQ29yZS9ibG9iL2ZjMDg5ODczODFkYTE0MWJiNjg2
YjVkMGM3MWQ3NWRhOTZmOWViOGEvbGliL1BhcnNlci9SZWdleFBhcnNlci5jcHAjTDExNDkKKwor
ICAgICAgICAqIHlhcnIvWWFyclBhcnNlci5oOgorICAgICAgICAoSlNDOjpZYXJyOjpQYXJzZXI6
OmNvbnN1bWVOdW1iZXIpOgorCiAyMDE4LTA2LTMwICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUG9ydCBKYXZhU2NyaXB0Q29yZSB0byBPUyhGVUNIU0lBKQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhcnNlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXJzZXIuaAkocmV2aXNpb24gMjMzNDA4
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhcnNlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC05NzQsMTMgKzk3NCwxOCBAQCBwcml2YXRlOgogCiAgICAgdW5zaWduZWQgY29uc3Vt
ZU51bWJlcigpCiAgICAgewotICAgICAgICB1bnNpZ25lZCBuID0gY29uc3VtZURpZ2l0KCk7Ci0g
ICAgICAgIC8vIGNoZWNrIGZvciBvdmVyZmxvdy4KLSAgICAgICAgZm9yICh1bnNpZ25lZCBuZXdW
YWx1ZTsgcGVla0lzRGlnaXQoKSAmJiAoKG5ld1ZhbHVlID0gbiAqIDEwICsgcGVla0RpZ2l0KCkp
ID49IG4pOyApIHsKLSAgICAgICAgICAgIG4gPSBuZXdWYWx1ZTsKKyAgICAgICAgQ2hlY2tlZDx1
bnNpZ25lZCwgUmVjb3JkT3ZlcmZsb3c+IG4gPSBjb25zdW1lRGlnaXQoKTsKKyAgICAgICAgd2hp
bGUgKHBlZWtJc0RpZ2l0KCkpIHsKKyAgICAgICAgICAgIG4gPSBuICogMTAgKyBwZWVrRGlnaXQo
KTsKKyAgICAgICAgICAgIGlmIChuLmhhc092ZXJmbG93ZWQoKSkgeworICAgICAgICAgICAgICAg
IGRvIHsKKyAgICAgICAgICAgICAgICAgICAgY29uc3VtZSgpOworICAgICAgICAgICAgICAgIH0g
d2hpbGUgKHBlZWtJc0RpZ2l0KCkpOworICAgICAgICAgICAgICAgIHJldHVybiBxdWFudGlmeUlu
ZmluaXRlOworICAgICAgICAgICAgfQogICAgICAgICAgICAgY29uc3VtZSgpOwogICAgICAgICB9
Ci0gICAgICAgIHJldHVybiBuOworICAgICAgICByZXR1cm4gbi51bnNhZmVHZXQoKTsKICAgICB9
CiAKICAgICB1bnNpZ25lZCBjb25zdW1lT2N0YWwoKQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjMzNDA4
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTgtMDctMDEgIFN1a29sc2FrIFNha3NodXdvbmcgIDxzdWtvbHNha0BnbWFpbC5jb20+
CisKKyAgICAgICAgUmVnRXhwLmV4ZWMgcmV0dXJucyB3cm9uZyB2YWx1ZSB3aXRoIGEgbG9uZyBp
bnRlZ2VyIHF1YW50aWZpZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE4NzA0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogZmFzdC9yZWdleC9vdmVyZmxvdy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZmFzdC9yZWdleC9zY3JpcHQtdGVzdHMvb3ZlcmZsb3cuanM6CisKIDIwMTgtMDYtMjkgIEFudG9p
bmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViIEFuaW1hdGlvbnNd
IE1ha2UgV1BUIHRlc3QgYXQgdGltaW5nLW1vZGVsL3RpbWVsaW5lcy9kb2N1bWVudC10aW1lbGlu
ZXMuaHRtbCBwYXNzIHJlbGlhYmx5CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L292ZXJm
bG93LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L292
ZXJmbG93LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjMzNDA4KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9yZWdleC9vdmVyZmxvdy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTcsNiArNyw3
IEBAIFBBU1MgcmVnZXhwMS5leGVjKCcnKSBpcyBudWxsCiBQQVNTIHJlZ2V4cDIuZXhlYygnJykg
aXMgbnVsbAogUEFTUyByZWdleHAzLmV4ZWMoczMpIGlzIG51bGwKIFBBU1MgZnVuY3Rpb24gZigp
IHsgL1teYSRdezQyOTQ5NjcyOTV9LyB9IHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogSW52
YWxpZCByZWd1bGFyIGV4cHJlc3Npb246IG51bWJlciB0b28gbGFyZ2UgaW4ge30gcXVhbnRpZmll
ci4KK1BBU1MgbmV3IFJlZ0V4cCgnKCg/PSQpKT8/KD86XFwxKXszNDM1OTczODM2OCx9JykgdGhy
ZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbjogbnVt
YmVyIHRvbyBsYXJnZSBpbiB7fSBxdWFudGlmaWVyLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3Nj
cmlwdC10ZXN0cy9vdmVyZmxvdy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3Jl
Z2V4L3NjcmlwdC10ZXN0cy9vdmVyZmxvdy5qcwkocmV2aXNpb24gMjMzNDA4KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9yZWdleC9zY3JpcHQtdGVzdHMvb3ZlcmZsb3cuanMJKHdvcmtpbmcgY29weSkK
QEAgLTExLDMgKzExLDUgQEAgdmFyIHJlZ2V4cDMgPSBuZXcgUmVnRXhwKHMzLCAiIik7CiBzaG91
bGRCZSgicmVnZXhwMy5leGVjKHMzKSIsICdudWxsJyk7CiAKIHNob3VsZFRocm93KCJmdW5jdGlv
biBmKCkgeyAvW15hJF17NDI5NDk2NzI5NX0vIH0iLCAnIlN5bnRheEVycm9yOiBJbnZhbGlkIHJl
Z3VsYXIgZXhwcmVzc2lvbjogbnVtYmVyIHRvbyBsYXJnZSBpbiB7fSBxdWFudGlmaWVyIicpOwor
CitzaG91bGRUaHJvdygibmV3IFJlZ0V4cCgnKCg/PSQpKT8/KD86XFxcXDEpezM0MzU5NzM4MzY4
LH0nKSIsICciU3ludGF4RXJyb3I6IEludmFsaWQgcmVndWxhciBleHByZXNzaW9uOiBudW1iZXIg
dG9vIGxhcmdlIGluIHt9IHF1YW50aWZpZXIiJyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344061</attachid>
            <date>2018-07-01 14:41:29 -0700</date>
            <delta_ts>2018-07-02 17:07:37 -0700</delta_ts>
            <desc>Remove the extra overflow loop, use consumeDigit, and update ChangeLog</desc>
            <filename>bug-187042-20180701144153.patch</filename>
            <type>text/plain</type>
            <size>7098</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMzM0MDgpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE0IEBACisyMDE4LTA3LTAxICBTdWtvbHNhayBTYWtzaHV3b25nICA8c3Vrb2xz
YWtAZ21haWwuY29tPgorCisgICAgICAgIFJlZ0V4cC5leGVjIHJldHVybnMgd3JvbmcgdmFsdWUg
d2l0aCBhIGxvbmcgaW50ZWdlciBxdWFudGlmaWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODcwNDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9yZWdleHAtbGFyZ2UtcXVhbnRpZmllci5q
czogQWRkZWQuCisgICAgICAgICh0ZXN0UmVnRXhwKToKKyAgICAgICAgKiBzdHJlc3MvcmVncmVz
cy0xNTk3NDQuanM6CisKIDIwMTgtMDYtMjkgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5j
b20+CiAKICAgICAgICAgV2Ugc2hvdWxkbid0IHJlY3Vyc2UgaW50byB0aGUgcGFyc2VyIHdoZW4g
Z2F0aGVyaW5nIG1ldGFkYXRhIGFib3V0IHZhcmlvdXMgZnVuY3Rpb24gb2Zmc2V0cwpJbmRleDog
SlNUZXN0cy9zdHJlc3MvcmVnZXhwLWxhcmdlLXF1YW50aWZpZXIuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
SlNUZXN0cy9zdHJlc3MvcmVnZXhwLWxhcmdlLXF1YW50aWZpZXIuanMJKG5vbmV4aXN0ZW50KQor
KysgSlNUZXN0cy9zdHJlc3MvcmVnZXhwLWxhcmdlLXF1YW50aWZpZXIuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24gdGVzdFJlZ0V4cChwYXR0ZXJuLCBzdHJpbmcs
IGV4cGVjdGVkTWF0Y2gpIHsKKyAgICBjb25zdCByID0gbmV3IFJlZ0V4cChwYXR0ZXJuKTsKKyAg
ICBjb25zdCBhY3R1YWxSZXN1bHQgPSByLmV4ZWMoc3RyaW5nKTsKKyAgICBpZiAoZXhwZWN0ZWRN
YXRjaCA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIGlmIChhY3R1YWxSZXN1bHQgIT09IG51bGwp
CisgICAgICAgICAgICB0aHJvdygiRXhwZWN0ZWQgIiArIHIgKyAiLmV4ZWMoXCIiICsgc3RyaW5n
ICsgIlwiKSB0byBiZSBudWxsIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGFjdHVhbFJl
c3VsdCA9PT0gbnVsbCB8fCBhY3R1YWxSZXN1bHRbMF0gIT09IGV4cGVjdGVkTWF0Y2gpCisgICAg
ICAgICAgICB0aHJvdygiRXhwZWN0ZWQgIiArIHIgKyAiLmV4ZWMoXCIiICsgc3RyaW5nICsgIlwi
KVswXSB0byBiZSAiICsgZXhwZWN0ZWRNYXRjaCArICIuIik7CisgICAgfQorfQorCit0ZXN0UmVn
RXhwKCJhezAsNDI5NDk2NzI5NX0iLCAiYSIsICJhIik7Cit0ZXN0UmVnRXhwKCJhezAsNDI5NDk2
NzI5Nn0iLCAiYSIsICJhIik7Cit0ZXN0UmVnRXhwKCJeYXswLDQyOTQ5NjcyOTZ9JCIsICJhezAs
NDI5NDk2NzI5Nn0iLCB1bmRlZmluZWQpOwordGVzdFJlZ0V4cCgiKD86YXswLDM0MDI4MjM2Njky
MH0/KXswLDF9YSIsICJhYSIsICJhYSIpOwpJbmRleDogSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0x
NTk3NDQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNTk3NDQuanMJ
KHJldmlzaW9uIDIzMzQwOCkKKysrIEpTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTU5NzQ0LmpzCSh3
b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNiBAQCBmdW5jdGlvbiB0ZXN0UmVnRXhwKHBhdHRlcm4s
IGZsYWdzLCBzdHJpCiAgICAgICAgIHRocm93KCJFeHBlY3RlZCAiICsgciArICJleGVjKFwiIiAr
IHN0cmluZyArICJcIikgdG8gcmV0dXJuICIgKyByZXN1bHQgKyAiLiIpOwogfQogCi10ZXN0UmVn
RXhwKCIoKD89JCkpPz8oPzpcXDEpezM0MzU5NzM4MzY4LH0iLCAiZ20iLCAiYWJjXG5hYmNcbmFi
Y1xuYWJjXG4iLCBudWxsKTsKIHRlc3RSZWdFeHAoIihcXHcrKSg/OlxccyhcXDEpKXsxMTAwMDAw
MDAwLH0iLCAiaSIsICJ3b3JkIFdvcmQgV09SRCBXb1JkIiwgbnVsbCk7CiB0ZXN0UmVnRXhwKCJc
XGR7NCx9LnsxMDczNzQxODI1fSIsICIiLCAiMTIzNDU2N1x1MTIzNCIsIG51bGwpOwogdGVzdFJl
Z0V4cCgiKD86YWJjZCl7MjE0ODQ3MzY0OCx9IiwgIiIsICJhYmNkYWJjZGFiY2QiLCBudWxsKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjMzNDA4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBA
CisyMDE4LTA3LTAxICBTdWtvbHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ21haWwuY29tPgor
CisgICAgICAgIFJlZ0V4cC5leGVjIHJldHVybnMgd3JvbmcgdmFsdWUgd2l0aCBhIGxvbmcgaW50
ZWdlciBxdWFudGlmaWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODcwNDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBQcmlvciB0byB0aGlzIHBhdGNoLCB0aGUgWWFyciBwYXJzZXIgY2hlY2tlZCBmb3Ig
aW50ZWdlciBvdmVyZmxvdyB3aGVuCisgICAgICAgIHBhcnNpbmcgcXVhbnRpZmllcnMgaW4gcmVn
dWxhciBleHByZXNzaW9ucyBieSBhZGRpbmcgb25lIGRpZ2l0IGF0IGEgdGltZQorICAgICAgICB0
byBhIG51bWJlciBhbmQgY2hlY2tpbmcgaWYgdGhlIHJlc3VsdCBnb3QgbGFyZ2VyLiBUaGlzIGlz
IHdyb25nLAorICAgICAgICBiZWNhdXNlIG9uY2UgdGhlcmUgaGFzIGJlZW4gb3ZlcmZsb3csIHVu
ZGVmaW5lZCBiZWhhdmlvciBoYXMgb2NjdXJyZWQuCisgICAgICAgIFRoZSBwYXJzZXIgd291bGQg
ZmFpbCB0byBkZXRlY3Qgb3ZlcmZsb3cgd2hlbiBwYXJzaW5nLCBmb3IgZXhhbXBsZSwKKyAgICAg
ICAgMTAsMDAwLDAwMCwwMDMgYmVjYXVzZSAoMTAwMDAwMDAwMCoxMCArIDMpICUgKDJeMzIpID0g
MTQxMDA2NTQxMSA+IDEwMDAwMDAwMDAuCisKKyAgICAgICAgQW5vdGhlciBpc3N1ZSB3YXMgdGhh
dCBvbmNlIGl0IGRldGVjdGVkIG92ZXJmbG93LCBpdCBzdG9wcGVkIGNvbnN1bWluZworICAgICAg
ICB0aGUgcmVtYWluaW5nIGRpZ2l0cy4gU2luY2UgaXQgZGlkbid0IGZpbmQgdGhlIGNsb3Npbmcg
YnJhY2tldCwgaXQKKyAgICAgICAgcGFyc2VkIHRoZSBxdWFudGlmaWVyIGFzIGEgbm9ybWFsIHN0
cmluZyBpbnN0ZWFkLgorCisgICAgICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlc2UgaXNzdWVzIGJ5
IHJlYWRpbmcgYWxsIHRoZSBkaWdpdHMgYW5kIGNoZWNraW5nIGZvcgorICAgICAgICBvdmVyZmxv
dyB3aXRoIENoZWNrZWQ8dW5zaWduZWQsIFJlY29yZE92ZXJmbG93Pi4gSWYgaXQgb3ZlcmZsb3dz
LCBpdAorICAgICAgICByZXR1cm5zIHRoZSBsYXJnZXN0IHBvc3NpYmxlIHZhbHVlIChxdWFudGlm
eUluZmluaXRlIGluIHRoaXMgY2FzZSkuIFRoaXMKKyAgICAgICAgbWF0Y2hlcyBDaHJvbWUgWzFd
LCBGaXJlZm94IFsyXSwgYW5kIEVkZ2UgWzNdLgorCisgICAgICAgIFsxXSBodHRwczovL2Nocm9t
aXVtLmdvb2dsZXNvdXJjZS5jb20vdjgvdjguZ2l0LysvMjMyMjJmMGE4ODU5OWRjZjMwMmNjZjM5
NTg4Mzk0NDYyMGI3MGZkNS9zcmMvcmVnZXhwL3JlZ2V4cC1wYXJzZXIuY2MjMTA0MgorICAgICAg
ICBbMl0gaHR0cHM6Ly9keHIubW96aWxsYS5vcmcvbW96aWxsYS1jZW50cmFsL3Jldi9hZWEzZjM0
NTdmMTUzMTcwNjkyM2I4ZDRjNTk1YTFmMjcxZGU4M2RhL2pzL3NyYy9pcnJlZ2V4cC9SZWdFeHBQ
YXJzZXIuY3BwIzEzMTAKKyAgICAgICAgWzNdIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWNyb3NvZnQv
Q2hha3JhQ29yZS9ibG9iL2ZjMDg5ODczODFkYTE0MWJiNjg2YjVkMGM3MWQ3NWRhOTZmOWViOGEv
bGliL1BhcnNlci9SZWdleFBhcnNlci5jcHAjTDExNDkKKworICAgICAgICAqIHlhcnIvWWFyclBh
cnNlci5oOgorICAgICAgICAoSlNDOjpZYXJyOjpQYXJzZXI6OmNvbnN1bWVOdW1iZXIpOgorCiAy
MDE4LTA2LTMwICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUG9y
dCBKYXZhU2NyaXB0Q29yZSB0byBPUyhGVUNIU0lBKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3lhcnIvWWFyclBhcnNlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS95YXJyL1lhcnJQYXJzZXIuaAkocmV2aXNpb24gMjMzNDA4KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvWWFyclBhcnNlci5oCSh3b3JraW5nIGNvcHkpCkBAIC05NzQsMTMgKzk3NCwx
MCBAQCBwcml2YXRlOgogCiAgICAgdW5zaWduZWQgY29uc3VtZU51bWJlcigpCiAgICAgewotICAg
ICAgICB1bnNpZ25lZCBuID0gY29uc3VtZURpZ2l0KCk7Ci0gICAgICAgIC8vIGNoZWNrIGZvciBv
dmVyZmxvdy4KLSAgICAgICAgZm9yICh1bnNpZ25lZCBuZXdWYWx1ZTsgcGVla0lzRGlnaXQoKSAm
JiAoKG5ld1ZhbHVlID0gbiAqIDEwICsgcGVla0RpZ2l0KCkpID49IG4pOyApIHsKLSAgICAgICAg
ICAgIG4gPSBuZXdWYWx1ZTsKLSAgICAgICAgICAgIGNvbnN1bWUoKTsKLSAgICAgICAgfQotICAg
ICAgICByZXR1cm4gbjsKKyAgICAgICAgQ2hlY2tlZDx1bnNpZ25lZCwgUmVjb3JkT3ZlcmZsb3c+
IG4gPSBjb25zdW1lRGlnaXQoKTsKKyAgICAgICAgd2hpbGUgKHBlZWtJc0RpZ2l0KCkpCisgICAg
ICAgICAgICBuID0gbiAqIDEwICsgY29uc3VtZURpZ2l0KCk7CisgICAgICAgIHJldHVybiBuLmhh
c092ZXJmbG93ZWQoKSA/IHF1YW50aWZ5SW5maW5pdGUgOiBuLnVuc2FmZUdldCgpOwogICAgIH0K
IAogICAgIHVuc2lnbmVkIGNvbnN1bWVPY3RhbCgpCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzM0MDgp
CisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBA
QAorMjAxOC0wNy0wMSAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdtYWlsLmNvbT4K
KworICAgICAgICBSZWdFeHAuZXhlYyByZXR1cm5zIHdyb25nIHZhbHVlIHdpdGggYSBsb25nIGlu
dGVnZXIgcXVhbnRpZmllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg3MDQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L3JlZ2V4L292ZXJmbG93LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L3JlZ2V4L3NjcmlwdC10ZXN0cy9vdmVyZmxvdy5qczoKKwogMjAxOC0wNi0yOSAgQW50b2lu
ZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWIgQW5pbWF0aW9uc10g
TWFrZSBXUFQgdGVzdCBhdCB0aW1pbmctbW9kZWwvdGltZWxpbmVzL2RvY3VtZW50LXRpbWVsaW5l
cy5odG1sIHBhc3MgcmVsaWFibHkKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVnZXgvb3ZlcmZs
b3ctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcmVnZXgvb3Zl
cmZsb3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMzM0MDgpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L3JlZ2V4L292ZXJmbG93LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNyw2ICs3LDcg
QEAgUEFTUyByZWdleHAxLmV4ZWMoJycpIGlzIG51bGwKIFBBU1MgcmVnZXhwMi5leGVjKCcnKSBp
cyBudWxsCiBQQVNTIHJlZ2V4cDMuZXhlYyhzMykgaXMgbnVsbAogUEFTUyBmdW5jdGlvbiBmKCkg
eyAvW15hJF17NDI5NDk2NzI5NX0vIH0gdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBJbnZh
bGlkIHJlZ3VsYXIgZXhwcmVzc2lvbjogbnVtYmVyIHRvbyBsYXJnZSBpbiB7fSBxdWFudGlmaWVy
LgorUEFTUyBuZXcgUmVnRXhwKCcoKD89JCkpPz8oPzpcXDEpezM0MzU5NzM4MzY4LH0nKSB0aHJl
dyBleGNlcHRpb24gU3ludGF4RXJyb3I6IEludmFsaWQgcmVndWxhciBleHByZXNzaW9uOiBudW1i
ZXIgdG9vIGxhcmdlIGluIHt9IHF1YW50aWZpZXIuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcmVnZXgvc2Ny
aXB0LXRlc3RzL292ZXJmbG93LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcmVn
ZXgvc2NyaXB0LXRlc3RzL292ZXJmbG93LmpzCShyZXZpc2lvbiAyMzM0MDgpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L3JlZ2V4L3NjcmlwdC10ZXN0cy9vdmVyZmxvdy5qcwkod29ya2luZyBjb3B5KQpA
QCAtMTEsMyArMTEsNSBAQCB2YXIgcmVnZXhwMyA9IG5ldyBSZWdFeHAoczMsICIiKTsKIHNob3Vs
ZEJlKCJyZWdleHAzLmV4ZWMoczMpIiwgJ251bGwnKTsKIAogc2hvdWxkVGhyb3coImZ1bmN0aW9u
IGYoKSB7IC9bXmEkXXs0Mjk0OTY3Mjk1fS8gfSIsICciU3ludGF4RXJyb3I6IEludmFsaWQgcmVn
dWxhciBleHByZXNzaW9uOiBudW1iZXIgdG9vIGxhcmdlIGluIHt9IHF1YW50aWZpZXIiJyk7CisK
K3Nob3VsZFRocm93KCJuZXcgUmVnRXhwKCcoKD89JCkpPz8oPzpcXFxcMSl7MzQzNTk3MzgzNjgs
fScpIiwgJyJTeW50YXhFcnJvcjogSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb246IG51bWJlciB0
b28gbGFyZ2UgaW4ge30gcXVhbnRpZmllciInKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344153</attachid>
            <date>2018-07-02 17:07:39 -0700</date>
            <delta_ts>2018-07-02 17:49:54 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-187042-20180702170809.patch</filename>
            <type>text/plain</type>
            <size>7377</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNDQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
Y2QyMDJmMzY5YjUwZjlkYjJiOTFkZjU2N2MwZTliNGYyODI4YTJlLi5lNmI2NDUxNGQxOWU0OTVh
YmQ2ZDM5MjVhMmE0ZDIyZThiNjgzMGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAxOC0wNy0wMiAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBSZWdFeHAuZXhlYyByZXR1cm5zIHdyb25nIHZhbHVlIHdpdGgg
YSBsb25nIGludGVnZXIgcXVhbnRpZmllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTg3MDQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJh
dGkuCisKKyAgICAgICAgUHJpb3IgdG8gdGhpcyBwYXRjaCwgdGhlIFlhcnIgcGFyc2VyIGNoZWNr
ZWQgZm9yIGludGVnZXIgb3ZlcmZsb3cgd2hlbgorICAgICAgICBwYXJzaW5nIHF1YW50aWZpZXJz
IGluIHJlZ3VsYXIgZXhwcmVzc2lvbnMgYnkgYWRkaW5nIG9uZSBkaWdpdCBhdCBhIHRpbWUKKyAg
ICAgICAgdG8gYSBudW1iZXIgYW5kIGNoZWNraW5nIGlmIHRoZSByZXN1bHQgZ290IGxhcmdlci4g
VGhpcyBpcyB3cm9uZzsKKyAgICAgICAgVGhlIHBhcnNlciB3b3VsZCBmYWlsIHRvIGRldGVjdCBv
dmVyZmxvdyB3aGVuIHBhcnNpbmcsIGZvciBleGFtcGxlLAorICAgICAgICAxMCwwMDAsMDAwLDAw
MyBiZWNhdXNlICgxMDAwMDAwMDAwKjEwICsgMykgJSAoMl4zMikgPSAxNDEwMDY1NDExID4gMTAw
MDAwMDAwMC4KKworICAgICAgICBBbm90aGVyIGlzc3VlIHdhcyB0aGF0IG9uY2UgaXQgZGV0ZWN0
ZWQgb3ZlcmZsb3csIGl0IHN0b3BwZWQgY29uc3VtaW5nCisgICAgICAgIHRoZSByZW1haW5pbmcg
ZGlnaXRzLiBTaW5jZSBpdCBkaWRuJ3QgZmluZCB0aGUgY2xvc2luZyBicmFja2V0LCBpdAorICAg
ICAgICBwYXJzZWQgdGhlIHF1YW50aWZpZXIgYXMgYSBub3JtYWwgc3RyaW5nIGluc3RlYWQuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyB0aGVzZSBpc3N1ZXMgYnkgcmVhZGluZyBhbGwgdGhl
IGRpZ2l0cyBhbmQgY2hlY2tpbmcgZm9yCisgICAgICAgIG92ZXJmbG93IHdpdGggQ2hlY2tlZDx1
bnNpZ25lZCwgUmVjb3JkT3ZlcmZsb3c+LiBJZiBpdCBvdmVyZmxvd3MsIGl0CisgICAgICAgIHJl
dHVybnMgdGhlIGxhcmdlc3QgcG9zc2libGUgdmFsdWUgKHF1YW50aWZ5SW5maW5pdGUgaW4gdGhp
cyBjYXNlKS4gVGhpcworICAgICAgICBtYXRjaGVzIENocm9tZSBbMV0sIEZpcmVmb3ggWzJdLCBh
bmQgRWRnZSBbM10uCisKKyAgICAgICAgWzFdIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNl
LmNvbS92OC92OC5naXQvKy8yMzIyMmYwYTg4NTk5ZGNmMzAyY2NmMzk1ODgzOTQ0NjIwYjcwZmQ1
L3NyYy9yZWdleHAvcmVnZXhwLXBhcnNlci5jYyMxMDQyCisgICAgICAgIFsyXSBodHRwczovL2R4
ci5tb3ppbGxhLm9yZy9tb3ppbGxhLWNlbnRyYWwvcmV2L2FlYTNmMzQ1N2YxNTMxNzA2OTIzYjhk
NGM1OTVhMWYyNzFkZTgzZGEvanMvc3JjL2lycmVnZXhwL1JlZ0V4cFBhcnNlci5jcHAjMTMxMAor
ICAgICAgICBbM10gaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9DaGFrcmFDb3JlL2Jsb2Iv
ZmMwODk4NzM4MWRhMTQxYmI2ODZiNWQwYzcxZDc1ZGE5NmY5ZWI4YS9saWIvUGFyc2VyL1JlZ2V4
UGFyc2VyLmNwcCNMMTE0OQorCisgICAgICAgICogeWFyci9ZYXJyUGFyc2VyLmg6CisgICAgICAg
IChKU0M6OllhcnI6OlBhcnNlcjo6Y29uc3VtZU51bWJlcik6CisKIDIwMTgtMDctMDIgIEtlaXRo
IE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgSW5zdGFuY2VPZiBJ
QyBzaG91bGQgZG8gZ2VuZXJpYyBpZiB0aGUgcHJvdG90eXBlIGlzIG5vdCBhbiBvYmplY3QuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmgKaW5kZXggZjE2ZjExZjgwNjU0NGU5
OTJlOGFlZjlhZjIxM2RiMGFjNTAwMjc2OC4uM2U1MzExZjFmYjU2Mzc2ZDQ4MThhYTI4NTc4Y2Uz
MGQ4MDgxNWNjNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBh
cnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXJzZXIuaApAQCAt
OTc0LDEzICs5NzQsMTAgQEAgcHJpdmF0ZToKIAogICAgIHVuc2lnbmVkIGNvbnN1bWVOdW1iZXIo
KQogICAgIHsKLSAgICAgICAgdW5zaWduZWQgbiA9IGNvbnN1bWVEaWdpdCgpOwotICAgICAgICAv
LyBjaGVjayBmb3Igb3ZlcmZsb3cuCi0gICAgICAgIGZvciAodW5zaWduZWQgbmV3VmFsdWU7IHBl
ZWtJc0RpZ2l0KCkgJiYgKChuZXdWYWx1ZSA9IG4gKiAxMCArIHBlZWtEaWdpdCgpKSA+PSBuKTsg
KSB7Ci0gICAgICAgICAgICBuID0gbmV3VmFsdWU7Ci0gICAgICAgICAgICBjb25zdW1lKCk7Ci0g
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG47CisgICAgICAgIENoZWNrZWQ8dW5zaWduZWQsIFJl
Y29yZE92ZXJmbG93PiBuID0gY29uc3VtZURpZ2l0KCk7CisgICAgICAgIHdoaWxlIChwZWVrSXNE
aWdpdCgpKQorICAgICAgICAgICAgbiA9IG4gKiAxMCArIGNvbnN1bWVEaWdpdCgpOworICAgICAg
ICByZXR1cm4gbi5oYXNPdmVyZmxvd2VkKCkgPyBxdWFudGlmeUluZmluaXRlIDogbi51bnNhZmVH
ZXQoKTsKICAgICB9CiAKICAgICB1bnNpZ25lZCBjb25zdW1lT2N0YWwoKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGFmZjg2
YzQ1YmI3NWExOWUxMGM0YzRjNDFlZjU4YmU1ZDU3ZjQyZDguLjdkNDZmYWQyNjAyMzE5ZDk5MGQ3
NTRmZTcxZjM1ZDIzMDc1ODI1MjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOC0wNy0wMiAg
U3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdtYWlsLmNvbT4KKworICAgICAgICBSZWdF
eHAuZXhlYyByZXR1cm5zIHdyb25nIHZhbHVlIHdpdGggYSBsb25nIGludGVnZXIgcXVhbnRpZmll
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3MDQy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCisKKyAgICAgICAgKiBmYXN0L3Jl
Z2V4L292ZXJmbG93LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlZ2V4L3NjcmlwdC10
ZXN0cy9vdmVyZmxvdy5qczoKKwogMjAxOC0wNy0wMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbV0sxXSBlZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMu
aHRtbCBpcyBmYWlsaW5nIG9uIHJlY2VudCBidWlsZHMgb2YgbWFjT1MgTW9qYXZlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L292ZXJmbG93LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvcmVnZXgvb3ZlcmZsb3ctZXhwZWN0ZWQudHh0CmluZGV4IGFiY2I3NWU5YTI3
MTVjNGFiOTllZjk3MGE0ODYxY2VjOWFjODAyNTMuLjc0Mzk1YjRmNTkwNjc3NjFkZGJkMzY4ZDUy
ODQ4MzI4ZTI2NDEzM2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnZXgvb3ZlcmZs
b3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnZXgvb3ZlcmZsb3ctZXhw
ZWN0ZWQudHh0CkBAIC03LDYgKzcsNyBAQCBQQVNTIHJlZ2V4cDEuZXhlYygnJykgaXMgbnVsbAog
UEFTUyByZWdleHAyLmV4ZWMoJycpIGlzIG51bGwKIFBBU1MgcmVnZXhwMy5leGVjKHMzKSBpcyBu
dWxsCiBQQVNTIGZ1bmN0aW9uIGYoKSB7IC9bXmEkXXs0Mjk0OTY3Mjk1fS8gfSB0aHJldyBleGNl
cHRpb24gU3ludGF4RXJyb3I6IEludmFsaWQgcmVndWxhciBleHByZXNzaW9uOiBudW1iZXIgdG9v
IGxhcmdlIGluIHt9IHF1YW50aWZpZXIuCitQQVNTIG5ldyBSZWdFeHAoJygoPz0kKSk/Pyg/Olxc
MSl7MzQzNTk3MzgzNjgsfScpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogSW52YWxpZCBy
ZWd1bGFyIGV4cHJlc3Npb246IG51bWJlciB0b28gbGFyZ2UgaW4ge30gcXVhbnRpZmllci4KIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdleC9zY3JpcHQtdGVzdHMvb3ZlcmZsb3cuanMgYi9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2V4L3NjcmlwdC10ZXN0cy9vdmVyZmxvdy5qcwppbmRleCAwZjY2NDYw
ODQ5YTQ4MDEyMDY5MmYxOGQzMzQ0MWNiMmZiMmM5NDcxLi4yZDQ3ZDEwODg0NWU1MTFiZjE5N2M2
ODFlMzQyMjk1MjE0MGQwNmMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3Nj
cmlwdC10ZXN0cy9vdmVyZmxvdy5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2V4L3Njcmlw
dC10ZXN0cy9vdmVyZmxvdy5qcwpAQCAtMTEsMyArMTEsNSBAQCB2YXIgcmVnZXhwMyA9IG5ldyBS
ZWdFeHAoczMsICIiKTsKIHNob3VsZEJlKCJyZWdleHAzLmV4ZWMoczMpIiwgJ251bGwnKTsKIAog
c2hvdWxkVGhyb3coImZ1bmN0aW9uIGYoKSB7IC9bXmEkXXs0Mjk0OTY3Mjk1fS8gfSIsICciU3lu
dGF4RXJyb3I6IEludmFsaWQgcmVndWxhciBleHByZXNzaW9uOiBudW1iZXIgdG9vIGxhcmdlIGlu
IHt9IHF1YW50aWZpZXIiJyk7CisKK3Nob3VsZFRocm93KCJuZXcgUmVnRXhwKCcoKD89JCkpPz8o
PzpcXFxcMSl7MzQzNTk3MzgzNjgsfScpIiwgJyJTeW50YXhFcnJvcjogSW52YWxpZCByZWd1bGFy
IGV4cHJlc3Npb246IG51bWJlciB0b28gbGFyZ2UgaW4ge30gcXVhbnRpZmllciInKTsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzk5M2Vh
YzA1NDI3OTFkMzVkODE4ZmU3MzgwNGI1OGVlMjAzYjIwNi4uNjI5MTM4MmY3ZjNkODk0NGM0NGEw
ZDg4Y2FmZTAyYTNjNThjZjNjZCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
SlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOC0wNy0wMiAgU3Vrb2xzYWsg
U2Frc2h1d29uZyAgPHN1a29sc2FrQGdtYWlsLmNvbT4KKworICAgICAgICBSZWdFeHAuZXhlYyBy
ZXR1cm5zIHdyb25nIHZhbHVlIHdpdGggYSBsb25nIGludGVnZXIgcXVhbnRpZmllcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3MDQyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCisKKyAgICAgICAgKiBzdHJlc3MvcmVnZXhwLWxh
cmdlLXF1YW50aWZpZXIuanM6IEFkZGVkLgorICAgICAgICAodGVzdFJlZ0V4cCk6CisgICAgICAg
ICogc3RyZXNzL3JlZ3Jlc3MtMTU5NzQ0LmpzOgorCiAyMDE4LTA3LTAyICBLZWl0aCBNaWxsZXIg
IDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEluc3RhbmNlT2YgSUMgc2hvdWxk
IGRvIGdlbmVyaWMgaWYgdGhlIHByb3RvdHlwZSBpcyBub3QgYW4gb2JqZWN0LgpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3MvcmVnZXhwLWxhcmdlLXF1YW50aWZpZXIuanMgYi9KU1Rlc3RzL3N0
cmVzcy9yZWdleHAtbGFyZ2UtcXVhbnRpZmllci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YzI1OWY0YmYyNjA4
YTAyOGFiZGRhZjcwN2JmYTk5MTIyNmYzMmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9z
dHJlc3MvcmVnZXhwLWxhcmdlLXF1YW50aWZpZXIuanMKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rp
b24gdGVzdFJlZ0V4cChwYXR0ZXJuLCBzdHJpbmcsIGV4cGVjdGVkTWF0Y2gpIHsKKyAgICBjb25z
dCByID0gbmV3IFJlZ0V4cChwYXR0ZXJuKTsKKyAgICBjb25zdCBhY3R1YWxSZXN1bHQgPSByLmV4
ZWMoc3RyaW5nKTsKKyAgICBpZiAoZXhwZWN0ZWRNYXRjaCA9PT0gdW5kZWZpbmVkKSB7CisgICAg
ICAgIGlmIChhY3R1YWxSZXN1bHQgIT09IG51bGwpCisgICAgICAgICAgICB0aHJvdygiRXhwZWN0
ZWQgIiArIHIgKyAiLmV4ZWMoXCIiICsgc3RyaW5nICsgIlwiKSB0byBiZSBudWxsIik7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgaWYgKGFjdHVhbFJlc3VsdCA9PT0gbnVsbCB8fCBhY3R1YWxSZXN1
bHRbMF0gIT09IGV4cGVjdGVkTWF0Y2gpCisgICAgICAgICAgICB0aHJvdygiRXhwZWN0ZWQgIiAr
IHIgKyAiLmV4ZWMoXCIiICsgc3RyaW5nICsgIlwiKVswXSB0byBiZSAiICsgZXhwZWN0ZWRNYXRj
aCArICIuIik7CisgICAgfQorfQorCit0ZXN0UmVnRXhwKCJhezAsNDI5NDk2NzI5NX0iLCAiYSIs
ICJhIik7Cit0ZXN0UmVnRXhwKCJhezAsNDI5NDk2NzI5Nn0iLCAiYSIsICJhIik7Cit0ZXN0UmVn
RXhwKCJeYXswLDQyOTQ5NjcyOTZ9JCIsICJhezAsNDI5NDk2NzI5Nn0iLCB1bmRlZmluZWQpOwor
dGVzdFJlZ0V4cCgiKD86YXswLDM0MDI4MjM2NjkyMH0/KXswLDF9YSIsICJhYSIsICJhYSIpOwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNTk3NDQuanMgYi9KU1Rlc3RzL3N0
cmVzcy9yZWdyZXNzLTE1OTc0NC5qcwppbmRleCA2YWM5MzEwOTQwNDUzMTQ4ZDU2M2IwNDRlYzc2
ZTUyNjhmY2NhMjA0Li41MjRmYTEzZTE2ZDc3NTY0ODE5NGUwMTNhMDJmM2I5YzVhZDliYWY3IDEw
MDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE1OTc0NC5qcworKysgYi9KU1Rlc3Rz
L3N0cmVzcy9yZWdyZXNzLTE1OTc0NC5qcwpAQCAtNyw3ICs3LDYgQEAgZnVuY3Rpb24gdGVzdFJl
Z0V4cChwYXR0ZXJuLCBmbGFncywgc3RyaW5nLCByZXN1bHQpCiAgICAgICAgIHRocm93KCJFeHBl
Y3RlZCAiICsgciArICJleGVjKFwiIiArIHN0cmluZyArICJcIikgdG8gcmV0dXJuICIgKyByZXN1
bHQgKyAiLiIpOwogfQogCi10ZXN0UmVnRXhwKCIoKD89JCkpPz8oPzpcXDEpezM0MzU5NzM4MzY4
LH0iLCAiZ20iLCAiYWJjXG5hYmNcbmFiY1xuYWJjXG4iLCBudWxsKTsKIHRlc3RSZWdFeHAoIihc
XHcrKSg/OlxccyhcXDEpKXsxMTAwMDAwMDAwLH0iLCAiaSIsICJ3b3JkIFdvcmQgV09SRCBXb1Jk
IiwgbnVsbCk7CiB0ZXN0UmVnRXhwKCJcXGR7NCx9LnsxMDczNzQxODI1fSIsICIiLCAiMTIzNDU2
N1x1MTIzNCIsIG51bGwpOwogdGVzdFJlZ0V4cCgiKD86YWJjZCl7MjE0ODQ3MzY0OCx9IiwgIiIs
ICJhYmNkYWJjZGFiY2QiLCBudWxsKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>