<?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>213705</bug_id>
          
          <creation_ts>2020-06-28 16:05:09 -0700</creation_ts>
          <short_desc>RunLoop::dispatch should only call wakeUp when needed</short_desc>
          <delta_ts>2020-07-06 10:16:18 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>andersca</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>sam</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1666934</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-06-28 16:05:09 -0700</bug_when>
    <thetext>RunLoop::dispatch should only call wakeUp when needed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666935</commentid>
    <comment_count>1</comment_count>
      <attachid>403013</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-06-28 16:06:25 -0700</bug_when>
    <thetext>Created attachment 403013
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666936</commentid>
    <comment_count>2</comment_count>
      <attachid>403013</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-06-28 16:09:01 -0700</bug_when>
    <thetext>Comment on attachment 403013
Patch

Oops! I had planned to remove the functionsHandled behavior separately from this patch -- but it&apos;s actually not correct until you do both, since functionsHandled is willing to exit without a wakeUp. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666941</commentid>
    <comment_count>3</comment_count>
      <attachid>403014</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-06-28 16:33:11 -0700</bug_when>
    <thetext>Created attachment 403014
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666951</commentid>
    <comment_count>4</comment_count>
      <attachid>403014</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-06-28 17:23:51 -0700</bug_when>
    <thetext>Comment on attachment 403014
Patch

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

&gt; Source/WTF/ChangeLog:10
&gt; +        RunLoop::wakeUp is super expensive (at least on Darwin platforms). Back
&gt; +        when IndexedDB used RunLoop::dispatch, RunLoop::wakeUp accounted for 15%
&gt; +        of all database lookup time.

Out of interest (and for the historical record) what makes it so expensive?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666972</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-06-28 20:03:25 -0700</bug_when>
    <thetext>Most of the cost seemed to be its usage of pthread mutexes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666977</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-06-28 20:22:36 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #5)
&gt; Most of the cost seemed to be its usage of pthread mutexes.

Is &quot;its&quot; here CFRunLoopWakeUp()? Or something we are doing in WTF?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666981</commentid>
    <comment_count>7</comment_count>
      <attachid>403027</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-06-28 21:28:24 -0700</bug_when>
    <thetext>Created attachment 403027
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666982</commentid>
    <comment_count>8</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-06-28 21:29:09 -0700</bug_when>
    <thetext>&gt; Is &quot;its&quot; here CFRunLoopWakeUp()? Or something we are doing in WTF?

It&apos;s CFRunLoopSourceSignal and CFRunLoopWakeUp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667829</commentid>
    <comment_count>9</comment_count>
      <attachid>403264</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-06-30 21:54:01 -0700</bug_when>
    <thetext>Created attachment 403264
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668142</commentid>
    <comment_count>10</comment_count>
      <attachid>403343</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-07-01 21:24:48 -0700</bug_when>
    <thetext>Created attachment 403343
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668390</commentid>
    <comment_count>11</comment_count>
      <attachid>403408</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-07-02 15:34:39 -0700</bug_when>
    <thetext>Created attachment 403408
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668414</commentid>
    <comment_count>12</comment_count>
      <attachid>403408</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-07-02 16:16:46 -0700</bug_when>
    <thetext>Comment on attachment 403408
Patch

Looks like EWS is happy now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669060</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-06 10:15:54 -0700</bug_when>
    <thetext>Committed r263973: &lt;https://trac.webkit.org/changeset/263973&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 403408.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669061</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-06 10:16:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/65137000&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403013</attachid>
            <date>2020-06-28 16:06:25 -0700</date>
            <delta_ts>2020-06-28 16:33:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213705-20200628160624.patch</filename>
            <type>text/plain</type>
            <size>1669</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNjM2MzgpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDIwLTA2LTI4ICBHZW9mZnJleSBHYXJlbiAgPGdn
YXJlbkBhcHBsZS5jb20+CisKKyAgICAgICAgUnVuTG9vcDo6ZGlzcGF0Y2ggc2hvdWxkIG9ubHkg
Y2FsbCB3YWtlVXAgd2hlbiBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMzcwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJ1bkxvb3A6Ondha2VVcCBpcyBzdXBlciBleHBlbnNpdmUgKGF0IGxl
YXN0IG9uIERhcndpbiBwbGF0Zm9ybXMpLiBCYWNrCisgICAgICAgIHdoZW4gSW5kZXhlZERCIHVz
ZWQgUnVuTG9vcDo6ZGlzcGF0Y2gsIFJ1bkxvb3A6Ondha2VVcCBhY2NvdW50ZWQgZm9yIDE1JQor
ICAgICAgICBvZiBhbGwgZGF0YWJhc2UgbG9va3VwIHRpbWUuCisKKyAgICAgICAgV2UgY2FuIHJl
ZHVjZSB0aGUgY29zdCBhIGJpdCBieSBvbmx5IHNjaGVkdWxpbmcgYSB3YWtlVXAgd2hlbiB0aGUg
cXVldWUKKyAgICAgICAgaXMgZW1wdHkuIEl0IGlzIGFscmVhZHkgYW4gaW52YXJpYW50IHRoYXQg
YSBub24tZW1wdHkgcXVldWUgd2lsbCBlaXRoZXIKKyAgICAgICAgZW1wdHkgaXRzZWxmIG9yIHNj
aGVkbHVlIGFub3RoZXIgd2FrZVVwLiAoQW55IG90aGVyIGJlaGF2aW9yIHdvdWxkCisgICAgICAg
IGludml0ZSBkZWFkbG9jay4pCisKKyAgICAgICAgKiB3dGYvUnVuTG9vcC5jcHA6CisgICAgICAg
IChXVEY6OlJ1bkxvb3A6OmRpc3BhdGNoKToKKwogMjAyMC0wNi0yOCAgR2VvZmZyZXkgR2FyZW4g
IDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBpbml0aWFsaXplVGhyZWFkaW5n
IHRvIGluaXRpYWxpemUKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3BwCShyZXZpc2lvbiAyNjM2MzcpCisrKyBT
b3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ5LDEyICsxNDks
MTYgQEAgdm9pZCBSdW5Mb29wOjpwZXJmb3JtV29yaygpCiAKIHZvaWQgUnVuTG9vcDo6ZGlzcGF0
Y2goRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKIHsKKyAgICBib29sIG5lZWRzV2FrZXVw
ID0gZmFsc2U7CisKICAgICB7CiAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9mdW5j
dGlvblF1ZXVlTG9jayk7CisgICAgICAgIG5lZWRzV2FrZXVwID0gbV9mdW5jdGlvblF1ZXVlLmlz
RW1wdHkoKTsKICAgICAgICAgbV9mdW5jdGlvblF1ZXVlLmFwcGVuZChXVEZNb3ZlKGZ1bmN0aW9u
KSk7CiAgICAgfQogCi0gICAgd2FrZVVwKCk7CisgICAgaWYgKG5lZWRzV2FrZXVwKQorICAgICAg
ICB3YWtlVXAoKTsKIH0KIAogdm9pZCBSdW5Mb29wOjpzdXNwZW5kRnVuY3Rpb25EaXNwYXRjaEZv
ckN1cnJlbnRDeWNsZSgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403014</attachid>
            <date>2020-06-28 16:33:11 -0700</date>
            <delta_ts>2020-06-28 21:28:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213705-20200628163310.patch</filename>
            <type>text/plain</type>
            <size>5056</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNjM2MzgpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDIwLTA2LTI4ICBHZW9mZnJleSBHYXJlbiAgPGdn
YXJlbkBhcHBsZS5jb20+CisKKyAgICAgICAgUnVuTG9vcDo6ZGlzcGF0Y2ggc2hvdWxkIG9ubHkg
Y2FsbCB3YWtlVXAgd2hlbiBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMzcwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJ1bkxvb3A6Ondha2VVcCBpcyBzdXBlciBleHBlbnNpdmUgKGF0IGxl
YXN0IG9uIERhcndpbiBwbGF0Zm9ybXMpLiBCYWNrCisgICAgICAgIHdoZW4gSW5kZXhlZERCIHVz
ZWQgUnVuTG9vcDo6ZGlzcGF0Y2gsIFJ1bkxvb3A6Ondha2VVcCBhY2NvdW50ZWQgZm9yIDE1JQor
ICAgICAgICBvZiBhbGwgZGF0YWJhc2UgbG9va3VwIHRpbWUuCisKKyAgICAgICAgV2UgY2FuIHJl
ZHVjZSB0aGUgY29zdCBhIGJpdCBieSBvbmx5IHNjaGVkdWxpbmcgYSB3YWtlVXAgd2hlbiB0aGUg
cXVldWUKKyAgICAgICAgaXMgZW1wdHkuCisKKyAgICAgICAgKiB3dGYvUnVuTG9vcC5jcHA6Cisg
ICAgICAgIChXVEY6OlJ1bkxvb3A6OnBlcmZvcm1Xb3JrKTogUmVtb3ZlZCB0aGUgZnVuY3Rpb25z
SGFuZGxlZCBmZWF0dXJlLiBCcmFkeQorICAgICAgICBhZGRlZCBpdCBzcGVjdWxhdGl2ZWx5LCBi
dXQgSSBiZWxpZXZlIHRoZSBtb3RpdmF0aW5nIGV4YW1wbGUgZXh0ZW5zaW9uCisgICAgICAgIHdv
dWxkIHN0aWxsIHRyaWdnZXIgYSBwZXJtYW5lbnQgaGFuZyAtLSB3aXRoIHRoZSBleGNlcHRpb24g
dGhhdCB5b3UKKyAgICAgICAgY291bGQgZXZlbnR1YWxseSBxdWl0LCBidXQgbm90IGRvIG11Y2gg
ZWxzZS4gKFdlIGNhbid0IG1lYW5pbmdmdWxseQorICAgICAgICByZS10ZXN0IHRoZSBtb3RpdmF0
aW5nIGV4YW1wbGUgZXh0ZW5zaW9uIGJlY2F1c2UsIG5vdyB0aGF0IGV4dGVuc2lvbnMKKyAgICAg
ICAgcnVuIG91dCBvZiBwcm9jZXNzLCB0aGV5IGNhbid0IGhhbmcgU2FmYXJpLikKKworICAgICAg
ICBJIHJlbW92ZWQgdGhlIGZlYXR1cmUgYmVjYXVzZSBpdCBtYWtlcyB0aGUgbG9naWMgaGFyZCB0
byBmb2xsb3csCisgICAgICAgIGVzcGVjaWFsbHkgaW4gdGhlIGNhc2Ugd2hlcmUgeW91J3JlIHRy
eWluZyB0byBmaWd1cmUgb3V0IHdoZXRoZXIgdGhlCisgICAgICAgIFJ1bkxvb3Agd2lsbCB3YWtl
IHVwIGFnYWluIG9yIG5vdC4gKEkgY291bGQgaGF2ZSBhZGRlZCBhIHNlcGFyYXRlCisgICAgICAg
IGF0b21pYyB2YXJpYWJsZSB0byB0cmFjayB0aGlzIHN0YXRlLCBidXQgY2xlYW5pbmcgdXAgdGhl
IGNvZGUgZmVsdCBsaWtlCisgICAgICAgIGEgYmV0dGVyIGFwcHJvYWNoLikKKworICAgICAgICBO
byBuZWVkIHRvIHRyYWNrIGRpZFN1c3BlbmRGdW5jdGlvbnMgYmVjYXVzZSB3ZSBjYW4gYXNzaWdu
IGRpcmVjdGx5IHRvCisgICAgICAgIG1faGFzU3VzcGVuZGVkRnVuY3Rpb25zIGluc3RlYWQuCisK
KyAgICAgICAgKFdURjo6UnVuTG9vcDo6ZGlzcGF0Y2gpOiBPbmx5IHdha2VVcCgpIGlmIHRoZSBx
dWV1ZSBpcyBlbXB0eTsgb3RoZXJ3aXNlCisgICAgICAgIHdlIGtub3cgaXQgd2lsbCBlbXB0eSBp
dHNlbGYgb3Igd2FrZVVwKCkgYWdhaW4uCisKIDIwMjAtMDYtMjggIEdlb2ZmcmV5IEdhcmVuICA8
Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgaW5pdGlhbGl6ZVRocmVhZGluZyB0
byBpbml0aWFsaXplCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmNwcAkocmV2aXNpb24gMjYzNjM3KQorKysgU291
cmNlL1dURi93dGYvUnVuTG9vcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk3LDQyICs5NywyNCBA
QCBib29sIFJ1bkxvb3A6OmlzTWFpbigpCiAKIHZvaWQgUnVuTG9vcDo6cGVyZm9ybVdvcmsoKQog
ewotICAgIC8vIEl0IGlzIGltcG9ydGFudCB0byBoYW5kbGUgdGhlIGZ1bmN0aW9ucyBpbiB0aGUg
cXVldWUgb25lIGF0IGEgdGltZSBiZWNhdXNlIHdoaWxlIGluc2lkZSBvbmUgb2YgdGhlc2UKLSAg
ICAvLyBmdW5jdGlvbnMgd2UgbWlnaHQgcmUtZW50ZXIgUnVuTG9vcDo6cGVyZm9ybVdvcmsoKSBh
bmQgd2UgbmVlZCB0byBiZSBhYmxlIHRvIHBpY2sgdXAgd2hlcmUgd2UgbGVmdCBvZmYuCi0gICAg
Ly8gU2VlIGh0dHA6Ly93ZWJraXQub3JnL2IvODk1OTAgZm9yIG1vcmUgZGlzY3Vzc2lvbi4KLQot
ICAgIC8vIE9uZSBwb3NzaWJsZSBzY2VuYXJpbyB3aGVuIGhhbmRsaW5nIHRoZSBmdW5jdGlvbiBx
dWV1ZSBpcyBhcyBmb2xsb3dzOgotICAgIC8vIC0gUnVuTG9vcDo6cGVyZm9ybVdvcmsoKSBpcyBp
bnZva2VkIHdpdGggMSBmdW5jdGlvbiBvbiB0aGUgcXVldWUKLSAgICAvLyAtIEhhbmRsaW5nIHRo
YXQgZnVuY3Rpb24gcmVzdWx0cyBpbiAxIG1vcmUgZnVuY3Rpb24gYmVpbmcgZW5xdWV1ZWQKLSAg
ICAvLyAtIEhhbmRsaW5nIHRoYXQgb25lIHJlc3VsdHMgaW4geWV0IGFub3RoZXIgYmVpbmcgZW5x
dWV1ZWQKLSAgICAvLyAtIEFuZCBzbyBvbgotICAgIC8vCi0gICAgLy8gSW4gdGhpcyBzaXR1YXRp
b24gb25lIGludm9jYXRpb24gb2YgcGVyZm9ybVdvcmsoKSBuZXZlciByZXR1cm5zIHNvIGFsbCBv
dGhlciBldmVudCBzb3VyY2VzIGFyZSBibG9ja2VkLgotICAgIC8vIEJ5IG9ubHkgaGFuZGxpbmcg
dXAgdG8gdGhlIG51bWJlciBvZiBmdW5jdGlvbnMgdGhhdCB3ZXJlIGluIHRoZSBxdWV1ZSB3aGVu
IHBlcmZvcm1Xb3JrKCkgaXMgY2FsbGVkCi0gICAgLy8gd2UgZ3VhcmFudGVlIHRvIG9jY2FzaW9u
YWxseSByZXR1cm4gZnJvbSB0aGUgcnVuIGxvb3Agc28gb3RoZXIgZXZlbnQgc291cmNlcyB3aWxs
IGJlIGFsbG93ZWQgdG8gc3Bpbi4KKyAgICAvLyBXZSBkZXF1ZXVlIG9uZSBmdW5jdGlvbiBhdCBh
IHRpbWUgc28gdGhhdCBmdW5jdGlvbnMgZGVxdWV1ZSBpbiBvcmRlciBldmVuCisgICAgLy8gaWYg
d2UgcmUtZW50ZXIgdGhlIFJ1bkxvb3AuIFNlZSBodHRwOi8vd2Via2l0Lm9yZy9iLzg5NTkwLgog
Ci0gICAgc2l6ZV90IGZ1bmN0aW9uc1RvSGFuZGxlID0gMTsKLSAgICBib29sIGRpZFN1c3BlbmRG
dW5jdGlvbnMgPSBmYWxzZTsKLQotICAgIGZvciAoc2l6ZV90IGZ1bmN0aW9uc0hhbmRsZWQgPSAw
OyBmdW5jdGlvbnNIYW5kbGVkIDwgZnVuY3Rpb25zVG9IYW5kbGU7ICsrZnVuY3Rpb25zSGFuZGxl
ZCkgeworICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgIEZ1bmN0aW9uPHZvaWQgKCk+IGZ1bmN0
aW9uOwogICAgICAgICB7CiAgICAgICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fZnVu
Y3Rpb25RdWV1ZUxvY2spOwogCi0gICAgICAgICAgICAvLyBFdmVuIGlmIHdlIHN0YXJ0IG9mZiB3
aXRoIE4gZnVuY3Rpb25zIHRvIGhhbmRsZSBhbmQgd2UndmUgb25seSBoYW5kbGVkIGxlc3MgdGhh
biBOIGZ1bmN0aW9ucywgdGhlIHF1ZXVlCi0gICAgICAgICAgICAvLyBzdGlsbCBtaWdodCBiZSBl
bXB0eSBiZWNhdXNlIHRob3NlIGZ1bmN0aW9ucyBtaWdodCBoYXZlIGJlZW4gaGFuZGxlZCBpbiBh
biBpbm5lciBSdW5Mb29wOjpwZXJmb3JtV29yaygpLgotICAgICAgICAgICAgLy8gSW4gdGhhdCBj
YXNlIHdlIHNob3VsZCBiYWlsIGhlcmUuCi0gICAgICAgICAgICBpZiAobV9mdW5jdGlvblF1ZXVl
LmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGlmIChtX2Z1bmN0aW9uUXVldWUuaXNFbXB0eSgpKSB7
CisgICAgICAgICAgICAgICAgbV9oYXNTdXNwZW5kZWRGdW5jdGlvbnMgPSBmYWxzZTsKICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKG1faXNG
dW5jdGlvbkRpc3BhdGNoU3VzcGVuZGVkKSB7Ci0gICAgICAgICAgICAgICAgZGlkU3VzcGVuZEZ1
bmN0aW9ucyA9IHRydWU7CisgICAgICAgICAgICAgICAgbV9oYXNTdXNwZW5kZWRGdW5jdGlvbnMg
PSB0cnVlOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAg
ICAgICBpZiAoIWZ1bmN0aW9uc0hhbmRsZWQpCi0gICAgICAgICAgICAgICAgZnVuY3Rpb25zVG9I
YW5kbGUgPSBtX2Z1bmN0aW9uUXVldWUuc2l6ZSgpOwotCiAgICAgICAgICAgICBmdW5jdGlvbiA9
IG1fZnVuY3Rpb25RdWV1ZS50YWtlRmlyc3QoKTsKICAgICAgICAgfQogICAgICAgICAKQEAgLTE0
MSw3ICsxMjMsNiBAQCB2b2lkIFJ1bkxvb3A6OnBlcmZvcm1Xb3JrKCkKIAogICAgIC8vIFN1c3Bl
bmQgb25seSBmb3IgYSBzaW5nbGUgY3ljbGUuCiAgICAgbV9pc0Z1bmN0aW9uRGlzcGF0Y2hTdXNw
ZW5kZWQgPSBmYWxzZTsKLSAgICBtX2hhc1N1c3BlbmRlZEZ1bmN0aW9ucyA9IGRpZFN1c3BlbmRG
dW5jdGlvbnM7CiAKICAgICBpZiAobV9oYXNTdXNwZW5kZWRGdW5jdGlvbnMpCiAgICAgICAgIHdh
a2VVcCgpOwpAQCAtMTQ5LDEyICsxMzAsMTYgQEAgdm9pZCBSdW5Mb29wOjpwZXJmb3JtV29yaygp
CiAKIHZvaWQgUnVuTG9vcDo6ZGlzcGF0Y2goRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikK
IHsKKyAgICBib29sIG5lZWRzV2FrZXVwID0gZmFsc2U7CisKICAgICB7CiAgICAgICAgIGF1dG8g
bG9ja2VyID0gaG9sZExvY2sobV9mdW5jdGlvblF1ZXVlTG9jayk7CisgICAgICAgIG5lZWRzV2Fr
ZXVwID0gbV9mdW5jdGlvblF1ZXVlLmlzRW1wdHkoKTsKICAgICAgICAgbV9mdW5jdGlvblF1ZXVl
LmFwcGVuZChXVEZNb3ZlKGZ1bmN0aW9uKSk7CiAgICAgfQogCi0gICAgd2FrZVVwKCk7CisgICAg
aWYgKG5lZWRzV2FrZXVwKQorICAgICAgICB3YWtlVXAoKTsKIH0KIAogdm9pZCBSdW5Mb29wOjpz
dXNwZW5kRnVuY3Rpb25EaXNwYXRjaEZvckN1cnJlbnRDeWNsZSgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403027</attachid>
            <date>2020-06-28 21:28:24 -0700</date>
            <delta_ts>2020-06-30 21:53:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213705-20200628212823.patch</filename>
            <type>text/plain</type>
            <size>3006</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNjM2MzgpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA2LTI4ICBHZW9mZnJleSBHYXJlbiAgPGdn
YXJlbkBhcHBsZS5jb20+CisKKyAgICAgICAgUnVuTG9vcDo6ZGlzcGF0Y2ggc2hvdWxkIG9ubHkg
Y2FsbCB3YWtlVXAgd2hlbiBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMzcwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJ1bkxvb3A6Ondha2VVcCBpcyBzdXBlciBleHBlbnNpdmUgKGF0IGxl
YXN0IG9uIERhcndpbiBwbGF0Zm9ybXMpLiBCYWNrCisgICAgICAgIHdoZW4gSW5kZXhlZERCIHVz
ZWQgUnVuTG9vcDo6ZGlzcGF0Y2gsIFJ1bkxvb3A6Ondha2VVcCBhY2NvdW50ZWQgZm9yIDE1JQor
ICAgICAgICBvZiBhbGwgZGF0YWJhc2UgbG9va3VwIHRpbWUuCisKKyAgICAgICAgV2UgY2FuIHJl
ZHVjZSB0aGUgY29zdCBhIGJpdCBieSBvbmx5IHNjaGVkdWxpbmcgYSB3YWtlVXAgd2hlbiB0aGUg
cXVldWUKKyAgICAgICAgaXMgZW1wdHkuCisKKyAgICAgICAgKiB3dGYvUnVuTG9vcC5jcHA6Cisg
ICAgICAgIChXVEY6OlJ1bkxvb3A6OnBlcmZvcm1Xb3JrKTogQWx3YXlzIGNhbGwgd2FrZVVwKCkg
aWYgdGhlIHF1ZXVlIGlzCisgICAgICAgIG5vbi1lbXB0eSwgc2luY2UgZGlzcGF0Y2goKSBkZXBl
bmRzIG9uIHRoaXMgaW52YXJpYW50IG5vdy4KKworICAgICAgICAoV1RGOjpSdW5Mb29wOjpkaXNw
YXRjaCk6IE9ubHkgY2FsbCB3YWtlVXAoKSBpZiB0aGUgcXVldWUgaXMgZW1wdHk7CisgICAgICAg
IG90aGVyd2lzZSB3ZSBrbm93IGl0IHdpbGwgZW1wdHkgaXRzZWxmIG9yIGNhbGwgd2FrZVVwKCkg
YWdhaW4uCisKIDIwMjAtMDYtMjggIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZW5hbWUgaW5pdGlhbGl6ZVRocmVhZGluZyB0byBpbml0aWFsaXplCkluZGV4
OiBTb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0
Zi9SdW5Mb29wLmNwcAkocmV2aXNpb24gMjYzNjM3KQorKysgU291cmNlL1dURi93dGYvUnVuTG9v
cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMSwxMCArMTExLDE1IEBAIHZvaWQgUnVuTG9vcDo6
cGVyZm9ybVdvcmsoKQogICAgIC8vIEJ5IG9ubHkgaGFuZGxpbmcgdXAgdG8gdGhlIG51bWJlciBv
ZiBmdW5jdGlvbnMgdGhhdCB3ZXJlIGluIHRoZSBxdWV1ZSB3aGVuIHBlcmZvcm1Xb3JrKCkgaXMg
Y2FsbGVkCiAgICAgLy8gd2UgZ3VhcmFudGVlIHRvIG9jY2FzaW9uYWxseSByZXR1cm4gZnJvbSB0
aGUgcnVuIGxvb3Agc28gb3RoZXIgZXZlbnQgc291cmNlcyB3aWxsIGJlIGFsbG93ZWQgdG8gc3Bp
bi4KIAotICAgIHNpemVfdCBmdW5jdGlvbnNUb0hhbmRsZSA9IDE7CisgICAgYXV0byBmdW5jdGlv
blF1ZXVlU2l6ZSA9IFsmXSB7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9mdW5j
dGlvblF1ZXVlTG9jayk7CisgICAgICAgIHJldHVybiBtX2Z1bmN0aW9uUXVldWUuc2l6ZSgpOwor
ICAgIH07CisKKyAgICBzaXplX3QgZnVuY3Rpb25zVG9IYW5kbGUgPSBmdW5jdGlvblF1ZXVlU2l6
ZSgpOwogICAgIGJvb2wgZGlkU3VzcGVuZEZ1bmN0aW9ucyA9IGZhbHNlOwogCi0gICAgZm9yIChz
aXplX3QgZnVuY3Rpb25zSGFuZGxlZCA9IDA7IGZ1bmN0aW9uc0hhbmRsZWQgPCBmdW5jdGlvbnNU
b0hhbmRsZTsgKytmdW5jdGlvbnNIYW5kbGVkKSB7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBmdW5jdGlvbnNUb0hhbmRsZTsgKytpKSB7CiAgICAgICAgIEZ1bmN0aW9uPHZvaWQgKCk+IGZ1
bmN0aW9uOwogICAgICAgICB7CiAgICAgICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1f
ZnVuY3Rpb25RdWV1ZUxvY2spOwpAQCAtMTMwLDkgKzEzNSw2IEBAIHZvaWQgUnVuTG9vcDo6cGVy
Zm9ybVdvcmsoKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAg
ICAgICAgICBpZiAoIWZ1bmN0aW9uc0hhbmRsZWQpCi0gICAgICAgICAgICAgICAgZnVuY3Rpb25z
VG9IYW5kbGUgPSBtX2Z1bmN0aW9uUXVldWUuc2l6ZSgpOwotCiAgICAgICAgICAgICBmdW5jdGlv
biA9IG1fZnVuY3Rpb25RdWV1ZS50YWtlRmlyc3QoKTsKICAgICAgICAgfQogICAgICAgICAKQEAg
LTE0MywxOCArMTQ1LDIyIEBAIHZvaWQgUnVuTG9vcDo6cGVyZm9ybVdvcmsoKQogICAgIG1faXNG
dW5jdGlvbkRpc3BhdGNoU3VzcGVuZGVkID0gZmFsc2U7CiAgICAgbV9oYXNTdXNwZW5kZWRGdW5j
dGlvbnMgPSBkaWRTdXNwZW5kRnVuY3Rpb25zOwogCi0gICAgaWYgKG1faGFzU3VzcGVuZGVkRnVu
Y3Rpb25zKQorICAgIGlmIChmdW5jdGlvblF1ZXVlU2l6ZSgpKQogICAgICAgICB3YWtlVXAoKTsK
IH0KIAogdm9pZCBSdW5Mb29wOjpkaXNwYXRjaChGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9u
KQogeworICAgIGJvb2wgbmVlZHNXYWtldXAgPSBmYWxzZTsKKwogICAgIHsKICAgICAgICAgYXV0
byBsb2NrZXIgPSBob2xkTG9jayhtX2Z1bmN0aW9uUXVldWVMb2NrKTsKKyAgICAgICAgbmVlZHNX
YWtldXAgPSBtX2Z1bmN0aW9uUXVldWUuaXNFbXB0eSgpOwogICAgICAgICBtX2Z1bmN0aW9uUXVl
dWUuYXBwZW5kKFdURk1vdmUoZnVuY3Rpb24pKTsKICAgICB9CiAKLSAgICB3YWtlVXAoKTsKKyAg
ICBpZiAobmVlZHNXYWtldXApCisgICAgICAgIHdha2VVcCgpOwogfQogCiB2b2lkIFJ1bkxvb3A6
OnN1c3BlbmRGdW5jdGlvbkRpc3BhdGNoRm9yQ3VycmVudEN5Y2xlKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403264</attachid>
            <date>2020-06-30 21:54:01 -0700</date>
            <delta_ts>2020-07-01 21:24:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213705-20200630215400.patch</filename>
            <type>text/plain</type>
            <size>3050</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNjM3ODQpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA2LTMwICBHZW9mZnJleSBHYXJlbiAgPGdn
YXJlbkBhcHBsZS5jb20+CisKKyAgICAgICAgUnVuTG9vcDo6ZGlzcGF0Y2ggc2hvdWxkIG9ubHkg
Y2FsbCB3YWtlVXAgd2hlbiBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMzcwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJ1bkxvb3A6Ondha2VVcCBpcyBzdXBlciBleHBlbnNpdmUgKGF0IGxl
YXN0IG9uIERhcndpbiBwbGF0Zm9ybXMpLiBCYWNrCisgICAgICAgIHdoZW4gSW5kZXhlZERCIHVz
ZWQgUnVuTG9vcDo6ZGlzcGF0Y2gsIFJ1bkxvb3A6Ondha2VVcCBhY2NvdW50ZWQgZm9yIDE1JQor
ICAgICAgICBvZiBhbGwgZGF0YWJhc2UgbG9va3VwIHRpbWUuCisKKyAgICAgICAgV2UgY2FuIHJl
ZHVjZSB0aGUgY29zdCBhIGJpdCBieSBvbmx5IHNjaGVkdWxpbmcgYSB3YWtlVXAgd2hlbiB0aGUg
cXVldWUKKyAgICAgICAgaXMgZW1wdHkuCisKKyAgICAgICAgKiB3dGYvUnVuTG9vcC5jcHA6Cisg
ICAgICAgIChXVEY6OlJ1bkxvb3A6OnBlcmZvcm1Xb3JrKTogQWx3YXlzIGNhbGwgd2FrZVVwKCkg
aWYgdGhlIHF1ZXVlIGlzCisgICAgICAgIG5vbi1lbXB0eSwgc2luY2UgZGlzcGF0Y2goKSBkZXBl
bmRzIG9uIHRoaXMgaW52YXJpYW50IG5vdy4KKyAgICAgICAgKFdURjo6UnVuTG9vcDo6ZGlzcGF0
Y2gpOiBPbmx5IGNhbGwgd2FrZVVwKCkgaWYgdGhlIHF1ZXVlIGlzIGVtcHR5OworICAgICAgICBv
dGhlcndpc2Ugd2Uga25vdyBpdCB3aWxsIGVtcHR5IGl0c2VsZiBvciBjYWxsIHdha2VVcCgpIGFn
YWluLgorCiAyMDIwLTA2LTMwICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0NvY29hXSBbR1RLXSBSdW5Mb29wOjpUaW1lcjo6aXNBY3RpdmUoKSBpcyBpbmNv
cnJlY3QgZm9yIHRpbWVycyB3aGlsZSB0aGV5IGFyZSBmaXJpbmcKSW5kZXg6IFNvdXJjZS9XVEYv
d3RmL1J1bkxvb3AuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3Bw
CShyZXZpc2lvbiAyNjM3NjMpCisrKyBTb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTExLDEwICsxMTEsMTUgQEAgdm9pZCBSdW5Mb29wOjpwZXJmb3JtV29yaygp
CiAgICAgLy8gQnkgb25seSBoYW5kbGluZyB1cCB0byB0aGUgbnVtYmVyIG9mIGZ1bmN0aW9ucyB0
aGF0IHdlcmUgaW4gdGhlIHF1ZXVlIHdoZW4gcGVyZm9ybVdvcmsoKSBpcyBjYWxsZWQKICAgICAv
LyB3ZSBndWFyYW50ZWUgdG8gb2NjYXNpb25hbGx5IHJldHVybiBmcm9tIHRoZSBydW4gbG9vcCBz
byBvdGhlciBldmVudCBzb3VyY2VzIHdpbGwgYmUgYWxsb3dlZCB0byBzcGluLgogCi0gICAgc2l6
ZV90IGZ1bmN0aW9uc1RvSGFuZGxlID0gMTsKKyAgICBhdXRvIGZ1bmN0aW9uUXVldWVTaXplID0g
WyZdIHsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2Z1bmN0aW9uUXVldWVMb2Nr
KTsKKyAgICAgICAgcmV0dXJuIG1fZnVuY3Rpb25RdWV1ZS5zaXplKCk7CisgICAgfTsKKworICAg
IHNpemVfdCBmdW5jdGlvbnNUb0hhbmRsZSA9IGZ1bmN0aW9uUXVldWVTaXplKCk7CiAgICAgYm9v
bCBkaWRTdXNwZW5kRnVuY3Rpb25zID0gZmFsc2U7CiAKLSAgICBmb3IgKHNpemVfdCBmdW5jdGlv
bnNIYW5kbGVkID0gMDsgZnVuY3Rpb25zSGFuZGxlZCA8IGZ1bmN0aW9uc1RvSGFuZGxlOyArK2Z1
bmN0aW9uc0hhbmRsZWQpIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZ1bmN0aW9uc1Rv
SGFuZGxlOyArK2kpIHsKICAgICAgICAgRnVuY3Rpb248dm9pZCAoKT4gZnVuY3Rpb247CiAgICAg
ICAgIHsKICAgICAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9mdW5jdGlvblF1ZXVl
TG9jayk7CkBAIC0xMzAsOSArMTM1LDYgQEAgdm9pZCBSdW5Mb29wOjpwZXJmb3JtV29yaygpCiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmICgh
ZnVuY3Rpb25zSGFuZGxlZCkKLSAgICAgICAgICAgICAgICBmdW5jdGlvbnNUb0hhbmRsZSA9IG1f
ZnVuY3Rpb25RdWV1ZS5zaXplKCk7Ci0KICAgICAgICAgICAgIGZ1bmN0aW9uID0gbV9mdW5jdGlv
blF1ZXVlLnRha2VGaXJzdCgpOwogICAgICAgICB9CiAgICAgICAgIApAQCAtMTQzLDE4ICsxNDUs
MjIgQEAgdm9pZCBSdW5Mb29wOjpwZXJmb3JtV29yaygpCiAgICAgbV9pc0Z1bmN0aW9uRGlzcGF0
Y2hTdXNwZW5kZWQgPSBmYWxzZTsKICAgICBtX2hhc1N1c3BlbmRlZEZ1bmN0aW9ucyA9IGRpZFN1
c3BlbmRGdW5jdGlvbnM7CiAKLSAgICBpZiAobV9oYXNTdXNwZW5kZWRGdW5jdGlvbnMpCisgICAg
aWYgKGZ1bmN0aW9uUXVldWVTaXplKCkpCiAgICAgICAgIHdha2VVcCgpOwogfQogCiB2b2lkIFJ1
bkxvb3A6OmRpc3BhdGNoKEZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCiB7CisgICAgYm9v
bCBuZWVkc1dha2V1cCA9IGZhbHNlOworCiAgICAgewogICAgICAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKG1fZnVuY3Rpb25RdWV1ZUxvY2spOworICAgICAgICBuZWVkc1dha2V1cCA9IG1fZnVu
Y3Rpb25RdWV1ZS5pc0VtcHR5KCk7CiAgICAgICAgIG1fZnVuY3Rpb25RdWV1ZS5hcHBlbmQoV1RG
TW92ZShmdW5jdGlvbikpOwogICAgIH0KIAotICAgIHdha2VVcCgpOworICAgIGlmIChuZWVkc1dh
a2V1cCkKKyAgICAgICAgd2FrZVVwKCk7CiB9CiAKIHZvaWQgUnVuTG9vcDo6c3VzcGVuZEZ1bmN0
aW9uRGlzcGF0Y2hGb3JDdXJyZW50Q3ljbGUoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403343</attachid>
            <date>2020-07-01 21:24:48 -0700</date>
            <delta_ts>2020-07-02 15:34:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213705-20200701212447.patch</filename>
            <type>text/plain</type>
            <size>7177</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNjM3ODYpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIwLTA3LTAxICBHZW9mZnJleSBHYXJlbiAgPGdn
YXJlbkBhcHBsZS5jb20+CisKKyAgICAgICAgUnVuTG9vcDo6ZGlzcGF0Y2ggc2hvdWxkIG9ubHkg
Y2FsbCB3YWtlVXAgd2hlbiBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMzcwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJ1bkxvb3A6Ondha2VVcCBpcyBzdXBlciBleHBlbnNpdmUgKGF0IGxl
YXN0IG9uIERhcndpbiBwbGF0Zm9ybXMpLiBCYWNrCisgICAgICAgIHdoZW4gSW5kZXhlZERCIHVz
ZWQgUnVuTG9vcDo6ZGlzcGF0Y2gsIFJ1bkxvb3A6Ondha2VVcCBhY2NvdW50ZWQgZm9yIDE1JQor
ICAgICAgICBvZiBhbGwgZGF0YWJhc2UgbG9va3VwIHRpbWUuCisKKyAgICAgICAgV2UgY2FuIHJl
ZHVjZSB0aGUgY29zdCBhIGJpdCBieSBvbmx5IHNjaGVkdWxpbmcgYSB3YWtlVXAgd2hlbiB0aGUg
cXVldWUKKyAgICAgICAgaXMgZW1wdHkuCisKKyAgICAgICAgKiB3dGYvUnVuTG9vcC5jcHA6Cisg
ICAgICAgIChXVEY6OlJ1bkxvb3A6OnBlcmZvcm1Xb3JrKTogVGFrZSBhbGwgdGhlIGZ1bmN0aW9u
cyBvdXQgb2YgdGhlIHBlbmRpbmcKKyAgICAgICAgcXVldWUgYmVmb3JlIHdlIHN0YXJ0IGV4ZWN1
dGluZyB0aGVtOyB0aGF0IHdheSwgd2UgY2FuIHRlbGwgaWYgYSBuZXcKKyAgICAgICAgZnVuY3Rp
b24gaGFzIGJlZW4gYWRkZWQgdG8gdGhlIHBlbmRpbmcgcXVldWUgc2luY2Ugd2UgZW5ldGVyZWQK
KyAgICAgICAgcGVyZm9ybVdvcmsuCisKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6ZGlzcGF0Y2gp
OiBPbmx5IGNhbGwgd2FrZVVwIGlmIHdlIG5lZWQgdG8uCisKKyAgICAgICAgKiB3dGYvUnVuTG9v
cC5oOgorCiAyMDIwLTA2LTMwICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0NvY29hXSBbR1RLXSBSdW5Mb29wOjpUaW1lcjo6aXNBY3RpdmUoKSBpcyBpbmNv
cnJlY3QgZm9yIHRpbWVycyB3aGlsZSB0aGV5IGFyZSBmaXJpbmcKSW5kZXg6IFNvdXJjZS9XVEYv
d3RmL1J1bkxvb3AuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3Bw
CShyZXZpc2lvbiAyNjM3ODYpCisrKyBTb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtOTcsNDUgKzk3LDI1IEBAIGJvb2wgUnVuTG9vcDo6aXNNYWluKCkKIAogdm9p
ZCBSdW5Mb29wOjpwZXJmb3JtV29yaygpCiB7Ci0gICAgLy8gSXQgaXMgaW1wb3J0YW50IHRvIGhh
bmRsZSB0aGUgZnVuY3Rpb25zIGluIHRoZSBxdWV1ZSBvbmUgYXQgYSB0aW1lIGJlY2F1c2Ugd2hp
bGUgaW5zaWRlIG9uZSBvZiB0aGVzZQotICAgIC8vIGZ1bmN0aW9ucyB3ZSBtaWdodCByZS1lbnRl
ciBSdW5Mb29wOjpwZXJmb3JtV29yaygpIGFuZCB3ZSBuZWVkIHRvIGJlIGFibGUgdG8gcGljayB1
cCB3aGVyZSB3ZSBsZWZ0IG9mZi4KLSAgICAvLyBTZWUgaHR0cDovL3dlYmtpdC5vcmcvYi84OTU5
MCBmb3IgbW9yZSBkaXNjdXNzaW9uLgotCi0gICAgLy8gT25lIHBvc3NpYmxlIHNjZW5hcmlvIHdo
ZW4gaGFuZGxpbmcgdGhlIGZ1bmN0aW9uIHF1ZXVlIGlzIGFzIGZvbGxvd3M6Ci0gICAgLy8gLSBS
dW5Mb29wOjpwZXJmb3JtV29yaygpIGlzIGludm9rZWQgd2l0aCAxIGZ1bmN0aW9uIG9uIHRoZSBx
dWV1ZQotICAgIC8vIC0gSGFuZGxpbmcgdGhhdCBmdW5jdGlvbiByZXN1bHRzIGluIDEgbW9yZSBm
dW5jdGlvbiBiZWluZyBlbnF1ZXVlZAotICAgIC8vIC0gSGFuZGxpbmcgdGhhdCBvbmUgcmVzdWx0
cyBpbiB5ZXQgYW5vdGhlciBiZWluZyBlbnF1ZXVlZAotICAgIC8vIC0gQW5kIHNvIG9uCi0gICAg
Ly8KLSAgICAvLyBJbiB0aGlzIHNpdHVhdGlvbiBvbmUgaW52b2NhdGlvbiBvZiBwZXJmb3JtV29y
aygpIG5ldmVyIHJldHVybnMgc28gYWxsIG90aGVyIGV2ZW50IHNvdXJjZXMgYXJlIGJsb2NrZWQu
Ci0gICAgLy8gQnkgb25seSBoYW5kbGluZyB1cCB0byB0aGUgbnVtYmVyIG9mIGZ1bmN0aW9ucyB0
aGF0IHdlcmUgaW4gdGhlIHF1ZXVlIHdoZW4gcGVyZm9ybVdvcmsoKSBpcyBjYWxsZWQKLSAgICAv
LyB3ZSBndWFyYW50ZWUgdG8gb2NjYXNpb25hbGx5IHJldHVybiBmcm9tIHRoZSBydW4gbG9vcCBz
byBvdGhlciBldmVudCBzb3VyY2VzIHdpbGwgYmUgYWxsb3dlZCB0byBzcGluLgotCi0gICAgc2l6
ZV90IGZ1bmN0aW9uc1RvSGFuZGxlID0gMTsKICAgICBib29sIGRpZFN1c3BlbmRGdW5jdGlvbnMg
PSBmYWxzZTsKIAotICAgIGZvciAoc2l6ZV90IGZ1bmN0aW9uc0hhbmRsZWQgPSAwOyBmdW5jdGlv
bnNIYW5kbGVkIDwgZnVuY3Rpb25zVG9IYW5kbGU7ICsrZnVuY3Rpb25zSGFuZGxlZCkgewotICAg
ICAgICBGdW5jdGlvbjx2b2lkICgpPiBmdW5jdGlvbjsKLSAgICAgICAgewotICAgICAgICAgICAg
YXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2Z1bmN0aW9uUXVldWVMb2NrKTsKLQotICAgICAgICAg
ICAgLy8gRXZlbiBpZiB3ZSBzdGFydCBvZmYgd2l0aCBOIGZ1bmN0aW9ucyB0byBoYW5kbGUgYW5k
IHdlJ3ZlIG9ubHkgaGFuZGxlZCBsZXNzIHRoYW4gTiBmdW5jdGlvbnMsIHRoZSBxdWV1ZQotICAg
ICAgICAgICAgLy8gc3RpbGwgbWlnaHQgYmUgZW1wdHkgYmVjYXVzZSB0aG9zZSBmdW5jdGlvbnMg
bWlnaHQgaGF2ZSBiZWVuIGhhbmRsZWQgaW4gYW4gaW5uZXIgUnVuTG9vcDo6cGVyZm9ybVdvcmso
KS4KLSAgICAgICAgICAgIC8vIEluIHRoYXQgY2FzZSB3ZSBzaG91bGQgYmFpbCBoZXJlLgotICAg
ICAgICAgICAgaWYgKG1fZnVuY3Rpb25RdWV1ZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAg
YnJlYWs7Ci0KLSAgICAgICAgICAgIGlmIChtX2lzRnVuY3Rpb25EaXNwYXRjaFN1c3BlbmRlZCkg
ewotICAgICAgICAgICAgICAgIGRpZFN1c3BlbmRGdW5jdGlvbnMgPSB0cnVlOwotICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQorICAgIHsKKyAgICAgICAgYXV0byBsb2NrZXIg
PSBob2xkTG9jayhtX25leHRJdGVyYXRpb25Mb2NrKTsKKworICAgICAgICAvLyBJZiB0aGUgUnVu
TG9vcCByZS1lbnRlcnMgb3IgcmUtc2NoZWR1bGVzLCB3ZSdyZSBleHBlY3RlZCB0byBleGVjdXRl
IGFsbCBmdW5jdGlvbnMgaW4gb3JkZXIuCisgICAgICAgIHdoaWxlICghbV9jdXJyZW50SXRlcmF0
aW9uLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIG1fbmV4dEl0ZXJhdGlvbi5wcmVwZW5kKG1fY3Vy
cmVudEl0ZXJhdGlvbi50YWtlTGFzdCgpKTsKIAotICAgICAgICAgICAgaWYgKCFmdW5jdGlvbnNI
YW5kbGVkKQotICAgICAgICAgICAgICAgIGZ1bmN0aW9uc1RvSGFuZGxlID0gbV9mdW5jdGlvblF1
ZXVlLnNpemUoKTsKKyAgICAgICAgbV9jdXJyZW50SXRlcmF0aW9uID0gc3RkOjpleGNoYW5nZSht
X25leHRJdGVyYXRpb24sIHsgfSk7CisgICAgfQogCi0gICAgICAgICAgICBmdW5jdGlvbiA9IG1f
ZnVuY3Rpb25RdWV1ZS50YWtlRmlyc3QoKTsKKyAgICB3aGlsZSAoIW1fY3VycmVudEl0ZXJhdGlv
bi5pc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKG1faXNGdW5jdGlvbkRpc3BhdGNoU3VzcGVuZGVk
KSB7CisgICAgICAgICAgICBkaWRTdXNwZW5kRnVuY3Rpb25zID0gdHJ1ZTsKKyAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIAorCisgICAgICAgIGF1dG8gZnVuY3Rpb24gPSBt
X2N1cnJlbnRJdGVyYXRpb24udGFrZUZpcnN0KCk7CiAgICAgICAgIGZ1bmN0aW9uKCk7CiAgICAg
fQogCkBAIC0xNDksMTIgKzEyOSwxNiBAQCB2b2lkIFJ1bkxvb3A6OnBlcmZvcm1Xb3JrKCkKIAog
dm9pZCBSdW5Mb29wOjpkaXNwYXRjaChGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQogewor
ICAgIGJvb2wgbmVlZHNXYWtldXAgPSBmYWxzZTsKKwogICAgIHsKLSAgICAgICAgYXV0byBsb2Nr
ZXIgPSBob2xkTG9jayhtX2Z1bmN0aW9uUXVldWVMb2NrKTsKLSAgICAgICAgbV9mdW5jdGlvblF1
ZXVlLmFwcGVuZChXVEZNb3ZlKGZ1bmN0aW9uKSk7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9s
ZExvY2sobV9uZXh0SXRlcmF0aW9uTG9jayk7CisgICAgICAgIG5lZWRzV2FrZXVwID0gbV9uZXh0
SXRlcmF0aW9uLmlzRW1wdHkoKTsKKyAgICAgICAgbV9uZXh0SXRlcmF0aW9uLmFwcGVuZChXVEZN
b3ZlKGZ1bmN0aW9uKSk7CiAgICAgfQogCi0gICAgd2FrZVVwKCk7CisgICAgaWYgKG5lZWRzV2Fr
ZXVwKQorICAgICAgICB3YWtlVXAoKTsKIH0KIAogdm9pZCBSdW5Mb29wOjpzdXNwZW5kRnVuY3Rp
b25EaXNwYXRjaEZvckN1cnJlbnRDeWNsZSgpCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9SdW5Mb29w
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUnVuTG9vcC5oCShyZXZpc2lvbiAyNjM3
ODYpCisrKyBTb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwOCw4
ICsyMDgsMTEgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGVyZm9ybVdvcmsoKTsKIAotICAgIExv
Y2sgbV9mdW5jdGlvblF1ZXVlTG9jazsKLSAgICBEZXF1ZTxGdW5jdGlvbjx2b2lkKCk+PiBtX2Z1
bmN0aW9uUXVldWU7CisgICAgRGVxdWU8RnVuY3Rpb248dm9pZCgpPj4gbV9jdXJyZW50SXRlcmF0
aW9uOworCisgICAgTG9jayBtX25leHRJdGVyYXRpb25Mb2NrOworICAgIERlcXVlPEZ1bmN0aW9u
PHZvaWQoKT4+IG1fbmV4dEl0ZXJhdGlvbjsKKwogICAgIGJvb2wgbV9pc0Z1bmN0aW9uRGlzcGF0
Y2hTdXNwZW5kZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNTdXNwZW5kZWRGdW5jdGlvbnMg
eyBmYWxzZSB9OwogCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiAyNjM4MzEpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wNy0wMSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2Fy
ZW5AYXBwbGUuY29tPgorCisgICAgICAgIFJ1bkxvb3A6OmRpc3BhdGNoIHNob3VsZCBvbmx5IGNh
bGwgd2FrZVVwIHdoZW4gbmVlZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTM3MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCBzb21lIHRlc3RzIGZvciBpbnRlcmVzdGluZyBlZGdlIGNhc2Vz
LgorCisgICAgICAgIE5vdyB0aGF0IHdlIGhhdmUgdGVzdHMsIHdlIGRvbid0IG5lZWQgc28gbWFu
eSBjb21tZW50cy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1J1bkxvb3Au
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjAtMDctMDEgIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHRoZSBXZWJL
aXQgYnVpbGQgYWZ0ZXIgPHJkYXI6Ly9wcm9ibGVtLzY0Mjg4MTkxPgpJbmRleDogVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvUnVuTG9vcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvUnVuTG9vcC5jcHAJKHJldmlzaW9uIDI2Mzc4NikKKysrIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1J1bkxvb3AuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01NSw2ICs1NSw0OCBAQCBURVNUKFdURl9SdW5Mb29wLCBEZWFkbG9jaykKICAgICBVdGlsOjpy
dW4oJnRlc3RGaW5pc2hlZCk7CiB9CiAKK1RFU1QoV1RGX1J1bkxvb3AsIE5lc3RlZEluT3JkZXIp
Cit7CisgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZCgpOworCisgICAgYm9vbCBkb25lID0g
ZmFsc2U7CisgICAgYm9vbCBkaWRFeGVjdXRlT3V0ZXIgPSBmYWxzZTsKKworICAgIFJ1bkxvb3A6
Om1haW4oKS5kaXNwYXRjaChbJmRvbmUsICZkaWRFeGVjdXRlT3V0ZXJdIHsKKyAgICAgICAgUnVu
TG9vcDo6bWFpbigpLmRpc3BhdGNoKFsmZG9uZSwgJmRpZEV4ZWN1dGVPdXRlcl0geworICAgICAg
ICAgICAgRVhQRUNUX1RSVUUoZGlkRXhlY3V0ZU91dGVyKTsKKyAgICAgICAgICAgIGRvbmUgPSB0
cnVlOworICAgICAgICB9KTsKKworICAgICAgICBVdGlsOjpydW4oJmRvbmUpOworICAgIH0pOwor
ICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbJmRpZEV4ZWN1dGVPdXRlcl0geyAKKyAgICAg
ICAgZGlkRXhlY3V0ZU91dGVyID0gdHJ1ZTsKKyAgICB9KTsKKworICAgIFV0aWw6OnJ1bigmZG9u
ZSk7Cit9CisKK1RFU1QoV1RGX1J1bkxvb3AsIERpc3BhdGNoQ3Jvc3NUaHJlYWRXaGlsZU5lc3Rl
ZCkKK3sKKyAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkKCk7CisKKyAgICBib29sIGRvbmUg
PSBmYWxzZTsKKworICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbJmRvbmVdIHsKKyAgICAg
ICAgVGhyZWFkOjpjcmVhdGUoIkRpc3BhdGNoQ3Jvc3NUaHJlYWQiLCBbJmRvbmVdIHsKKyAgICAg
ICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbJmRvbmVdIHsKKyAgICAgICAgICAgICAg
ICBkb25lID0gdHJ1ZTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBV
dGlsOjpydW4oJmRvbmUpOworICAgIH0pOworICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChb
XSB7IH0pOworCisgICAgVXRpbDo6cnVuKCZkb25lKTsKK30KKwogY2xhc3MgRGVyaXZlZE9uZVNo
b3RUaW1lciA6IHB1YmxpYyBSdW5Mb29wOjpUaW1lcjxEZXJpdmVkT25lU2hvdFRpbWVyPiB7CiBw
dWJsaWM6CiAgICAgRGVyaXZlZE9uZVNob3RUaW1lcihib29sJiB0ZXN0RmluaXNoZWQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403408</attachid>
            <date>2020-07-02 15:34:39 -0700</date>
            <delta_ts>2020-07-06 10:15:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213705-20200702153438.patch</filename>
            <type>text/plain</type>
            <size>9090</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNjM3ODYpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIwLTA3LTAxICBHZW9mZnJleSBHYXJlbiAgPGdn
YXJlbkBhcHBsZS5jb20+CisKKyAgICAgICAgUnVuTG9vcDo6ZGlzcGF0Y2ggc2hvdWxkIG9ubHkg
Y2FsbCB3YWtlVXAgd2hlbiBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMzcwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJ1bkxvb3A6Ondha2VVcCBpcyBzdXBlciBleHBlbnNpdmUgKGF0IGxl
YXN0IG9uIERhcndpbiBwbGF0Zm9ybXMpLiBCYWNrCisgICAgICAgIHdoZW4gSW5kZXhlZERCIHVz
ZWQgUnVuTG9vcDo6ZGlzcGF0Y2gsIFJ1bkxvb3A6Ondha2VVcCBhY2NvdW50ZWQgZm9yIDE1JQor
ICAgICAgICBvZiBhbGwgZGF0YWJhc2UgbG9va3VwIHRpbWUuCisKKyAgICAgICAgV2UgY2FuIHJl
ZHVjZSB0aGUgY29zdCBhIGJpdCBieSBvbmx5IHNjaGVkdWxpbmcgYSB3YWtlVXAgd2hlbiB0aGUg
cXVldWUKKyAgICAgICAgaXMgZW1wdHkuCisKKyAgICAgICAgKiB3dGYvUnVuTG9vcC5jcHA6Cisg
ICAgICAgIChXVEY6OlJ1bkxvb3A6OnBlcmZvcm1Xb3JrKTogVGFrZSBhbGwgdGhlIGZ1bmN0aW9u
cyBvdXQgb2YgdGhlIHBlbmRpbmcKKyAgICAgICAgcXVldWUgYmVmb3JlIHdlIHN0YXJ0IGV4ZWN1
dGluZyB0aGVtOyB0aGF0IHdheSwgd2UgY2FuIHRlbGwgaWYgYSBuZXcKKyAgICAgICAgZnVuY3Rp
b24gaGFzIGJlZW4gYWRkZWQgdG8gdGhlIHBlbmRpbmcgcXVldWUgc2luY2Ugd2UgZW5ldGVyZWQK
KyAgICAgICAgcGVyZm9ybVdvcmsuCisKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6ZGlzcGF0Y2gp
OiBPbmx5IGNhbGwgd2FrZVVwIGlmIHdlIG5lZWQgdG8uCisKKyAgICAgICAgKiB3dGYvUnVuTG9v
cC5oOgorCiAyMDIwLTA2LTMwICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0NvY29hXSBbR1RLXSBSdW5Mb29wOjpUaW1lcjo6aXNBY3RpdmUoKSBpcyBpbmNv
cnJlY3QgZm9yIHRpbWVycyB3aGlsZSB0aGV5IGFyZSBmaXJpbmcKSW5kZXg6IFNvdXJjZS9XVEYv
d3RmL1J1bkxvb3AuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3Bw
CShyZXZpc2lvbiAyNjM3ODYpCisrKyBTb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtOTcsNDUgKzk3LDI1IEBAIGJvb2wgUnVuTG9vcDo6aXNNYWluKCkKIAogdm9p
ZCBSdW5Mb29wOjpwZXJmb3JtV29yaygpCiB7Ci0gICAgLy8gSXQgaXMgaW1wb3J0YW50IHRvIGhh
bmRsZSB0aGUgZnVuY3Rpb25zIGluIHRoZSBxdWV1ZSBvbmUgYXQgYSB0aW1lIGJlY2F1c2Ugd2hp
bGUgaW5zaWRlIG9uZSBvZiB0aGVzZQotICAgIC8vIGZ1bmN0aW9ucyB3ZSBtaWdodCByZS1lbnRl
ciBSdW5Mb29wOjpwZXJmb3JtV29yaygpIGFuZCB3ZSBuZWVkIHRvIGJlIGFibGUgdG8gcGljayB1
cCB3aGVyZSB3ZSBsZWZ0IG9mZi4KLSAgICAvLyBTZWUgaHR0cDovL3dlYmtpdC5vcmcvYi84OTU5
MCBmb3IgbW9yZSBkaXNjdXNzaW9uLgotCi0gICAgLy8gT25lIHBvc3NpYmxlIHNjZW5hcmlvIHdo
ZW4gaGFuZGxpbmcgdGhlIGZ1bmN0aW9uIHF1ZXVlIGlzIGFzIGZvbGxvd3M6Ci0gICAgLy8gLSBS
dW5Mb29wOjpwZXJmb3JtV29yaygpIGlzIGludm9rZWQgd2l0aCAxIGZ1bmN0aW9uIG9uIHRoZSBx
dWV1ZQotICAgIC8vIC0gSGFuZGxpbmcgdGhhdCBmdW5jdGlvbiByZXN1bHRzIGluIDEgbW9yZSBm
dW5jdGlvbiBiZWluZyBlbnF1ZXVlZAotICAgIC8vIC0gSGFuZGxpbmcgdGhhdCBvbmUgcmVzdWx0
cyBpbiB5ZXQgYW5vdGhlciBiZWluZyBlbnF1ZXVlZAotICAgIC8vIC0gQW5kIHNvIG9uCi0gICAg
Ly8KLSAgICAvLyBJbiB0aGlzIHNpdHVhdGlvbiBvbmUgaW52b2NhdGlvbiBvZiBwZXJmb3JtV29y
aygpIG5ldmVyIHJldHVybnMgc28gYWxsIG90aGVyIGV2ZW50IHNvdXJjZXMgYXJlIGJsb2NrZWQu
Ci0gICAgLy8gQnkgb25seSBoYW5kbGluZyB1cCB0byB0aGUgbnVtYmVyIG9mIGZ1bmN0aW9ucyB0
aGF0IHdlcmUgaW4gdGhlIHF1ZXVlIHdoZW4gcGVyZm9ybVdvcmsoKSBpcyBjYWxsZWQKLSAgICAv
LyB3ZSBndWFyYW50ZWUgdG8gb2NjYXNpb25hbGx5IHJldHVybiBmcm9tIHRoZSBydW4gbG9vcCBz
byBvdGhlciBldmVudCBzb3VyY2VzIHdpbGwgYmUgYWxsb3dlZCB0byBzcGluLgotCi0gICAgc2l6
ZV90IGZ1bmN0aW9uc1RvSGFuZGxlID0gMTsKICAgICBib29sIGRpZFN1c3BlbmRGdW5jdGlvbnMg
PSBmYWxzZTsKIAotICAgIGZvciAoc2l6ZV90IGZ1bmN0aW9uc0hhbmRsZWQgPSAwOyBmdW5jdGlv
bnNIYW5kbGVkIDwgZnVuY3Rpb25zVG9IYW5kbGU7ICsrZnVuY3Rpb25zSGFuZGxlZCkgewotICAg
ICAgICBGdW5jdGlvbjx2b2lkICgpPiBmdW5jdGlvbjsKLSAgICAgICAgewotICAgICAgICAgICAg
YXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2Z1bmN0aW9uUXVldWVMb2NrKTsKLQotICAgICAgICAg
ICAgLy8gRXZlbiBpZiB3ZSBzdGFydCBvZmYgd2l0aCBOIGZ1bmN0aW9ucyB0byBoYW5kbGUgYW5k
IHdlJ3ZlIG9ubHkgaGFuZGxlZCBsZXNzIHRoYW4gTiBmdW5jdGlvbnMsIHRoZSBxdWV1ZQotICAg
ICAgICAgICAgLy8gc3RpbGwgbWlnaHQgYmUgZW1wdHkgYmVjYXVzZSB0aG9zZSBmdW5jdGlvbnMg
bWlnaHQgaGF2ZSBiZWVuIGhhbmRsZWQgaW4gYW4gaW5uZXIgUnVuTG9vcDo6cGVyZm9ybVdvcmso
KS4KLSAgICAgICAgICAgIC8vIEluIHRoYXQgY2FzZSB3ZSBzaG91bGQgYmFpbCBoZXJlLgotICAg
ICAgICAgICAgaWYgKG1fZnVuY3Rpb25RdWV1ZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAg
YnJlYWs7Ci0KLSAgICAgICAgICAgIGlmIChtX2lzRnVuY3Rpb25EaXNwYXRjaFN1c3BlbmRlZCkg
ewotICAgICAgICAgICAgICAgIGRpZFN1c3BlbmRGdW5jdGlvbnMgPSB0cnVlOwotICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQorICAgIHsKKyAgICAgICAgYXV0byBsb2NrZXIg
PSBob2xkTG9jayhtX25leHRJdGVyYXRpb25Mb2NrKTsKKworICAgICAgICAvLyBJZiB0aGUgUnVu
TG9vcCByZS1lbnRlcnMgb3IgcmUtc2NoZWR1bGVzLCB3ZSdyZSBleHBlY3RlZCB0byBleGVjdXRl
IGFsbCBmdW5jdGlvbnMgaW4gb3JkZXIuCisgICAgICAgIHdoaWxlICghbV9jdXJyZW50SXRlcmF0
aW9uLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIG1fbmV4dEl0ZXJhdGlvbi5wcmVwZW5kKG1fY3Vy
cmVudEl0ZXJhdGlvbi50YWtlTGFzdCgpKTsKIAotICAgICAgICAgICAgaWYgKCFmdW5jdGlvbnNI
YW5kbGVkKQotICAgICAgICAgICAgICAgIGZ1bmN0aW9uc1RvSGFuZGxlID0gbV9mdW5jdGlvblF1
ZXVlLnNpemUoKTsKKyAgICAgICAgbV9jdXJyZW50SXRlcmF0aW9uID0gc3RkOjpleGNoYW5nZSht
X25leHRJdGVyYXRpb24sIHsgfSk7CisgICAgfQogCi0gICAgICAgICAgICBmdW5jdGlvbiA9IG1f
ZnVuY3Rpb25RdWV1ZS50YWtlRmlyc3QoKTsKKyAgICB3aGlsZSAoIW1fY3VycmVudEl0ZXJhdGlv
bi5pc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKG1faXNGdW5jdGlvbkRpc3BhdGNoU3VzcGVuZGVk
KSB7CisgICAgICAgICAgICBkaWRTdXNwZW5kRnVuY3Rpb25zID0gdHJ1ZTsKKyAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIAorCisgICAgICAgIGF1dG8gZnVuY3Rpb24gPSBt
X2N1cnJlbnRJdGVyYXRpb24udGFrZUZpcnN0KCk7CiAgICAgICAgIGZ1bmN0aW9uKCk7CiAgICAg
fQogCkBAIC0xNDksMTIgKzEyOSwxNiBAQCB2b2lkIFJ1bkxvb3A6OnBlcmZvcm1Xb3JrKCkKIAog
dm9pZCBSdW5Mb29wOjpkaXNwYXRjaChGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQogewor
ICAgIGJvb2wgbmVlZHNXYWtldXAgPSBmYWxzZTsKKwogICAgIHsKLSAgICAgICAgYXV0byBsb2Nr
ZXIgPSBob2xkTG9jayhtX2Z1bmN0aW9uUXVldWVMb2NrKTsKLSAgICAgICAgbV9mdW5jdGlvblF1
ZXVlLmFwcGVuZChXVEZNb3ZlKGZ1bmN0aW9uKSk7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9s
ZExvY2sobV9uZXh0SXRlcmF0aW9uTG9jayk7CisgICAgICAgIG5lZWRzV2FrZXVwID0gbV9uZXh0
SXRlcmF0aW9uLmlzRW1wdHkoKTsKKyAgICAgICAgbV9uZXh0SXRlcmF0aW9uLmFwcGVuZChXVEZN
b3ZlKGZ1bmN0aW9uKSk7CiAgICAgfQogCi0gICAgd2FrZVVwKCk7CisgICAgaWYgKG5lZWRzV2Fr
ZXVwKQorICAgICAgICB3YWtlVXAoKTsKIH0KIAogdm9pZCBSdW5Mb29wOjpzdXNwZW5kRnVuY3Rp
b25EaXNwYXRjaEZvckN1cnJlbnRDeWNsZSgpCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9SdW5Mb29w
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUnVuTG9vcC5oCShyZXZpc2lvbiAyNjM3
ODYpCisrKyBTb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwOCw4
ICsyMDgsMTEgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGVyZm9ybVdvcmsoKTsKIAotICAgIExv
Y2sgbV9mdW5jdGlvblF1ZXVlTG9jazsKLSAgICBEZXF1ZTxGdW5jdGlvbjx2b2lkKCk+PiBtX2Z1
bmN0aW9uUXVldWU7CisgICAgRGVxdWU8RnVuY3Rpb248dm9pZCgpPj4gbV9jdXJyZW50SXRlcmF0
aW9uOworCisgICAgTG9jayBtX25leHRJdGVyYXRpb25Mb2NrOworICAgIERlcXVlPEZ1bmN0aW9u
PHZvaWQoKT4+IG1fbmV4dEl0ZXJhdGlvbjsKKwogICAgIGJvb2wgbV9pc0Z1bmN0aW9uRGlzcGF0
Y2hTdXNwZW5kZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNTdXNwZW5kZWRGdW5jdGlvbnMg
eyBmYWxzZSB9OwogCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiAyNjM4NjIpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwyNyBAQAorMjAyMC0wNy0wMSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2Fy
ZW5AYXBwbGUuY29tPgorCisgICAgICAgIFJ1bkxvb3A6OmRpc3BhdGNoIHNob3VsZCBvbmx5IGNh
bGwgd2FrZVVwIHdoZW4gbmVlZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTM3MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCBzb21lIHRlc3RzIGZvciBpbnRlcmVzdGluZyBlZGdlIGNhc2Vz
LgorCisgICAgICAgIE5vdyB0aGF0IHdlIGhhdmUgdGVzdHMsIHdlIGRvbid0IG5lZWQgc28gbWFu
eSBjb21tZW50cy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1J1bkxvb3Au
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6IFRlc3QgdGhhdCByZS1lbnRyeSBt
YWludGlhaW5zIG9yZGVyaW5nLiBUZXN0IHRoYXQKKyAgICAgICAgcmUtZW50cnkgZG9lcyBub3Qg
ZGVhZGxvY2sgd2l0aCBjcm9zcy10aHJlYWQgcG9zdGluZy4gKFRoaXMgZGVhZGxvY2sgaXMKKyAg
ICAgICAgd2h5IHdlIGNhbid0IGp1c3QgdXNlIGEgbmFpdmUgY2hlY2sgZm9yIGFuIGVtcHR5IHF1
ZXVlLikKKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ2xpYi9VdGlsaXRpZXNHTGliLmNwcDoK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bik6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpVdGlsOjpzcGluUnVuTG9vcCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpVdGlsOjpz
bGVlcCk6IFRyeSB0byBmaXggdGhlIEdMaWIgUnVuTG9vcCB0ZXN0aW5nIGNvZGUuCisgICAgICAg
IEdMaWIgZmFpbHMgbXkgdHdvIG5ldyB0ZXN0cywgYW5kIHNlZW1zIHRvIGZhaWwgb3RoZXIgUnVu
TG9vcC15IHRlc3RzLgorICAgICAgICBJIHRoaW5rIHRoaXMgaXMgYmVjYXVzZSBnX2lkbGVfYWRk
IGlzIGRlZmluZWQgbm90IHRvIHdvcmsgaW4gbmVzdGVkCisgICAgICAgIFJ1bkxvb3BzLiBMZXQn
cyBzZWUgaWYgdXNpbmcgV1RGJ3MgUnVuTG9vcCBBUEkgaW5zdGVhZCBjYW4gaGVscC4KKwogMjAy
MC0wNy0wMiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTihyMjYzNjI1KTogcnVuLW1pbmlicm93c2VyIGZhaWxzIG9uIG1hYwpJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUnVuTG9vcC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUnVuTG9vcC5jcHAJKHJldmlzaW9uIDI2
Mzc4NikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1J1bkxvb3AuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NSw2ICs1NSw0OCBAQCBURVNUKFdURl9SdW5Mb29wLCBEZWFkbG9jaykK
ICAgICBVdGlsOjpydW4oJnRlc3RGaW5pc2hlZCk7CiB9CiAKK1RFU1QoV1RGX1J1bkxvb3AsIE5l
c3RlZEluT3JkZXIpCit7CisgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZCgpOworCisgICAg
Ym9vbCBkb25lID0gZmFsc2U7CisgICAgYm9vbCBkaWRFeGVjdXRlT3V0ZXIgPSBmYWxzZTsKKwor
ICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbJmRvbmUsICZkaWRFeGVjdXRlT3V0ZXJdIHsK
KyAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFsmZG9uZSwgJmRpZEV4ZWN1dGVPdXRl
cl0geworICAgICAgICAgICAgRVhQRUNUX1RSVUUoZGlkRXhlY3V0ZU91dGVyKTsKKyAgICAgICAg
ICAgIGRvbmUgPSB0cnVlOworICAgICAgICB9KTsKKworICAgICAgICBVdGlsOjpydW4oJmRvbmUp
OworICAgIH0pOworICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbJmRpZEV4ZWN1dGVPdXRl
cl0geyAKKyAgICAgICAgZGlkRXhlY3V0ZU91dGVyID0gdHJ1ZTsKKyAgICB9KTsKKworICAgIFV0
aWw6OnJ1bigmZG9uZSk7Cit9CisKK1RFU1QoV1RGX1J1bkxvb3AsIERpc3BhdGNoQ3Jvc3NUaHJl
YWRXaGlsZU5lc3RlZCkKK3sKKyAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkKCk7CisKKyAg
ICBib29sIGRvbmUgPSBmYWxzZTsKKworICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbJmRv
bmVdIHsKKyAgICAgICAgVGhyZWFkOjpjcmVhdGUoIkRpc3BhdGNoQ3Jvc3NUaHJlYWQiLCBbJmRv
bmVdIHsKKyAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbJmRvbmVdIHsKKyAg
ICAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsK
KworICAgICAgICBVdGlsOjpydW4oJmRvbmUpOworICAgIH0pOworICAgIFJ1bkxvb3A6Om1haW4o
KS5kaXNwYXRjaChbXSB7IH0pOworCisgICAgVXRpbDo6cnVuKCZkb25lKTsKK30KKwogY2xhc3Mg
RGVyaXZlZE9uZVNob3RUaW1lciA6IHB1YmxpYyBSdW5Mb29wOjpUaW1lcjxEZXJpdmVkT25lU2hv
dFRpbWVyPiB7CiBwdWJsaWM6CiAgICAgRGVyaXZlZE9uZVNob3RUaW1lcihib29sJiB0ZXN0Rmlu
aXNoZWQpCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL2dsaWIvVXRpbGl0aWVzR0xpYi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1V0aWxpdGllc0dMaWIuY3Bw
CShyZXZpc2lvbiAyNjM3ODYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL2dsaWIvVXRpbGl0aWVz
R0xpYi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDMxICszNCwyMiBAQCBuYW1lc3BhY2UgVXRp
bCB7CiAKIHZvaWQgcnVuKGJvb2wqIGRvbmUpCiB7Ci0gICAgZ19pZGxlX2FkZChbXShncG9pbnRl
ciB1c2VyRGF0YSkgLT4gZ2Jvb2xlYW4gewotICAgICAgICBib29sKiBkb25lID0gc3RhdGljX2Nh
c3Q8Ym9vbCo+KHVzZXJEYXRhKTsKLSAgICAgICAgaWYgKCpkb25lKQotICAgICAgICAgICAgUnVu
TG9vcDo6Y3VycmVudCgpLnN0b3AoKTsKLQotICAgICAgICByZXR1cm4gISpkb25lOwotICAgIH0s
IGRvbmUpOwotICAgIFJ1bkxvb3A6OnJ1bigpOworICAgIHdoaWxlICghKmRvbmUpCisgICAgICAg
IFJ1bkxvb3A6OmN1cnJlbnQoKS5jeWNsZSgpOwogfQogCiB2b2lkIHNwaW5SdW5Mb29wKHVpbnQ2
NF90IGNvdW50KQogewotICAgIGdfaWRsZV9hZGQoW10oZ3BvaW50ZXIgdXNlckRhdGEpIC0+IGdi
b29sZWFuIHsKLSAgICAgICAgdWludDY0X3QqIGNvdW50ID0gc3RhdGljX2Nhc3Q8dWludDY0X3Qq
Pih1c2VyRGF0YSk7Ci0gICAgICAgIHJldHVybiAtLSgqY291bnQpID8gR19TT1VSQ0VfQ09OVElO
VUUgOiBHX1NPVVJDRV9SRU1PVkU7Ci0gICAgfSwgJmNvdW50KTsKKyAgICB3aGlsZSAoY291bnQt
LSkKKyAgICAgICAgUnVuTG9vcDo6Y3VycmVudCgpLmN5Y2xlKCk7CiB9CiAKIHZvaWQgc2xlZXAo
ZG91YmxlIHNlY29uZHMpCiB7Ci0gICAgZ190aW1lb3V0X2FkZChzZWNvbmRzICogMTAwMCwgW10o
Z3BvaW50ZXIgdXNlckRhdGEpIC0+IGdib29sZWFuIHsKLSAgICAgICAgUnVuTG9vcDo6bWFpbigp
LnN0b3AoKTsKLSAgICAgICAgcmV0dXJuIEdfU09VUkNFX1JFTU9WRTsKLSAgICB9LCBudWxscHRy
KTsKLSAgICBSdW5Mb29wOjpjdXJyZW50KCkuc3RvcCgpOworICAgIFJ1bkxvb3A6OmN1cnJlbnQo
KS5kaXNwYXRjaEFmdGVyKFNlY29uZHMoc2Vjb25kcyksIFtdIHsKKyAgICAgICAgUnVuTG9vcDo6
Y3VycmVudCgpLnN0b3AoKTsKKyAgICB9KTsKKyAgICBSdW5Mb29wOjpjdXJyZW50KCkucnVuKCk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFV0aWwK
</data>

          </attachment>
      

    </bug>

</bugzilla>