<?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>209375</bug_id>
          
          <creation_ts>2020-03-20 22:55:11 -0700</creation_ts>
          <short_desc>RegExp.prototype.exec must always access lastIndex</short_desc>
          <delta_ts>2020-03-31 11:49:48 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=209824</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="Ross Kirsling">ross.kirsling</reporter>
          <assigned_to name="Ross Kirsling">ross.kirsling</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1632442</commentid>
    <comment_count>0</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-03-20 22:55:11 -0700</bug_when>
    <thetext>RegExp.prototype.exec must always access lastIndex</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632443</commentid>
    <comment_count>1</comment_count>
      <attachid>394161</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-03-20 23:06:52 -0700</bug_when>
    <thetext>Created attachment 394161
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632445</commentid>
    <comment_count>2</comment_count>
      <attachid>394161</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-03-20 23:22:39 -0700</bug_when>
    <thetext>Comment on attachment 394161
Patch

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

A couple of notes:

1. I thought about proposing we change the spec here, but apparently somebody already tried that and it had to be reverted:
   https://github.com/tc39/ecma262/issues/777

&gt; Source/JavaScriptCore/dfg/DFGStrengthReductionPhase.cpp:803
&gt; +            if (!hasIndeterminateLastIndex &amp;&amp; convertToStatic())

2. I believe this does the trick, but please educate me if there&apos;s a better way.

(Near the top of this case block, we find the RegExpObject when the op is RegExpExec, so my original idea was to hang onto that so that I could check regExpObject-&gt;getLastIndex().isUInt32() in convertToStatic, but it seemed like regExpObject was disappearing on me. I suppose that explains the complexity of the existing lastIndex-verifying procedure. As such, I just added a boolean so that we don&apos;t do the verification twice -- i.e., we should only convert to RegExpExecNonGlobalOrSticky when lastIndex is determinate but the RegExp as a whole is non-constant.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632446</commentid>
    <comment_count>3</comment_count>
      <attachid>394162</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-03-21 00:34:10 -0700</bug_when>
    <thetext>Created attachment 394162
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632520</commentid>
    <comment_count>4</comment_count>
      <attachid>394173</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-03-21 12:34:50 -0700</bug_when>
    <thetext>Created attachment 394173
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632521</commentid>
    <comment_count>5</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-03-21 12:40:25 -0700</bug_when>
    <thetext>(In reply to Ross Kirsling from comment #2)
&gt; &gt; Source/JavaScriptCore/dfg/DFGStrengthReductionPhase.cpp:803
&gt; &gt; +            if (!hasIndeterminateLastIndex &amp;&amp; convertToStatic())
&gt; 
&gt; 2. I believe this does the trick, but please educate me if there&apos;s a better
&gt; way.

Looks like I can just raise the lastIndex verification step up and out of foldConstant instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632524</commentid>
    <comment_count>6</comment_count>
      <attachid>394176</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-03-21 14:06:47 -0700</bug_when>
    <thetext>Created attachment 394176
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632532</commentid>
    <comment_count>7</comment_count>
      <attachid>394180</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-03-21 15:45:54 -0700</bug_when>
    <thetext>Created attachment 394180
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633512</commentid>
    <comment_count>8</comment_count>
      <attachid>394180</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2020-03-24 14:52:16 -0700</bug_when>
    <thetext>Comment on attachment 394180
Patch

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

Informal review: Overall LGTM, but I left some comments.

&gt; Source/JavaScriptCore/dfg/DFGStrengthReductionPhase.cpp:567
&gt; +                lastIndex = 0;

Nice catch here. Is there a specific reason to move this out of `foldToConstant`? This will make us always run `executeInsertionSet()` and iterate over instructions increasing compile time, even if we endup giving up on folding due to other reasons.

&gt; Source/JavaScriptCore/runtime/RegExpObjectInlines.h:49
&gt;          RETURN_IF_EXCEPTION(scope, UINT_MAX);

Do we have a test case like the one you added, but it throws an exception instead of counting execution? I would be nice to test such code path as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633544</commentid>
    <comment_count>9</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-03-24 15:08:39 -0700</bug_when>
    <thetext>(In reply to Caio Lima from comment #8)
&gt; &gt; Source/JavaScriptCore/dfg/DFGStrengthReductionPhase.cpp:567
&gt; &gt; +                lastIndex = 0;
&gt; 
&gt; Nice catch here. Is there a specific reason to move this out of
&gt; `foldToConstant`? This will make us always run `executeInsertionSet()` and
&gt; iterate over instructions increasing compile time, even if we endup giving
&gt; up on folding due to other reasons.

It needs block *both* strength reductions that follow. At first I just had foldToConstant set a boolean which would prevent entering convertToStatic, but beyond being weird in style, this wouldn&apos;t&apos;ve been valid in the case where foldToConstant didn&apos;t even reach that check (e.g. due to massive string size or number of subpatterns).

My only concern was whether the ordering was too fragile to allow for raising this check above, but this doesn&apos;t appear to be the case.

&gt; &gt; Source/JavaScriptCore/runtime/RegExpObjectInlines.h:49
&gt; &gt;          RETURN_IF_EXCEPTION(scope, UINT_MAX);
&gt; 
&gt; Do we have a test case like the one you added, but it throws an exception
&gt; instead of counting execution? I would be nice to test such code path as
&gt; well.

I was going to add one where lastIndex is a Symbol and we catch the error, but I couldn&apos;t get it to tier up that way. I guess I can add it regardless though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633552</commentid>
    <comment_count>10</comment_count>
      <attachid>394180</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2020-03-24 15:17:43 -0700</bug_when>
    <thetext>Comment on attachment 394180
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/RegExpObjectInlines.h:49
&gt;&gt;          RETURN_IF_EXCEPTION(scope, UINT_MAX);
&gt; 
&gt; Do we have a test case like the one you added, but it throws an exception instead of counting execution? I would be nice to test such code path as well.

I think it is fine if we don&apos;t tier up, but if you would like to do it, I think this could potentially work:

```
...
let throws = false;
r.lastIndex = {
  valueOf() {
     if(throws) 
        //throws here
     return 0;
   }
 };
...
// set throws to true after we tier up
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633609</commentid>
    <comment_count>11</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-03-24 15:53:25 -0700</bug_when>
    <thetext>(In reply to Caio Lima from comment #10)
&gt; I think it is fine if we don&apos;t tier up, but if you would like to do it, I
&gt; think this could potentially work:
&gt; 
&gt; ```
&gt; ...
&gt; let throws = false;
&gt; r.lastIndex = {
&gt;   valueOf() {
&gt;      if(throws) 
&gt;         //throws here
&gt;      return 0;
&gt;    }
&gt;  };
&gt; ...
&gt; // set throws to true after we tier up
&gt; ```

That&apos;s a neat suggestion! I think it won&apos;t help though, if DFG compiles with the assumption that there won&apos;t be a TypeError? But it seems like we can tier up as long as we catch the error *outside* of the function itself, so I suppose I&apos;ll do it that way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633619</commentid>
    <comment_count>12</comment_count>
      <attachid>394430</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-03-24 16:01:25 -0700</bug_when>
    <thetext>Created attachment 394430
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634577</commentid>
    <comment_count>13</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-03-26 14:41:46 -0700</bug_when>
    <thetext>Ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635681</commentid>
    <comment_count>14</comment_count>
      <attachid>394430</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-03-30 13:28:32 -0700</bug_when>
    <thetext>Comment on attachment 394430
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:15
&gt; +        That is, we&apos;re always obliged to verify lastIndex, even when we don&apos;t use the value.

what does verify mean?

&gt; Source/JavaScriptCore/ChangeLog:16
&gt; +        DFG, in particular, must make sure strength reductions don&apos;t apply when lastIndex isn&apos;t an unsigned integer.

why?

&gt; Source/JavaScriptCore/runtime/RegExpObjectInlines.h:71
&gt; +        setLastIndex(globalObject, 0);

this seems like it could throw too, and override previously thrown exception?

&gt; Source/JavaScriptCore/runtime/RegExpObjectInlines.h:116
&gt; +        setLastIndex(globalObject, 0);

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635748</commentid>
    <comment_count>15</comment_count>
      <attachid>394967</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-03-30 14:48:07 -0700</bug_when>
    <thetext>Created attachment 394967
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635852</commentid>
    <comment_count>16</comment_count>
      <attachid>394967</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-03-30 16:50:25 -0700</bug_when>
    <thetext>Comment on attachment 394967
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635857</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-30 16:57:27 -0700</bug_when>
    <thetext>Committed r259246: &lt;https://trac.webkit.org/changeset/259246&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 394967.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635858</commentid>
    <comment_count>18</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-30 16:58:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/61080650&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394161</attachid>
            <date>2020-03-20 23:06:52 -0700</date>
            <delta_ts>2020-03-21 00:34:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209375-20200320230651.patch</filename>
            <type>text/plain</type>
            <size>9721</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4ODA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YmFiM2JmZmM0NjY2ODk5MWJhOTk2NWYzZmZjMWFiNmU4ZjQ2NGRlLi4yYTg5ZDk0Y2ExZTY0NTMy
ODhhYjAxODI5ZDZkOGZlN2U5YzZlMzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAyMC0wMy0yMCAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgUmVnRXhwLnByb3RvdHlwZS5leGVjIG11c3QgYWx3YXlzIGFjY2Vz
cyBsYXN0SW5kZXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwOTM3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEZyb20gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1yZWdleHBidWlsdGluZXhlYzoK
KyAgICAgICAgICAyMS4yLjUuMi4yIFJ1bnRpbWUgU2VtYW50aWNzOiBSZWdFeHBCdWlsdGluRXhl
YyAoIFIsIFMgKQorICAgICAgICAgICAgLi4uCisgICAgICAgICAgICA0LiBMZXQgbGFzdEluZGV4
IGJlID8gVG9MZW5ndGgoPyBHZXQoUiwgImxhc3RJbmRleCIpKS4KKyAgICAgICAgICAgIC4uLgor
ICAgICAgICAgICAgOC4gSWYgZ2xvYmFsIGlzIGZhbHNlIGFuZCBzdGlja3kgaXMgZmFsc2UsIHNl
dCBsYXN0SW5kZXggdG8gMC4KKworICAgICAgICBUaGF0IGlzLCB3ZSdyZSBhbHdheXMgb2JsaWdl
ZCB0byB2ZXJpZnkgbGFzdEluZGV4LCBldmVuIHdoZW4gd2UgZG9uJ3QgdXNlIHRoZSB2YWx1ZS4K
KworICAgICAgICBERkcgaW4gcGFydGljdWxhciBtdXN0IG1ha2Ugc3VyZSBzdHJlbmd0aCByZWR1
Y3Rpb25zIGRvbid0IGFwcGx5IHdoZW4gbGFzdEluZGV4IGlzbid0IGFuIHVuc2lnbmVkIGludGVn
ZXIuCisKKyAgICAgICAgKiBkZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6U3RyZW5ndGhSZWR1Y3Rpb25QaGFzZTo6aGFuZGxlTm9kZSk6CisgICAg
ICAgICogcnVudGltZS9SZWdFeHBPYmplY3RJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OlJlZ0V4
cE9iamVjdDo6ZXhlY0lubGluZSk6CisKIDIwMjAtMDMtMjAgIFJvc3MgS2lyc2xpbmcgIDxyb3Nz
LmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0Zv
clJlZ0V4cFNwbGl0IGRvZXNuJ3QgY2hlY2sgZm9yIEBAbWF0Y2ggb3ZlcnJpZGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2Uu
Y3BwCmluZGV4IGIzZTQxZDhkN2UxZGUzNmUyNzE2MTNhNDYyNTU3NmM5ZjY2ZTc2MmMuLjM0YTU2
ZjhlNDgxMTUwNzE5NmU5YTM2NmZmYWI5ZjM0Nzk1MjUxMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcApAQCAt
NTM1LDYgKzUzNSw3IEBAIHByaXZhdGU6CiAKICAgICAgICAgICAgIEFTU0VSVChtX25vZGUtPm9w
KCkgIT0gUmVnRXhwTWF0Y2hGYXN0KTsKIAorICAgICAgICAgICAgYm9vbCBoYXNJbmRldGVybWlu
YXRlTGFzdEluZGV4ID0gZmFsc2U7CiAgICAgICAgICAgICBhdXRvIGZvbGRUb0NvbnN0YW50ID0g
WyZdIHsKICAgICAgICAgICAgICAgICBOb2RlKiBzdHJpbmdOb2RlID0gbnVsbHB0cjsKICAgICAg
ICAgICAgICAgICBpZiAobV9ub2RlLT5vcCgpID09IFJlZ0V4cEV4ZWNOb25HbG9iYWxPclN0aWNr
eSkKQEAgLTU3MSwzNyArNTcyLDM2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBsYXN0SW5kZXg7Ci0gICAgICAgICAgICAgICAgaWYgKHJlZ0V4cC0+Z2xvYmFsT3JTdGlja3ko
KSkgewotICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHdpbGwgb25seSB3b3JrIGlmIHdlIGNh
biBwcm92ZSB3aGF0IHRoZSB2YWx1ZSBvZiBsYXN0SW5kZXggaXMuIFRvIGRvIHRoaXMKLSAgICAg
ICAgICAgICAgICAgICAgLy8gc2FmZWx5LCB3ZSBuZWVkIHRvIGV4ZWN1dGUgdGhlIGluc2VydGlv
biBzZXQgc28gdGhhdCB3ZSBzZWUgYW55IHByZXZpb3VzIHN0cmVuZ3RoCi0gICAgICAgICAgICAg
ICAgICAgIC8vIHJlZHVjdGlvbnMuIFRoaXMgaXMgbmVlZGVkIGZvciBzb3VuZG5lc3Mgc2luY2Ug
b3RoZXJ3aXNlIHRoZSBlZmZlY3RmdWxuZXNzIG9mIGFueQotICAgICAgICAgICAgICAgICAgICAv
LyBwcmV2aW91cyBzdHJlbmd0aCByZWR1Y3Rpb25zIHdvdWxkIGJlIGludmlzaWJsZSB0byB1cy4K
LSAgICAgICAgICAgICAgICAgICAgQVNTRVJUKHJlZ0V4cE9iamVjdE5vZGUpOwotICAgICAgICAg
ICAgICAgICAgICBleGVjdXRlSW5zZXJ0aW9uU2V0KCk7Ci0gICAgICAgICAgICAgICAgICAgIGxh
c3RJbmRleCA9IFVJTlRfTUFYOwotICAgICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIG90
aGVyTm9kZUluZGV4ID0gbV9ub2RlSW5kZXg7IG90aGVyTm9kZUluZGV4LS07KSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBOb2RlKiBvdGhlck5vZGUgPSBtX2Jsb2NrLT5hdChvdGhlck5vZGVJ
bmRleCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAob3RoZXJOb2RlID09IHJlZ0V4cE9i
amVjdE5vZGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0SW5kZXggPSAwOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG90aGVyTm9kZS0+b3AoKSA9PSBTZXRS
ZWdFeHBPYmplY3RMYXN0SW5kZXgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBvdGhl
ck5vZGUtPmNoaWxkMSgpID09IHJlZ0V4cE9iamVjdE5vZGUKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAmJiBvdGhlck5vZGUtPmNoaWxkMigpLT5pc0ludDMyQ29uc3RhbnQoKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICYmIG90aGVyTm9kZS0+Y2hpbGQyKCktPmFzSW50MzIoKSA+
PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdEluZGV4ID0gc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KG90aGVyTm9kZS0+Y2hpbGQyKCktPmFzSW50MzIoKSk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBpZiAod3JpdGVzT3ZlcmxhcChtX2dyYXBoLCBvdGhlck5vZGUs
IFJlZ0V4cE9iamVjdF9sYXN0SW5kZXgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBvbmx5IHdvcmsgaWYgd2UgY2FuIHBy
b3ZlIHdoYXQgdGhlIHZhbHVlIG9mIGxhc3RJbmRleCBpcy4gVG8gZG8gdGhpcworICAgICAgICAg
ICAgICAgIC8vIHNhZmVseSwgd2UgbmVlZCB0byBleGVjdXRlIHRoZSBpbnNlcnRpb24gc2V0IHNv
IHRoYXQgd2Ugc2VlIGFueSBwcmV2aW91cyBzdHJlbmd0aAorICAgICAgICAgICAgICAgIC8vIHJl
ZHVjdGlvbnMuIFRoaXMgaXMgbmVlZGVkIGZvciBzb3VuZG5lc3Mgc2luY2Ugb3RoZXJ3aXNlIHRo
ZSBlZmZlY3RmdWxuZXNzIG9mIGFueQorICAgICAgICAgICAgICAgIC8vIHByZXZpb3VzIHN0cmVu
Z3RoIHJlZHVjdGlvbnMgd291bGQgYmUgaW52aXNpYmxlIHRvIHVzLgorICAgICAgICAgICAgICAg
IEFTU0VSVChyZWdFeHBPYmplY3ROb2RlKTsKKyAgICAgICAgICAgICAgICBleGVjdXRlSW5zZXJ0
aW9uU2V0KCk7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgbGFzdEluZGV4ID0gVUlOVF9NQVg7
CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBvdGhlck5vZGVJbmRleCA9IG1fbm9kZUlu
ZGV4OyBvdGhlck5vZGVJbmRleC0tOykgeworICAgICAgICAgICAgICAgICAgICBOb2RlKiBvdGhl
ck5vZGUgPSBtX2Jsb2NrLT5hdChvdGhlck5vZGVJbmRleCk7CisgICAgICAgICAgICAgICAgICAg
IGlmIChvdGhlck5vZGUgPT0gcmVnRXhwT2JqZWN0Tm9kZSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgbGFzdEluZGV4ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGlmIChsYXN0SW5kZXggPT0g
VUlOVF9NQVgpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIkdpdmluZyB1cCBiZWNhdXNlIHRoZSBsYXN0
IGluZGV4IGlzIG5vdCBrbm93bi5cbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBpZiAob3RoZXJOb2RlLT5vcCgpID09IFNldFJl
Z0V4cE9iamVjdExhc3RJbmRleAorICAgICAgICAgICAgICAgICAgICAgICAgJiYgb3RoZXJOb2Rl
LT5jaGlsZDEoKSA9PSByZWdFeHBPYmplY3ROb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAm
JiBvdGhlck5vZGUtPmNoaWxkMigpLT5pc0ludDMyQ29uc3RhbnQoKQorICAgICAgICAgICAgICAg
ICAgICAgICAgJiYgb3RoZXJOb2RlLT5jaGlsZDIoKS0+YXNJbnQzMigpID49IDApIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGxhc3RJbmRleCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihvdGhl
ck5vZGUtPmNoaWxkMigpLT5hc0ludDMyKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKHdyaXRlc092ZXJsYXAobV9ncmFwaCwgb3RoZXJOb2RlLCBSZWdF
eHBPYmplY3RfbGFzdEluZGV4KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobGFzdEluZGV4ID09IFVJTlRfTUFY
KSB7CisgICAgICAgICAgICAgICAgICAgIGhhc0luZGV0ZXJtaW5hdGVMYXN0SW5kZXggPSB0cnVl
OworICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGRhdGFMb2coIkdpdmluZyB1cCBiZWNhdXNlIHRoZSBsYXN0IGluZGV4IGlzIG5vdCBrbm93
bi5cbiIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIGlmICghcmVnRXhwLT5nbG9iYWxPclN0aWNreSgpKQogICAg
ICAgICAgICAgICAgICAgICBsYXN0SW5kZXggPSAwOwogCiAgICAgICAgICAgICAgICAgbV9ncmFw
aC53YXRjaHBvaW50cygpLmFkZExhemlseShnbG9iYWxPYmplY3QtPmhhdmluZ0FCYWRUaW1lV2F0
Y2hwb2ludCgpKTsKQEAgLTgwMCw3ICs4MDAsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgaWYg
KGZvbGRUb0NvbnN0YW50KCkpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAg
IGlmIChjb252ZXJ0VG9TdGF0aWMoKSkKKyAgICAgICAgICAgIGlmICghaGFzSW5kZXRlcm1pbmF0
ZUxhc3RJbmRleCAmJiBjb252ZXJ0VG9TdGF0aWMoKSkKICAgICAgICAgICAgICAgICBicmVhazsK
IAogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBPYmplY3RJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBPYmplY3RJbmxpbmVzLmgKaW5kZXggMGQ5ODQzZmQ2OWU5ZGYyNzQyYTViNmU5
OGJhODA2OGY5MWZlNTIyYS4uOWQxMzgwYThkZTVlM2I2NDIwOWQwNmIzYWIwZTFlOTI3ZmM5YTBl
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0
SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVj
dElubGluZXMuaApAQCAtNjksMTUgKzY5LDEzIEBAIGlubGluZSBKU1ZhbHVlIFJlZ0V4cE9iamVj
dDo6ZXhlY0lubGluZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyoKICAg
ICBTdHJpbmcgaW5wdXQgPSBzdHJpbmctPnZhbHVlKGdsb2JhbE9iamVjdCk7CiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAotICAgIGJvb2wgZ2xvYmFsT3JTdGlja3kgPSBy
ZWdFeHAtPmdsb2JhbE9yU3RpY2t5KCk7CisgICAgdW5zaWduZWQgbGFzdEluZGV4ID0gZ2V0UmVn
RXhwT2JqZWN0TGFzdEluZGV4QXNVbnNpZ25lZChnbG9iYWxPYmplY3QsIHRoaXMsIGlucHV0KTsK
KyAgICBFWENFUFRJT05fQVNTRVJUKCFzY29wZS5leGNlcHRpb24oKSB8fCBsYXN0SW5kZXggPT0g
VUlOVF9NQVgpOworICAgIGlmIChsYXN0SW5kZXggPT0gVUlOVF9NQVgpCisgICAgICAgIHJldHVy
biBqc051bGwoKTsKIAotICAgIHVuc2lnbmVkIGxhc3RJbmRleDsKLSAgICBpZiAoZ2xvYmFsT3JT
dGlja3kpIHsKLSAgICAgICAgbGFzdEluZGV4ID0gZ2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4QXNV
bnNpZ25lZChnbG9iYWxPYmplY3QsIHRoaXMsIGlucHV0KTsKLSAgICAgICAgRVhDRVBUSU9OX0FT
U0VSVCghc2NvcGUuZXhjZXB0aW9uKCkgfHwgbGFzdEluZGV4ID09IFVJTlRfTUFYKTsKLSAgICAg
ICAgaWYgKGxhc3RJbmRleCA9PSBVSU5UX01BWCkKLSAgICAgICAgICAgIHJldHVybiBqc051bGwo
KTsKLSAgICB9IGVsc2UKKyAgICBib29sIGdsb2JhbE9yU3RpY2t5ID0gcmVnRXhwLT5nbG9iYWxP
clN0aWNreSgpOworICAgIGlmICghZ2xvYmFsT3JTdGlja3kpCiAgICAgICAgIGxhc3RJbmRleCA9
IDA7CiAgICAgCiAgICAgTWF0Y2hSZXN1bHQgcmVzdWx0OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9D
aGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCA4NGZlZGQ4ZmI2ZDlmOWQxYzg5NmRm
NDkyOTA2ZmJkM2I1NGNhNWVlLi4zM2ZiODJiZWM4OTJkODAzNTgzYTg1N2UzYTZlNTVkMTk1ZmNj
Yzc2IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTAzLTIwICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJz
bGluZ0Bzb255LmNvbT4KKworICAgICAgICBSZWdFeHAucHJvdG90eXBlLmV4ZWMgbXVzdCBhbHdh
eXMgYWNjZXNzIGxhc3RJbmRleAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA5Mzc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBzdHJlc3MvcmVnZXhwLWV4ZWMtYWx3YXlzLWFjY2Vzc2VzLWxhc3RpbmRl
eC5qczogQWRkZWQuCisgICAgICAgICogdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbDogTWFyayBm
b3VyIHRlc3QgY2FzZXMgYXMgcGFzc2luZy4KKwogMjAyMC0wMy0yMCAgUm9zcyBLaXJzbGluZyAg
PHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAgaGFzT2JzZXJ2YWJsZVNpZGVFZmZl
Y3RzRm9yUmVnRXhwU3BsaXQgZG9lc24ndCBjaGVjayBmb3IgQEBtYXRjaCBvdmVycmlkZQpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvcmVnZXhwLWV4ZWMtYWx3YXlzLWFjY2Vzc2VzLWxhc3Rp
bmRleC5qcyBiL0pTVGVzdHMvc3RyZXNzL3JlZ2V4cC1leGVjLWFsd2F5cy1hY2Nlc3Nlcy1sYXN0
aW5kZXguanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMWI2NzdkODY0NzkwNDA0ZTNiOWUyMDYxZjBlNWQ0OTlkODU3
ZGUxMQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL3JlZ2V4cC1leGVjLWFsd2F5
cy1hY2Nlc3Nlcy1sYXN0aW5kZXguanMKQEAgLTAsMCArMSwyMyBAQAorZnVuY3Rpb24gc2hvdWxk
QmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoYGV4cGVjdGVkICR7ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1
YWx9YCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKSB7CisgIGNvbnN0IHIgPSAvLi87CisKKyAgbGV0
IGNvdW50ID0gMDsKKyAgci5sYXN0SW5kZXggPSB7CisgICAgdmFsdWVPZigpIHsKKyAgICAgIGNv
dW50Kys7CisgICAgICByZXR1cm4gMDsKKyAgICB9CisgIH07CisKKyAgci5leGVjKCdhYmMnKTsK
KyAgc2hvdWxkQmUoY291bnQsIDEpOworfQorbm9JbmxpbmUodGVzdCk7CisKK2ZvciAobGV0IGkg
PSAwOyBpIDwgMWU1OyBpKyspCisgIHRlc3QoKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2
Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbApp
bmRleCA1YjJiZWZhOGNlZmJlMzc2ZjJkMzU1MzY4MGZlODg2OGE5NWQ5NjUwLi5lMjdmZGJjZjVk
YjExMzNiZGYzNTRhMmRlZTJiNmU1MDcwNzAwZjY2IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3Qy
NjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55
YW1sCkBAIC0xNDk1LDEyICsxNDk1LDYgQEAgdGVzdC9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlw
ZS9kb3RBbGwvY3Jvc3MtcmVhbG0uanM6CiB0ZXN0L2J1aWx0LWlucy9SZWdFeHAvcHJvdG90eXBl
L2V4ZWMvUzE1LjEwLjYuMl9BNV9UMy5qczoKICAgZGVmYXVsdDogIlR5cGVFcnJvcjogbnVsbCBp
cyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdfX2V4ZWN1dGVkWzBdJykiCiAgIHN0cmljdCBt
b2RlOiAiVHlwZUVycm9yOiBudWxsIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ19fZXhl
Y3V0ZWRbMF0nKSIKLXRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9wcm90b3R5cGUvZXhlYy9mYWlsdXJl
LWxhc3RpbmRleC1hY2Nlc3MuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVk
IFNhbWVWYWx1ZSjCqzDCuywgwqsxwrspIHRvIGJlIHRydWUnCi0gIHN0cmljdCBtb2RlOiAnVGVz
dDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqswwrssIMKrMcK7KSB0byBiZSB0cnVlJwot
dGVzdC9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlwZS9leGVjL3N1Y2Nlc3MtbGFzdGluZGV4LWFj
Y2Vzcy5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKr
MMK7LCDCqzHCuykgdG8gYmUgdHJ1ZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4
cGVjdGVkIFNhbWVWYWx1ZSjCqzDCuywgwqsxwrspIHRvIGJlIHRydWUnCiB0ZXN0L2J1aWx0LWlu
cy9SZWdFeHAvcHJvdG90eXBlL2V4ZWMvdS1sYXN0aW5kZXgtYWR2LmpzOgogICBkZWZhdWx0OiAn
VGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqvvv73CuywgwqtudWxswrspIHRvIGJl
IHRydWUnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUo
wqvvv73CuywgwqtudWxswrspIHRvIGJlIHRydWUnCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394162</attachid>
            <date>2020-03-21 00:34:10 -0700</date>
            <delta_ts>2020-03-21 12:34:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209375-20200321003410.patch</filename>
            <type>text/plain</type>
            <size>11281</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4ODA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YmFiM2JmZmM0NjY2ODk5MWJhOTk2NWYzZmZjMWFiNmU4ZjQ2NGRlLi44NmQ3NzkxZDUxMjVlODli
YWM4YTljZDU5ZTJhYzJkNjczNzVhZjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAyMC0wMy0yMCAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgUmVnRXhwLnByb3RvdHlwZS5leGVjIG11c3QgYWx3YXlzIGFjY2Vz
cyBsYXN0SW5kZXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwOTM3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEZyb20gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1yZWdleHBidWlsdGluZXhlYzoK
KyAgICAgICAgICAyMS4yLjUuMi4yIFJ1bnRpbWUgU2VtYW50aWNzOiBSZWdFeHBCdWlsdGluRXhl
YyAoIFIsIFMgKQorICAgICAgICAgICAgLi4uCisgICAgICAgICAgICA0LiBMZXQgbGFzdEluZGV4
IGJlID8gVG9MZW5ndGgoPyBHZXQoUiwgImxhc3RJbmRleCIpKS4KKyAgICAgICAgICAgIC4uLgor
ICAgICAgICAgICAgOC4gSWYgZ2xvYmFsIGlzIGZhbHNlIGFuZCBzdGlja3kgaXMgZmFsc2UsIHNl
dCBsYXN0SW5kZXggdG8gMC4KKworICAgICAgICBUaGF0IGlzLCB3ZSdyZSBhbHdheXMgb2JsaWdl
ZCB0byB2ZXJpZnkgbGFzdEluZGV4LCBldmVuIHdoZW4gd2UgZG9uJ3QgdXNlIHRoZSB2YWx1ZS4K
KworICAgICAgICBERkcgaW4gcGFydGljdWxhciBtdXN0IG1ha2Ugc3VyZSBzdHJlbmd0aCByZWR1
Y3Rpb25zIGRvbid0IGFwcGx5IHdoZW4gbGFzdEluZGV4IGlzbid0IGFuIHVuc2lnbmVkIGludGVn
ZXIuCisKKyAgICAgICAgKiBkZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6U3RyZW5ndGhSZWR1Y3Rpb25QaGFzZTo6aGFuZGxlTm9kZSk6CisgICAg
ICAgICogcnVudGltZS9SZWdFeHBPYmplY3RJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OmdldFJl
Z0V4cE9iamVjdExhc3RJbmRleEFzVW5zaWduZWQpOgorICAgICAgICAoSlNDOjpSZWdFeHBPYmpl
Y3Q6OmV4ZWNJbmxpbmUpOgorICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6Om1hdGNoSW5saW5l
KToKKwogMjAyMC0wMy0yMCAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+
CiAKICAgICAgICAgaGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yUmVnRXhwU3BsaXQgZG9lc24n
dCBjaGVjayBmb3IgQEBtYXRjaCBvdmVycmlkZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAKaW5kZXggYjNlNDFkOGQ3
ZTFkZTM2ZTI3MTYxM2E0NjI1NTc2YzlmNjZlNzYyYy4uMzRhNTZmOGU0ODExNTA3MTk2ZTlhMzY2
ZmZhYjlmMzQ3OTUyNTExYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwCkBAIC01MzUsNiArNTM1LDcgQEAgcHJp
dmF0ZToKIAogICAgICAgICAgICAgQVNTRVJUKG1fbm9kZS0+b3AoKSAhPSBSZWdFeHBNYXRjaEZh
c3QpOwogCisgICAgICAgICAgICBib29sIGhhc0luZGV0ZXJtaW5hdGVMYXN0SW5kZXggPSBmYWxz
ZTsKICAgICAgICAgICAgIGF1dG8gZm9sZFRvQ29uc3RhbnQgPSBbJl0gewogICAgICAgICAgICAg
ICAgIE5vZGUqIHN0cmluZ05vZGUgPSBudWxscHRyOwogICAgICAgICAgICAgICAgIGlmIChtX25v
ZGUtPm9wKCkgPT0gUmVnRXhwRXhlY05vbkdsb2JhbE9yU3RpY2t5KQpAQCAtNTcxLDM3ICs1NzIs
MzYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxhc3RJbmRleDsKLSAgICAg
ICAgICAgICAgICBpZiAocmVnRXhwLT5nbG9iYWxPclN0aWNreSgpKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIC8vIFRoaXMgd2lsbCBvbmx5IHdvcmsgaWYgd2UgY2FuIHByb3ZlIHdoYXQgdGhlIHZh
bHVlIG9mIGxhc3RJbmRleCBpcy4gVG8gZG8gdGhpcwotICAgICAgICAgICAgICAgICAgICAvLyBz
YWZlbHksIHdlIG5lZWQgdG8gZXhlY3V0ZSB0aGUgaW5zZXJ0aW9uIHNldCBzbyB0aGF0IHdlIHNl
ZSBhbnkgcHJldmlvdXMgc3RyZW5ndGgKLSAgICAgICAgICAgICAgICAgICAgLy8gcmVkdWN0aW9u
cy4gVGhpcyBpcyBuZWVkZWQgZm9yIHNvdW5kbmVzcyBzaW5jZSBvdGhlcndpc2UgdGhlIGVmZmVj
dGZ1bG5lc3Mgb2YgYW55Ci0gICAgICAgICAgICAgICAgICAgIC8vIHByZXZpb3VzIHN0cmVuZ3Ro
IHJlZHVjdGlvbnMgd291bGQgYmUgaW52aXNpYmxlIHRvIHVzLgotICAgICAgICAgICAgICAgICAg
ICBBU1NFUlQocmVnRXhwT2JqZWN0Tm9kZSk7Ci0gICAgICAgICAgICAgICAgICAgIGV4ZWN1dGVJ
bnNlcnRpb25TZXQoKTsKLSAgICAgICAgICAgICAgICAgICAgbGFzdEluZGV4ID0gVUlOVF9NQVg7
Ci0gICAgICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgb3RoZXJOb2RlSW5kZXggPSBtX25v
ZGVJbmRleDsgb3RoZXJOb2RlSW5kZXgtLTspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIE5v
ZGUqIG90aGVyTm9kZSA9IG1fYmxvY2stPmF0KG90aGVyTm9kZUluZGV4KTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChvdGhlck5vZGUgPT0gcmVnRXhwT2JqZWN0Tm9kZSkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxhc3RJbmRleCA9IDA7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBpZiAob3RoZXJOb2RlLT5vcCgpID09IFNldFJlZ0V4cE9iamVjdExhc3RJbmRl
eAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIG90aGVyTm9kZS0+Y2hpbGQxKCkgPT0g
cmVnRXhwT2JqZWN0Tm9kZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIG90aGVyTm9k
ZS0+Y2hpbGQyKCktPmlzSW50MzJDb25zdGFudCgpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJiYgb3RoZXJOb2RlLT5jaGlsZDIoKS0+YXNJbnQzMigpID49IDApIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsYXN0SW5kZXggPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ob3RoZXJO
b2RlLT5jaGlsZDIoKS0+YXNJbnQzMigpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAg
IGlmICh3cml0ZXNPdmVybGFwKG1fZ3JhcGgsIG90aGVyTm9kZSwgUmVnRXhwT2JqZWN0X2xhc3RJ
bmRleCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgLy8gVGhpcyB3aWxsIG9ubHkgd29yayBpZiB3ZSBjYW4gcHJvdmUgd2hhdCB0aGUgdmFsdWUg
b2YgbGFzdEluZGV4IGlzLiBUbyBkbyB0aGlzCisgICAgICAgICAgICAgICAgLy8gc2FmZWx5LCB3
ZSBuZWVkIHRvIGV4ZWN1dGUgdGhlIGluc2VydGlvbiBzZXQgc28gdGhhdCB3ZSBzZWUgYW55IHBy
ZXZpb3VzIHN0cmVuZ3RoCisgICAgICAgICAgICAgICAgLy8gcmVkdWN0aW9ucy4gVGhpcyBpcyBu
ZWVkZWQgZm9yIHNvdW5kbmVzcyBzaW5jZSBvdGhlcndpc2UgdGhlIGVmZmVjdGZ1bG5lc3Mgb2Yg
YW55CisgICAgICAgICAgICAgICAgLy8gcHJldmlvdXMgc3RyZW5ndGggcmVkdWN0aW9ucyB3b3Vs
ZCBiZSBpbnZpc2libGUgdG8gdXMuCisgICAgICAgICAgICAgICAgQVNTRVJUKHJlZ0V4cE9iamVj
dE5vZGUpOworICAgICAgICAgICAgICAgIGV4ZWN1dGVJbnNlcnRpb25TZXQoKTsKKyAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBsYXN0SW5kZXggPSBVSU5UX01BWDsKKyAgICAgICAgICAgICAgICBm
b3IgKHVuc2lnbmVkIG90aGVyTm9kZUluZGV4ID0gbV9ub2RlSW5kZXg7IG90aGVyTm9kZUluZGV4
LS07KSB7CisgICAgICAgICAgICAgICAgICAgIE5vZGUqIG90aGVyTm9kZSA9IG1fYmxvY2stPmF0
KG90aGVyTm9kZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG90aGVyTm9kZSA9PSBy
ZWdFeHBPYmplY3ROb2RlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsYXN0SW5kZXggPSAw
OworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RJbmRleCA9PSBVSU5UX01BWCkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGF0YUxvZygiR2l2aW5nIHVwIGJlY2F1c2UgdGhlIGxhc3QgaW5kZXggaXMgbm90IGtub3du
LlxuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChvdGhlck5vZGUtPm9wKCkgPT0gU2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4
CisgICAgICAgICAgICAgICAgICAgICAgICAmJiBvdGhlck5vZGUtPmNoaWxkMSgpID09IHJlZ0V4
cE9iamVjdE5vZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICYmIG90aGVyTm9kZS0+Y2hpbGQy
KCktPmlzSW50MzJDb25zdGFudCgpCisgICAgICAgICAgICAgICAgICAgICAgICAmJiBvdGhlck5v
ZGUtPmNoaWxkMigpLT5hc0ludDMyKCkgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAg
bGFzdEluZGV4ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG90aGVyTm9kZS0+Y2hpbGQyKCktPmFz
SW50MzIoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBpZiAo
d3JpdGVzT3ZlcmxhcChtX2dyYXBoLCBvdGhlck5vZGUsIFJlZ0V4cE9iamVjdF9sYXN0SW5kZXgp
KQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIGlmIChsYXN0SW5kZXggPT0gVUlOVF9NQVgpIHsKKyAgICAgICAgICAgICAg
ICAgICAgaGFzSW5kZXRlcm1pbmF0ZUxhc3RJbmRleCA9IHRydWU7CisgICAgICAgICAgICAgICAg
ICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiR2l2aW5n
IHVwIGJlY2F1c2UgdGhlIGxhc3QgaW5kZXggaXMgbm90IGtub3duLlxuIik7CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgaWYgKCFyZWdFeHAtPmdsb2JhbE9yU3RpY2t5KCkpCiAgICAgICAgICAgICAgICAgICAgIGxh
c3RJbmRleCA9IDA7CiAKICAgICAgICAgICAgICAgICBtX2dyYXBoLndhdGNocG9pbnRzKCkuYWRk
TGF6aWx5KGdsb2JhbE9iamVjdC0+aGF2aW5nQUJhZFRpbWVXYXRjaHBvaW50KCkpOwpAQCAtODAw
LDcgKzgwMCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBpZiAoZm9sZFRvQ29uc3RhbnQoKSkK
ICAgICAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICAgICAgaWYgKGNvbnZlcnRUb1N0YXRp
YygpKQorICAgICAgICAgICAgaWYgKCFoYXNJbmRldGVybWluYXRlTGFzdEluZGV4ICYmIGNvbnZl
cnRUb1N0YXRpYygpKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICBicmVh
azsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVj
dElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdElu
bGluZXMuaAppbmRleCAwZDk4NDNmZDY5ZTlkZjI3NDJhNWI2ZTk4YmE4MDY4ZjkxZmU1MjJhLi5m
ZDEwMTMxYzBkZjhiZmUxOWQzZTRjY2JiN2FkN2Q4ZjhkYzMwOWIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3RJbmxpbmVzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0SW5saW5lcy5oCkBAIC00Miwx
OSArNDIsMTMgQEAgQUxXQVlTX0lOTElORSB1bnNpZ25lZCBnZXRSZWdFeHBPYmplY3RMYXN0SW5k
ZXhBc1Vuc2lnbmVkKAogICAgIHVuc2lnbmVkIGxhc3RJbmRleDsKICAgICBpZiAoTElLRUxZKGpz
TGFzdEluZGV4LmlzVUludDMyKCkpKSB7CiAgICAgICAgIGxhc3RJbmRleCA9IGpzTGFzdEluZGV4
LmFzVUludDMyKCk7Ci0gICAgICAgIGlmIChsYXN0SW5kZXggPiBpbnB1dC5sZW5ndGgoKSkgewot
ICAgICAgICAgICAgc2NvcGUucmVsZWFzZSgpOwotICAgICAgICAgICAgcmVnRXhwT2JqZWN0LT5z
ZXRMYXN0SW5kZXgoZ2xvYmFsT2JqZWN0LCAwKTsKKyAgICAgICAgaWYgKGxhc3RJbmRleCA+IGlu
cHV0Lmxlbmd0aCgpKQogICAgICAgICAgICAgcmV0dXJuIFVJTlRfTUFYOwotICAgICAgICB9CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgZG91YmxlIGRvdWJsZUxhc3RJbmRleCA9IGpzTGFzdEluZGV4
LnRvSW50ZWdlcihnbG9iYWxPYmplY3QpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCBVSU5UX01BWCk7Ci0gICAgICAgIGlmIChkb3VibGVMYXN0SW5kZXggPCAwIHx8IGRvdWJs
ZUxhc3RJbmRleCA+IGlucHV0Lmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICBzY29wZS5yZWxlYXNl
KCk7Ci0gICAgICAgICAgICByZWdFeHBPYmplY3QtPnNldExhc3RJbmRleChnbG9iYWxPYmplY3Qs
IDApOworICAgICAgICBpZiAoZG91YmxlTGFzdEluZGV4IDwgMCB8fCBkb3VibGVMYXN0SW5kZXgg
PiBpbnB1dC5sZW5ndGgoKSkKICAgICAgICAgICAgIHJldHVybiBVSU5UX01BWDsKLSAgICAgICAg
fQogICAgICAgICBsYXN0SW5kZXggPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZG91YmxlTGFzdElu
ZGV4KTsKICAgICB9CiAgICAgcmV0dXJuIGxhc3RJbmRleDsKQEAgLTcwLDE0ICs2NCwxNSBAQCBp
bmxpbmUgSlNWYWx1ZSBSZWdFeHBPYmplY3Q6OmV4ZWNJbmxpbmUoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNTdHJpbmcqCiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9
KTsKIAogICAgIGJvb2wgZ2xvYmFsT3JTdGlja3kgPSByZWdFeHAtPmdsb2JhbE9yU3RpY2t5KCk7
CisgICAgdW5zaWduZWQgbGFzdEluZGV4ID0gZ2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4QXNVbnNp
Z25lZChnbG9iYWxPYmplY3QsIHRoaXMsIGlucHV0KTsKKyAgICBFWENFUFRJT05fQVNTRVJUKCFz
Y29wZS5leGNlcHRpb24oKSB8fCBsYXN0SW5kZXggPT0gVUlOVF9NQVgpOworICAgIGlmIChsYXN0
SW5kZXggPT0gVUlOVF9NQVggJiYgZ2xvYmFsT3JTdGlja3kpIHsKKyAgICAgICAgc2NvcGUucmVs
ZWFzZSgpOworICAgICAgICBzZXRMYXN0SW5kZXgoZ2xvYmFsT2JqZWN0LCAwKTsKKyAgICAgICAg
cmV0dXJuIGpzTnVsbCgpOworICAgIH0KIAotICAgIHVuc2lnbmVkIGxhc3RJbmRleDsKLSAgICBp
ZiAoZ2xvYmFsT3JTdGlja3kpIHsKLSAgICAgICAgbGFzdEluZGV4ID0gZ2V0UmVnRXhwT2JqZWN0
TGFzdEluZGV4QXNVbnNpZ25lZChnbG9iYWxPYmplY3QsIHRoaXMsIGlucHV0KTsKLSAgICAgICAg
RVhDRVBUSU9OX0FTU0VSVCghc2NvcGUuZXhjZXB0aW9uKCkgfHwgbGFzdEluZGV4ID09IFVJTlRf
TUFYKTsKLSAgICAgICAgaWYgKGxhc3RJbmRleCA9PSBVSU5UX01BWCkKLSAgICAgICAgICAgIHJl
dHVybiBqc051bGwoKTsKLSAgICB9IGVsc2UKKyAgICBpZiAoIWdsb2JhbE9yU3RpY2t5KQogICAg
ICAgICBsYXN0SW5kZXggPSAwOwogICAgIAogICAgIE1hdGNoUmVzdWx0IHJlc3VsdDsKQEAgLTEx
Niw4ICsxMTEsMTEgQEAgaW5saW5lIE1hdGNoUmVzdWx0IFJlZ0V4cE9iamVjdDo6bWF0Y2hJbmxp
bmUoCiAKICAgICB1bnNpZ25lZCBsYXN0SW5kZXggPSBnZXRSZWdFeHBPYmplY3RMYXN0SW5kZXhB
c1Vuc2lnbmVkKGdsb2JhbE9iamVjdCwgdGhpcywgaW5wdXQpOwogICAgIEVYQ0VQVElPTl9BU1NF
UlQoIXNjb3BlLmV4Y2VwdGlvbigpIHx8IChsYXN0SW5kZXggPT0gVUlOVF9NQVgpKTsKLSAgICBp
ZiAobGFzdEluZGV4ID09IFVJTlRfTUFYKQorICAgIGlmIChsYXN0SW5kZXggPT0gVUlOVF9NQVgp
IHsKKyAgICAgICAgc2NvcGUucmVsZWFzZSgpOworICAgICAgICBzZXRMYXN0SW5kZXgoZ2xvYmFs
T2JqZWN0LCAwKTsKICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0OjpmYWlsZWQoKTsKKyAgICB9
CiAgICAgCiAgICAgTWF0Y2hSZXN1bHQgcmVzdWx0ID0gZ2xvYmFsT2JqZWN0LT5yZWdFeHBHbG9i
YWxEYXRhKCkucGVyZm9ybU1hdGNoKHZtLCBnbG9iYWxPYmplY3QsIHJlZ0V4cCwgc3RyaW5nLCBp
bnB1dCwgbGFzdEluZGV4KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCA4
NGZlZGQ4ZmI2ZDlmOWQxYzg5NmRmNDkyOTA2ZmJkM2I1NGNhNWVlLi4zM2ZiODJiZWM4OTJkODAz
NTgzYTg1N2UzYTZlNTVkMTk1ZmNjYzc2IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZwor
KysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTAzLTIwICBSb3Nz
IEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KKworICAgICAgICBSZWdFeHAucHJv
dG90eXBlLmV4ZWMgbXVzdCBhbHdheXMgYWNjZXNzIGxhc3RJbmRleAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5Mzc1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvcmVnZXhwLWV4ZWMtYWx3
YXlzLWFjY2Vzc2VzLWxhc3RpbmRleC5qczogQWRkZWQuCisgICAgICAgICogdGVzdDI2Mi9leHBl
Y3RhdGlvbnMueWFtbDogTWFyayBmb3VyIHRlc3QgY2FzZXMgYXMgcGFzc2luZy4KKwogMjAyMC0w
My0yMCAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAg
aGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yUmVnRXhwU3BsaXQgZG9lc24ndCBjaGVjayBmb3Ig
QEBtYXRjaCBvdmVycmlkZQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvcmVnZXhwLWV4ZWMt
YWx3YXlzLWFjY2Vzc2VzLWxhc3RpbmRleC5qcyBiL0pTVGVzdHMvc3RyZXNzL3JlZ2V4cC1leGVj
LWFsd2F5cy1hY2Nlc3Nlcy1sYXN0aW5kZXguanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWI2NzdkODY0NzkwNDA0
ZTNiOWUyMDYxZjBlNWQ0OTlkODU3ZGUxMQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL3JlZ2V4cC1leGVjLWFsd2F5cy1hY2Nlc3Nlcy1sYXN0aW5kZXguanMKQEAgLTAsMCArMSwy
MyBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1
YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGV4cGVjdGVkICR7ZXhw
ZWN0ZWR9IGJ1dCBnb3QgJHthY3R1YWx9YCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKSB7CisgIGNv
bnN0IHIgPSAvLi87CisKKyAgbGV0IGNvdW50ID0gMDsKKyAgci5sYXN0SW5kZXggPSB7CisgICAg
dmFsdWVPZigpIHsKKyAgICAgIGNvdW50Kys7CisgICAgICByZXR1cm4gMDsKKyAgICB9CisgIH07
CisKKyAgci5leGVjKCdhYmMnKTsKKyAgc2hvdWxkQmUoY291bnQsIDEpOworfQorbm9JbmxpbmUo
dGVzdCk7CisKK2ZvciAobGV0IGkgPSAwOyBpIDwgMWU1OyBpKyspCisgIHRlc3QoKTsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVzdHMvdGVzdDI2
Mi9leHBlY3RhdGlvbnMueWFtbAppbmRleCA1YjJiZWZhOGNlZmJlMzc2ZjJkMzU1MzY4MGZlODg2
OGE5NWQ5NjUwLi5lMjdmZGJjZjVkYjExMzNiZGYzNTRhMmRlZTJiNmU1MDcwNzAwZjY2IDEwMDY0
NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNUZXN0cy90
ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCkBAIC0xNDk1LDEyICsxNDk1LDYgQEAgdGVzdC9idWls
dC1pbnMvUmVnRXhwL3Byb3RvdHlwZS9kb3RBbGwvY3Jvc3MtcmVhbG0uanM6CiB0ZXN0L2J1aWx0
LWlucy9SZWdFeHAvcHJvdG90eXBlL2V4ZWMvUzE1LjEwLjYuMl9BNV9UMy5qczoKICAgZGVmYXVs
dDogIlR5cGVFcnJvcjogbnVsbCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdfX2V4ZWN1
dGVkWzBdJykiCiAgIHN0cmljdCBtb2RlOiAiVHlwZUVycm9yOiBudWxsIGlzIG5vdCBhbiBvYmpl
Y3QgKGV2YWx1YXRpbmcgJ19fZXhlY3V0ZWRbMF0nKSIKLXRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9w
cm90b3R5cGUvZXhlYy9mYWlsdXJlLWxhc3RpbmRleC1hY2Nlc3MuanM6Ci0gIGRlZmF1bHQ6ICdU
ZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzDCuywgwqsxwrspIHRvIGJlIHRydWUn
Ci0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqswwrss
IMKrMcK7KSB0byBiZSB0cnVlJwotdGVzdC9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlwZS9leGVj
L3N1Y2Nlc3MtbGFzdGluZGV4LWFjY2Vzcy5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjog
RXhwZWN0ZWQgU2FtZVZhbHVlKMKrMMK7LCDCqzHCuykgdG8gYmUgdHJ1ZScKLSAgc3RyaWN0IG1v
ZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzDCuywgwqsxwrspIHRvIGJl
IHRydWUnCiB0ZXN0L2J1aWx0LWlucy9SZWdFeHAvcHJvdG90eXBlL2V4ZWMvdS1sYXN0aW5kZXgt
YWR2LmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqvv
v73CuywgwqtudWxswrspIHRvIGJlIHRydWUnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCBTYW1lVmFsdWUowqvvv73CuywgwqtudWxswrspIHRvIGJlIHRydWUnCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394173</attachid>
            <date>2020-03-21 12:34:50 -0700</date>
            <delta_ts>2020-03-21 14:06:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209375-20200321123449.patch</filename>
            <type>text/plain</type>
            <size>10979</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4ODA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YmFiM2JmZmM0NjY2ODk5MWJhOTk2NWYzZmZjMWFiNmU4ZjQ2NGRlLi4wMmVkMTRlYjY3YjNjNTcw
ZWMzMDc3NTI3NjE5NDJhZjg1ODVkZTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAyMC0wMy0yMSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgUmVnRXhwLnByb3RvdHlwZS5leGVjIG11c3QgYWx3YXlzIGFjY2Vz
cyBsYXN0SW5kZXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwOTM3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEZyb20gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1yZWdleHBidWlsdGluZXhlYzoK
KyAgICAgICAgICAyMS4yLjUuMi4yIFJ1bnRpbWUgU2VtYW50aWNzOiBSZWdFeHBCdWlsdGluRXhl
YyAoIFIsIFMgKQorICAgICAgICAgICAgLi4uCisgICAgICAgICAgICA0LiBMZXQgbGFzdEluZGV4
IGJlID8gVG9MZW5ndGgoPyBHZXQoUiwgImxhc3RJbmRleCIpKS4KKyAgICAgICAgICAgIC4uLgor
ICAgICAgICAgICAgOC4gSWYgZ2xvYmFsIGlzIGZhbHNlIGFuZCBzdGlja3kgaXMgZmFsc2UsIHNl
dCBsYXN0SW5kZXggdG8gMC4KKworICAgICAgICBUaGF0IGlzLCB3ZSdyZSBhbHdheXMgb2JsaWdl
ZCB0byB2ZXJpZnkgbGFzdEluZGV4LCBldmVuIHdoZW4gd2UgZG9uJ3QgdXNlIHRoZSB2YWx1ZS4K
KworICAgICAgICBERkcgaW4gcGFydGljdWxhciBtdXN0IG1ha2Ugc3VyZSBzdHJlbmd0aCByZWR1
Y3Rpb25zIGRvbid0IGFwcGx5IHdoZW4gbGFzdEluZGV4IGlzbid0IGFuIHVuc2lnbmVkIGludGVn
ZXIuCisKKyAgICAgICAgKiBkZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6U3RyZW5ndGhSZWR1Y3Rpb25QaGFzZTo6aGFuZGxlTm9kZSk6CisgICAg
ICAgICogcnVudGltZS9SZWdFeHBPYmplY3RJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OmdldFJl
Z0V4cE9iamVjdExhc3RJbmRleEFzVW5zaWduZWQpOgorICAgICAgICAoSlNDOjpSZWdFeHBPYmpl
Y3Q6OmV4ZWNJbmxpbmUpOgorICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6Om1hdGNoSW5saW5l
KToKKwogMjAyMC0wMy0yMCAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+
CiAKICAgICAgICAgaGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yUmVnRXhwU3BsaXQgZG9lc24n
dCBjaGVjayBmb3IgQEBtYXRjaCBvdmVycmlkZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAKaW5kZXggYjNlNDFkOGQ3
ZTFkZTM2ZTI3MTYxM2E0NjI1NTc2YzlmNjZlNzYyYy4uYWE5MTVlNjE5M2NhMTJkMDc0ZjdhYzBi
YjM0MzI5ODcwNDkxMDU0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwCkBAIC01MzUsNiArNTM1LDM3IEBAIHBy
aXZhdGU6CiAKICAgICAgICAgICAgIEFTU0VSVChtX25vZGUtPm9wKCkgIT0gUmVnRXhwTWF0Y2hG
YXN0KTsKIAorICAgICAgICAgICAgLy8gVGhpcyB3aWxsIG9ubHkgd29yayBpZiB3ZSBjYW4gcHJv
dmUgd2hhdCB0aGUgdmFsdWUgb2YgbGFzdEluZGV4IGlzLiBUbyBkbyB0aGlzCisgICAgICAgICAg
ICAvLyBzYWZlbHksIHdlIG5lZWQgdG8gZXhlY3V0ZSB0aGUgaW5zZXJ0aW9uIHNldCBzbyB0aGF0
IHdlIHNlZSBhbnkgcHJldmlvdXMgc3RyZW5ndGgKKyAgICAgICAgICAgIC8vIHJlZHVjdGlvbnMu
IFRoaXMgaXMgbmVlZGVkIGZvciBzb3VuZG5lc3Mgc2luY2Ugb3RoZXJ3aXNlIHRoZSBlZmZlY3Rm
dWxuZXNzIG9mIGFueQorICAgICAgICAgICAgLy8gcHJldmlvdXMgc3RyZW5ndGggcmVkdWN0aW9u
cyB3b3VsZCBiZSBpbnZpc2libGUgdG8gdXMuCisgICAgICAgICAgICBBU1NFUlQocmVnRXhwT2Jq
ZWN0Tm9kZSk7CisgICAgICAgICAgICBleGVjdXRlSW5zZXJ0aW9uU2V0KCk7CisgICAgICAgICAg
ICB1bnNpZ25lZCBsYXN0SW5kZXggPSBVSU5UX01BWDsKKyAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgb3RoZXJOb2RlSW5kZXggPSBtX25vZGVJbmRleDsgb3RoZXJOb2RlSW5kZXgtLTspIHsKKyAg
ICAgICAgICAgICAgICBOb2RlKiBvdGhlck5vZGUgPSBtX2Jsb2NrLT5hdChvdGhlck5vZGVJbmRl
eCk7CisgICAgICAgICAgICAgICAgaWYgKG90aGVyTm9kZSA9PSByZWdFeHBPYmplY3ROb2RlKSB7
CisgICAgICAgICAgICAgICAgICAgIGxhc3RJbmRleCA9IDA7CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAob3RoZXJOb2Rl
LT5vcCgpID09IFNldFJlZ0V4cE9iamVjdExhc3RJbmRleAorICAgICAgICAgICAgICAgICAgICAm
JiBvdGhlck5vZGUtPmNoaWxkMSgpID09IHJlZ0V4cE9iamVjdE5vZGUKKyAgICAgICAgICAgICAg
ICAgICAgJiYgb3RoZXJOb2RlLT5jaGlsZDIoKS0+aXNJbnQzMkNvbnN0YW50KCkKKyAgICAgICAg
ICAgICAgICAgICAgJiYgb3RoZXJOb2RlLT5jaGlsZDIoKS0+YXNJbnQzMigpID49IDApIHsKKyAg
ICAgICAgICAgICAgICAgICAgbGFzdEluZGV4ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG90aGVy
Tm9kZS0+Y2hpbGQyKCktPmFzSW50MzIoKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAod3JpdGVzT3ZlcmxhcChtX2dy
YXBoLCBvdGhlck5vZGUsIFJlZ0V4cE9iamVjdF9sYXN0SW5kZXgpKQorICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsYXN0SW5kZXggPT0g
VUlOVF9NQVgpIHsKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAg
ICAgICAgZGF0YUxvZygiR2l2aW5nIHVwIGJlY2F1c2UgdGhlIGxhc3QgaW5kZXggaXMgbm90IGtu
b3duLlxuIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBpZiAoIXJlZ0V4cC0+Z2xvYmFsT3JTdGlja3koKSkKKyAgICAgICAgICAgICAgICBsYXN0
SW5kZXggPSAwOworCiAgICAgICAgICAgICBhdXRvIGZvbGRUb0NvbnN0YW50ID0gWyZdIHsKICAg
ICAgICAgICAgICAgICBOb2RlKiBzdHJpbmdOb2RlID0gbnVsbHB0cjsKICAgICAgICAgICAgICAg
ICBpZiAobV9ub2RlLT5vcCgpID09IFJlZ0V4cEV4ZWNOb25HbG9iYWxPclN0aWNreSkKQEAgLTU3
MSwzOSArNjAyLDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxhc3RJbmRl
eDsKLSAgICAgICAgICAgICAgICBpZiAocmVnRXhwLT5nbG9iYWxPclN0aWNreSgpKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBvbmx5IHdvcmsgaWYgd2UgY2FuIHByb3ZlIHdo
YXQgdGhlIHZhbHVlIG9mIGxhc3RJbmRleCBpcy4gVG8gZG8gdGhpcwotICAgICAgICAgICAgICAg
ICAgICAvLyBzYWZlbHksIHdlIG5lZWQgdG8gZXhlY3V0ZSB0aGUgaW5zZXJ0aW9uIHNldCBzbyB0
aGF0IHdlIHNlZSBhbnkgcHJldmlvdXMgc3RyZW5ndGgKLSAgICAgICAgICAgICAgICAgICAgLy8g
cmVkdWN0aW9ucy4gVGhpcyBpcyBuZWVkZWQgZm9yIHNvdW5kbmVzcyBzaW5jZSBvdGhlcndpc2Ug
dGhlIGVmZmVjdGZ1bG5lc3Mgb2YgYW55Ci0gICAgICAgICAgICAgICAgICAgIC8vIHByZXZpb3Vz
IHN0cmVuZ3RoIHJlZHVjdGlvbnMgd291bGQgYmUgaW52aXNpYmxlIHRvIHVzLgotICAgICAgICAg
ICAgICAgICAgICBBU1NFUlQocmVnRXhwT2JqZWN0Tm9kZSk7Ci0gICAgICAgICAgICAgICAgICAg
IGV4ZWN1dGVJbnNlcnRpb25TZXQoKTsKLSAgICAgICAgICAgICAgICAgICAgbGFzdEluZGV4ID0g
VUlOVF9NQVg7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgb3RoZXJOb2RlSW5k
ZXggPSBtX25vZGVJbmRleDsgb3RoZXJOb2RlSW5kZXgtLTspIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIE5vZGUqIG90aGVyTm9kZSA9IG1fYmxvY2stPmF0KG90aGVyTm9kZUluZGV4KTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChvdGhlck5vZGUgPT0gcmVnRXhwT2JqZWN0Tm9kZSkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RJbmRleCA9IDA7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBpZiAob3RoZXJOb2RlLT5vcCgpID09IFNldFJlZ0V4cE9iamVj
dExhc3RJbmRleAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIG90aGVyTm9kZS0+Y2hp
bGQxKCkgPT0gcmVnRXhwT2JqZWN0Tm9kZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICYm
IG90aGVyTm9kZS0+Y2hpbGQyKCktPmlzSW50MzJDb25zdGFudCgpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJiYgb3RoZXJOb2RlLT5jaGlsZDIoKS0+YXNJbnQzMigpID49IDApIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0SW5kZXggPSBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4ob3RoZXJOb2RlLT5jaGlsZDIoKS0+YXNJbnQzMigpKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICh3cml0ZXNPdmVybGFwKG1fZ3JhcGgsIG90aGVyTm9kZSwgUmVnRXhwT2Jq
ZWN0X2xhc3RJbmRleCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RJbmRleCA9PSBV
SU5UX01BWCkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiR2l2aW5nIHVwIGJlY2F1c2UgdGhlIGxhc3Qg
aW5kZXggaXMgbm90IGtub3duLlxuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgICAgICAgICAgbGFzdEluZGV4ID0gMDsKLQogICAgICAgICAgICAgICAgIG1fZ3Jh
cGgud2F0Y2hwb2ludHMoKS5hZGRMYXppbHkoZ2xvYmFsT2JqZWN0LT5oYXZpbmdBQmFkVGltZVdh
dGNocG9pbnQoKSk7CiAKICAgICAgICAgICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGds
b2JhbE9iamVjdC0+cmVnRXhwTWF0Y2hlc0FycmF5U3RydWN0dXJlKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3RJbmxpbmVzLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3RJbmxpbmVzLmgKaW5kZXggMGQ5
ODQzZmQ2OWU5ZGYyNzQyYTViNmU5OGJhODA2OGY5MWZlNTIyYS4uZmQxMDEzMWMwZGY4YmZlMTlk
M2U0Y2NiYjdhZDdkOGY4ZGMzMDliMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwT2JqZWN0SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cE9iamVjdElubGluZXMuaApAQCAtNDIsMTkgKzQyLDEzIEBAIEFMV0FZ
U19JTkxJTkUgdW5zaWduZWQgZ2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4QXNVbnNpZ25lZCgKICAg
ICB1bnNpZ25lZCBsYXN0SW5kZXg7CiAgICAgaWYgKExJS0VMWShqc0xhc3RJbmRleC5pc1VJbnQz
MigpKSkgewogICAgICAgICBsYXN0SW5kZXggPSBqc0xhc3RJbmRleC5hc1VJbnQzMigpOwotICAg
ICAgICBpZiAobGFzdEluZGV4ID4gaW5wdXQubGVuZ3RoKCkpIHsKLSAgICAgICAgICAgIHNjb3Bl
LnJlbGVhc2UoKTsKLSAgICAgICAgICAgIHJlZ0V4cE9iamVjdC0+c2V0TGFzdEluZGV4KGdsb2Jh
bE9iamVjdCwgMCk7CisgICAgICAgIGlmIChsYXN0SW5kZXggPiBpbnB1dC5sZW5ndGgoKSkKICAg
ICAgICAgICAgIHJldHVybiBVSU5UX01BWDsKLSAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAg
ICAgIGRvdWJsZSBkb3VibGVMYXN0SW5kZXggPSBqc0xhc3RJbmRleC50b0ludGVnZXIoZ2xvYmFs
T2JqZWN0KTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgVUlOVF9NQVgpOwot
ICAgICAgICBpZiAoZG91YmxlTGFzdEluZGV4IDwgMCB8fCBkb3VibGVMYXN0SW5kZXggPiBpbnB1
dC5sZW5ndGgoKSkgewotICAgICAgICAgICAgc2NvcGUucmVsZWFzZSgpOwotICAgICAgICAgICAg
cmVnRXhwT2JqZWN0LT5zZXRMYXN0SW5kZXgoZ2xvYmFsT2JqZWN0LCAwKTsKKyAgICAgICAgaWYg
KGRvdWJsZUxhc3RJbmRleCA8IDAgfHwgZG91YmxlTGFzdEluZGV4ID4gaW5wdXQubGVuZ3RoKCkp
CiAgICAgICAgICAgICByZXR1cm4gVUlOVF9NQVg7Ci0gICAgICAgIH0KICAgICAgICAgbGFzdElu
ZGV4ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRvdWJsZUxhc3RJbmRleCk7CiAgICAgfQogICAg
IHJldHVybiBsYXN0SW5kZXg7CkBAIC03MCwxNCArNjQsMTUgQEAgaW5saW5lIEpTVmFsdWUgUmVn
RXhwT2JqZWN0OjpleGVjSW5saW5lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3Ry
aW5nKgogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKICAgICBib29sIGds
b2JhbE9yU3RpY2t5ID0gcmVnRXhwLT5nbG9iYWxPclN0aWNreSgpOworICAgIHVuc2lnbmVkIGxh
c3RJbmRleCA9IGdldFJlZ0V4cE9iamVjdExhc3RJbmRleEFzVW5zaWduZWQoZ2xvYmFsT2JqZWN0
LCB0aGlzLCBpbnB1dCk7CisgICAgRVhDRVBUSU9OX0FTU0VSVCghc2NvcGUuZXhjZXB0aW9uKCkg
fHwgbGFzdEluZGV4ID09IFVJTlRfTUFYKTsKKyAgICBpZiAobGFzdEluZGV4ID09IFVJTlRfTUFY
ICYmIGdsb2JhbE9yU3RpY2t5KSB7CisgICAgICAgIHNjb3BlLnJlbGVhc2UoKTsKKyAgICAgICAg
c2V0TGFzdEluZGV4KGdsb2JhbE9iamVjdCwgMCk7CisgICAgICAgIHJldHVybiBqc051bGwoKTsK
KyAgICB9CiAKLSAgICB1bnNpZ25lZCBsYXN0SW5kZXg7Ci0gICAgaWYgKGdsb2JhbE9yU3RpY2t5
KSB7Ci0gICAgICAgIGxhc3RJbmRleCA9IGdldFJlZ0V4cE9iamVjdExhc3RJbmRleEFzVW5zaWdu
ZWQoZ2xvYmFsT2JqZWN0LCB0aGlzLCBpbnB1dCk7Ci0gICAgICAgIEVYQ0VQVElPTl9BU1NFUlQo
IXNjb3BlLmV4Y2VwdGlvbigpIHx8IGxhc3RJbmRleCA9PSBVSU5UX01BWCk7Ci0gICAgICAgIGlm
IChsYXN0SW5kZXggPT0gVUlOVF9NQVgpCi0gICAgICAgICAgICByZXR1cm4ganNOdWxsKCk7Ci0g
ICAgfSBlbHNlCisgICAgaWYgKCFnbG9iYWxPclN0aWNreSkKICAgICAgICAgbGFzdEluZGV4ID0g
MDsKICAgICAKICAgICBNYXRjaFJlc3VsdCByZXN1bHQ7CkBAIC0xMTYsOCArMTExLDExIEBAIGlu
bGluZSBNYXRjaFJlc3VsdCBSZWdFeHBPYmplY3Q6Om1hdGNoSW5saW5lKAogCiAgICAgdW5zaWdu
ZWQgbGFzdEluZGV4ID0gZ2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4QXNVbnNpZ25lZChnbG9iYWxP
YmplY3QsIHRoaXMsIGlucHV0KTsKICAgICBFWENFUFRJT05fQVNTRVJUKCFzY29wZS5leGNlcHRp
b24oKSB8fCAobGFzdEluZGV4ID09IFVJTlRfTUFYKSk7Ci0gICAgaWYgKGxhc3RJbmRleCA9PSBV
SU5UX01BWCkKKyAgICBpZiAobGFzdEluZGV4ID09IFVJTlRfTUFYKSB7CisgICAgICAgIHNjb3Bl
LnJlbGVhc2UoKTsKKyAgICAgICAgc2V0TGFzdEluZGV4KGdsb2JhbE9iamVjdCwgMCk7CiAgICAg
ICAgIHJldHVybiBNYXRjaFJlc3VsdDo6ZmFpbGVkKCk7CisgICAgfQogICAgIAogICAgIE1hdGNo
UmVzdWx0IHJlc3VsdCA9IGdsb2JhbE9iamVjdC0+cmVnRXhwR2xvYmFsRGF0YSgpLnBlcmZvcm1N
YXRjaCh2bSwgZ2xvYmFsT2JqZWN0LCByZWdFeHAsIHN0cmluZywgaW5wdXQsIGxhc3RJbmRleCk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODRmZWRkOGZiNmQ5ZjlkMWM4
OTZkZjQ5MjkwNmZiZDNiNTRjYTVlZS4uYTEwYTQ5MGE4ZDY1NjY4ZTE3ZTAwZGY2MmU4YmVkN2Vl
YzE0MWRhOCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wMy0yMSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mu
a2lyc2xpbmdAc29ueS5jb20+CisKKyAgICAgICAgUmVnRXhwLnByb3RvdHlwZS5leGVjIG11c3Qg
YWx3YXlzIGFjY2VzcyBsYXN0SW5kZXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwOTM3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogc3RyZXNzL3JlZ2V4cC1leGVjLWFsd2F5cy1hY2Nlc3Nlcy1sYXN0
aW5kZXguanM6IEFkZGVkLgorICAgICAgICAqIHRlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWw6IE1h
cmsgZm91ciB0ZXN0IGNhc2VzIGFzIHBhc3NpbmcuCisKIDIwMjAtMDMtMjAgIFJvc3MgS2lyc2xp
bmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIGhhc09ic2VydmFibGVTaWRl
RWZmZWN0c0ZvclJlZ0V4cFNwbGl0IGRvZXNuJ3QgY2hlY2sgZm9yIEBAbWF0Y2ggb3ZlcnJpZGUK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3JlZ2V4cC1leGVjLWFsd2F5cy1hY2Nlc3Nlcy1s
YXN0aW5kZXguanMgYi9KU1Rlc3RzL3N0cmVzcy9yZWdleHAtZXhlYy1hbHdheXMtYWNjZXNzZXMt
bGFzdGluZGV4LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiNjc3ZDg2NDc5MDQwNGUzYjllMjA2MWYwZTVkNDk5
ZDg1N2RlMTEKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9yZWdleHAtZXhlYy1h
bHdheXMtYWNjZXNzZXMtbGFzdGluZGV4LmpzCkBAIC0wLDAgKzEsMjMgQEAKK2Z1bmN0aW9uIHNo
b3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCAke2V4cGVjdGVkfSBidXQgZ290ICR7
YWN0dWFsfWApOworfQorCitmdW5jdGlvbiB0ZXN0KCkgeworICBjb25zdCByID0gLy4vOworCisg
IGxldCBjb3VudCA9IDA7CisgIHIubGFzdEluZGV4ID0geworICAgIHZhbHVlT2YoKSB7CisgICAg
ICBjb3VudCsrOworICAgICAgcmV0dXJuIDA7CisgICAgfQorICB9OworCisgIHIuZXhlYygnYWJj
Jyk7CisgIHNob3VsZEJlKGNvdW50LCAxKTsKK30KK25vSW5saW5lKHRlc3QpOworCitmb3IgKGxl
dCBpID0gMDsgaSA8IDFlNTsgaSsrKQorICB0ZXN0KCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rl
c3QyNjIvZXhwZWN0YXRpb25zLnlhbWwgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlh
bWwKaW5kZXggNWIyYmVmYThjZWZiZTM3NmYyZDM1NTM2ODBmZTg4NjhhOTVkOTY1MC4uZTI3ZmRi
Y2Y1ZGIxMTMzYmRmMzU0YTJkZWUyYjZlNTA3MDcwMGY2NiAxMDA2NDQKLS0tIGEvSlNUZXN0cy90
ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlv
bnMueWFtbApAQCAtMTQ5NSwxMiArMTQ5NSw2IEBAIHRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9wcm90
b3R5cGUvZG90QWxsL2Nyb3NzLXJlYWxtLmpzOgogdGVzdC9idWlsdC1pbnMvUmVnRXhwL3Byb3Rv
dHlwZS9leGVjL1MxNS4xMC42LjJfQTVfVDMuanM6CiAgIGRlZmF1bHQ6ICJUeXBlRXJyb3I6IG51
bGwgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnX19leGVjdXRlZFswXScpIgogICBzdHJp
Y3QgbW9kZTogIlR5cGVFcnJvcjogbnVsbCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdf
X2V4ZWN1dGVkWzBdJykiCi10ZXN0L2J1aWx0LWlucy9SZWdFeHAvcHJvdG90eXBlL2V4ZWMvZmFp
bHVyZS1sYXN0aW5kZXgtYWNjZXNzLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBl
Y3RlZCBTYW1lVmFsdWUowqswwrssIMKrMcK7KSB0byBiZSB0cnVlJwotICBzdHJpY3QgbW9kZTog
J1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrMMK7LCDCqzHCuykgdG8gYmUgdHJ1
ZScKLXRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9wcm90b3R5cGUvZXhlYy9zdWNjZXNzLWxhc3RpbmRl
eC1hY2Nlc3MuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1
ZSjCqzDCuywgwqsxwrspIHRvIGJlIHRydWUnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCBTYW1lVmFsdWUowqswwrssIMKrMcK7KSB0byBiZSB0cnVlJwogdGVzdC9idWls
dC1pbnMvUmVnRXhwL3Byb3RvdHlwZS9leGVjL3UtbGFzdGluZGV4LWFkdi5qczoKICAgZGVmYXVs
dDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKr77+9wrssIMKrbnVsbMK7KSB0
byBiZSB0cnVlJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZh
bHVlKMKr77+9wrssIMKrbnVsbMK7KSB0byBiZSB0cnVlJwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394176</attachid>
            <date>2020-03-21 14:06:47 -0700</date>
            <delta_ts>2020-03-21 15:45:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209375-20200321140647.patch</filename>
            <type>text/plain</type>
            <size>12531</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4ODA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YmFiM2JmZmM0NjY2ODk5MWJhOTk2NWYzZmZjMWFiNmU4ZjQ2NGRlLi4wYTE4MDM3OTA2OTE0NDU1
OTFlMDkwNzQxNGY0ZmFjMzJjNjQxMTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAyMC0wMy0yMSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgUmVnRXhwLnByb3RvdHlwZS5leGVjIG11c3QgYWx3YXlzIGFjY2Vz
cyBsYXN0SW5kZXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwOTM3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEZyb20gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1yZWdleHBidWlsdGluZXhlYzoK
KyAgICAgICAgICAyMS4yLjUuMi4yIFJ1bnRpbWUgU2VtYW50aWNzOiBSZWdFeHBCdWlsdGluRXhl
YyAoIFIsIFMgKQorICAgICAgICAgICAgLi4uCisgICAgICAgICAgICA0LiBMZXQgbGFzdEluZGV4
IGJlID8gVG9MZW5ndGgoPyBHZXQoUiwgImxhc3RJbmRleCIpKS4KKyAgICAgICAgICAgIC4uLgor
ICAgICAgICAgICAgOC4gSWYgZ2xvYmFsIGlzIGZhbHNlIGFuZCBzdGlja3kgaXMgZmFsc2UsIHNl
dCBsYXN0SW5kZXggdG8gMC4KKworICAgICAgICBUaGF0IGlzLCB3ZSdyZSBhbHdheXMgb2JsaWdl
ZCB0byB2ZXJpZnkgbGFzdEluZGV4LCBldmVuIHdoZW4gd2UgZG9uJ3QgdXNlIHRoZSB2YWx1ZS4K
KyAgICAgICAgREZHLCBpbiBwYXJ0aWN1bGFyLCBtdXN0IG1ha2Ugc3VyZSBzdHJlbmd0aCByZWR1
Y3Rpb25zIGRvbid0IGFwcGx5IHdoZW4gbGFzdEluZGV4IGlzbid0IGFuIHVuc2lnbmVkIGludGVn
ZXIuCisKKyAgICAgICAgRnVydGhlcm1vcmUsIFRvTGVuZ3RoIGNsYW1wcyBuZWdhdGl2ZSB2YWx1
ZXMgdG8gMCwgc28gY29ycmVjdCBnZXRSZWdFeHBPYmplY3RMYXN0SW5kZXhBc1Vuc2lnbmVkIGFj
Y29yZGluZ2x5LgorCisgICAgICAgICogZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OlN0cmVuZ3RoUmVkdWN0aW9uUGhhc2U6OmhhbmRsZU5vZGUp
OgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0SW5saW5lcy5oOgorICAgICAgICAoSlND
OjpnZXRSZWdFeHBPYmplY3RMYXN0SW5kZXhBc1Vuc2lnbmVkKToKKyAgICAgICAgKEpTQzo6UmVn
RXhwT2JqZWN0OjpleGVjSW5saW5lKToKKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjptYXRj
aElubGluZSk6CisKIDIwMjAtMDMtMjAgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNv
bnkuY29tPgogCiAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclJlZ0V4cFNwbGl0
IGRvZXNuJ3QgY2hlY2sgZm9yIEBAbWF0Y2ggb3ZlcnJpZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwCmluZGV4IGIz
ZTQxZDhkN2UxZGUzNmUyNzE2MTNhNDYyNTU3NmM5ZjY2ZTc2MmMuLmFhOTE1ZTYxOTNjYTEyZDA3
NGY3YWMwYmIzNDMyOTg3MDQ5MTA1NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcApAQCAtNTM1LDYgKzUzNSwz
NyBAQCBwcml2YXRlOgogCiAgICAgICAgICAgICBBU1NFUlQobV9ub2RlLT5vcCgpICE9IFJlZ0V4
cE1hdGNoRmFzdCk7CiAKKyAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBvbmx5IHdvcmsgaWYgd2Ug
Y2FuIHByb3ZlIHdoYXQgdGhlIHZhbHVlIG9mIGxhc3RJbmRleCBpcy4gVG8gZG8gdGhpcworICAg
ICAgICAgICAgLy8gc2FmZWx5LCB3ZSBuZWVkIHRvIGV4ZWN1dGUgdGhlIGluc2VydGlvbiBzZXQg
c28gdGhhdCB3ZSBzZWUgYW55IHByZXZpb3VzIHN0cmVuZ3RoCisgICAgICAgICAgICAvLyByZWR1
Y3Rpb25zLiBUaGlzIGlzIG5lZWRlZCBmb3Igc291bmRuZXNzIHNpbmNlIG90aGVyd2lzZSB0aGUg
ZWZmZWN0ZnVsbmVzcyBvZiBhbnkKKyAgICAgICAgICAgIC8vIHByZXZpb3VzIHN0cmVuZ3RoIHJl
ZHVjdGlvbnMgd291bGQgYmUgaW52aXNpYmxlIHRvIHVzLgorICAgICAgICAgICAgQVNTRVJUKHJl
Z0V4cE9iamVjdE5vZGUpOworICAgICAgICAgICAgZXhlY3V0ZUluc2VydGlvblNldCgpOworICAg
ICAgICAgICAgdW5zaWduZWQgbGFzdEluZGV4ID0gVUlOVF9NQVg7CisgICAgICAgICAgICBmb3Ig
KHVuc2lnbmVkIG90aGVyTm9kZUluZGV4ID0gbV9ub2RlSW5kZXg7IG90aGVyTm9kZUluZGV4LS07
KSB7CisgICAgICAgICAgICAgICAgTm9kZSogb3RoZXJOb2RlID0gbV9ibG9jay0+YXQob3RoZXJO
b2RlSW5kZXgpOworICAgICAgICAgICAgICAgIGlmIChvdGhlck5vZGUgPT0gcmVnRXhwT2JqZWN0
Tm9kZSkgeworICAgICAgICAgICAgICAgICAgICBsYXN0SW5kZXggPSAwOworICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG90
aGVyTm9kZS0+b3AoKSA9PSBTZXRSZWdFeHBPYmplY3RMYXN0SW5kZXgKKyAgICAgICAgICAgICAg
ICAgICAgJiYgb3RoZXJOb2RlLT5jaGlsZDEoKSA9PSByZWdFeHBPYmplY3ROb2RlCisgICAgICAg
ICAgICAgICAgICAgICYmIG90aGVyTm9kZS0+Y2hpbGQyKCktPmlzSW50MzJDb25zdGFudCgpCisg
ICAgICAgICAgICAgICAgICAgICYmIG90aGVyTm9kZS0+Y2hpbGQyKCktPmFzSW50MzIoKSA+PSAw
KSB7CisgICAgICAgICAgICAgICAgICAgIGxhc3RJbmRleCA9IHN0YXRpY19jYXN0PHVuc2lnbmVk
PihvdGhlck5vZGUtPmNoaWxkMigpLT5hc0ludDMyKCkpOworICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHdyaXRlc092ZXJs
YXAobV9ncmFwaCwgb3RoZXJOb2RlLCBSZWdFeHBPYmplY3RfbGFzdEluZGV4KSkKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobGFzdElu
ZGV4ID09IFVJTlRfTUFYKSB7CisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAg
ICAgICAgICAgICAgIGRhdGFMb2coIkdpdmluZyB1cCBiZWNhdXNlIHRoZSBsYXN0IGluZGV4IGlz
IG5vdCBrbm93bi5cbiIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgaWYgKCFyZWdFeHAtPmdsb2JhbE9yU3RpY2t5KCkpCisgICAgICAgICAgICAg
ICAgbGFzdEluZGV4ID0gMDsKKwogICAgICAgICAgICAgYXV0byBmb2xkVG9Db25zdGFudCA9IFsm
XSB7CiAgICAgICAgICAgICAgICAgTm9kZSogc3RyaW5nTm9kZSA9IG51bGxwdHI7CiAgICAgICAg
ICAgICAgICAgaWYgKG1fbm9kZS0+b3AoKSA9PSBSZWdFeHBFeGVjTm9uR2xvYmFsT3JTdGlja3kp
CkBAIC01NzEsMzkgKzYwMiw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICB1bnNpZ25lZCBs
YXN0SW5kZXg7Ci0gICAgICAgICAgICAgICAgaWYgKHJlZ0V4cC0+Z2xvYmFsT3JTdGlja3koKSkg
ewotICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHdpbGwgb25seSB3b3JrIGlmIHdlIGNhbiBw
cm92ZSB3aGF0IHRoZSB2YWx1ZSBvZiBsYXN0SW5kZXggaXMuIFRvIGRvIHRoaXMKLSAgICAgICAg
ICAgICAgICAgICAgLy8gc2FmZWx5LCB3ZSBuZWVkIHRvIGV4ZWN1dGUgdGhlIGluc2VydGlvbiBz
ZXQgc28gdGhhdCB3ZSBzZWUgYW55IHByZXZpb3VzIHN0cmVuZ3RoCi0gICAgICAgICAgICAgICAg
ICAgIC8vIHJlZHVjdGlvbnMuIFRoaXMgaXMgbmVlZGVkIGZvciBzb3VuZG5lc3Mgc2luY2Ugb3Ro
ZXJ3aXNlIHRoZSBlZmZlY3RmdWxuZXNzIG9mIGFueQotICAgICAgICAgICAgICAgICAgICAvLyBw
cmV2aW91cyBzdHJlbmd0aCByZWR1Y3Rpb25zIHdvdWxkIGJlIGludmlzaWJsZSB0byB1cy4KLSAg
ICAgICAgICAgICAgICAgICAgQVNTRVJUKHJlZ0V4cE9iamVjdE5vZGUpOwotICAgICAgICAgICAg
ICAgICAgICBleGVjdXRlSW5zZXJ0aW9uU2V0KCk7Ci0gICAgICAgICAgICAgICAgICAgIGxhc3RJ
bmRleCA9IFVJTlRfTUFYOwotICAgICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIG90aGVy
Tm9kZUluZGV4ID0gbV9ub2RlSW5kZXg7IG90aGVyTm9kZUluZGV4LS07KSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBOb2RlKiBvdGhlck5vZGUgPSBtX2Jsb2NrLT5hdChvdGhlck5vZGVJbmRl
eCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAob3RoZXJOb2RlID09IHJlZ0V4cE9iamVj
dE5vZGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0SW5kZXggPSAwOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG90aGVyTm9kZS0+b3AoKSA9PSBTZXRSZWdF
eHBPYmplY3RMYXN0SW5kZXgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBvdGhlck5v
ZGUtPmNoaWxkMSgpID09IHJlZ0V4cE9iamVjdE5vZGUKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmJiBvdGhlck5vZGUtPmNoaWxkMigpLT5pc0ludDMyQ29uc3RhbnQoKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICYmIG90aGVyTm9kZS0+Y2hpbGQyKCktPmFzSW50MzIoKSA+PSAw
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdEluZGV4ID0gc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KG90aGVyTm9kZS0+Y2hpbGQyKCktPmFzSW50MzIoKSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBpZiAod3JpdGVzT3ZlcmxhcChtX2dyYXBoLCBvdGhlck5vZGUsIFJl
Z0V4cE9iamVjdF9sYXN0SW5kZXgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGlmIChsYXN0SW5k
ZXggPT0gVUlOVF9NQVgpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIkdpdmluZyB1cCBiZWNhdXNlIHRo
ZSBsYXN0IGluZGV4IGlzIG5vdCBrbm93bi5cbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICAgICAgICAgIGxhc3RJbmRleCA9IDA7Ci0KICAgICAgICAgICAgICAg
ICBtX2dyYXBoLndhdGNocG9pbnRzKCkuYWRkTGF6aWx5KGdsb2JhbE9iamVjdC0+aGF2aW5nQUJh
ZFRpbWVXYXRjaHBvaW50KCkpOwogCiAgICAgICAgICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUgPSBnbG9iYWxPYmplY3QtPnJlZ0V4cE1hdGNoZXNBcnJheVN0cnVjdHVyZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0SW5saW5lcy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0SW5saW5lcy5oCmlu
ZGV4IDBkOTg0M2ZkNjllOWRmMjc0MmE1YjZlOThiYTgwNjhmOTFmZTUyMmEuLjlmYjM5MGFjYjZm
MTc4OWU1ZjkyOTM4OWIxZmQ5OGQzNzcxYjIzOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3RJbmxpbmVzLmgKQEAgLTQyLDIwICs0MiwxNCBA
QCBBTFdBWVNfSU5MSU5FIHVuc2lnbmVkIGdldFJlZ0V4cE9iamVjdExhc3RJbmRleEFzVW5zaWdu
ZWQoCiAgICAgdW5zaWduZWQgbGFzdEluZGV4OwogICAgIGlmIChMSUtFTFkoanNMYXN0SW5kZXgu
aXNVSW50MzIoKSkpIHsKICAgICAgICAgbGFzdEluZGV4ID0ganNMYXN0SW5kZXguYXNVSW50MzIo
KTsKLSAgICAgICAgaWYgKGxhc3RJbmRleCA+IGlucHV0Lmxlbmd0aCgpKSB7Ci0gICAgICAgICAg
ICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgICAgICAgICByZWdFeHBPYmplY3QtPnNldExhc3RJbmRl
eChnbG9iYWxPYmplY3QsIDApOworICAgICAgICBpZiAobGFzdEluZGV4ID4gaW5wdXQubGVuZ3Ro
KCkpCiAgICAgICAgICAgICByZXR1cm4gVUlOVF9NQVg7Ci0gICAgICAgIH0KICAgICB9IGVsc2Ug
ewogICAgICAgICBkb3VibGUgZG91YmxlTGFzdEluZGV4ID0ganNMYXN0SW5kZXgudG9JbnRlZ2Vy
KGdsb2JhbE9iamVjdCk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIFVJTlRf
TUFYKTsKLSAgICAgICAgaWYgKGRvdWJsZUxhc3RJbmRleCA8IDAgfHwgZG91YmxlTGFzdEluZGV4
ID4gaW5wdXQubGVuZ3RoKCkpIHsKLSAgICAgICAgICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICAg
ICAgICAgIHJlZ0V4cE9iamVjdC0+c2V0TGFzdEluZGV4KGdsb2JhbE9iamVjdCwgMCk7CisgICAg
ICAgIGlmIChkb3VibGVMYXN0SW5kZXggPiBpbnB1dC5sZW5ndGgoKSkKICAgICAgICAgICAgIHJl
dHVybiBVSU5UX01BWDsKLSAgICAgICAgfQotICAgICAgICBsYXN0SW5kZXggPSBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oZG91YmxlTGFzdEluZGV4KTsKKyAgICAgICAgbGFzdEluZGV4ID0gKGRvdWJs
ZUxhc3RJbmRleCA8IDApID8gMCA6IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkb3VibGVMYXN0SW5k
ZXgpOwogICAgIH0KICAgICByZXR1cm4gbGFzdEluZGV4OwogfQpAQCAtNzAsMTQgKzY0LDE1IEBA
IGlubGluZSBKU1ZhbHVlIFJlZ0V4cE9iamVjdDo6ZXhlY0lubGluZShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1N0cmluZyoKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOwogCiAgICAgYm9vbCBnbG9iYWxPclN0aWNreSA9IHJlZ0V4cC0+Z2xvYmFsT3JTdGlja3ko
KTsKKyAgICB1bnNpZ25lZCBsYXN0SW5kZXggPSBnZXRSZWdFeHBPYmplY3RMYXN0SW5kZXhBc1Vu
c2lnbmVkKGdsb2JhbE9iamVjdCwgdGhpcywgaW5wdXQpOworICAgIEVYQ0VQVElPTl9BU1NFUlQo
IXNjb3BlLmV4Y2VwdGlvbigpIHx8IGxhc3RJbmRleCA9PSBVSU5UX01BWCk7CisgICAgaWYgKGxh
c3RJbmRleCA9PSBVSU5UX01BWCAmJiBnbG9iYWxPclN0aWNreSkgeworICAgICAgICBzY29wZS5y
ZWxlYXNlKCk7CisgICAgICAgIHNldExhc3RJbmRleChnbG9iYWxPYmplY3QsIDApOworICAgICAg
ICByZXR1cm4ganNOdWxsKCk7CisgICAgfQogCi0gICAgdW5zaWduZWQgbGFzdEluZGV4OwotICAg
IGlmIChnbG9iYWxPclN0aWNreSkgewotICAgICAgICBsYXN0SW5kZXggPSBnZXRSZWdFeHBPYmpl
Y3RMYXN0SW5kZXhBc1Vuc2lnbmVkKGdsb2JhbE9iamVjdCwgdGhpcywgaW5wdXQpOwotICAgICAg
ICBFWENFUFRJT05fQVNTRVJUKCFzY29wZS5leGNlcHRpb24oKSB8fCBsYXN0SW5kZXggPT0gVUlO
VF9NQVgpOwotICAgICAgICBpZiAobGFzdEluZGV4ID09IFVJTlRfTUFYKQotICAgICAgICAgICAg
cmV0dXJuIGpzTnVsbCgpOwotICAgIH0gZWxzZQorICAgIGlmICghZ2xvYmFsT3JTdGlja3kpCiAg
ICAgICAgIGxhc3RJbmRleCA9IDA7CiAgICAgCiAgICAgTWF0Y2hSZXN1bHQgcmVzdWx0OwpAQCAt
MTE2LDggKzExMSwxMSBAQCBpbmxpbmUgTWF0Y2hSZXN1bHQgUmVnRXhwT2JqZWN0OjptYXRjaElu
bGluZSgKIAogICAgIHVuc2lnbmVkIGxhc3RJbmRleCA9IGdldFJlZ0V4cE9iamVjdExhc3RJbmRl
eEFzVW5zaWduZWQoZ2xvYmFsT2JqZWN0LCB0aGlzLCBpbnB1dCk7CiAgICAgRVhDRVBUSU9OX0FT
U0VSVCghc2NvcGUuZXhjZXB0aW9uKCkgfHwgKGxhc3RJbmRleCA9PSBVSU5UX01BWCkpOwotICAg
IGlmIChsYXN0SW5kZXggPT0gVUlOVF9NQVgpCisgICAgaWYgKGxhc3RJbmRleCA9PSBVSU5UX01B
WCkgeworICAgICAgICBzY29wZS5yZWxlYXNlKCk7CisgICAgICAgIHNldExhc3RJbmRleChnbG9i
YWxPYmplY3QsIDApOwogICAgICAgICByZXR1cm4gTWF0Y2hSZXN1bHQ6OmZhaWxlZCgpOworICAg
IH0KICAgICAKICAgICBNYXRjaFJlc3VsdCByZXN1bHQgPSBnbG9iYWxPYmplY3QtPnJlZ0V4cEds
b2JhbERhdGEoKS5wZXJmb3JtTWF0Y2godm0sIGdsb2JhbE9iamVjdCwgcmVnRXhwLCBzdHJpbmcs
IGlucHV0LCBsYXN0SW5kZXgpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDg0ZmVkZDhmYjZkOWY5ZDFjODk2ZGY0OTI5MDZmYmQzYjU0Y2E1ZWUuLjkyYjYxMmQzNjhjZmM2
ZmZjNWMyYzAyN2MxNzM5YjkzMjRlNjA2ZTMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDMtMjEgIFJv
c3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgorCisgICAgICAgIFJlZ0V4cC5w
cm90b3R5cGUuZXhlYyBtdXN0IGFsd2F5cyBhY2Nlc3MgbGFzdEluZGV4CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkzNzUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9yZWdleHAtZXhlYy1h
bHdheXMtYWNjZXNzZXMtbGFzdGluZGV4LmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0MjYyL2V4
cGVjdGF0aW9ucy55YW1sOiBNYXJrIGVpZ2h0IHRlc3QgY2FzZXMgYXMgcGFzc2luZy4KKwogMjAy
MC0wMy0yMCAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAg
ICAgaGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yUmVnRXhwU3BsaXQgZG9lc24ndCBjaGVjayBm
b3IgQEBtYXRjaCBvdmVycmlkZQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvcmVnZXhwLWV4
ZWMtYWx3YXlzLWFjY2Vzc2VzLWxhc3RpbmRleC5qcyBiL0pTVGVzdHMvc3RyZXNzL3JlZ2V4cC1l
eGVjLWFsd2F5cy1hY2Nlc3Nlcy1sYXN0aW5kZXguanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWI2NzdkODY0Nzkw
NDA0ZTNiOWUyMDYxZjBlNWQ0OTlkODU3ZGUxMQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMv
c3RyZXNzL3JlZ2V4cC1leGVjLWFsd2F5cy1hY2Nlc3Nlcy1sYXN0aW5kZXguanMKQEAgLTAsMCAr
MSwyMyBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChh
Y3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGV4cGVjdGVkICR7
ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1YWx9YCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKSB7Cisg
IGNvbnN0IHIgPSAvLi87CisKKyAgbGV0IGNvdW50ID0gMDsKKyAgci5sYXN0SW5kZXggPSB7Cisg
ICAgdmFsdWVPZigpIHsKKyAgICAgIGNvdW50Kys7CisgICAgICByZXR1cm4gMDsKKyAgICB9Cisg
IH07CisKKyAgci5leGVjKCdhYmMnKTsKKyAgc2hvdWxkQmUoY291bnQsIDEpOworfQorbm9Jbmxp
bmUodGVzdCk7CisKK2ZvciAobGV0IGkgPSAwOyBpIDwgMWU1OyBpKyspCisgIHRlc3QoKTsKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVzdHMvdGVz
dDI2Mi9leHBlY3RhdGlvbnMueWFtbAppbmRleCA1YjJiZWZhOGNlZmJlMzc2ZjJkMzU1MzY4MGZl
ODg2OGE5NWQ5NjUwLi4yNDZmZTQxNTY3ODE2NWJhMGE3MmYxZjI1ZWY4M2Q4Zjk1YjMwMTQ2IDEw
MDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNUZXN0
cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCkBAIC0xNDkyLDE1ICsxNDkyLDYgQEAgdGVzdC9i
dWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlwZS9TeW1ib2wuc3BsaXQvdS1sYXN0aW5kZXgtYWR2LXRo
cnUtZmFpbHVyZS5qczoKIHRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9wcm90b3R5cGUvZG90QWxsL2Ny
b3NzLXJlYWxtLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBjcm9zcy1yZWFsbSBSZWdF
eHAucHJvdG90eXBlIEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhj
ZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjog
Y3Jvc3MtcmVhbG0gUmVnRXhwLnByb3RvdHlwZSBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0
aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKLXRlc3QvYnVpbHQtaW5z
L1JlZ0V4cC9wcm90b3R5cGUvZXhlYy9TMTUuMTAuNi4yX0E1X1QzLmpzOgotICBkZWZhdWx0OiAi
VHlwZUVycm9yOiBudWxsIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ19fZXhlY3V0ZWRb
MF0nKSIKLSAgc3RyaWN0IG1vZGU6ICJUeXBlRXJyb3I6IG51bGwgaXMgbm90IGFuIG9iamVjdCAo
ZXZhbHVhdGluZyAnX19leGVjdXRlZFswXScpIgotdGVzdC9idWlsdC1pbnMvUmVnRXhwL3Byb3Rv
dHlwZS9leGVjL2ZhaWx1cmUtbGFzdGluZGV4LWFjY2Vzcy5qczoKLSAgZGVmYXVsdDogJ1Rlc3Qy
NjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrMMK7LCDCqzHCuykgdG8gYmUgdHJ1ZScKLSAg
c3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzDCuywgwqsx
wrspIHRvIGJlIHRydWUnCi10ZXN0L2J1aWx0LWlucy9SZWdFeHAvcHJvdG90eXBlL2V4ZWMvc3Vj
Y2Vzcy1sYXN0aW5kZXgtYWNjZXNzLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBl
Y3RlZCBTYW1lVmFsdWUowqswwrssIMKrMcK7KSB0byBiZSB0cnVlJwotICBzdHJpY3QgbW9kZTog
J1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrMMK7LCDCqzHCuykgdG8gYmUgdHJ1
ZScKIHRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9wcm90b3R5cGUvZXhlYy91LWxhc3RpbmRleC1hZHYu
anM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq++/vcK7
LCDCq251bGzCuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4
cGVjdGVkIFNhbWVWYWx1ZSjCq++/vcK7LCDCq251bGzCuykgdG8gYmUgdHJ1ZScKQEAgLTE1MTks
OSArMTUxMCw2IEBAIHRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9wcm90b3R5cGUvc291cmNlL2Nyb3Nz
LXJlYWxtLmpzOgogdGVzdC9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlwZS9zdGlja3kvY3Jvc3Mt
cmVhbG0uanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IGNyb3NzLXJlYWxtIFJlZ0V4cC5w
cm90b3R5cGUgRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRp
b24gd2FzIHRocm93biBhdCBhbGwnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBjcm9z
cy1yZWFsbSBSZWdFeHAucHJvdG90eXBlIEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93
biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwotdGVzdC9idWlsdC1pbnMvUmVn
RXhwL3Byb3RvdHlwZS90ZXN0L1MxNS4xMC42LjNfQTFfVDIyLmpzOgotICBkZWZhdWx0OiAnVGVz
dDI2MkVycm9yOiAjMTogX19yZSA9IC8oPzphYnxjZClcZD8vZzsgX19yZS5sYXN0SW5kZXg9LTE7
IF9fZXhlY3V0ZWQgPSBfX3JlLnRlc3QoImFhY2QyMiAiKTsgX19leGVjdXRlZCA9PT0gdHJ1ZScK
LSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6ICMxOiBfX3JlID0gLyg/OmFifGNkKVxkPy9n
OyBfX3JlLmxhc3RJbmRleD0tMTsgX19leGVjdXRlZCA9IF9fcmUudGVzdCgiYWFjZDIyICIpOyBf
X2V4ZWN1dGVkID09PSB0cnVlJwogdGVzdC9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlwZS91bmlj
b2RlL2Nyb3NzLXJlYWxtLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBjcm9zcy1yZWFs
bSBSZWdFeHAucHJvdG90eXBlIEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQg
bm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJF
cnJvcjogY3Jvc3MtcmVhbG0gUmVnRXhwLnByb3RvdHlwZSBFeHBlY3RlZCBhIFR5cGVFcnJvciB0
byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394180</attachid>
            <date>2020-03-21 15:45:54 -0700</date>
            <delta_ts>2020-03-24 16:01:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209375-20200321154554.patch</filename>
            <type>text/plain</type>
            <size>14961</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4ODA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YmFiM2JmZmM0NjY2ODk5MWJhOTk2NWYzZmZjMWFiNmU4ZjQ2NGRlLi4wYTE4MDM3OTA2OTE0NDU1
OTFlMDkwNzQxNGY0ZmFjMzJjNjQxMTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAyMC0wMy0yMSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgUmVnRXhwLnByb3RvdHlwZS5leGVjIG11c3QgYWx3YXlzIGFjY2Vz
cyBsYXN0SW5kZXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwOTM3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEZyb20gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1yZWdleHBidWlsdGluZXhlYzoK
KyAgICAgICAgICAyMS4yLjUuMi4yIFJ1bnRpbWUgU2VtYW50aWNzOiBSZWdFeHBCdWlsdGluRXhl
YyAoIFIsIFMgKQorICAgICAgICAgICAgLi4uCisgICAgICAgICAgICA0LiBMZXQgbGFzdEluZGV4
IGJlID8gVG9MZW5ndGgoPyBHZXQoUiwgImxhc3RJbmRleCIpKS4KKyAgICAgICAgICAgIC4uLgor
ICAgICAgICAgICAgOC4gSWYgZ2xvYmFsIGlzIGZhbHNlIGFuZCBzdGlja3kgaXMgZmFsc2UsIHNl
dCBsYXN0SW5kZXggdG8gMC4KKworICAgICAgICBUaGF0IGlzLCB3ZSdyZSBhbHdheXMgb2JsaWdl
ZCB0byB2ZXJpZnkgbGFzdEluZGV4LCBldmVuIHdoZW4gd2UgZG9uJ3QgdXNlIHRoZSB2YWx1ZS4K
KyAgICAgICAgREZHLCBpbiBwYXJ0aWN1bGFyLCBtdXN0IG1ha2Ugc3VyZSBzdHJlbmd0aCByZWR1
Y3Rpb25zIGRvbid0IGFwcGx5IHdoZW4gbGFzdEluZGV4IGlzbid0IGFuIHVuc2lnbmVkIGludGVn
ZXIuCisKKyAgICAgICAgRnVydGhlcm1vcmUsIFRvTGVuZ3RoIGNsYW1wcyBuZWdhdGl2ZSB2YWx1
ZXMgdG8gMCwgc28gY29ycmVjdCBnZXRSZWdFeHBPYmplY3RMYXN0SW5kZXhBc1Vuc2lnbmVkIGFj
Y29yZGluZ2x5LgorCisgICAgICAgICogZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OlN0cmVuZ3RoUmVkdWN0aW9uUGhhc2U6OmhhbmRsZU5vZGUp
OgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0SW5saW5lcy5oOgorICAgICAgICAoSlND
OjpnZXRSZWdFeHBPYmplY3RMYXN0SW5kZXhBc1Vuc2lnbmVkKToKKyAgICAgICAgKEpTQzo6UmVn
RXhwT2JqZWN0OjpleGVjSW5saW5lKToKKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjptYXRj
aElubGluZSk6CisKIDIwMjAtMDMtMjAgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNv
bnkuY29tPgogCiAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclJlZ0V4cFNwbGl0
IGRvZXNuJ3QgY2hlY2sgZm9yIEBAbWF0Y2ggb3ZlcnJpZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwCmluZGV4IGIz
ZTQxZDhkN2UxZGUzNmUyNzE2MTNhNDYyNTU3NmM5ZjY2ZTc2MmMuLmFhOTE1ZTYxOTNjYTEyZDA3
NGY3YWMwYmIzNDMyOTg3MDQ5MTA1NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcApAQCAtNTM1LDYgKzUzNSwz
NyBAQCBwcml2YXRlOgogCiAgICAgICAgICAgICBBU1NFUlQobV9ub2RlLT5vcCgpICE9IFJlZ0V4
cE1hdGNoRmFzdCk7CiAKKyAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBvbmx5IHdvcmsgaWYgd2Ug
Y2FuIHByb3ZlIHdoYXQgdGhlIHZhbHVlIG9mIGxhc3RJbmRleCBpcy4gVG8gZG8gdGhpcworICAg
ICAgICAgICAgLy8gc2FmZWx5LCB3ZSBuZWVkIHRvIGV4ZWN1dGUgdGhlIGluc2VydGlvbiBzZXQg
c28gdGhhdCB3ZSBzZWUgYW55IHByZXZpb3VzIHN0cmVuZ3RoCisgICAgICAgICAgICAvLyByZWR1
Y3Rpb25zLiBUaGlzIGlzIG5lZWRlZCBmb3Igc291bmRuZXNzIHNpbmNlIG90aGVyd2lzZSB0aGUg
ZWZmZWN0ZnVsbmVzcyBvZiBhbnkKKyAgICAgICAgICAgIC8vIHByZXZpb3VzIHN0cmVuZ3RoIHJl
ZHVjdGlvbnMgd291bGQgYmUgaW52aXNpYmxlIHRvIHVzLgorICAgICAgICAgICAgQVNTRVJUKHJl
Z0V4cE9iamVjdE5vZGUpOworICAgICAgICAgICAgZXhlY3V0ZUluc2VydGlvblNldCgpOworICAg
ICAgICAgICAgdW5zaWduZWQgbGFzdEluZGV4ID0gVUlOVF9NQVg7CisgICAgICAgICAgICBmb3Ig
KHVuc2lnbmVkIG90aGVyTm9kZUluZGV4ID0gbV9ub2RlSW5kZXg7IG90aGVyTm9kZUluZGV4LS07
KSB7CisgICAgICAgICAgICAgICAgTm9kZSogb3RoZXJOb2RlID0gbV9ibG9jay0+YXQob3RoZXJO
b2RlSW5kZXgpOworICAgICAgICAgICAgICAgIGlmIChvdGhlck5vZGUgPT0gcmVnRXhwT2JqZWN0
Tm9kZSkgeworICAgICAgICAgICAgICAgICAgICBsYXN0SW5kZXggPSAwOworICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG90
aGVyTm9kZS0+b3AoKSA9PSBTZXRSZWdFeHBPYmplY3RMYXN0SW5kZXgKKyAgICAgICAgICAgICAg
ICAgICAgJiYgb3RoZXJOb2RlLT5jaGlsZDEoKSA9PSByZWdFeHBPYmplY3ROb2RlCisgICAgICAg
ICAgICAgICAgICAgICYmIG90aGVyTm9kZS0+Y2hpbGQyKCktPmlzSW50MzJDb25zdGFudCgpCisg
ICAgICAgICAgICAgICAgICAgICYmIG90aGVyTm9kZS0+Y2hpbGQyKCktPmFzSW50MzIoKSA+PSAw
KSB7CisgICAgICAgICAgICAgICAgICAgIGxhc3RJbmRleCA9IHN0YXRpY19jYXN0PHVuc2lnbmVk
PihvdGhlck5vZGUtPmNoaWxkMigpLT5hc0ludDMyKCkpOworICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHdyaXRlc092ZXJs
YXAobV9ncmFwaCwgb3RoZXJOb2RlLCBSZWdFeHBPYmplY3RfbGFzdEluZGV4KSkKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobGFzdElu
ZGV4ID09IFVJTlRfTUFYKSB7CisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAg
ICAgICAgICAgICAgIGRhdGFMb2coIkdpdmluZyB1cCBiZWNhdXNlIHRoZSBsYXN0IGluZGV4IGlz
IG5vdCBrbm93bi5cbiIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgaWYgKCFyZWdFeHAtPmdsb2JhbE9yU3RpY2t5KCkpCisgICAgICAgICAgICAg
ICAgbGFzdEluZGV4ID0gMDsKKwogICAgICAgICAgICAgYXV0byBmb2xkVG9Db25zdGFudCA9IFsm
XSB7CiAgICAgICAgICAgICAgICAgTm9kZSogc3RyaW5nTm9kZSA9IG51bGxwdHI7CiAgICAgICAg
ICAgICAgICAgaWYgKG1fbm9kZS0+b3AoKSA9PSBSZWdFeHBFeGVjTm9uR2xvYmFsT3JTdGlja3kp
CkBAIC01NzEsMzkgKzYwMiw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICB1bnNpZ25lZCBs
YXN0SW5kZXg7Ci0gICAgICAgICAgICAgICAgaWYgKHJlZ0V4cC0+Z2xvYmFsT3JTdGlja3koKSkg
ewotICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHdpbGwgb25seSB3b3JrIGlmIHdlIGNhbiBw
cm92ZSB3aGF0IHRoZSB2YWx1ZSBvZiBsYXN0SW5kZXggaXMuIFRvIGRvIHRoaXMKLSAgICAgICAg
ICAgICAgICAgICAgLy8gc2FmZWx5LCB3ZSBuZWVkIHRvIGV4ZWN1dGUgdGhlIGluc2VydGlvbiBz
ZXQgc28gdGhhdCB3ZSBzZWUgYW55IHByZXZpb3VzIHN0cmVuZ3RoCi0gICAgICAgICAgICAgICAg
ICAgIC8vIHJlZHVjdGlvbnMuIFRoaXMgaXMgbmVlZGVkIGZvciBzb3VuZG5lc3Mgc2luY2Ugb3Ro
ZXJ3aXNlIHRoZSBlZmZlY3RmdWxuZXNzIG9mIGFueQotICAgICAgICAgICAgICAgICAgICAvLyBw
cmV2aW91cyBzdHJlbmd0aCByZWR1Y3Rpb25zIHdvdWxkIGJlIGludmlzaWJsZSB0byB1cy4KLSAg
ICAgICAgICAgICAgICAgICAgQVNTRVJUKHJlZ0V4cE9iamVjdE5vZGUpOwotICAgICAgICAgICAg
ICAgICAgICBleGVjdXRlSW5zZXJ0aW9uU2V0KCk7Ci0gICAgICAgICAgICAgICAgICAgIGxhc3RJ
bmRleCA9IFVJTlRfTUFYOwotICAgICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIG90aGVy
Tm9kZUluZGV4ID0gbV9ub2RlSW5kZXg7IG90aGVyTm9kZUluZGV4LS07KSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBOb2RlKiBvdGhlck5vZGUgPSBtX2Jsb2NrLT5hdChvdGhlck5vZGVJbmRl
eCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAob3RoZXJOb2RlID09IHJlZ0V4cE9iamVj
dE5vZGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0SW5kZXggPSAwOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG90aGVyTm9kZS0+b3AoKSA9PSBTZXRSZWdF
eHBPYmplY3RMYXN0SW5kZXgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBvdGhlck5v
ZGUtPmNoaWxkMSgpID09IHJlZ0V4cE9iamVjdE5vZGUKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmJiBvdGhlck5vZGUtPmNoaWxkMigpLT5pc0ludDMyQ29uc3RhbnQoKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICYmIG90aGVyTm9kZS0+Y2hpbGQyKCktPmFzSW50MzIoKSA+PSAw
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdEluZGV4ID0gc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KG90aGVyTm9kZS0+Y2hpbGQyKCktPmFzSW50MzIoKSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBpZiAod3JpdGVzT3ZlcmxhcChtX2dyYXBoLCBvdGhlck5vZGUsIFJl
Z0V4cE9iamVjdF9sYXN0SW5kZXgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGlmIChsYXN0SW5k
ZXggPT0gVUlOVF9NQVgpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIkdpdmluZyB1cCBiZWNhdXNlIHRo
ZSBsYXN0IGluZGV4IGlzIG5vdCBrbm93bi5cbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICAgICAgICAgIGxhc3RJbmRleCA9IDA7Ci0KICAgICAgICAgICAgICAg
ICBtX2dyYXBoLndhdGNocG9pbnRzKCkuYWRkTGF6aWx5KGdsb2JhbE9iamVjdC0+aGF2aW5nQUJh
ZFRpbWVXYXRjaHBvaW50KCkpOwogCiAgICAgICAgICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUgPSBnbG9iYWxPYmplY3QtPnJlZ0V4cE1hdGNoZXNBcnJheVN0cnVjdHVyZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0SW5saW5lcy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0SW5saW5lcy5oCmlu
ZGV4IDBkOTg0M2ZkNjllOWRmMjc0MmE1YjZlOThiYTgwNjhmOTFmZTUyMmEuLjlmYjM5MGFjYjZm
MTc4OWU1ZjkyOTM4OWIxZmQ5OGQzNzcxYjIzOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3RJbmxpbmVzLmgKQEAgLTQyLDIwICs0MiwxNCBA
QCBBTFdBWVNfSU5MSU5FIHVuc2lnbmVkIGdldFJlZ0V4cE9iamVjdExhc3RJbmRleEFzVW5zaWdu
ZWQoCiAgICAgdW5zaWduZWQgbGFzdEluZGV4OwogICAgIGlmIChMSUtFTFkoanNMYXN0SW5kZXgu
aXNVSW50MzIoKSkpIHsKICAgICAgICAgbGFzdEluZGV4ID0ganNMYXN0SW5kZXguYXNVSW50MzIo
KTsKLSAgICAgICAgaWYgKGxhc3RJbmRleCA+IGlucHV0Lmxlbmd0aCgpKSB7Ci0gICAgICAgICAg
ICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgICAgICAgICByZWdFeHBPYmplY3QtPnNldExhc3RJbmRl
eChnbG9iYWxPYmplY3QsIDApOworICAgICAgICBpZiAobGFzdEluZGV4ID4gaW5wdXQubGVuZ3Ro
KCkpCiAgICAgICAgICAgICByZXR1cm4gVUlOVF9NQVg7Ci0gICAgICAgIH0KICAgICB9IGVsc2Ug
ewogICAgICAgICBkb3VibGUgZG91YmxlTGFzdEluZGV4ID0ganNMYXN0SW5kZXgudG9JbnRlZ2Vy
KGdsb2JhbE9iamVjdCk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIFVJTlRf
TUFYKTsKLSAgICAgICAgaWYgKGRvdWJsZUxhc3RJbmRleCA8IDAgfHwgZG91YmxlTGFzdEluZGV4
ID4gaW5wdXQubGVuZ3RoKCkpIHsKLSAgICAgICAgICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICAg
ICAgICAgIHJlZ0V4cE9iamVjdC0+c2V0TGFzdEluZGV4KGdsb2JhbE9iamVjdCwgMCk7CisgICAg
ICAgIGlmIChkb3VibGVMYXN0SW5kZXggPiBpbnB1dC5sZW5ndGgoKSkKICAgICAgICAgICAgIHJl
dHVybiBVSU5UX01BWDsKLSAgICAgICAgfQotICAgICAgICBsYXN0SW5kZXggPSBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oZG91YmxlTGFzdEluZGV4KTsKKyAgICAgICAgbGFzdEluZGV4ID0gKGRvdWJs
ZUxhc3RJbmRleCA8IDApID8gMCA6IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkb3VibGVMYXN0SW5k
ZXgpOwogICAgIH0KICAgICByZXR1cm4gbGFzdEluZGV4OwogfQpAQCAtNzAsMTQgKzY0LDE1IEBA
IGlubGluZSBKU1ZhbHVlIFJlZ0V4cE9iamVjdDo6ZXhlY0lubGluZShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1N0cmluZyoKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOwogCiAgICAgYm9vbCBnbG9iYWxPclN0aWNreSA9IHJlZ0V4cC0+Z2xvYmFsT3JTdGlja3ko
KTsKKyAgICB1bnNpZ25lZCBsYXN0SW5kZXggPSBnZXRSZWdFeHBPYmplY3RMYXN0SW5kZXhBc1Vu
c2lnbmVkKGdsb2JhbE9iamVjdCwgdGhpcywgaW5wdXQpOworICAgIEVYQ0VQVElPTl9BU1NFUlQo
IXNjb3BlLmV4Y2VwdGlvbigpIHx8IGxhc3RJbmRleCA9PSBVSU5UX01BWCk7CisgICAgaWYgKGxh
c3RJbmRleCA9PSBVSU5UX01BWCAmJiBnbG9iYWxPclN0aWNreSkgeworICAgICAgICBzY29wZS5y
ZWxlYXNlKCk7CisgICAgICAgIHNldExhc3RJbmRleChnbG9iYWxPYmplY3QsIDApOworICAgICAg
ICByZXR1cm4ganNOdWxsKCk7CisgICAgfQogCi0gICAgdW5zaWduZWQgbGFzdEluZGV4OwotICAg
IGlmIChnbG9iYWxPclN0aWNreSkgewotICAgICAgICBsYXN0SW5kZXggPSBnZXRSZWdFeHBPYmpl
Y3RMYXN0SW5kZXhBc1Vuc2lnbmVkKGdsb2JhbE9iamVjdCwgdGhpcywgaW5wdXQpOwotICAgICAg
ICBFWENFUFRJT05fQVNTRVJUKCFzY29wZS5leGNlcHRpb24oKSB8fCBsYXN0SW5kZXggPT0gVUlO
VF9NQVgpOwotICAgICAgICBpZiAobGFzdEluZGV4ID09IFVJTlRfTUFYKQotICAgICAgICAgICAg
cmV0dXJuIGpzTnVsbCgpOwotICAgIH0gZWxzZQorICAgIGlmICghZ2xvYmFsT3JTdGlja3kpCiAg
ICAgICAgIGxhc3RJbmRleCA9IDA7CiAgICAgCiAgICAgTWF0Y2hSZXN1bHQgcmVzdWx0OwpAQCAt
MTE2LDggKzExMSwxMSBAQCBpbmxpbmUgTWF0Y2hSZXN1bHQgUmVnRXhwT2JqZWN0OjptYXRjaElu
bGluZSgKIAogICAgIHVuc2lnbmVkIGxhc3RJbmRleCA9IGdldFJlZ0V4cE9iamVjdExhc3RJbmRl
eEFzVW5zaWduZWQoZ2xvYmFsT2JqZWN0LCB0aGlzLCBpbnB1dCk7CiAgICAgRVhDRVBUSU9OX0FT
U0VSVCghc2NvcGUuZXhjZXB0aW9uKCkgfHwgKGxhc3RJbmRleCA9PSBVSU5UX01BWCkpOwotICAg
IGlmIChsYXN0SW5kZXggPT0gVUlOVF9NQVgpCisgICAgaWYgKGxhc3RJbmRleCA9PSBVSU5UX01B
WCkgeworICAgICAgICBzY29wZS5yZWxlYXNlKCk7CisgICAgICAgIHNldExhc3RJbmRleChnbG9i
YWxPYmplY3QsIDApOwogICAgICAgICByZXR1cm4gTWF0Y2hSZXN1bHQ6OmZhaWxlZCgpOworICAg
IH0KICAgICAKICAgICBNYXRjaFJlc3VsdCByZXN1bHQgPSBnbG9iYWxPYmplY3QtPnJlZ0V4cEds
b2JhbERhdGEoKS5wZXJmb3JtTWF0Y2godm0sIGdsb2JhbE9iamVjdCwgcmVnRXhwLCBzdHJpbmcs
IGlucHV0LCBsYXN0SW5kZXgpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDg0ZmVkZDhmYjZkOWY5ZDFjODk2ZGY0OTI5MDZmYmQzYjU0Y2E1ZWUuLjIwN2MwNzAwOTM4NWY1
YThlYjRiNTVmMTk4ZjAzYzdkYTA2NTAzN2QgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjAtMDMtMjEgIFJv
c3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgorCisgICAgICAgIFJlZ0V4cC5w
cm90b3R5cGUuZXhlYyBtdXN0IGFsd2F5cyBhY2Nlc3MgbGFzdEluZGV4CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkzNzUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1vemlsbGEvZWNtYV8zL1JlZ0V4
cC8xNS4xMC42LjItMi5qczoKKyAgICAgICAgU3luYyB0ZXN0IHdpdGggbW96aWxsYS1jZW50cmFs
J3MgY29weS4KKyAgICAgICAgKGh0dHBzOi8vc2VhcmNoZm94Lm9yZy9tb3ppbGxhLWNlbnRyYWwv
c291cmNlL2pzL3NyYy90ZXN0cy9ub24yNjIvUmVnRXhwLzE1LjEwLjYuMi0yLmpzKQorCisgICAg
ICAgICogc3RyZXNzL3JlZ2V4cC1leGVjLWFsd2F5cy1hY2Nlc3Nlcy1sYXN0aW5kZXguanM6IEFk
ZGVkLgorCisgICAgICAgICogdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbDoKKyAgICAgICAgTWFy
ayBlaWdodCB0ZXN0IGNhc2VzIGFzIHBhc3NpbmcuCisKIDIwMjAtMDMtMjAgIFJvc3MgS2lyc2xp
bmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIGhhc09ic2VydmFibGVTaWRl
RWZmZWN0c0ZvclJlZ0V4cFNwbGl0IGRvZXNuJ3QgY2hlY2sgZm9yIEBAbWF0Y2ggb3ZlcnJpZGUK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvbW96aWxsYS9lY21hXzMvUmVnRXhwLzE1LjEwLjYuMi0yLmpz
IGIvSlNUZXN0cy9tb3ppbGxhL2VjbWFfMy9SZWdFeHAvMTUuMTAuNi4yLTIuanMKaW5kZXggY2Nl
NGMyY2U2MjdhNjAzMDA3ZDdjMDIzYjBjYjkxODIzYjMwMmI5ZC4uNWVjMzRkMmJjYjc4M2Q1NTUw
MzUyMDEyMGE5NTBiMTliMGIyMzJiMSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9tb3ppbGxhL2VjbWFf
My9SZWdFeHAvMTUuMTAuNi4yLTIuanMKKysrIGIvSlNUZXN0cy9tb3ppbGxhL2VjbWFfMy9SZWdF
eHAvMTUuMTAuNi4yLTIuanMKQEAgLTEzOCwxNSArMTM4LDYgQEAgc3RyaW5nID0gJ0FiY2FCY2Fi
Qyc7CiAgIGV4cGVjdGVkbWF0Y2ggPSBudWxsOwogICBhZGRUaGlzKCk7CiAKLSAgLyoKLSAgICog
Tm93IGxldCdzIHNldCB8bGFzdEluZGV4fCB0byAtMSwgc28gdGhlIG1hdGNoIHNob3VsZCBhZ2Fp
biBiZSBudWxsIC0KLSAgICovCi0gIHN0YXR1cyA9IGluU2VjdGlvbig1KTsKLSAgcGF0dGVybi5s
YXN0SW5kZXggPSAtMTsKLSAgYWN0dWFsbWF0Y2ggPSBwYXR0ZXJuLmV4ZWMoc3RyaW5nKTsKLSAg
ZXhwZWN0ZWRtYXRjaCA9IG51bGw7Ci0gIGFkZFRoaXMoKTsKLQogICAvKgogICAgKiBOb3cgdHJ5
IHNvbWUgZWRnZS1jYXNlIHZhbHVlcy4gVGhhbmtzIHRvIHRoZSB3b3JrIGRvbmUgaW4KICAgICog
aHR0cDovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQzMzksIHxsYXN0
SW5kZXh8CkBAIC0xNjEsMTIgKzE1Miw2IEBAIHN0cmluZyA9ICdBYmNhQmNhYkMnOwogICBhY3R1
YWxtYXRjaCA9IHBhdHRlcm4uZXhlYyhzdHJpbmcpOwogICBleHBlY3RlZG1hdGNoID0gbnVsbDsK
ICAgYWRkVGhpcygpOwotICAKLSAgc3RhdHVzID0gaW5TZWN0aW9uKDcpOwotICBwYXR0ZXJuLmxh
c3RJbmRleCA9IC1NYXRoLnBvdygyLDMyKTsKLSAgYWN0dWFsbWF0Y2ggPSBwYXR0ZXJuLmV4ZWMo
c3RyaW5nKTsKLSAgZXhwZWN0ZWRtYXRjaCA9IG51bGw7Ci0gIGFkZFRoaXMoKTsKIAogICBzdGF0
dXMgPSBpblNlY3Rpb24oOCk7CiAgIHBhdHRlcm4ubGFzdEluZGV4ID0gTWF0aC5wb3coMiwzMikg
KyAxOwpAQCAtMTc0LDQ3ICsxNTksMjMgQEAgc3RyaW5nID0gJ0FiY2FCY2FiQyc7CiAgIGV4cGVj
dGVkbWF0Y2ggPSBudWxsOwogICBhZGRUaGlzKCk7CiAKLSAgc3RhdHVzID0gaW5TZWN0aW9uKDkp
OwotICBwYXR0ZXJuLmxhc3RJbmRleCA9IC0oTWF0aC5wb3coMiwzMikgKyAxKTsKLSAgYWN0dWFs
bWF0Y2ggPSBwYXR0ZXJuLmV4ZWMoc3RyaW5nKTsKLSAgZXhwZWN0ZWRtYXRjaCA9IG51bGw7Ci0g
IGFkZFRoaXMoKTsKLQogICBzdGF0dXMgPSBpblNlY3Rpb24oMTApOwogICBwYXR0ZXJuLmxhc3RJ
bmRleCA9IE1hdGgucG93KDIsMzIpICogMjsKICAgYWN0dWFsbWF0Y2ggPSBwYXR0ZXJuLmV4ZWMo
c3RyaW5nKTsKICAgZXhwZWN0ZWRtYXRjaCA9IG51bGw7CiAgIGFkZFRoaXMoKTsKIAotICBzdGF0
dXMgPSBpblNlY3Rpb24oMTEpOwotICBwYXR0ZXJuLmxhc3RJbmRleCA9IC1NYXRoLnBvdygyLDMy
KSAqIDI7Ci0gIGFjdHVhbG1hdGNoID0gcGF0dGVybi5leGVjKHN0cmluZyk7Ci0gIGV4cGVjdGVk
bWF0Y2ggPSBudWxsOwotICBhZGRUaGlzKCk7Ci0KICAgc3RhdHVzID0gaW5TZWN0aW9uKDEyKTsK
ICAgcGF0dGVybi5sYXN0SW5kZXggPSBNYXRoLnBvdygyLDQwKTsKICAgYWN0dWFsbWF0Y2ggPSBw
YXR0ZXJuLmV4ZWMoc3RyaW5nKTsKICAgZXhwZWN0ZWRtYXRjaCA9IG51bGw7CiAgIGFkZFRoaXMo
KTsKIAotICBzdGF0dXMgPSBpblNlY3Rpb24oMTMpOwotICBwYXR0ZXJuLmxhc3RJbmRleCA9IC1N
YXRoLnBvdygyLDQwKTsKLSAgYWN0dWFsbWF0Y2ggPSBwYXR0ZXJuLmV4ZWMoc3RyaW5nKTsKLSAg
ZXhwZWN0ZWRtYXRjaCA9IG51bGw7Ci0gIGFkZFRoaXMoKTsKLQogICBzdGF0dXMgPSBpblNlY3Rp
b24oMTQpOwogICBwYXR0ZXJuLmxhc3RJbmRleCA9IE51bWJlci5NQVhfVkFMVUU7CiAgIGFjdHVh
bG1hdGNoID0gcGF0dGVybi5leGVjKHN0cmluZyk7CiAgIGV4cGVjdGVkbWF0Y2ggPSBudWxsOwog
ICBhZGRUaGlzKCk7Ci0KLSAgc3RhdHVzID0gaW5TZWN0aW9uKDE1KTsKLSAgcGF0dGVybi5sYXN0
SW5kZXggPSAtTnVtYmVyLk1BWF9WQUxVRTsKLSAgYWN0dWFsbWF0Y2ggPSBwYXR0ZXJuLmV4ZWMo
c3RyaW5nKTsKLSAgZXhwZWN0ZWRtYXRjaCA9IG51bGw7Ci0gIGFkZFRoaXMoKTsKICAgCiAKIApk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvcmVnZXhwLWV4ZWMtYWx3YXlzLWFjY2Vzc2VzLWxh
c3RpbmRleC5qcyBiL0pTVGVzdHMvc3RyZXNzL3JlZ2V4cC1leGVjLWFsd2F5cy1hY2Nlc3Nlcy1s
YXN0aW5kZXguanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWI2NzdkODY0NzkwNDA0ZTNiOWUyMDYxZjBlNWQ0OTlk
ODU3ZGUxMQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL3JlZ2V4cC1leGVjLWFs
d2F5cy1hY2Nlc3Nlcy1sYXN0aW5kZXguanMKQEAgLTAsMCArMSwyMyBAQAorZnVuY3Rpb24gc2hv
dWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGV4cGVjdGVkICR7ZXhwZWN0ZWR9IGJ1dCBnb3QgJHth
Y3R1YWx9YCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKSB7CisgIGNvbnN0IHIgPSAvLi87CisKKyAg
bGV0IGNvdW50ID0gMDsKKyAgci5sYXN0SW5kZXggPSB7CisgICAgdmFsdWVPZigpIHsKKyAgICAg
IGNvdW50Kys7CisgICAgICByZXR1cm4gMDsKKyAgICB9CisgIH07CisKKyAgci5leGVjKCdhYmMn
KTsKKyAgc2hvdWxkQmUoY291bnQsIDEpOworfQorbm9JbmxpbmUodGVzdCk7CisKK2ZvciAobGV0
IGkgPSAwOyBpIDwgMWU1OyBpKyspCisgIHRlc3QoKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVz
dDI2Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFt
bAppbmRleCA1YjJiZWZhOGNlZmJlMzc2ZjJkMzU1MzY4MGZlODg2OGE5NWQ5NjUwLi4yNDZmZTQx
NTY3ODE2NWJhMGE3MmYxZjI1ZWY4M2Q4Zjk1YjMwMTQ2IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rl
c3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9u
cy55YW1sCkBAIC0xNDkyLDE1ICsxNDkyLDYgQEAgdGVzdC9idWlsdC1pbnMvUmVnRXhwL3Byb3Rv
dHlwZS9TeW1ib2wuc3BsaXQvdS1sYXN0aW5kZXgtYWR2LXRocnUtZmFpbHVyZS5qczoKIHRlc3Qv
YnVpbHQtaW5zL1JlZ0V4cC9wcm90b3R5cGUvZG90QWxsL2Nyb3NzLXJlYWxtLmpzOgogICBkZWZh
dWx0OiAnVGVzdDI2MkVycm9yOiBjcm9zcy1yZWFsbSBSZWdFeHAucHJvdG90eXBlIEV4cGVjdGVk
IGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQg
YWxsJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogY3Jvc3MtcmVhbG0gUmVnRXhwLnBy
b3RvdHlwZSBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlv
biB3YXMgdGhyb3duIGF0IGFsbCcKLXRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9wcm90b3R5cGUvZXhl
Yy9TMTUuMTAuNi4yX0E1X1QzLmpzOgotICBkZWZhdWx0OiAiVHlwZUVycm9yOiBudWxsIGlzIG5v
dCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ19fZXhlY3V0ZWRbMF0nKSIKLSAgc3RyaWN0IG1vZGU6
ICJUeXBlRXJyb3I6IG51bGwgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnX19leGVjdXRl
ZFswXScpIgotdGVzdC9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlwZS9leGVjL2ZhaWx1cmUtbGFz
dGluZGV4LWFjY2Vzcy5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2Ft
ZVZhbHVlKMKrMMK7LCDCqzHCuykgdG8gYmUgdHJ1ZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYy
RXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzDCuywgwqsxwrspIHRvIGJlIHRydWUnCi10ZXN0
L2J1aWx0LWlucy9SZWdFeHAvcHJvdG90eXBlL2V4ZWMvc3VjY2Vzcy1sYXN0aW5kZXgtYWNjZXNz
LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqswwrss
IMKrMcK7KSB0byBiZSB0cnVlJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0
ZWQgU2FtZVZhbHVlKMKrMMK7LCDCqzHCuykgdG8gYmUgdHJ1ZScKIHRlc3QvYnVpbHQtaW5zL1Jl
Z0V4cC9wcm90b3R5cGUvZXhlYy91LWxhc3RpbmRleC1hZHYuanM6CiAgIGRlZmF1bHQ6ICdUZXN0
MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq++/vcK7LCDCq251bGzCuykgdG8gYmUgdHJ1
ZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq++/
vcK7LCDCq251bGzCuykgdG8gYmUgdHJ1ZScKQEAgLTE1MTksOSArMTUxMCw2IEBAIHRlc3QvYnVp
bHQtaW5zL1JlZ0V4cC9wcm90b3R5cGUvc291cmNlL2Nyb3NzLXJlYWxtLmpzOgogdGVzdC9idWls
dC1pbnMvUmVnRXhwL3Byb3RvdHlwZS9zdGlja3kvY3Jvc3MtcmVhbG0uanM6CiAgIGRlZmF1bHQ6
ICdUZXN0MjYyRXJyb3I6IGNyb3NzLXJlYWxtIFJlZ0V4cC5wcm90b3R5cGUgRXhwZWN0ZWQgYSBU
eXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwn
CiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBjcm9zcy1yZWFsbSBSZWdFeHAucHJvdG90
eXBlIEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdh
cyB0aHJvd24gYXQgYWxsJwotdGVzdC9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlwZS90ZXN0L1Mx
NS4xMC42LjNfQTFfVDIyLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiAjMTogX19yZSA9
IC8oPzphYnxjZClcZD8vZzsgX19yZS5sYXN0SW5kZXg9LTE7IF9fZXhlY3V0ZWQgPSBfX3JlLnRl
c3QoImFhY2QyMiAiKTsgX19leGVjdXRlZCA9PT0gdHJ1ZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0
MjYyRXJyb3I6ICMxOiBfX3JlID0gLyg/OmFifGNkKVxkPy9nOyBfX3JlLmxhc3RJbmRleD0tMTsg
X19leGVjdXRlZCA9IF9fcmUudGVzdCgiYWFjZDIyICIpOyBfX2V4ZWN1dGVkID09PSB0cnVlJwog
dGVzdC9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlwZS91bmljb2RlL2Nyb3NzLXJlYWxtLmpzOgog
ICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBjcm9zcy1yZWFsbSBSZWdFeHAucHJvdG90eXBlIEV4
cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJv
d24gYXQgYWxsJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogY3Jvc3MtcmVhbG0gUmVn
RXhwLnByb3RvdHlwZSBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4
Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394430</attachid>
            <date>2020-03-24 16:01:25 -0700</date>
            <delta_ts>2020-03-30 14:48:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209375-20200324160124.patch</filename>
            <type>text/plain</type>
            <size>15339</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4OTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
MmI2YmJmZGIzZTg1ZTdhY2E5OTdmMzAwODhkZjBjMGY3NTg4ZjIyLi40ZWU3YjhkNmI2OTE2Y2Y0
OThkNjdiMDBiYTdiZTVkNmU0NDhiNzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAyMC0wMy0yNCAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgUmVnRXhwLnByb3RvdHlwZS5leGVjIG11c3QgYWx3YXlzIGFjY2Vz
cyBsYXN0SW5kZXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwOTM3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEZyb20gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1yZWdleHBidWlsdGluZXhlYzoK
KyAgICAgICAgICAyMS4yLjUuMi4yIFJ1bnRpbWUgU2VtYW50aWNzOiBSZWdFeHBCdWlsdGluRXhl
YyAoIFIsIFMgKQorICAgICAgICAgICAgLi4uCisgICAgICAgICAgICA0LiBMZXQgbGFzdEluZGV4
IGJlID8gVG9MZW5ndGgoPyBHZXQoUiwgImxhc3RJbmRleCIpKS4KKyAgICAgICAgICAgIC4uLgor
ICAgICAgICAgICAgOC4gSWYgZ2xvYmFsIGlzIGZhbHNlIGFuZCBzdGlja3kgaXMgZmFsc2UsIHNl
dCBsYXN0SW5kZXggdG8gMC4KKworICAgICAgICBUaGF0IGlzLCB3ZSdyZSBhbHdheXMgb2JsaWdl
ZCB0byB2ZXJpZnkgbGFzdEluZGV4LCBldmVuIHdoZW4gd2UgZG9uJ3QgdXNlIHRoZSB2YWx1ZS4K
KyAgICAgICAgREZHLCBpbiBwYXJ0aWN1bGFyLCBtdXN0IG1ha2Ugc3VyZSBzdHJlbmd0aCByZWR1
Y3Rpb25zIGRvbid0IGFwcGx5IHdoZW4gbGFzdEluZGV4IGlzbid0IGFuIHVuc2lnbmVkIGludGVn
ZXIuCisKKyAgICAgICAgRnVydGhlcm1vcmUsIFRvTGVuZ3RoIGNsYW1wcyBuZWdhdGl2ZSB2YWx1
ZXMgdG8gMCwgc28gY29ycmVjdCBnZXRSZWdFeHBPYmplY3RMYXN0SW5kZXhBc1Vuc2lnbmVkIGFj
Y29yZGluZ2x5LgorCisgICAgICAgICogZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OlN0cmVuZ3RoUmVkdWN0aW9uUGhhc2U6OmhhbmRsZU5vZGUp
OgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0SW5saW5lcy5oOgorICAgICAgICAoSlND
OjpnZXRSZWdFeHBPYmplY3RMYXN0SW5kZXhBc1Vuc2lnbmVkKToKKyAgICAgICAgKEpTQzo6UmVn
RXhwT2JqZWN0OjpleGVjSW5saW5lKToKKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjptYXRj
aElubGluZSk6CisKIDIwMjAtMDMtMjMgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgSGFzSW5kZXhlZFByb3BlcnR5IHNob3VsZCBrbm93IGFib3V0IHNh
bmUgY2hhaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RyZW5n
dGhSZWR1Y3Rpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVu
Z3RoUmVkdWN0aW9uUGhhc2UuY3BwCmluZGV4IGIzZTQxZDhkN2UxZGUzNmUyNzE2MTNhNDYyNTU3
NmM5ZjY2ZTc2MmMuLmFhOTE1ZTYxOTNjYTEyZDA3NGY3YWMwYmIzNDMyOTg3MDQ5MTA1NGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25Q
aGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJlbmd0aFJlZHVj
dGlvblBoYXNlLmNwcApAQCAtNTM1LDYgKzUzNSwzNyBAQCBwcml2YXRlOgogCiAgICAgICAgICAg
ICBBU1NFUlQobV9ub2RlLT5vcCgpICE9IFJlZ0V4cE1hdGNoRmFzdCk7CiAKKyAgICAgICAgICAg
IC8vIFRoaXMgd2lsbCBvbmx5IHdvcmsgaWYgd2UgY2FuIHByb3ZlIHdoYXQgdGhlIHZhbHVlIG9m
IGxhc3RJbmRleCBpcy4gVG8gZG8gdGhpcworICAgICAgICAgICAgLy8gc2FmZWx5LCB3ZSBuZWVk
IHRvIGV4ZWN1dGUgdGhlIGluc2VydGlvbiBzZXQgc28gdGhhdCB3ZSBzZWUgYW55IHByZXZpb3Vz
IHN0cmVuZ3RoCisgICAgICAgICAgICAvLyByZWR1Y3Rpb25zLiBUaGlzIGlzIG5lZWRlZCBmb3Ig
c291bmRuZXNzIHNpbmNlIG90aGVyd2lzZSB0aGUgZWZmZWN0ZnVsbmVzcyBvZiBhbnkKKyAgICAg
ICAgICAgIC8vIHByZXZpb3VzIHN0cmVuZ3RoIHJlZHVjdGlvbnMgd291bGQgYmUgaW52aXNpYmxl
IHRvIHVzLgorICAgICAgICAgICAgQVNTRVJUKHJlZ0V4cE9iamVjdE5vZGUpOworICAgICAgICAg
ICAgZXhlY3V0ZUluc2VydGlvblNldCgpOworICAgICAgICAgICAgdW5zaWduZWQgbGFzdEluZGV4
ID0gVUlOVF9NQVg7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIG90aGVyTm9kZUluZGV4ID0g
bV9ub2RlSW5kZXg7IG90aGVyTm9kZUluZGV4LS07KSB7CisgICAgICAgICAgICAgICAgTm9kZSog
b3RoZXJOb2RlID0gbV9ibG9jay0+YXQob3RoZXJOb2RlSW5kZXgpOworICAgICAgICAgICAgICAg
IGlmIChvdGhlck5vZGUgPT0gcmVnRXhwT2JqZWN0Tm9kZSkgeworICAgICAgICAgICAgICAgICAg
ICBsYXN0SW5kZXggPSAwOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG90aGVyTm9kZS0+b3AoKSA9PSBTZXRSZWdFeHBP
YmplY3RMYXN0SW5kZXgKKyAgICAgICAgICAgICAgICAgICAgJiYgb3RoZXJOb2RlLT5jaGlsZDEo
KSA9PSByZWdFeHBPYmplY3ROb2RlCisgICAgICAgICAgICAgICAgICAgICYmIG90aGVyTm9kZS0+
Y2hpbGQyKCktPmlzSW50MzJDb25zdGFudCgpCisgICAgICAgICAgICAgICAgICAgICYmIG90aGVy
Tm9kZS0+Y2hpbGQyKCktPmFzSW50MzIoKSA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGxh
c3RJbmRleCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihvdGhlck5vZGUtPmNoaWxkMigpLT5hc0lu
dDMyKCkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgaWYgKHdyaXRlc092ZXJsYXAobV9ncmFwaCwgb3RoZXJOb2RlLCBSZWdF
eHBPYmplY3RfbGFzdEluZGV4KSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBpZiAobGFzdEluZGV4ID09IFVJTlRfTUFYKSB7CisgICAgICAg
ICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIkdpdmlu
ZyB1cCBiZWNhdXNlIHRoZSBsYXN0IGluZGV4IGlzIG5vdCBrbm93bi5cbiIpOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFyZWdFeHAtPmds
b2JhbE9yU3RpY2t5KCkpCisgICAgICAgICAgICAgICAgbGFzdEluZGV4ID0gMDsKKwogICAgICAg
ICAgICAgYXV0byBmb2xkVG9Db25zdGFudCA9IFsmXSB7CiAgICAgICAgICAgICAgICAgTm9kZSog
c3RyaW5nTm9kZSA9IG51bGxwdHI7CiAgICAgICAgICAgICAgICAgaWYgKG1fbm9kZS0+b3AoKSA9
PSBSZWdFeHBFeGVjTm9uR2xvYmFsT3JTdGlja3kpCkBAIC01NzEsMzkgKzYwMiw2IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICB9
CiAKLSAgICAgICAgICAgICAgICB1bnNpZ25lZCBsYXN0SW5kZXg7Ci0gICAgICAgICAgICAgICAg
aWYgKHJlZ0V4cC0+Z2xvYmFsT3JTdGlja3koKSkgewotICAgICAgICAgICAgICAgICAgICAvLyBU
aGlzIHdpbGwgb25seSB3b3JrIGlmIHdlIGNhbiBwcm92ZSB3aGF0IHRoZSB2YWx1ZSBvZiBsYXN0
SW5kZXggaXMuIFRvIGRvIHRoaXMKLSAgICAgICAgICAgICAgICAgICAgLy8gc2FmZWx5LCB3ZSBu
ZWVkIHRvIGV4ZWN1dGUgdGhlIGluc2VydGlvbiBzZXQgc28gdGhhdCB3ZSBzZWUgYW55IHByZXZp
b3VzIHN0cmVuZ3RoCi0gICAgICAgICAgICAgICAgICAgIC8vIHJlZHVjdGlvbnMuIFRoaXMgaXMg
bmVlZGVkIGZvciBzb3VuZG5lc3Mgc2luY2Ugb3RoZXJ3aXNlIHRoZSBlZmZlY3RmdWxuZXNzIG9m
IGFueQotICAgICAgICAgICAgICAgICAgICAvLyBwcmV2aW91cyBzdHJlbmd0aCByZWR1Y3Rpb25z
IHdvdWxkIGJlIGludmlzaWJsZSB0byB1cy4KLSAgICAgICAgICAgICAgICAgICAgQVNTRVJUKHJl
Z0V4cE9iamVjdE5vZGUpOwotICAgICAgICAgICAgICAgICAgICBleGVjdXRlSW5zZXJ0aW9uU2V0
KCk7Ci0gICAgICAgICAgICAgICAgICAgIGxhc3RJbmRleCA9IFVJTlRfTUFYOwotICAgICAgICAg
ICAgICAgICAgICBmb3IgKHVuc2lnbmVkIG90aGVyTm9kZUluZGV4ID0gbV9ub2RlSW5kZXg7IG90
aGVyTm9kZUluZGV4LS07KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBOb2RlKiBvdGhlck5v
ZGUgPSBtX2Jsb2NrLT5hdChvdGhlck5vZGVJbmRleCk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBpZiAob3RoZXJOb2RlID09IHJlZ0V4cE9iamVjdE5vZGUpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsYXN0SW5kZXggPSAwOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKG90aGVyTm9kZS0+b3AoKSA9PSBTZXRSZWdFeHBPYmplY3RMYXN0SW5kZXgKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAmJiBvdGhlck5vZGUtPmNoaWxkMSgpID09IHJlZ0V4cE9iamVj
dE5vZGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBvdGhlck5vZGUtPmNoaWxkMigp
LT5pc0ludDMyQ29uc3RhbnQoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIG90aGVy
Tm9kZS0+Y2hpbGQyKCktPmFzSW50MzIoKSA+PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGFzdEluZGV4ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG90aGVyTm9kZS0+Y2hpbGQy
KCktPmFzSW50MzIoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAod3JpdGVz
T3ZlcmxhcChtX2dyYXBoLCBvdGhlck5vZGUsIFJlZ0V4cE9iamVjdF9sYXN0SW5kZXgpKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgIGlmIChsYXN0SW5kZXggPT0gVUlOVF9NQVgpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRhdGFMb2coIkdpdmluZyB1cCBiZWNhdXNlIHRoZSBsYXN0IGluZGV4IGlzIG5vdCBrbm93bi5c
biIpOwotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGxh
c3RJbmRleCA9IDA7Ci0KICAgICAgICAgICAgICAgICBtX2dyYXBoLndhdGNocG9pbnRzKCkuYWRk
TGF6aWx5KGdsb2JhbE9iamVjdC0+aGF2aW5nQUJhZFRpbWVXYXRjaHBvaW50KCkpOwogCiAgICAg
ICAgICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPnJlZ0V4cE1h
dGNoZXNBcnJheVN0cnVjdHVyZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwT2JqZWN0SW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwT2JqZWN0SW5saW5lcy5oCmluZGV4IDBkOTg0M2ZkNjllOWRmMjc0MmE1YjZl
OThiYTgwNjhmOTFmZTUyMmEuLjlmYjM5MGFjYjZmMTc4OWU1ZjkyOTM4OWIxZmQ5OGQzNzcxYjIz
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVj
dElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmpl
Y3RJbmxpbmVzLmgKQEAgLTQyLDIwICs0MiwxNCBAQCBBTFdBWVNfSU5MSU5FIHVuc2lnbmVkIGdl
dFJlZ0V4cE9iamVjdExhc3RJbmRleEFzVW5zaWduZWQoCiAgICAgdW5zaWduZWQgbGFzdEluZGV4
OwogICAgIGlmIChMSUtFTFkoanNMYXN0SW5kZXguaXNVSW50MzIoKSkpIHsKICAgICAgICAgbGFz
dEluZGV4ID0ganNMYXN0SW5kZXguYXNVSW50MzIoKTsKLSAgICAgICAgaWYgKGxhc3RJbmRleCA+
IGlucHV0Lmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgICAg
ICAgICByZWdFeHBPYmplY3QtPnNldExhc3RJbmRleChnbG9iYWxPYmplY3QsIDApOworICAgICAg
ICBpZiAobGFzdEluZGV4ID4gaW5wdXQubGVuZ3RoKCkpCiAgICAgICAgICAgICByZXR1cm4gVUlO
VF9NQVg7Ci0gICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBkb3VibGUgZG91YmxlTGFz
dEluZGV4ID0ganNMYXN0SW5kZXgudG9JbnRlZ2VyKGdsb2JhbE9iamVjdCk7CiAgICAgICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIFVJTlRfTUFYKTsKLSAgICAgICAgaWYgKGRvdWJsZUxh
c3RJbmRleCA8IDAgfHwgZG91YmxlTGFzdEluZGV4ID4gaW5wdXQubGVuZ3RoKCkpIHsKLSAgICAg
ICAgICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICAgICAgICAgIHJlZ0V4cE9iamVjdC0+c2V0TGFz
dEluZGV4KGdsb2JhbE9iamVjdCwgMCk7CisgICAgICAgIGlmIChkb3VibGVMYXN0SW5kZXggPiBp
bnB1dC5sZW5ndGgoKSkKICAgICAgICAgICAgIHJldHVybiBVSU5UX01BWDsKLSAgICAgICAgfQot
ICAgICAgICBsYXN0SW5kZXggPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZG91YmxlTGFzdEluZGV4
KTsKKyAgICAgICAgbGFzdEluZGV4ID0gKGRvdWJsZUxhc3RJbmRleCA8IDApID8gMCA6IHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihkb3VibGVMYXN0SW5kZXgpOwogICAgIH0KICAgICByZXR1cm4gbGFz
dEluZGV4OwogfQpAQCAtNzAsMTQgKzY0LDE1IEBAIGlubGluZSBKU1ZhbHVlIFJlZ0V4cE9iamVj
dDo6ZXhlY0lubGluZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyoKICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAgYm9vbCBnbG9iYWxPclN0
aWNreSA9IHJlZ0V4cC0+Z2xvYmFsT3JTdGlja3koKTsKKyAgICB1bnNpZ25lZCBsYXN0SW5kZXgg
PSBnZXRSZWdFeHBPYmplY3RMYXN0SW5kZXhBc1Vuc2lnbmVkKGdsb2JhbE9iamVjdCwgdGhpcywg
aW5wdXQpOworICAgIEVYQ0VQVElPTl9BU1NFUlQoIXNjb3BlLmV4Y2VwdGlvbigpIHx8IGxhc3RJ
bmRleCA9PSBVSU5UX01BWCk7CisgICAgaWYgKGxhc3RJbmRleCA9PSBVSU5UX01BWCAmJiBnbG9i
YWxPclN0aWNreSkgeworICAgICAgICBzY29wZS5yZWxlYXNlKCk7CisgICAgICAgIHNldExhc3RJ
bmRleChnbG9iYWxPYmplY3QsIDApOworICAgICAgICByZXR1cm4ganNOdWxsKCk7CisgICAgfQog
Ci0gICAgdW5zaWduZWQgbGFzdEluZGV4OwotICAgIGlmIChnbG9iYWxPclN0aWNreSkgewotICAg
ICAgICBsYXN0SW5kZXggPSBnZXRSZWdFeHBPYmplY3RMYXN0SW5kZXhBc1Vuc2lnbmVkKGdsb2Jh
bE9iamVjdCwgdGhpcywgaW5wdXQpOwotICAgICAgICBFWENFUFRJT05fQVNTRVJUKCFzY29wZS5l
eGNlcHRpb24oKSB8fCBsYXN0SW5kZXggPT0gVUlOVF9NQVgpOwotICAgICAgICBpZiAobGFzdElu
ZGV4ID09IFVJTlRfTUFYKQotICAgICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwotICAgIH0gZWxz
ZQorICAgIGlmICghZ2xvYmFsT3JTdGlja3kpCiAgICAgICAgIGxhc3RJbmRleCA9IDA7CiAgICAg
CiAgICAgTWF0Y2hSZXN1bHQgcmVzdWx0OwpAQCAtMTE2LDggKzExMSwxMSBAQCBpbmxpbmUgTWF0
Y2hSZXN1bHQgUmVnRXhwT2JqZWN0OjptYXRjaElubGluZSgKIAogICAgIHVuc2lnbmVkIGxhc3RJ
bmRleCA9IGdldFJlZ0V4cE9iamVjdExhc3RJbmRleEFzVW5zaWduZWQoZ2xvYmFsT2JqZWN0LCB0
aGlzLCBpbnB1dCk7CiAgICAgRVhDRVBUSU9OX0FTU0VSVCghc2NvcGUuZXhjZXB0aW9uKCkgfHwg
KGxhc3RJbmRleCA9PSBVSU5UX01BWCkpOwotICAgIGlmIChsYXN0SW5kZXggPT0gVUlOVF9NQVgp
CisgICAgaWYgKGxhc3RJbmRleCA9PSBVSU5UX01BWCkgeworICAgICAgICBzY29wZS5yZWxlYXNl
KCk7CisgICAgICAgIHNldExhc3RJbmRleChnbG9iYWxPYmplY3QsIDApOwogICAgICAgICByZXR1
cm4gTWF0Y2hSZXN1bHQ6OmZhaWxlZCgpOworICAgIH0KICAgICAKICAgICBNYXRjaFJlc3VsdCBy
ZXN1bHQgPSBnbG9iYWxPYmplY3QtPnJlZ0V4cEdsb2JhbERhdGEoKS5wZXJmb3JtTWF0Y2godm0s
IGdsb2JhbE9iamVjdCwgcmVnRXhwLCBzdHJpbmcsIGlucHV0LCBsYXN0SW5kZXgpOwogICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5n
ZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDY3YjZjZDQ2MDJlN2FhMWI3NjFhNDYyNDg5
NDFiOGY3ZTM0YmViNmYuLjE3MjU4OTZkNzE4ZDlkYzdkYjVlMzY2OWZiMjRjMDcwNzJlYWMwY2Qg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMjAtMDMtMjQgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5n
QHNvbnkuY29tPgorCisgICAgICAgIFJlZ0V4cC5wcm90b3R5cGUuZXhlYyBtdXN0IGFsd2F5cyBh
Y2Nlc3MgbGFzdEluZGV4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDkzNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIG1vemlsbGEvZWNtYV8zL1JlZ0V4cC8xNS4xMC42LjItMi5qczoKKyAgICAgICAg
U3luYyB0ZXN0IHdpdGggbW96aWxsYS1jZW50cmFsJ3MgY29weS4KKyAgICAgICAgKGh0dHBzOi8v
c2VhcmNoZm94Lm9yZy9tb3ppbGxhLWNlbnRyYWwvc291cmNlL2pzL3NyYy90ZXN0cy9ub24yNjIv
UmVnRXhwLzE1LjEwLjYuMi0yLmpzKQorCisgICAgICAgICogc3RyZXNzL3JlZ2V4cC1leGVjLWFs
d2F5cy1hY2Nlc3Nlcy1sYXN0aW5kZXguanM6IEFkZGVkLgorCisgICAgICAgICogdGVzdDI2Mi9l
eHBlY3RhdGlvbnMueWFtbDoKKyAgICAgICAgTWFyayBlaWdodCB0ZXN0IGNhc2VzIGFzIHBhc3Np
bmcuCisKIDIwMjAtMDMtMjMgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbSlNDXSBDYWxsZXIgb2YgRGVsZXRlIElDIHNob3VsZCBlbWl0IHdyaXRlLWJhcnJp
ZXIgb250byBvd25lcgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9tb3ppbGxhL2VjbWFfMy9SZWdFeHAv
MTUuMTAuNi4yLTIuanMgYi9KU1Rlc3RzL21vemlsbGEvZWNtYV8zL1JlZ0V4cC8xNS4xMC42LjIt
Mi5qcwppbmRleCBjY2U0YzJjZTYyN2E2MDMwMDdkN2MwMjNiMGNiOTE4MjNiMzAyYjlkLi41ZWMz
NGQyYmNiNzgzZDU1NTAzNTIwMTIwYTk1MGIxOWIwYjIzMmIxIDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L21vemlsbGEvZWNtYV8zL1JlZ0V4cC8xNS4xMC42LjItMi5qcworKysgYi9KU1Rlc3RzL21vemls
bGEvZWNtYV8zL1JlZ0V4cC8xNS4xMC42LjItMi5qcwpAQCAtMTM4LDE1ICsxMzgsNiBAQCBzdHJp
bmcgPSAnQWJjYUJjYWJDJzsKICAgZXhwZWN0ZWRtYXRjaCA9IG51bGw7CiAgIGFkZFRoaXMoKTsK
IAotICAvKgotICAgKiBOb3cgbGV0J3Mgc2V0IHxsYXN0SW5kZXh8IHRvIC0xLCBzbyB0aGUgbWF0
Y2ggc2hvdWxkIGFnYWluIGJlIG51bGwgLQotICAgKi8KLSAgc3RhdHVzID0gaW5TZWN0aW9uKDUp
OwotICBwYXR0ZXJuLmxhc3RJbmRleCA9IC0xOwotICBhY3R1YWxtYXRjaCA9IHBhdHRlcm4uZXhl
YyhzdHJpbmcpOwotICBleHBlY3RlZG1hdGNoID0gbnVsbDsKLSAgYWRkVGhpcygpOwotCiAgIC8q
CiAgICAqIE5vdyB0cnkgc29tZSBlZGdlLWNhc2UgdmFsdWVzLiBUaGFua3MgdG8gdGhlIHdvcmsg
ZG9uZSBpbgogICAgKiBodHRwOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lk
PTEyNDMzOSwgfGxhc3RJbmRleHwKQEAgLTE2MSwxMiArMTUyLDYgQEAgc3RyaW5nID0gJ0FiY2FC
Y2FiQyc7CiAgIGFjdHVhbG1hdGNoID0gcGF0dGVybi5leGVjKHN0cmluZyk7CiAgIGV4cGVjdGVk
bWF0Y2ggPSBudWxsOwogICBhZGRUaGlzKCk7Ci0gIAotICBzdGF0dXMgPSBpblNlY3Rpb24oNyk7
Ci0gIHBhdHRlcm4ubGFzdEluZGV4ID0gLU1hdGgucG93KDIsMzIpOwotICBhY3R1YWxtYXRjaCA9
IHBhdHRlcm4uZXhlYyhzdHJpbmcpOwotICBleHBlY3RlZG1hdGNoID0gbnVsbDsKLSAgYWRkVGhp
cygpOwogCiAgIHN0YXR1cyA9IGluU2VjdGlvbig4KTsKICAgcGF0dGVybi5sYXN0SW5kZXggPSBN
YXRoLnBvdygyLDMyKSArIDE7CkBAIC0xNzQsNDcgKzE1OSwyMyBAQCBzdHJpbmcgPSAnQWJjYUJj
YWJDJzsKICAgZXhwZWN0ZWRtYXRjaCA9IG51bGw7CiAgIGFkZFRoaXMoKTsKIAotICBzdGF0dXMg
PSBpblNlY3Rpb24oOSk7Ci0gIHBhdHRlcm4ubGFzdEluZGV4ID0gLShNYXRoLnBvdygyLDMyKSAr
IDEpOwotICBhY3R1YWxtYXRjaCA9IHBhdHRlcm4uZXhlYyhzdHJpbmcpOwotICBleHBlY3RlZG1h
dGNoID0gbnVsbDsKLSAgYWRkVGhpcygpOwotCiAgIHN0YXR1cyA9IGluU2VjdGlvbigxMCk7CiAg
IHBhdHRlcm4ubGFzdEluZGV4ID0gTWF0aC5wb3coMiwzMikgKiAyOwogICBhY3R1YWxtYXRjaCA9
IHBhdHRlcm4uZXhlYyhzdHJpbmcpOwogICBleHBlY3RlZG1hdGNoID0gbnVsbDsKICAgYWRkVGhp
cygpOwogCi0gIHN0YXR1cyA9IGluU2VjdGlvbigxMSk7Ci0gIHBhdHRlcm4ubGFzdEluZGV4ID0g
LU1hdGgucG93KDIsMzIpICogMjsKLSAgYWN0dWFsbWF0Y2ggPSBwYXR0ZXJuLmV4ZWMoc3RyaW5n
KTsKLSAgZXhwZWN0ZWRtYXRjaCA9IG51bGw7Ci0gIGFkZFRoaXMoKTsKLQogICBzdGF0dXMgPSBp
blNlY3Rpb24oMTIpOwogICBwYXR0ZXJuLmxhc3RJbmRleCA9IE1hdGgucG93KDIsNDApOwogICBh
Y3R1YWxtYXRjaCA9IHBhdHRlcm4uZXhlYyhzdHJpbmcpOwogICBleHBlY3RlZG1hdGNoID0gbnVs
bDsKICAgYWRkVGhpcygpOwogCi0gIHN0YXR1cyA9IGluU2VjdGlvbigxMyk7Ci0gIHBhdHRlcm4u
bGFzdEluZGV4ID0gLU1hdGgucG93KDIsNDApOwotICBhY3R1YWxtYXRjaCA9IHBhdHRlcm4uZXhl
YyhzdHJpbmcpOwotICBleHBlY3RlZG1hdGNoID0gbnVsbDsKLSAgYWRkVGhpcygpOwotCiAgIHN0
YXR1cyA9IGluU2VjdGlvbigxNCk7CiAgIHBhdHRlcm4ubGFzdEluZGV4ID0gTnVtYmVyLk1BWF9W
QUxVRTsKICAgYWN0dWFsbWF0Y2ggPSBwYXR0ZXJuLmV4ZWMoc3RyaW5nKTsKICAgZXhwZWN0ZWRt
YXRjaCA9IG51bGw7CiAgIGFkZFRoaXMoKTsKLQotICBzdGF0dXMgPSBpblNlY3Rpb24oMTUpOwot
ICBwYXR0ZXJuLmxhc3RJbmRleCA9IC1OdW1iZXIuTUFYX1ZBTFVFOwotICBhY3R1YWxtYXRjaCA9
IHBhdHRlcm4uZXhlYyhzdHJpbmcpOwotICBleHBlY3RlZG1hdGNoID0gbnVsbDsKLSAgYWRkVGhp
cygpOwogICAKIAogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9yZWdleHAtZXhlYy1hbHdh
eXMtYWNjZXNzZXMtbGFzdGluZGV4LmpzIGIvSlNUZXN0cy9zdHJlc3MvcmVnZXhwLWV4ZWMtYWx3
YXlzLWFjY2Vzc2VzLWxhc3RpbmRleC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hODg0NmYxNzg3ODkzZmZhYTY2
MDM0NDlhNjVmMDc5NzVjZDI4ZjQ5Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3Mv
cmVnZXhwLWV4ZWMtYWx3YXlzLWFjY2Vzc2VzLWxhc3RpbmRleC5qcwpAQCAtMCwwICsxLDUwIEBA
CitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAh
PT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQgJHtleHBlY3Rl
ZH0gYnV0IGdvdCAke2FjdHVhbH1gKTsKK30KKworZnVuY3Rpb24gc2hvdWxkVGhyb3dUeXBlRXJy
b3IoZnVuYykgeworICAgIGxldCBlcnJvcjsKKyAgICB0cnkgeworICAgICAgICBmdW5jKCk7Cisg
ICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorCisgICAgaWYgKCEo
ZXJyb3IgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4
cGVjdGVkIFR5cGVFcnJvciEnKTsKK30KKworZnVuY3Rpb24gdGVzdDEoKSB7CisgIGNvbnN0IHIg
PSAvLi87CisKKyAgbGV0IGNvdW50ID0gMDsKKyAgci5sYXN0SW5kZXggPSB7CisgICAgdmFsdWVP
ZigpIHsKKyAgICAgIGNvdW50Kys7CisgICAgICByZXR1cm4gMDsKKyAgICB9CisgIH07CisKKyAg
ci5leGVjKCdhYmMnKTsKKyAgc2hvdWxkQmUoY291bnQsIDEpOworfQorbm9JbmxpbmUodGVzdDEp
OworCitmdW5jdGlvbiB0ZXN0MigpIHsKKyAgY29uc3QgciA9IC8uLzsKKworICByLmxhc3RJbmRl
eCA9IHsKKyAgICB2YWx1ZU9mKCkgeworICAgICAgcmV0dXJuIFN5bWJvbCgpOworICAgIH0KKyAg
fTsKKworICByLmV4ZWMoJ2FiYycpOworfQorbm9JbmxpbmUodGVzdDIpOworCitmb3IgKGxldCBp
ID0gMDsgaSA8IDFlNTsgaSsrKSB7CisgIHRlc3QxKCk7CisgIHNob3VsZFRocm93VHlwZUVycm9y
KHRlc3QyKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFt
bCBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAppbmRleCBiMDUwMDMxYjZiMjdk
Yzk1MjRkZWM5NDM1M2M0ODJjNTVhZWM3MWIyLi40NTAxMDYyMjdiOTZkMzFlYjViOWQ5M2E0YTg3
NmQ4OTZmNDYwMTEyIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlh
bWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCkBAIC0xNDkyLDE1ICsx
NDkyLDYgQEAgdGVzdC9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlwZS9TeW1ib2wuc3BsaXQvdS1s
YXN0aW5kZXgtYWR2LXRocnUtZmFpbHVyZS5qczoKIHRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9wcm90
b3R5cGUvZG90QWxsL2Nyb3NzLXJlYWxtLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBj
cm9zcy1yZWFsbSBSZWdFeHAucHJvdG90eXBlIEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRo
cm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwogICBzdHJpY3QgbW9kZTog
J1Rlc3QyNjJFcnJvcjogY3Jvc3MtcmVhbG0gUmVnRXhwLnByb3RvdHlwZSBFeHBlY3RlZCBhIFR5
cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcK
LXRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9wcm90b3R5cGUvZXhlYy9TMTUuMTAuNi4yX0E1X1QzLmpz
OgotICBkZWZhdWx0OiAiVHlwZUVycm9yOiBudWxsIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRp
bmcgJ19fZXhlY3V0ZWRbMF0nKSIKLSAgc3RyaWN0IG1vZGU6ICJUeXBlRXJyb3I6IG51bGwgaXMg
bm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnX19leGVjdXRlZFswXScpIgotdGVzdC9idWlsdC1p
bnMvUmVnRXhwL3Byb3RvdHlwZS9leGVjL2ZhaWx1cmUtbGFzdGluZGV4LWFjY2Vzcy5qczoKLSAg
ZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrMMK7LCDCqzHCuykg
dG8gYmUgdHJ1ZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVW
YWx1ZSjCqzDCuywgwqsxwrspIHRvIGJlIHRydWUnCi10ZXN0L2J1aWx0LWlucy9SZWdFeHAvcHJv
dG90eXBlL2V4ZWMvc3VjY2Vzcy1sYXN0aW5kZXgtYWNjZXNzLmpzOgotICBkZWZhdWx0OiAnVGVz
dDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqswwrssIMKrMcK7KSB0byBiZSB0cnVlJwot
ICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrMMK7LCDC
qzHCuykgdG8gYmUgdHJ1ZScKIHRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9wcm90b3R5cGUvZXhlYy91
LWxhc3RpbmRleC1hZHYuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNh
bWVWYWx1ZSjCq++/vcK7LCDCq251bGzCuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6ICdU
ZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq++/vcK7LCDCq251bGzCuykgdG8gYmUg
dHJ1ZScKQEAgLTE1MTksOSArMTUxMCw2IEBAIHRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9wcm90b3R5
cGUvc291cmNlL2Nyb3NzLXJlYWxtLmpzOgogdGVzdC9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlw
ZS9zdGlja3kvY3Jvc3MtcmVhbG0uanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IGNyb3Nz
LXJlYWxtIFJlZ0V4cC5wcm90b3R5cGUgRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3du
IGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCiAgIHN0cmljdCBtb2RlOiAnVGVz
dDI2MkVycm9yOiBjcm9zcy1yZWFsbSBSZWdFeHAucHJvdG90eXBlIEV4cGVjdGVkIGEgVHlwZUVy
cm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwotdGVz
dC9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlwZS90ZXN0L1MxNS4xMC42LjNfQTFfVDIyLmpzOgot
ICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiAjMTogX19yZSA9IC8oPzphYnxjZClcZD8vZzsgX19y
ZS5sYXN0SW5kZXg9LTE7IF9fZXhlY3V0ZWQgPSBfX3JlLnRlc3QoImFhY2QyMiAiKTsgX19leGVj
dXRlZCA9PT0gdHJ1ZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6ICMxOiBfX3JlID0g
Lyg/OmFifGNkKVxkPy9nOyBfX3JlLmxhc3RJbmRleD0tMTsgX19leGVjdXRlZCA9IF9fcmUudGVz
dCgiYWFjZDIyICIpOyBfX2V4ZWN1dGVkID09PSB0cnVlJwogdGVzdC9idWlsdC1pbnMvUmVnRXhw
L3Byb3RvdHlwZS91bmljb2RlL2Nyb3NzLXJlYWxtLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVy
cm9yOiBjcm9zcy1yZWFsbSBSZWdFeHAucHJvdG90eXBlIEV4cGVjdGVkIGEgVHlwZUVycm9yIHRv
IGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwogICBzdHJpY3Qg
bW9kZTogJ1Rlc3QyNjJFcnJvcjogY3Jvc3MtcmVhbG0gUmVnRXhwLnByb3RvdHlwZSBFeHBlY3Rl
ZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0
IGFsbCcK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394967</attachid>
            <date>2020-03-30 14:48:07 -0700</date>
            <delta_ts>2020-03-30 16:57:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209375-20200330144806.patch</filename>
            <type>text/plain</type>
            <size>15528</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
MzBlNzc2YWNjY2Q1Y2YwM2RkNGZlNWU0YWE0NWYzNjgzYzE5Y2Y2Li5hOTFmMTk3MGQ3YjI1YWNj
ODY5YTBmMmJhZGIyOTZlZDM0NzgxOTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAyMC0wMy0zMCAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgUmVnRXhwLnByb3RvdHlwZS5leGVjIG11c3QgYWx3YXlzIGFjY2Vz
cyBsYXN0SW5kZXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwOTM3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEZyb20gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1yZWdleHBidWlsdGluZXhlYzoK
KyAgICAgICAgICAyMS4yLjUuMi4yIFJ1bnRpbWUgU2VtYW50aWNzOiBSZWdFeHBCdWlsdGluRXhl
YyAoIFIsIFMgKQorICAgICAgICAgICAgLi4uCisgICAgICAgICAgICA0LiBMZXQgbGFzdEluZGV4
IGJlID8gVG9MZW5ndGgoPyBHZXQoUiwgImxhc3RJbmRleCIpKS4KKyAgICAgICAgICAgIC4uLgor
ICAgICAgICAgICAgOC4gSWYgZ2xvYmFsIGlzIGZhbHNlIGFuZCBzdGlja3kgaXMgZmFsc2UsIHNl
dCBsYXN0SW5kZXggdG8gMC4KKworICAgICAgICBUaGF0IGlzLCB3ZSdyZSBhbHdheXMgb2JsaWdl
ZCB0byB2ZXJpZnkgdGhhdCBsYXN0SW5kZXggaXMgTnVtYmVyLWNvZXJjaWJsZSwgZXZlbiBpZiB3
ZSBkb24ndCB1c2UgdGhlIHZhbHVlLgorCisgICAgICAgIERGRywgaW4gcGFydGljdWxhciwgbXVz
dCBtYWtlIHN1cmUgc3RyZW5ndGggcmVkdWN0aW9ucyBkb24ndCBhcHBseSB3aGVuIGxhc3RJbmRl
eCBpc24ndCBhbiB1bnNpZ25lZCBpbnRlZ2VyCisgICAgICAgIChpLmUuLCB3aGVuIHVzZXIgY29k
ZSBoYXMgd3JpdHRlbiBzb21ldGhpbmcgc3RyYW5nZSB0byBpdCkuCisgICAgICAgIGZvbGRUb0Nv
bnN0YW50IGFscmVhZHkgaGFzIGFuIGVhcmx5IG91dCBmb3IgdGhpcywgYnV0IGl0IG5lZWRzIHRv
IGFwcGx5IHRvIGNvbnZlcnRUb1N0YXRpYyB0b28uCisKKyAgICAgICAgRnVydGhlcm1vcmUsIFRv
TGVuZ3RoIGNsYW1wcyBuZWdhdGl2ZSB2YWx1ZXMgdG8gMCwgc28gY29ycmVjdCBnZXRSZWdFeHBP
YmplY3RMYXN0SW5kZXhBc1Vuc2lnbmVkIGFjY29yZGluZ2x5LgorCisgICAgICAgICogZGZnL0RG
R1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlN0cmVuZ3Ro
UmVkdWN0aW9uUGhhc2U6OmhhbmRsZU5vZGUpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2Jq
ZWN0SW5saW5lcy5oOgorICAgICAgICAoSlNDOjpnZXRSZWdFeHBPYmplY3RMYXN0SW5kZXhBc1Vu
c2lnbmVkKToKKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpleGVjSW5saW5lKToKKyAgICAg
ICAgKEpTQzo6UmVnRXhwT2JqZWN0OjptYXRjaElubGluZSk6CisKIDIwMjAtMDMtMjggIFl1c3Vr
ZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBVc2UgQ2FjaGVh
YmxlSWRlbnRpZmllciBmb3IgYWxsIEJ5SWQgY2FzZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAKaW5kZXggYjNlNDFk
OGQ3ZTFkZTM2ZTI3MTYxM2E0NjI1NTc2YzlmNjZlNzYyYy4uYWE5MTVlNjE5M2NhMTJkMDc0Zjdh
YzBiYjM0MzI5ODcwNDkxMDU0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwCkBAIC01MzUsNiArNTM1LDM3IEBA
IHByaXZhdGU6CiAKICAgICAgICAgICAgIEFTU0VSVChtX25vZGUtPm9wKCkgIT0gUmVnRXhwTWF0
Y2hGYXN0KTsKIAorICAgICAgICAgICAgLy8gVGhpcyB3aWxsIG9ubHkgd29yayBpZiB3ZSBjYW4g
cHJvdmUgd2hhdCB0aGUgdmFsdWUgb2YgbGFzdEluZGV4IGlzLiBUbyBkbyB0aGlzCisgICAgICAg
ICAgICAvLyBzYWZlbHksIHdlIG5lZWQgdG8gZXhlY3V0ZSB0aGUgaW5zZXJ0aW9uIHNldCBzbyB0
aGF0IHdlIHNlZSBhbnkgcHJldmlvdXMgc3RyZW5ndGgKKyAgICAgICAgICAgIC8vIHJlZHVjdGlv
bnMuIFRoaXMgaXMgbmVlZGVkIGZvciBzb3VuZG5lc3Mgc2luY2Ugb3RoZXJ3aXNlIHRoZSBlZmZl
Y3RmdWxuZXNzIG9mIGFueQorICAgICAgICAgICAgLy8gcHJldmlvdXMgc3RyZW5ndGggcmVkdWN0
aW9ucyB3b3VsZCBiZSBpbnZpc2libGUgdG8gdXMuCisgICAgICAgICAgICBBU1NFUlQocmVnRXhw
T2JqZWN0Tm9kZSk7CisgICAgICAgICAgICBleGVjdXRlSW5zZXJ0aW9uU2V0KCk7CisgICAgICAg
ICAgICB1bnNpZ25lZCBsYXN0SW5kZXggPSBVSU5UX01BWDsKKyAgICAgICAgICAgIGZvciAodW5z
aWduZWQgb3RoZXJOb2RlSW5kZXggPSBtX25vZGVJbmRleDsgb3RoZXJOb2RlSW5kZXgtLTspIHsK
KyAgICAgICAgICAgICAgICBOb2RlKiBvdGhlck5vZGUgPSBtX2Jsb2NrLT5hdChvdGhlck5vZGVJ
bmRleCk7CisgICAgICAgICAgICAgICAgaWYgKG90aGVyTm9kZSA9PSByZWdFeHBPYmplY3ROb2Rl
KSB7CisgICAgICAgICAgICAgICAgICAgIGxhc3RJbmRleCA9IDA7CisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAob3RoZXJO
b2RlLT5vcCgpID09IFNldFJlZ0V4cE9iamVjdExhc3RJbmRleAorICAgICAgICAgICAgICAgICAg
ICAmJiBvdGhlck5vZGUtPmNoaWxkMSgpID09IHJlZ0V4cE9iamVjdE5vZGUKKyAgICAgICAgICAg
ICAgICAgICAgJiYgb3RoZXJOb2RlLT5jaGlsZDIoKS0+aXNJbnQzMkNvbnN0YW50KCkKKyAgICAg
ICAgICAgICAgICAgICAgJiYgb3RoZXJOb2RlLT5jaGlsZDIoKS0+YXNJbnQzMigpID49IDApIHsK
KyAgICAgICAgICAgICAgICAgICAgbGFzdEluZGV4ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG90
aGVyTm9kZS0+Y2hpbGQyKCktPmFzSW50MzIoKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAod3JpdGVzT3ZlcmxhcCht
X2dyYXBoLCBvdGhlck5vZGUsIFJlZ0V4cE9iamVjdF9sYXN0SW5kZXgpKQorICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsYXN0SW5kZXgg
PT0gVUlOVF9NQVgpIHsKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAg
ICAgICAgICAgZGF0YUxvZygiR2l2aW5nIHVwIGJlY2F1c2UgdGhlIGxhc3QgaW5kZXggaXMgbm90
IGtub3duLlxuIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBpZiAoIXJlZ0V4cC0+Z2xvYmFsT3JTdGlja3koKSkKKyAgICAgICAgICAgICAgICBs
YXN0SW5kZXggPSAwOworCiAgICAgICAgICAgICBhdXRvIGZvbGRUb0NvbnN0YW50ID0gWyZdIHsK
ICAgICAgICAgICAgICAgICBOb2RlKiBzdHJpbmdOb2RlID0gbnVsbHB0cjsKICAgICAgICAgICAg
ICAgICBpZiAobV9ub2RlLT5vcCgpID09IFJlZ0V4cEV4ZWNOb25HbG9iYWxPclN0aWNreSkKQEAg
LTU3MSwzOSArNjAyLDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxhc3RJ
bmRleDsKLSAgICAgICAgICAgICAgICBpZiAocmVnRXhwLT5nbG9iYWxPclN0aWNreSgpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBvbmx5IHdvcmsgaWYgd2UgY2FuIHByb3Zl
IHdoYXQgdGhlIHZhbHVlIG9mIGxhc3RJbmRleCBpcy4gVG8gZG8gdGhpcwotICAgICAgICAgICAg
ICAgICAgICAvLyBzYWZlbHksIHdlIG5lZWQgdG8gZXhlY3V0ZSB0aGUgaW5zZXJ0aW9uIHNldCBz
byB0aGF0IHdlIHNlZSBhbnkgcHJldmlvdXMgc3RyZW5ndGgKLSAgICAgICAgICAgICAgICAgICAg
Ly8gcmVkdWN0aW9ucy4gVGhpcyBpcyBuZWVkZWQgZm9yIHNvdW5kbmVzcyBzaW5jZSBvdGhlcndp
c2UgdGhlIGVmZmVjdGZ1bG5lc3Mgb2YgYW55Ci0gICAgICAgICAgICAgICAgICAgIC8vIHByZXZp
b3VzIHN0cmVuZ3RoIHJlZHVjdGlvbnMgd291bGQgYmUgaW52aXNpYmxlIHRvIHVzLgotICAgICAg
ICAgICAgICAgICAgICBBU1NFUlQocmVnRXhwT2JqZWN0Tm9kZSk7Ci0gICAgICAgICAgICAgICAg
ICAgIGV4ZWN1dGVJbnNlcnRpb25TZXQoKTsKLSAgICAgICAgICAgICAgICAgICAgbGFzdEluZGV4
ID0gVUlOVF9NQVg7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgb3RoZXJOb2Rl
SW5kZXggPSBtX25vZGVJbmRleDsgb3RoZXJOb2RlSW5kZXgtLTspIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIE5vZGUqIG90aGVyTm9kZSA9IG1fYmxvY2stPmF0KG90aGVyTm9kZUluZGV4KTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvdGhlck5vZGUgPT0gcmVnRXhwT2JqZWN0Tm9k
ZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RJbmRleCA9IDA7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBpZiAob3RoZXJOb2RlLT5vcCgpID09IFNldFJlZ0V4cE9i
amVjdExhc3RJbmRleAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIG90aGVyTm9kZS0+
Y2hpbGQxKCkgPT0gcmVnRXhwT2JqZWN0Tm9kZQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICYmIG90aGVyTm9kZS0+Y2hpbGQyKCktPmlzSW50MzJDb25zdGFudCgpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJiYgb3RoZXJOb2RlLT5jaGlsZDIoKS0+YXNJbnQzMigpID49IDApIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0SW5kZXggPSBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4ob3RoZXJOb2RlLT5jaGlsZDIoKS0+YXNJbnQzMigpKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICh3cml0ZXNPdmVybGFwKG1fZ3JhcGgsIG90aGVyTm9kZSwgUmVnRXhw
T2JqZWN0X2xhc3RJbmRleCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RJbmRleCA9
PSBVSU5UX01BWCkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiR2l2aW5nIHVwIGJlY2F1c2UgdGhlIGxh
c3QgaW5kZXggaXMgbm90IGtub3duLlxuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2UK
LSAgICAgICAgICAgICAgICAgICAgbGFzdEluZGV4ID0gMDsKLQogICAgICAgICAgICAgICAgIG1f
Z3JhcGgud2F0Y2hwb2ludHMoKS5hZGRMYXppbHkoZ2xvYmFsT2JqZWN0LT5oYXZpbmdBQmFkVGlt
ZVdhdGNocG9pbnQoKSk7CiAKICAgICAgICAgICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9
IGdsb2JhbE9iamVjdC0+cmVnRXhwTWF0Y2hlc0FycmF5U3RydWN0dXJlKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3RJbmxpbmVzLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3RJbmxpbmVzLmgKaW5kZXgg
MGQ5ODQzZmQ2OWU5ZGYyNzQyYTViNmU5OGJhODA2OGY5MWZlNTIyYS4uODU0YWZjYjRmMTRhOWU3
NDhjOTZiMWEyMmE5NDdjZjVjNDgzNjU4NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdElubGluZXMuaApAQCAtNDIsMjAgKzQyLDE0IEBAIEFM
V0FZU19JTkxJTkUgdW5zaWduZWQgZ2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4QXNVbnNpZ25lZCgK
ICAgICB1bnNpZ25lZCBsYXN0SW5kZXg7CiAgICAgaWYgKExJS0VMWShqc0xhc3RJbmRleC5pc1VJ
bnQzMigpKSkgewogICAgICAgICBsYXN0SW5kZXggPSBqc0xhc3RJbmRleC5hc1VJbnQzMigpOwot
ICAgICAgICBpZiAobGFzdEluZGV4ID4gaW5wdXQubGVuZ3RoKCkpIHsKLSAgICAgICAgICAgIHNj
b3BlLnJlbGVhc2UoKTsKLSAgICAgICAgICAgIHJlZ0V4cE9iamVjdC0+c2V0TGFzdEluZGV4KGds
b2JhbE9iamVjdCwgMCk7CisgICAgICAgIGlmIChsYXN0SW5kZXggPiBpbnB1dC5sZW5ndGgoKSkK
ICAgICAgICAgICAgIHJldHVybiBVSU5UX01BWDsKLSAgICAgICAgfQogICAgIH0gZWxzZSB7CiAg
ICAgICAgIGRvdWJsZSBkb3VibGVMYXN0SW5kZXggPSBqc0xhc3RJbmRleC50b0ludGVnZXIoZ2xv
YmFsT2JqZWN0KTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgVUlOVF9NQVgp
OwotICAgICAgICBpZiAoZG91YmxlTGFzdEluZGV4IDwgMCB8fCBkb3VibGVMYXN0SW5kZXggPiBp
bnB1dC5sZW5ndGgoKSkgewotICAgICAgICAgICAgc2NvcGUucmVsZWFzZSgpOwotICAgICAgICAg
ICAgcmVnRXhwT2JqZWN0LT5zZXRMYXN0SW5kZXgoZ2xvYmFsT2JqZWN0LCAwKTsKKyAgICAgICAg
aWYgKGRvdWJsZUxhc3RJbmRleCA+IGlucHV0Lmxlbmd0aCgpKQogICAgICAgICAgICAgcmV0dXJu
IFVJTlRfTUFYOwotICAgICAgICB9Ci0gICAgICAgIGxhc3RJbmRleCA9IHN0YXRpY19jYXN0PHVu
c2lnbmVkPihkb3VibGVMYXN0SW5kZXgpOworICAgICAgICBsYXN0SW5kZXggPSAoZG91YmxlTGFz
dEluZGV4IDwgMCkgPyAwIDogc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRvdWJsZUxhc3RJbmRleCk7
CiAgICAgfQogICAgIHJldHVybiBsYXN0SW5kZXg7CiB9CkBAIC03MCwxNCArNjQsMTUgQEAgaW5s
aW5lIEpTVmFsdWUgUmVnRXhwT2JqZWN0OjpleGVjSW5saW5lKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTU3RyaW5nKgogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7
CiAKICAgICBib29sIGdsb2JhbE9yU3RpY2t5ID0gcmVnRXhwLT5nbG9iYWxPclN0aWNreSgpOwor
ICAgIHVuc2lnbmVkIGxhc3RJbmRleCA9IGdldFJlZ0V4cE9iamVjdExhc3RJbmRleEFzVW5zaWdu
ZWQoZ2xvYmFsT2JqZWN0LCB0aGlzLCBpbnB1dCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgeyB9KTsKKyAgICBpZiAobGFzdEluZGV4ID09IFVJTlRfTUFYICYmIGdsb2JhbE9yU3Rp
Y2t5KSB7CisgICAgICAgIHNjb3BlLnJlbGVhc2UoKTsKKyAgICAgICAgc2V0TGFzdEluZGV4KGds
b2JhbE9iamVjdCwgMCk7CisgICAgICAgIHJldHVybiBqc051bGwoKTsKKyAgICB9CiAKLSAgICB1
bnNpZ25lZCBsYXN0SW5kZXg7Ci0gICAgaWYgKGdsb2JhbE9yU3RpY2t5KSB7Ci0gICAgICAgIGxh
c3RJbmRleCA9IGdldFJlZ0V4cE9iamVjdExhc3RJbmRleEFzVW5zaWduZWQoZ2xvYmFsT2JqZWN0
LCB0aGlzLCBpbnB1dCk7Ci0gICAgICAgIEVYQ0VQVElPTl9BU1NFUlQoIXNjb3BlLmV4Y2VwdGlv
bigpIHx8IGxhc3RJbmRleCA9PSBVSU5UX01BWCk7Ci0gICAgICAgIGlmIChsYXN0SW5kZXggPT0g
VUlOVF9NQVgpCi0gICAgICAgICAgICByZXR1cm4ganNOdWxsKCk7Ci0gICAgfSBlbHNlCisgICAg
aWYgKCFnbG9iYWxPclN0aWNreSkKICAgICAgICAgbGFzdEluZGV4ID0gMDsKICAgICAKICAgICBN
YXRjaFJlc3VsdCByZXN1bHQ7CkBAIC0xMTUsOSArMTEwLDEyIEBAIGlubGluZSBNYXRjaFJlc3Vs
dCBSZWdFeHBPYmplY3Q6Om1hdGNoSW5saW5lKAogICAgIH0KIAogICAgIHVuc2lnbmVkIGxhc3RJ
bmRleCA9IGdldFJlZ0V4cE9iamVjdExhc3RJbmRleEFzVW5zaWduZWQoZ2xvYmFsT2JqZWN0LCB0
aGlzLCBpbnB1dCk7Ci0gICAgRVhDRVBUSU9OX0FTU0VSVCghc2NvcGUuZXhjZXB0aW9uKCkgfHwg
KGxhc3RJbmRleCA9PSBVSU5UX01BWCkpOwotICAgIGlmIChsYXN0SW5kZXggPT0gVUlOVF9NQVgp
CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICBpZiAobGFzdEluZGV4
ID09IFVJTlRfTUFYKSB7CisgICAgICAgIHNjb3BlLnJlbGVhc2UoKTsKKyAgICAgICAgc2V0TGFz
dEluZGV4KGdsb2JhbE9iamVjdCwgMCk7CiAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdDo6ZmFp
bGVkKCk7CisgICAgfQogICAgIAogICAgIE1hdGNoUmVzdWx0IHJlc3VsdCA9IGdsb2JhbE9iamVj
dC0+cmVnRXhwR2xvYmFsRGF0YSgpLnBlcmZvcm1NYXRjaCh2bSwgZ2xvYmFsT2JqZWN0LCByZWdF
eHAsIHN0cmluZywgaW5wdXQsIGxhc3RJbmRleCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgeyB9KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggNWRiYmQ3NWY4YWM4ZTUwNjM2OGRkM2M4Y2RmZTVmNzMwZjQ1YWE2ZC4uMmYx
ZDY3NzVkMWM3NGVmMDNiNzYxZjJmNWRhYzU0NWU3YWZlZTQwYSAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAy
MC0wMy0zMCAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CisKKyAgICAg
ICAgUmVnRXhwLnByb3RvdHlwZS5leGVjIG11c3QgYWx3YXlzIGFjY2VzcyBsYXN0SW5kZXgKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTM3NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbW96aWxsYS9l
Y21hXzMvUmVnRXhwLzE1LjEwLjYuMi0yLmpzOgorICAgICAgICBTeW5jIHRlc3Qgd2l0aCBtb3pp
bGxhLWNlbnRyYWwncyBjb3B5LgorICAgICAgICAoaHR0cHM6Ly9zZWFyY2hmb3gub3JnL21vemls
bGEtY2VudHJhbC9zb3VyY2UvanMvc3JjL3Rlc3RzL25vbjI2Mi9SZWdFeHAvMTUuMTAuNi4yLTIu
anMpCisKKyAgICAgICAgKiBzdHJlc3MvcmVnZXhwLWV4ZWMtYWx3YXlzLWFjY2Vzc2VzLWxhc3Rp
bmRleC5qczogQWRkZWQuCisKKyAgICAgICAgKiB0ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sOgor
ICAgICAgICBNYXJrIGVpZ2h0IHRlc3QgY2FzZXMgYXMgcGFzc2luZy4KKwogMjAyMC0wMy0yOCAg
Q2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+CiAKICAgICAgICAgc3RyZXNzL3Rlc3Qt
b3V0LW9mLW1lbW9yeS5qcyB0ZXN0IGdhZGVybmluZwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9tb3pp
bGxhL2VjbWFfMy9SZWdFeHAvMTUuMTAuNi4yLTIuanMgYi9KU1Rlc3RzL21vemlsbGEvZWNtYV8z
L1JlZ0V4cC8xNS4xMC42LjItMi5qcwppbmRleCBjY2U0YzJjZTYyN2E2MDMwMDdkN2MwMjNiMGNi
OTE4MjNiMzAyYjlkLi41ZWMzNGQyYmNiNzgzZDU1NTAzNTIwMTIwYTk1MGIxOWIwYjIzMmIxIDEw
MDY0NAotLS0gYS9KU1Rlc3RzL21vemlsbGEvZWNtYV8zL1JlZ0V4cC8xNS4xMC42LjItMi5qcwor
KysgYi9KU1Rlc3RzL21vemlsbGEvZWNtYV8zL1JlZ0V4cC8xNS4xMC42LjItMi5qcwpAQCAtMTM4
LDE1ICsxMzgsNiBAQCBzdHJpbmcgPSAnQWJjYUJjYWJDJzsKICAgZXhwZWN0ZWRtYXRjaCA9IG51
bGw7CiAgIGFkZFRoaXMoKTsKIAotICAvKgotICAgKiBOb3cgbGV0J3Mgc2V0IHxsYXN0SW5kZXh8
IHRvIC0xLCBzbyB0aGUgbWF0Y2ggc2hvdWxkIGFnYWluIGJlIG51bGwgLQotICAgKi8KLSAgc3Rh
dHVzID0gaW5TZWN0aW9uKDUpOwotICBwYXR0ZXJuLmxhc3RJbmRleCA9IC0xOwotICBhY3R1YWxt
YXRjaCA9IHBhdHRlcm4uZXhlYyhzdHJpbmcpOwotICBleHBlY3RlZG1hdGNoID0gbnVsbDsKLSAg
YWRkVGhpcygpOwotCiAgIC8qCiAgICAqIE5vdyB0cnkgc29tZSBlZGdlLWNhc2UgdmFsdWVzLiBU
aGFua3MgdG8gdGhlIHdvcmsgZG9uZSBpbgogICAgKiBodHRwOi8vYnVnemlsbGEubW96aWxsYS5v
cmcvc2hvd19idWcuY2dpP2lkPTEyNDMzOSwgfGxhc3RJbmRleHwKQEAgLTE2MSwxMiArMTUyLDYg
QEAgc3RyaW5nID0gJ0FiY2FCY2FiQyc7CiAgIGFjdHVhbG1hdGNoID0gcGF0dGVybi5leGVjKHN0
cmluZyk7CiAgIGV4cGVjdGVkbWF0Y2ggPSBudWxsOwogICBhZGRUaGlzKCk7Ci0gIAotICBzdGF0
dXMgPSBpblNlY3Rpb24oNyk7Ci0gIHBhdHRlcm4ubGFzdEluZGV4ID0gLU1hdGgucG93KDIsMzIp
OwotICBhY3R1YWxtYXRjaCA9IHBhdHRlcm4uZXhlYyhzdHJpbmcpOwotICBleHBlY3RlZG1hdGNo
ID0gbnVsbDsKLSAgYWRkVGhpcygpOwogCiAgIHN0YXR1cyA9IGluU2VjdGlvbig4KTsKICAgcGF0
dGVybi5sYXN0SW5kZXggPSBNYXRoLnBvdygyLDMyKSArIDE7CkBAIC0xNzQsNDcgKzE1OSwyMyBA
QCBzdHJpbmcgPSAnQWJjYUJjYWJDJzsKICAgZXhwZWN0ZWRtYXRjaCA9IG51bGw7CiAgIGFkZFRo
aXMoKTsKIAotICBzdGF0dXMgPSBpblNlY3Rpb24oOSk7Ci0gIHBhdHRlcm4ubGFzdEluZGV4ID0g
LShNYXRoLnBvdygyLDMyKSArIDEpOwotICBhY3R1YWxtYXRjaCA9IHBhdHRlcm4uZXhlYyhzdHJp
bmcpOwotICBleHBlY3RlZG1hdGNoID0gbnVsbDsKLSAgYWRkVGhpcygpOwotCiAgIHN0YXR1cyA9
IGluU2VjdGlvbigxMCk7CiAgIHBhdHRlcm4ubGFzdEluZGV4ID0gTWF0aC5wb3coMiwzMikgKiAy
OwogICBhY3R1YWxtYXRjaCA9IHBhdHRlcm4uZXhlYyhzdHJpbmcpOwogICBleHBlY3RlZG1hdGNo
ID0gbnVsbDsKICAgYWRkVGhpcygpOwogCi0gIHN0YXR1cyA9IGluU2VjdGlvbigxMSk7Ci0gIHBh
dHRlcm4ubGFzdEluZGV4ID0gLU1hdGgucG93KDIsMzIpICogMjsKLSAgYWN0dWFsbWF0Y2ggPSBw
YXR0ZXJuLmV4ZWMoc3RyaW5nKTsKLSAgZXhwZWN0ZWRtYXRjaCA9IG51bGw7Ci0gIGFkZFRoaXMo
KTsKLQogICBzdGF0dXMgPSBpblNlY3Rpb24oMTIpOwogICBwYXR0ZXJuLmxhc3RJbmRleCA9IE1h
dGgucG93KDIsNDApOwogICBhY3R1YWxtYXRjaCA9IHBhdHRlcm4uZXhlYyhzdHJpbmcpOwogICBl
eHBlY3RlZG1hdGNoID0gbnVsbDsKICAgYWRkVGhpcygpOwogCi0gIHN0YXR1cyA9IGluU2VjdGlv
bigxMyk7Ci0gIHBhdHRlcm4ubGFzdEluZGV4ID0gLU1hdGgucG93KDIsNDApOwotICBhY3R1YWxt
YXRjaCA9IHBhdHRlcm4uZXhlYyhzdHJpbmcpOwotICBleHBlY3RlZG1hdGNoID0gbnVsbDsKLSAg
YWRkVGhpcygpOwotCiAgIHN0YXR1cyA9IGluU2VjdGlvbigxNCk7CiAgIHBhdHRlcm4ubGFzdElu
ZGV4ID0gTnVtYmVyLk1BWF9WQUxVRTsKICAgYWN0dWFsbWF0Y2ggPSBwYXR0ZXJuLmV4ZWMoc3Ry
aW5nKTsKICAgZXhwZWN0ZWRtYXRjaCA9IG51bGw7CiAgIGFkZFRoaXMoKTsKLQotICBzdGF0dXMg
PSBpblNlY3Rpb24oMTUpOwotICBwYXR0ZXJuLmxhc3RJbmRleCA9IC1OdW1iZXIuTUFYX1ZBTFVF
OwotICBhY3R1YWxtYXRjaCA9IHBhdHRlcm4uZXhlYyhzdHJpbmcpOwotICBleHBlY3RlZG1hdGNo
ID0gbnVsbDsKLSAgYWRkVGhpcygpOwogICAKIAogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVz
cy9yZWdleHAtZXhlYy1hbHdheXMtYWNjZXNzZXMtbGFzdGluZGV4LmpzIGIvSlNUZXN0cy9zdHJl
c3MvcmVnZXhwLWV4ZWMtYWx3YXlzLWFjY2Vzc2VzLWxhc3RpbmRleC5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
ODg0NmYxNzg3ODkzZmZhYTY2MDM0NDlhNjVmMDc5NzVjZDI4ZjQ5Ci0tLSAvZGV2L251bGwKKysr
IGIvSlNUZXN0cy9zdHJlc3MvcmVnZXhwLWV4ZWMtYWx3YXlzLWFjY2Vzc2VzLWxhc3RpbmRleC5q
cwpAQCAtMCwwICsxLDUwIEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7
CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihg
ZXhwZWN0ZWQgJHtleHBlY3RlZH0gYnV0IGdvdCAke2FjdHVhbH1gKTsKK30KKworZnVuY3Rpb24g
c2hvdWxkVGhyb3dUeXBlRXJyb3IoZnVuYykgeworICAgIGxldCBlcnJvcjsKKyAgICB0cnkgewor
ICAgICAgICBmdW5jKCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7Cisg
ICAgfQorCisgICAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKQorICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIFR5cGVFcnJvciEnKTsKK30KKworZnVuY3Rpb24gdGVz
dDEoKSB7CisgIGNvbnN0IHIgPSAvLi87CisKKyAgbGV0IGNvdW50ID0gMDsKKyAgci5sYXN0SW5k
ZXggPSB7CisgICAgdmFsdWVPZigpIHsKKyAgICAgIGNvdW50Kys7CisgICAgICByZXR1cm4gMDsK
KyAgICB9CisgIH07CisKKyAgci5leGVjKCdhYmMnKTsKKyAgc2hvdWxkQmUoY291bnQsIDEpOwor
fQorbm9JbmxpbmUodGVzdDEpOworCitmdW5jdGlvbiB0ZXN0MigpIHsKKyAgY29uc3QgciA9IC8u
LzsKKworICByLmxhc3RJbmRleCA9IHsKKyAgICB2YWx1ZU9mKCkgeworICAgICAgcmV0dXJuIFN5
bWJvbCgpOworICAgIH0KKyAgfTsKKworICByLmV4ZWMoJ2FiYycpOworfQorbm9JbmxpbmUodGVz
dDIpOworCitmb3IgKGxldCBpID0gMDsgaSA8IDFlNTsgaSsrKSB7CisgIHRlc3QxKCk7CisgIHNo
b3VsZFRocm93VHlwZUVycm9yKHRlc3QyKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2
Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbApp
bmRleCBlNjAzNGYxZTI0ODA3MTBhNzVjYjg2YTk1MDEwMmJlOWMwYjAyZThkLi44MWMwODMxOGFl
NzA2NWJiZTA1ZWVmNGU4M2U0N2VlNGQ4OTEyMmUwIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3Qy
NjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55
YW1sCkBAIC0xNjYzLDE1ICsxNjYzLDYgQEAgdGVzdC9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlw
ZS9TeW1ib2wuc3BsaXQvdS1sYXN0aW5kZXgtYWR2LXRocnUtZmFpbHVyZS5qczoKIHRlc3QvYnVp
bHQtaW5zL1JlZ0V4cC9wcm90b3R5cGUvZG90QWxsL2Nyb3NzLXJlYWxtLmpzOgogICBkZWZhdWx0
OiAnVGVzdDI2MkVycm9yOiBjcm9zcy1yZWFsbSBSZWdFeHAucHJvdG90eXBlIEV4cGVjdGVkIGEg
VHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxs
JwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogY3Jvc3MtcmVhbG0gUmVnRXhwLnByb3Rv
dHlwZSBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3
YXMgdGhyb3duIGF0IGFsbCcKLXRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9wcm90b3R5cGUvZXhlYy9T
MTUuMTAuNi4yX0E1X1QzLmpzOgotICBkZWZhdWx0OiAiVHlwZUVycm9yOiBudWxsIGlzIG5vdCBh
biBvYmplY3QgKGV2YWx1YXRpbmcgJ19fZXhlY3V0ZWRbMF0nKSIKLSAgc3RyaWN0IG1vZGU6ICJU
eXBlRXJyb3I6IG51bGwgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnX19leGVjdXRlZFsw
XScpIgotdGVzdC9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlwZS9leGVjL2ZhaWx1cmUtbGFzdGlu
ZGV4LWFjY2Vzcy5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZh
bHVlKMKrMMK7LCDCqzHCuykgdG8gYmUgdHJ1ZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJy
b3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzDCuywgwqsxwrspIHRvIGJlIHRydWUnCi10ZXN0L2J1
aWx0LWlucy9SZWdFeHAvcHJvdG90eXBlL2V4ZWMvc3VjY2Vzcy1sYXN0aW5kZXgtYWNjZXNzLmpz
OgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqswwrssIMKr
McK7KSB0byBiZSB0cnVlJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQg
U2FtZVZhbHVlKMKrMMK7LCDCqzHCuykgdG8gYmUgdHJ1ZScKIHRlc3QvYnVpbHQtaW5zL1JlZ0V4
cC9wcm90b3R5cGUvZXhlYy91LWxhc3RpbmRleC1hZHYuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYy
RXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq++/vcK7LCDCq251bGzCuykgdG8gYmUgdHJ1ZScK
ICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq++/vcK7
LCDCq251bGzCuykgdG8gYmUgdHJ1ZScKQEAgLTE2OTAsOSArMTY4MSw2IEBAIHRlc3QvYnVpbHQt
aW5zL1JlZ0V4cC9wcm90b3R5cGUvc291cmNlL2Nyb3NzLXJlYWxtLmpzOgogdGVzdC9idWlsdC1p
bnMvUmVnRXhwL3Byb3RvdHlwZS9zdGlja3kvY3Jvc3MtcmVhbG0uanM6CiAgIGRlZmF1bHQ6ICdU
ZXN0MjYyRXJyb3I6IGNyb3NzLXJlYWxtIFJlZ0V4cC5wcm90b3R5cGUgRXhwZWN0ZWQgYSBUeXBl
RXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCiAg
IHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBjcm9zcy1yZWFsbSBSZWdFeHAucHJvdG90eXBl
IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0
aHJvd24gYXQgYWxsJwotdGVzdC9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlwZS90ZXN0L1MxNS4x
MC42LjNfQTFfVDIyLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiAjMTogX19yZSA9IC8o
PzphYnxjZClcZD8vZzsgX19yZS5sYXN0SW5kZXg9LTE7IF9fZXhlY3V0ZWQgPSBfX3JlLnRlc3Qo
ImFhY2QyMiAiKTsgX19leGVjdXRlZCA9PT0gdHJ1ZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYy
RXJyb3I6ICMxOiBfX3JlID0gLyg/OmFifGNkKVxkPy9nOyBfX3JlLmxhc3RJbmRleD0tMTsgX19l
eGVjdXRlZCA9IF9fcmUudGVzdCgiYWFjZDIyICIpOyBfX2V4ZWN1dGVkID09PSB0cnVlJwogdGVz
dC9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlwZS91bmljb2RlL2Nyb3NzLXJlYWxtLmpzOgogICBk
ZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBjcm9zcy1yZWFsbSBSZWdFeHAucHJvdG90eXBlIEV4cGVj
dGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24g
YXQgYWxsJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogY3Jvc3MtcmVhbG0gUmVnRXhw
LnByb3RvdHlwZSBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2Vw
dGlvbiB3YXMgdGhyb3duIGF0IGFsbCcK
</data>

          </attachment>
      

    </bug>

</bugzilla>