<?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>171435</bug_id>
          
          <creation_ts>2017-04-28 10:10:51 -0700</creation_ts>
          <short_desc>[iOS] We should not take a background assertion for the UIProcess when app is MobileMail</short_desc>
          <delta_ts>2017-04-28 15:42:01 -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>WebKit2</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>andersca</cc>
    
    <cc>barraclough</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1302630</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-28 10:10:51 -0700</bug_when>
    <thetext>We should not take a background process assertion for the UIProcess when app is MobileMail. Let MobileMail handle its own process assertions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302631</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-28 10:11:07 -0700</bug_when>
    <thetext>&lt;rdar://problem/31132330&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302632</commentid>
    <comment_count>2</comment_count>
      <attachid>308545</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-28 10:13:22 -0700</bug_when>
    <thetext>Created attachment 308545
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302648</commentid>
    <comment_count>3</comment_count>
      <attachid>308545</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-04-28 10:31:27 -0700</bug_when>
    <thetext>Comment on attachment 308545
Patch

Aren&apos;t there lots of apps that will have their own process assertions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302649</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-28 10:33:41 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #3)
&gt; Comment on attachment 308545 [details]
&gt; Patch
&gt; 
&gt; Aren&apos;t there lots of apps that will have their own process assertions?

My understanding is that Mail is special in that it has has an unbounded power assertion (allowing to stay alive as long as it wants in the background).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302650</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-28 10:34:36 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #4)
&gt; (In reply to Geoffrey Garen from comment #3)
&gt; &gt; Comment on attachment 308545 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Aren&apos;t there lots of apps that will have their own process assertions?
&gt; 
&gt; My understanding is that Mail is special in that it has has an unbounded
&gt; power assertion (allowing to stay alive as long as it wants in the
&gt; background).

Normally, having both the app and us taking assertions is not an issue. However, it seems to be an issue for Mail due to the special kind of assertion they are using.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302665</commentid>
    <comment_count>6</comment_count>
      <attachid>308545</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-04-28 10:53:12 -0700</bug_when>
    <thetext>Comment on attachment 308545
Patch

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

It&apos;s still not super clear to me why it&apos;s OK to avoid taking any assertion in Mail. If we&apos;re busy writing to a file, we might not finish.

&gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:215
&gt; +    // There is no need to take UIAssertion if the application is MobileMail and it has its own (rdar://problem/31132330).

I&apos;d change this comment to &quot;Mail has a special entitlement to do unbounded work in the background. Avoid taking an assertion because it might drain the battery&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302669</commentid>
    <comment_count>7</comment_count>
    <who name="">mitz</who>
    <bug_when>2017-04-28 11:00:14 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #6)
&gt; Comment on attachment 308545 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=308545&amp;action=review
&gt; 
&gt; It&apos;s still not super clear to me why it&apos;s OK to avoid taking any assertion
&gt; in Mail. If we&apos;re busy writing to a file, we might not finish.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:215
&gt; &gt; +    // There is no need to take UIAssertion if the application is MobileMail and it has its own (rdar://problem/31132330).
&gt; 
&gt; I&apos;d change this comment to &quot;Mail has a special entitlement to do unbounded
&gt; work in the background. Avoid taking an assertion because it might drain the
&gt; battery&quot;.

Either way it’s phrased, it’s evident that this is a poor way to address the issue. Instead of checking for the presence of the entitlement, or taking an explicit cue from the client app that it wants this behavior, it is making a policy decision based on a correlation that exists in the shipping software, but may not exist in the future. Even worse, if the correlation ceases to exist, there would be no obvious signal to the Mail developers or the WebKit developers that it has happened. That’s why I proposed a different approach when I was asked about this before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302671</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-28 11:04:32 -0700</bug_when>
    <thetext>(In reply to mitz from comment #7)
&gt; (In reply to Geoffrey Garen from comment #6)
&gt; &gt; Comment on attachment 308545 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=308545&amp;action=review
&gt; &gt; 
&gt; &gt; It&apos;s still not super clear to me why it&apos;s OK to avoid taking any assertion
&gt; &gt; in Mail. If we&apos;re busy writing to a file, we might not finish.
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:215
&gt; &gt; &gt; +    // There is no need to take UIAssertion if the application is MobileMail and it has its own (rdar://problem/31132330).
&gt; &gt; 
&gt; &gt; I&apos;d change this comment to &quot;Mail has a special entitlement to do unbounded
&gt; &gt; work in the background. Avoid taking an assertion because it might drain the
&gt; &gt; battery&quot;.
&gt; 
&gt; Either way it’s phrased, it’s evident that this is a poor way to address the
&gt; issue. Instead of checking for the presence of the entitlement, or taking an
&gt; explicit cue from the client app that it wants this behavior, it is making a
&gt; policy decision based on a correlation that exists in the shipping software,
&gt; but may not exist in the future. Even worse, if the correlation ceases to
&gt; exist, there would be no obvious signal to the Mail developers or the WebKit
&gt; developers that it has happened. That’s why I proposed a different approach
&gt; when I was asked about this before.

Ok, I can add SPI for this behavior instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302716</commentid>
    <comment_count>9</comment_count>
      <attachid>308575</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-28 12:41:21 -0700</bug_when>
    <thetext>Created attachment 308575
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302729</commentid>
    <comment_count>10</comment_count>
      <attachid>308581</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-28 12:57:49 -0700</bug_when>
    <thetext>Created attachment 308581
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302730</commentid>
    <comment_count>11</comment_count>
      <attachid>308582</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-28 12:58:49 -0700</bug_when>
    <thetext>Created attachment 308582
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302779</commentid>
    <comment_count>12</comment_count>
      <attachid>308582</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-28 14:05:12 -0700</bug_when>
    <thetext>Comment on attachment 308582
Patch

Dan, is this what you had in mind?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302807</commentid>
    <comment_count>13</comment_count>
    <who name="">mitz</who>
    <bug_when>2017-04-28 14:48:42 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #12)
&gt; Comment on attachment 308582 [details]
&gt; Patch
&gt; 
&gt; Dan, is this what you had in mind?

API-wise it looks good! I have no idea about the implementation :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302810</commentid>
    <comment_count>14</comment_count>
      <attachid>308582</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-28 14:58:09 -0700</bug_when>
    <thetext>Comment on attachment 308582
Patch

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

&gt; Source/WebKit2/UIProcess/ProcessThrottler.cpp:97
&gt; +    if (m_shouldTakeUIBackgroundAssertion)

I basically added a shouldTakeUIBackgroundAssertion ProcessPoolConfiguration flag and based on this flag I take either a ProcessAssertion or a ProcessAndUIAssertion in the ProcessThrottler.
ProcessAssertion was already a base class of ProcessAndUIAssertion but I had to make it virtual so I could use polymorphism here.

I think this is nicer than my previous approach that was claiming to take a ProcessAndUIAssertion but then the implementation would sometimes not take a UI Assertion. Behavior-wise though, this should be equivalent to my previous patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302814</commentid>
    <comment_count>15</comment_count>
      <attachid>308582</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-04-28 15:11:30 -0700</bug_when>
    <thetext>Comment on attachment 308582
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302835</commentid>
    <comment_count>16</comment_count>
      <attachid>308582</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-28 15:41:59 -0700</bug_when>
    <thetext>Comment on attachment 308582
Patch

Clearing flags on attachment: 308582

Committed r215954: &lt;http://trac.webkit.org/changeset/215954&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302836</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-28 15:42:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308545</attachid>
            <date>2017-04-28 10:13:22 -0700</date>
            <delta_ts>2017-04-28 12:41:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171435-20170428101321.patch</filename>
            <type>text/plain</type>
            <size>2029</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1OTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZWNkYmI1MTMxYzdmYzVh
NWVhOWQyYmY1YmZlNGRiOGQzYmY5NGVhNy4uYmY3OTQxNDliMmRjODVlYmIwY2VlYTIyMDkwMmU5
NzNmMzhhZTdkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA0LTI4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gV2Ugc2hvdWxkIG5v
dCB0YWtlIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gZm9yIHRoZSBVSVByb2Nlc3Mgd2hlbiBhcHAg
aXMgTW9iaWxlTWFpbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTcxNDM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTEzMjMzMD4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBzaG91bGQgbm90IHRh
a2UgYSBiYWNrZ3JvdW5kIHByb2Nlc3MgYXNzZXJ0aW9uIGZvciB0aGUgVUlQcm9jZXNzIHdoZW4g
YXBwIGlzIE1vYmlsZU1haWwuCisgICAgICAgIExldCBNb2JpbGVNYWlsIGhhbmRsZSBpdHMgb3du
IHByb2Nlc3MgYXNzZXJ0aW9ucy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fz
c2VydGlvbklPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0FuZFVJQXNzZXJ0aW9uOjp1
cGRhdGVSdW5JbkJhY2tncm91bmRDb3VudCk6CisKIDIwMTctMDQtMjggIEJyYWR5IEVpZHNvbiAg
PGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFRlYWNoIFdlYlByb2Nlc3NQb29sIHRvIHRy
YWNrIGEgbWFwIG9mIFNlc3Npb25JRHMgdG8gV2ViUGFnZVByb3h5cyB0byBtYW5hZ2UgdGhlaXIg
bGlmZXRpbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUHJvY2Vz
c0Fzc2VydGlvbklPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fz
c2VydGlvbklPUy5tbQppbmRleCA2YjIyNDAxNzFmMDMxYWIwM2NjMzcxMTk0YjZiYTNkZDg1MzRk
ODg3Li5mZTEzYjI5MzVkODM3ZWMyZjNmMDkzMTQ5ZmIzNGJjNzdmOGRhNTZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tCkBA
IC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJBc3NlcnRpb25TZXJ2aWNlc1NQSS5oIgogI2ltcG9y
dCAiTG9nZ2luZy5oIgogI2ltcG9ydCA8VUlLaXQvVUlBcHBsaWNhdGlvbi5oPgorI2ltcG9ydCA8
V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPHd0Zi9IYXNoU2V0
Lmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgpAQCAt
MjExLDYgKzIxMiwxMCBAQCB2b2lkIFByb2Nlc3NBc3NlcnRpb246OnNldFN0YXRlKEFzc2VydGlv
blN0YXRlIGFzc2VydGlvblN0YXRlKQogCiB2b2lkIFByb2Nlc3NBbmRVSUFzc2VydGlvbjo6dXBk
YXRlUnVuSW5CYWNrZ3JvdW5kQ291bnQoKQogeworICAgIC8vIFRoZXJlIGlzIG5vIG5lZWQgdG8g
dGFrZSBVSUFzc2VydGlvbiBpZiB0aGUgYXBwbGljYXRpb24gaXMgTW9iaWxlTWFpbCBhbmQgaXQg
aGFzIGl0cyBvd24gKHJkYXI6Ly9wcm9ibGVtLzMxMTMyMzMwKS4KKyAgICBpZiAoV2ViQ29yZTo6
SU9TQXBwbGljYXRpb246OmlzTW9iaWxlTWFpbCgpKQorICAgICAgICByZXR1cm47CisKICAgICBi
b29sIHNob3VsZEhvbGRCYWNrZ3JvdW5kQXNzZXJ0aW9uID0gdmFsaWRpdHkoKSAhPSBWYWxpZGl0
eTo6Tm8gJiYgc3RhdGUoKSAhPSBBc3NlcnRpb25TdGF0ZTo6U3VzcGVuZGVkOwogCiAgICAgaWYg
KHNob3VsZEhvbGRCYWNrZ3JvdW5kQXNzZXJ0aW9uKSB7Cg==
</data>
<flag name="review"
          id="329697"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308575</attachid>
            <date>2017-04-28 12:41:21 -0700</date>
            <delta_ts>2017-04-28 12:57:47 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>171435_MobileMail_wip.patch</filename>
            <type>text/plain</type>
            <size>12490</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBlY2RiYjUxMzFjNy4uYmY3OTQxNDliMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNy0wNC0yOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFtpT1NdIFdlIHNob3VsZCBub3QgdGFrZSBhIGJhY2tncm91bmQgYXNzZXJ0aW9u
IGZvciB0aGUgVUlQcm9jZXNzIHdoZW4gYXBwIGlzIE1vYmlsZU1haWwKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTQzNQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMzExMzIzMzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2Ugc2hvdWxkIG5vdCB0YWtlIGEgYmFja2dyb3VuZCBwcm9jZXNzIGFzc2Vy
dGlvbiBmb3IgdGhlIFVJUHJvY2VzcyB3aGVuIGFwcCBpcyBNb2JpbGVNYWlsLgorICAgICAgICBM
ZXQgTW9iaWxlTWFpbCBoYW5kbGUgaXRzIG93biBwcm9jZXNzIGFzc2VydGlvbnMuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW06CisgICAgICAgIChXZWJL
aXQ6OlByb2Nlc3NBbmRVSUFzc2VydGlvbjo6dXBkYXRlUnVuSW5CYWNrZ3JvdW5kQ291bnQpOgor
CiAyMDE3LTA0LTI4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBUZWFjaCBXZWJQcm9jZXNzUG9vbCB0byB0cmFjayBhIG1hcCBvZiBTZXNzaW9uSURzIHRvIFdl
YlBhZ2VQcm94eXMgdG8gbWFuYWdlIHRoZWlyIGxpZmV0aW1lCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5j
cHAKaW5kZXggZDc2ZGZiYjdhYzMuLjIzMzhiYTNhM2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24u
Y3BwCkBAIC0xMTgsNiArMTE4LDcgQEAgUmVmPFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbj4gUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uOjpjb3B5KCkKICAgICBjb3B5LT5tX3NvdXJjZUFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllciA9IHRoaXMtPm1fc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVu
dGlmaWVyOwogICAgIGNvcHktPm1fc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVy
ID0gdGhpcy0+bV9zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXI7CiAgICAgY29w
eS0+bV9hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkgPSB0aGlzLT5tX2Fsd2F5c1J1bnNB
dEJhY2tncm91bmRQcmlvcml0eTsKKyAgICBjb3B5LT5tX3Nob3VsZFRha2VVSUJhY2tncm91bmRB
c3NlcnRpb24gPSB0aGlzLT5tX3Nob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb247CiAgICAg
Y29weS0+bV9zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyA9IHRoaXMtPm1fc2hvdWxkQ2Fw
dHVyZUF1ZGlvSW5VSVByb2Nlc3M7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGNvcHktPm1fY3RE
YXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlID0gdGhpcy0+bV9jdERhdGFDb25uZWN0aW9uU2Vydmlj
ZVR5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVByb2Nl
c3NQb29sQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElQ
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAppbmRleCA3MTNjOTFmYTIyZC4uZTQ0MmIxMzZmYmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24uaApAQCAtMTIwLDYgKzEyMCw5IEBAIHB1YmxpYzoKICAgICBi
b29sIGFsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fYWx3
YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5OyB9CiAgICAgdm9pZCBzZXRBbHdheXNSdW5zQXRC
YWNrZ3JvdW5kUHJpb3JpdHkoYm9vbCBhbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkpIHsg
bV9hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkgPSBhbHdheXNSdW5zQXRCYWNrZ3JvdW5k
UHJpb3JpdHk7IH0KIAorICAgIGJvb2wgc2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbigp
IGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbjsgfQorICAg
IHZvaWQgc2V0U2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbihib29sIHNob3VsZFRha2VV
SUJhY2tncm91bmRBc3NlcnRpb24pIHsgbV9zaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9u
ID0gc2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbjsgfQorCiAgICAgYm9vbCBzaG91bGRD
YXB0dXJlQXVkaW9JblVJUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2FwdHVyZUF1
ZGlvSW5VSVByb2Nlc3M7IH0KICAgICB2b2lkIHNldFNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9j
ZXNzKGJvb2wgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MpIHsgbV9zaG91bGRDYXB0dXJl
QXVkaW9JblVJUHJvY2VzcyA9IHNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzOyB9CiAKQEAg
LTE1Nyw2ICsxNjAsNyBAQCBwcml2YXRlOgogICAgIFdURjo6U3RyaW5nIG1fc291cmNlQXBwbGlj
YXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOwogICAgIGJvb2wgbV9hbGxvd3NDZWxsdWxhckFjY2Vz
cyB7IHRydWUgfTsKICAgICBib29sIG1fYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5IHsg
ZmFsc2UgfTsKKyAgICBib29sIG1fc2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbiB7IHRy
dWUgfTsKICAgICBib29sIG1fc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MgeyBmYWxzZSB9
OwogI2lmIFBMQVRGT1JNKElPUykKICAgICBXVEY6OlN0cmluZyBtX2N0RGF0YUNvbm5lY3Rpb25T
ZXJ2aWNlVHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCmluZGV4IDc0Y2JkYmEy
MTM1Li5lYjUyZGQyZDc0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCkBAIC01
NCw2ICs1NCw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkK
ICNpZiBUQVJHRVRfT1NfSVBIT05FCiBAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNv
cHkpIE5TU3RyaW5nICpDVERhdGFDb25uZWN0aW9uU2VydmljZVR5cGUgV0tfQVBJX0FWQUlMQUJM
RShpb3MoV0tfSU9TX1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWx3YXlzUnVu
c0F0QmFja2dyb3VuZFByaW9yaXR5IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHNob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRp
b24gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogI2VuZGlmCiAKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1By
b2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbQppbmRleCBmMWJjNWIyMDEyZi4uMTBkMjgxMjVhMjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCkBAIC0yMzgsNiArMjM4LDE2IEBA
CiB7CiAgICAgX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+c2V0QWx3YXlzUnVuc0F0QmFja2dy
b3VuZFByaW9yaXR5KGFsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eSk7CiB9CisKKy0gKEJP
T0wpc2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbgoreworICAgIHJldHVybiBfcHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uLT5zaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9uKCk7Cit9
CisKKy0gKHZvaWQpc2V0U2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbjooQk9PTClzaG91
bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9uCit7CisgICAgcmV0dXJuIF9wcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24tPnNldFNob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24oc2hvdWxkVGFr
ZVVJQmFja2dyb3VuZEFzc2VydGlvbik7Cit9CiAjZW5kaWYKIAogLSAoTlNTdHJpbmcgKilkZXNj
cmlwdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBhOGVhOGM3MzcyNC4uZGIxNTk5NWFkNzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwCkBAIC02OSw3ICs2OSw3IEBAIE5ldHdvcmtQcm9jZXNzUHJveHk6Ok5l
dHdvcmtQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sKQogICAgICwgbV9w
cm9jZXNzUG9vbChwcm9jZXNzUG9vbCkKICAgICAsIG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1
ZXN0cygwKQogICAgICwgbV9jdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eSh0aGlzLCBwcm9jZXNz
UG9vbCkKLSAgICAsIG1fdGhyb3R0bGVyKCp0aGlzKQorICAgICwgbV90aHJvdHRsZXIoKnRoaXMs
IHByb2Nlc3NQb29sLnNob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24oKSkKIHsKICAgICBj
b25uZWN0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUHJvY2Vz
c0Fzc2VydGlvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24u
aAppbmRleCBlMDU0YWZmZThhZC4uZmFjODYzMjZjMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uaApAQCAtNTIsMTMgKzUyLDEzIEBAIHB1YmxpYzoKIGNs
YXNzIFByb2Nlc3NBc3NlcnRpb24gewogcHVibGljOgogICAgIFByb2Nlc3NBc3NlcnRpb24ocGlk
X3QsIEFzc2VydGlvblN0YXRlLCBGdW5jdGlvbjx2b2lkKCk+JiYgaW52YWxpZGF0aW9uQ2FsbGJh
Y2sgPSB7IH0pOwotICAgIH5Qcm9jZXNzQXNzZXJ0aW9uKCk7CisgICAgdmlydHVhbCB+UHJvY2Vz
c0Fzc2VydGlvbigpOwogCi0gICAgdm9pZCBzZXRDbGllbnQoUHJvY2Vzc0Fzc2VydGlvbkNsaWVu
dCYgY2xpZW50KSB7IG1fY2xpZW50ID0gJmNsaWVudDsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRD
bGllbnQoUHJvY2Vzc0Fzc2VydGlvbkNsaWVudCYgY2xpZW50KSB7IG1fY2xpZW50ID0gJmNsaWVu
dDsgfQogICAgIFByb2Nlc3NBc3NlcnRpb25DbGllbnQqIGNsaWVudCgpIHsgcmV0dXJuIG1fY2xp
ZW50OyB9CiAKICAgICBBc3NlcnRpb25TdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXNz
ZXJ0aW9uU3RhdGU7IH0KLSAgICB2b2lkIHNldFN0YXRlKEFzc2VydGlvblN0YXRlKTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0U3RhdGUoQXNzZXJ0aW9uU3RhdGUpOwogCiAjaWYgUExBVEZPUk0oSU9T
KSAmJiAhUExBVEZPUk0oSU9TX1NJTVVMQVRPUikKIHByb3RlY3RlZDoKQEAgLTgwLDE0ICs4MCwx
NCBAQCBwcml2YXRlOgogICAgIFByb2Nlc3NBc3NlcnRpb25DbGllbnQqIG1fY2xpZW50IHsgbnVs
bHB0ciB9OwogfTsKICAgICAKLWNsYXNzIFByb2Nlc3NBbmRVSUFzc2VydGlvbiA6IHB1YmxpYyBQ
cm9jZXNzQXNzZXJ0aW9uIHsKK2NsYXNzIFByb2Nlc3NBbmRVSUFzc2VydGlvbiBmaW5hbCA6IHB1
YmxpYyBQcm9jZXNzQXNzZXJ0aW9uIHsKIHB1YmxpYzoKICAgICBQcm9jZXNzQW5kVUlBc3NlcnRp
b24ocGlkX3QsIEFzc2VydGlvblN0YXRlKTsKICAgICB+UHJvY2Vzc0FuZFVJQXNzZXJ0aW9uKCk7
CiAKLSAgICB2b2lkIHNldENsaWVudChQcm9jZXNzQXNzZXJ0aW9uQ2xpZW50Jik7CisgICAgdm9p
ZCBzZXRDbGllbnQoUHJvY2Vzc0Fzc2VydGlvbkNsaWVudCYpIGZpbmFsOwogCi0gICAgdm9pZCBz
ZXRTdGF0ZShBc3NlcnRpb25TdGF0ZSk7CisgICAgdm9pZCBzZXRTdGF0ZShBc3NlcnRpb25TdGF0
ZSkgZmluYWw7CiAKICNpZiBQTEFURk9STShJT1MpICYmICFQTEFURk9STShJT1NfU0lNVUxBVE9S
KQogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qcm9jZXNz
VGhyb3R0bGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVy
LmNwcAppbmRleCAwOTM4NjNjMTFjZC4uNjZmNDRkZmJhMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKQEAgLTMzLDEyICszMywxMiBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKICAgICAKIHN0YXRpYyBjb25zdCBTZWNvbmRzIHByb2Nlc3NTdXNwZW5z
aW9uVGltZW91dCB7IDMwX3MgfTsKICAgICAKLVByb2Nlc3NUaHJvdHRsZXI6OlByb2Nlc3NUaHJv
dHRsZXIoUHJvY2Vzc1Rocm90dGxlckNsaWVudCYgcHJvY2VzcykKK1Byb2Nlc3NUaHJvdHRsZXI6
OlByb2Nlc3NUaHJvdHRsZXIoUHJvY2Vzc1Rocm90dGxlckNsaWVudCYgcHJvY2VzcywgYm9vbCBz
aG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9uKQogICAgIDogbV9wcm9jZXNzKHByb2Nlc3Mp
CiAgICAgLCBtX3N1c3BlbmRUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZQcm9jZXNzVGhy
b3R0bGVyOjpzdXNwZW5kVGltZXJGaXJlZCkKICAgICAsIG1fZm9yZWdyb3VuZENvdW50ZXIoW3Ro
aXNdKFJlZkNvdW50ZXJFdmVudCkgeyB1cGRhdGVBc3NlcnRpb24oKTsgfSkKICAgICAsIG1fYmFj
a2dyb3VuZENvdW50ZXIoW3RoaXNdKFJlZkNvdW50ZXJFdmVudCkgeyB1cGRhdGVBc3NlcnRpb24o
KTsgfSkKLSAgICAsIG1fc3VzcGVuZE1lc3NhZ2VDb3VudCgwKQorICAgICwgbV9zaG91bGRUYWtl
VUlCYWNrZ3JvdW5kQXNzZXJ0aW9uKHNob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24pCiB7
CiB9CiAgICAgCkBAIC05NCw3ICs5NCwxMCBAQCB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OnVwZGF0
ZUFzc2VydGlvbigpCiB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OmRpZENvbm5lY3RUb1Byb2Nlc3Mo
cGlkX3QgcGlkKQogewogICAgIG1fc3VzcGVuZFRpbWVyLnN0b3AoKTsKLSAgICBtX2Fzc2VydGlv
biA9IHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc0FuZFVJQXNzZXJ0aW9uPihwaWQsIGFzc2VydGlv
blN0YXRlKCkpOworICAgIGlmIChtX3Nob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24pCisg
ICAgICAgIG1fYXNzZXJ0aW9uID0gc3RkOjptYWtlX3VuaXF1ZTxQcm9jZXNzQW5kVUlBc3NlcnRp
b24+KHBpZCwgYXNzZXJ0aW9uU3RhdGUoKSk7CisgICAgZWxzZQorICAgICAgICBtX2Fzc2VydGlv
biA9IHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4ocGlkLCBhc3NlcnRpb25TdGF0
ZSgpKTsKICAgICBtX3Byb2Nlc3MuZGlkU2V0QXNzZXJ0aW9uU3RhdGUoYXNzZXJ0aW9uU3RhdGUo
KSk7CiAgICAgbV9hc3NlcnRpb24tPnNldENsaWVudCgqdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuaAppbmRleCAyOWY1OGExMGZlYy4uY2IxYTRm
MjZlYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0
bGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuaApA
QCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBSZWZDb3VudGVyPEJhY2tncm91
bmRBY3Rpdml0eUNvdW50ZXJUeXBlPiBCYWNrZ3JvdW5kQWN0aXZpdHlDb3VudGVyOwogICAgIHR5
cGVkZWYgQmFja2dyb3VuZEFjdGl2aXR5Q291bnRlcjo6VG9rZW4gQmFja2dyb3VuZEFjdGl2aXR5
VG9rZW47CiAKLSAgICBQcm9jZXNzVGhyb3R0bGVyKFByb2Nlc3NUaHJvdHRsZXJDbGllbnQmKTsK
KyAgICBQcm9jZXNzVGhyb3R0bGVyKFByb2Nlc3NUaHJvdHRsZXJDbGllbnQmLCBib29sIHNob3Vs
ZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24pOwogCiAgICAgaW5saW5lIEZvcmVncm91bmRBY3Rp
dml0eVRva2VuIGZvcmVncm91bmRBY3Rpdml0eVRva2VuKCkgY29uc3Q7CiAgICAgaW5saW5lIEJh
Y2tncm91bmRBY3Rpdml0eVRva2VuIGJhY2tncm91bmRBY3Rpdml0eVRva2VuKCkgY29uc3Q7CkBA
IC03MCwxMSArNzAsMTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFzc2VydGlvbldpbGxFeHBpcmVJ
bW1pbmVudGx5KCkgb3ZlcnJpZGU7CiAKICAgICBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50JiBtX3By
b2Nlc3M7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NBbmRVSUFzc2VydGlvbj4gbV9hc3Nl
cnRpb247CisgICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NBc3NlcnRpb24+IG1fYXNzZXJ0aW9u
OwogICAgIFJ1bkxvb3A6OlRpbWVyPFByb2Nlc3NUaHJvdHRsZXI+IG1fc3VzcGVuZFRpbWVyOwog
ICAgIEZvcmVncm91bmRBY3Rpdml0eUNvdW50ZXIgbV9mb3JlZ3JvdW5kQ291bnRlcjsKICAgICBC
YWNrZ3JvdW5kQWN0aXZpdHlDb3VudGVyIG1fYmFja2dyb3VuZENvdW50ZXI7Ci0gICAgaW50IG1f
c3VzcGVuZE1lc3NhZ2VDb3VudDsKKyAgICBpbnQgbV9zdXNwZW5kTWVzc2FnZUNvdW50IHsgMCB9
OworICAgIGJvb2wgbV9zaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9uOwogfTsKIAogaW5s
aW5lIFByb2Nlc3NUaHJvdHRsZXI6OkZvcmVncm91bmRBY3Rpdml0eVRva2VuIFByb2Nlc3NUaHJv
dHRsZXI6OmZvcmVncm91bmRBY3Rpdml0eVRva2VuKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IGVlNDg0N2M5MWY4Li41Yjg3OWVlNTgx
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0y
NDAsNiArMjQwLDcgQEAgV2ViUHJvY2Vzc1Bvb2w6OldlYlByb2Nlc3NQb29sKEFQSTo6UHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogICAgICwgbV9kaWROZXR3b3JrUHJv
Y2Vzc0NyYXNoKGZhbHNlKQogICAgICwgbV9tZW1vcnlDYWNoZURpc2FibGVkKGZhbHNlKQogICAg
ICwgbV9hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkobV9jb25maWd1cmF0aW9uLT5hbHdh
eXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkoKSkKKyAgICAsIG1fc2hvdWxkVGFrZVVJQmFja2dy
b3VuZEFzc2VydGlvbihtX2NvbmZpZ3VyYXRpb24tPnNob3VsZFRha2VVSUJhY2tncm91bmRBc3Nl
cnRpb24oKSkKICAgICAsIG1fdXNlck9ic2VydmFibGVQYWdlQ291bnRlcihbdGhpc10oUmVmQ291
bnRlckV2ZW50KSB7IHVwZGF0ZVByb2Nlc3NTdXBwcmVzc2lvblN0YXRlKCk7IH0pCiAgICAgLCBt
X3Byb2Nlc3NTdXBwcmVzc2lvbkRpc2FibGVkRm9yUGFnZUNvdW50ZXIoW3RoaXNdKFJlZkNvdW50
ZXJFdmVudCkgeyB1cGRhdGVQcm9jZXNzU3VwcHJlc3Npb25TdGF0ZSgpOyB9KQogICAgICwgbV9o
aWRkZW5QYWdlVGhyb3R0bGluZ0F1dG9JbmNyZWFzZXNDb3VudGVyKFt0aGlzXShSZWZDb3VudGVy
RXZlbnQpIHsgbV9oaWRkZW5QYWdlVGhyb3R0bGluZ1RpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOyB9
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCA0NTYyNjAw
Mjc3Yy4uYjUzY2Q4MTNlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5oCkBAIC0zOTQsNyArMzk0LDggQEAgcHVibGljOgogICAgIGJvb2wgcmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0VuYWJsZWQoKSB7IHJldHVybiBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFi
bGVkOyB9CiAgICAgdm9pZCBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChib29sIGVu
YWJsZWQpIHsgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCA9IGVuYWJsZWQ7IH0KIAot
ICAgIGJvb2wgYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5KCkgeyByZXR1cm4gbV9hbHdh
eXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHk7IH0KKyAgICBib29sIGFsd2F5c1J1bnNBdEJhY2tn
cm91bmRQcmlvcml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fYWx3YXlzUnVuc0F0QmFja2dyb3VuZFBy
aW9yaXR5OyB9CisgICAgYm9vbCBzaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV9zaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9uOyB9CiAKICNpZiBF
TkFCTEUoR0FNRVBBRCkKICAgICB2b2lkIGdhbWVwYWRDb25uZWN0ZWQoY29uc3QgVUlHYW1lcGFk
Jik7CkBAIC01NzQsNiArNTc1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fcmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0VuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9qYXZhU2NyaXB0Q29uZmln
dXJhdGlvbkZpbGVFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fYWx3YXlzUnVuc0F0QmFj
a2dyb3VuZFByaW9yaXR5OworICAgIGJvb2wgbV9zaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0
aW9uOwogCiAgICAgVXNlck9ic2VydmFibGVQYWdlQ291bnRlciBtX3VzZXJPYnNlcnZhYmxlUGFn
ZUNvdW50ZXI7CiAgICAgUHJvY2Vzc1N1cHByZXNzaW9uRGlzYWJsZWRDb3VudGVyIG1fcHJvY2Vz
c1N1cHByZXNzaW9uRGlzYWJsZWRGb3JQYWdlQ291bnRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggZDE1MTE0ZDI5ZTEuLjM4ZjY3ZmUwOTJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAt
MTAyLDcgKzEwMiw3IEBAIFdlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nl
c3NQb29sJiBwcm9jZXNzUG9vbCwgV2Vic2l0ZURhdGFTdG9yZSYKICAgICAsIG1fcHJvY2Vzc1Bv
b2wocHJvY2Vzc1Bvb2wpCiAgICAgLCBtX21heUhhdmVVbml2ZXJzYWxGaWxlUmVhZFNhbmRib3hF
eHRlbnNpb24oZmFsc2UpCiAgICAgLCBtX251bWJlck9mVGltZXNTdWRkZW5UZXJtaW5hdGlvbldh
c0Rpc2FibGVkKDApCi0gICAgLCBtX3Rocm90dGxlcigqdGhpcykKKyAgICAsIG1fdGhyb3R0bGVy
KCp0aGlzLCBwcm9jZXNzUG9vbC5zaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9uKCkpCiAg
ICAgLCBtX2lzUmVzcG9uc2l2ZShOb09yTWF5YmU6Ok1heWJlKQogICAgICwgbV92aXNpYmxlUGFn
ZUNvdW50ZXIoW3RoaXNdKFJlZkNvdW50ZXJFdmVudCkgeyB1cGRhdGVCYWNrZ3JvdW5kUmVzcG9u
c2l2ZW5lc3NUaW1lcigpOyB9KQogICAgICwgbV93ZWJzaXRlRGF0YVN0b3JlKHdlYnNpdGVEYXRh
U3RvcmUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308581</attachid>
            <date>2017-04-28 12:57:49 -0700</date>
            <delta_ts>2017-04-28 12:58:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171435-20170428125748.patch</filename>
            <type>text/plain</type>
            <size>14743</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1OTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZWNkYmI1MTMxYzdmYzVh
NWVhOWQyYmY1YmZlNGRiOGQzYmY5NGVhNy4uYmZiMWY1MzgxZjEwM2E5MjllMTM4NGVhMmFlZGFl
NTU0YThkMjU4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE3LTA0LTI4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gV2Ugc2hvdWxkIG5v
dCB0YWtlIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gZm9yIHRoZSBVSVByb2Nlc3Mgd2hlbiBhcHAg
aXMgTW9iaWxlTWFpbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTcxNDM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTEzMjMzMD4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgU1BJIHRvIGRpc2Fi
bGUgdGFraW5nIG9uIGJhY2tncm91bmQgcHJvY2VzcyBhc3NlcnRpb25zIGluIHRoZSBVSVByb2Nl
c3MuCisgICAgICAgIFRoaXMgaXMgdXNlZnVsIGZvciBNb2JpbGVNYWlsLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAo
QVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246OmNvcHkpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbToKKyAgICAgICAg
KC1bX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHNob3VsZFRha2VVSUJhY2tncm91bmRBc3Nl
cnRpb25dKToKKyAgICAgICAgKC1bX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHNldFNob3Vs
ZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb246XSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzUHJveHk6Ok5ldHdvcmtQcm9jZXNzUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm9j
ZXNzQXNzZXJ0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246OnNldENs
aWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjpQcm9jZXNzVGhyb3R0bGVyKToKKyAgICAgICAg
KFdlYktpdDo6bV9zaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6UHJvY2Vzc1Rocm90dGxlcjo6ZGlkQ29ubmVjdFRvUHJvY2Vzcyk6CisgICAgICAgICog
VUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6V2ViUHJvY2Vz
c1Bvb2wpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eSk6CisKKzIwMTctMDQtMjggIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBXZSBzaG91bGQgbm90IHRha2UgYSBi
YWNrZ3JvdW5kIGFzc2VydGlvbiBmb3IgdGhlIFVJUHJvY2VzcyB3aGVuIGFwcCBpcyBNb2JpbGVN
YWlsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE0
MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxMTMyMzMwPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHNob3VsZCBub3QgdGFrZSBhIGJhY2tn
cm91bmQgcHJvY2VzcyBhc3NlcnRpb24gZm9yIHRoZSBVSVByb2Nlc3Mgd2hlbiBhcHAgaXMgTW9i
aWxlTWFpbC4KKyAgICAgICAgTGV0IE1vYmlsZU1haWwgaGFuZGxlIGl0cyBvd24gcHJvY2VzcyBh
c3NlcnRpb25zLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9T
Lm1tOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzQW5kVUlBc3NlcnRpb246OnVwZGF0ZVJ1bklu
QmFja2dyb3VuZENvdW50KToKKwogMjAxNy0wNC0yOCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgVGVhY2ggV2ViUHJvY2Vzc1Bvb2wgdG8gdHJhY2sgYSBtYXAg
b2YgU2Vzc2lvbklEcyB0byBXZWJQYWdlUHJveHlzIHRvIG1hbmFnZSB0aGVpciBsaWZldGltZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGQ3NmRmYmI3YWMzODZkMDgzMmU1ZTM2YTg0ODA2
YmY2NzEyMTdkMTUuLjIzMzhiYTNhM2E0MGI0YzhlZjhiY2M4Nzg0MjViYTJhYmIzYTVjNTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVByb2Nl
c3NQb29sQ29uZmlndXJhdGlvbi5jcHAKQEAgLTExOCw2ICsxMTgsNyBAQCBSZWY8UHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uPiBQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246OmNvcHkoKQogICAgIGNv
cHktPm1fc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyID0gdGhpcy0+bV9zb3VyY2VB
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI7CiAgICAgY29weS0+bV9zb3VyY2VBcHBsaWNhdGlv
blNlY29uZGFyeUlkZW50aWZpZXIgPSB0aGlzLT5tX3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5
SWRlbnRpZmllcjsKICAgICBjb3B5LT5tX2Fsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eSA9
IHRoaXMtPm1fYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5OworICAgIGNvcHktPm1fc2hv
dWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbiA9IHRoaXMtPm1fc2hvdWxkVGFrZVVJQmFja2dy
b3VuZEFzc2VydGlvbjsKICAgICBjb3B5LT5tX3Nob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNz
ID0gdGhpcy0+bV9zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzczsKICNpZiBQTEFURk9STShJ
T1MpCiAgICAgY29weS0+bV9jdERhdGFDb25uZWN0aW9uU2VydmljZVR5cGUgPSB0aGlzLT5tX2N0
RGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCmluZGV4IDcxM2M5
MWZhMjJkZmE0NmI1MDAzMGE1NmVmMWM3NjYwNTMxODUxYWIuLmU0NDJiMTM2ZmJhZDc5YTE2ODg5
NmJjZGUwYmJjYTlmMWJiOGQ1YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaApAQCAtMTIwLDYgKzEy
MCw5IEBAIHB1YmxpYzoKICAgICBib29sIGFsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eSgp
IGNvbnN0IHsgcmV0dXJuIG1fYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5OyB9CiAgICAg
dm9pZCBzZXRBbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkoYm9vbCBhbHdheXNSdW5zQXRC
YWNrZ3JvdW5kUHJpb3JpdHkpIHsgbV9hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkgPSBh
bHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHk7IH0KIAorICAgIGJvb2wgc2hvdWxkVGFrZVVJ
QmFja2dyb3VuZEFzc2VydGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkVGFrZVVJQmFja2dy
b3VuZEFzc2VydGlvbjsgfQorICAgIHZvaWQgc2V0U2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2Vy
dGlvbihib29sIHNob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24pIHsgbV9zaG91bGRUYWtl
VUlCYWNrZ3JvdW5kQXNzZXJ0aW9uID0gc2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbjsg
fQorCiAgICAgYm9vbCBzaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcygpIGNvbnN0IHsgcmV0
dXJuIG1fc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3M7IH0KICAgICB2b2lkIHNldFNob3Vs
ZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzKGJvb2wgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nl
c3MpIHsgbV9zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyA9IHNob3VsZENhcHR1cmVBdWRp
b0luVUlQcm9jZXNzOyB9CiAKQEAgLTE1Nyw2ICsxNjAsNyBAQCBwcml2YXRlOgogICAgIFdURjo6
U3RyaW5nIG1fc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOwogICAgIGJvb2wg
bV9hbGxvd3NDZWxsdWxhckFjY2VzcyB7IHRydWUgfTsKICAgICBib29sIG1fYWx3YXlzUnVuc0F0
QmFja2dyb3VuZFByaW9yaXR5IHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2hvdWxkVGFrZVVJQmFj
a2dyb3VuZEFzc2VydGlvbiB7IHRydWUgfTsKICAgICBib29sIG1fc2hvdWxkQ2FwdHVyZUF1ZGlv
SW5VSVByb2Nlc3MgeyBmYWxzZSB9OwogI2lmIFBMQVRGT1JNKElPUykKICAgICBXVEY6OlN0cmlu
ZyBtX2N0RGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5oCmluZGV4IDc0Y2JkYmEyMTM1MGRmODZlNjhkZjVjNGM0ZWQ1NWMwZjc3ZDgxOTEuLmVi
NTJkZDJkNzRhODIzNjE3NzI2NmRjYjNlZmM2MGU1ZjY2ZmMzYmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24uaApAQCAtNTQsNiArNTQsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFj
b3N4KDEwLjEwKSwgaW9zKDguMCkpCiAjaWYgVEFSR0VUX09TX0lQSE9ORQogQHByb3BlcnR5IChu
b25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqQ1REYXRhQ29ubmVjdGlvblNlcnZp
Y2VUeXBlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljKSBCT09MIGFsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eSBXS19BUElfQVZBSUxB
QkxFKGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBzaG91bGRU
YWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEp
KTsKICNlbmRpZgogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KaW5kZXggZjFi
YzViMjAxMmZjYjZiNWU4N2I4Yjk4NjYwOWY0MmY5NmJhNzVlYy4uMTBkMjgxMjVhMjAxOTJiZWU3
N2ZhN2Q1NDk5Yzk2ZWU4MmNkODZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24u
bW0KQEAgLTIzOCw2ICsyMzgsMTYgQEAKIHsKICAgICBfcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
LT5zZXRBbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkoYWx3YXlzUnVuc0F0QmFja2dyb3Vu
ZFByaW9yaXR5KTsKIH0KKworLSAoQk9PTClzaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9u
Cit7CisgICAgcmV0dXJuIF9wcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24tPnNob3VsZFRha2VVSUJh
Y2tncm91bmRBc3NlcnRpb24oKTsKK30KKworLSAodm9pZClzZXRTaG91bGRUYWtlVUlCYWNrZ3Jv
dW5kQXNzZXJ0aW9uOihCT09MKXNob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24KK3sKKyAg
ICByZXR1cm4gX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+c2V0U2hvdWxkVGFrZVVJQmFja2dy
b3VuZEFzc2VydGlvbihzaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9uKTsKK30KICNlbmRp
ZgogCiAtIChOU1N0cmluZyAqKWRlc2NyaXB0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGE4ZWE4
YzczNzI0ZmZjNWY5MzliZjcxYTcwY2Q3ZDRkZDMxMzU5NjMuLmRiMTU5OTVhZDc0YjNjMjQ3Y2Vl
MzY1YzA0MDk5ZjU5ZTBjZjA1NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC02OSw3ICs2OSw3IEBA
IE5ldHdvcmtQcm9jZXNzUHJveHk6Ok5ldHdvcmtQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wm
IHByb2Nlc3NQb29sKQogICAgICwgbV9wcm9jZXNzUG9vbChwcm9jZXNzUG9vbCkKICAgICAsIG1f
bnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0cygwKQogICAgICwgbV9jdXN0b21Qcm90b2NvbE1h
bmFnZXJQcm94eSh0aGlzLCBwcm9jZXNzUG9vbCkKLSAgICAsIG1fdGhyb3R0bGVyKCp0aGlzKQor
ICAgICwgbV90aHJvdHRsZXIoKnRoaXMsIHByb2Nlc3NQb29sLnNob3VsZFRha2VVSUJhY2tncm91
bmRBc3NlcnRpb24oKSkKIHsKICAgICBjb25uZWN0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uaAppbmRleCBlMDU0YWZmZThhZDI5Yzg5ODAyZjBhYTBh
YWIxNjk3NDM4MmFjODlkLi5mYWM4NjMyNmMxNWUxNzZhOTI4NDJmNTIyYzlmNTU1NjU1NzY3ZTI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmgKQEAgLTUy
LDEzICs1MiwxMyBAQCBwdWJsaWM6CiBjbGFzcyBQcm9jZXNzQXNzZXJ0aW9uIHsKIHB1YmxpYzoK
ICAgICBQcm9jZXNzQXNzZXJ0aW9uKHBpZF90LCBBc3NlcnRpb25TdGF0ZSwgRnVuY3Rpb248dm9p
ZCgpPiYmIGludmFsaWRhdGlvbkNhbGxiYWNrID0geyB9KTsKLSAgICB+UHJvY2Vzc0Fzc2VydGlv
bigpOworICAgIHZpcnR1YWwgflByb2Nlc3NBc3NlcnRpb24oKTsKIAotICAgIHZvaWQgc2V0Q2xp
ZW50KFByb2Nlc3NBc3NlcnRpb25DbGllbnQmIGNsaWVudCkgeyBtX2NsaWVudCA9ICZjbGllbnQ7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KFByb2Nlc3NBc3NlcnRpb25DbGllbnQmIGNs
aWVudCkgeyBtX2NsaWVudCA9ICZjbGllbnQ7IH0KICAgICBQcm9jZXNzQXNzZXJ0aW9uQ2xpZW50
KiBjbGllbnQoKSB7IHJldHVybiBtX2NsaWVudDsgfQogCiAgICAgQXNzZXJ0aW9uU3RhdGUgc3Rh
dGUoKSBjb25zdCB7IHJldHVybiBtX2Fzc2VydGlvblN0YXRlOyB9Ci0gICAgdm9pZCBzZXRTdGF0
ZShBc3NlcnRpb25TdGF0ZSk7CisgICAgdmlydHVhbCB2b2lkIHNldFN0YXRlKEFzc2VydGlvblN0
YXRlKTsKIAogI2lmIFBMQVRGT1JNKElPUykgJiYgIVBMQVRGT1JNKElPU19TSU1VTEFUT1IpCiBw
cm90ZWN0ZWQ6CkBAIC04MCwxNCArODAsMTQgQEAgcHJpdmF0ZToKICAgICBQcm9jZXNzQXNzZXJ0
aW9uQ2xpZW50KiBtX2NsaWVudCB7IG51bGxwdHIgfTsKIH07CiAgICAgCi1jbGFzcyBQcm9jZXNz
QW5kVUlBc3NlcnRpb24gOiBwdWJsaWMgUHJvY2Vzc0Fzc2VydGlvbiB7CitjbGFzcyBQcm9jZXNz
QW5kVUlBc3NlcnRpb24gZmluYWwgOiBwdWJsaWMgUHJvY2Vzc0Fzc2VydGlvbiB7CiBwdWJsaWM6
CiAgICAgUHJvY2Vzc0FuZFVJQXNzZXJ0aW9uKHBpZF90LCBBc3NlcnRpb25TdGF0ZSk7CiAgICAg
flByb2Nlc3NBbmRVSUFzc2VydGlvbigpOwogCi0gICAgdm9pZCBzZXRDbGllbnQoUHJvY2Vzc0Fz
c2VydGlvbkNsaWVudCYpOworICAgIHZvaWQgc2V0Q2xpZW50KFByb2Nlc3NBc3NlcnRpb25DbGll
bnQmKSBmaW5hbDsKIAotICAgIHZvaWQgc2V0U3RhdGUoQXNzZXJ0aW9uU3RhdGUpOworICAgIHZv
aWQgc2V0U3RhdGUoQXNzZXJ0aW9uU3RhdGUpIGZpbmFsOwogCiAjaWYgUExBVEZPUk0oSU9TKSAm
JiAhUExBVEZPUk0oSU9TX1NJTVVMQVRPUikKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKaW5kZXggMDkzODYzYzExY2Q2NzA0N2MxY2Uz
ZTIwYzc5OWMzNjZlZDc4NWE0Ni4uNjZmNDRkZmJhMGYwNDNlZDEyNTdlNTA2MmQ4NDUwYmIxNWY4
NTI4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNw
cApAQCAtMzMsMTIgKzMzLDEyIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgIAogc3RhdGljIGNv
bnN0IFNlY29uZHMgcHJvY2Vzc1N1c3BlbnNpb25UaW1lb3V0IHsgMzBfcyB9OwogICAgIAotUHJv
Y2Vzc1Rocm90dGxlcjo6UHJvY2Vzc1Rocm90dGxlcihQcm9jZXNzVGhyb3R0bGVyQ2xpZW50JiBw
cm9jZXNzKQorUHJvY2Vzc1Rocm90dGxlcjo6UHJvY2Vzc1Rocm90dGxlcihQcm9jZXNzVGhyb3R0
bGVyQ2xpZW50JiBwcm9jZXNzLCBib29sIHNob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24p
CiAgICAgOiBtX3Byb2Nlc3MocHJvY2VzcykKICAgICAsIG1fc3VzcGVuZFRpbWVyKFJ1bkxvb3A6
Om1haW4oKSwgdGhpcywgJlByb2Nlc3NUaHJvdHRsZXI6OnN1c3BlbmRUaW1lckZpcmVkKQogICAg
ICwgbV9mb3JlZ3JvdW5kQ291bnRlcihbdGhpc10oUmVmQ291bnRlckV2ZW50KSB7IHVwZGF0ZUFz
c2VydGlvbigpOyB9KQogICAgICwgbV9iYWNrZ3JvdW5kQ291bnRlcihbdGhpc10oUmVmQ291bnRl
ckV2ZW50KSB7IHVwZGF0ZUFzc2VydGlvbigpOyB9KQotICAgICwgbV9zdXNwZW5kTWVzc2FnZUNv
dW50KDApCisgICAgLCBtX3Nob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24oc2hvdWxkVGFr
ZVVJQmFja2dyb3VuZEFzc2VydGlvbikKIHsKIH0KICAgICAKQEAgLTk0LDcgKzk0LDEwIEBAIHZv
aWQgUHJvY2Vzc1Rocm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9uKCkKIHZvaWQgUHJvY2Vzc1Rocm90
dGxlcjo6ZGlkQ29ubmVjdFRvUHJvY2VzcyhwaWRfdCBwaWQpCiB7CiAgICAgbV9zdXNwZW5kVGlt
ZXIuc3RvcCgpOwotICAgIG1fYXNzZXJ0aW9uID0gc3RkOjptYWtlX3VuaXF1ZTxQcm9jZXNzQW5k
VUlBc3NlcnRpb24+KHBpZCwgYXNzZXJ0aW9uU3RhdGUoKSk7CisgICAgaWYgKG1fc2hvdWxkVGFr
ZVVJQmFja2dyb3VuZEFzc2VydGlvbikKKyAgICAgICAgbV9hc3NlcnRpb24gPSBzdGQ6Om1ha2Vf
dW5pcXVlPFByb2Nlc3NBbmRVSUFzc2VydGlvbj4ocGlkLCBhc3NlcnRpb25TdGF0ZSgpKTsKKyAg
ICBlbHNlCisgICAgICAgIG1fYXNzZXJ0aW9uID0gc3RkOjptYWtlX3VuaXF1ZTxQcm9jZXNzQXNz
ZXJ0aW9uPihwaWQsIGFzc2VydGlvblN0YXRlKCkpOwogICAgIG1fcHJvY2Vzcy5kaWRTZXRBc3Nl
cnRpb25TdGF0ZShhc3NlcnRpb25TdGF0ZSgpKTsKICAgICBtX2Fzc2VydGlvbi0+c2V0Q2xpZW50
KCp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qcm9jZXNz
VGhyb3R0bGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5o
CmluZGV4IDI5ZjU4YTEwZmVjY2UxYWM2NmFiNTZhNWQ3MmQyODY0ZjE1NTA4ZmYuLmNiMWE0ZjI2
ZWMzZWI2N2UxOGYxNTBkMGEzYjQ2NWYzOTlhNzgxODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAg
dHlwZWRlZiBSZWZDb3VudGVyPEJhY2tncm91bmRBY3Rpdml0eUNvdW50ZXJUeXBlPiBCYWNrZ3Jv
dW5kQWN0aXZpdHlDb3VudGVyOwogICAgIHR5cGVkZWYgQmFja2dyb3VuZEFjdGl2aXR5Q291bnRl
cjo6VG9rZW4gQmFja2dyb3VuZEFjdGl2aXR5VG9rZW47CiAKLSAgICBQcm9jZXNzVGhyb3R0bGVy
KFByb2Nlc3NUaHJvdHRsZXJDbGllbnQmKTsKKyAgICBQcm9jZXNzVGhyb3R0bGVyKFByb2Nlc3NU
aHJvdHRsZXJDbGllbnQmLCBib29sIHNob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24pOwog
CiAgICAgaW5saW5lIEZvcmVncm91bmRBY3Rpdml0eVRva2VuIGZvcmVncm91bmRBY3Rpdml0eVRv
a2VuKCkgY29uc3Q7CiAgICAgaW5saW5lIEJhY2tncm91bmRBY3Rpdml0eVRva2VuIGJhY2tncm91
bmRBY3Rpdml0eVRva2VuKCkgY29uc3Q7CkBAIC03MCwxMSArNzAsMTIgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGFzc2VydGlvbldpbGxFeHBpcmVJbW1pbmVudGx5KCkgb3ZlcnJpZGU7CiAKICAgICBQ
cm9jZXNzVGhyb3R0bGVyQ2xpZW50JiBtX3Byb2Nlc3M7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFBy
b2Nlc3NBbmRVSUFzc2VydGlvbj4gbV9hc3NlcnRpb247CisgICAgc3RkOjp1bmlxdWVfcHRyPFBy
b2Nlc3NBc3NlcnRpb24+IG1fYXNzZXJ0aW9uOwogICAgIFJ1bkxvb3A6OlRpbWVyPFByb2Nlc3NU
aHJvdHRsZXI+IG1fc3VzcGVuZFRpbWVyOwogICAgIEZvcmVncm91bmRBY3Rpdml0eUNvdW50ZXIg
bV9mb3JlZ3JvdW5kQ291bnRlcjsKICAgICBCYWNrZ3JvdW5kQWN0aXZpdHlDb3VudGVyIG1fYmFj
a2dyb3VuZENvdW50ZXI7Ci0gICAgaW50IG1fc3VzcGVuZE1lc3NhZ2VDb3VudDsKKyAgICBpbnQg
bV9zdXNwZW5kTWVzc2FnZUNvdW50IHsgMCB9OworICAgIGJvb2wgbV9zaG91bGRUYWtlVUlCYWNr
Z3JvdW5kQXNzZXJ0aW9uOwogfTsKIAogaW5saW5lIFByb2Nlc3NUaHJvdHRsZXI6OkZvcmVncm91
bmRBY3Rpdml0eVRva2VuIFByb2Nlc3NUaHJvdHRsZXI6OmZvcmVncm91bmRBY3Rpdml0eVRva2Vu
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmlu
ZGV4IGVlNDg0N2M5MWY4MjhkMzVkMDAwNWI0MGIyNDQ5YmI3M2NjMDdiOTAuLjViODc5ZWU1ODFi
YWJlZjgyMjUxOTEyNzY4ODQ5NGE1NjYyZWI3NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMjQwLDYgKzI0MCw3IEBAIFdlYlByb2Nlc3NQb29s
OjpXZWJQcm9jZXNzUG9vbChBUEk6OlByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiYgY29uZmlndXJh
dGlvbikKICAgICAsIG1fZGlkTmV0d29ya1Byb2Nlc3NDcmFzaChmYWxzZSkKICAgICAsIG1fbWVt
b3J5Q2FjaGVEaXNhYmxlZChmYWxzZSkKICAgICAsIG1fYWx3YXlzUnVuc0F0QmFja2dyb3VuZFBy
aW9yaXR5KG1fY29uZmlndXJhdGlvbi0+YWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5KCkp
CisgICAgLCBtX3Nob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24obV9jb25maWd1cmF0aW9u
LT5zaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9uKCkpCiAgICAgLCBtX3VzZXJPYnNlcnZh
YmxlUGFnZUNvdW50ZXIoW3RoaXNdKFJlZkNvdW50ZXJFdmVudCkgeyB1cGRhdGVQcm9jZXNzU3Vw
cHJlc3Npb25TdGF0ZSgpOyB9KQogICAgICwgbV9wcm9jZXNzU3VwcHJlc3Npb25EaXNhYmxlZEZv
clBhZ2VDb3VudGVyKFt0aGlzXShSZWZDb3VudGVyRXZlbnQpIHsgdXBkYXRlUHJvY2Vzc1N1cHBy
ZXNzaW9uU3RhdGUoKTsgfSkKICAgICAsIG1faGlkZGVuUGFnZVRocm90dGxpbmdBdXRvSW5jcmVh
c2VzQ291bnRlcihbdGhpc10oUmVmQ291bnRlckV2ZW50KSB7IG1faGlkZGVuUGFnZVRocm90dGxp
bmdUaW1lci5zdGFydE9uZVNob3QoMF9zKTsgfSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmgKaW5kZXggNDU2MjYwMDI3N2NjZThjNmNkOWI2Yjc4MWM1MjI3YzRkMGQ0
NTgzYi4uYjUzY2Q4MTNlNTIxNjUzMDQ1NDZhZGM1MmExMDhiNzUyNjRhYmIzNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTM5NCw3ICszOTQsOCBAQCBw
dWJsaWM6CiAgICAgYm9vbCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpIHsgcmV0dXJu
IG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQ7IH0KICAgICB2b2lkIHNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3Jlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkID0gZW5hYmxlZDsgfQogCi0gICAgYm9vbCBhbHdheXNSdW5zQXRCYWNrZ3Jv
dW5kUHJpb3JpdHkoKSB7IHJldHVybiBtX2Fsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eTsg
fQorICAgIGJvb2wgYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5KCkgY29uc3QgeyByZXR1
cm4gbV9hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHk7IH0KKyAgICBib29sIHNob3VsZFRh
a2VVSUJhY2tncm91bmRBc3NlcnRpb24oKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZFRha2VVSUJh
Y2tncm91bmRBc3NlcnRpb247IH0KIAogI2lmIEVOQUJMRShHQU1FUEFEKQogICAgIHZvaWQgZ2Ft
ZXBhZENvbm5lY3RlZChjb25zdCBVSUdhbWVwYWQmKTsKQEAgLTU3NCw2ICs1NzUsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX2phdmFTY3JpcHRDb25maWd1cmF0aW9uRmlsZUVuYWJsZWQgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV9hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHk7CisgICAgYm9vbCBt
X3Nob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb247CiAKICAgICBVc2VyT2JzZXJ2YWJsZVBh
Z2VDb3VudGVyIG1fdXNlck9ic2VydmFibGVQYWdlQ291bnRlcjsKICAgICBQcm9jZXNzU3VwcHJl
c3Npb25EaXNhYmxlZENvdW50ZXIgbV9wcm9jZXNzU3VwcHJlc3Npb25EaXNhYmxlZEZvclBhZ2VD
b3VudGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApp
bmRleCBkMTUxMTRkMjllMTg0NzYyOGEzN2MzODY5ODEwYjFkMTBjOWUzYjFkLi4zOGY2N2ZlMDky
YjYzZDNmODE1ZmE5YTcyMGU1NWVhZmI5NDdiOGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTAyLDcgKzEwMiw3IEBAIFdlYlByb2Nlc3NQ
cm94eTo6V2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgV2Vic2l0
ZURhdGFTdG9yZSYKICAgICAsIG1fcHJvY2Vzc1Bvb2wocHJvY2Vzc1Bvb2wpCiAgICAgLCBtX21h
eUhhdmVVbml2ZXJzYWxGaWxlUmVhZFNhbmRib3hFeHRlbnNpb24oZmFsc2UpCiAgICAgLCBtX251
bWJlck9mVGltZXNTdWRkZW5UZXJtaW5hdGlvbldhc0Rpc2FibGVkKDApCi0gICAgLCBtX3Rocm90
dGxlcigqdGhpcykKKyAgICAsIG1fdGhyb3R0bGVyKCp0aGlzLCBwcm9jZXNzUG9vbC5zaG91bGRU
YWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9uKCkpCiAgICAgLCBtX2lzUmVzcG9uc2l2ZShOb09yTWF5
YmU6Ok1heWJlKQogICAgICwgbV92aXNpYmxlUGFnZUNvdW50ZXIoW3RoaXNdKFJlZkNvdW50ZXJF
dmVudCkgeyB1cGRhdGVCYWNrZ3JvdW5kUmVzcG9uc2l2ZW5lc3NUaW1lcigpOyB9KQogICAgICwg
bV93ZWJzaXRlRGF0YVN0b3JlKHdlYnNpdGVEYXRhU3RvcmUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308582</attachid>
            <date>2017-04-28 12:58:49 -0700</date>
            <delta_ts>2017-04-28 15:41:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171435-20170428125848.patch</filename>
            <type>text/plain</type>
            <size>14183</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1OTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZWNkYmI1MTMxYzdmYzVh
NWVhOWQyYmY1YmZlNGRiOGQzYmY5NGVhNy4uZjQ0ODFlZjg3NWUxMTU1MjYyMzQyY2VjMmRmMGVj
Y2Q1ODBiODIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE3LTA0LTI4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gV2Ugc2hvdWxkIG5v
dCB0YWtlIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gZm9yIHRoZSBVSVByb2Nlc3Mgd2hlbiBhcHAg
aXMgTW9iaWxlTWFpbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTcxNDM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTEzMjMzMD4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgU1BJIHRvIGRpc2Fi
bGUgdGFraW5nIG9uIGJhY2tncm91bmQgcHJvY2VzcyBhc3NlcnRpb25zIGluIHRoZSBVSVByb2Nl
c3MuCisgICAgICAgIFRoaXMgaXMgdXNlZnVsIGZvciBNb2JpbGVNYWlsLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAo
QVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246OmNvcHkpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbToKKyAgICAgICAg
KC1bX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHNob3VsZFRha2VVSUJhY2tncm91bmRBc3Nl
cnRpb25dKToKKyAgICAgICAgKC1bX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHNldFNob3Vs
ZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb246XSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzUHJveHk6Ok5ldHdvcmtQcm9jZXNzUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm9j
ZXNzQXNzZXJ0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246OnNldENs
aWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjpQcm9jZXNzVGhyb3R0bGVyKToKKyAgICAgICAg
KFdlYktpdDo6bV9zaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6UHJvY2Vzc1Rocm90dGxlcjo6ZGlkQ29ubmVjdFRvUHJvY2Vzcyk6CisgICAgICAgICog
VUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6V2ViUHJvY2Vz
c1Bvb2wpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eSk6CisKIDIwMTctMDQtMjggIEJyYWR5IEVpZHNvbiAg
PGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFRlYWNoIFdlYlByb2Nlc3NQb29sIHRvIHRy
YWNrIGEgbWFwIG9mIFNlc3Npb25JRHMgdG8gV2ViUGFnZVByb3h5cyB0byBtYW5hZ2UgdGhlaXIg
bGlmZXRpbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
QVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcAppbmRleCBkNzZkZmJiN2FjMzg2ZDA4MzJl
NWUzNmE4NDgwNmJmNjcxMjE3ZDE1Li4yMzM4YmEzYTNhNDBiNGM4ZWY4YmNjODc4NDI1YmEyYWJi
M2E1YzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVByb2Nl
c3NQb29sQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCkBAIC0xMTgsNiArMTE4LDcgQEAgUmVm
PFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbj4gUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOjpjb3B5
KCkKICAgICBjb3B5LT5tX3NvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciA9IHRoaXMt
Pm1fc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyOwogICAgIGNvcHktPm1fc291cmNl
QXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyID0gdGhpcy0+bV9zb3VyY2VBcHBsaWNhdGlv
blNlY29uZGFyeUlkZW50aWZpZXI7CiAgICAgY29weS0+bV9hbHdheXNSdW5zQXRCYWNrZ3JvdW5k
UHJpb3JpdHkgPSB0aGlzLT5tX2Fsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eTsKKyAgICBj
b3B5LT5tX3Nob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24gPSB0aGlzLT5tX3Nob3VsZFRh
a2VVSUJhY2tncm91bmRBc3NlcnRpb247CiAgICAgY29weS0+bV9zaG91bGRDYXB0dXJlQXVkaW9J
blVJUHJvY2VzcyA9IHRoaXMtPm1fc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3M7CiAjaWYg
UExBVEZPUk0oSU9TKQogICAgIGNvcHktPm1fY3REYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlID0g
dGhpcy0+bV9jdERhdGFDb25uZWN0aW9uU2VydmljZVR5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaApp
bmRleCA3MTNjOTFmYTIyZGZhNDZiNTAwMzBhNTZlZjFjNzY2MDUzMTg1MWFiLi5lNDQyYjEzNmZi
YWQ3OWExNjg4OTZiY2RlMGJiY2E5ZjFiYjhkNWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKQEAg
LTEyMCw2ICsxMjAsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBhbHdheXNSdW5zQXRCYWNrZ3JvdW5k
UHJpb3JpdHkoKSBjb25zdCB7IHJldHVybiBtX2Fsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0
eTsgfQogICAgIHZvaWQgc2V0QWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5KGJvb2wgYWx3
YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5KSB7IG1fYWx3YXlzUnVuc0F0QmFja2dyb3VuZFBy
aW9yaXR5ID0gYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5OyB9CiAKKyAgICBib29sIHNo
b3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24oKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZFRh
a2VVSUJhY2tncm91bmRBc3NlcnRpb247IH0KKyAgICB2b2lkIHNldFNob3VsZFRha2VVSUJhY2tn
cm91bmRBc3NlcnRpb24oYm9vbCBzaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9uKSB7IG1f
c2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbiA9IHNob3VsZFRha2VVSUJhY2tncm91bmRB
c3NlcnRpb247IH0KKwogICAgIGJvb2wgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MoKSBj
b25zdCB7IHJldHVybiBtX3Nob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzOyB9CiAgICAgdm9p
ZCBzZXRTaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2Vzcyhib29sIHNob3VsZENhcHR1cmVBdWRp
b0luVUlQcm9jZXNzKSB7IG1fc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MgPSBzaG91bGRD
YXB0dXJlQXVkaW9JblVJUHJvY2VzczsgfQogCkBAIC0xNTcsNiArMTYwLDcgQEAgcHJpdmF0ZToK
ICAgICBXVEY6OlN0cmluZyBtX3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcjsK
ICAgICBib29sIG1fYWxsb3dzQ2VsbHVsYXJBY2Nlc3MgeyB0cnVlIH07CiAgICAgYm9vbCBtX2Fs
d2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eSB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Nob3Vs
ZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24geyB0cnVlIH07CiAgICAgYm9vbCBtX3Nob3VsZENh
cHR1cmVBdWRpb0luVUlQcm9jZXNzIHsgZmFsc2UgfTsKICNpZiBQTEFURk9STShJT1MpCiAgICAg
V1RGOjpTdHJpbmcgbV9jdERhdGFDb25uZWN0aW9uU2VydmljZVR5cGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24uaAppbmRleCA3NGNiZGJhMjEzNTBkZjg2ZTY4ZGY1YzRjNGVkNTVjMGY3
N2Q4MTkxLi5lYjUyZGQyZDc0YTgyMzYxNzcyNjZkY2IzZWZjNjBlNWY2NmZjM2JmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKQEAgLTU0LDYgKzU0LDcgQEAgV0tfQ0xBU1NfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogI2lmIFRBUkdFVF9PU19JUEhPTkUKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKkNURGF0YUNvbm5l
Y3Rpb25TZXJ2aWNlVHlwZSBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiBAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCBhbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkgV0tf
QVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMpIEJP
T0wgc2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbiBXS19BUElfQVZBSUxBQkxFKGlvcyhX
S19JT1NfVEJBKSk7CiAjZW5kaWYKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1t
CmluZGV4IGYxYmM1YjIwMTJmY2I2YjVlODdiOGI5ODY2MDlmNDJmOTZiYTc1ZWMuLjEwZDI4MTI1
YTIwMTkyYmVlNzdmYTdkNTQ5OWM5NmVlODJjZDg2ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uLm1tCkBAIC0yMzgsNiArMjM4LDE2IEBACiB7CiAgICAgX3Byb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbi0+c2V0QWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5KGFsd2F5c1J1bnNB
dEJhY2tncm91bmRQcmlvcml0eSk7CiB9CisKKy0gKEJPT0wpc2hvdWxkVGFrZVVJQmFja2dyb3Vu
ZEFzc2VydGlvbgoreworICAgIHJldHVybiBfcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLT5zaG91
bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9uKCk7Cit9CisKKy0gKHZvaWQpc2V0U2hvdWxkVGFr
ZVVJQmFja2dyb3VuZEFzc2VydGlvbjooQk9PTClzaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0
aW9uCit7CisgICAgcmV0dXJuIF9wcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24tPnNldFNob3VsZFRh
a2VVSUJhY2tncm91bmRBc3NlcnRpb24oc2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbik7
Cit9CiAjZW5kaWYKIAogLSAoTlNTdHJpbmcgKilkZXNjcmlwdGlvbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApp
bmRleCBhOGVhOGM3MzcyNGZmYzVmOTM5YmY3MWE3MGNkN2Q0ZGQzMTM1OTYzLi5kYjE1OTk1YWQ3
NGIzYzI0N2NlZTM2NWMwNDA5OWY1OWUwY2YwNTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtNjks
NyArNjksNyBAQCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpOZXR3b3JrUHJvY2Vzc1Byb3h5KFdlYlBy
b2Nlc3NQb29sJiBwcm9jZXNzUG9vbCkKICAgICAsIG1fcHJvY2Vzc1Bvb2wocHJvY2Vzc1Bvb2wp
CiAgICAgLCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHMoMCkKICAgICAsIG1fY3VzdG9t
UHJvdG9jb2xNYW5hZ2VyUHJveHkodGhpcywgcHJvY2Vzc1Bvb2wpCi0gICAgLCBtX3Rocm90dGxl
cigqdGhpcykKKyAgICAsIG1fdGhyb3R0bGVyKCp0aGlzLCBwcm9jZXNzUG9vbC5zaG91bGRUYWtl
VUlCYWNrZ3JvdW5kQXNzZXJ0aW9uKCkpCiB7CiAgICAgY29ubmVjdCgpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmgKaW5kZXggZTA1NGFmZmU4YWQyOWM4
OTgwMmYwYWEwYWFiMTY5NzQzODJhYzg5ZC4uZmFjODYzMjZjMTVlMTc2YTkyODQyZjUyMmM5ZjU1
NTY1NTc2N2UyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Byb2Nlc3NB
c3NlcnRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlv
bi5oCkBAIC01MiwxMyArNTIsMTMgQEAgcHVibGljOgogY2xhc3MgUHJvY2Vzc0Fzc2VydGlvbiB7
CiBwdWJsaWM6CiAgICAgUHJvY2Vzc0Fzc2VydGlvbihwaWRfdCwgQXNzZXJ0aW9uU3RhdGUsIEZ1
bmN0aW9uPHZvaWQoKT4mJiBpbnZhbGlkYXRpb25DYWxsYmFjayA9IHsgfSk7Ci0gICAgflByb2Nl
c3NBc3NlcnRpb24oKTsKKyAgICB2aXJ0dWFsIH5Qcm9jZXNzQXNzZXJ0aW9uKCk7CiAKLSAgICB2
b2lkIHNldENsaWVudChQcm9jZXNzQXNzZXJ0aW9uQ2xpZW50JiBjbGllbnQpIHsgbV9jbGllbnQg
PSAmY2xpZW50OyB9CisgICAgdmlydHVhbCB2b2lkIHNldENsaWVudChQcm9jZXNzQXNzZXJ0aW9u
Q2xpZW50JiBjbGllbnQpIHsgbV9jbGllbnQgPSAmY2xpZW50OyB9CiAgICAgUHJvY2Vzc0Fzc2Vy
dGlvbkNsaWVudCogY2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KIAogICAgIEFzc2VydGlv
blN0YXRlIHN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9hc3NlcnRpb25TdGF0ZTsgfQotICAgIHZv
aWQgc2V0U3RhdGUoQXNzZXJ0aW9uU3RhdGUpOworICAgIHZpcnR1YWwgdm9pZCBzZXRTdGF0ZShB
c3NlcnRpb25TdGF0ZSk7CiAKICNpZiBQTEFURk9STShJT1MpICYmICFQTEFURk9STShJT1NfU0lN
VUxBVE9SKQogcHJvdGVjdGVkOgpAQCAtODAsMTQgKzgwLDE0IEBAIHByaXZhdGU6CiAgICAgUHJv
Y2Vzc0Fzc2VydGlvbkNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07CiB9OwogICAgIAotY2xh
c3MgUHJvY2Vzc0FuZFVJQXNzZXJ0aW9uIDogcHVibGljIFByb2Nlc3NBc3NlcnRpb24geworY2xh
c3MgUHJvY2Vzc0FuZFVJQXNzZXJ0aW9uIGZpbmFsIDogcHVibGljIFByb2Nlc3NBc3NlcnRpb24g
ewogcHVibGljOgogICAgIFByb2Nlc3NBbmRVSUFzc2VydGlvbihwaWRfdCwgQXNzZXJ0aW9uU3Rh
dGUpOwogICAgIH5Qcm9jZXNzQW5kVUlBc3NlcnRpb24oKTsKIAotICAgIHZvaWQgc2V0Q2xpZW50
KFByb2Nlc3NBc3NlcnRpb25DbGllbnQmKTsKKyAgICB2b2lkIHNldENsaWVudChQcm9jZXNzQXNz
ZXJ0aW9uQ2xpZW50JikgZmluYWw7CiAKLSAgICB2b2lkIHNldFN0YXRlKEFzc2VydGlvblN0YXRl
KTsKKyAgICB2b2lkIHNldFN0YXRlKEFzc2VydGlvblN0YXRlKSBmaW5hbDsKIAogI2lmIFBMQVRG
T1JNKElPUykgJiYgIVBMQVRGT1JNKElPU19TSU1VTEFUT1IpCiBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCmluZGV4IDA5Mzg2M2MxMWNk
NjcwNDdjMWNlM2UyMGM3OTljMzY2ZWQ3ODVhNDYuLjY2ZjQ0ZGZiYTBmMDQzZWQxMjU3ZTUwNjJk
ODQ1MGJiMTVmODUyOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qcm9j
ZXNzVGhyb3R0bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUHJvY2Vzc1Ro
cm90dGxlci5jcHAKQEAgLTMzLDEyICszMywxMiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAK
IHN0YXRpYyBjb25zdCBTZWNvbmRzIHByb2Nlc3NTdXNwZW5zaW9uVGltZW91dCB7IDMwX3MgfTsK
ICAgICAKLVByb2Nlc3NUaHJvdHRsZXI6OlByb2Nlc3NUaHJvdHRsZXIoUHJvY2Vzc1Rocm90dGxl
ckNsaWVudCYgcHJvY2VzcykKK1Byb2Nlc3NUaHJvdHRsZXI6OlByb2Nlc3NUaHJvdHRsZXIoUHJv
Y2Vzc1Rocm90dGxlckNsaWVudCYgcHJvY2VzcywgYm9vbCBzaG91bGRUYWtlVUlCYWNrZ3JvdW5k
QXNzZXJ0aW9uKQogICAgIDogbV9wcm9jZXNzKHByb2Nlc3MpCiAgICAgLCBtX3N1c3BlbmRUaW1l
cihSdW5Mb29wOjptYWluKCksIHRoaXMsICZQcm9jZXNzVGhyb3R0bGVyOjpzdXNwZW5kVGltZXJG
aXJlZCkKICAgICAsIG1fZm9yZWdyb3VuZENvdW50ZXIoW3RoaXNdKFJlZkNvdW50ZXJFdmVudCkg
eyB1cGRhdGVBc3NlcnRpb24oKTsgfSkKICAgICAsIG1fYmFja2dyb3VuZENvdW50ZXIoW3RoaXNd
KFJlZkNvdW50ZXJFdmVudCkgeyB1cGRhdGVBc3NlcnRpb24oKTsgfSkKLSAgICAsIG1fc3VzcGVu
ZE1lc3NhZ2VDb3VudCgwKQorICAgICwgbV9zaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9u
KHNob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24pCiB7CiB9CiAgICAgCkBAIC05NCw3ICs5
NCwxMCBAQCB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OnVwZGF0ZUFzc2VydGlvbigpCiB2b2lkIFBy
b2Nlc3NUaHJvdHRsZXI6OmRpZENvbm5lY3RUb1Byb2Nlc3MocGlkX3QgcGlkKQogewogICAgIG1f
c3VzcGVuZFRpbWVyLnN0b3AoKTsKLSAgICBtX2Fzc2VydGlvbiA9IHN0ZDo6bWFrZV91bmlxdWU8
UHJvY2Vzc0FuZFVJQXNzZXJ0aW9uPihwaWQsIGFzc2VydGlvblN0YXRlKCkpOworICAgIGlmICht
X3Nob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24pCisgICAgICAgIG1fYXNzZXJ0aW9uID0g
c3RkOjptYWtlX3VuaXF1ZTxQcm9jZXNzQW5kVUlBc3NlcnRpb24+KHBpZCwgYXNzZXJ0aW9uU3Rh
dGUoKSk7CisgICAgZWxzZQorICAgICAgICBtX2Fzc2VydGlvbiA9IHN0ZDo6bWFrZV91bmlxdWU8
UHJvY2Vzc0Fzc2VydGlvbj4ocGlkLCBhc3NlcnRpb25TdGF0ZSgpKTsKICAgICBtX3Byb2Nlc3Mu
ZGlkU2V0QXNzZXJ0aW9uU3RhdGUoYXNzZXJ0aW9uU3RhdGUoKSk7CiAgICAgbV9hc3NlcnRpb24t
PnNldENsaWVudCgqdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUHJvY2Vzc1Rocm90dGxlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Byb2Nlc3NU
aHJvdHRsZXIuaAppbmRleCAyOWY1OGExMGZlY2NlMWFjNjZhYjU2YTVkNzJkMjg2NGYxNTUwOGZm
Li5jYjFhNGYyNmVjM2ViNjdlMThmMTUwZDBhM2I0NjVmMzk5YTc4MTgxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVi
bGljOgogICAgIHR5cGVkZWYgUmVmQ291bnRlcjxCYWNrZ3JvdW5kQWN0aXZpdHlDb3VudGVyVHlw
ZT4gQmFja2dyb3VuZEFjdGl2aXR5Q291bnRlcjsKICAgICB0eXBlZGVmIEJhY2tncm91bmRBY3Rp
dml0eUNvdW50ZXI6OlRva2VuIEJhY2tncm91bmRBY3Rpdml0eVRva2VuOwogCi0gICAgUHJvY2Vz
c1Rocm90dGxlcihQcm9jZXNzVGhyb3R0bGVyQ2xpZW50Jik7CisgICAgUHJvY2Vzc1Rocm90dGxl
cihQcm9jZXNzVGhyb3R0bGVyQ2xpZW50JiwgYm9vbCBzaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNz
ZXJ0aW9uKTsKIAogICAgIGlubGluZSBGb3JlZ3JvdW5kQWN0aXZpdHlUb2tlbiBmb3JlZ3JvdW5k
QWN0aXZpdHlUb2tlbigpIGNvbnN0OwogICAgIGlubGluZSBCYWNrZ3JvdW5kQWN0aXZpdHlUb2tl
biBiYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpIGNvbnN0OwpAQCAtNzAsMTEgKzcwLDEyIEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBhc3NlcnRpb25XaWxsRXhwaXJlSW1taW5lbnRseSgpIG92ZXJyaWRl
OwogCiAgICAgUHJvY2Vzc1Rocm90dGxlckNsaWVudCYgbV9wcm9jZXNzOwotICAgIHN0ZDo6dW5p
cXVlX3B0cjxQcm9jZXNzQW5kVUlBc3NlcnRpb24+IG1fYXNzZXJ0aW9uOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2Fzc2VydGlvbjsKICAgICBSdW5Mb29wOjpUaW1l
cjxQcm9jZXNzVGhyb3R0bGVyPiBtX3N1c3BlbmRUaW1lcjsKICAgICBGb3JlZ3JvdW5kQWN0aXZp
dHlDb3VudGVyIG1fZm9yZWdyb3VuZENvdW50ZXI7CiAgICAgQmFja2dyb3VuZEFjdGl2aXR5Q291
bnRlciBtX2JhY2tncm91bmRDb3VudGVyOwotICAgIGludCBtX3N1c3BlbmRNZXNzYWdlQ291bnQ7
CisgICAgaW50IG1fc3VzcGVuZE1lc3NhZ2VDb3VudCB7IDAgfTsKKyAgICBib29sIG1fc2hvdWxk
VGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbjsKIH07CiAKIGlubGluZSBQcm9jZXNzVGhyb3R0bGVy
OjpGb3JlZ3JvdW5kQWN0aXZpdHlUb2tlbiBQcm9jZXNzVGhyb3R0bGVyOjpmb3JlZ3JvdW5kQWN0
aXZpdHlUb2tlbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcAppbmRleCBlZTQ4NDdjOTFmODI4ZDM1ZDAwMDViNDBiMjQ0OWJiNzNjYzA3YjkwLi41
Yjg3OWVlNTgxYmFiZWY4MjI1MTkxMjc2ODg0OTRhNTY2MmViNzcxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTI0MCw2ICsyNDAsNyBAQCBXZWJQ
cm9jZXNzUG9vbDo6V2ViUHJvY2Vzc1Bvb2woQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24m
IGNvbmZpZ3VyYXRpb24pCiAgICAgLCBtX2RpZE5ldHdvcmtQcm9jZXNzQ3Jhc2goZmFsc2UpCiAg
ICAgLCBtX21lbW9yeUNhY2hlRGlzYWJsZWQoZmFsc2UpCiAgICAgLCBtX2Fsd2F5c1J1bnNBdEJh
Y2tncm91bmRQcmlvcml0eShtX2NvbmZpZ3VyYXRpb24tPmFsd2F5c1J1bnNBdEJhY2tncm91bmRQ
cmlvcml0eSgpKQorICAgICwgbV9zaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9uKG1fY29u
ZmlndXJhdGlvbi0+c2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbigpKQogICAgICwgbV91
c2VyT2JzZXJ2YWJsZVBhZ2VDb3VudGVyKFt0aGlzXShSZWZDb3VudGVyRXZlbnQpIHsgdXBkYXRl
UHJvY2Vzc1N1cHByZXNzaW9uU3RhdGUoKTsgfSkKICAgICAsIG1fcHJvY2Vzc1N1cHByZXNzaW9u
RGlzYWJsZWRGb3JQYWdlQ291bnRlcihbdGhpc10oUmVmQ291bnRlckV2ZW50KSB7IHVwZGF0ZVBy
b2Nlc3NTdXBwcmVzc2lvblN0YXRlKCk7IH0pCiAgICAgLCBtX2hpZGRlblBhZ2VUaHJvdHRsaW5n
QXV0b0luY3JlYXNlc0NvdW50ZXIoW3RoaXNdKFJlZkNvdW50ZXJFdmVudCkgeyBtX2hpZGRlblBh
Z2VUaHJvdHRsaW5nVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7IH0pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IDQ1NjI2MDAyNzdjY2U4YzZjZDliNmI3ODFj
NTIyN2M0ZDBkNDU4M2IuLmI1M2NkODEzZTUyMTY1MzA0NTQ2YWRjNTJhMTA4Yjc1MjY0YWJiMzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0zOTQsNyAr
Mzk0LDggQEAgcHVibGljOgogICAgIGJvb2wgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQo
KSB7IHJldHVybiBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkOyB9CiAgICAgdm9pZCBz
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCA9IGVuYWJsZWQ7IH0KIAotICAgIGJvb2wgYWx3YXlzUnVu
c0F0QmFja2dyb3VuZFByaW9yaXR5KCkgeyByZXR1cm4gbV9hbHdheXNSdW5zQXRCYWNrZ3JvdW5k
UHJpb3JpdHk7IH0KKyAgICBib29sIGFsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eSgpIGNv
bnN0IHsgcmV0dXJuIG1fYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5OyB9CisgICAgYm9v
bCBzaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zaG91
bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9uOyB9CiAKICNpZiBFTkFCTEUoR0FNRVBBRCkKICAg
ICB2b2lkIGdhbWVwYWRDb25uZWN0ZWQoY29uc3QgVUlHYW1lcGFkJik7CkBAIC01NzQsNiArNTc1
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9qYXZhU2NyaXB0Q29uZmlndXJhdGlvbkZpbGVFbmFibGVk
IHsgZmFsc2UgfTsKICAgICBib29sIG1fYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5Owor
ICAgIGJvb2wgbV9zaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9uOwogCiAgICAgVXNlck9i
c2VydmFibGVQYWdlQ291bnRlciBtX3VzZXJPYnNlcnZhYmxlUGFnZUNvdW50ZXI7CiAgICAgUHJv
Y2Vzc1N1cHByZXNzaW9uRGlzYWJsZWRDb3VudGVyIG1fcHJvY2Vzc1N1cHByZXNzaW9uRGlzYWJs
ZWRGb3JQYWdlQ291bnRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKaW5kZXggZDE1MTE0ZDI5ZTE4NDc2MjhhMzdjMzg2OTgxMGIxZDEwYzllM2IxZC4u
MzhmNjdmZTA5MmI2M2QzZjgxNWZhOWE3MjBlNTVlYWZiOTQ3YjhiYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCBX
ZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bv
b2wsIFdlYnNpdGVEYXRhU3RvcmUmCiAgICAgLCBtX3Byb2Nlc3NQb29sKHByb2Nlc3NQb29sKQog
ICAgICwgbV9tYXlIYXZlVW5pdmVyc2FsRmlsZVJlYWRTYW5kYm94RXh0ZW5zaW9uKGZhbHNlKQog
ICAgICwgbV9udW1iZXJPZlRpbWVzU3VkZGVuVGVybWluYXRpb25XYXNEaXNhYmxlZCgwKQotICAg
ICwgbV90aHJvdHRsZXIoKnRoaXMpCisgICAgLCBtX3Rocm90dGxlcigqdGhpcywgcHJvY2Vzc1Bv
b2wuc2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbigpKQogICAgICwgbV9pc1Jlc3BvbnNp
dmUoTm9Pck1heWJlOjpNYXliZSkKICAgICAsIG1fdmlzaWJsZVBhZ2VDb3VudGVyKFt0aGlzXShS
ZWZDb3VudGVyRXZlbnQpIHsgdXBkYXRlQmFja2dyb3VuZFJlc3BvbnNpdmVuZXNzVGltZXIoKTsg
fSkKICAgICAsIG1fd2Vic2l0ZURhdGFTdG9yZSh3ZWJzaXRlRGF0YVN0b3JlKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>