<?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>231258</bug_id>
          
          <creation_ts>2021-10-05 15:02:54 -0700</creation_ts>
          <short_desc>Prevent test functionality in AdAttributionDaemon when not running tests</short_desc>
          <delta_ts>2021-12-20 14:04:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1800786</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-05 15:02:54 -0700</bug_when>
    <thetext>Prevent test functionality in AdAttributionDaemon when not running tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800787</commentid>
    <comment_count>1</comment_count>
      <attachid>440273</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-05 15:07:05 -0700</bug_when>
    <thetext>Created attachment 440273
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800811</commentid>
    <comment_count>2</comment_count>
      <attachid>440273</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2021-10-05 15:43:14 -0700</bug_when>
    <thetext>Comment on attachment 440273
Patch

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

&gt; Source/WebKit/ChangeLog:10
&gt; +        AdAttributionDaemon receives many messages, some of which do things that we want to test but want the normal daemon
&gt; +        to be unable to do, such as setting the report endpoint or bundle identifier.  When we receive such a message
&gt; +        in the non-test daemon, ignore it.

How bad is it for the non-test daemon to handle these messages? One can launch the OS supplied binary and provide an arbitrary service name to it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800872</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-05 17:06:13 -0700</bug_when>
    <thetext>This prevents a fraudulent app from using SPI to do things that it shouldn&apos;t.  The daemon will have access to a shared storage location that apps do not, so this is one layer of defense to prevent a rogue app from corrupting the data or state of the daemon that is storing data in the shared location.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800884</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2021-10-05 17:23:32 -0700</bug_when>
    <thetext>I see. I don&apos;t think that the defense works then, per the above (the rogue app can just confuse AdAttributionDaemon by launching its own copy).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800892</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-05 17:28:24 -0700</bug_when>
    <thetext>This is intended to be a protection on iOS, where a mach service named &quot;com.apple.webkit.adattributiond.service&quot; will already be registered with launchd.  A rogue app can&apos;t register a new mach service with that same name.  WebKit network processes will connect to a mach service with that name.  So even if an app does manage to launch an instance of AdAttributionDaemon, network processes won&apos;t connect to it.

Also, if an app does manage to start its own copy of AdAttributionDaemon, then that copy will not have access to the shared storage location, which an app will not have direct access to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800898</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2021-10-05 17:31:57 -0700</bug_when>
    <thetext>The concern is not about having a second com.apple.webkit.adattributiond.service, it is about launching the system binary, and telling it that it&apos;s org.webkit.pcmtestdaemon.service - and then it won&apos;t be Networking process talking to it, but the rogue app.

&gt; Also, if an app does manage to start its own copy of AdAttributionDaemon, then that copy will not have access to the shared storage location

Is this really and robustly true? I&apos;m intentionally not saying how the launching will happen, because that&apos;s quite a few scenarios to verify safety of.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800934</commentid>
    <comment_count>7</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-05 20:40:45 -0700</bug_when>
    <thetext>I think the focus of this review is off.

Before this patch, any app can use SPI to send a SetAttributionReportURLsForTesting message to the real AdAttributionDaemon, which would then cause that URL to intercept all attribution reports for that device.  This patch is to prevent such a thing from happening.

There may be other attacks that can still happen.  There is probably more hardening that should be done after this.  I am simply requesting review for this particular hardening.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800945</commentid>
    <comment_count>8</comment_count>
      <attachid>440273</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2021-10-05 22:11:17 -0700</bug_when>
    <thetext>Comment on attachment 440273
Patch

I don&apos;t see a reason to land code that incompletely fixes the problem unless there is a plan for how to fix it fully that depends on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800952</commentid>
    <comment_count>9</comment_count>
      <attachid>440273</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-05 22:42:20 -0700</bug_when>
    <thetext>Comment on attachment 440273
Patch

This does fix this problem completely.  This problem is that by calling SPI a rogue app can get the AdAttributionDaemon to do things that it should not.  What you are describing is a different problem that I don&apos;t think exists, but if it does then it needs a different mitigation.  Re-requesting review.  If you are still opposed to this reducing of attack surface area, then we should probably discuss it in a meeting next week.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801111</commentid>
    <comment_count>10</comment_count>
      <attachid>440273</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2021-10-06 08:54:53 -0700</bug_when>
    <thetext>Comment on attachment 440273
Patch

Launching a privileged process in a way that confuses it is a super common attack technique, so I don&apos;t think that patch meaningfully improves anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803440</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-12 15:03:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/84168088&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825395</commentid>
    <comment_count>12</comment_count>
      <attachid>447535</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-18 16:47:14 -0800</bug_when>
    <thetext>Created attachment 447535
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825396</commentid>
    <comment_count>13</comment_count>
      <attachid>447536</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-18 17:04:09 -0800</bug_when>
    <thetext>Created attachment 447536
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825730</commentid>
    <comment_count>14</comment_count>
      <attachid>447637</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-20 14:03:00 -0800</bug_when>
    <thetext>Created attachment 447637
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825734</commentid>
    <comment_count>15</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-20 14:04:48 -0800</bug_when>
    <thetext>http://trac.webkit.org/r287276</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440273</attachid>
            <date>2021-10-05 15:07:05 -0700</date>
            <delta_ts>2021-12-18 16:47:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231258-20211005150704.patch</filename>
            <type>text/plain</type>
            <size>6043</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE5NjA2NGZhOWQyNGU5ZjM2
NzdjZDQ5MDNjOWI5NjUzZWQwODZiMDIuLmJjZjI1MzViOTUyYWY5ZGRkOGY5ZDU5ODA2MDdhMzlh
NmMwOGRjZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjEtMTAtMDUgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBQcmV2ZW50IHRl
c3QgZnVuY3Rpb25hbGl0eSBpbiBBZEF0dHJpYnV0aW9uRGFlbW9uIHdoZW4gbm90IHJ1bm5pbmcg
dGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MTI1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
QXR0cmlidXRpb25EYWVtb24gcmVjZWl2ZXMgbWFueSBtZXNzYWdlcywgc29tZSBvZiB3aGljaCBk
byB0aGluZ3MgdGhhdCB3ZSB3YW50IHRvIHRlc3QgYnV0IHdhbnQgdGhlIG5vcm1hbCBkYWVtb24K
KyAgICAgICAgdG8gYmUgdW5hYmxlIHRvIGRvLCBzdWNoIGFzIHNldHRpbmcgdGhlIHJlcG9ydCBl
bmRwb2ludCBvciBidW5kbGUgaWRlbnRpZmllci4gIFdoZW4gd2UgcmVjZWl2ZSBzdWNoIGEgbWVz
c2FnZQorICAgICAgICBpbiB0aGUgbm9uLXRlc3QgZGFlbW9uLCBpZ25vcmUgaXQuCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpQQ006Om1l
c3NhZ2VUeXBlSXNGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6UENNOjplbmFibGVUZXN0
TWVzc2FnZVJlY2VpdmVycyk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6ZGVjb2RlTWVzc2FnZUFu
ZFNlbmRUb01hbmFnZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oOgorICAg
ICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9QQ01EYWVtb25F
bnRyeVBvaW50Lm1tOgorICAgICAgICAoV2ViS2l0OjpQQ01EYWVtb25NYWluKToKKwogMjAyMS0x
MC0wNSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBB
ZGQgYW4gYWx0ZXJuYXRlIHN0eWxlIGZvciBmb3JtIGNvbnRyb2xzLCBhbmQgaW1wbGVtZW50IGl0
IGZvciBjaGVja2JveGVzIGFuZCByYWRpbyBidXR0b25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
ckludGVyZmFjZS5jcHAKaW5kZXggZmM1N2MxZTQzYjM3ZjYzZGI0NTM2MTkxOGE4ZTA2M2NkN2I5
NmQ1Ny4uNTZhNjNmZGY0ZDI3ODk3MjBkMTFjM2VlNGM3MTVmOWNiOTU3YjU1OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcApAQCAtMTc4LDYgKzE3OCw0MCBAQCBib29s
IG1lc3NhZ2VUeXBlU2VuZHNSZXBseShNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSkKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKK3N0YXRpYyBib29sIG1lc3NhZ2VUeXBlSXNGb3JUZXN0aW5nKE1lc3Nh
Z2VUeXBlIG1lc3NhZ2VUeXBlKQoreworICAgIHN3aXRjaCAobWVzc2FnZVR5cGUpIHsKKyAgICBj
YXNlIE1lc3NhZ2VUeXBlOjpIYW5kbGVBdHRyaWJ1dGlvbjoKKyAgICBjYXNlIE1lc3NhZ2VUeXBl
OjpNaWdyYXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGcm9tTGVnYWN5U3RvcmFnZToKKyAgICBj
YXNlIE1lc3NhZ2VUeXBlOjpTZXREZWJ1Z01vZGVJc0VuYWJsZWQ6CisgICAgY2FzZSBNZXNzYWdl
VHlwZTo6U3RvcmVVbmF0dHJpYnV0ZWQ6CisgICAgY2FzZSBNZXNzYWdlVHlwZTo6Q2xlYXI6Cisg
ICAgY2FzZSBNZXNzYWdlVHlwZTo6Q2xlYXJGb3JSZWdpc3RyYWJsZURvbWFpbjoKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIGNhc2UgTWVzc2FnZVR5cGU6OlNldE92ZXJyaWRlVGltZXJGb3JU
ZXN0aW5nOgorICAgIGNhc2UgTWVzc2FnZVR5cGU6OlNldFRva2VuUHVibGljS2V5VVJMRm9yVGVz
dGluZzoKKyAgICBjYXNlIE1lc3NhZ2VUeXBlOjpTZXRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3Rp
bmc6CisgICAgY2FzZSBNZXNzYWdlVHlwZTo6U2V0QXR0cmlidXRpb25SZXBvcnRVUkxzRm9yVGVz
dGluZzoKKyAgICBjYXNlIE1lc3NhZ2VUeXBlOjpNYXJrQWxsVW5hdHRyaWJ1dGVkQXNFeHBpcmVk
Rm9yVGVzdGluZzoKKyAgICBjYXNlIE1lc3NhZ2VUeXBlOjpTZXRQQ01GcmF1ZFByZXZlbnRpb25W
YWx1ZXNGb3JUZXN0aW5nOgorICAgIGNhc2UgTWVzc2FnZVR5cGU6OlN0YXJ0VGltZXJJbW1lZGlh
dGVseUZvclRlc3Rpbmc6CisgICAgY2FzZSBNZXNzYWdlVHlwZTo6U2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3Rpbmc6CisgICAgY2FzZSBNZXNzYWdlVHlwZTo6QWxs
b3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nOgorICAgIGNhc2UgTWVzc2Fn
ZVR5cGU6Ok1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9y
VGVzdGluZzoKKyAgICBjYXNlIE1lc3NhZ2VUeXBlOjpEZXN0cm95U3RvcmVGb3JUZXN0aW5nOgor
ICAgIGNhc2UgTWVzc2FnZVR5cGU6OlRvU3RyaW5nRm9yVGVzdGluZzoKKyAgICAgICAgYnJlYWs7
CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiB0cnVlOworfQor
CitzdGF0aWMgYm9vbCBhbGxvd3NUZXN0TWVzc2FnZXMgeyBmYWxzZSB9Owordm9pZCBlbmFibGVU
ZXN0TWVzc2FnZVJlY2VpdmVycygpCit7CisgICAgYWxsb3dzVGVzdE1lc3NhZ2VzID0gdHJ1ZTsK
K30KKwogc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXI+JiBtYW5hZ2VyUG9pbnRlcigpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6
dW5pcXVlX3B0cjxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI+PiBtYW5hZ2VyOwpAQCAt
MjQ4LDYgKzI4Miw5IEBAIHZvaWQgaGFuZGxlUENNTWVzc2FnZVdpdGhSZXBseShQQ006OkVuY29k
ZWRNZXNzYWdlJiYgZW5jb2RlZE1lc3NhZ2UsIENvbXBsZXRpb25ICiAKIHZvaWQgZGVjb2RlTWVz
c2FnZUFuZFNlbmRUb01hbmFnZXIoY29uc3QgQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgTWVzc2Fn
ZVR5cGUgbWVzc2FnZVR5cGUsIFZlY3Rvcjx1aW50OF90PiYmIGVuY29kZWRNZXNzYWdlLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFZlY3Rvcjx1aW50OF90PiYmKT4mJiByZXBseVNlbmRlcikKIHsK
KyAgICBpZiAoIWFsbG93c1Rlc3RNZXNzYWdlcyAmJiBtZXNzYWdlVHlwZUlzRm9yVGVzdGluZyht
ZXNzYWdlVHlwZSkpCisgICAgICAgIHJldHVybjsKKwogICAgIEFTU0VSVChtZXNzYWdlVHlwZVNl
bmRzUmVwbHkobWVzc2FnZVR5cGUpID09ICEhcmVwbHlTZW5kZXIpOwogICAgIHN3aXRjaCAobWVz
c2FnZVR5cGUpIHsKICAgICBjYXNlIFBDTTo6TWVzc2FnZVR5cGU6OlN0b3JlVW5hdHRyaWJ1dGVk
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmgKaW5kZXggY2Y4MGM0NDI5NjkyZTkw
NTI1NTYzZjdiYjUyMDQ5YTI0YjBjNGM5OC4uMWQ3NmY1ZWViYTVmOGZlMzY3NTU0ZjcyYzBlNGIx
Y2I5YTU3MDBmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZh
Y2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oCkBAIC0xMDgs
NiArMTA4LDcgQEAgdXNpbmcgRW5jb2RlZE1lc3NhZ2UgPSBWZWN0b3I8dWludDhfdD47CiAKIHZv
aWQgZGVjb2RlTWVzc2FnZUFuZFNlbmRUb01hbmFnZXIoY29uc3QgQ29ubmVjdGlvbiYsIE1lc3Nh
Z2VUeXBlLCBWZWN0b3I8dWludDhfdD4mJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFZlY3Rvcjx1aW50OF90PiYmKT4mJik7CiBib29sIG1lc3NhZ2VUeXBlU2VuZHNSZXBseShNZXNz
YWdlVHlwZSk7Cit2b2lkIGVuYWJsZVRlc3RNZXNzYWdlUmVjZWl2ZXJzKCk7CiAKIHZvaWQgaW5p
dGlhbGl6ZVBDTVN0b3JhZ2VJbkRpcmVjdG9yeShjb25zdCBTdHJpbmcmKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24v
UENNRGFlbW9uRW50cnlQb2ludC5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRV
dGlsaXRpZXMvQ29jb2EvRGFlbW9uL1BDTURhZW1vbkVudHJ5UG9pbnQubW0KaW5kZXggOTQ2MTYx
ZjU0NmNiMGJlODAxNDY5ZjQ1MWJmMGZhZGUyMGVhMDA0Ny4uYmU2YTk5OThhM2Y2ZmI4OTA5YWFi
MDA2MDVhOWVmN2ZlYTgwZjdjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50
cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENNRGFlbW9uRW50cnlQb2ludC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9Q
Q01EYWVtb25FbnRyeVBvaW50Lm1tCkBAIC0xMzIsNiArMTMyLDE1IEBAIGludCBQQ01EYWVtb25N
YWluKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikKICAgICBjb25zdCBjaGFyKiBzdG9yYWdl
TG9jYXRpb24gPSBhcmd2WzRdOwogICAgIGJvb2wgc3RhcnRBY3Rpdml0eSA9IGFyZ2MgPiA1ICYm
ICFzdHJjbXAoYXJndls1XSwgIi0tc3RhcnRBY3Rpdml0eSIpOwogCisgICAgYm9vbCBpc1Rlc3RE
YWVtb24gPSAhc3RyY21wKG1hY2hTZXJ2aWNlTmFtZSwgIm9yZy53ZWJraXQucGNtdGVzdGRhZW1v
bi5zZXJ2aWNlIik7CisgICAgYm9vbCBpc1Byb2R1Y3Rpb25EYWVtb24gPSAhc3RyY21wKG1hY2hT
ZXJ2aWNlTmFtZSwgImNvbS5hcHBsZS53ZWJraXQuYWRhdHRyaWJ1dGlvbmQuc2VydmljZSIpOwor
ICAgIGlmICghaXNUZXN0RGFlbW9uICYmICFpc1Byb2R1Y3Rpb25EYWVtb24pIHsKKyAgICAgICAg
TlNMb2coQCJPbmx5IG1hY2hTZXJ2aWNlTmFtZSB2YWx1ZXMgb2YgY29tLmFwcGxlLndlYmtpdC5h
ZGF0dHJpYnV0aW9uZC5zZXJ2aWNlIGFuZCBvcmcud2Via2l0LnBjbXRlc3RkYWVtb24uc2Vydmlj
ZSBhcmUgYWxsb3dlZCIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGlmIChpc1Rl
c3REYWVtb24pCisgICAgICAgIFBDTTo6ZW5hYmxlVGVzdE1lc3NhZ2VSZWNlaXZlcnMoKTsKKwog
ICAgIEBhdXRvcmVsZWFzZXBvb2wgewogICAgICAgICBlbnRlclNhbmRib3goKTsKICAgICAgICAg
c3RhcnRMaXN0ZW5pbmdGb3JNYWNoU2VydmljZUNvbm5lY3Rpb25zKG1hY2hTZXJ2aWNlTmFtZSk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447535</attachid>
            <date>2021-12-18 16:47:14 -0800</date>
            <delta_ts>2021-12-18 17:04:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231258-20211218164713.patch</filename>
            <type>text/plain</type>
            <size>11491</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MjAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNkNzU5NWY2OTBmZWZhYjQz
YmM0MDMxZWUwYzhjMTU2YzdkZGY5MDcuLmFiMzczZTZlMTlhZTNhNDhjZjczNWVhZWJlOWIzZWRk
MDlkZmFhOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjEtMTItMTggIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBQcmV2ZW50IHRl
c3QgZnVuY3Rpb25hbGl0eSBpbiBBZEF0dHJpYnV0aW9uRGFlbW9uIHdoZW4gbm90IHJ1bm5pbmcg
dGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MTI1OAorICAgICAgICA8cmRhcjovLzg0MTY4MDg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIGFkYXR0cmlidXRpb25kIGFscmVhZHkgaGFzIGEgcHJp
dmF0ZSBlbnRpdGxlbWVudCBjaGVjayB0byBtYWtlIHN1cmUgdGhhdCBvbmx5IHRoZSBuZXR3b3Jr
IHByb2Nlc3MgaGFzIHBlcm1pc3Npb24gdG8gY29ubmVjdCB0byBpdC4KKyAgICAgICAgVGhpcyBt
YWtlcyBpdCBzbyB0aGF0IHRoZSBuZXR3b3JrIHByb2Nlc3MgY2FuJ3QgbWFuaXB1bGF0ZSBzdGF0
ZSBvbmx5IGludGVuZGVkIHRvIGJlIG1hbmlwdWxhdGVkIGZvciB0ZXN0cyB3aGVuIHRvbGQgdG8g
ZG8gc28gYnkKKyAgICAgICAgYW4gYXBwbGljYXRpb24gbWlzdXNpbmcgU1BJLgorCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6YWxsb3dzUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUZXN0RnVuY3Rpb25h
bGl0eSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6OnNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25S
ZXN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6Om1hcmtBdHRyaWJ1dGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVwaGVtZXJh
bE1lYXN1cmVtZW50Rm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuUHVibGljS2V5VVJMRm9yVGVzdGluZyk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJM
c0ZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6bWFya1ByaXZh
dGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6c2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaDoKKwogMjAyMS0xMi0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBBUEk6Ok9iamVjdDo6VHlwZTo6QnVu
ZGxlUGFnZUdyb3VwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwCmluZGV4IDI4MmRjNzZlYjliMjgwYmU2YzRmYzJkMThkYzA4MjI0NDhjNDIxOWQu
LmY3ZjU5MjdjYjVlOGUxNTA4OTU4NWZlYmIyMTdmNTNkMTlmMTYwNzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0xMDQsNiArMTA0
LDcgQEAKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlICJMYXVuY2hTZXJ2aWNlc0RhdGFi
YXNlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbkNvY29hLmgiCisjaW5jbHVk
ZSA8d3RmL2NvY29hL0VudGl0bGVtZW50cy5oPgogI2VuZGlmCiAKICNpZiBVU0UoU09VUCkKQEAg
LTI0NjEsOCArMjQ2MiwyMyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjbGVhclByaXZhdGVDbGlj
a01lYXN1cmVtZW50KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcAogICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcigpOwogfQogCitib29sIE5ldHdvcmtQcm9jZXNzOjphbGxvd3NQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudFRlc3RGdW5jdGlvbmFsaXR5KCkgY29uc3QKK3sKKyNpZiAhUExBVEZP
Uk0oQ09DT0EpIHx8ICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorICAgIHJldHVybiB0cnVlOwor
I2Vsc2UKKyAgICBhdXRvIGF1ZGl0VG9rZW4gPSBzb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4o
KTsKKyAgICBpZiAoIWF1ZGl0VG9rZW4pCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1
cm4gaGFzRW50aXRsZW1lbnQoKmF1ZGl0VG9rZW4sICJjb20uYXBwbGUucHJpdmF0ZS53ZWJraXQu
YWRhdHRyaWJ1dGlvbmQudGVzdGluZyIpOworI2VuZGlmCit9CisKIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisgICAgaWYgKCFhbGxvd3NQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFRlc3RGdW5jdGlvbmFsaXR5KCkpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcigpOworCiAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNz
aW9uSUQpKQogICAgICAgICBzZXNzaW9uLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJy
aWRlVGltZXJGb3JUZXN0aW5nKHZhbHVlKTsKICAgICAKQEAgLTI0NzEsNiArMjQ4Nyw5IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1l
ckZvclRlc3RpbmcoUEFMOjpTZXNzCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNpbXVsYXRlUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogeworICAg
IGlmICghYWxsb3dzUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUZXN0RnVuY3Rpb25hbGl0eSgpKQor
ICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKKwogICAgIC8vIEZJWE1FOiBSZW5h
bWUgdGhpcyB0byBzaW11bGF0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50U2Vzc2lvblJlc3RhcnQu
CiAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAg
ICAgICAgIHNlc3Npb24tPnJlY3JlYXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZShbc2Vz
c2lvbiA9IFdlYWtQdHIgeyAqc2Vzc2lvbiB9LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKQEAgLTI0ODUsNiArMjUwNCw5IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OnNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25S
ZXN0YXJ0KFBBTDo6U2Vzc2lvbklECiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6Om1hcmtBdHRyaWJ1
dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKKyAgICBpZiAoIWFsbG93c1ByaXZhdGVDbGlja01lYXN1cmVtZW50VGVzdEZ1bmN0
aW9uYWxpdHkoKSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCk7CisKICAgICBp
ZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKICAgICAgICAg
c2Vzc2lvbi0+bWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRG
b3JUZXN0aW5nKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICAgICAgcmV0dXJuOwpA
QCAtMjQ5NCw2ICsyNTE2LDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6bWFya0F0dHJpYnV0ZWRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFAKIAogdm9pZCBOZXR3
b3JrUHJvY2Vzczo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFcGhlbWVyYWxNZWFzdXJlbWVu
dEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisgICAgaWYgKCFhbGxv
d3NQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRlc3RGdW5jdGlvbmFsaXR5KCkpCisgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcigpOworCiAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3
b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICBzZXNzaW9uLT5zZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEVwaGVtZXJhbE1lYXN1cmVtZW50Rm9yVGVzdGluZyh2YWx1ZSk7CiAgICAgCkBA
IC0yNTAzLDYgKzI1MjgsOSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEVwaGVtZXJhbE1lYXN1cmVtZW50Rm9yVGVzdGluZyhQQQogCiB2b2lkIE5ldHdv
cmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuUHVibGljS2V5VVJMRm9y
VGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCYmIHVybCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogeworICAgIGlmICghYWxsb3dzUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRUZXN0RnVuY3Rpb25hbGl0eSgpKQorICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoKTsKKwogICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nl
c3Npb24oc2Vzc2lvbklEKSkKICAgICAgICAgc2Vzc2lvbi0+c2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRUb2tlblB1YmxpY0tleVVSTEZvclRlc3RpbmcoV1RGTW92ZSh1cmwpKTsKIApAQCAtMjUx
MSw2ICsyNTM5LDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRUb2tlblB1YmxpY0tleVVSTEZvclRlc3RpbmcoUEFMOjoKIAogdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3Rp
bmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwmJiB1cmwsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyAgICBpZiAoIWFsbG93c1ByaXZhdGVD
bGlja01lYXN1cmVtZW50VGVzdEZ1bmN0aW9uYWxpdHkoKSkKKyAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb25IYW5kbGVyKCk7CisKICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9u
KHNlc3Npb25JRCkpCiAgICAgICAgIHNlc3Npb24tPnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKFdURk1vdmUodXJsKSk7CiAgICAgCkBAIC0yNTE5
LDYgKzI1NTAsOSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyhQQUw6OgogCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMc0ZvclRl
c3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwmJiBzb3VyY2VVUkwsIFVSTCYmIGRl
c3RpbmF0aW9uVVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CisgICAgaWYgKCFhbGxvd3NQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRlc3RGdW5jdGlv
bmFsaXR5KCkpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigpOworCiAgICAgaWYg
KGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICBzZXNz
aW9uLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMc0ZvclRl
c3RpbmcoV1RGTW92ZShzb3VyY2VVUkwpLCBXVEZNb3ZlKGRlc3RpbmF0aW9uVVJMKSk7CiAKQEAg
LTI1MjcsNiArMjU2MSw5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZyhQCiAKIHZvaWQgTmV0d29y
a1Byb2Nlc3M6Om1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogeworICAgIGlmICghYWxsb3dzUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRUZXN0RnVuY3Rpb25hbGl0eSgpKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIo
KTsKKwogICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkK
ICAgICAgICAgc2Vzc2lvbi0+bWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZv
clRlc3RpbmcoKTsKIApAQCAtMjUzNSw2ICsyNTcyLDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6
bWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoUEFMOjpTZXNz
aW8KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9y
VGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyYmIHVubGlua2FibGVUb2tl
biwgU3RyaW5nJiYgc2VjcmV0VG9rZW4sIFN0cmluZyYmIHNpZ25hdHVyZSwgU3RyaW5nJiYga2V5
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyAg
ICBpZiAoIWFsbG93c1ByaXZhdGVDbGlja01lYXN1cmVtZW50VGVzdEZ1bmN0aW9uYWxpdHkoKSkK
KyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCk7CisKICAgICBpZiAoYXV0byogc2Vz
c2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgIHNlc3Npb24tPnNldFBD
TUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoV1RGTW92ZSh1bmxpbmthYmxlVG9rZW4p
LCBXVEZNb3ZlKHNlY3JldFRva2VuKSwgV1RGTW92ZShzaWduYXR1cmUpLCBXVEZNb3ZlKGtleUlE
KSk7CiAKQEAgLTI1NDMsNiArMjU4Myw5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFBDTUZy
YXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvCiAKIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURG
b3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5nJiYgYXBwQnVuZGxlSURG
b3JUZXN0aW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CisgICAgaWYgKCFhbGxvd3NQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRlc3RGdW5jdGlvbmFs
aXR5KCkpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigpOworCiAgICAgaWYgKGF1
dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICBzZXNzaW9u
LT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhXVEZNb3Zl
KGFwcEJ1bmRsZUlERm9yVGVzdGluZykpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggODI4MWU1YzkxNmUwMGE5Y2ZjNmZkMDBkZTlhYWNi
MGJmOTc0MDI5YS4uZDJhZjNiZWY5MmFkYjE3MGQyODAwYWIwNWU5NTVhNmUxYmUxMTU0NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMzE5
LDYgKzMxOSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3JlUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQoUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYpOwog
ICAgIHZvaWQgZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KFBBTDo6U2Vzc2lvbklELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpOwogICAgIHZvaWQgY2xlYXJQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudChQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKKyAgICBib29sIGFsbG93c1ByaXZhdGVDbGlja01lYXN1cmVtZW50VGVzdEZ1bmN0aW9uYWxp
dHkoKSBjb25zdDsKICAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVU
aW1lckZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBtYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVwaGVt
ZXJhbE1lYXN1cmVtZW50Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgYm9vbCB2YWx1ZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxYjQzODhjYzdlN2M0NjNkMTk0Y2NmNWJjOTZjNTFhMzRh
ZjdhYWVkLi45NmM4YWRjNGQwZTlkOGMzNWU0ZmQyNzgyMTllZWM0MmY2ODk1MTZlIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMjEtMTItMTggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBQcmV2ZW50IHRlc3QgZnVuY3Rpb25hbGl0eSBpbiBBZEF0dHJpYnV0aW9u
RGFlbW9uIHdoZW4gbm90IHJ1bm5pbmcgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTI1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0
V2ViS2l0QVBJLW1hY09TLWludGVybmFsLmVudGl0bGVtZW50czoKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0NvbmZpZ3VyYXRpb25zL1dlYktpdFRlc3RSdW5uZXIuZW50aXRsZW1lbnRzOgor
CiAyMDIxLTEyLTE3ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0pTQ10gRml4IHJ1bnNjcmlwdCdzIHN0YW5kYWxvbmUgYWJpbGl0eSB0byBydW4KZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS1t
YWNPUy1pbnRlcm5hbC5lbnRpdGxlbWVudHMgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3Vy
YXRpb25zL1Rlc3RXZWJLaXRBUEktbWFjT1MtaW50ZXJuYWwuZW50aXRsZW1lbnRzCmluZGV4IDZm
YzI0YzRhMDQ1NjU0YWJmODNhNWY5ZDRiNTc2ODIxMTExMGRiMzAuLmNmYjkyMTUxY2M1OTEwYTNh
Y2RhNzBjMTE4ZDU3MjFhNWU1ZTI1ODkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
Q29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS1tYWNPUy1pbnRlcm5hbC5lbnRpdGxlbWVudHMK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLW1h
Y09TLWludGVybmFsLmVudGl0bGVtZW50cwpAQCAtNCw2ICs0LDggQEAKIDxkaWN0PgogCTxrZXk+
Y29tLmFwcGxlLnByaXZhdGUueHBjLmxhdW5jaGQuam9iLW1hbmFnZXI8L2tleT4KIAk8c3RyaW5n
PlRlc3RXZWJLaXRBUEk8L3N0cmluZz4KKwk8a2V5PmNvbS5hcHBsZS5wcml2YXRlLndlYmtpdC5h
ZGF0dHJpYnV0aW9uZC50ZXN0aW5nPC9rZXk+CisJPHRydWUvPgogCTxrZXk+Y29tLmFwcGxlLnBy
aXZhdGUud2Via2l0LndlYnB1c2g8L2tleT4KIAk8dHJ1ZS8+CiAJPGtleT5jb20uYXBwbGUucHJp
dmF0ZS53ZWJraXQud2VicHVzaC5pbmplY3Q8L2tleT4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvQ29uZmlndXJhdGlvbnMvV2ViS2l0VGVzdFJ1bm5lci5lbnRpdGxlbWVudHMg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NvbmZpZ3VyYXRpb25zL1dlYktpdFRlc3RSdW5uZXIu
ZW50aXRsZW1lbnRzCmluZGV4IGJlNTIzNjIyZWNjNGNiNzI2OGVlMjI0YTYwNjM2N2UwYTgyZjU5
N2IuLjFkNTlkMjcwZjNhNDlhNmFjZTk0MDBjNDc2ZGFhOTgzYmNjOTYzYWMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ29uZmlndXJhdGlvbnMvV2ViS2l0VGVzdFJ1bm5lci5l
bnRpdGxlbWVudHMKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Db25maWd1cmF0aW9ucy9X
ZWJLaXRUZXN0UnVubmVyLmVudGl0bGVtZW50cwpAQCAtNiw2ICs2LDggQEAKIAk8YXJyYXk+CiAJ
CTxzdHJpbmc+Y29tLmFwcGxlLldlYktpdFRlc3RSdW5uZXI8L3N0cmluZz4KIAk8L2FycmF5Pgor
CTxrZXk+Y29tLmFwcGxlLnByaXZhdGUud2Via2l0LmFkYXR0cmlidXRpb25kLnRlc3Rpbmc8L2tl
eT4KKwk8dHJ1ZS8+CiAJPGtleT5jb20uYXBwbGUuc2VjdXJpdHkudGVtcG9yYXJ5LWV4Y2VwdGlv
bi5zYnBsPC9rZXk+CiAJPGFycmF5PgogCQk8c3RyaW5nPihhbGxvdyBtYWNoLWlzc3VlLWV4dGVu
c2lvbiAocmVxdWlyZS1hbGwgKGV4dGVuc2lvbi1jbGFzcyAmcXVvdDtjb20uYXBwbGUud2Via2l0
LmV4dGVuc2lvbi5tYWNoJnF1b3Q7KSkpPC9zdHJpbmc+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447536</attachid>
            <date>2021-12-18 17:04:09 -0800</date>
            <delta_ts>2021-12-20 14:02:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231258-20211218170408.patch</filename>
            <type>text/plain</type>
            <size>12747</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MjAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNkNzU5NWY2OTBmZWZhYjQz
YmM0MDMxZWUwYzhjMTU2YzdkZGY5MDcuLmFiMzczZTZlMTlhZTNhNDhjZjczNWVhZWJlOWIzZWRk
MDlkZmFhOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjEtMTItMTggIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBQcmV2ZW50IHRl
c3QgZnVuY3Rpb25hbGl0eSBpbiBBZEF0dHJpYnV0aW9uRGFlbW9uIHdoZW4gbm90IHJ1bm5pbmcg
dGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MTI1OAorICAgICAgICA8cmRhcjovLzg0MTY4MDg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIGFkYXR0cmlidXRpb25kIGFscmVhZHkgaGFzIGEgcHJp
dmF0ZSBlbnRpdGxlbWVudCBjaGVjayB0byBtYWtlIHN1cmUgdGhhdCBvbmx5IHRoZSBuZXR3b3Jr
IHByb2Nlc3MgaGFzIHBlcm1pc3Npb24gdG8gY29ubmVjdCB0byBpdC4KKyAgICAgICAgVGhpcyBt
YWtlcyBpdCBzbyB0aGF0IHRoZSBuZXR3b3JrIHByb2Nlc3MgY2FuJ3QgbWFuaXB1bGF0ZSBzdGF0
ZSBvbmx5IGludGVuZGVkIHRvIGJlIG1hbmlwdWxhdGVkIGZvciB0ZXN0cyB3aGVuIHRvbGQgdG8g
ZG8gc28gYnkKKyAgICAgICAgYW4gYXBwbGljYXRpb24gbWlzdXNpbmcgU1BJLgorCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6YWxsb3dzUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUZXN0RnVuY3Rpb25h
bGl0eSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6OnNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25S
ZXN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6Om1hcmtBdHRyaWJ1dGVk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVwaGVtZXJh
bE1lYXN1cmVtZW50Rm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuUHVibGljS2V5VVJMRm9yVGVzdGluZyk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJM
c0ZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6bWFya1ByaXZh
dGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6c2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaDoKKwogMjAyMS0xMi0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBBUEk6Ok9iamVjdDo6VHlwZTo6QnVu
ZGxlUGFnZUdyb3VwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwCmluZGV4IDI4MmRjNzZlYjliMjgwYmU2YzRmYzJkMThkYzA4MjI0NDhjNDIxOWQu
LmY3ZjU5MjdjYjVlOGUxNTA4OTU4NWZlYmIyMTdmNTNkMTlmMTYwNzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0xMDQsNiArMTA0
LDcgQEAKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlICJMYXVuY2hTZXJ2aWNlc0RhdGFi
YXNlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbkNvY29hLmgiCisjaW5jbHVk
ZSA8d3RmL2NvY29hL0VudGl0bGVtZW50cy5oPgogI2VuZGlmCiAKICNpZiBVU0UoU09VUCkKQEAg
LTI0NjEsOCArMjQ2MiwyMyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjbGVhclByaXZhdGVDbGlj
a01lYXN1cmVtZW50KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcAogICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcigpOwogfQogCitib29sIE5ldHdvcmtQcm9jZXNzOjphbGxvd3NQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudFRlc3RGdW5jdGlvbmFsaXR5KCkgY29uc3QKK3sKKyNpZiAhUExBVEZP
Uk0oQ09DT0EpIHx8ICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorICAgIHJldHVybiB0cnVlOwor
I2Vsc2UKKyAgICBhdXRvIGF1ZGl0VG9rZW4gPSBzb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4o
KTsKKyAgICBpZiAoIWF1ZGl0VG9rZW4pCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1
cm4gaGFzRW50aXRsZW1lbnQoKmF1ZGl0VG9rZW4sICJjb20uYXBwbGUucHJpdmF0ZS53ZWJraXQu
YWRhdHRyaWJ1dGlvbmQudGVzdGluZyIpOworI2VuZGlmCit9CisKIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisgICAgaWYgKCFhbGxvd3NQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFRlc3RGdW5jdGlvbmFsaXR5KCkpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcigpOworCiAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNz
aW9uSUQpKQogICAgICAgICBzZXNzaW9uLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJy
aWRlVGltZXJGb3JUZXN0aW5nKHZhbHVlKTsKICAgICAKQEAgLTI0NzEsNiArMjQ4Nyw5IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1l
ckZvclRlc3RpbmcoUEFMOjpTZXNzCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNpbXVsYXRlUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogeworICAg
IGlmICghYWxsb3dzUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUZXN0RnVuY3Rpb25hbGl0eSgpKQor
ICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKKwogICAgIC8vIEZJWE1FOiBSZW5h
bWUgdGhpcyB0byBzaW11bGF0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50U2Vzc2lvblJlc3RhcnQu
CiAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAg
ICAgICAgIHNlc3Npb24tPnJlY3JlYXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZShbc2Vz
c2lvbiA9IFdlYWtQdHIgeyAqc2Vzc2lvbiB9LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKQEAgLTI0ODUsNiArMjUwNCw5IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OnNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25S
ZXN0YXJ0KFBBTDo6U2Vzc2lvbklECiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6Om1hcmtBdHRyaWJ1
dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKKyAgICBpZiAoIWFsbG93c1ByaXZhdGVDbGlja01lYXN1cmVtZW50VGVzdEZ1bmN0
aW9uYWxpdHkoKSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCk7CisKICAgICBp
ZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKICAgICAgICAg
c2Vzc2lvbi0+bWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRG
b3JUZXN0aW5nKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICAgICAgcmV0dXJuOwpA
QCAtMjQ5NCw2ICsyNTE2LDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6bWFya0F0dHJpYnV0ZWRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFAKIAogdm9pZCBOZXR3
b3JrUHJvY2Vzczo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFcGhlbWVyYWxNZWFzdXJlbWVu
dEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisgICAgaWYgKCFhbGxv
d3NQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRlc3RGdW5jdGlvbmFsaXR5KCkpCisgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcigpOworCiAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3
b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICBzZXNzaW9uLT5zZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEVwaGVtZXJhbE1lYXN1cmVtZW50Rm9yVGVzdGluZyh2YWx1ZSk7CiAgICAgCkBA
IC0yNTAzLDYgKzI1MjgsOSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEVwaGVtZXJhbE1lYXN1cmVtZW50Rm9yVGVzdGluZyhQQQogCiB2b2lkIE5ldHdv
cmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuUHVibGljS2V5VVJMRm9y
VGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCYmIHVybCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogeworICAgIGlmICghYWxsb3dzUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRUZXN0RnVuY3Rpb25hbGl0eSgpKQorICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoKTsKKwogICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nl
c3Npb24oc2Vzc2lvbklEKSkKICAgICAgICAgc2Vzc2lvbi0+c2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRUb2tlblB1YmxpY0tleVVSTEZvclRlc3RpbmcoV1RGTW92ZSh1cmwpKTsKIApAQCAtMjUx
MSw2ICsyNTM5LDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRUb2tlblB1YmxpY0tleVVSTEZvclRlc3RpbmcoUEFMOjoKIAogdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3Rp
bmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwmJiB1cmwsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyAgICBpZiAoIWFsbG93c1ByaXZhdGVD
bGlja01lYXN1cmVtZW50VGVzdEZ1bmN0aW9uYWxpdHkoKSkKKyAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb25IYW5kbGVyKCk7CisKICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9u
KHNlc3Npb25JRCkpCiAgICAgICAgIHNlc3Npb24tPnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKFdURk1vdmUodXJsKSk7CiAgICAgCkBAIC0yNTE5
LDYgKzI1NTAsOSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyhQQUw6OgogCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMc0ZvclRl
c3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwmJiBzb3VyY2VVUkwsIFVSTCYmIGRl
c3RpbmF0aW9uVVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CisgICAgaWYgKCFhbGxvd3NQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRlc3RGdW5jdGlv
bmFsaXR5KCkpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigpOworCiAgICAgaWYg
KGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICBzZXNz
aW9uLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMc0ZvclRl
c3RpbmcoV1RGTW92ZShzb3VyY2VVUkwpLCBXVEZNb3ZlKGRlc3RpbmF0aW9uVVJMKSk7CiAKQEAg
LTI1MjcsNiArMjU2MSw5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZyhQCiAKIHZvaWQgTmV0d29y
a1Byb2Nlc3M6Om1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogeworICAgIGlmICghYWxsb3dzUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRUZXN0RnVuY3Rpb25hbGl0eSgpKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIo
KTsKKwogICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkK
ICAgICAgICAgc2Vzc2lvbi0+bWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZv
clRlc3RpbmcoKTsKIApAQCAtMjUzNSw2ICsyNTcyLDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6
bWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoUEFMOjpTZXNz
aW8KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9y
VGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyYmIHVubGlua2FibGVUb2tl
biwgU3RyaW5nJiYgc2VjcmV0VG9rZW4sIFN0cmluZyYmIHNpZ25hdHVyZSwgU3RyaW5nJiYga2V5
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyAg
ICBpZiAoIWFsbG93c1ByaXZhdGVDbGlja01lYXN1cmVtZW50VGVzdEZ1bmN0aW9uYWxpdHkoKSkK
KyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCk7CisKICAgICBpZiAoYXV0byogc2Vz
c2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgIHNlc3Npb24tPnNldFBD
TUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoV1RGTW92ZSh1bmxpbmthYmxlVG9rZW4p
LCBXVEZNb3ZlKHNlY3JldFRva2VuKSwgV1RGTW92ZShzaWduYXR1cmUpLCBXVEZNb3ZlKGtleUlE
KSk7CiAKQEAgLTI1NDMsNiArMjU4Myw5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFBDTUZy
YXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvCiAKIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURG
b3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5nJiYgYXBwQnVuZGxlSURG
b3JUZXN0aW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CisgICAgaWYgKCFhbGxvd3NQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRlc3RGdW5jdGlvbmFs
aXR5KCkpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigpOworCiAgICAgaWYgKGF1
dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICBzZXNzaW9u
LT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhXVEZNb3Zl
KGFwcEJ1bmRsZUlERm9yVGVzdGluZykpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggODI4MWU1YzkxNmUwMGE5Y2ZjNmZkMDBkZTlhYWNi
MGJmOTc0MDI5YS4uZDJhZjNiZWY5MmFkYjE3MGQyODAwYWIwNWU5NTVhNmUxYmUxMTU0NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMzE5
LDYgKzMxOSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3JlUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQoUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYpOwog
ICAgIHZvaWQgZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KFBBTDo6U2Vzc2lvbklELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpOwogICAgIHZvaWQgY2xlYXJQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudChQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKKyAgICBib29sIGFsbG93c1ByaXZhdGVDbGlja01lYXN1cmVtZW50VGVzdEZ1bmN0aW9uYWxp
dHkoKSBjb25zdDsKICAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVU
aW1lckZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBtYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVwaGVt
ZXJhbE1lYXN1cmVtZW50Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgYm9vbCB2YWx1ZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxYjQzODhjYzdlN2M0NjNkMTk0Y2NmNWJjOTZjNTFhMzRh
ZjdhYWVkLi45NmM4YWRjNGQwZTlkOGMzNWU0ZmQyNzgyMTllZWM0MmY2ODk1MTZlIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMjEtMTItMTggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBQcmV2ZW50IHRlc3QgZnVuY3Rpb25hbGl0eSBpbiBBZEF0dHJpYnV0aW9u
RGFlbW9uIHdoZW4gbm90IHJ1bm5pbmcgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTI1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0
V2ViS2l0QVBJLW1hY09TLWludGVybmFsLmVudGl0bGVtZW50czoKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0NvbmZpZ3VyYXRpb25zL1dlYktpdFRlc3RSdW5uZXIuZW50aXRsZW1lbnRzOgor
CiAyMDIxLTEyLTE3ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0pTQ10gRml4IHJ1bnNjcmlwdCdzIHN0YW5kYWxvbmUgYWJpbGl0eSB0byBydW4KZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS1p
T1MuZW50aXRsZW1lbnRzIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0
V2ViS2l0QVBJLWlPUy5lbnRpdGxlbWVudHMKaW5kZXggMWU1ZTg3YTI5YTM0OTIyZWZiNDFjZmFl
NmUzYWQ1MDhjZDg2OGE1MS4uNGY5MzA1MGE4YTViNjhhNzA1ZDc0NjZkYzJlMjE0OTZjYTU3ZGNj
NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2Vi
S2l0QVBJLWlPUy5lbnRpdGxlbWVudHMKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1
cmF0aW9ucy9UZXN0V2ViS2l0QVBJLWlPUy5lbnRpdGxlbWVudHMKQEAgLTEwLDYgKzEwLDggQEAK
IAk8dHJ1ZS8+CiAJPGtleT5jb20uYXBwbGUuUGFzdGVib2FyZC5wYXN0ZS11bmNoZWNrZWQ8L2tl
eT4KIAk8dHJ1ZS8+CisJPGtleT5jb20uYXBwbGUucHJpdmF0ZS53ZWJraXQuYWRhdHRyaWJ1dGlv
bmQudGVzdGluZzwva2V5PgorCTx0cnVlLz4KIAk8a2V5PmNvbS5hcHBsZS5wcml2YXRlLndlYmtp
dC53ZWJwdXNoPC9rZXk+CiAJPHRydWUvPgogCTxrZXk+Y29tLmFwcGxlLnByaXZhdGUud2Via2l0
LndlYnB1c2guaW5qZWN0PC9rZXk+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0Nv
bmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEktbWFjT1MtaW50ZXJuYWwuZW50aXRsZW1lbnRzIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLW1hY09TLWlu
dGVybmFsLmVudGl0bGVtZW50cwppbmRleCA2ZmMyNGM0YTA0NTY1NGFiZjgzYTVmOWQ0YjU3Njgy
MTExMTBkYjMwLi5jZmI5MjE1MWNjNTkxMGEzYWNkYTcwYzExOGQ1NzIxYTVlNWUyNTg5IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEkt
bWFjT1MtaW50ZXJuYWwuZW50aXRsZW1lbnRzCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29u
ZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS1tYWNPUy1pbnRlcm5hbC5lbnRpdGxlbWVudHMKQEAg
LTQsNiArNCw4IEBACiA8ZGljdD4KIAk8a2V5PmNvbS5hcHBsZS5wcml2YXRlLnhwYy5sYXVuY2hk
LmpvYi1tYW5hZ2VyPC9rZXk+CiAJPHN0cmluZz5UZXN0V2ViS2l0QVBJPC9zdHJpbmc+CisJPGtl
eT5jb20uYXBwbGUucHJpdmF0ZS53ZWJraXQuYWRhdHRyaWJ1dGlvbmQudGVzdGluZzwva2V5Pgor
CTx0cnVlLz4KIAk8a2V5PmNvbS5hcHBsZS5wcml2YXRlLndlYmtpdC53ZWJwdXNoPC9rZXk+CiAJ
PHRydWUvPgogCTxrZXk+Y29tLmFwcGxlLnByaXZhdGUud2Via2l0LndlYnB1c2guaW5qZWN0PC9r
ZXk+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NvbmZpZ3VyYXRpb25zL1dl
YktpdFRlc3RSdW5uZXIuZW50aXRsZW1lbnRzIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Db25m
aWd1cmF0aW9ucy9XZWJLaXRUZXN0UnVubmVyLmVudGl0bGVtZW50cwppbmRleCBiZTUyMzYyMmVj
YzRjYjcyNjhlZTIyNGE2MDYzNjdlMGE4MmY1OTdiLi4xZDU5ZDI3MGYzYTQ5YTZhY2U5NDAwYzQ3
NmRhYTk4M2JjYzk2M2FjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NvbmZp
Z3VyYXRpb25zL1dlYktpdFRlc3RSdW5uZXIuZW50aXRsZW1lbnRzCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvQ29uZmlndXJhdGlvbnMvV2ViS2l0VGVzdFJ1bm5lci5lbnRpdGxlbWVudHMK
QEAgLTYsNiArNiw4IEBACiAJPGFycmF5PgogCQk8c3RyaW5nPmNvbS5hcHBsZS5XZWJLaXRUZXN0
UnVubmVyPC9zdHJpbmc+CiAJPC9hcnJheT4KKwk8a2V5PmNvbS5hcHBsZS5wcml2YXRlLndlYmtp
dC5hZGF0dHJpYnV0aW9uZC50ZXN0aW5nPC9rZXk+CisJPHRydWUvPgogCTxrZXk+Y29tLmFwcGxl
LnNlY3VyaXR5LnRlbXBvcmFyeS1leGNlcHRpb24uc2JwbDwva2V5PgogCTxhcnJheT4KIAkJPHN0
cmluZz4oYWxsb3cgbWFjaC1pc3N1ZS1leHRlbnNpb24gKHJlcXVpcmUtYWxsIChleHRlbnNpb24t
Y2xhc3MgJnF1b3Q7Y29tLmFwcGxlLndlYmtpdC5leHRlbnNpb24ubWFjaCZxdW90OykpKTwvc3Ry
aW5nPgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Db25maWd1cmF0aW9ucy9X
ZWJLaXRUZXN0UnVubmVyQXBwLWlPUy5lbnRpdGxlbWVudHMgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0NvbmZpZ3VyYXRpb25zL1dlYktpdFRlc3RSdW5uZXJBcHAtaU9TLmVudGl0bGVtZW50cwpp
bmRleCAzOWEwYTAwY2I3MDQxN2U1OWJiNzU1NmY5NWIyOTU5OGZmYWZmNWQ0Li5kZGRmYWFiMDZl
YzgxMmY5NGZlOGQ5OWJiNmIwYTUzMDM4NDBmYjcyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0NvbmZpZ3VyYXRpb25zL1dlYktpdFRlc3RSdW5uZXJBcHAtaU9TLmVudGl0bGVt
ZW50cworKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NvbmZpZ3VyYXRpb25zL1dlYktpdFRl
c3RSdW5uZXJBcHAtaU9TLmVudGl0bGVtZW50cwpAQCAtMTAsNSArMTAsNyBAQAogCTx0cnVlLz4K
IAk8a2V5PmNvbS5hcHBsZS5QYXN0ZWJvYXJkLnBhc3RlLXVuY2hlY2tlZDwva2V5PgogCTx0cnVl
Lz4KKwk8a2V5PmNvbS5hcHBsZS5wcml2YXRlLndlYmtpdC5hZGF0dHJpYnV0aW9uZC50ZXN0aW5n
PC9rZXk+CisJPHRydWUvPgogPC9kaWN0PgogPC9wbGlzdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447637</attachid>
            <date>2021-12-20 14:03:00 -0800</date>
            <delta_ts>2021-12-20 14:03:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231258-20211220140259.patch</filename>
            <type>text/plain</type>
            <size>12804</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MjcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk0OTU1MTlmZTk5YzNjZDFl
Y2U0MTI2NjI0MjdiODAxYmFmZWRlZDguLjhmNjQ3NjJmOWE1ZGNmMGI3YTRhYzVhMTc0YzczZTNk
ZGUyNzc4ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjEtMTItMjAgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBQcmV2ZW50IHRl
c3QgZnVuY3Rpb25hbGl0eSBpbiBBZEF0dHJpYnV0aW9uRGFlbW9uIHdoZW4gbm90IHJ1bm5pbmcg
dGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MTI1OAorICAgICAgICA8cmRhcjovLzg0MTY4MDg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJy
YWR5IEVpZHNvbi4KKworICAgICAgICBhZGF0dHJpYnV0aW9uZCBhbHJlYWR5IGhhcyBhIHByaXZh
dGUgZW50aXRsZW1lbnQgY2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgb25seSB0aGUgbmV0d29yayBw
cm9jZXNzIGhhcyBwZXJtaXNzaW9uIHRvIGNvbm5lY3QgdG8gaXQuCisgICAgICAgIFRoaXMgbWFr
ZXMgaXQgc28gdGhhdCB0aGUgbmV0d29yayBwcm9jZXNzIGNhbid0IG1hbmlwdWxhdGUgc3RhdGUg
b25seSBpbnRlbmRlZCB0byBiZSBtYW5pcHVsYXRlZCBmb3IgdGVzdHMgd2hlbiB0b2xkIHRvIGRv
IHNvIGJ5CisgICAgICAgIGFuIGFwcGxpY2F0aW9uIG1pc3VzaW5nIFNQSS4KKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OmFsbG93c1ByaXZhdGVDbGlja01lYXN1cmVtZW50VGVzdEZ1bmN0aW9uYWxp
dHkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzOjpzaW11bGF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXNzaW9uUmVz
dGFydCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjptYXJrQXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFcGhlbWVyYWxN
ZWFzdXJlbWVudEZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6
c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblB1YmxpY0tleVVSTEZvclRlc3RpbmcpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTHNG
b3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6Om1hcmtQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3M6OnNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBcHBCdW5kbGVJREZvclRlc3RpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmg6CisKIDIwMjEtMTItMjAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIEltcHJvdmUgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkgbG9nZ2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcAppbmRleCBmMjdhZTdkYjE0MDA5YzljN2NkZDA3NGRiYTk4M2E5Mjk4YmEzZTEx
Li45MzZiNDIzY2VkN2NiOGI2MjUzYWFlYWYzMDZjMWRhZGE4OWRjN2JkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMTA0LDYgKzEw
NCw3IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiTGF1bmNoU2VydmljZXNEYXRh
YmFzZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb25Db2NvYS5oIgorI2luY2x1
ZGUgPHd0Zi9jb2NvYS9FbnRpdGxlbWVudHMuaD4KICNlbmRpZgogCiAjaWYgVVNFKFNPVVApCkBA
IC0yNDIwLDggKzI0MjEsMjMgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y2xlYXJQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXAKICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoKTsKIH0KIAorYm9vbCBOZXR3b3JrUHJvY2Vzczo6YWxsb3dzUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRUZXN0RnVuY3Rpb25hbGl0eSgpIGNvbnN0Cit7CisjaWYgIVBMQVRG
T1JNKENPQ09BKSB8fCAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyAgICByZXR1cm4gdHJ1ZTsK
KyNlbHNlCisgICAgYXV0byBhdWRpdFRva2VuID0gc291cmNlQXBwbGljYXRpb25BdWRpdFRva2Vu
KCk7CisgICAgaWYgKCFhdWRpdFRva2VuKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0
dXJuIFdURjo6aGFzRW50aXRsZW1lbnQoKmF1ZGl0VG9rZW4sICJjb20uYXBwbGUucHJpdmF0ZS53
ZWJraXQuYWRhdHRyaWJ1dGlvbmQudGVzdGluZyIpOworI2VuZGlmCit9CisKIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3Rp
bmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisgICAgaWYgKCFhbGxvd3NQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudFRlc3RGdW5jdGlvbmFsaXR5KCkpCisgICAgICAgIHJldHVybiBjb21w
bGV0aW9uSGFuZGxlcigpOworCiAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lv
bihzZXNzaW9uSUQpKQogICAgICAgICBzZXNzaW9uLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKHZhbHVlKTsKICAgICAKQEAgLTI0MzAsNiArMjQ0Niw5
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJp
ZGVUaW1lckZvclRlc3RpbmcoUEFMOjpTZXNzCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNpbXVs
YXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nlc3Npb25SZXN0YXJ0KFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
eworICAgIGlmICghYWxsb3dzUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUZXN0RnVuY3Rpb25hbGl0
eSgpKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKKwogICAgIC8vIEZJWE1F
OiBSZW5hbWUgdGhpcyB0byBzaW11bGF0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50U2Vzc2lvblJl
c3RhcnQuCiAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQp
KSB7CiAgICAgICAgIHNlc3Npb24tPnJlY3JlYXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9y
ZShbc2Vzc2lvbiA9IFdlYWtQdHIgeyAqc2Vzc2lvbiB9LCBjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKQEAgLTI0NDQsNiArMjQ2Myw5
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNpbXVsYXRlUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nl
c3Npb25SZXN0YXJ0KFBBTDo6U2Vzc2lvbklECiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6Om1hcmtB
dHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKKyAgICBpZiAoIWFsbG93c1ByaXZhdGVDbGlja01lYXN1cmVtZW50VGVz
dEZ1bmN0aW9uYWxpdHkoKSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCk7CisK
ICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKICAg
ICAgICAgc2Vzc2lvbi0+bWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4
cGlyZWRGb3JUZXN0aW5nKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICAgICAgcmV0
dXJuOwpAQCAtMjQ1Myw2ICsyNDc1LDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6bWFya0F0dHJp
YnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFAKIAogdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFcGhlbWVyYWxNZWFz
dXJlbWVudEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisgICAgaWYg
KCFhbGxvd3NQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRlc3RGdW5jdGlvbmFsaXR5KCkpCisgICAg
ICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigpOworCiAgICAgaWYgKGF1dG8qIHNlc3Npb24g
PSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICBzZXNzaW9uLT5zZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEVwaGVtZXJhbE1lYXN1cmVtZW50Rm9yVGVzdGluZyh2YWx1ZSk7CiAg
ICAgCkBAIC0yNDYyLDYgKzI0ODcsOSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEVwaGVtZXJhbE1lYXN1cmVtZW50Rm9yVGVzdGluZyhQQQogCiB2b2lk
IE5ldHdvcmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuUHVibGljS2V5
VVJMRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCYmIHVybCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogeworICAgIGlmICghYWxs
b3dzUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUZXN0RnVuY3Rpb25hbGl0eSgpKQorICAgICAgICBy
ZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKKwogICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0
d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkKICAgICAgICAgc2Vzc2lvbi0+c2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRUb2tlblB1YmxpY0tleVVSTEZvclRlc3RpbmcoV1RGTW92ZSh1cmwpKTsKIApA
QCAtMjQ3MCw2ICsyNDk4LDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRUb2tlblB1YmxpY0tleVVSTEZvclRlc3RpbmcoUEFMOjoKIAogdm9pZCBOZXR3
b3JrUHJvY2Vzczo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZv
clRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwmJiB1cmwsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyAgICBpZiAoIWFsbG93c1By
aXZhdGVDbGlja01lYXN1cmVtZW50VGVzdEZ1bmN0aW9uYWxpdHkoKSkKKyAgICAgICAgcmV0dXJu
IGNvbXBsZXRpb25IYW5kbGVyKCk7CisKICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtT
ZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgIHNlc3Npb24tPnNldFByaXZhdGVDbGlja01lYXN1
cmVtZW50VG9rZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nKFdURk1vdmUodXJsKSk7CiAgICAgCkBA
IC0yNDc4LDYgKzI1MDksOSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyhQQUw6OgogCiB2b2lkIE5ldHdv
cmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJM
c0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwmJiBzb3VyY2VVUkwsIFVS
TCYmIGRlc3RpbmF0aW9uVVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CisgICAgaWYgKCFhbGxvd3NQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRlc3RG
dW5jdGlvbmFsaXR5KCkpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigpOworCiAg
ICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAg
ICBzZXNzaW9uLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJM
c0ZvclRlc3RpbmcoV1RGTW92ZShzb3VyY2VVUkwpLCBXVEZNb3ZlKGRlc3RpbmF0aW9uVVJMKSk7
CiAKQEAgLTI0ODYsNiArMjUyMCw5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZyhQCiAKIHZvaWQg
TmV0d29ya1Byb2Nlc3M6Om1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JU
ZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogeworICAgIGlmICghYWxsb3dzUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRUZXN0RnVuY3Rpb25hbGl0eSgpKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhh
bmRsZXIoKTsKKwogICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lv
bklEKSkKICAgICAgICAgc2Vzc2lvbi0+bWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhw
aXJlZEZvclRlc3RpbmcoKTsKIApAQCAtMjQ5NCw2ICsyNTMxLDkgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6bWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoUEFM
OjpTZXNzaW8KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UENNRnJhdWRQcmV2ZW50aW9uVmFs
dWVzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyYmIHVubGlua2Fi
bGVUb2tlbiwgU3RyaW5nJiYgc2VjcmV0VG9rZW4sIFN0cmluZyYmIHNpZ25hdHVyZSwgU3RyaW5n
JiYga2V5SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKKyAgICBpZiAoIWFsbG93c1ByaXZhdGVDbGlja01lYXN1cmVtZW50VGVzdEZ1bmN0aW9uYWxp
dHkoKSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCk7CisKICAgICBpZiAoYXV0
byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgIHNlc3Npb24t
PnNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoV1RGTW92ZSh1bmxpbmthYmxl
VG9rZW4pLCBXVEZNb3ZlKHNlY3JldFRva2VuKSwgV1RGTW92ZShzaWduYXR1cmUpLCBXVEZNb3Zl
KGtleUlEKSk7CiAKQEAgLTI1MDIsNiArMjU0Miw5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNl
dFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVu
ZGxlSURGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5nJiYgYXBwQnVu
ZGxlSURGb3JUZXN0aW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CisgICAgaWYgKCFhbGxvd3NQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRlc3RGdW5j
dGlvbmFsaXR5KCkpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigpOworCiAgICAg
aWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICBz
ZXNzaW9uLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhX
VEZNb3ZlKGFwcEJ1bmRsZUlERm9yVGVzdGluZykpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggM2M5NjhiNWVmN2QyNjUyNzYwMzgxOTcy
NGMyMjRiMDllM2M3NTExMi4uMDk0OGQ0MmEwMGZmYzJkZGExYWU5MTkyYmJlNmI4ODg2YTc1NTBh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApA
QCAtMzEzLDYgKzMxMyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3JlUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQoUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
JiYpOwogICAgIHZvaWQgZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KFBBTDo6U2Vzc2lvbklE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpOwogICAgIHZvaWQgY2xlYXJQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudChQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKKyAgICBib29sIGFsbG93c1ByaXZhdGVDbGlja01lYXN1cmVtZW50VGVzdEZ1bmN0
aW9uYWxpdHkoKSBjb25zdDsKICAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3Zl
cnJpZGVUaW1lckZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGJvb2wgdmFsdWUsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBtYXJrQXR0cmlidXRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEVwaGVtZXJhbE1lYXN1cmVtZW50Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgYm9vbCB2YWx1
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlMGQzMDk5NDIyMGNlNGM2ZWRkYmY5YzUxZWY5
YWFlM2IwNDE5NDY1Li4zZDZmMDM1ZjI0ZDgxYWNjM2VlYjAxYWNkMmMxYjE0MDc2ZDdiMjg3IDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMjEtMTItMjAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KKworICAgICAgICBQcmV2ZW50IHRlc3QgZnVuY3Rpb25hbGl0eSBpbiBBZEF0dHJp
YnV0aW9uRGFlbW9uIHdoZW4gbm90IHJ1bm5pbmcgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTI1OAorCisgICAgICAgIFJldmlld2VkIGJ5
IEJyYWR5IEVpZHNvbi4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMv
VGVzdFdlYktpdEFQSS1tYWNPUy1pbnRlcm5hbC5lbnRpdGxlbWVudHM6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9Db25maWd1cmF0aW9ucy9XZWJLaXRUZXN0UnVubmVyLmVudGl0bGVtZW50
czoKKwogMjAyMS0xMi0yMCAgVGltIE5ndXllbiAgPG50aW1AYXBwbGUuY29tPgogCiAgICAgICAg
IFN0b3AgYXNzdW1pbmcgV1BUIGlzIGEgcmVmdGVzdCBiYXNlZCBvbiBleGlzdGVuY2Ugb2YgLXJl
Zi5odG1sIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlv
bnMvVGVzdFdlYktpdEFQSS1pT1MuZW50aXRsZW1lbnRzIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9D
b25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLWlPUy5lbnRpdGxlbWVudHMKaW5kZXggMWU1ZTg3
YTI5YTM0OTIyZWZiNDFjZmFlNmUzYWQ1MDhjZDg2OGE1MS4uNGY5MzA1MGE4YTViNjhhNzA1ZDc0
NjZkYzJlMjE0OTZjYTU3ZGNjNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25m
aWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLWlPUy5lbnRpdGxlbWVudHMKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJLWlPUy5lbnRpdGxlbWVudHMK
QEAgLTEwLDYgKzEwLDggQEAKIAk8dHJ1ZS8+CiAJPGtleT5jb20uYXBwbGUuUGFzdGVib2FyZC5w
YXN0ZS11bmNoZWNrZWQ8L2tleT4KIAk8dHJ1ZS8+CisJPGtleT5jb20uYXBwbGUucHJpdmF0ZS53
ZWJraXQuYWRhdHRyaWJ1dGlvbmQudGVzdGluZzwva2V5PgorCTx0cnVlLz4KIAk8a2V5PmNvbS5h
cHBsZS5wcml2YXRlLndlYmtpdC53ZWJwdXNoPC9rZXk+CiAJPHRydWUvPgogCTxrZXk+Y29tLmFw
cGxlLnByaXZhdGUud2Via2l0LndlYnB1c2guaW5qZWN0PC9rZXk+CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXZWJLaXRBUEktbWFjT1MtaW50ZXJu
YWwuZW50aXRsZW1lbnRzIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0
V2ViS2l0QVBJLW1hY09TLWludGVybmFsLmVudGl0bGVtZW50cwppbmRleCA3ZDQyYjk1MDg2ZTY4
NTQ1NzlmYjZkOTJjNWU2NzJkMWFiN2U0YjAxLi5mYmNjM2ViZjYxYmU3Yzc3YTYxNmZiZjYzNWIz
Njg4M2Q2NDM0OThhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRp
b25zL1Rlc3RXZWJLaXRBUEktbWFjT1MtaW50ZXJuYWwuZW50aXRsZW1lbnRzCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdlYktpdEFQSS1tYWNPUy1pbnRlcm5h
bC5lbnRpdGxlbWVudHMKQEAgLTIsNiArMiw4IEBACiA8IURPQ1RZUEUgcGxpc3QgUFVCTElDICIt
Ly9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1By
b3BlcnR5TGlzdC0xLjAuZHRkIj4KIDxwbGlzdCB2ZXJzaW9uPSIxLjAiPgogPGRpY3Q+CisJPGtl
eT5jb20uYXBwbGUucHJpdmF0ZS53ZWJraXQuYWRhdHRyaWJ1dGlvbmQudGVzdGluZzwva2V5Pgor
CTx0cnVlLz4KIAk8a2V5PmNvbS5hcHBsZS5wcml2YXRlLndlYmtpdC53ZWJwdXNoPC9rZXk+CiAJ
PHRydWUvPgogCTxrZXk+Y29tLmFwcGxlLnByaXZhdGUud2Via2l0LndlYnB1c2guaW5qZWN0PC9r
ZXk+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NvbmZpZ3VyYXRpb25zL1dl
YktpdFRlc3RSdW5uZXIuZW50aXRsZW1lbnRzIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Db25m
aWd1cmF0aW9ucy9XZWJLaXRUZXN0UnVubmVyLmVudGl0bGVtZW50cwppbmRleCBiZTUyMzYyMmVj
YzRjYjcyNjhlZTIyNGE2MDYzNjdlMGE4MmY1OTdiLi4xZDU5ZDI3MGYzYTQ5YTZhY2U5NDAwYzQ3
NmRhYTk4M2JjYzk2M2FjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NvbmZp
Z3VyYXRpb25zL1dlYktpdFRlc3RSdW5uZXIuZW50aXRsZW1lbnRzCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvQ29uZmlndXJhdGlvbnMvV2ViS2l0VGVzdFJ1bm5lci5lbnRpdGxlbWVudHMK
QEAgLTYsNiArNiw4IEBACiAJPGFycmF5PgogCQk8c3RyaW5nPmNvbS5hcHBsZS5XZWJLaXRUZXN0
UnVubmVyPC9zdHJpbmc+CiAJPC9hcnJheT4KKwk8a2V5PmNvbS5hcHBsZS5wcml2YXRlLndlYmtp
dC5hZGF0dHJpYnV0aW9uZC50ZXN0aW5nPC9rZXk+CisJPHRydWUvPgogCTxrZXk+Y29tLmFwcGxl
LnNlY3VyaXR5LnRlbXBvcmFyeS1leGNlcHRpb24uc2JwbDwva2V5PgogCTxhcnJheT4KIAkJPHN0
cmluZz4oYWxsb3cgbWFjaC1pc3N1ZS1leHRlbnNpb24gKHJlcXVpcmUtYWxsIChleHRlbnNpb24t
Y2xhc3MgJnF1b3Q7Y29tLmFwcGxlLndlYmtpdC5leHRlbnNpb24ubWFjaCZxdW90OykpKTwvc3Ry
aW5nPgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Db25maWd1cmF0aW9ucy9X
ZWJLaXRUZXN0UnVubmVyQXBwLWlPUy5lbnRpdGxlbWVudHMgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0NvbmZpZ3VyYXRpb25zL1dlYktpdFRlc3RSdW5uZXJBcHAtaU9TLmVudGl0bGVtZW50cwpp
bmRleCAzOWEwYTAwY2I3MDQxN2U1OWJiNzU1NmY5NWIyOTU5OGZmYWZmNWQ0Li5kZGRmYWFiMDZl
YzgxMmY5NGZlOGQ5OWJiNmIwYTUzMDM4NDBmYjcyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0NvbmZpZ3VyYXRpb25zL1dlYktpdFRlc3RSdW5uZXJBcHAtaU9TLmVudGl0bGVt
ZW50cworKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NvbmZpZ3VyYXRpb25zL1dlYktpdFRl
c3RSdW5uZXJBcHAtaU9TLmVudGl0bGVtZW50cwpAQCAtMTAsNSArMTAsNyBAQAogCTx0cnVlLz4K
IAk8a2V5PmNvbS5hcHBsZS5QYXN0ZWJvYXJkLnBhc3RlLXVuY2hlY2tlZDwva2V5PgogCTx0cnVl
Lz4KKwk8a2V5PmNvbS5hcHBsZS5wcml2YXRlLndlYmtpdC5hZGF0dHJpYnV0aW9uZC50ZXN0aW5n
PC9rZXk+CisJPHRydWUvPgogPC9kaWN0PgogPC9wbGlzdD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>