<?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>204109</bug_id>
          
          <creation_ts>2019-11-12 04:36:09 -0800</creation_ts>
          <short_desc>REGRESSION (iOS 13.3): WKWebView does not include cookies in cross-origin images</short_desc>
          <delta_ts>2020-10-19 04:28:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>Safari Technology Preview</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>iOS 13</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=200857</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=204322</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=213510</see_also>
          <bug_file_loc>https://niklas.merz.dev/corstest/</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="Niklas Merz">niklasmerz</reporter>
          <assigned_to name="John Wilander">wilander</assigned_to>
          <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>david.mcrae</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>guo.li</cc>
    
    <cc>jdai</cc>
    
    <cc>maciej.zabielski+webkit</cc>
    
    <cc>niklasmerz</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1589488</commentid>
    <comment_count>0</comment_count>
      <attachid>383348</attachid>
    <who name="Niklas Merz">niklasmerz</who>
    <bug_when>2019-11-12 04:36:09 -0800</bug_when>
    <thetext>Created attachment 383348
Example project with test page

We found a bug in our app (using WKWebView) that images that are loaded from another origin don&apos;t load because the necessary cookie is not sent.

I added a small sample project which opens a test page in WKWebview. This page has two img tags. One of the loads the image from the same origin, one from another one. Both images need a cookie, otherwhise an error is thrown. The cookies for thesse images are set in Swift code before opening the WebView.

If I run this project with two devices and iOS version, I get different result:

* iOS 13.2: Both images are displayed at app launch
* iOS 13.3 Developer Beta 2: Only the same origin image is displayed

Bug  200857 was a similiar issue in iOS 13, but is fixed since iOS 13.2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589561</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-12 10:19:33 -0800</bug_when>
    <thetext>&lt;rdar://problem/57120772&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590595</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2019-11-15 11:56:39 -0800</bug_when>
    <thetext>Is the server up and running now? We are getting question marks for the images.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590596</commentid>
    <comment_count>3</comment_count>
    <who name="Niklas Merz">niklasmerz</who>
    <bug_when>2019-11-15 12:02:59 -0800</bug_when>
    <thetext>Yes that is the point. You need a cookie with a Value test. The Native App from the attachment Sets the cookie.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590610</commentid>
    <comment_count>4</comment_count>
    <who name="Niklas Merz">niklasmerz</who>
    <bug_when>2019-11-15 12:40:25 -0800</bug_when>
    <thetext>(In reply to Niklas Merz from comment #3)
&gt; Yes that is the point. You need a cookie with a Value test. The Native App
&gt; from the attachment Sets the cookie.

If you open the page in a browser there will be no images. Setting a cookie like corstest=tes will make the image accessible. If you open the test app on iOS 13.3 there will be one image from the same origin, on iOS 13.2 two images from both origins.

The test page is available on Github. I did set a check on cookies for the images via a serverless function for the hosting: https://github.com/NiklasMerz/corstest

Can you reproduce this issue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590890</commentid>
    <comment_count>5</comment_count>
      <attachid>383705</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-11-16 14:38:28 -0800</bug_when>
    <thetext>Created attachment 383705
Proposed patch

Patch for review. Note that it is branch-specific and won&apos;t apply to trunk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590892</commentid>
    <comment_count>6</comment_count>
      <attachid>383705</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2019-11-16 14:54:03 -0800</bug_when>
    <thetext>Comment on attachment 383705
Proposed patch

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

&gt; LayoutTests/ChangeLog:9
&gt; +        * http/tests/resourceLoadStatistics/no-third-party-cookie-blocking-when-itp-is-off-expected.txt: Added.

Test pieces will need to be landed on trunk too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590893</commentid>
    <comment_count>7</comment_count>
      <attachid>383705</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-16 14:58:21 -0800</bug_when>
    <thetext>Comment on attachment 383705
Proposed patch

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

&gt; Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:208
&gt; +        || (session.isResourceLoadStatisticsEnabled() &amp;&amp; session.networkStorageSession() &amp;&amp; session.networkStorageSession()-&gt;shouldBlockCookies(request, frameID, pageID));

There are other call sites that call shouldBlockCookies() without checking if ITP is enabled. Why are those OK?
Why isn&apos;t the isITPEnabled check inside shouldBlockCookies()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590894</commentid>
    <comment_count>8</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-11-16 15:04:12 -0800</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #6)
&gt; Comment on attachment 383705 [details]
&gt; Proposed patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=383705&amp;action=review
&gt; 
&gt; &gt; LayoutTests/ChangeLog:9
&gt; &gt; +        * http/tests/resourceLoadStatistics/no-third-party-cookie-blocking-when-itp-is-off-expected.txt: Added.
&gt; 
&gt; Test pieces will need to be landed on trunk too.

Absolutely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590895</commentid>
    <comment_count>9</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-11-16 15:07:42 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #7)
&gt; Comment on attachment 383705 [details]
&gt; Proposed patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=383705&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:208
&gt; &gt; +        || (session.isResourceLoadStatisticsEnabled() &amp;&amp; session.networkStorageSession() &amp;&amp; session.networkStorageSession()-&gt;shouldBlockCookies(request, frameID, pageID));
&gt; 
&gt; There are other call sites that call shouldBlockCookies() without checking
&gt; if ITP is enabled. Why are those OK?

I&apos;ll have a look.

&gt; Why isn&apos;t the isITPEnabled check inside shouldBlockCookies()?

It&apos;s the NetworkSession that knows. But maybe I can forward that info to the NetworkStorageSession. But that increases the risk of the change, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590896</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-16 15:18:30 -0800</bug_when>
    <thetext>(In reply to John Wilander from comment #9)
&gt; (In reply to Chris Dumez from comment #7)
&gt; &gt; Comment on attachment 383705 [details]
&gt; &gt; Proposed patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=383705&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:208
&gt; &gt; &gt; +        || (session.isResourceLoadStatisticsEnabled() &amp;&amp; session.networkStorageSession() &amp;&amp; session.networkStorageSession()-&gt;shouldBlockCookies(request, frameID, pageID));
&gt; &gt; 
&gt; &gt; There are other call sites that call shouldBlockCookies() without checking
&gt; &gt; if ITP is enabled. Why are those OK?
&gt; 
&gt; I&apos;ll have a look.
&gt; 
&gt; &gt; Why isn&apos;t the isITPEnabled check inside shouldBlockCookies()?
&gt; 
&gt; It&apos;s the NetworkSession that knows. But maybe I can forward that info to the
&gt; NetworkStorageSession. But that increases the risk of the change, right?

Hmm, I see what you mean, NetworkStorageSession is actually in WebCore and does not have access to the NetworkSession and does not know about the NetworkSession.

My alternate proposal then then would be to rename the method name to be less generic (e.g. shouldBlockCookieDueToITP()) and make sure all call sites check that ITP is enabled before calling. This is assuming this function is only used for ITP purposes (I don&apos;t actually know that for sure).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590905</commentid>
    <comment_count>11</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-11-16 15:58:53 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #10)
&gt; (In reply to John Wilander from comment #9)
&gt; &gt; (In reply to Chris Dumez from comment #7)
&gt; &gt; &gt; Comment on attachment 383705 [details]
&gt; &gt; &gt; Proposed patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=383705&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:208
&gt; &gt; &gt; &gt; +        || (session.isResourceLoadStatisticsEnabled() &amp;&amp; session.networkStorageSession() &amp;&amp; session.networkStorageSession()-&gt;shouldBlockCookies(request, frameID, pageID));
&gt; &gt; &gt; 
&gt; &gt; &gt; There are other call sites that call shouldBlockCookies() without checking
&gt; &gt; &gt; if ITP is enabled. Why are those OK?
&gt; &gt; 
&gt; &gt; I&apos;ll have a look.
&gt; &gt; 
&gt; &gt; &gt; Why isn&apos;t the isITPEnabled check inside shouldBlockCookies()?
&gt; &gt; 
&gt; &gt; It&apos;s the NetworkSession that knows. But maybe I can forward that info to the
&gt; &gt; NetworkStorageSession. But that increases the risk of the change, right?
&gt; 
&gt; Hmm, I see what you mean, NetworkStorageSession is actually in WebCore and
&gt; does not have access to the NetworkSession and does not know about the
&gt; NetworkSession.
&gt; 
&gt; My alternate proposal then then would be to rename the method name to be
&gt; less generic (e.g. shouldBlockCookieDueToITP()) and make sure all call sites
&gt; check that ITP is enabled before calling. This is assuming this function is
&gt; only used for ITP purposes (I don&apos;t actually know that for sure).

Your overall comment was valid - thank you for that! I have another approach.

I will forward the on/off status of ITP to NetworkStorageSession and check it in the shouldBlockCookies() functions.

This increases the patch&apos;s complexity slightly but not in a material way since it&apos;s just about forwarding a boolean flag and the infrastructure for the ITP setting is already there.

New patch coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590906</commentid>
    <comment_count>12</comment_count>
      <attachid>383708</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-11-16 16:00:42 -0800</bug_when>
    <thetext>Created attachment 383708
Proposed patch addressing Chris&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590907</commentid>
    <comment_count>13</comment_count>
      <attachid>383709</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-11-16 16:03:02 -0800</bug_when>
    <thetext>Created attachment 383709
Proposed patch addressing Chris&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590910</commentid>
    <comment_count>14</comment_count>
      <attachid>383709</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-16 16:11:25 -0800</bug_when>
    <thetext>Comment on attachment 383709
Proposed patch addressing Chris&apos;s comments

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

&gt; Source/WebKit/NetworkProcess/NetworkSession.cpp:134
&gt; +        if (auto* storageSession = networkStorageSession())

Could this be move to the top of the method to avoid the duplication?

ASSERT(!m_isInvalidated);
if (auto* storageSession = networkStorageSession())
    storageSession-&gt;setResourceLoadStatisticsEnabled(enable);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590911</commentid>
    <comment_count>15</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-11-16 16:13:09 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #14)
&gt; Comment on attachment 383709 [details]
&gt; Proposed patch addressing Chris&apos;s comments
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=383709&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/NetworkSession.cpp:134
&gt; &gt; +        if (auto* storageSession = networkStorageSession())
&gt; 
&gt; Could this be move to the top of the method to avoid the duplication?
&gt; 
&gt; ASSERT(!m_isInvalidated);
&gt; if (auto* storageSession = networkStorageSession())
&gt;     storageSession-&gt;setResourceLoadStatisticsEnabled(enable);

Yes. Will fix before sending to branch integrators. Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590912</commentid>
    <comment_count>16</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-11-16 16:14:49 -0800</bug_when>
    <thetext>(In reply to John Wilander from comment #15)
&gt; (In reply to Chris Dumez from comment #14)
&gt; &gt; Comment on attachment 383709 [details]
&gt; &gt; Proposed patch addressing Chris&apos;s comments
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=383709&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/NetworkProcess/NetworkSession.cpp:134
&gt; &gt; &gt; +        if (auto* storageSession = networkStorageSession())
&gt; &gt; 
&gt; &gt; Could this be move to the top of the method to avoid the duplication?
&gt; &gt; 
&gt; &gt; ASSERT(!m_isInvalidated);
&gt; &gt; if (auto* storageSession = networkStorageSession())
&gt; &gt;     storageSession-&gt;setResourceLoadStatisticsEnabled(enable);
&gt; 
&gt; Yes. Will fix before sending to branch integrators. Thanks for the review!

Or wait, now I remember why I had it in two places - to guarantee that the ITP object has been created before I tell the storage session that ITP is on. Do you think that&apos;ll cause an issue with your proposed change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590913</commentid>
    <comment_count>17</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-16 16:23:57 -0800</bug_when>
    <thetext>(In reply to John Wilander from comment #16)
&gt; (In reply to John Wilander from comment #15)
&gt; &gt; (In reply to Chris Dumez from comment #14)
&gt; &gt; &gt; Comment on attachment 383709 [details]
&gt; &gt; &gt; Proposed patch addressing Chris&apos;s comments
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=383709&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebKit/NetworkProcess/NetworkSession.cpp:134
&gt; &gt; &gt; &gt; +        if (auto* storageSession = networkStorageSession())
&gt; &gt; &gt; 
&gt; &gt; &gt; Could this be move to the top of the method to avoid the duplication?
&gt; &gt; &gt; 
&gt; &gt; &gt; ASSERT(!m_isInvalidated);
&gt; &gt; &gt; if (auto* storageSession = networkStorageSession())
&gt; &gt; &gt;     storageSession-&gt;setResourceLoadStatisticsEnabled(enable);
&gt; &gt; 
&gt; &gt; Yes. Will fix before sending to branch integrators. Thanks for the review!
&gt; 
&gt; Or wait, now I remember why I had it in two places - to guarantee that the
&gt; ITP object has been created before I tell the storage session that ITP is
&gt; on. Do you think that&apos;ll cause an issue with your proposed change?

It is just setting a Boolean, the setter does not rely on the ITP object in any way (and cannot really since they live at different layers), so I think it would be fine. Why did you have concerns?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590914</commentid>
    <comment_count>18</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-11-16 16:27:04 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #17)
&gt; (In reply to John Wilander from comment #16)
&gt; &gt; (In reply to John Wilander from comment #15)
&gt; &gt; &gt; (In reply to Chris Dumez from comment #14)
&gt; &gt; &gt; &gt; Comment on attachment 383709 [details]
&gt; &gt; &gt; &gt; Proposed patch addressing Chris&apos;s comments
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; View in context:
&gt; &gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=383709&amp;action=review
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Source/WebKit/NetworkProcess/NetworkSession.cpp:134
&gt; &gt; &gt; &gt; &gt; +        if (auto* storageSession = networkStorageSession())
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Could this be move to the top of the method to avoid the duplication?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; ASSERT(!m_isInvalidated);
&gt; &gt; &gt; &gt; if (auto* storageSession = networkStorageSession())
&gt; &gt; &gt; &gt;     storageSession-&gt;setResourceLoadStatisticsEnabled(enable);
&gt; &gt; &gt; 
&gt; &gt; &gt; Yes. Will fix before sending to branch integrators. Thanks for the review!
&gt; &gt; 
&gt; &gt; Or wait, now I remember why I had it in two places - to guarantee that the
&gt; &gt; ITP object has been created before I tell the storage session that ITP is
&gt; &gt; on. Do you think that&apos;ll cause an issue with your proposed change?
&gt; 
&gt; It is just setting a Boolean, the setter does not rely on the ITP object in
&gt; any way (and cannot really since they live at different layers), so I think
&gt; it would be fine. Why did you have concerns?

My concern was that the storage session would immediately start acting as if ITP is on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590915</commentid>
    <comment_count>19</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-11-16 16:38:12 -0800</bug_when>
    <thetext>I will keep this bug open until we have a revision for the branch patch landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591177</commentid>
    <comment_count>20</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-11-18 12:28:52 -0800</bug_when>
    <thetext>It looks like the patch was landed on the branch here:

https://trac.webkit.org/r252549.

Are you planning on landing this on Trunk (or creating a trunk-compatible patch?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591196</commentid>
    <comment_count>21</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-11-18 12:57:48 -0800</bug_when>
    <thetext>Resolved with https://trac.webkit.org/changeset/252549/webkit, as pointed out by Brent. I will land a fix in trunk in another Bugzilla bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592019</commentid>
    <comment_count>22</comment_count>
    <who name="David M">david.mcrae</who>
    <bug_when>2019-11-20 09:12:13 -0800</bug_when>
    <thetext>John, would you know if this will make it into 13.3 before GA?  Thanks for the fix!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592022</commentid>
    <comment_count>23</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-11-20 09:13:59 -0800</bug_when>
    <thetext>(In reply to David M from comment #22)
&gt; John, would you know if this will make it into 13.3 before GA?  Thanks for
&gt; the fix!

We cannot comment on when a change will get into a production release. However, we recognize the importance of the change and view this as a regression from 13.2, so are treating it with high priority.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592025</commentid>
    <comment_count>24</comment_count>
    <who name="David M">david.mcrae</who>
    <bug_when>2019-11-20 09:15:54 -0800</bug_when>
    <thetext>Understood, thanks for the info and the help!  Much appreciated!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596202</commentid>
    <comment_count>25</comment_count>
    <who name="Niklas Merz">niklasmerz</who>
    <bug_when>2019-12-06 03:42:12 -0800</bug_when>
    <thetext>I just did a quick test with iOS 13.3 Beta 4 and it look like the issue is resolved!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596272</commentid>
    <comment_count>26</comment_count>
    <who name="David M">david.mcrae</who>
    <bug_when>2019-12-06 09:19:26 -0800</bug_when>
    <thetext>Agreed, thanks to those that fixed this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597995</commentid>
    <comment_count>27</comment_count>
    <who name="David M">david.mcrae</who>
    <bug_when>2019-12-12 08:05:58 -0800</bug_when>
    <thetext>FYI it appears as though this issue exists in the iOS 13.3 Simulator on the Mac with Xcode 11.3 (11C29)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607543</commentid>
    <comment_count>28</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-01-16 10:53:29 -0800</bug_when>
    <thetext>*** Bug 206295 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665323</commentid>
    <comment_count>29</comment_count>
    <who name="Niklas Merz">niklasmerz</who>
    <bug_when>2020-06-23 03:03:42 -0700</bug_when>
    <thetext>I just tested this with iOS 14 developer beta. This is broken again.

If I run the attached test project with Xcode 12 beta on an iPhone with iOS 14 I dpn&apos;t see the cors image. The latest iOS 13 still works as expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665342</commentid>
    <comment_count>30</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-06-23 05:29:11 -0700</bug_when>
    <thetext>(In reply to Niklas Merz from comment #29)
&gt; I just tested this with iOS 14 developer beta. This is broken again.
&gt; 
&gt; If I run the attached test project with Xcode 12 beta on an iPhone with iOS
&gt; 14 I dpn&apos;t see the cors image. The latest iOS 13 still works as expected.

Please file a new bug and relate this one!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665407</commentid>
    <comment_count>31</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-06-23 08:51:07 -0700</bug_when>
    <thetext>(In reply to John Wilander from comment #21)
&gt; Resolved with https://trac.webkit.org/changeset/252549/webkit, as pointed
&gt; out by Brent. I will land a fix in trunk in another Bugzilla bug.

Was this fix ever ported to trunk, or did we forget to do that?


(In reply to David Kilzer (:ddkilzer) from comment #30)
&gt; (In reply to Niklas Merz from comment #29)
&gt; &gt; I just tested this with iOS 14 developer beta. This is broken again.
&gt; &gt; 
&gt; &gt; If I run the attached test project with Xcode 12 beta on an iPhone with iOS
&gt; &gt; 14 I dpn&apos;t see the cors image. The latest iOS 13 still works as expected.
&gt; 
&gt; Please file a new bug and relate this one!

Bug 213510: REGRESSION (iOS 14): WKWebView does not include cookies in cross-origin images</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>383348</attachid>
            <date>2019-11-12 04:36:09 -0800</date>
            <delta_ts>2019-11-12 04:36:09 -0800</delta_ts>
            <desc>Example project with test page</desc>
            <filename>WebKitBugiOS13.3Beta.zip</filename>
            <type>application/zip</type>
            <size>44669</size>
            <attacher name="Niklas Merz">niklasmerz</attacher>
            
              <data encoding="base64">UEsDBAoAAAAAACtrbE8AAAAAAAAAAAAAAAAVABAAV2ViS2l0QnVnaU9TMTMuM0JldGEvVVgMAOSk
yl2ypMpd9QEUAFBLAwQUAAgACAA2a2xPAAAAAAAAAAAAAAAAHgAQAFdlYktpdEJ1Z2lPUzEzLjNC
ZXRhLy5EU19TdG9yZVVYDACtpMpdx6TKXfUBFADtmc1u00AQx2fTQG2hgoUqJce9IHEIKB+UwKFS
COGQC0JySw8FtXYcNa4crxU7dSEE5dKHgBdAnHgGjogHgPfgAWAdT1FqsJVAD1E7P2n9X2t3xt7J
elezAQDWHFoVgCIAKBCrdg3+ioLlD3Ko12Vh0h7gCLqwI4spawRBEARBLCMsFiVl3ycI4hITrQ8c
tYE6iZVhew41P2OjoXLUBuokVob9cqh5VAVVQ+WoDdRJrLhoMUw+GD6ZYYbCNFSO2lhoyARxqYhy
9zV4CgYEYJ/J322pYdsRHdMRJsSf9UdZbv+cMrXOsDRD30PLL6bn2H5QLn9juZX8lauriqoq6pr6
Uu+JUA+MYOg3jcFudPfMCHom1reEcH7XDfO53Q33tPXHwg0M2+0Opsa21ZVdXuzYriXCphi6lr87
0zB90J5WHI2qD6slXn1QH5f4qF4vl/i92v3xWFUKtyqb7f3+q9ejN+O37+KYnK4xcCMRrPfZQz7S
B64j3AOI18dCek+4C8fQAQGWvPNgIGuHZ0PNColQL+jNOajoHdH34hf/+n1xD33RauH7KNsf7nza
PPn86F+8WOfgxevNjIbx6Hozw8OWvPqyzU/E9CQR07l8LNlErtU2Sry2Uf7viTzX4BNTej3DZhva
qYH/kQj83H4uavDnDkDiByCIc2MllmKU/z9JP/8nCOICw/ItvdWE9B0myrW5LPunBpB9EMBm/jBc
uoMA2v8JAn4BUEsHCOK6KG0mAgAABCAAAFBLAwQKAAAAAABGa2xPAAAAAAAAAAAAAAAACQAQAF9f
TUFDT1NYL1VYDADkpMpd5KTKXfUBFABQSwMECgAAAAAARmtsTwAAAAAAAAAAAAAAAB4AEABfX01B
Q09TWC9XZWJLaXRCdWdpT1MxMy4zQmV0YS9VWAwA5KTKXeSkyl31ARQAUEsDBBQACAAIADZrbE8A
AAAAAAAAAAAAAAApABAAX19NQUNPU1gvV2ViS2l0QnVnaU9TMTMuM0JldGEvLl8uRFNfU3RvcmVV
WAwAraTKXcekyl31ARQAY2AVY2dgYmDwTUxW8A9WiFCAApAYAycQGwGxGxCD+BVAzABT4SDAgAM4
hoQEQZkVMF3oAABQSwcIC4jAODUAAAB4AAAAUEsDBAoAAAAAAMtEE08AAAAAAAAAAAAAAAAoABAA
V2ViS2l0QnVnaU9TMTMuM0JldGEvTmF0aXZlV2Vidmlld1Rlc3RzL1VYDADkpMpd3kNaXfUBFABQ
SwMEFAAIAAgAy0QTTwAAAAAAAAAAAAAAAEAAEABXZWJLaXRCdWdpT1MxMy4zQmV0YS9OYXRpdmVX
ZWJ2aWV3VGVzdHMvTmF0aXZlV2Vidmlld1Rlc3RzLnN3aWZ0VVgMAJ6kyl3eQ1pd9QEUAKWSwW7b
MAyG73oKHreL0uwwFDutSIdil6GHFt2VkelagCwZFO3MKPJAfY092Sgl6bLBxVDMMAxD5E9+5K/V
yqxWAN9Q/EQPtJ087e4oS7Z551t5JajHNbJhQqEGtjPcUDNn+BqF8QGZ4KbfdpAirD/a9YVdX9qD
IA0z+8dO4OczfLhYXy7qLFyFADUvA1MmnqgpBYzx/ZBY4PumcJjPol/cBoLj+R+oxriAOS/wfzoW
2GAmeDIG9EkTMfuGoB2jg0xyP7x7r0E4Pop/O0oJjAO4pIkdMVm463yGnqRLDeifwxDKRqhNOo10
ihan5BRBl5FaIHQdFOwXTaxZFdXWbvslICHk67SLS0wl1mjs31jYCvF/UR1hsnz5gf0Q6G+e2ldf
jECHjFIfq650w3Do43T19lx4r1aoK1dZ7RaVN+p8qLfrJM0gCXQpvp1hTiPXQhkGTs3oDrt2iZmc
lEszBnmF/JZYzekxOnrjEMNv5dIUmUJre8I8Mp0VPHeqMqpJyg87jFJGOilKUHxfe1UTXyrsT3Ps
zS9QSwcI/gwO+5YBAACxAwAAUEsDBAoAAAAAAEZrbE8AAAAAAAAAAAAAAAAxABAAX19NQUNPU1gv
V2ViS2l0QnVnaU9TMTMuM0JldGEvTmF0aXZlV2Vidmlld1Rlc3RzL1VYDADkpMpd5KTKXfUBFABQ
SwMEFAAIAAgAy0QTTwAAAAAAAAAAAAAAAEsAEABfX01BQ09TWC9XZWJLaXRCdWdpT1MxMy4zQmV0
YS9OYXRpdmVXZWJ2aWV3VGVzdHMvLl9OYXRpdmVXZWJ2aWV3VGVzdHMuc3dpZnRVWAwAnqTKXd5D
Wl31ARQAY2AVY2dgYmDwTUxW8A9WiFCAApAYAycQGwFxJRCD+KsZiAKOISFBUCZIxxwg5kdTwogQ
F0/Oz9VLLCjISdULSa0occ1Lzk/JzEsHSpaWpOlaWBsamxgZmltamAAAUEsHCHAajcBdAAAAqwAA
AFBLAwQUAAgACADLRBNPAAAAAAAAAAAAAAAAMgAQAFdlYktpdEJ1Z2lPUzEzLjNCZXRhL05hdGl2
ZVdlYnZpZXdUZXN0cy9JbmZvLnBsaXN0VVgMAJ2kyl3eQ1pd9QEUAH2ST2+CMBiHz/NTdM0O20Gq
l2VZKgZoNSSIjRaznQyDqkSgDVQd3371z7JMx659f+/T59cUDz+LHOxFVWeyHMC+1YNAlIlMs3I9
gBEfdV/g0O7gezL1+DujQOVZrQGL3MD3AOwi5CiVC4QIJ4AF/pwDw0CIhhDAjdbqFaHD4WDFx5SV
yOIYrBGrpBKVbgID65oFK9UpNNec6b90zGmaJdru3OGtaGxv5O7KNBdE7EUuVSFKPRNrk8boODap
WldG3n54JHRBgymb0JAvAyccR86YPmF0mV/x6KdIdjr+yMUtiL5RL+KOG9Bl6EzaGX5qbLJVJqpb
BptNSeTxpRuFxHB8Yqz8kU9n7bRyJYlpbrrFVbM4v8k1+Nnqte2HcfFHl2+Pf4uwONnGa8EbdUNw
jX7b2nwjK30RnZ8S19v9dt2Wgv2fPEbnj4DR6ZvYnS9QSwcIhcLZAE4BAAC9AgAAUEsDBAoAAAAA
AMtEE08AAAAAAAAAAAAAAAAqABAAV2ViS2l0QnVnaU9TMTMuM0JldGEvTmF0aXZlV2Vidmlld1VJ
VGVzdHMvVVgMAOSkyl3eQ1pd9QEUAFBLAwQUAAgACADLRBNPAAAAAAAAAAAAAAAARAAQAFdlYktp
dEJ1Z2lPUzEzLjNCZXRhL05hdGl2ZVdlYnZpZXdVSVRlc3RzL05hdGl2ZVdlYnZpZXdVSVRlc3Rz
LnN3aWZ0VVgMAKCkyl3eQ1pd9QEUAJVUwW7TQBC9+yvmmBzqNBxQhcQhSqHKBXFo1F439jhesd41
u7MxFqrEb/AJ/Aafwpfw1nabUAIIX2ztzL735s2MF4tssSB6p0Qf+I53B83ddnPLQUIeOl3JH8MI
DLG1ZyVc0q6nGy77QBsrXt0pz3TT7GpylpYv8+VlvrzKxwuu7b3e10Lfv9GLy+XV2Xs5rYyhIS+Q
58D+wGUCyDLdtM4L3a+TjiwrjArhrMRXU85aBabPWUZ43IG91yVTFW1BgWXbzuYI0vRA4fsoKRBb
KhwSa/ac022tAzUstSsJX4UyJhXNlYNgqZm0PbgCIlCvq4hVUZOA++mOHbIGsXl2SrextN0MuYG0
JPAYIuB7oOO+OAriWtJNw6WG1Qh0NVtSVCltIuhdUUQP1EfQwlnRNvKqEvZvp6TXSDeBf6F+4m0i
mIyCJfUgU7Wt0VM1UitJh/2Qm9O103aPAwhFUaNRnUazGvWBKSQulFEDgm0g+PObGUel9+vtZnXk
ms3zUcRs/heLfnz5itcwBMqOBrFMPdCilYFh8IkuIAbEKumEEZUqYJXXbGUs7AJz9TFqjz4mlb2L
fuI4trUnH23qPo+zcjICivYOX61JuBBRusGUsbiHc9MmrPy16+y5gUuxErF/z5xKXf3/kTtRNYkJ
8uaTalrDz/VssS6eC+fLodOO9vAXnvq0552Hxzh+bEj+/CZ2bhWwr0LKlsAxw+8hcSalIeHBFV31
p4633pWxGDcJxGCXtPXRyFH6Q/YTUEsHCDQZZa45AgAArgQAAFBLAwQKAAAAAABGa2xPAAAAAAAA
AAAAAAAAMwAQAF9fTUFDT1NYL1dlYktpdEJ1Z2lPUzEzLjNCZXRhL05hdGl2ZVdlYnZpZXdVSVRl
c3RzL1VYDADkpMpd5KTKXfUBFABQSwMEFAAIAAgAy0QTTwAAAAAAAAAAAAAAAE8AEABfX01BQ09T
WC9XZWJLaXRCdWdpT1MxMy4zQmV0YS9OYXRpdmVXZWJ2aWV3VUlUZXN0cy8uX05hdGl2ZVdlYnZp
ZXdVSVRlc3RzLnN3aWZ0VVgMAKCkyl3eQ1pd9QEUAGNgFWNnYGJg8E1MVvAPVohQgAKQGAMnEBsB
cSUQg/irGYgCjiEhQVAmSMccIOZHU8KIEBdPzs/VSywoyEnVC0mtKHHNS85PycxLB0qWlqTpWlgb
GpsYGZpbWpgAAFBLBwhwGo3AXQAAAKsAAABQSwMEFAAIAAgAy0QTTwAAAAAAAAAAAAAAADQAEABX
ZWJLaXRCdWdpT1MxMy4zQmV0YS9OYXRpdmVXZWJ2aWV3VUlUZXN0cy9JbmZvLnBsaXN0VVgMAJ6k
yl3eQ1pd9QEUAH2ST2+CMBiHz/NTdM0O20Gql2VZKgZoNSSIjRaznQyDqkSgDVQd3371z7JMx659
f+/T59cUDz+LHOxFVWeyHMC+1YNAlIlMs3I9gBEfdV/g0O7gezL1+DujQOVZrQGL3MD3AOwi5CiV
C4QIJ4AF/pwDw0CIhhDAjdbqFaHD4WDFx5SVyOIYrBGrpBKVbgID65oFK9UpNNec6b90zGmaJdru
3OGtaGxv5O7KNBdE7EUuVSFKPRNrk8boODapWldG3n54JHRBgymb0JAvAyccR86YPmF0mV/x6KdI
djr+yMUtiL5RL+KOG9Bl6EzaGX5qbLJVJqpbBptNSeTxpRuFxHB8Yqz8kU9n7bRyJYlpbrrFVbM4
v8k1+Nnqte2HcfFHl2+Pf4uwONnGa8EbdUNwjX7b2nwjK30RnZ8S19v9dt2Wgv2fPEbnj4DR6ZvY
nS9QSwcIhcLZAE4BAAC9AgAAUEsDBAoAAAAAACxobE8AAAAAAAAAAAAAAAAtABAAV2ViS2l0QnVn
aU9TMTMuM0JldGEvTmF0aXZlV2Vidmlldy54Y29kZXByb2ovVVgMAOSkyl0Un8pd9QEUAFBLAwQU
AAgACAAsaGxPAAAAAAAAAAAAAAAAPAAQAFdlYktpdEJ1Z2lPUzEzLjNCZXRhL05hdGl2ZVdlYnZp
ZXcueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvalVYDAAUn8pdFJ/KXfUBFADtXFtzm8gSflZ+hVaV
h02ykSXZGyfls6fOCEYyGwQqLk68LxSWxjYbGVQIre06tf/99HARDAwCJNlJ7XEebAu6m56er3u+
GVo5Omr/9PqtaYw+vn3906v/vmrZ/uzW+YtcEH/leG77t3b/7FVrtrBXK7KCTyDxN1zwrv4ksyAV
+rW3uRhJvTp62x6SG8dtT4dfh2tnMR85C9JegQDVeHv0qtU6FhA+xf1fB/3TDz386VOvhz71BsNR
G3TRcimSBbmxA9Jd3TvXQRtM6d7an4Ebb4/oM5yVDb+y5s/a1/BTI9dwPTZ+Us/426OzNh1X4tMp
T+3CIfeC5wa+t1gQfy+3PtS2n/cM8TQntuN2V4HnP155tj+nTmlk1dytj3WM5z0SYqUhE2LAS7Dq
Pszs8I+dPRrWMZ73aMRTku21O7vVZz4hB4mV2OQhOQ8HiKes2AFk3hdy9RcAwSArGOIeGBt8avSM
nIfHv1Zqm9LePh6fNHxK7CUIYXdeWlqY4kMzChBMfCkgd1Pfe3jkVaHBB54nfPVofKDa2oyxKEVD
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
u8QhjwJeMPuC2V0xy6+zJ9xO3e9TZ58ej3H/wz8CkdlG7OfCZMZoPrT1iuQJt7HgexXJF8D9owDH
Vri4Q6Gq+SDbplBs3+b1Ax64kzsP+YITKeKZW4X2r63dE8xXMiteWmTaRObk2l4vAubB0urCWTkA
wXbyso0npWxl90/x1ceDBXLroQ0TyIo99DME8sm+53ewaG7dyDHRrCDQzxDNJ/wO2qHiuZ2wZeNZ
tdY+XTw3pXd7QaWR9z0vUKNvUzX+fw7/fvU/UEsHCDizL54SDQAAklcAAFBLAwQKAAAAAADLRBNP
AAAAAAAAAAAAAAAAOAAQAFdlYktpdEJ1Z2lPUzEzLjNCZXRhL05hdGl2ZVdlYnZpZXcueGNvZGVw
cm9qL3hjdXNlcmRhdGEvVVgMAOSkyl3eQ1pd9QEUAFBLAwQKAAAAAAATdBNPAAAAAAAAAAAAAAAA
UwAQAFdlYktpdEJ1Z2lPUzEzLjNCZXRhL05hdGl2ZVdlYnZpZXcueGNvZGVwcm9qL3hjdXNlcmRh
dGEvZ2VkeXNpbnRyYXdhcmUueGN1c2VyZGF0YWQvVVgMAOSkyl3lllpd9QEUAFBLAwQKAAAAAAA8
dBNPAAAAAAAAAAAAAAAAXgAQAFdlYktpdEJ1Z2lPUzEzLjNCZXRhL05hdGl2ZVdlYnZpZXcueGNv
ZGVwcm9qL3hjdXNlcmRhdGEvZ2VkeXNpbnRyYXdhcmUueGN1c2VyZGF0YWQveGNkZWJ1Z2dlci9V
WAwA5KTKXTSXWl31ARQAUEsDBBQACAAIADx0E08AAAAAAAAAAAAAAAB3ABAAV2ViS2l0QnVnaU9T
MTMuM0JldGEvTmF0aXZlV2Vidmlldy54Y29kZXByb2oveGN1c2VyZGF0YS9nZWR5c2ludHJhd2Fy
ZS54Y3VzZXJkYXRhZC94Y2RlYnVnZ2VyL0JyZWFrcG9pbnRzX3YyLnhjYmtwdGxpc3RVWAwAn43K
XTSXWl31ARQAs7GvyM1RKEstKs7Mz7NVMtQzUFJIzUvOT8nMS7dVCg1x07VQsrfjsnEqTc5OLeFS
UFAoLc1MUbBVUDIzcrQwczO21HU0dTLWNTF3MdR1MnR203VyM3a0cDN1MbQ0MFYCaSipLEgFaTAE
86BWgQSMgJYBjdaHmG3HBQBQSwcI6phYN3oAAACMAAAAUEsDBAoAAAAAAMtEE08AAAAAAAAAAAAA
AABdABAAV2ViS2l0QnVnaU9TMTMuM0JldGEvTmF0aXZlV2Vidmlldy54Y29kZXByb2oveGN1c2Vy
ZGF0YS9nZWR5c2ludHJhd2FyZS54Y3VzZXJkYXRhZC94Y3NjaGVtZXMvVVgMAOSkyl3eQ1pd9QEU
AFBLAwQUAAgACADLRBNPAAAAAAAAAAAAAAAAdQAQAFdlYktpdEJ1Z2lPUzEzLjNCZXRhL05hdGl2
ZVdlYnZpZXcueGNvZGVwcm9qL3hjdXNlcmRhdGEvZ2VkeXNpbnRyYXdhcmUueGN1c2VyZGF0YWQv
eGNzY2hlbWVzL3hjc2NoZW1lbWFuYWdlbWVudC5wbGlzdFVYDACejcpd3kNaXfUBFACtkDFvgzAQ
hefwK1xnhku3qnIctSFVI6EUCVDVJRHFp2AVMLItSP59TSiJunXo5PPd9947HVud6op0qI1UzZLe
BwtKsCmUkM1xSbP0xX+gK+6xu/BtnX7EG9JW0lgSZ8/Rdk2oD/DUthUChGlI4mibpMR5AGx2lNDS
2vYRoO/7IB+ooFD1ABqItWpR23PkzHwnCIQV1MWM7r/WcV0hC8u9GfvCM0+KEmvMDOrE5hYZDE03
+2FGaJdb2eE7fnYS++BUmItoYm/wSCstUL/Kxl6BGXM/PKLmCwZTOQjhDzGH/dyUuUYx3x/+MXIq
bu/lWNz7BlBLBwhqUwFH8gAAAMMBAABQSwMECgAAAAAAy0QTTwAAAAAAAAAAAAAAAEEAEABXZWJL
aXRCdWdpT1MxMy4zQmV0YS9OYXRpdmVXZWJ2aWV3Lnhjb2RlcHJvai9wcm9qZWN0Lnhjd29ya3Nw
YWNlL1VYDADkpMpd3kNaXfUBFABQSwMEFAAIAAgAy0QTTwAAAAAAAAAAAAAAAFkAEABXZWJLaXRC
dWdpT1MxMy4zQmV0YS9OYXRpdmVXZWJ2aWV3Lnhjb2RlcHJvai9wcm9qZWN0Lnhjd29ya3NwYWNl
L2NvbnRlbnRzLnhjd29ya3NwYWNlZGF0YVVYDACfjcpd3kNaXfUBFACzsa/IzVEoSy0qzszPs1Uy
1DNQUkjNS85PycxLt1UKDXHTtVCyt+OyCc8vyi4uSExO5VJQgClXsFUAa7ADidm4ZeakBqWmgdhA
kJOfnFgCVVOcmpNm5QfklqWGpyaVZaaW61UAbUgtKMrPgmrWh+oG2qQPt8qOCwBQSwcIWZ9zrHgA
AACeAAAAUEsDBAoAAAAAAMtEE08AAAAAAAAAAAAAAABMABAAV2ViS2l0QnVnaU9TMTMuM0JldGEv
TmF0aXZlV2Vidmlldy54Y29kZXByb2ovcHJvamVjdC54Y3dvcmtzcGFjZS94Y3VzZXJkYXRhL1VY
DADkpMpd3kNaXfUBFABQSwMECgAAAAAADmtsTwAAAAAAAAAAAAAAAGcAEABXZWJLaXRCdWdpT1Mx
My4zQmV0YS9OYXRpdmVXZWJ2aWV3Lnhjb2RlcHJvai9wcm9qZWN0Lnhjd29ya3NwYWNlL3hjdXNl
cmRhdGEvZ2VkeXNpbnRyYXdhcmUueGN1c2VyZGF0YWQvVVgMAOSkyl18pMpd9QEUAFBLAwQUAAgA
CACZVRVPAAAAAAAAAAAAAAAAgwAQAFdlYktpdEJ1Z2lPUzEzLjNCZXRhL05hdGl2ZVdlYnZpZXcu
eGNvZGVwcm9qL3Byb2plY3QueGN3b3Jrc3BhY2UveGN1c2VyZGF0YS9nZWR5c2ludHJhd2FyZS54
Y3VzZXJkYXRhZC9Xb3Jrc3BhY2VTZXR0aW5ncy54Y3NldHRpbmdzVVgMAJ+Nyl2CBF1d9QEUAH2Q
QU/CQBCFz/Ir1r3T0ZsxpQQoJCSNNLYcONbdQRq33WZ3Su2/dwrECBpPm8x779s3E04/KyOO6Hxp
64l8DB6kwFpZXdbvE7nNV+MnOY1G4X28WeS7dCkaU3oS6XaerBdCjgFmTWMQIM5jkSbrLBfMAFi+
SCEPRM0zQNd1QTG4AmWrweghdbZBR33CsDEHAk1a8jdn+lUdnupSUTS6Cz+wj+ZtaXRiVUHsyKg3
GMIwZ9mT49bR1iN3Sh3u0fEq6EO4KBfEovVkqytQ3je/OK9oWDtibmN0/Oq4oOKW9UP6t1SM+6I1
dBtfe9/iqjSE7s9YdrDdTA0tMnXACje16W8ZyaDa1ik80fyyLt4M6m8UuRaBrwjnM4ZwOnI0+gJQ
SwcId4pYQR4BAAD7AQAAUEsDBBQACAAIAA5rbE8AAAAAAAAAAAAAAACFABAAV2ViS2l0QnVnaU9T
MTMuM0JldGEvTmF0aXZlV2Vidmlldy54Y29kZXByb2ovcHJvamVjdC54Y3dvcmtzcGFjZS94Y3Vz
ZXJkYXRhL2dlZHlzaW50cmF3YXJlLnhjdXNlcmRhdGFkL1VzZXJJbnRlcmZhY2VTdGF0ZS54Y3Vz
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
gXGRcQlxiXGyuOQ4VVxq3PC4mrix8Zfiv42/Ef+3mBC7igPFA8UJ4kSxTJwsThGni9VirVgvHi6u
Eo8WG8R14gbxWHGTuEVsE7eJnxFvEO8Uf5gAErwTBiVkJYxMMCdMTJic8HgCmzAzYXbCnIRnE5Yn
rEzoTFiTsD5hY8LmhNcTtiWcGxQwqGLQzEH7B/0uiZPIJJkSjSRbkispkBRLhktGSqolNRKjxCQZ
K5kgaZdMljwu2SY5KDkkOSJ5V3In0TnRNdE9UZCYnViWWJE4JHF44nOJyxJXJK5M7Ew8k/hN4neJ
3yf+mHgj8SepuzRYGiYVSqOlsdI4qUyaLE2RpkszpVnSYulgaYV0qHS4tEo6QTpTOls6R/qsdK70
eelL0g7pauk66SvSTdI90jel+6QHk4RJ4iRFkiopLSkzSZNUkFSUVJpUnjQkaVhSa9KTSZuT3k26
mHQ96aekX5NuJ/2ZdEcWKIuUJchSZRmyLJlOliPLlxXJRshGycbIamX1MrNsnKxJNlE2U/aS7G3Z
V7KfZX/JRfJBcqlcLk+Wa+Ql8lL5YHm5fKTcLG+WPyZvlbfLp8inyVn5c/J58vnyhQo/RZQiRiFS
9Fe8otileF/xoeITxUnFacXnirOKrxRfKy4rflf8pfhb8U8yTEbuZ7JzsmuyR7IgWZxcmNySPD95
d/IXyXeVYco0ZbYyV1mgLFIOUVYra5R1ygalWTlO2aQcr5yhfFI5R/mscr5ygfJF5RLleuUryl3K
vcr9yreU7yjfU36g/FB5VnlVeUf5jwpTkSonlavKQ+Wl8lUFqAaoxKpBqkRVkkqhUqlSVekqtUqj
qlY9rupUHVF9n+KWIkkpSWlOmZAyKWVqyrSUJ1OeT3khZWHKiylLUpalrE95NWVLytaUXSl7Uvam
7E/5MOWTlHMpX6d8k/Jdyg8p11N+SvklFUv1TA1MDUkNT41MjU6NTx2UKk2VpypTU1JzUvNSC1KL
U9ekbk3dnrozdU9aUJoorV/agDRx2uy0BWlr0tanbUzbnPZ62va0XWlvpO1L+yjteNrJtFNpZ9K+
SDubdj7tYtqldJAeka5NN6Y/nb4l/aP0H9N/S/8j/U763Qw6Q5Dhk+GXEZgRnBGaEZ4xMEOSIc2Q
Z6RkpGVkZmRllGaUZ4zJsGWMz2jPmJIxLWN6xhMZT2Y8nfFcRkfG6oy1GeszXsl4NeO1jG0ZOzJ2
Z7yRcSbjt8zgzLTMmsyZmesz3838NvNG5s+ZtzJvq4HaWe2qdld7qr3UPupQdX91glqiTlIr1Snq
dHWmulg9WD1aXas2qk3qJrVFbVW3qmeo56lXqdeqN6g3qbeot6p3qHer31TvVx9Xf6o+rf5M/YX6
nPqC+pL6svqK+vssOkuUlZ/VmDU/a3vWZ1m3Nf6aCE2UJlYTp5FoVJo0TaZGo8nW5GjyNAWaCo1B
U68xacZpWjRWTZtmgmaW5inN05rFmhWalZpOzTrNBs0mzWbNPs37mnOaC5pLmm81VzU/aG5oftbc
0vyuddV6aAVab62v1l8bpA3RhmmF2ihtpna0drp2tfZ97Q86gW6Qrlg3VDdCN0pXrTPpHtPZdG26
Cbp23WTdk7pndXN183Uv6pbolulW6Dbp9uj26w7qDuve072vO6b7SHdO973uhu5n3S3dn7q/s0E2
lu2Z7ZXtk+2fPTn7yew52c9kz9XH6WX6dL1ar9Xr9Xn6Mn2lfpi+Sj9KX60fr5+pn6/v0K/Wv6rf
qT+sP6b/WH9Cf0r/mf6i/hv9d/rv9T/or+tv5xA5zjluOZ45vjkBOcE5oTn9cwbmiHMkOdNynsl5
Lmdezgs53+X8mvNXzt1cmEvkuuZ65Hrl+ub652bntuauyF2buyF3U+7m3AO5R3OP5X6ceyL3VF5M
njgvJS8zT5OXnZefV5RXmleWNzxvTF5b3oy8Z/I25W3LO5l3Ne9uvmu+W757vmd+aH5sfr/8gfkJ
+Yn5Kfnp+ep8bb4+Pzd/Yv66/NMFoCC4QFKgKkgryCzIKigrqCwYVlBVMLqgoaC1oL1gSsG0gpkF
swueKni6YH7BkoItBXsL9hXsLzhY8GHBJwUnC04XfF7wZcGVgu8Lfii4UbimcGvhtsLthTsLDxe+
U3i08Fjhx4XHC78q/LHwzyL3IkGRT5F/UVBRaFFEUVRRbFG/otSijCJ1kaYouyi3qKCouGhwUXlR
ZVF10diiGUWLil4tOlR0puhGsVOxX3F48YjiMcUNxY8VP178RPGTxU8XP1e8sHhx8bLil4pfLj5Z
fL2ELhGUhJSEl0SWxJTElQwoiS9RlahLtCX6kryS0pLykiElw0uqSmaWbC05X/JdyfWSO6XOpYJS
n1L/0qBSYWl0qai0f+nAUlmpojStNK+0tLS8dEjp8NIxpbWl9aXm0nGlraUTSp8onV+6pHR56crS
ztINpZtKt5RuLd1euq/0SOmHDcMaqhpMDW0NExsmNzzewDbMbJjdsKDhxYYlDcsbVjZ0NKxqWNPw
fsMNU5BJayo0VZhGmcaYzKYWU5tppmmWaa5pvmmBaZFplWmtab1po2mz6TXTHtNe037TQdNR0/um
Y6ZTpu9NP5humH423TL9bvrLdNcMzYSZNjub/c2B5mBzmHmqea55gXlp1zkPxv/Sh/qe85iX/39Q
SwcIQigsCdNHAABAeQAAUEsDBAoAAAAAAJlVFU8AAAAAAAAAAAAAAABOABAAV2ViS2l0QnVnaU9T
MTMuM0JldGEvTmF0aXZlV2Vidmlldy54Y29kZXByb2ovcHJvamVjdC54Y3dvcmtzcGFjZS94Y3No
YXJlZGRhdGEvVVgMAOSkyl2CBF1d9QEUAFBLAwQUAAgACADLRBNPAAAAAAAAAAAAAAAAZgAQAFdl
YktpdEJ1Z2lPUzEzLjNCZXRhL05hdGl2ZVdlYnZpZXcueGNvZGVwcm9qL3Byb2plY3QueGN3b3Jr
c3BhY2UveGNzaGFyZWRkYXRhL0lERVdvcmtzcGFjZUNoZWNrcy5wbGlzdFVYDACfjcpd3kNaXfUB
FABVjs0OgjAQBs/yFLV3WH8uxlSMUkxIUEmEGI+ENtoItCmr6Ntb9OR1MzP7sfWrqclT2k7pdkWn
wYQS2VZaqPa6okW+8xd0HXpszI9RfsliYmrVIcmKbZpEhPoAG2NqCcBzTrI0OeXENQDiAyX0hmiW
AH3fB+VABZVuBrCDzGojLb5TF/OdEAgU1L351f/muKtQFYbeiN3lO0x4zJWIdGMeKPdlNZ9tFZ5L
27rBDAbCgWgfEpwIP5PBtxt6H1BLBwh3FXK4vAAAAO4AAABQSwMEFAAIAAgAmVUVTwAAAAAAAAAA
AAAAAGoAEABXZWJLaXRCdWdpT1MxMy4zQmV0YS9OYXRpdmVXZWJ2aWV3Lnhjb2RlcHJvai9wcm9q
ZWN0Lnhjd29ya3NwYWNlL3hjc2hhcmVkZGF0YS9Xb3Jrc3BhY2VTZXR0aW5ncy54Y3NldHRpbmdz
VVgMAJ+Nyl2CBF1d9QEUAFWOMW/CMBSE5+ZXuN6T124VMkZAUgkpKpYwQ8cQv1KrjmPZLiH/HgcQ
EuvdfXfHFufOkBP6oHs7p+/FGyVo215pe5zTvfzMP+iCZ+y13K7lt6iIMzpEIvarerMmNAdYOmcQ
oJQlEfVmJ0nqAKi+KKG/MboZwDAMRTOlirbvpmAA4XuHPo51KssTUKioaJq5tT/dSarSbeTZC/vD
ka/+tVG7MUTs5OiQwSQmL0SfLvOt10dtG8PgLtwx4fGkcQiVbQ4G1QP7aUxASBtwG2FwvcCzC1BL
Bwir0DdV0gAAABkBAABQSwMECgAAAAAARmtsTwAAAAAAAAAAAAAAADYAEABfX01BQ09TWC9XZWJL
aXRCdWdpT1MxMy4zQmV0YS9OYXRpdmVXZWJ2aWV3Lnhjb2RlcHJvai9VWAwA5KTKXeSkyl31ARQA
UEsDBBQACAAIAMtEE08AAAAAAAAAAAAAAABLABAAX19NQUNPU1gvV2ViS2l0QnVnaU9TMTMuM0Jl
dGEvTmF0aXZlV2Vidmlldy54Y29kZXByb2ovLl9wcm9qZWN0Lnhjd29ya3NwYWNlVVgMAOSkyl3e
Q1pd9QEUAGNgFWNnYGJg8E1MVvAPVohQgAKQGAMnEBsB8SogBvHvMBAFHENCgqBMkI4TQCyCpoQJ
Ks7CwCAVklpcEpCTmFfsk1hcElqQXpSYkuqckZqcDVV7BogFgOqS83P1EgsKclL1coAKS4tTU1IS
S1KVA4JBigwN9Yzm9p6KBbHf3pupAKIBUEsHCLHgd66DAAAA3AAAAFBLAwQUAAgACAAsaGxPAAAA
AAAAAAAAAAAANwAQAF9fTUFDT1NYL1dlYktpdEJ1Z2lPUzEzLjNCZXRhLy5fTmF0aXZlV2Vidmll
dy54Y29kZXByb2pVWAwA5KTKXRSfyl31ARQAY2AVY2dgYmDwTUxW8A9WiFCAApAYAycQGwFxHRCD
+BsYiAKOISFBUCZIxwIgFkBTwogQl0rOz9VLLCjISdXLSSwuKS1OTUlJLElVDggGKTw771QsiI4R
fGMBogFQSwcI2RAQClwAAACwAAAAUEsDBAoAAAAAAD1rbE8AAAAAAAAAAAAAAAAjABAAV2ViS2l0
QnVnaU9TMTMuM0JldGEvTmF0aXZlV2Vidmlldy9VWAwA5KTKXdakyl31ARQAUEsDBBQACAAIAOBq
bE8AAAAAAAAAAAAAAAA3ABAAV2ViS2l0QnVnaU9TMTMuM0JldGEvTmF0aXZlV2Vidmlldy9WaWV3
Q29udHJvbGxlci5zd2lmdFVYDAChpMpdJKTKXfUBFADlVUtu2zAQ3esUE69kIKXiLopCQRaB03yQ
wAnipF4URUFLY4sIJaokJUMteqBeoycrP7JsJVoELdBNBUggh+/Nn6MoCqII4CPDzVQUWgrOURK1
YSvtDmZUsxoXuKwNwkiccCqRakxh2cAFpo2CK8OkCyoRLvJlBqKAyTsyOSKT98QTRNlIts40/PoJ
b48m7wd5BE45B4dTIFGhrDG1CoKA5aWQGh6vrpneboxTdhcECadKPQshNti+5BAW1zNas7WJSBRn
yNGsEL4HAFBTCRtcWkJsYAu/PAjsGYgapWQpwqoqErB5OGPpjaBpOPZs93QL4+52yVbAUUMlOZzA
4/1NqLRkxTqGUaZ1qeIoKtiTcZ7kKL+RFOsoEVJpVHq0r9o+pSHqcGTNjsa9E+u7xK+VYXkr934T
GrOxtd2Ht1BiPZhnouLpJS1SjlMhnhgqo0LLCnuUNjOE25hb/k7pj2D3HciXJVl2L1ltNL6P9uLp
Fgr5irR2jUtdScLxIIQULwt74hBBh7eVUJnptdSHOtdC0rXFXT483PVkxON2pl7SSOJ2p0mCpb4T
nCVNTxPZPyGUb2ijhnplbryyBQevz2RGrCXNmU4o5w2shASWG3uqF0fSubKNs8tEIooVW1fSJcNK
FdN4RjV1aFf2XSA45NLsdvZmens/70S2w7zFOylK2yKfev2xi9qeo9TNNTYkFTllhen1Zz0+OnwF
uaQ6M9ToVeCC5mjAGz+k3PV5Da2mvPoTnsKkkpZ4fnoz/zDqGJ8HEtbvCVYwHZZelblr8X5WxwfH
HX+vvMaa9uzQS8fHQzXr1esvamWT4Omu63zRNkI+oVT/SfH+ZeHcza39jNu/xc9Hqpuk7Vn4ZeBX
dQgpS8+NmyqD3SyMe7+8g/0JrJnmNsjt2HD71mwQmPc3UEsHCI0M7JetAgAAGQgAAFBLAwQKAAAA
AABGa2xPAAAAAAAAAAAAAAAALAAQAF9fTUFDT1NYL1dlYktpdEJ1Z2lPUzEzLjNCZXRhL05hdGl2
ZVdlYnZpZXcvVVgMAOSkyl3kpMpd9QEUAFBLAwQUAAgACADgamxPAAAAAAAAAAAAAAAAQgAQAF9f
TUFDT1NYL1dlYktpdEJ1Z2lPUzEzLjNCZXRhL05hdGl2ZVdlYnZpZXcvLl9WaWV3Q29udHJvbGxl
ci5zd2lmdFVYDAChpMpdJKTKXfUBFABjYBVjZ2BiYPBNTFbwD1aIUIACkBgDJxAbMTAwSgNpIJ/R
l4Eo4BgSEgRhgXU8AeJMNCVMUHEBBgap5PxcvcSCgpxUvZzE4pLS4tSUlMSSVOWAYKjaL0AcycBg
jlCXm1qSCFSTaJXt6+KTmJSaE1+ZllmVlFVQZZ5kWpCYVFySlmhSVFBmkltQCdQ8r/dULMggTo8e
HRD9qefwvcsSq14KsMh9PGkUmfD4c+7LO3V8dySWGu+vj+yu2MQz696Mwk2edWzeJYFzPfR35zpc
OZn8uuy0afaUad6rpab9uD2j/EykZHttx+9fny4l+7fK5JW/ENuhAgBQSwcIDFfRB/YAAABNAQAA
UEsDBBQACAAIAEJrbE8AAAAAAAAAAAAAAAAsABAAV2ViS2l0QnVnaU9TMTMuM0JldGEvTmF0aXZl
V2Vidmlldy8uRFNfU3RvcmVVWAwA1qTKXdukyl31ARQA7ZfBTttAEIZng1vsoCquhBSOe0HiEFUh
rZpWFZLrhENuSEHhQCuwiQuujDeyHdw2TZVLH6K8QR+lT8CD8AAwtoeUOIkEJ0K7n7X67Xj+WTtj
73oBgJn97iaADgAqZKoUYSYqtSkKpMvYWJrDAQ/bMVgQzc4lkUgWiOTdfQ7voYdbc+L9deAFhBCD
C58ganniyPaEDdlQ8Q7bxlVKmqWEGULcHPSF6PsCR5hj/EvO/TvnLoKZRic9engdAQj4POlh5bt4
7DjskeeP3fPcMKpWL1hhSXnydFnVNFV7pn1sn4i4HVlRPzStYD852rGiE5v2d4XwxvuW3XGd+EBf
bQg/slzfCVKz23Uw5MOe63dFbIq+3w33b51IOzrQ1waD2ttahdfe1IcVPqjXqxX+6uXr4VBTy+ub
W63D06/fBt+HP35ldWCMClLKFeh83s2etQPfE/4xpIMvxrTAx1IJjOlhlIvxubKxn7k/cRU6GOdg
kRvo87FUSWYvfQiC+eVnl7k8kkcJPXLqysNehkQiWUCS8YGTGqSjTBmdL5Aqtzw6KSc1SEeZMoor
kCqkKqlOykkN0lGmNGgxWnww6pnRCoXppJzUuNctSyT/DUuZ6Mn8vz1//S+RSP5hmNJsN00YLwim
SOZaju3wxgCzPwQoNpmK1+BvLCc1SEeZyg8BieShuAZQSwcIw+23ZQACAAAEGAAAUEsDBBQACAAI
AEJrbE8AAAAAAAAAAAAAAAA3ABAAX19NQUNPU1gvV2ViS2l0QnVnaU9TMTMuM0JldGEvTmF0aXZl
V2Vidmlldy8uXy5EU19TdG9yZVVYDADWpMpd26TKXfUBFABjYBVjZ2BiYPBNTFbwD1aIUIACkBgD
JxAbAbEbEIP4FUDMAFPhIMCAAziGhARBmRUwXegAAFBLBwgLiMA4NQAAAHgAAABQSwMECgAAAAAA
y0QTTwAAAAAAAAAAAAAAADMAEABXZWJLaXRCdWdpT1MxMy4zQmV0YS9OYXRpdmVXZWJ2aWV3L0Fz
c2V0cy54Y2Fzc2V0cy9VWAwA5KTKXd5DWl31ARQAUEsDBAoAAAAAAMtEE08AAAAAAAAAAAAAAABG
ABAAV2ViS2l0QnVnaU9TMTMuM0JldGEvTmF0aXZlV2Vidmlldy9Bc3NldHMueGNhc3NldHMvQXBw
SWNvbi5hcHBpY29uc2V0L1VYDADkpMpd3kNaXfUBFABQSwMEFAAIAAgAy0QTTwAAAAAAAAAAAAAA
AFMAEABXZWJLaXRCdWdpT1MxMy4zQmV0YS9OYXRpdmVXZWJ2aWV3L0Fzc2V0cy54Y2Fzc2V0cy9B
cHBJY29uLmFwcGljb25zZXQvQ29udGVudHMuanNvblVYDABcpMpd3kNaXfUBFACtlF0LgjAUhu/9
FWPXFvMjzf5KdDF06ShdOItD4n/PzYIuXJjbzQHPyx4fx4u9hxDmNS2ZxOiAjuMjQr2eKii4qNUe
81slGob9TyL5k+kgJBCSr31Or+8AsF4OvjtmZMHMIMxce5qYFp4xgdj1fRqZFp4JgcS1p5G5xJMW
/zQpcE5c8t3zRFOL1jvadH2WaGzQakerns8S0wTSxKmjkbjacR9td6DGSqqQm5q2F9bxppzBBySM
QY2f1zDOk6//+81ZqGh6E36wVnLRqE0wncf03lWi1cchFwVThMEbXlBLBwjcIB7L3QAAADYGAABQ
SwMEFAAIAAgAy0QTTwAAAAAAAAAAAAAAAEAAEABXZWJLaXRCdWdpT1MxMy4zQmV0YS9OYXRpdmVX
ZWJ2aWV3L0Fzc2V0cy54Y2Fzc2V0cy9Db250ZW50cy5qc29uVVgMAFykyl3eQ1pd9QEUAKvmUlBQ
ysxLy1dSsFKoBnKA3LLUouLM/DyQiKEORCixtCQjvwgkolSRnJ+SqgQUruWqBQBQSwcIBazD/DQA
AAA+AAAAUEsDBAoAAAAAAEZrbE8AAAAAAAAAAAAAAAA8ABAAX19NQUNPU1gvV2ViS2l0QnVnaU9T
MTMuM0JldGEvTmF0aXZlV2Vidmlldy9Bc3NldHMueGNhc3NldHMvVVgMAOSkyl3kpMpd9QEUAFBL
AwQUAAgACADLRBNPAAAAAAAAAAAAAAAASwAQAF9fTUFDT1NYL1dlYktpdEJ1Z2lPUzEzLjNCZXRh
L05hdGl2ZVdlYnZpZXcvQXNzZXRzLnhjYXNzZXRzLy5fQ29udGVudHMuanNvblVYDABcpMpd3kNa
XfUBFABjYBVjZ2BiYPBNTFbwD1aIUIACkBgDJxAbAXElEIP4qxmIAo4hIUFQJkjHHCDmR1PCiBAX
T87P1UssKMhJ1QtJrShxzUvOT8nMSwdKlpak6VpYGxqbGBmaW1qYAABQSwcIcBqNwF0AAACrAAAA
UEsDBAoAAAAAAMtEE08AAAAAAAAAAAAAAAAuABAAV2ViS2l0QnVnaU9TMTMuM0JldGEvTmF0aXZl
V2Vidmlldy9CYXNlLmxwcm9qL1VYDADkpMpd3kNaXfUBFABQSwMEFAAIAAgAy0QTTwAAAAAAAAAA
AAAAAEUAEABXZWJLaXRCdWdpT1MxMy4zQmV0YS9OYXRpdmVXZWJ2aWV3L0Jhc2UubHByb2ovTGF1
bmNoU2NyZWVuLnN0b3J5Ym9hcmRVWAwAno3KXd5DWl31ARQAfVTBUtswEL3zFarudkhSUjqTwJA0
0LRk6JCUQm+yvIlFFMmV5ED4+q5kQ2wI+GBrVuu3q7fvqX/6uJZkA8YKrQa0HR9SAorrVKjlgP6e
n0fHlFjHVMqkVjCgStPTk4N+qnmxBuWI2+YY5XodszyXEE+UA7NgHIaFkCmYbjzSXLO5LngWz5w2
20Qzk8a3kyHd1e36uk5raW9eWum2O5243cM4M0tw14VyYo21xNWshklJbnQOxm3POAdrR1o5o6Vv
VAElhYWzwmnJtrpwA3o3nlEiWaF4NuMGQFUhTJsbJtxISwncYQN2tzNjCzgzwJ5DXEttpszxDNIq
JJRwgskbAQ9VAxLMgB62f0Qyj/TNlJ4cEHz6KeSgUmRYgC1DIZzLYjlRROCOEwvh/32f0ngy3J3/
F/4pVI1K5O3wc9zu0FYNn7OcJUIKtyWKeRL9mQjDQ5GSGrIssLilZC3UvDGHrziaD6GepWCJZRtI
kQviMiC3KCIgx2ShzZq5PcDHO+B+6y0vfctBNUj6FEWeYLJjOIpq2yGfhPfk24COvy+iyZ/orDOm
u6SQqJN7nLFtRsPOpjE/HEdjhCX2FNYJGF+hmU3f4r1gkhVsy3yvHhynclNkZ0AtZxLm+lxISUO5
v3AU9ZKo47rv4AVMg/2XmAuDM6DkERv1FtpW3weRugxt9eWIkgzEMkPt93pf6oN8A8rQJwaseELr
T5ldlQVeRyvsmXhiiYRK/mWJRuyjSsFAJXzC+GppdKHSkQ9SYryn2pQsS3fiKpEFhAWTecbCKgDM
crQE+qSwTq8xFr6j2o69vhh+2IcfyGWQ/4VXf9mRrdxezqM3X0VX42g4vHsPqd/yMHvE1GrqY09G
LrHPTHtPk9p6UrsFJsNzYay7Bptr9IcpuxJ399HPf9GYtcMFZS5ZAnjlhVRSy30l2EUT6tWB+q29
xujnWqhKbZypDbOXmjN/RQbZHXWD6rzS6rdEK5R+dvezldHn1WVxcvAfUEsHCPcU9IrrAgAAegYA
AFBLAwQKAAAAAABGa2xPAAAAAAAAAAAAAAAANwAQAF9fTUFDT1NYL1dlYktpdEJ1Z2lPUzEzLjNC
ZXRhL05hdGl2ZVdlYnZpZXcvQmFzZS5scHJvai9VWAwA5KTKXeSkyl31ARQAUEsDBBQACAAIAMtE
E08AAAAAAAAAAAAAAABQABAAX19NQUNPU1gvV2ViS2l0QnVnaU9TMTMuM0JldGEvTmF0aXZlV2Vi
dmlldy9CYXNlLmxwcm9qLy5fTGF1bmNoU2NyZWVuLnN0b3J5Ym9hcmRVWAwAno3KXd5DWl31ARQA
Y2AVY2dgYmDwTUxW8A9WiFCAApAYAycQGwFxJRCD+KsZiAKOISFBUCZIxxwg5kdTwogQF0/Oz9VL
LCjISdULSa0occ1Lzk/JzEsHSpaWpOlaWBsamxgZmltamAAAUEsHCHAajcBdAAAAqwAAAFBLAwQU
AAgACADLRBNPAAAAAAAAAAAAAAAAPQAQAFdlYktpdEJ1Z2lPUzEzLjNCZXRhL05hdGl2ZVdlYnZp
ZXcvQmFzZS5scHJvai9NYWluLnN0b3J5Ym9hcmRVWAwAoKTKXd5DWl31ARQAfVTBctowEL3nK1Td
bSC0lM6YZGKaZJhpJmmgmaQ3WV5jFVnySDIJfH3XMgQ7JOEAmt3l7eq9fYrOXwpJ1mCs0GpCB2Gf
ElBcp0ItJ/TP4ioY0/OzkyjVvCpAOeI2JUwo10XIylJCOFMOTMY4xJWQKZhhONVcs4WueB7OnTab
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
AABQSwMEFAAIAAgALFIVTwAAAAAAAAAAAAAAADgAEABfX01BQ09TWC9XZWJLaXRCdWdpT1MxMy4z
QmV0YS9OYXRpdmVXZWJ2aWV3Ly5fSW5mby5wbGlzdFVYDADUpMpdFP5cXfUBFABjYBVjZ2BiYPBN
TFbwD1aIUIACkBgDJxAbAXEdEIP4GxiIAo4hIUFQJkjHAiAWQFPCiBCXSs7P1UssKMhJ1ctJLC4p
LU5NSUksSVUOCAYpPL3kVCyIZpunA3INAwBQSwcIbV84xV0AAACwAAAAUEsBAhUDCgAAAAAAK2ts
TwAAAAAAAAAAAAAAABUADAAAAAAAAAAAQO1BAAAAAFdlYktpdEJ1Z2lPUzEzLjNCZXRhL1VYCADk
pMpdsqTKXVBLAQIVAxQACAAIADZrbE/iuihtJgIAAAQgAAAeAAwAAAAAAAAAAECkgUMAAABXZWJL
aXRCdWdpT1MxMy4zQmV0YS8uRFNfU3RvcmVVWAgAraTKXcekyl1QSwECFQMKAAAAAABGa2xPAAAA
AAAAAAAAAAAACQAMAAAAAAAAAABA/UHFAgAAX19NQUNPU1gvVVgIAOSkyl3kpMpdUEsBAhUDCgAA
AAAARmtsTwAAAAAAAAAAAAAAAB4ADAAAAAAAAAAAQP1B/AIAAF9fTUFDT1NYL1dlYktpdEJ1Z2lP
UzEzLjNCZXRhL1VYCADkpMpd5KTKXVBLAQIVAxQACAAIADZrbE8LiMA4NQAAAHgAAAApAAwAAAAA
AAAAAECkgUgDAABfX01BQ09TWC9XZWJLaXRCdWdpT1MxMy4zQmV0YS8uXy5EU19TdG9yZVVYCACt
pMpdx6TKXVBLAQIVAwoAAAAAAMtEE08AAAAAAAAAAAAAAAAoAAwAAAAAAAAAAEDtQeQDAABXZWJL
aXRCdWdpT1MxMy4zQmV0YS9OYXRpdmVXZWJ2aWV3VGVzdHMvVVgIAOSkyl3eQ1pdUEsBAhUDFAAI
AAgAy0QTT/4MDvuWAQAAsQMAAEAADAAAAAAAAAAAQKSBOgQAAFdlYktpdEJ1Z2lPUzEzLjNCZXRh
L05hdGl2ZVdlYnZpZXdUZXN0cy9OYXRpdmVXZWJ2aWV3VGVzdHMuc3dpZnRVWAgAnqTKXd5DWl1Q
SwECFQMKAAAAAABGa2xPAAAAAAAAAAAAAAAAMQAMAAAAAAAAAABA/UFOBgAAX19NQUNPU1gvV2Vi
S2l0QnVnaU9TMTMuM0JldGEvTmF0aXZlV2Vidmlld1Rlc3RzL1VYCADkpMpd5KTKXVBLAQIVAxQA
CAAIAMtEE09wGo3AXQAAAKsAAABLAAwAAAAAAAAAAECkga0GAABfX01BQ09TWC9XZWJLaXRCdWdp
T1MxMy4zQmV0YS9OYXRpdmVXZWJ2aWV3VGVzdHMvLl9OYXRpdmVXZWJ2aWV3VGVzdHMuc3dpZnRV
WAgAnqTKXd5DWl1QSwECFQMUAAgACADLRBNPhcLZAE4BAAC9AgAAMgAMAAAAAAAAAABApIGTBwAA
V2ViS2l0QnVnaU9TMTMuM0JldGEvTmF0aXZlV2Vidmlld1Rlc3RzL0luZm8ucGxpc3RVWAgAnaTK
Xd5DWl1QSwECFQMKAAAAAADLRBNPAAAAAAAAAAAAAAAAKgAMAAAAAAAAAABA7UFRCQAAV2ViS2l0
QnVnaU9TMTMuM0JldGEvTmF0aXZlV2Vidmlld1VJVGVzdHMvVVgIAOSkyl3eQ1pdUEsBAhUDFAAI
AAgAy0QTTzQZZa45AgAArgQAAEQADAAAAAAAAAAAQKSBqQkAAFdlYktpdEJ1Z2lPUzEzLjNCZXRh
L05hdGl2ZVdlYnZpZXdVSVRlc3RzL05hdGl2ZVdlYnZpZXdVSVRlc3RzLnN3aWZ0VVgIAKCkyl3e
Q1pdUEsBAhUDCgAAAAAARmtsTwAAAAAAAAAAAAAAADMADAAAAAAAAAAAQP1BZAwAAF9fTUFDT1NY
L1dlYktpdEJ1Z2lPUzEzLjNCZXRhL05hdGl2ZVdlYnZpZXdVSVRlc3RzL1VYCADkpMpd5KTKXVBL
AQIVAxQACAAIAMtEE09wGo3AXQAAAKsAAABPAAwAAAAAAAAAAECkgcUMAABfX01BQ09TWC9XZWJL
aXRCdWdpT1MxMy4zQmV0YS9OYXRpdmVXZWJ2aWV3VUlUZXN0cy8uX05hdGl2ZVdlYnZpZXdVSVRl
c3RzLnN3aWZ0VVgIAKCkyl3eQ1pdUEsBAhUDFAAIAAgAy0QTT4XC2QBOAQAAvQIAADQADAAAAAAA
AAAAQKSBrw0AAFdlYktpdEJ1Z2lPUzEzLjNCZXRhL05hdGl2ZVdlYnZpZXdVSVRlc3RzL0luZm8u
cGxpc3RVWAgAnqTKXd5DWl1QSwECFQMKAAAAAAAsaGxPAAAAAAAAAAAAAAAALQAMAAAAAAAAAABA
7UFvDwAAV2ViS2l0QnVnaU9TMTMuM0JldGEvTmF0aXZlV2Vidmlldy54Y29kZXByb2ovVVgIAOSk
yl0Un8pdUEsBAhUDFAAIAAgALGhsTzizL54SDQAAklcAADwADAAAAAAAAAAAQKSByg8AAFdlYktp
dEJ1Z2lPUzEzLjNCZXRhL05hdGl2ZVdlYnZpZXcueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvalVY
CAAUn8pdFJ/KXVBLAQIVAwoAAAAAAMtEE08AAAAAAAAAAAAAAAA4AAwAAAAAAAAAAEDtQVYdAABX
ZWJLaXRCdWdpT1MxMy4zQmV0YS9OYXRpdmVXZWJ2aWV3Lnhjb2RlcHJvai94Y3VzZXJkYXRhL1VY
CADkpMpd3kNaXVBLAQIVAwoAAAAAABN0E08AAAAAAAAAAAAAAABTAAwAAAAAAAAAAEDtQbwdAABX
ZWJLaXRCdWdpT1MxMy4zQmV0YS9OYXRpdmVXZWJ2aWV3Lnhjb2RlcHJvai94Y3VzZXJkYXRhL2dl
ZHlzaW50cmF3YXJlLnhjdXNlcmRhdGFkL1VYCADkpMpd5ZZaXVBLAQIVAwoAAAAAADx0E08AAAAA
AAAAAAAAAABeAAwAAAAAAAAAAEDtQT0eAABXZWJLaXRCdWdpT1MxMy4zQmV0YS9OYXRpdmVXZWJ2
aWV3Lnhjb2RlcHJvai94Y3VzZXJkYXRhL2dlZHlzaW50cmF3YXJlLnhjdXNlcmRhdGFkL3hjZGVi
dWdnZXIvVVgIAOSkyl00l1pdUEsBAhUDFAAIAAgAPHQTT+qYWDd6AAAAjAAAAHcADAAAAAAAAAAA
QKSByR4AAFdlYktpdEJ1Z2lPUzEzLjNCZXRhL05hdGl2ZVdlYnZpZXcueGNvZGVwcm9qL3hjdXNl
cmRhdGEvZ2VkeXNpbnRyYXdhcmUueGN1c2VyZGF0YWQveGNkZWJ1Z2dlci9CcmVha3BvaW50c192
Mi54Y2JrcHRsaXN0VVgIAJ+Nyl00l1pdUEsBAhUDCgAAAAAAy0QTTwAAAAAAAAAAAAAAAF0ADAAA
AAAAAAAAQO1B+B8AAFdlYktpdEJ1Z2lPUzEzLjNCZXRhL05hdGl2ZVdlYnZpZXcueGNvZGVwcm9q
L3hjdXNlcmRhdGEvZ2VkeXNpbnRyYXdhcmUueGN1c2VyZGF0YWQveGNzY2hlbWVzL1VYCADkpMpd
3kNaXVBLAQIVAxQACAAIAMtEE09qUwFH8gAAAMMBAAB1AAwAAAAAAAAAAECkgYMgAABXZWJLaXRC
dWdpT1MxMy4zQmV0YS9OYXRpdmVXZWJ2aWV3Lnhjb2RlcHJvai94Y3VzZXJkYXRhL2dlZHlzaW50
cmF3YXJlLnhjdXNlcmRhdGFkL3hjc2NoZW1lcy94Y3NjaGVtZW1hbmFnZW1lbnQucGxpc3RVWAgA
no3KXd5DWl1QSwECFQMKAAAAAADLRBNPAAAAAAAAAAAAAAAAQQAMAAAAAAAAAABA7UEoIgAAV2Vi
S2l0QnVnaU9TMTMuM0JldGEvTmF0aXZlV2Vidmlldy54Y29kZXByb2ovcHJvamVjdC54Y3dvcmtz
cGFjZS9VWAgA5KTKXd5DWl1QSwECFQMUAAgACADLRBNPWZ9zrHgAAACeAAAAWQAMAAAAAAAAAABA
pIGXIgAAV2ViS2l0QnVnaU9TMTMuM0JldGEvTmF0aXZlV2Vidmlldy54Y29kZXByb2ovcHJvamVj
dC54Y3dvcmtzcGFjZS9jb250ZW50cy54Y3dvcmtzcGFjZWRhdGFVWAgAn43KXd5DWl1QSwECFQMK
AAAAAADLRBNPAAAAAAAAAAAAAAAATAAMAAAAAAAAAABA7UGmIwAAV2ViS2l0QnVnaU9TMTMuM0Jl
dGEvTmF0aXZlV2Vidmlldy54Y29kZXByb2ovcHJvamVjdC54Y3dvcmtzcGFjZS94Y3VzZXJkYXRh
L1VYCADkpMpd3kNaXVBLAQIVAwoAAAAAAA5rbE8AAAAAAAAAAAAAAABnAAwAAAAAAAAAAEDtQSAk
AABXZWJLaXRCdWdpT1MxMy4zQmV0YS9OYXRpdmVXZWJ2aWV3Lnhjb2RlcHJvai9wcm9qZWN0Lnhj
d29ya3NwYWNlL3hjdXNlcmRhdGEvZ2VkeXNpbnRyYXdhcmUueGN1c2VyZGF0YWQvVVgIAOSkyl18
pMpdUEsBAhUDFAAIAAgAmVUVT3eKWEEeAQAA+wEAAIMADAAAAAAAAAAAQKSBtSQAAFdlYktpdEJ1
Z2lPUzEzLjNCZXRhL05hdGl2ZVdlYnZpZXcueGNvZGVwcm9qL3Byb2plY3QueGN3b3Jrc3BhY2Uv
eGN1c2VyZGF0YS9nZWR5c2ludHJhd2FyZS54Y3VzZXJkYXRhZC9Xb3Jrc3BhY2VTZXR0aW5ncy54
Y3NldHRpbmdzVVgIAJ+Nyl2CBF1dUEsBAhUDFAAIAAgADmtsT0IoLAnTRwAAQHkAAIUADAAAAAAA
AAAAQKSBlCYAAFdlYktpdEJ1Z2lPUzEzLjNCZXRhL05hdGl2ZVdlYnZpZXcueGNvZGVwcm9qL3By
b2plY3QueGN3b3Jrc3BhY2UveGN1c2VyZGF0YS9nZWR5c2ludHJhd2FyZS54Y3VzZXJkYXRhZC9V
c2VySW50ZXJmYWNlU3RhdGUueGN1c2Vyc3RhdGVVWAgAfKTKXXykyl1QSwECFQMKAAAAAACZVRVP
AAAAAAAAAAAAAAAATgAMAAAAAAAAAABA7UEqbwAAV2ViS2l0QnVnaU9TMTMuM0JldGEvTmF0aXZl
V2Vidmlldy54Y29kZXByb2ovcHJvamVjdC54Y3dvcmtzcGFjZS94Y3NoYXJlZGRhdGEvVVgIAOSk
yl2CBF1dUEsBAhUDFAAIAAgAy0QTT3cVcri8AAAA7gAAAGYADAAAAAAAAAAAQKSBpm8AAFdlYktp
dEJ1Z2lPUzEzLjNCZXRhL05hdGl2ZVdlYnZpZXcueGNvZGVwcm9qL3Byb2plY3QueGN3b3Jrc3Bh
Y2UveGNzaGFyZWRkYXRhL0lERVdvcmtzcGFjZUNoZWNrcy5wbGlzdFVYCACfjcpd3kNaXVBLAQIV
AxQACAAIAJlVFU+r0DdV0gAAABkBAABqAAwAAAAAAAAAAECkgQZxAABXZWJLaXRCdWdpT1MxMy4z
QmV0YS9OYXRpdmVXZWJ2aWV3Lnhjb2RlcHJvai9wcm9qZWN0Lnhjd29ya3NwYWNlL3hjc2hhcmVk
ZGF0YS9Xb3Jrc3BhY2VTZXR0aW5ncy54Y3NldHRpbmdzVVgIAJ+Nyl2CBF1dUEsBAhUDCgAAAAAA
RmtsTwAAAAAAAAAAAAAAADYADAAAAAAAAAAAQP1BgHIAAF9fTUFDT1NYL1dlYktpdEJ1Z2lPUzEz
LjNCZXRhL05hdGl2ZVdlYnZpZXcueGNvZGVwcm9qL1VYCADkpMpd5KTKXVBLAQIVAxQACAAIAMtE
E0+x4HeugwAAANwAAABLAAwAAAAAAAAAAECkgeRyAABfX01BQ09TWC9XZWJLaXRCdWdpT1MxMy4z
QmV0YS9OYXRpdmVXZWJ2aWV3Lnhjb2RlcHJvai8uX3Byb2plY3QueGN3b3Jrc3BhY2VVWAgA5KTK
Xd5DWl1QSwECFQMUAAgACAAsaGxP2RAQClwAAACwAAAANwAMAAAAAAAAAABApIHwcwAAX19NQUNP
U1gvV2ViS2l0QnVnaU9TMTMuM0JldGEvLl9OYXRpdmVXZWJ2aWV3Lnhjb2RlcHJvalVYCADkpMpd
FJ/KXVBLAQIVAwoAAAAAAD1rbE8AAAAAAAAAAAAAAAAjAAwAAAAAAAAAAEDtQcF0AABXZWJLaXRC
dWdpT1MxMy4zQmV0YS9OYXRpdmVXZWJ2aWV3L1VYCADkpMpd1qTKXVBLAQIVAxQACAAIAOBqbE+N
DOyXrQIAABkIAAA3AAwAAAAAAAAAAECkgRJ1AABXZWJLaXRCdWdpT1MxMy4zQmV0YS9OYXRpdmVX
ZWJ2aWV3L1ZpZXdDb250cm9sbGVyLnN3aWZ0VVgIAKGkyl0kpMpdUEsBAhUDCgAAAAAARmtsTwAA
AAAAAAAAAAAAACwADAAAAAAAAAAAQP1BNHgAAF9fTUFDT1NYL1dlYktpdEJ1Z2lPUzEzLjNCZXRh
L05hdGl2ZVdlYnZpZXcvVVgIAOSkyl3kpMpdUEsBAhUDFAAIAAgA4GpsTwxX0Qf2AAAATQEAAEIA
DAAAAAAAAAAAQKSBjngAAF9fTUFDT1NYL1dlYktpdEJ1Z2lPUzEzLjNCZXRhL05hdGl2ZVdlYnZp
ZXcvLl9WaWV3Q29udHJvbGxlci5zd2lmdFVYCAChpMpdJKTKXVBLAQIVAxQACAAIAEJrbE/D7bdl
AAIAAAQYAAAsAAwAAAAAAAAAAECkgQR6AABXZWJLaXRCdWdpT1MxMy4zQmV0YS9OYXRpdmVXZWJ2
aWV3Ly5EU19TdG9yZVVYCADWpMpd26TKXVBLAQIVAxQACAAIAEJrbE8LiMA4NQAAAHgAAAA3AAwA
AAAAAAAAAECkgW58AABfX01BQ09TWC9XZWJLaXRCdWdpT1MxMy4zQmV0YS9OYXRpdmVXZWJ2aWV3
Ly5fLkRTX1N0b3JlVVgIANakyl3bpMpdUEsBAhUDCgAAAAAAy0QTTwAAAAAAAAAAAAAAADMADAAA
AAAAAAAAQO1BGH0AAFdlYktpdEJ1Z2lPUzEzLjNCZXRhL05hdGl2ZVdlYnZpZXcvQXNzZXRzLnhj
YXNzZXRzL1VYCADkpMpd3kNaXVBLAQIVAwoAAAAAAMtEE08AAAAAAAAAAAAAAABGAAwAAAAAAAAA
AEDtQXl9AABXZWJLaXRCdWdpT1MxMy4zQmV0YS9OYXRpdmVXZWJ2aWV3L0Fzc2V0cy54Y2Fzc2V0
cy9BcHBJY29uLmFwcGljb25zZXQvVVgIAOSkyl3eQ1pdUEsBAhUDFAAIAAgAy0QTT9wgHsvdAAAA
NgYAAFMADAAAAAAAAAAAQKSB7X0AAFdlYktpdEJ1Z2lPUzEzLjNCZXRhL05hdGl2ZVdlYnZpZXcv
QXNzZXRzLnhjYXNzZXRzL0FwcEljb24uYXBwaWNvbnNldC9Db250ZW50cy5qc29uVVgIAFykyl3e
Q1pdUEsBAhUDFAAIAAgAy0QTTwWsw/w0AAAAPgAAAEAADAAAAAAAAAAAQKSBW38AAFdlYktpdEJ1
Z2lPUzEzLjNCZXRhL05hdGl2ZVdlYnZpZXcvQXNzZXRzLnhjYXNzZXRzL0NvbnRlbnRzLmpzb25V
WAgAXKTKXd5DWl1QSwECFQMKAAAAAABGa2xPAAAAAAAAAAAAAAAAPAAMAAAAAAAAAABA/UENgAAA
X19NQUNPU1gvV2ViS2l0QnVnaU9TMTMuM0JldGEvTmF0aXZlV2Vidmlldy9Bc3NldHMueGNhc3Nl
dHMvVVgIAOSkyl3kpMpdUEsBAhUDFAAIAAgAy0QTT3AajcBdAAAAqwAAAEsADAAAAAAAAAAAQKSB
d4AAAF9fTUFDT1NYL1dlYktpdEJ1Z2lPUzEzLjNCZXRhL05hdGl2ZVdlYnZpZXcvQXNzZXRzLnhj
YXNzZXRzLy5fQ29udGVudHMuanNvblVYCABcpMpd3kNaXVBLAQIVAwoAAAAAAMtEE08AAAAAAAAA
AAAAAAAuAAwAAAAAAAAAAEDtQV2BAABXZWJLaXRCdWdpT1MxMy4zQmV0YS9OYXRpdmVXZWJ2aWV3
L0Jhc2UubHByb2ovVVgIAOSkyl3eQ1pdUEsBAhUDFAAIAAgAy0QTT/cU9IrrAgAAegYAAEUADAAA
AAAAAAAAQKSBuYEAAFdlYktpdEJ1Z2lPUzEzLjNCZXRhL05hdGl2ZVdlYnZpZXcvQmFzZS5scHJv
ai9MYXVuY2hTY3JlZW4uc3Rvcnlib2FyZFVYCACejcpd3kNaXVBLAQIVAwoAAAAAAEZrbE8AAAAA
AAAAAAAAAAA3AAwAAAAAAAAAAED9QSeFAABfX01BQ09TWC9XZWJLaXRCdWdpT1MxMy4zQmV0YS9O
YXRpdmVXZWJ2aWV3L0Jhc2UubHByb2ovVVgIAOSkyl3kpMpdUEsBAhUDFAAIAAgAy0QTT3AajcBd
AAAAqwAAAFAADAAAAAAAAAAAQKSBjIUAAF9fTUFDT1NYL1dlYktpdEJ1Z2lPUzEzLjNCZXRhL05h
dGl2ZVdlYnZpZXcvQmFzZS5scHJvai8uX0xhdW5jaFNjcmVlbi5zdG9yeWJvYXJkVVgIAJ6Nyl3e
Q1pdUEsBAhUDFAAIAAgAy0QTT0oScEHJAgAAPQYAAD0ADAAAAAAAAAAAQKSBd4YAAFdlYktpdEJ1
Z2lPUzEzLjNCZXRhL05hdGl2ZVdlYnZpZXcvQmFzZS5scHJvai9NYWluLnN0b3J5Ym9hcmRVWAgA
oKTKXd5DWl1QSwECFQMUAAgACADLRBNPbvQyBoUAAADjAAAASAAMAAAAAAAAAABApIG7iQAAX19N
QUNPU1gvV2ViS2l0QnVnaU9TMTMuM0JldGEvTmF0aXZlV2Vidmlldy9CYXNlLmxwcm9qLy5fTWFp
bi5zdG9yeWJvYXJkVVgIAKCkyl3eQ1pdUEsBAhUDFAAIAAgAy0QTT3NokmNzAwAAlQgAADQADAAA
AAAAAAAAQKSBxooAAFdlYktpdEJ1Z2lPUzEzLjNCZXRhL05hdGl2ZVdlYnZpZXcvQXBwRGVsZWdh
dGUuc3dpZnRVWAgAnqTKXd5DWl1QSwECFQMUAAgACADLRBNPpJbs3oUAAADjAAAAPwAMAAAAAAAA
AABApIGrjgAAX19NQUNPU1gvV2ViS2l0QnVnaU9TMTMuM0JldGEvTmF0aXZlV2Vidmlldy8uX0Fw
cERlbGVnYXRlLnN3aWZ0VVgIAJ6kyl3eQ1pdUEsBAhUDFAAIAAgALFIVTwl9hnb6AQAAtwUAAC0A
DAAAAAAAAAAAQKSBrY8AAFdlYktpdEJ1Z2lPUzEzLjNCZXRhL05hdGl2ZVdlYnZpZXcvSW5mby5w
bGlzdFVYCADUpMpdFP5cXVBLAQIVAxQACAAIACxSFU9tXzjFXQAAALAAAAA4AAwAAAAAAAAAAECk
gRKSAABfX01BQ09TWC9XZWJLaXRCdWdpT1MxMy4zQmV0YS9OYXRpdmVXZWJ2aWV3Ly5fSW5mby5w
bGlzdFVYCADUpMpdFP5cXVBLBQYAAAAAOQA5AIIbAADlkgAAAAA=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383705</attachid>
            <date>2019-11-16 14:38:28 -0800</date>
            <delta_ts>2019-11-16 15:59:28 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>unreviewed-for-branch.patch</filename>
            <type>text/plain</type>
            <size>14495</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0YWZkOWM0NTQxMi4uMDI4MGViMTIxNTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxOS0xMS0xNiAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAg
ICBDaGVjayBpZiBJVFAgaXMgb24gYmVmb3JlIGFwcGx5aW5nIHRoaXJkLXBhcnR5IGNvb2tpZSBi
bG9ja2luZyBpbiBOZXR3b3JrRGF0YVRhc2tDb2NvYQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MTA5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81
NzEyMDc3Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9uby10aGlyZC1wYXJ0eS1jb29r
aWUtYmxvY2tpbmctd2hlbi1pdHAtaXMtb2ZmLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vLXRoaXJkLXBhcnR5LWNvb2tp
ZS1ibG9ja2luZy13aGVuLWl0cC1pcy1vZmYuaHRtbDogQWRkZWQuCisKIDIwMTktMTEtMDQgIEFs
YW4gQ29vbiAgPGFsYW5jb29uQGFwcGxlLmNvbT4KIAogICAgICAgICBDaGVycnktcGljayByMjUx
OTU3LiByZGFyOi8vcHJvYmxlbS81Njg4NzUxMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vLXRoaXJkLXBhcnR5LWNvb2tpZS1ibG9j
a2luZy13aGVuLWl0cC1pcy1vZmYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vLXRoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy13
aGVuLWl0cC1pcy1vZmYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi44MGZhMTY5ZDI3ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9uby10aGlyZC1wYXJ0eS1jb29raWUtYmxv
Y2tpbmctd2hlbi1pdHAtaXMtb2ZmLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitUZXN0
cyB0aGF0IGV4aXN0aW5nIHRoaXJkLXBhcnR5IGNvb2tpZXMgYXJlIG5vdCBibG9ja2VkIHdoZW4g
SVRQIGlzIG9mZi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKKy0tLS0tLS0tCitGcmFt
ZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgaXRzIGNvb2tpZS4K
K1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBk
b2N1bWVudC5jb29raWU6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvbm8tdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdoZW4taXRw
LWlzLW9mZi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL25vLXRoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy13aGVuLWl0cC1pcy1vZmYuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDI4NWU3YmM0OWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvbm8tdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdoZW4taXRwLWlzLW9mZi5odG1sCkBA
IC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+
CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNj
cmlwdGlvbigiVGVzdHMgdGhhdCBleGlzdGluZyB0aGlyZC1wYXJ0eSBjb29raWVzIGFyZSBub3Qg
YmxvY2tlZCB3aGVuIElUUCBpcyBvZmYuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisK
KyAgICBjb25zdCBwYXJ0aXRpb25Ib3N0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBw
YXJ0aXRpb25PcmlnaW4gPSAiaHR0cDovLyIgKyBwYXJ0aXRpb25Ib3N0OworICAgIGNvbnN0IHRo
aXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCByZXNv
dXJjZVBhdGggPSAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25z
dCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyByZXNvdXJjZVBhdGg7Cisg
ICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAg
Y29uc3Qgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFt
ZT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICBjb25zdCBy
ZXR1cm5VcmwgPSBwYXJ0aXRpb25PcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm8t
dGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdoZW4taXRwLWlzLW9mZi5odG1sIjsKKyAgICBj
b25zdCBzdWJQYXRoVG9HZXRDb29raWVzID0gIi9nZXQtY29va2llcy5waHA/bmFtZTE9IiArIGZp
cnN0UGFydHlDb29raWVOYW1lOworCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9h
ZEhhbmRsZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImlmcmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9u
TG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxl
cjsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRjaCAoZG9j
dW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAg
ICAgICAgICAgICAvLyBTZXQgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3QuCisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlCYXNlVXJsICsg
c3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiArIHJldHVyblVybCArICIjc3RlcDIi
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAg
ICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBjb29raWUgaXMgbm90IGJsb2NrZWQgZm9yIGxvY2Fs
aG9zdCB1bmRlciAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBh
cnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2Vp
dmUgaXRzIGNvb2tpZS4iLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhmYWxzZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NFbmFibGVkKHRydWUpOworICAgICAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0
aW9uLmhhc2ggPT09ICIiKSB7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0VuYWJsZWQoZmFs
c2UpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAg
ICAgICAgICAgIC8vIEVuYWJsZSB0aGUgZmxhZyBldmVuIHRob3VnaCBJVFAgaXMgb2ZmLgorICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29v
a2llcyh0cnVlLCBydW5UZXN0KTsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2gg
PSAic3RlcDEiOworICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9IGVs
c2UgeworICAgICAgICBydW5UZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IDRmM2Q3MDg1NDAzLi5kMjI3NDFmNDdhNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAxOS0xMS0xNiAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNv
bT4KKworICAgICAgICBDaGVjayBpZiBJVFAgaXMgb24gYmVmb3JlIGFwcGx5aW5nIHRoaXJkLXBh
cnR5IGNvb2tpZSBibG9ja2luZyBpbiBOZXR3b3JrRGF0YVRhc2tDb2NvYQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MTA5CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS81NzEyMDc3Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIGNoYW5nZSBtYWtlcyBzdXJlIHdlIGNoZWNrIHdoZXRoZXIgSVRQ
IGlzIG9uIG9yIG9mZgorICAgICAgICBiZWZvcmUgY2FsbGluZyBOZXR3b3JrU3RvcmFnZVNlc3Np
b246OnNob3VsZEJsb2NrQ29va2llcygpLgorCisgICAgICAgIFRoaXMgY2hlY2sgd2FzIG5ldmVy
IG5lZWRlZCBiZWZvcmUgc2luY2UgaWYgSVRQIHdhcyBvZmYsCisgICAgICAgIHRoZXJlIHdvdWxk
IGJlIG5vIGNsYXNzaWZpZWQgZG9tYWlucyBhbmQgdGh1cyB0aGUgZnVuY3Rpb24KKyAgICAgICAg
d291bGQgYWx3YXlzIHJldHVybiBmYWxzZS4gSG93ZXZlciwKKyAgICAgICAgaHR0cHM6Ly90cmFj
LndlYmtpdC5vcmcvY2hhbmdlc2V0LzI1MTM1My93ZWJraXQgaW50cm9kdWNlZAorICAgICAgICBm
dWxsIHRoaXJkLXBhcnR5IGNvb2tpZSBibG9ja2luZyBmb3Igd2Vic2l0ZXMgd2l0aG91dCB1c2Vy
CisgICAgICAgIGludGVyYWN0aW9uIGFuZCB0aGF0IHJ1bGUgaXMgY2hlY2tlZCBiZWZvcmUgY2hl
Y2tpbmcgZG9tYWluCisgICAgICAgIGNsYXNzaWZpY2F0aW9uLiBUaGUgZWZmZWN0IHdhcyB1bmNv
bmRpdGlvbmFsIHRoaXJkLXBhcnR5CisgICAgICAgIGNvb2tpZSBibG9ja2luZyBpZiBJVFAgaXMg
b2ZmLiBUaGlzIGNoYW5nZXMgZml4ZXMgdGhhdCBidWcuCisKKyAgICAgICAgTm90ZSB0aGF0IHRo
aXMgcGF0Y2ggaXMgYnJhbmNoLXNwZWNpZmljIGFuZCBleHBlY3RlZCB0byBub3QKKyAgICAgICAg
YXBwbHkgdG8gdHJ1bmsuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
RGF0YVRhc2tDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6
Ok5ldHdvcmtEYXRhVGFza0NvY29hKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNr
Q29jb2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKToKKwogMjAxOS0xMS0wNyAgQWxhbiBD
b29uICA8YWxhbmNvb25AYXBwbGUuY29tPgogCiAgICAgICAgIENoZXJyeS1waWNrIHIyNTIxNzUu
IHJkYXI6Ly9wcm9ibGVtLzU2OTcxNTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQppbmRleCA5ZDYzZTc4
NGYyNS4uNDk5YmU3MWQzMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQpAQCAtMjA1LDcgKzIwNSw3
IEBAIE5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vz
c2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUCiAgICAgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMg
PSBmYWxzZTsKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIHNob3Vs
ZEJsb2NrQ29va2llcyA9IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09IFdlYkNvcmU6OlN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5OjpFcGhlbWVyYWxTdGF0ZWxlc3NDb29raWVsZXNzCi0gICAgICAg
IHx8IChzZXNzaW9uLm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpICYmIHNlc3Npb24ubmV0d29ya1N0
b3JhZ2VTZXNzaW9uKCktPnNob3VsZEJsb2NrQ29va2llcyhyZXF1ZXN0LCBmcmFtZUlELCBwYWdl
SUQpKTsKKyAgICAgICAgfHwgKHNlc3Npb24uaXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZCgpICYmIHNlc3Npb24ubmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkgJiYgc2Vzc2lvbi5uZXR3b3Jr
U3RvcmFnZVNlc3Npb24oKS0+c2hvdWxkQmxvY2tDb29raWVzKHJlcXVlc3QsIGZyYW1lSUQsIHBh
Z2VJRCkpOwogI2VuZGlmCiAgICAgcmVzdHJpY3RSZXF1ZXN0UmVmZXJyZXJUb09yaWdpbklmTmVl
ZGVkKHJlcXVlc3QpOwogCkBAIC0zNzYsNyArMzc2LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tD
b2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgYm9vbCBzaG91
bGRCbG9ja0Nvb2tpZXMgPSBtX3N0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09IFdlYkNvcmU6OlN0
b3JlZENyZWRlbnRpYWxzUG9saWN5OjpFcGhlbWVyYWxTdGF0ZWxlc3NDb29raWVsZXNzCi0gICAg
ICAgIHx8IChtX3Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpICYmIG1fc2Vzc2lvbi0+
bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCktPnNob3VsZEJsb2NrQ29va2llcyhyZXF1ZXN0LCBtX2Zy
YW1lSUQsIG1fcGFnZUlEKSk7CisgICAgICAgIHx8IChtX3Nlc3Npb24tPmlzUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0VuYWJsZWQoKSAmJiBtX3Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigp
ICYmIG1fc2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCktPnNob3VsZEJsb2NrQ29va2ll
cyhyZXF1ZXN0LCBtX2ZyYW1lSUQsIG1fcGFnZUlEKSk7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiAgICAgaWYgKG1fc2Vzc2lvbi0+c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oKSkKICAg
ICAgICAgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmss
ICIlcCAtIE5ldHdvcmtEYXRhVGFza0NvY29hOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbjo6
bG9nQ29va2llSW5mb3JtYXRpb246IHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCB0YXNr
SUQgPSAlbHU6ICVzIGNvb2tpZXMgZm9yIHJlZGlyZWN0IFVSTCAlcyIsIHRoaXMsIG1fcGFnZUlE
LnRvVUludDY0KCksIG1fZnJhbWVJRCwgKHVuc2lnbmVkIGxvbmcpW21fdGFzayB0YXNrSWRlbnRp
Zmllcl0sIChzaG91bGRCbG9ja0Nvb2tpZXMgPyAiQmxvY2tpbmciIDogIk5vdCBibG9ja2luZyIp
LCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDVkYTZkOTc3NzkwLi5hMWE4Yzcz
ZTg3MyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI1IEBACisyMDE5LTExLTE2ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBw
bGUuY29tPgorCisgICAgICAgIENoZWNrIGlmIElUUCBpcyBvbiBiZWZvcmUgYXBwbHlpbmcgdGhp
cmQtcGFydHkgY29va2llIGJsb2NraW5nIGluIE5ldHdvcmtEYXRhVGFza0NvY29hCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQxMDkKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzU3MTIwNzcyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBhbGxvdyBh
IGxheW91dCB0ZXN0IHRvCisgICAgICAgIGRpc2FibGUgSVRQIGluIHRoZSBuZXR3b3JrIHByb2Nl
c3MuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldFN0YXRpc3Rp
Y3NFbmFibGVkKToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGljc0RlYnVn
TW9kZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzRW5hYmxlZCk6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2Nh
dGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisK
IDIwMTktMTEtMDUgIEFsYW4gQ29vbiAgPGFsYW5jb29uQGFwcGxlLmNvbT4KIAogICAgICAgICBB
cHBseSBwYXRjaC4gcmRhcjovL3Byb2JsZW0vNTY5MDMyNzQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIu
aWRsCmluZGV4IDYwYjkxZThkMzcxLi42MjA4ZWQwOWIyYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5u
ZXIuaWRsCkBAIC0yOTIsNiArMjkyLDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIHZv
aWQgZGlzY29ubmVjdE1vY2tHYW1lcGFkKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogCiAgICAgLy8g
UmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzCisgICAgdm9pZCBzZXRTdGF0aXN0aWNzRW5hYmxlZChi
b29sZWFuIHZhbHVlKTsKICAgICB2b2lkIGluc3RhbGxTdGF0aXN0aWNzRGlkTW9kaWZ5RGF0YVJl
Y29yZHNDYWxsYmFjayhvYmplY3QgY2FsbGJhY2spOwogICAgIHZvaWQgaW5zdGFsbFN0YXRpc3Rp
Y3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhvYmplY3QgY2FsbGJhY2spOwogICAgIHZvaWQg
aW5zdGFsbFN0YXRpc3RpY3NEaWRSdW5UZWxlbWV0cnlDYWxsYmFjayhvYmplY3QgY2FsbGJhY2sp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAKaW5kZXggZGY3MzYzODA3NjkuLjNlNjZmY2ZmZTg1IDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTEz
NzcsNiArMTM3NywxMyBAQCB2b2lkIFRlc3RSdW5uZXI6OmNhbGxEaWRSZW1vdmVTd2lwZVNuYXBz
aG90Q2FsbGJhY2soKQogICAgIGNhbGxUZXN0UnVubmVyQ2FsbGJhY2soRGlkUmVtb3ZlU3dpcGVT
bmFwc2hvdENhbGxiYWNrSUQpOwogfQogCit2b2lkIFRlc3RSdW5uZXI6OnNldFN0YXRpc3RpY3NF
bmFibGVkKGJvb2wgdmFsdWUpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3Nh
Z2VOYW1lID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2V0U3RhdGlz
dGljc0VuYWJsZWQiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tCb29sZWFuUmVmPiBtZXNzYWdlQm9k
eSA9IGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKHZhbHVlKSk7CisgICAgV0tCdW5kbGVQb3N0U3lu
Y2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVz
c2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCBudWxscHRyKTsKK30KKwogdm9pZCBU
ZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzRGVidWdNb2RlKGJvb2wgdmFsdWUsIEpTVmFsdWVSZWYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgY2FjaGVUZXN0UnVubmVyQ2FsbGJhY2soU2V0U3Rh
dGlzdGljc0RlYnVnTW9kZUNhbGxiYWNrSUQsIGNvbXBsZXRpb25IYW5kbGVyKTsKQEAgLTEzODQs
NyArMTM5MSw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGljc0RlYnVnTW9kZShib29s
IHZhbHVlLCBKU1ZhbHVlUmVmIGNvbXBsZXRpb25IYW5kbGVyCiAgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IG1lc3NhZ2VOYW1lID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiU2V0U3RhdGlzdGljc0RlYnVnTW9kZSIpKTsKICAgICBXS1JldGFpblB0cjxXS0Jvb2xl
YW5SZWY+IG1lc3NhZ2VCb2R5ID0gYWRvcHRXSyhXS0Jvb2xlYW5DcmVhdGUodmFsdWUpKTsKICAg
ICBXS0J1bmRsZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRv
bigpLmJ1bmRsZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCksIG51bGxw
dHIpOwotCiB9CiAKIHZvaWQgVGVzdFJ1bm5lcjo6c3RhdGlzdGljc0NhbGxEaWRTZXREZWJ1Z01v
ZGVDYWxsYmFjaygpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5oCmluZGV4IDZlNGM2ZTljZWQzLi4zYjIwZmFlMzBlOCAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAg
LTM4MCw2ICszODAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNb2NrR2FtZXBhZEJ1dHRvblZh
bHVlKHVuc2lnbmVkIGluZGV4LCB1bnNpZ25lZCBidXR0b25JbmRleCwgZG91YmxlIHZhbHVlKTsK
ICAgICAKICAgICAvLyBSZXNvdXJjZSBMb2FkIFN0YXRpc3RpY3MKKyAgICB2b2lkIHNldFN0YXRp
c3RpY3NFbmFibGVkKGJvb2wgdmFsdWUpOwogICAgIHZvaWQgaW5zdGFsbFN0YXRpc3RpY3NEaWRN
b2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spOwogICAgIHZvaWQg
aW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhKU1ZhbHVlUmVmIGNh
bGxiYWNrKTsKICAgICB2b2lkIGluc3RhbGxTdGF0aXN0aWNzRGlkUnVuVGVsZW1ldHJ5Q2FsbGJh
Y2soSlNWYWx1ZVJlZiBjYWxsYmFjayk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCmluZGV4IDYwMjY0NDdjN2UyLi5mZTUxZjRmMzllMCAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTMyMTAsNiArMzIxMCwxMiBAQCBzdGF0
aWMgdm9pZCByZXNvdXJjZVN0YXRpc3RpY3NCb29sZWFuUmVzdWx0Q2FsbGJhY2soYm9vbCByZXN1
bHQsIHZvaWQqIHVzZXJEYXRhKQogICAgIGNvbnRleHQtPnRlc3RDb250cm9sbGVyLm5vdGlmeURv
bmUoKTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc0VuYWJsZWQoYm9v
bCB2YWx1ZSkKK3sKKyAgICBhdXRvKiBkYXRhU3RvcmUgPSBXS0NvbnRleHRHZXRXZWJzaXRlRGF0
YVN0b3JlKHBsYXRmb3JtQ29udGV4dCgpKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChkYXRhU3RvcmUsIHZhbHVlKTsKK30KKwogdm9pZCBU
ZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc0RlYnVnTW9kZShib29sIHZhbHVlKQogewogICAg
IGF1dG8qIGRhdGFTdG9yZSA9IFdLQ29udGV4dEdldFdlYnNpdGVEYXRhU3RvcmUocGxhdGZvcm1D
b250ZXh0KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IGFm
OWU4NDYzMWMxLi44ZDFmOWQxZjYzZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaApAQCAtMjA0LDYgKzIwNCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNob3VsZERv
d25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyhib29sIHZhbHVlKSB7IG1fc2hvdWxkRG93bmxv
YWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzID0gdmFsdWU7IH0KICAgICB2b2lkIHNldFNob3VsZEFs
bG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoYm9vbCB2YWx1ZSkgeyBtX3Nob3Vs
ZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MgPSB2YWx1ZTsgfQogCisgICAg
dm9pZCBzZXRTdGF0aXN0aWNzRW5hYmxlZChib29sIHZhbHVlKTsKICAgICB2b2lkIHNldFN0YXRp
c3RpY3NEZWJ1Z01vZGUoYm9vbCB2YWx1ZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoV0tTdHJpbmdSZWYgaG9zdE5hbWUpOwogICAgIHZvaWQg
c2V0U3RhdGlzdGljc0xhc3RTZWVuKFdLU3RyaW5nUmVmIGhvc3ROYW1lLCBkb3VibGUgc2Vjb25k
cyk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDVmMmQy
MGM3ZTU5Li4xYWY0Y2NjMzg1ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2Nh
dGlvbi5jcHAKQEAgLTEwNjEsNiArMTA2MSwxMyBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRl
c3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgog
ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxU
b1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc0VuYWJsZWQiKSkgeworICAg
ICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLQm9vbGVhbkdldFR5cGVJ
RCgpKTsKKyAgICAgICAgV0tCb29sZWFuUmVmIHZhbHVlID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFu
UmVmPihtZXNzYWdlQm9keSk7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5z
ZXRTdGF0aXN0aWNzRW5hYmxlZChXS0Jvb2xlYW5HZXRWYWx1ZSh2YWx1ZSkpOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRG
OENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRTdGF0aXN0aWNzRGVidWdNb2RlIikpIHsKICAgICAg
ICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0Jvb2xlYW5HZXRUeXBlSUQo
KSk7CiAgICAgICAgIFdLQm9vbGVhblJlZiB2YWx1ZSA9IHN0YXRpY19jYXN0PFdLQm9vbGVhblJl
Zj4obWVzc2FnZUJvZHkpOwo=
</data>
<flag name="review"
          id="399457"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383708</attachid>
            <date>2019-11-16 16:00:42 -0800</date>
            <delta_ts>2019-11-16 16:01:35 -0800</delta_ts>
            <desc>Proposed patch addressing Chris&apos;s comments</desc>
            <filename>unreviewed-for-branch-v2.patch</filename>
            <type>text/plain</type>
            <size>14495</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0YWZkOWM0NTQxMi4uMDI4MGViMTIxNTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxOS0xMS0xNiAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAg
ICBDaGVjayBpZiBJVFAgaXMgb24gYmVmb3JlIGFwcGx5aW5nIHRoaXJkLXBhcnR5IGNvb2tpZSBi
bG9ja2luZyBpbiBOZXR3b3JrRGF0YVRhc2tDb2NvYQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MTA5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81
NzEyMDc3Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9uby10aGlyZC1wYXJ0eS1jb29r
aWUtYmxvY2tpbmctd2hlbi1pdHAtaXMtb2ZmLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vLXRoaXJkLXBhcnR5LWNvb2tp
ZS1ibG9ja2luZy13aGVuLWl0cC1pcy1vZmYuaHRtbDogQWRkZWQuCisKIDIwMTktMTEtMDQgIEFs
YW4gQ29vbiAgPGFsYW5jb29uQGFwcGxlLmNvbT4KIAogICAgICAgICBDaGVycnktcGljayByMjUx
OTU3LiByZGFyOi8vcHJvYmxlbS81Njg4NzUxMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vLXRoaXJkLXBhcnR5LWNvb2tpZS1ibG9j
a2luZy13aGVuLWl0cC1pcy1vZmYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vLXRoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy13
aGVuLWl0cC1pcy1vZmYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi44MGZhMTY5ZDI3ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9uby10aGlyZC1wYXJ0eS1jb29raWUtYmxv
Y2tpbmctd2hlbi1pdHAtaXMtb2ZmLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitUZXN0
cyB0aGF0IGV4aXN0aW5nIHRoaXJkLXBhcnR5IGNvb2tpZXMgYXJlIG5vdCBibG9ja2VkIHdoZW4g
SVRQIGlzIG9mZi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKKy0tLS0tLS0tCitGcmFt
ZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgaXRzIGNvb2tpZS4K
K1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBk
b2N1bWVudC5jb29raWU6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvbm8tdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdoZW4taXRw
LWlzLW9mZi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL25vLXRoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy13aGVuLWl0cC1pcy1vZmYuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDI4NWU3YmM0OWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvbm8tdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdoZW4taXRwLWlzLW9mZi5odG1sCkBA
IC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+
CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNj
cmlwdGlvbigiVGVzdHMgdGhhdCBleGlzdGluZyB0aGlyZC1wYXJ0eSBjb29raWVzIGFyZSBub3Qg
YmxvY2tlZCB3aGVuIElUUCBpcyBvZmYuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisK
KyAgICBjb25zdCBwYXJ0aXRpb25Ib3N0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBw
YXJ0aXRpb25PcmlnaW4gPSAiaHR0cDovLyIgKyBwYXJ0aXRpb25Ib3N0OworICAgIGNvbnN0IHRo
aXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCByZXNv
dXJjZVBhdGggPSAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25z
dCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyByZXNvdXJjZVBhdGg7Cisg
ICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAg
Y29uc3Qgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFt
ZT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICBjb25zdCBy
ZXR1cm5VcmwgPSBwYXJ0aXRpb25PcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm8t
dGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdoZW4taXRwLWlzLW9mZi5odG1sIjsKKyAgICBj
b25zdCBzdWJQYXRoVG9HZXRDb29raWVzID0gIi9nZXQtY29va2llcy5waHA/bmFtZTE9IiArIGZp
cnN0UGFydHlDb29raWVOYW1lOworCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9h
ZEhhbmRsZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImlmcmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9u
TG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxl
cjsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRjaCAoZG9j
dW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAg
ICAgICAgICAgICAvLyBTZXQgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3QuCisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlCYXNlVXJsICsg
c3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiArIHJldHVyblVybCArICIjc3RlcDIi
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAg
ICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBjb29raWUgaXMgbm90IGJsb2NrZWQgZm9yIGxvY2Fs
aG9zdCB1bmRlciAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBh
cnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIHJlY2Vp
dmUgaXRzIGNvb2tpZS4iLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhmYWxzZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NFbmFibGVkKHRydWUpOworICAgICAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0
aW9uLmhhc2ggPT09ICIiKSB7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0VuYWJsZWQoZmFs
c2UpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAg
ICAgICAgICAgIC8vIEVuYWJsZSB0aGUgZmxhZyBldmVuIHRob3VnaCBJVFAgaXMgb2ZmLgorICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29v
a2llcyh0cnVlLCBydW5UZXN0KTsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2gg
PSAic3RlcDEiOworICAgICAgICAgICAgcnVuVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9IGVs
c2UgeworICAgICAgICBydW5UZXN0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IDRmM2Q3MDg1NDAzLi5kMjI3NDFmNDdhNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAxOS0xMS0xNiAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNv
bT4KKworICAgICAgICBDaGVjayBpZiBJVFAgaXMgb24gYmVmb3JlIGFwcGx5aW5nIHRoaXJkLXBh
cnR5IGNvb2tpZSBibG9ja2luZyBpbiBOZXR3b3JrRGF0YVRhc2tDb2NvYQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MTA5CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS81NzEyMDc3Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIGNoYW5nZSBtYWtlcyBzdXJlIHdlIGNoZWNrIHdoZXRoZXIgSVRQ
IGlzIG9uIG9yIG9mZgorICAgICAgICBiZWZvcmUgY2FsbGluZyBOZXR3b3JrU3RvcmFnZVNlc3Np
b246OnNob3VsZEJsb2NrQ29va2llcygpLgorCisgICAgICAgIFRoaXMgY2hlY2sgd2FzIG5ldmVy
IG5lZWRlZCBiZWZvcmUgc2luY2UgaWYgSVRQIHdhcyBvZmYsCisgICAgICAgIHRoZXJlIHdvdWxk
IGJlIG5vIGNsYXNzaWZpZWQgZG9tYWlucyBhbmQgdGh1cyB0aGUgZnVuY3Rpb24KKyAgICAgICAg
d291bGQgYWx3YXlzIHJldHVybiBmYWxzZS4gSG93ZXZlciwKKyAgICAgICAgaHR0cHM6Ly90cmFj
LndlYmtpdC5vcmcvY2hhbmdlc2V0LzI1MTM1My93ZWJraXQgaW50cm9kdWNlZAorICAgICAgICBm
dWxsIHRoaXJkLXBhcnR5IGNvb2tpZSBibG9ja2luZyBmb3Igd2Vic2l0ZXMgd2l0aG91dCB1c2Vy
CisgICAgICAgIGludGVyYWN0aW9uIGFuZCB0aGF0IHJ1bGUgaXMgY2hlY2tlZCBiZWZvcmUgY2hl
Y2tpbmcgZG9tYWluCisgICAgICAgIGNsYXNzaWZpY2F0aW9uLiBUaGUgZWZmZWN0IHdhcyB1bmNv
bmRpdGlvbmFsIHRoaXJkLXBhcnR5CisgICAgICAgIGNvb2tpZSBibG9ja2luZyBpZiBJVFAgaXMg
b2ZmLiBUaGlzIGNoYW5nZXMgZml4ZXMgdGhhdCBidWcuCisKKyAgICAgICAgTm90ZSB0aGF0IHRo
aXMgcGF0Y2ggaXMgYnJhbmNoLXNwZWNpZmljIGFuZCBleHBlY3RlZCB0byBub3QKKyAgICAgICAg
YXBwbHkgdG8gdHJ1bmsuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
RGF0YVRhc2tDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6
Ok5ldHdvcmtEYXRhVGFza0NvY29hKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNr
Q29jb2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKToKKwogMjAxOS0xMS0wNyAgQWxhbiBD
b29uICA8YWxhbmNvb25AYXBwbGUuY29tPgogCiAgICAgICAgIENoZXJyeS1waWNrIHIyNTIxNzUu
IHJkYXI6Ly9wcm9ibGVtLzU2OTcxNTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQppbmRleCA5ZDYzZTc4
NGYyNS4uNDk5YmU3MWQzMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQpAQCAtMjA1LDcgKzIwNSw3
IEBAIE5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vz
c2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUCiAgICAgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMg
PSBmYWxzZTsKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIHNob3Vs
ZEJsb2NrQ29va2llcyA9IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09IFdlYkNvcmU6OlN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5OjpFcGhlbWVyYWxTdGF0ZWxlc3NDb29raWVsZXNzCi0gICAgICAg
IHx8IChzZXNzaW9uLm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpICYmIHNlc3Npb24ubmV0d29ya1N0
b3JhZ2VTZXNzaW9uKCktPnNob3VsZEJsb2NrQ29va2llcyhyZXF1ZXN0LCBmcmFtZUlELCBwYWdl
SUQpKTsKKyAgICAgICAgfHwgKHNlc3Npb24uaXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZCgpICYmIHNlc3Npb24ubmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkgJiYgc2Vzc2lvbi5uZXR3b3Jr
U3RvcmFnZVNlc3Npb24oKS0+c2hvdWxkQmxvY2tDb29raWVzKHJlcXVlc3QsIGZyYW1lSUQsIHBh
Z2VJRCkpOwogI2VuZGlmCiAgICAgcmVzdHJpY3RSZXF1ZXN0UmVmZXJyZXJUb09yaWdpbklmTmVl
ZGVkKHJlcXVlc3QpOwogCkBAIC0zNzYsNyArMzc2LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tD
b2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgYm9vbCBzaG91
bGRCbG9ja0Nvb2tpZXMgPSBtX3N0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09IFdlYkNvcmU6OlN0
b3JlZENyZWRlbnRpYWxzUG9saWN5OjpFcGhlbWVyYWxTdGF0ZWxlc3NDb29raWVsZXNzCi0gICAg
ICAgIHx8IChtX3Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpICYmIG1fc2Vzc2lvbi0+
bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCktPnNob3VsZEJsb2NrQ29va2llcyhyZXF1ZXN0LCBtX2Zy
YW1lSUQsIG1fcGFnZUlEKSk7CisgICAgICAgIHx8IChtX3Nlc3Npb24tPmlzUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0VuYWJsZWQoKSAmJiBtX3Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigp
ICYmIG1fc2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCktPnNob3VsZEJsb2NrQ29va2ll
cyhyZXF1ZXN0LCBtX2ZyYW1lSUQsIG1fcGFnZUlEKSk7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiAgICAgaWYgKG1fc2Vzc2lvbi0+c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oKSkKICAg
ICAgICAgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmss
ICIlcCAtIE5ldHdvcmtEYXRhVGFza0NvY29hOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbjo6
bG9nQ29va2llSW5mb3JtYXRpb246IHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCB0YXNr
SUQgPSAlbHU6ICVzIGNvb2tpZXMgZm9yIHJlZGlyZWN0IFVSTCAlcyIsIHRoaXMsIG1fcGFnZUlE
LnRvVUludDY0KCksIG1fZnJhbWVJRCwgKHVuc2lnbmVkIGxvbmcpW21fdGFzayB0YXNrSWRlbnRp
Zmllcl0sIChzaG91bGRCbG9ja0Nvb2tpZXMgPyAiQmxvY2tpbmciIDogIk5vdCBibG9ja2luZyIp
LCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDVkYTZkOTc3NzkwLi5hMWE4Yzcz
ZTg3MyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI1IEBACisyMDE5LTExLTE2ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBw
bGUuY29tPgorCisgICAgICAgIENoZWNrIGlmIElUUCBpcyBvbiBiZWZvcmUgYXBwbHlpbmcgdGhp
cmQtcGFydHkgY29va2llIGJsb2NraW5nIGluIE5ldHdvcmtEYXRhVGFza0NvY29hCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQxMDkKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzU3MTIwNzcyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBhbGxvdyBh
IGxheW91dCB0ZXN0IHRvCisgICAgICAgIGRpc2FibGUgSVRQIGluIHRoZSBuZXR3b3JrIHByb2Nl
c3MuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldFN0YXRpc3Rp
Y3NFbmFibGVkKToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGljc0RlYnVn
TW9kZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzRW5hYmxlZCk6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2Nh
dGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisK
IDIwMTktMTEtMDUgIEFsYW4gQ29vbiAgPGFsYW5jb29uQGFwcGxlLmNvbT4KIAogICAgICAgICBB
cHBseSBwYXRjaC4gcmRhcjovL3Byb2JsZW0vNTY5MDMyNzQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIu
aWRsCmluZGV4IDYwYjkxZThkMzcxLi42MjA4ZWQwOWIyYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5u
ZXIuaWRsCkBAIC0yOTIsNiArMjkyLDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIHZv
aWQgZGlzY29ubmVjdE1vY2tHYW1lcGFkKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogCiAgICAgLy8g
UmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzCisgICAgdm9pZCBzZXRTdGF0aXN0aWNzRW5hYmxlZChi
b29sZWFuIHZhbHVlKTsKICAgICB2b2lkIGluc3RhbGxTdGF0aXN0aWNzRGlkTW9kaWZ5RGF0YVJl
Y29yZHNDYWxsYmFjayhvYmplY3QgY2FsbGJhY2spOwogICAgIHZvaWQgaW5zdGFsbFN0YXRpc3Rp
Y3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhvYmplY3QgY2FsbGJhY2spOwogICAgIHZvaWQg
aW5zdGFsbFN0YXRpc3RpY3NEaWRSdW5UZWxlbWV0cnlDYWxsYmFjayhvYmplY3QgY2FsbGJhY2sp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAKaW5kZXggZGY3MzYzODA3NjkuLjNlNjZmY2ZmZTg1IDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTEz
NzcsNiArMTM3NywxMyBAQCB2b2lkIFRlc3RSdW5uZXI6OmNhbGxEaWRSZW1vdmVTd2lwZVNuYXBz
aG90Q2FsbGJhY2soKQogICAgIGNhbGxUZXN0UnVubmVyQ2FsbGJhY2soRGlkUmVtb3ZlU3dpcGVT
bmFwc2hvdENhbGxiYWNrSUQpOwogfQogCit2b2lkIFRlc3RSdW5uZXI6OnNldFN0YXRpc3RpY3NF
bmFibGVkKGJvb2wgdmFsdWUpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3Nh
Z2VOYW1lID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2V0U3RhdGlz
dGljc0VuYWJsZWQiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tCb29sZWFuUmVmPiBtZXNzYWdlQm9k
eSA9IGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKHZhbHVlKSk7CisgICAgV0tCdW5kbGVQb3N0U3lu
Y2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVz
c2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCBudWxscHRyKTsKK30KKwogdm9pZCBU
ZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzRGVidWdNb2RlKGJvb2wgdmFsdWUsIEpTVmFsdWVSZWYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgY2FjaGVUZXN0UnVubmVyQ2FsbGJhY2soU2V0U3Rh
dGlzdGljc0RlYnVnTW9kZUNhbGxiYWNrSUQsIGNvbXBsZXRpb25IYW5kbGVyKTsKQEAgLTEzODQs
NyArMTM5MSw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGljc0RlYnVnTW9kZShib29s
IHZhbHVlLCBKU1ZhbHVlUmVmIGNvbXBsZXRpb25IYW5kbGVyCiAgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IG1lc3NhZ2VOYW1lID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiU2V0U3RhdGlzdGljc0RlYnVnTW9kZSIpKTsKICAgICBXS1JldGFpblB0cjxXS0Jvb2xl
YW5SZWY+IG1lc3NhZ2VCb2R5ID0gYWRvcHRXSyhXS0Jvb2xlYW5DcmVhdGUodmFsdWUpKTsKICAg
ICBXS0J1bmRsZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRv
bigpLmJ1bmRsZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCksIG51bGxw
dHIpOwotCiB9CiAKIHZvaWQgVGVzdFJ1bm5lcjo6c3RhdGlzdGljc0NhbGxEaWRTZXREZWJ1Z01v
ZGVDYWxsYmFjaygpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5oCmluZGV4IDZlNGM2ZTljZWQzLi4zYjIwZmFlMzBlOCAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAg
LTM4MCw2ICszODAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNb2NrR2FtZXBhZEJ1dHRvblZh
bHVlKHVuc2lnbmVkIGluZGV4LCB1bnNpZ25lZCBidXR0b25JbmRleCwgZG91YmxlIHZhbHVlKTsK
ICAgICAKICAgICAvLyBSZXNvdXJjZSBMb2FkIFN0YXRpc3RpY3MKKyAgICB2b2lkIHNldFN0YXRp
c3RpY3NFbmFibGVkKGJvb2wgdmFsdWUpOwogICAgIHZvaWQgaW5zdGFsbFN0YXRpc3RpY3NEaWRN
b2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spOwogICAgIHZvaWQg
aW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhKU1ZhbHVlUmVmIGNh
bGxiYWNrKTsKICAgICB2b2lkIGluc3RhbGxTdGF0aXN0aWNzRGlkUnVuVGVsZW1ldHJ5Q2FsbGJh
Y2soSlNWYWx1ZVJlZiBjYWxsYmFjayk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCmluZGV4IDYwMjY0NDdjN2UyLi5mZTUxZjRmMzllMCAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTMyMTAsNiArMzIxMCwxMiBAQCBzdGF0
aWMgdm9pZCByZXNvdXJjZVN0YXRpc3RpY3NCb29sZWFuUmVzdWx0Q2FsbGJhY2soYm9vbCByZXN1
bHQsIHZvaWQqIHVzZXJEYXRhKQogICAgIGNvbnRleHQtPnRlc3RDb250cm9sbGVyLm5vdGlmeURv
bmUoKTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc0VuYWJsZWQoYm9v
bCB2YWx1ZSkKK3sKKyAgICBhdXRvKiBkYXRhU3RvcmUgPSBXS0NvbnRleHRHZXRXZWJzaXRlRGF0
YVN0b3JlKHBsYXRmb3JtQ29udGV4dCgpKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChkYXRhU3RvcmUsIHZhbHVlKTsKK30KKwogdm9pZCBU
ZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc0RlYnVnTW9kZShib29sIHZhbHVlKQogewogICAg
IGF1dG8qIGRhdGFTdG9yZSA9IFdLQ29udGV4dEdldFdlYnNpdGVEYXRhU3RvcmUocGxhdGZvcm1D
b250ZXh0KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IGFm
OWU4NDYzMWMxLi44ZDFmOWQxZjYzZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaApAQCAtMjA0LDYgKzIwNCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNob3VsZERv
d25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyhib29sIHZhbHVlKSB7IG1fc2hvdWxkRG93bmxv
YWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzID0gdmFsdWU7IH0KICAgICB2b2lkIHNldFNob3VsZEFs
bG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoYm9vbCB2YWx1ZSkgeyBtX3Nob3Vs
ZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MgPSB2YWx1ZTsgfQogCisgICAg
dm9pZCBzZXRTdGF0aXN0aWNzRW5hYmxlZChib29sIHZhbHVlKTsKICAgICB2b2lkIHNldFN0YXRp
c3RpY3NEZWJ1Z01vZGUoYm9vbCB2YWx1ZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoV0tTdHJpbmdSZWYgaG9zdE5hbWUpOwogICAgIHZvaWQg
c2V0U3RhdGlzdGljc0xhc3RTZWVuKFdLU3RyaW5nUmVmIGhvc3ROYW1lLCBkb3VibGUgc2Vjb25k
cyk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDVmMmQy
MGM3ZTU5Li4xYWY0Y2NjMzg1ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2Nh
dGlvbi5jcHAKQEAgLTEwNjEsNiArMTA2MSwxMyBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRl
c3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgog
ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxU
b1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc0VuYWJsZWQiKSkgeworICAg
ICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLQm9vbGVhbkdldFR5cGVJ
RCgpKTsKKyAgICAgICAgV0tCb29sZWFuUmVmIHZhbHVlID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFu
UmVmPihtZXNzYWdlQm9keSk7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5z
ZXRTdGF0aXN0aWNzRW5hYmxlZChXS0Jvb2xlYW5HZXRWYWx1ZSh2YWx1ZSkpOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRG
OENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRTdGF0aXN0aWNzRGVidWdNb2RlIikpIHsKICAgICAg
ICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0Jvb2xlYW5HZXRUeXBlSUQo
KSk7CiAgICAgICAgIFdLQm9vbGVhblJlZiB2YWx1ZSA9IHN0YXRpY19jYXN0PFdLQm9vbGVhblJl
Zj4obWVzc2FnZUJvZHkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383709</attachid>
            <date>2019-11-16 16:03:02 -0800</date>
            <delta_ts>2019-11-16 16:11:25 -0800</delta_ts>
            <desc>Proposed patch addressing Chris&apos;s comments</desc>
            <filename>unreviewed-for-branch-v2.patch</filename>
            <type>text/plain</type>
            <size>18219</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0YWZkOWM0NTQxMi4uZWZjZjQ1YTczZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxOS0xMS0xNiAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAg
ICBDaGVjayBpZiBJVFAgaXMgb24gYmVmb3JlIGFwcGx5aW5nIHRoaXJkLXBhcnR5IGNvb2tpZSBi
bG9ja2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA0MTA5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzEyMDc3Mj4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9uby10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2hlbi1pdHAtaXMt
b2ZmLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL25vLXRoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy13aGVuLWl0cC1pcy1v
ZmYuaHRtbDogQWRkZWQuCisKIDIwMTktMTEtMDQgIEFsYW4gQ29vbiAgPGFsYW5jb29uQGFwcGxl
LmNvbT4KIAogICAgICAgICBDaGVycnktcGljayByMjUxOTU3LiByZGFyOi8vcHJvYmxlbS81Njg4
NzUxMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL25vLXRoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy13aGVuLWl0cC1pcy1vZmYtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L25vLXRoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy13aGVuLWl0cC1pcy1vZmYtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43MDUzMmQ3YzlmYQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9uby10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2hlbi1pdHAtaXMtb2ZmLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitUZXN0cyB0aGF0IGV4aXN0aW5nIHRoaXJkLXBh
cnR5IGNvb2tpZXMgYXJlIG5vdCBibG9ja2VkIHdoZW4gSVRQIGlzIG9mZi4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0t
LS0tLQorU2hvdWxkIHJlY2VpdmUgaXRzIGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAn
Zmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6IGZpcnN0UGFy
dHlDb29raWU9dmFsdWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9uby10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2hlbi1pdHAt
aXMtb2ZmLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvbm8tdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdoZW4taXRwLWlzLW9mZi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wMjg1ZTdiYzQ5YwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9uby10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2hlbi1pdHAtaXMtb2ZmLmh0bWwKQEAg
LTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4K
KyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2Ny
aXB0aW9uKCJUZXN0cyB0aGF0IGV4aXN0aW5nIHRoaXJkLXBhcnR5IGNvb2tpZXMgYXJlIG5vdCBi
bG9ja2VkIHdoZW4gSVRQIGlzIG9mZi4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
ICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHBh
cnRpdGlvbk9yaWdpbiA9ICJodHRwOi8vIiArIHBhcnRpdGlvbkhvc3Q7CisgICAgY29uc3QgdGhp
cmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHJlc291
cmNlUGF0aCA9ICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMiOworICAgIGNvbnN0
IHRoaXJkUGFydHlCYXNlVXJsID0gdGhpcmRQYXJ0eU9yaWdpbiArIHJlc291cmNlUGF0aDsKKyAg
ICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5Q29va2llIjsKKyAgICBj
b25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1l
PSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9dmFsdWUiOworICAgIGNvbnN0IHJl
dHVyblVybCA9IHBhcnRpdGlvbk9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9uby10
aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2hlbi1pdHAtaXMtb2ZmLmh0bWwiOworICAgIGNv
bnN0IHN1YlBhdGhUb0dldENvb2tpZXMgPSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmly
c3RQYXJ0eUNvb2tpZU5hbWU7CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2Fk
SGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiaWZyYW1lIik7CisgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAgICAgICBpZiAob25M
b2FkSGFuZGxlcikgeworICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSBvbkxvYWRIYW5kbGVy
OworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc3dpdGNoIChkb2N1
bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgorICAgICAg
ICAgICAgICAgIC8vIFNldCBmaXJzdC1wYXJ0eSBjb29raWUgZm9yIGxvY2FsaG9zdC4KKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdGhpcmRQYXJ0eUJhc2VVcmwgKyBz
dWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llICsgIiMiICsgcmV0dXJuVXJsICsgIiNzdGVwMiI7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDMiOworICAgICAgICAg
ICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIGNvb2tpZSBpcyBub3QgYmxvY2tlZCBmb3IgbG9jYWxo
b3N0IHVuZGVyIDEyNy4wLjAuMS4KKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFy
dHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2
ZSBpdHMgY29va2llLiIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzKGZhbHNlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c0VuYWJsZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRp
b24uaGFzaCA9PT0gIiIpIHsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzRW5hYmxlZChmYWxz
ZSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAg
ICAgICAgICAgLy8gRW5hYmxlIHRoZSBmbGFnIGV2ZW4gdGhvdWdoIElUUCBpcyBvZmYuCisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRCbG9ja1RoaXJkUGFydHlDb29r
aWVzKHRydWUsIHJ1blRlc3QpOworICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9
ICJzdGVwMSI7CisgICAgICAgICAgICBydW5UZXN0KCk7CisgICAgICAgIH0pOworICAgIH0gZWxz
ZSB7CisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBhOTM1NDg5NzFhNC4uM2QyNzJjN2JiOTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNiBAQAorMjAxOS0xMS0xNiAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBDaGVjayBpZiBJVFAgaXMgb24gYmVmb3JlIGFwcGx5aW5nIHRoaXJk
LXBhcnR5IGNvb2tpZSBibG9ja2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA0MTA5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzEyMDc3Mj4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNo
YW5nZSBtYWtlcyBzdXJlIFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiBrbm93cworICAg
ICAgICB3aGV0aGVyIElUUCBpcyBvbiBvciBvZmYgYW5kIGNoZWNrcyB0aGF0IGZpcnN0IHRoaW5n
IGluCisgICAgICAgIFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2hvdWxkQmxvY2tD
b29raWVzKCkuCisKKyAgICAgICAgVGhpcyBjaGVjayB3YXMgbmV2ZXIgbmVlZGVkIGJlZm9yZSBz
aW5jZSBpZiBJVFAgd2FzIG9mZiwKKyAgICAgICAgdGhlcmUgd291bGQgYmUgbm8gY2xhc3NpZmll
ZCBkb21haW5zIGFuZCB0aHVzIHRoZSBmdW5jdGlvbgorICAgICAgICB3b3VsZCBhbHdheXMgcmV0
dXJuIGZhbHNlLiBIb3dldmVyLAorICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFu
Z2VzZXQvMjUxMzUzL3dlYmtpdCBpbnRyb2R1Y2VkCisgICAgICAgIGZ1bGwgdGhpcmQtcGFydHkg
Y29va2llIGJsb2NraW5nIGZvciB3ZWJzaXRlcyB3aXRob3V0IHVzZXIKKyAgICAgICAgaW50ZXJh
Y3Rpb24gYW5kIHRoYXQgcnVsZSBpcyBjaGVja2VkIGJlZm9yZSBjaGVja2luZyBkb21haW4KKyAg
ICAgICAgY2xhc3NpZmljYXRpb24uIFRoZSBlZmZlY3Qgd2FzIHVuY29uZGl0aW9uYWwgdGhpcmQt
cGFydHkKKyAgICAgICAgY29va2llIGJsb2NraW5nIGlmIElUUCBpcyBvZmYuIFRoaXMgY2hhbmdl
cyBmaXhlcyB0aGF0IGJ1Zy4KKworICAgICAgICBOb3RlIHRoYXQgdGhpcyBwYXRjaCBpcyBicmFu
Y2gtc3BlY2lmaWMgYW5kIGV4cGVjdGVkIHRvIG5vdAorICAgICAgICBhcHBseSB0byB0cnVuay4K
KworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm8tdGhp
cmQtcGFydHktY29va2llLWJsb2NraW5nLXdoZW4taXRwLWlzLW9mZi5odG1sCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tp
ZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91
bGRCbG9ja0Nvb2tpZXMgY29uc3QpOgorICAgICAgICAgICAgTm93IGNoZWNrcyB3aGV0aGVyIElU
UCBpcyBvbiBvciBvZmYuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFn
ZVNlc3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQpOgorCiAyMDE5LTExLTA3ICBBbGFuIENvb24g
IDxhbGFuY29vbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ2hlcnJ5LXBpY2sgcjI1MjE3NS4gcmRh
cjovL3Byb2JsZW0vNTY5NzE1NjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcAppbmRleCA3N2Y3NWFhMGQ4ZS4u
ZTJmZTRjMTUxNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OnBlcm1pdFByb2Nlc3NUb1VzZUNvb2tpZUFQSShib29sIHZh
bHVlKQogCiBib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2hvdWxkQmxvY2tUaGlyZFBhcnR5
Q29va2llcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVnaXN0cmFibGVEb21haW4pIGNvbnN0
CiB7Ci0gICAgaWYgKHJlZ2lzdHJhYmxlRG9tYWluLmlzRW1wdHkoKSkKKyAgICBpZiAoIW1faXNS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCB8fCByZWdpc3RyYWJsZURvbWFpbi5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiBtX3JlZ2lzdHJhYmxlRG9t
YWluc1RvQmxvY2tDb29raWVGb3IuY29udGFpbnMocmVnaXN0cmFibGVEb21haW4pOwpAQCAtNzYs
MTEgKzc2LDE3IEBAIGJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpoYXNIYWRVc2VySW50ZXJh
Y3Rpb25Bc0ZpcnN0UGFydHkoY29uc3QgUmVnaXN0cmFibGVECiAKIGJvb2wgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
IHBhZ2VJRCkgY29uc3QKIHsKKyAgICBpZiAoIW1faXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5h
YmxlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgcmV0dXJuIHNob3VsZEJsb2NrQ29v
a2llcyhyZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCksIHJlcXVlc3QudXJsKCksIGZyYW1l
SUQsIHBhZ2VJRCk7CiB9CiAgICAgCiBib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2hvdWxk
QmxvY2tDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eUZvckNvb2tpZXMsIGNvbnN0IFVSTCYg
cmVzb3VyY2UsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRp
Zmllcj4gcGFnZUlEKSBjb25zdAogeworICAgIGlmICghbV9pc1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NFbmFibGVkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBSZWdpc3RyYWJsZURvbWFp
biBmaXJzdFBhcnR5RG9tYWluIHsgZmlyc3RQYXJ0eUZvckNvb2tpZXMgfTsKICAgICBpZiAoZmly
c3RQYXJ0eURvbWFpbi5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lv
bi5oCmluZGV4IDE1MDVmZDQ1YzBlLi43M2MyZTc3ZjNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCkBAIC0x
NjUsNiArMTY1LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkQ29tbWl0
Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJldmFsZW50UmVzb3VyY2UoY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIHRvRG9tYWluLCBQYWdlSWRlbnRpZmllcik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCByZXNldENyb3NzU2l0ZUxvYWRzV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVz
dGluZygpOwogICAgIHZvaWQgc2V0SXNUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdPblNpdGVzV2l0
aG91dFVzZXJJbnRlcmFjdGlvbkVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1faXNUaGlyZFBhcnR5
Q29va2llQmxvY2tpbmdPblNpdGVzV2l0aG91dFVzZXJJbnRlcmFjdGlvbkVuYWJsZWQgPSBlbmFi
bGVkOyB9CisgICAgdm9pZCBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChib29sIGVu
YWJsZWQpIHsgbV9pc1Jlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkID0gZW5hYmxlZDsgfQog
I2VuZGlmCiAKIHByaXZhdGU6CkBAIC0xOTksNiArMjAwLDcgQEAgcHJpdmF0ZToKICAgICBIYXNo
TWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBSZWdpc3RyYWJsZURvbWFpbj4gbV9uYXZpZ2F0
ZWRUb1dpdGhMaW5rRGVjb3JhdGlvbkJ5UHJldmFsZW50UmVzb3VyY2U7CiAgICAgYm9vbCBtX25h
dmlnYXRpb25XaXRoTGlua0RlY29yYXRpb25UZXN0TW9kZSA9IGZhbHNlOwogICAgIGJvb2wgbV9p
c1RoaXJkUGFydHlDb29raWVCbG9ja2luZ09uU2l0ZXNXaXRob3V0VXNlckludGVyYWN0aW9uRW5h
YmxlZCA9IHRydWU7CisgICAgYm9vbCBtX2lzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQg
PSBmYWxzZTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRmM2Q3
MDg1NDAzLi5mNjExZjI4NmUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxOS0xMS0x
NiAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBDaGVjayBp
ZiBJVFAgaXMgb24gYmVmb3JlIGFwcGx5aW5nIHRoaXJkLXBhcnR5IGNvb2tpZSBibG9ja2luZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MTA5Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzEyMDc3Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSBtYWtlcyBzdXJlIFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiBrbm93cworICAgICAgICB3aGV0aGVyIElUUCBpcyBvbiBv
ciBvZmYgYW5kIGNoZWNrcyB0aGF0IGZpcnN0IHRoaW5nIGluCisgICAgICAgIFdlYkNvcmU6Ok5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2hvdWxkQmxvY2tDb29raWVzKCkuCisKKyAgICAgICAgVGhp
cyBjaGVjayB3YXMgbmV2ZXIgbmVlZGVkIGJlZm9yZSBzaW5jZSBpZiBJVFAgd2FzIG9mZiwKKyAg
ICAgICAgdGhlcmUgd291bGQgYmUgbm8gY2xhc3NpZmllZCBkb21haW5zIGFuZCB0aHVzIHRoZSBm
dW5jdGlvbgorICAgICAgICB3b3VsZCBhbHdheXMgcmV0dXJuIGZhbHNlLiBIb3dldmVyLAorICAg
ICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjUxMzUzL3dlYmtpdCBpbnRy
b2R1Y2VkCisgICAgICAgIGZ1bGwgdGhpcmQtcGFydHkgY29va2llIGJsb2NraW5nIGZvciB3ZWJz
aXRlcyB3aXRob3V0IHVzZXIKKyAgICAgICAgaW50ZXJhY3Rpb24gYW5kIHRoYXQgcnVsZSBpcyBj
aGVja2VkIGJlZm9yZSBjaGVja2luZyBkb21haW4KKyAgICAgICAgY2xhc3NpZmljYXRpb24uIFRo
ZSBlZmZlY3Qgd2FzIHVuY29uZGl0aW9uYWwgdGhpcmQtcGFydHkKKyAgICAgICAgY29va2llIGJs
b2NraW5nIGlmIElUUCBpcyBvZmYuIFRoaXMgY2hhbmdlcyBmaXhlcyB0aGF0IGJ1Zy4KKworICAg
ICAgICBOb3RlIHRoYXQgdGhpcyBwYXRjaCBpcyBicmFuY2gtc3BlY2lmaWMgYW5kIGV4cGVjdGVk
IHRvIG5vdAorICAgICAgICBhcHBseSB0byB0cnVuay4KKworICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246
OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKToKKyAgICAgICAgICAgIE5vdyB0ZWxs
cyBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24gdGhlIHN0YXR1cyBvZgorICAgICAgICAg
ICAgSVRQLgorCiAyMDE5LTExLTA3ICBBbGFuIENvb24gIDxhbGFuY29vbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgQ2hlcnJ5LXBpY2sgcjI1MjE3NS4gcmRhcjovL3Byb2JsZW0vNTY5NzE1NjEKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKaW5kZXgg
OGNjNTFiNGRmYTAuLjk3ZDIxN2RlMGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApAQCAtMTMxLDYgKzEzMSw4IEBAIHZvaWQgTmV0d29y
a1Nlc3Npb246OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wgZW5hYmxlKQog
ewogICAgIEFTU0VSVCghbV9pc0ludmFsaWRhdGVkKTsKICAgICBpZiAoIWVuYWJsZSkgeworICAg
ICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBuZXR3b3JrU3RvcmFnZVNlc3Npb24oKSkK
KyAgICAgICAgICAgIHN0b3JhZ2VTZXNzaW9uLT5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5h
YmxlZChmYWxzZSk7CiAgICAgICAgIGRlc3Ryb3lSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xNDMsNiArMTQ1LDggQEAgdm9pZCBOZXR3b3JrU2Vz
c2lvbjo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoYm9vbCBlbmFibGUpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6Y3JlYXRlKCp0aGlzLCBtX3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEaXJlY3RvcnksIG1fc2hvdWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlz
dGljcyk7CisgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0gbmV0d29ya1N0b3JhZ2VTZXNz
aW9uKCkpCisgICAgICAgIHN0b3JhZ2VTZXNzaW9uLT5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RW5hYmxlZCh0cnVlKTsKIAogICAgIGlmIChtX2VuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NE
ZWJ1Z01vZGUgPT0gRW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZTo6WWVzKQog
ICAgICAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEZWJ1Z01vZGUodHJ1ZSwgW10geyB9KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1ZGE2ZDk3Nzc5MC4uYTkwOWFlNTljODQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBA
QAorMjAxOS0xMS0xNiAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBDaGVjayBpZiBJVFAgaXMgb24gYmVmb3JlIGFwcGx5aW5nIHRoaXJkLXBhcnR5IGNvb2tp
ZSBibG9ja2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA0MTA5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzEyMDc3Mj4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIHRlc3QgaW5mcmFz
dHJ1Y3R1cmUgdG8gYWxsb3cgYSBsYXlvdXQgdGVzdCB0bworICAgICAgICBkaXNhYmxlIElUUCBp
biB0aGUgbmV0d29yayBwcm9jZXNzLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0
UnVubmVyOjpzZXRTdGF0aXN0aWNzRW5hYmxlZCk6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6
OnNldFN0YXRpc3RpY3NEZWJ1Z01vZGUpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlz
dGljc0VuYWJsZWQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
aDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAg
ICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9t
SW5qZWN0ZWRCdW5kbGUpOgorCiAyMDE5LTExLTA1ICBBbGFuIENvb24gIDxhbGFuY29vbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgQXBwbHkgcGF0Y2guIHJkYXI6Ly9wcm9ibGVtLzU2OTAzMjc0CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCA2MGI5MWU4ZDM3MS4uNjIwOGVkMDliMmEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
VGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtMjkyLDYgKzI5Miw3IEBAIGludGVyZmFjZSBU
ZXN0UnVubmVyIHsKICAgICB2b2lkIGRpc2Nvbm5lY3RNb2NrR2FtZXBhZCh1bnNpZ25lZCBsb25n
IGluZGV4KTsKIAogICAgIC8vIFJlc291cmNlIExvYWQgU3RhdGlzdGljcworICAgIHZvaWQgc2V0
U3RhdGlzdGljc0VuYWJsZWQoYm9vbGVhbiB2YWx1ZSk7CiAgICAgdm9pZCBpbnN0YWxsU3RhdGlz
dGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2sob2JqZWN0IGNhbGxiYWNrKTsKICAgICB2
b2lkIGluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2sob2JqZWN0IGNh
bGxiYWNrKTsKICAgICB2b2lkIGluc3RhbGxTdGF0aXN0aWNzRGlkUnVuVGVsZW1ldHJ5Q2FsbGJh
Y2sob2JqZWN0IGNhbGxiYWNrKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGRmNzM2MzgwNzY5Li4zZTY2ZmNmZmU4
NSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuY3BwCkBAIC0xMzc3LDYgKzEzNzcsMTMgQEAgdm9pZCBUZXN0UnVubmVyOjpjYWxs
RGlkUmVtb3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrKCkKICAgICBjYWxsVGVzdFJ1bm5lckNhbGxi
YWNrKERpZFJlbW92ZVN3aXBlU25hcHNob3RDYWxsYmFja0lEKTsKIH0KIAordm9pZCBUZXN0UnVu
bmVyOjpzZXRTdGF0aXN0aWNzRW5hYmxlZChib29sIHZhbHVlKQoreworICAgIFdLUmV0YWluUHRy
PFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIlNldFN0YXRpc3RpY3NFbmFibGVkIikpOworICAgIFdLUmV0YWluUHRyPFdLQm9v
bGVhblJlZj4gbWVzc2FnZUJvZHkgPSBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0ZSh2YWx1ZSkpOwor
ICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xl
dG9uKCkuYnVuZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSwgbnVs
bHB0cik7Cit9CisKIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGljc0RlYnVnTW9kZShib29s
IHZhbHVlLCBKU1ZhbHVlUmVmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGNhY2hlVGVzdFJ1
bm5lckNhbGxiYWNrKFNldFN0YXRpc3RpY3NEZWJ1Z01vZGVDYWxsYmFja0lELCBjb21wbGV0aW9u
SGFuZGxlcik7CkBAIC0xMzg0LDcgKzEzOTEsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFN0YXRp
c3RpY3NEZWJ1Z01vZGUoYm9vbCB2YWx1ZSwgSlNWYWx1ZVJlZiBjb21wbGV0aW9uSGFuZGxlcgog
ICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlNldFN0YXRpc3RpY3NEZWJ1Z01vZGUiKSk7CiAgICAg
V0tSZXRhaW5QdHI8V0tCb29sZWFuUmVmPiBtZXNzYWdlQm9keSA9IGFkb3B0V0soV0tCb29sZWFu
Q3JlYXRlKHZhbHVlKSk7CiAgICAgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVj
dGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3Nh
Z2VCb2R5LmdldCgpLCBudWxscHRyKTsKLQogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnN0YXRpc3Rp
Y3NDYWxsRGlkU2V0RGVidWdNb2RlQ2FsbGJhY2soKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCA2ZTRjNmU5Y2VkMy4uM2Iy
MGZhZTMwZTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5oCkBAIC0zODAsNiArMzgwLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
TW9ja0dhbWVwYWRCdXR0b25WYWx1ZSh1bnNpZ25lZCBpbmRleCwgdW5zaWduZWQgYnV0dG9uSW5k
ZXgsIGRvdWJsZSB2YWx1ZSk7CiAgICAgCiAgICAgLy8gUmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNz
CisgICAgdm9pZCBzZXRTdGF0aXN0aWNzRW5hYmxlZChib29sIHZhbHVlKTsKICAgICB2b2lkIGlu
c3RhbGxTdGF0aXN0aWNzRGlkTW9kaWZ5RGF0YVJlY29yZHNDYWxsYmFjayhKU1ZhbHVlUmVmIGNh
bGxiYWNrKTsKICAgICB2b2lkIGluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2Fs
bGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjayk7CiAgICAgdm9pZCBpbnN0YWxsU3RhdGlzdGljc0Rp
ZFJ1blRlbGVtZXRyeUNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA2MDI2NDQ3YzdlMi4uZmU1MWY0ZjM5
ZTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0zMjEw
LDYgKzMyMTAsMTIgQEAgc3RhdGljIHZvaWQgcmVzb3VyY2VTdGF0aXN0aWNzQm9vbGVhblJlc3Vs
dENhbGxiYWNrKGJvb2wgcmVzdWx0LCB2b2lkKiB1c2VyRGF0YSkKICAgICBjb250ZXh0LT50ZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0
YXRpc3RpY3NFbmFibGVkKGJvb2wgdmFsdWUpCit7CisgICAgYXV0byogZGF0YVN0b3JlID0gV0tD
b250ZXh0R2V0V2Vic2l0ZURhdGFTdG9yZShwbGF0Zm9ybUNvbnRleHQoKSk7CisgICAgV0tXZWJz
aXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZGF0YVN0b3JlLCB2
YWx1ZSk7Cit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NEZWJ1Z01vZGUo
Ym9vbCB2YWx1ZSkKIHsKICAgICBhdXRvKiBkYXRhU3RvcmUgPSBXS0NvbnRleHRHZXRXZWJzaXRl
RGF0YVN0b3JlKHBsYXRmb3JtQ29udGV4dCgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuaAppbmRleCBhZjllODQ2MzFjMS4uOGQxZjlkMWY2M2QgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTIwNCw2ICsyMDQsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXMoYm9vbCB2YWx1
ZSkgeyBtX3Nob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyA9IHZhbHVlOyB9CiAg
ICAgdm9pZCBzZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKGJv
b2wgdmFsdWUpIHsgbV9zaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNz
ID0gdmFsdWU7IH0KIAorICAgIHZvaWQgc2V0U3RhdGlzdGljc0VuYWJsZWQoYm9vbCB2YWx1ZSk7
CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzRGVidWdNb2RlKGJvb2wgdmFsdWUpOwogICAgIHZvaWQg
c2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFdLU3RyaW5nUmVmIGhv
c3ROYW1lKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NMYXN0U2VlbihXS1N0cmluZ1JlZiBob3N0
TmFtZSwgZG91YmxlIHNlY29uZHMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0
aW9uLmNwcAppbmRleCA1ZjJkMjBjN2U1OS4uMWFmNGNjYzM4NWUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0xMDYxLDYgKzEwNjEsMTMgQEAgV0tSZXRh
aW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVz
c2FnZUZyb21JbmplY3RlZEIKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKKyAgICBp
ZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFN0YXRpc3Rp
Y3NFbmFibGVkIikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9
PSBXS0Jvb2xlYW5HZXRUeXBlSUQoKSk7CisgICAgICAgIFdLQm9vbGVhblJlZiB2YWx1ZSA9IHN0
YXRpY19jYXN0PFdLQm9vbGVhblJlZj4obWVzc2FnZUJvZHkpOworICAgICAgICBUZXN0Q29udHJv
bGxlcjo6c2luZ2xldG9uKCkuc2V0U3RhdGlzdGljc0VuYWJsZWQoV0tCb29sZWFuR2V0VmFsdWUo
dmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIAogICAgIGlmIChX
S1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc0Rl
YnVnTW9kZSIpKSB7CiAgICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0g
V0tCb29sZWFuR2V0VHlwZUlEKCkpOwogICAgICAgICBXS0Jvb2xlYW5SZWYgdmFsdWUgPSBzdGF0
aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KG1lc3NhZ2VCb2R5KTsK
</data>
<flag name="review"
          id="399460"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>