<?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>167242</bug_id>
          
          <creation_ts>2017-01-20 10:29:54 -0800</creation_ts>
          <short_desc>[WebRTC] libwebrtc headers are incompatible with WebKit compilation flags</short_desc>
          <delta_ts>2017-01-26 23:28:49 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>agouaillard</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1268463</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-01-20 10:29:54 -0800</bug_when>
    <thetext>Unused parameters for inline functions generate errors in WebKit source code including libwebrtc source code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268467</commentid>
    <comment_count>1</comment_count>
      <attachid>299355</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-01-20 10:36:08 -0800</bug_when>
    <thetext>Created attachment 299355
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268470</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-20 10:38:24 -0800</bug_when>
    <thetext>Attachment 299355 did not pass style-queue:

ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:122:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:123:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:124:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:392:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:393:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:399:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:399:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:413:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:414:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:436:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:436:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:447:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:448:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:448:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:452:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:453:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:453:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:457:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:458:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:458:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:462:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:463:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:463:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:478:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:479:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:482:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:491:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:504:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:521:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:522:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:556:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:556:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:558:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:558:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:561:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:561:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:564:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:564:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:568:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:568:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:568:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:570:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:570:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:591:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:591:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:594:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectioninterface.h:594:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/base/messagehandler.h:43:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/base/messagehandler.h:43:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/base/messagehandler.h:59:  Use &apos;WTFMove()&apos; instead of &apos;std::move()&apos;.  [runtime/wtf_move] [4]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/base/messagehandler.h:59:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/modules/include/module.h:56:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/modules/include/module.h:56:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/p2p/base/stun.h:220:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/p2p/base/stun.h:220:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectionfactory.h:84:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectionfactory.h:86:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/peerconnectionfactory.h:87:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/p2p/base/port.h:244:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/p2p/base/port.h:245:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/p2p/base/port.h:246:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/p2p/base/port.h:363:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/p2p/base/port.h:363:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/mediastreaminterface.h:137:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/mediastreaminterface.h:138:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/mediastreaminterface.h:138:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/mediastreaminterface.h:139:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/mediastreaminterface.h:139:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/mediastreaminterface.h:177:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/mediastreaminterface.h:177:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/mediastreaminterface.h:180:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/mediastreaminterface.h:180:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/mediastreaminterface.h:181:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/mediastreaminterface.h:181:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/mediastreaminterface.h:184:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/mediastreaminterface.h:184:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/mediastreaminterface.h:185:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/mediastreaminterface.h:185:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/mediastreaminterface.h:233:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/p2p/base/stunrequest.h:113:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/p2p/base/stunrequest.h:113:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/p2p/base/stunrequest.h:116:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/p2p/base/stunrequest.h:116:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/p2p/base/stunrequest.h:117:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/p2p/base/stunrequest.h:117:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/base/stream.h:135:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/base/stream.h:135:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/base/stream.h:149:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/base/stream.h:149:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/api/jsep.h:101:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/media/engine/webrtcvideoencoderfactory.h:39:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/media/engine/webrtcvideoencoderfactory.h:40:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/media/engine/webrtcvideoencoderfactory.h:41:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/media/engine/webrtcvideoencoderfactory.h:73:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/media/engine/webrtcvideoencoderfactory.h:73:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/p2p/base/transport.h:270:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/p2p/base/transport.h:270:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/p2p/base/transport.h:274:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/p2p/base/transport.h:323:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/p2p/base/transport.h:326:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/p2p/base/transport.h:326:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Sou
rce/webrtc/media/engine/webrtcvideodecoderfactory.h:35:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/media/base/mediachannel.h:1162:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/media/base/mediachannel.h:1167:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/media/base/mediachannel.h:1168:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/ThirdParty/libwebrtc/Source/webrtc/media/base/mediachannel.h:1168:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 106 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268484</commentid>
    <comment_count>3</comment_count>
      <attachid>299355</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-01-20 11:14:19 -0800</bug_when>
    <thetext>Comment on attachment 299355
Patch

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

It would probably be worth maintaining a list of changes like https://trac.webkit.org/browser/trunk/Source/ThirdParty/ANGLE/changes.diff so the public and especially libwebrtc developers can see what we need to change from their project.

&gt; Source/ThirdParty/libwebrtc/ChangeLog:3
&gt; +        [WebRTC] libwebrtc headers are incompatible with WebKit compilation flags

Specifically -Wunused-parameter and -Wunused-variable

&gt; Source/ThirdParty/libwebrtc/Source/webrtc/api/mediastreaminterface.h:139
&gt; +                       const rtc::VideoSinkWants&amp;) override {};
&gt; +  void RemoveSink(rtc::VideoSinkInterface&lt;VideoFrame&gt;*) override {};

I don&apos;t know if it&apos;s worth making these headers match WebKit style.

&gt; Source/ThirdParty/libwebrtc/Source/webrtc/base/sanitizer.h:53
&gt; +(void)&amp;(ptr);
&gt; +(void)&amp;(element_size);
&gt; +(void)&amp;(num_elements);

These should be in an #else.
Ditto with other changes in this file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268499</commentid>
    <comment_count>4</comment_count>
      <attachid>299361</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-01-20 11:53:48 -0800</bug_when>
    <thetext>Created attachment 299361
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268500</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-01-20 11:54:56 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 299355 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=299355&amp;action=review
&gt; 
&gt; It would probably be worth maintaining a list of changes like
&gt; https://trac.webkit.org/browser/trunk/Source/ThirdParty/ANGLE/changes.diff
&gt; so the public and especially libwebrtc developers can see what we need to
&gt; change from their project.
&gt; 
&gt; &gt; Source/ThirdParty/libwebrtc/ChangeLog:3
&gt; &gt; +        [WebRTC] libwebrtc headers are incompatible with WebKit compilation flags
&gt; 
&gt; Specifically -Wunused-parameter and -Wunused-variable

Updated change log.

&gt; 
&gt; &gt; Source/ThirdParty/libwebrtc/Source/webrtc/api/mediastreaminterface.h:139
&gt; &gt; +                       const rtc::VideoSinkWants&amp;) override {};
&gt; &gt; +  void RemoveSink(rtc::VideoSinkInterface&lt;VideoFrame&gt;*) override {};
&gt; 
&gt; I don&apos;t know if it&apos;s worth making these headers match WebKit style.

We are touching them and making them consistent with other libwebrtc code.
I think it is ok.

&gt; 
&gt; &gt; Source/ThirdParty/libwebrtc/Source/webrtc/base/sanitizer.h:53
&gt; &gt; +(void)&amp;(ptr);
&gt; &gt; +(void)&amp;(element_size);
&gt; &gt; +(void)&amp;(num_elements);
&gt; 
&gt; These should be in an #else.
&gt; Ditto with other changes in this file.

Updated to put in an #else and added a macro for the 3 parameters</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268579</commentid>
    <comment_count>6</comment_count>
      <attachid>299361</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-20 14:31:38 -0800</bug_when>
    <thetext>Comment on attachment 299361
Patch for landing

Clearing flags on attachment: 299361

Committed r210987: &lt;http://trac.webkit.org/changeset/210987&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268580</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-20 14:31:42 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268595</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-01-20 14:43:03 -0800</bug_when>
    <thetext>&gt; It would probably be worth maintaining a list of changes like
&gt; https://trac.webkit.org/browser/trunk/Source/ThirdParty/ANGLE/changes.diff
&gt; so the public and especially libwebrtc developers can see what we need to
&gt; change from their project.

Right, I had one originally checked-in but I changed a bit some patches and it was not worth actually upstreaming the diff.
I&apos;ll produce one once all libwebrtc patches will be upstreamed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270579</commentid>
    <comment_count>9</comment_count>
    <who name="Alex. Gouaillard">agouaillard</who>
    <bug_when>2017-01-26 23:28:49 -0800</bug_when>
    <thetext>the logic is wrong in sanitizer,  you need to check both preprocessor flags since you are using the defined macro when !RTC_HAS_MSAN

Source/webrtc/base/sanitizer.h

#if !RTC_HAS_ASAN || !RTC_HAS_MSAN
#define SANITIZER_UNUSED3(x, y, z) (void)&amp;(x); \
  (void)&amp;(y); \
  (void)&amp;(z)
#endif

caught by google build bots:
https://build.chromium.org/p/tryserver.webrtc/builders/linux_asan/builds/21461/steps/compile/logs/stdio</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299355</attachid>
            <date>2017-01-20 10:36:08 -0800</date>
            <delta_ts>2017-01-20 11:53:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167242-20170120103414.patch</filename>
            <type>text/plain</type>
            <size>30406</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwOTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCAwM2QxM2RhZTgzZDFhNmYwOGE3YWIwYjZlYTI2N2EzZTZkNDQ0NjVjLi41YTQ2
MTk3ZGRhNjdlNDRmMjMwZDk3M2FkYTM0YzIxMjhmNjVlYTRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4MCBAQAorMjAxNy0wMS0yMCAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYlJUQ10gbGlid2VicnRjIGhl
YWRlcnMgYXJlIGluY29tcGF0aWJsZSB3aXRoIFdlYktpdCBjb21waWxhdGlvbiBmbGFncworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3MjQyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCB1bnVz
ZWQgcGFyYW1ldGVyIG5hbWVzIGZvciBpbmxpbmVkIGZ1bmN0aW9ucy4KKworICAgICAgICAqIFNv
dXJjZS93ZWJydGMvYXBpL2pzZXAuaDoKKyAgICAgICAgKHdlYnJ0Yzo6U2Vzc2lvbkRlc2NyaXB0
aW9uSW50ZXJmYWNlOjpSZW1vdmVDYW5kaWRhdGVzKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRj
L2FwaS9tZWRpYXN0cmVhbWludGVyZmFjZS5oOgorICAgICAgICAod2VicnRjOjpBdWRpb1NvdXJj
ZUludGVyZmFjZTo6U2V0Vm9sdW1lKToKKyAgICAgICAgKHdlYnJ0Yzo6QXVkaW9Tb3VyY2VJbnRl
cmZhY2U6OlJlZ2lzdGVyQXVkaW9PYnNlcnZlcik6CisgICAgICAgICh3ZWJydGM6OkF1ZGlvU291
cmNlSW50ZXJmYWNlOjpVbnJlZ2lzdGVyQXVkaW9PYnNlcnZlcik6CisgICAgICAgICh3ZWJydGM6
OkF1ZGlvU291cmNlSW50ZXJmYWNlOjpBZGRTaW5rKToKKyAgICAgICAgKHdlYnJ0Yzo6QXVkaW9T
b3VyY2VJbnRlcmZhY2U6OlJlbW92ZVNpbmspOgorICAgICAgICAod2VicnRjOjpBdWRpb1RyYWNr
SW50ZXJmYWNlOjpHZXRTaWduYWxMZXZlbCk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9hcGkv
cGVlcmNvbm5lY3Rpb25mYWN0b3J5Lmg6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9hcGkvcGVl
cmNvbm5lY3Rpb25pbnRlcmZhY2UuaDoKKyAgICAgICAgKHdlYnJ0Yzo6TWV0cmljc09ic2VydmVy
SW50ZXJmYWNlOjpJbmNyZW1lbnRFbnVtQ291bnRlcik6CisgICAgICAgICh3ZWJydGM6OlBlZXJD
b25uZWN0aW9uSW50ZXJmYWNlOjpBZGRUcmFjayk6CisgICAgICAgICh3ZWJydGM6OlBlZXJDb25u
ZWN0aW9uSW50ZXJmYWNlOjpSZW1vdmVUcmFjayk6CisgICAgICAgICh3ZWJydGM6OlBlZXJDb25u
ZWN0aW9uSW50ZXJmYWNlOjpDcmVhdGVTZW5kZXIpOgorICAgICAgICAod2VicnRjOjpQZWVyQ29u
bmVjdGlvbkludGVyZmFjZTo6R2V0U3RhdHMpOgorICAgICAgICAod2VicnRjOjpQZWVyQ29ubmVj
dGlvbkludGVyZmFjZTo6Q3JlYXRlT2ZmZXIpOgorICAgICAgICAod2VicnRjOjpQZWVyQ29ubmVj
dGlvbkludGVyZmFjZTo6Q3JlYXRlQW5zd2VyKToKKyAgICAgICAgKHdlYnJ0Yzo6UGVlckNvbm5l
Y3Rpb25JbnRlcmZhY2U6OlVwZGF0ZUljZSk6CisgICAgICAgICh3ZWJydGM6OlBlZXJDb25uZWN0
aW9uSW50ZXJmYWNlOjpTZXRDb25maWd1cmF0aW9uKToKKyAgICAgICAgKHdlYnJ0Yzo6UGVlckNv
bm5lY3Rpb25JbnRlcmZhY2U6OlJlbW92ZUljZUNhbmRpZGF0ZXMpOgorICAgICAgICAod2VicnRj
OjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6U3RhcnRSdGNFdmVudExvZyk6CisgICAgICAgICh3
ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXI6Ok9uQWRkU3RyZWFtKToKKyAgICAgICAgKHdl
YnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlcjo6T25SZW1vdmVTdHJlYW0pOgorICAgICAgICAo
d2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyOjpPbkRhdGFDaGFubmVsKToKKyAgICAgICAg
KHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlcjo6T25JY2VDYW5kaWRhdGVzUmVtb3ZlZCk6
CisgICAgICAgICh3ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXI6Ok9uSWNlQ29ubmVjdGlv
blJlY2VpdmluZ0NoYW5nZSk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9hcGkvcnRwc2VuZGVy
LmNjOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvYmFzZS9tZXNzYWdlaGFuZGxlci5oOgorICAg
ICAgICAocnRjOjpGdW5jdG9yTWVzc2FnZUhhbmRsZXI6Ok9uTWVzc2FnZSk6CisgICAgICAgICog
U291cmNlL3dlYnJ0Yy9iYXNlL3Nhbml0aXplci5oOgorICAgICAgICAocnRjX0FzYW5Qb2lzb24p
OgorICAgICAgICAocnRjX0FzYW5VbnBvaXNvbik6CisgICAgICAgIChydGNfTXNhbk1hcmtVbmlu
aXRpYWxpemVkKToKKyAgICAgICAgKHJ0Y19Nc2FuQ2hlY2tJbml0aWFsaXplZCk6CisgICAgICAg
ICogU291cmNlL3dlYnJ0Yy9iYXNlL3N0cmVhbS5oOgorICAgICAgICAocnRjOjpTdHJlYW1JbnRl
cmZhY2U6OkNvbnN1bWVSZWFkRGF0YSk6CisgICAgICAgIChydGM6OlN0cmVhbUludGVyZmFjZTo6
Q29uc3VtZVdyaXRlQnVmZmVyKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21lZGlhL2Jhc2Uv
bWVkaWFjaGFubmVsLmg6CisgICAgICAgIChjcmlja2V0OjpEYXRhTWVkaWFDaGFubmVsOjpHZXRT
dGF0cyk6CisgICAgICAgIChjcmlja2V0OjpEYXRhTWVkaWFDaGFubmVsOjpPbk5ldHdvcmtSb3V0
ZUNoYW5nZWQpOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbWVkaWEvZW5naW5lL3dlYnJ0Y3Zp
ZGVvZGVjb2RlcmZhY3RvcnkuaDoKKyAgICAgICAgKGNyaWNrZXQ6OldlYlJ0Y1ZpZGVvRGVjb2Rl
ckZhY3Rvcnk6OkNyZWF0ZVZpZGVvRGVjb2RlcldpdGhQYXJhbXMpOgorICAgICAgICAqIFNvdXJj
ZS93ZWJydGMvbWVkaWEvZW5naW5lL3dlYnJ0Y3ZpZGVvZW5jb2RlcmZhY3RvcnkuaDoKKyAgICAg
ICAgKGNyaWNrZXQ6OldlYlJ0Y1ZpZGVvRW5jb2RlckZhY3Rvcnk6OlZpZGVvQ29kZWM6OlZpZGVv
Q29kZWMpOgorICAgICAgICAoY3JpY2tldDo6V2ViUnRjVmlkZW9FbmNvZGVyRmFjdG9yeTo6RW5j
b2RlclR5cGVIYXNJbnRlcm5hbFNvdXJjZSk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tZWRp
YS9lbmdpbmUvd2VicnRjdmlkZW9lbmdpbmUyLmNjOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMv
bW9kdWxlcy9pbmNsdWRlL21vZHVsZS5oOgorICAgICAgICAod2VicnRjOjpNb2R1bGU6OlByb2Nl
c3NUaHJlYWRBdHRhY2hlZCk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVv
X2NvZGluZy9jb2RlY3MvdnA5L3ZwOV9ub29wLmNjOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMv
cDJwL2Jhc2UvcG9ydC5oOgorICAgICAgICAoY3JpY2tldDo6UG9ydDo6SGFuZGxlSW5jb21pbmdQ
YWNrZXQpOgorICAgICAgICAoY3JpY2tldDo6UG9ydDo6SGFuZGxlQ29ubmVjdGlvbkRlc3Ryb3ll
ZCk6CisgICAgICAgIChjcmlja2V0OjpDb25uZWN0aW9uOjpzZXRfcmVjZWl2aW5nX3RpbWVvdXQp
OgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvcDJwL2Jhc2Uvc3R1bi5oOgorICAgICAgICAoY3Jp
Y2tldDo6U3R1bkF0dHJpYnV0ZTo6U2V0T3duZXIpOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMv
cDJwL2Jhc2Uvc3R1bnJlcXVlc3QuaDoKKyAgICAgICAgKGNyaWNrZXQ6OlN0dW5SZXF1ZXN0OjpQ
cmVwYXJlKToKKyAgICAgICAgKGNyaWNrZXQ6OlN0dW5SZXF1ZXN0OjpPblJlc3BvbnNlKToKKyAg
ICAgICAgKGNyaWNrZXQ6OlN0dW5SZXF1ZXN0OjpPbkVycm9yUmVzcG9uc2UpOgorICAgICAgICAq
IFNvdXJjZS93ZWJydGMvcDJwL2Jhc2UvdHJhbnNwb3J0Lmg6CisgICAgICAgIChjcmlja2V0OjpU
cmFuc3BvcnQ6OlNldExvY2FsQ2VydGlmaWNhdGUpOgorICAgICAgICAoY3JpY2tldDo6VHJhbnNw
b3J0OjpHZXRMb2NhbENlcnRpZmljYXRlKToKKyAgICAgICAgKGNyaWNrZXQ6OlRyYW5zcG9ydDo6
R2V0U3NsUm9sZSk6CisgICAgICAgIChjcmlja2V0OjpUcmFuc3BvcnQ6OlNldFNzbE1heFByb3Rv
Y29sVmVyc2lvbik6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9GcmFtZXdvcmsv
Q2xhc3Nlcy92aWRlb3Rvb2xib3h2aWRlb2NvZGVjZmFjdG9yeS5jYzoKKyAgICAgICAgKiBTb3Vy
Y2Uvd2VicnRjL3R5cGVkZWZzLmg6CisKIDIwMTctMDEtMTkgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJSVENdIFVwbG9hZCBsaWJ3ZWJydGMgY29kZSBi
YXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9hcGkvanNlcC5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
YXBpL2pzZXAuaAppbmRleCBlMTFhMmFkZTlhZDkyNzEyZTQ3ODRjMGY0NDIwZDJkMTI0N2QwNGM2
Li45ZDdiZjlkN2Y1NzQzNTgwMGE1N2UwNTA3M2UzMTk0MDk5YTUzMGRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvanNlcC5oCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS9qc2VwLmgKQEAg
LTk4LDcgKzk4LDcgQEAgY2xhc3MgU2Vzc2lvbkRlc2NyaXB0aW9uSW50ZXJmYWNlIHsKICAgLy8g
UmVtb3ZlcyB0aGUgY2FuZGlkYXRlcyBmcm9tIHRoZSBkZXNjcmlwdGlvbi4KICAgLy8gUmV0dXJu
cyB0aGUgbnVtYmVyIG9mIGNhbmRpZGF0ZXMgcmVtb3ZlZC4KICAgdmlydHVhbCBzaXplX3QgUmVt
b3ZlQ2FuZGlkYXRlcygKLSAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGNyaWNrZXQ6OkNhbmRpZGF0
ZT4mIGNhbmRpZGF0ZXMpIHsgcmV0dXJuIDA7IH0KKyAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGNy
aWNrZXQ6OkNhbmRpZGF0ZT4mKSB7IHJldHVybiAwOyB9CiAKICAgLy8gUmV0dXJucyB0aGUgbnVt
YmVyIG9mIG0tIGxpbmVzIGluIHRoZSBzZXNzaW9uIGRlc2NyaXB0aW9uLgogICB2aXJ0dWFsIHNp
emVfdCBudW1iZXJfb2ZfbWVkaWFzZWN0aW9ucygpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS9tZWRpYXN0cmVhbWlu
dGVyZmFjZS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBp
L21lZGlhc3RyZWFtaW50ZXJmYWNlLmgKaW5kZXggYmFlYmFkN2I2OTA5ZDgyNzNkYWYwM2I2MGNl
ZmVhZTVlZTVkNDZhYi4uOTFhODcwNWI4MTk2NDQwYjc3NjM3YWYyNzNjMmVkZWYzZTAzZTIxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBp
L21lZGlhc3RyZWFtaW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvYXBpL21lZGlhc3RyZWFtaW50ZXJmYWNlLmgKQEAgLTEzNCw5ICsxMzQs
OSBAQCBjbGFzcyBWaWRlb1RyYWNrSW50ZXJmYWNlCiAgICAgICBwdWJsaWMgcnRjOjpWaWRlb1Nv
dXJjZUludGVyZmFjZTxWaWRlb0ZyYW1lPiB7CiAgcHVibGljOgogICAvLyBSZWdpc3RlciBhIHZp
ZGVvIHNpbmsgZm9yIHRoaXMgdHJhY2suCi0gIHZvaWQgQWRkT3JVcGRhdGVTaW5rKHJ0Yzo6Vmlk
ZW9TaW5rSW50ZXJmYWNlPFZpZGVvRnJhbWU+KiBzaW5rLAotICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBydGM6OlZpZGVvU2lua1dhbnRzJiB3YW50cykgb3ZlcnJpZGV7fTsKLSAgdm9pZCBS
ZW1vdmVTaW5rKHJ0Yzo6VmlkZW9TaW5rSW50ZXJmYWNlPFZpZGVvRnJhbWU+KiBzaW5rKSBvdmVy
cmlkZXt9OworICB2b2lkIEFkZE9yVXBkYXRlU2luayhydGM6OlZpZGVvU2lua0ludGVyZmFjZTxW
aWRlb0ZyYW1lPiosCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJ0Yzo6VmlkZW9TaW5r
V2FudHMmKSBvdmVycmlkZSB7fTsKKyAgdm9pZCBSZW1vdmVTaW5rKHJ0Yzo6VmlkZW9TaW5rSW50
ZXJmYWNlPFZpZGVvRnJhbWU+Kikgb3ZlcnJpZGUge307CiAKICAgdmlydHVhbCBWaWRlb1RyYWNr
U291cmNlSW50ZXJmYWNlKiBHZXRTb3VyY2UoKSBjb25zdCA9IDA7CiAKQEAgLTE3NCwxNSArMTc0
LDE1IEBAIGNsYXNzIEF1ZGlvU291cmNlSW50ZXJmYWNlIDogcHVibGljIE1lZGlhU291cmNlSW50
ZXJmYWNlIHsKICAgLy8gU2V0cyB0aGUgdm9sdW1lIHRvIHRoZSBzb3VyY2UuIHx2b2x1bWV8IGlz
IGluICB0aGUgcmFuZ2Ugb2YgWzAsIDEwXS4KICAgLy8gVE9ETyh0b21taSk6IFRoaXMgbWV0aG9k
IHNob3VsZCBiZSBvbiB0aGUgdHJhY2sgYW5kIGlkZWFsbHkgdm9sdW1lIHNob3VsZAogICAvLyBi
ZSBhcHBsaWVkIGluIHRoZSB0cmFjayBpbiBhIHdheSB0aGF0IGRvZXMgbm90IGFmZmVjdCBjbG9u
ZXMgb2YgdGhlIHRyYWNrLgotICB2aXJ0dWFsIHZvaWQgU2V0Vm9sdW1lKGRvdWJsZSB2b2x1bWUp
IHt9CisgIHZpcnR1YWwgdm9pZCBTZXRWb2x1bWUoZG91YmxlKSB7fQogCiAgIC8vIFJlZ2lzdGVy
cy91bnJlZ2lzdGVycyBvYnNlcnZlciB0byB0aGUgYXVkaW8gc291cmNlLgotICB2aXJ0dWFsIHZv
aWQgUmVnaXN0ZXJBdWRpb09ic2VydmVyKEF1ZGlvT2JzZXJ2ZXIqIG9ic2VydmVyKSB7fQotICB2
aXJ0dWFsIHZvaWQgVW5yZWdpc3RlckF1ZGlvT2JzZXJ2ZXIoQXVkaW9PYnNlcnZlciogb2JzZXJ2
ZXIpIHt9CisgIHZpcnR1YWwgdm9pZCBSZWdpc3RlckF1ZGlvT2JzZXJ2ZXIoQXVkaW9PYnNlcnZl
ciopIHt9CisgIHZpcnR1YWwgdm9pZCBVbnJlZ2lzdGVyQXVkaW9PYnNlcnZlcihBdWRpb09ic2Vy
dmVyKikge30KIAogICAvLyBUT0RPKHRvbW1pKTogTWFrZSBwdXJlIHZpcnR1YWwuCi0gIHZpcnR1
YWwgdm9pZCBBZGRTaW5rKEF1ZGlvVHJhY2tTaW5rSW50ZXJmYWNlKiBzaW5rKSB7fQotICB2aXJ0
dWFsIHZvaWQgUmVtb3ZlU2luayhBdWRpb1RyYWNrU2lua0ludGVyZmFjZSogc2luaykge30KKyAg
dmlydHVhbCB2b2lkIEFkZFNpbmsoQXVkaW9UcmFja1NpbmtJbnRlcmZhY2UqKSB7fQorICB2aXJ0
dWFsIHZvaWQgUmVtb3ZlU2luayhBdWRpb1RyYWNrU2lua0ludGVyZmFjZSopIHt9CiB9OwogCiAv
LyBJbnRlcmZhY2Ugb2YgdGhlIGF1ZGlvIHByb2Nlc3NvciB1c2VkIGJ5IHRoZSBhdWRpbyB0cmFj
ayB0byBjb2xsZWN0CkBAIC0yMzAsNyArMjMwLDcgQEAgY2xhc3MgQXVkaW9UcmFja0ludGVyZmFj
ZSA6IHB1YmxpYyBNZWRpYVN0cmVhbVRyYWNrSW50ZXJmYWNlIHsKICAgLy8gUmV0dXJuIHRydWUg
b24gc3VjY2Vzcywgb3RoZXJ3aXNlIGZhbHNlLgogICAvLyBUT0RPKHhpYW5zKTogQ2hhbmdlIHRo
ZSBpbnRlcmZhY2UgdG8gaW50IEdldFNpZ25hbExldmVsKCkgYW5kIHB1cmUgdmlydHVhbAogICAv
LyBhZnRlciBDaHJvbWUgaGFzIHRoZSBjb3JyZWN0IGltcGxlbWVudGF0aW9uIG9mIHRoZSBpbnRl
cmZhY2UuCi0gIHZpcnR1YWwgYm9vbCBHZXRTaWduYWxMZXZlbChpbnQqIGxldmVsKSB7IHJldHVy
biBmYWxzZTsgfQorICB2aXJ0dWFsIGJvb2wgR2V0U2lnbmFsTGV2ZWwoaW50KikgeyByZXR1cm4g
ZmFsc2U7IH0KIAogICAvLyBHZXQgdGhlIGF1ZGlvIHByb2Nlc3NvciB1c2VkIGJ5IHRoZSBhdWRp
byB0cmFjay4gUmV0dXJuIE5VTEwgaWYgdGhlIHRyYWNrCiAgIC8vIGRvZXMgbm90IGhhdmUgYW55
IHByb2Nlc3Nvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL2FwaS9wZWVyY29ubmVjdGlvbmZhY3RvcnkuaCBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS9wZWVyY29ubmVjdGlvbmZhY3RvcnkuaAppbmRl
eCA3YTMwYWI0NTY5MDI0ODc5YTMzNmNkN2RhZGNkMzc4YTc3YzdlZmZlLi5mMDJmOWI5ZDk1OTJm
YzA1YWQ0ZTExYWJmODFmNDExNzllNjA3ZTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvcGVlcmNvbm5lY3Rpb25mYWN0b3J5LmgKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3BlZXJjb25u
ZWN0aW9uZmFjdG9yeS5oCkBAIC04MSwxMCArODEsMTAgQEAgY2xhc3MgUGVlckNvbm5lY3Rpb25G
YWN0b3J5IDogcHVibGljIFBlZXJDb25uZWN0aW9uRmFjdG9yeUludGVyZmFjZSB7CiAgIGJvb2wg
U3RhcnRBZWNEdW1wKHJ0Yzo6UGxhdGZvcm1GaWxlIGZpbGUsIGludDY0X3QgbWF4X3NpemVfYnl0
ZXMpIG92ZXJyaWRlOwogICB2b2lkIFN0b3BBZWNEdW1wKCkgb3ZlcnJpZGU7CiAgIC8vIFRPRE8o
aXZvYykgUmVtb3ZlIGFmdGVyIENocm9tZSBpcyB1cGRhdGVkLgotICBib29sIFN0YXJ0UnRjRXZl
bnRMb2cocnRjOjpQbGF0Zm9ybUZpbGUgZmlsZSkgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0K
KyAgYm9vbCBTdGFydFJ0Y0V2ZW50TG9nKHJ0Yzo6UGxhdGZvcm1GaWxlKSBvdmVycmlkZSB7IHJl
dHVybiBmYWxzZTsgfQogICAvLyBUT0RPKGl2b2MpIFJlbW92ZSBhZnRlciBDaHJvbWUgaXMgdXBk
YXRlZC4KLSAgYm9vbCBTdGFydFJ0Y0V2ZW50TG9nKHJ0Yzo6UGxhdGZvcm1GaWxlIGZpbGUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICBpbnQ2NF90IG1heF9zaXplX2J5dGVzKSBvdmVycmlkZSB7
CisgIGJvb2wgU3RhcnRSdGNFdmVudExvZyhydGM6OlBsYXRmb3JtRmlsZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGludDY0X3QpIG92ZXJyaWRlIHsKICAgICByZXR1cm4gZmFsc2U7CiAgIH0K
ICAgLy8gVE9ETyhpdm9jKSBSZW1vdmUgYWZ0ZXIgQ2hyb21lIGlzIHVwZGF0ZWQuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvcGVlcmNv
bm5lY3Rpb25pbnRlcmZhY2UuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL2FwaS9wZWVyY29ubmVjdGlvbmludGVyZmFjZS5oCmluZGV4IGVhMDU2YmZjOThmYTJh
MzlhMTkzNWE5MTE5ODhlM2ExYmUzNWQ4OTcuLjc2Y2NlMTczZWQ0Y2EzODc0N2IyYjk1ZmIyM2Fj
NDRlM2ZhZTRlMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL2FwaS9wZWVyY29ubmVjdGlvbmludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS9wZWVyY29ubmVjdGlvbmludGVyZmFj
ZS5oCkBAIC0xMTksOSArMTE5LDkgQEAgY2xhc3MgTWV0cmljc09ic2VydmVySW50ZXJmYWNlIDog
cHVibGljIHJ0Yzo6UmVmQ291bnRJbnRlcmZhY2UgewogICAvLyB8dHlwZXwgaXMgdGhlIHR5cGUg
b2YgdGhlIGVudW0gY291bnRlciB0byBiZSBpbmNyZW1lbnRlZC4gfGNvdW50ZXJ8CiAgIC8vIGlz
IHRoZSBwYXJ0aWN1bGFyIGNvdW50ZXIgaW4gdGhhdCB0eXBlLiB8Y291bnRlcl9tYXh8IGlzIHRo
ZSBuZXh0IHNlcXVlbmNlCiAgIC8vIG51bWJlciBhZnRlciB0aGUgaGlnaGVzdCBjb3VudGVyLgot
ICB2aXJ0dWFsIHZvaWQgSW5jcmVtZW50RW51bUNvdW50ZXIoUGVlckNvbm5lY3Rpb25FbnVtQ291
bnRlclR5cGUgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBj
b3VudGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvdW50ZXJf
bWF4KSB7fQorICB2aXJ0dWFsIHZvaWQgSW5jcmVtZW50RW51bUNvdW50ZXIoUGVlckNvbm5lY3Rp
b25FbnVtQ291bnRlclR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgLyogY291bnRlciAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCAvKiBjb3VudGVyX21heCAqLykge30KIAogICAvLyBUaGlzIGlzIHVzZWQgdG8gaGFuZGxlIHNw
YXJzZSBjb3VudGVycyBsaWtlIFNTTCBjaXBoZXIgc3VpdGVzLgogICAvLyBUT0RPKGd1b3dlaXMp
OiBSZW1vdmUgdGhlIGltcGxlbWVudGF0aW9uIG9uY2UgdGhlIGRlcGVuZGVuY3kncyBpbnRlcmZh
Y2UKQEAgLTM4OSwxNCArMzg5LDE0IEBAIGNsYXNzIFBlZXJDb25uZWN0aW9uSW50ZXJmYWNlIDog
cHVibGljIHJ0Yzo6UmVmQ291bnRJbnRlcmZhY2UgewogICAvLyB8c3RyZWFtc3wgaW5kaWNhdGVz
IHdoaWNoIHN0cmVhbSBsYWJlbHMgdGhlIHRyYWNrIHNob3VsZCBiZSBhc3NvY2lhdGVkCiAgIC8v
IHdpdGguCiAgIHZpcnR1YWwgcnRjOjpzY29wZWRfcmVmcHRyPFJ0cFNlbmRlckludGVyZmFjZT4g
QWRkVHJhY2soCi0gICAgICBNZWRpYVN0cmVhbVRyYWNrSW50ZXJmYWNlKiB0cmFjaywKLSAgICAg
IHN0ZDo6dmVjdG9yPE1lZGlhU3RyZWFtSW50ZXJmYWNlKj4gc3RyZWFtcykgeworICAgICAgTWVk
aWFTdHJlYW1UcmFja0ludGVyZmFjZSosCisgICAgICBzdGQ6OnZlY3RvcjxNZWRpYVN0cmVhbUlu
dGVyZmFjZSo+KSB7CiAgICAgcmV0dXJuIG51bGxwdHI7CiAgIH0KIAogICAvLyBSZW1vdmUgYW4g
UnRwU2VuZGVyIGZyb20gdGhpcyBQZWVyQ29ubmVjdGlvbi4KICAgLy8gUmV0dXJucyB0cnVlIG9u
IHN1Y2Nlc3MuCi0gIHZpcnR1YWwgYm9vbCBSZW1vdmVUcmFjayhSdHBTZW5kZXJJbnRlcmZhY2Uq
IHNlbmRlcikgeworICB2aXJ0dWFsIGJvb2wgUmVtb3ZlVHJhY2soUnRwU2VuZGVySW50ZXJmYWNl
KikgewogICAgIHJldHVybiBmYWxzZTsKICAgfQogCkBAIC00MTAsOCArNDEwLDggQEAgY2xhc3Mg
UGVlckNvbm5lY3Rpb25JbnRlcmZhY2UgOiBwdWJsaWMgcnRjOjpSZWZDb3VudEludGVyZmFjZSB7
CiAgIC8vIHxzdHJlYW1faWR8IGlzIHVzZWQgdG8gcG9wdWxhdGUgdGhlIG1zaWQgYXR0cmlidXRl
OyBpZiBlbXB0eSwgb25lIHdpbGwKICAgLy8gYmUgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkuCiAg
IHZpcnR1YWwgcnRjOjpzY29wZWRfcmVmcHRyPFJ0cFNlbmRlckludGVyZmFjZT4gQ3JlYXRlU2Vu
ZGVyKAotICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGtpbmQsCi0gICAgICBjb25zdCBzdGQ6OnN0
cmluZyYgc3RyZWFtX2lkKSB7CisgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgLyoga2luZCAqLywK
KyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiAvKiBzdHJlYW1faWQgKi8pIHsKICAgICByZXR1cm4g
cnRjOjpzY29wZWRfcmVmcHRyPFJ0cFNlbmRlckludGVyZmFjZT4oKTsKICAgfQogCkBAIC00MzMs
NyArNDMzLDcgQEAgY2xhc3MgUGVlckNvbm5lY3Rpb25JbnRlcmZhY2UgOiBwdWJsaWMgcnRjOjpS
ZWZDb3VudEludGVyZmFjZSB7CiAgIC8vIFRPRE8oaGJvcyk6IERlZmF1bHQgaW1wbGVtZW50YXRp
b24gdGhhdCBkb2VzIG5vdGhpbmcgb25seSBleGlzdHMgYXMgdG8gbm90CiAgIC8vIGJyZWFrIHRo
aXJkIHBhcnR5IHByb2plY3RzLiBBcyBzb29uIGFzIHRoZXkgaGF2ZSBiZWVuIHVwZGF0ZWQgdGhp
cyBzaG91bGQKICAgLy8gYmUgY2hhbmdlZCB0byAiPSAwOyIuCi0gIHZpcnR1YWwgdm9pZCBHZXRT
dGF0cyhSVENTdGF0c0NvbGxlY3RvckNhbGxiYWNrKiBjYWxsYmFjaykge30KKyAgdmlydHVhbCB2
b2lkIEdldFN0YXRzKFJUQ1N0YXRzQ29sbGVjdG9yQ2FsbGJhY2sqKSB7fQogCiAgIHZpcnR1YWwg
cnRjOjpzY29wZWRfcmVmcHRyPERhdGFDaGFubmVsSW50ZXJmYWNlPiBDcmVhdGVEYXRhQ2hhbm5l
bCgKICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBsYWJlbCwKQEAgLTQ0NCwyMyArNDQ0LDIzIEBA
IGNsYXNzIFBlZXJDb25uZWN0aW9uSW50ZXJmYWNlIDogcHVibGljIHJ0Yzo6UmVmQ291bnRJbnRl
cmZhY2UgewogCiAgIC8vIENyZWF0ZSBhIG5ldyBvZmZlci4KICAgLy8gVGhlIENyZWF0ZVNlc3Np
b25EZXNjcmlwdGlvbk9ic2VydmVyIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIHdoZW4gZG9uZS4K
LSAgdmlydHVhbCB2b2lkIENyZWF0ZU9mZmVyKENyZWF0ZVNlc3Npb25EZXNjcmlwdGlvbk9ic2Vy
dmVyKiBvYnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE1lZGlhQ29u
c3RyYWludHNJbnRlcmZhY2UqIGNvbnN0cmFpbnRzKSB7fQorICB2aXJ0dWFsIHZvaWQgQ3JlYXRl
T2ZmZXIoQ3JlYXRlU2Vzc2lvbkRlc2NyaXB0aW9uT2JzZXJ2ZXIqLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgTWVkaWFDb25zdHJhaW50c0ludGVyZmFjZSopIHt9CiAKICAgLy8g
VE9ETyhqaWF5bCk6IHJlbW92ZSB0aGUgZGVmYXVsdCBpbXBsIGFuZCB0aGUgb2xkIGludGVyZmFj
ZSB3aGVuIGNocm9taXVtCiAgIC8vIGNvZGUgaXMgdXBkYXRlZC4KLSAgdmlydHVhbCB2b2lkIENy
ZWF0ZU9mZmVyKENyZWF0ZVNlc3Npb25EZXNjcmlwdGlvbk9ic2VydmVyKiBvYnNlcnZlciwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJUQ09mZmVyQW5zd2VyT3B0aW9ucyYgb3B0
aW9ucykge30KKyAgdmlydHVhbCB2b2lkIENyZWF0ZU9mZmVyKENyZWF0ZVNlc3Npb25EZXNjcmlw
dGlvbk9ic2VydmVyKiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJUQ09mZmVy
QW5zd2VyT3B0aW9ucyYpIHt9CiAKICAgLy8gQ3JlYXRlIGFuIGFuc3dlciB0byBhbiBvZmZlci4K
ICAgLy8gVGhlIENyZWF0ZVNlc3Npb25EZXNjcmlwdGlvbk9ic2VydmVyIGNhbGxiYWNrIHdpbGwg
YmUgY2FsbGVkIHdoZW4gZG9uZS4KLSAgdmlydHVhbCB2b2lkIENyZWF0ZUFuc3dlcihDcmVhdGVT
ZXNzaW9uRGVzY3JpcHRpb25PYnNlcnZlciogb2JzZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgUlRDT2ZmZXJBbnN3ZXJPcHRpb25zJiBvcHRpb25zKSB7fQorICB2aXJ0
dWFsIHZvaWQgQ3JlYXRlQW5zd2VyKENyZWF0ZVNlc3Npb25EZXNjcmlwdGlvbk9ic2VydmVyKiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSVENPZmZlckFuc3dlck9wdGlvbnMm
KSB7fQogICAvLyBEZXByZWNhdGVkIC0gdXNlIHZlcnNpb24gYWJvdmUuCiAgIC8vIFRPRE8oaHRh
KTogUmVtb3ZlIGFuZCByZW1vdmUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbnMgd2hlbiBhbGwgY2Fs
bGVycwogICAvLyBhcmUgdXBkYXRlZC4KLSAgdmlydHVhbCB2b2lkIENyZWF0ZUFuc3dlcihDcmVh
dGVTZXNzaW9uRGVzY3JpcHRpb25PYnNlcnZlciogb2JzZXJ2ZXIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgTWVkaWFDb25zdHJhaW50c0ludGVyZmFjZSogY29uc3RyYWludHMp
IHt9CisgIHZpcnR1YWwgdm9pZCBDcmVhdGVBbnN3ZXIoQ3JlYXRlU2Vzc2lvbkRlc2NyaXB0aW9u
T2JzZXJ2ZXIqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHNJbnRlcmZhY2UqKSB7fQogCiAgIC8vIFNldHMgdGhlIGxvY2FsIHNlc3Npb24gZGVzY3Jp
cHRpb24uCiAgIC8vIEpzZXBJbnRlcmZhY2UgdGFrZXMgdGhlIG93bmVyc2hpcCBvZiB8ZGVzY3wg
ZXZlbiBpZiBpdCBmYWlscy4KQEAgLTQ3NSwxMSArNDc1LDExIEBAIGNsYXNzIFBlZXJDb25uZWN0
aW9uSW50ZXJmYWNlIDogcHVibGljIHJ0Yzo6UmVmQ291bnRJbnRlcmZhY2UgewogICAvLyBSZXN0
YXJ0cyBvciB1cGRhdGVzIHRoZSBJQ0UgQWdlbnQgcHJvY2VzcyBvZiBnYXRoZXJpbmcgbG9jYWwg
Y2FuZGlkYXRlcwogICAvLyBhbmQgcGluZ2luZyByZW1vdGUgY2FuZGlkYXRlcy4KICAgLy8gVE9E
TyhkZWFkYmVlZik6IFJlbW92ZSBvbmNlIENocm9tZSBpcyBtb3ZlZCBvdmVyIHRvIFNldENvbmZp
Z3VyYXRpb24uCi0gIHZpcnR1YWwgYm9vbCBVcGRhdGVJY2UoY29uc3QgSWNlU2VydmVycyYgY29u
ZmlndXJhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzSW50ZXJmYWNlKiBjb25zdHJhaW50cykgeworICB2aXJ0dWFsIGJvb2wgVXBkYXRlSWNlKGNv
bnN0IEljZVNlcnZlcnMmLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE1lZGlhQ29u
c3RyYWludHNJbnRlcmZhY2UqKSB7CiAgICAgcmV0dXJuIGZhbHNlOwogICB9Ci0gIHZpcnR1YWwg
Ym9vbCBVcGRhdGVJY2UoY29uc3QgSWNlU2VydmVycyYgY29uZmlndXJhdGlvbikgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgdmlydHVhbCBib29sIFVwZGF0ZUljZShjb25zdCBJY2VTZXJ2ZXJzJikgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgLy8gU2V0cyB0aGUgUGVlckNvbm5lY3Rpb24ncyBnbG9iYWwgY29u
ZmlndXJhdGlvbiB0byB8Y29uZmlnfC4KICAgLy8gQW55IGNoYW5nZXMgdG8gU1RVTi9UVVJOIHNl
cnZlcnMgb3IgSUNFIGNhbmRpZGF0ZSBwb2xpY3kgd2lsbCBhZmZlY3QgdGhlCiAgIC8vIG5leHQg
Z2F0aGVyaW5nIHBoYXNlLCBhbmQgY2F1c2UgdGhlIG5leHQgY2FsbCB0byBjcmVhdGVPZmZlciB0
byBnZW5lcmF0ZQpAQCAtNDg4LDcgKzQ4OCw3IEBAIGNsYXNzIFBlZXJDb25uZWN0aW9uSW50ZXJm
YWNlIDogcHVibGljIHJ0Yzo6UmVmQ291bnRJbnRlcmZhY2UgewogICAvLyBUT0RPKGRlYWRiZWVm
KTogTWFrZSB0aGlzIHB1cmUgdmlydHVhbCBvbmNlIGFsbCBDaHJvbWUgc3ViY2xhc3NlcyBvZgog
ICAvLyBQZWVyQ29ubmVjdGlvbkludGVyZmFjZSBpbXBsZW1lbnQgaXQuCiAgIHZpcnR1YWwgYm9v
bCBTZXRDb25maWd1cmF0aW9uKAotICAgICAgY29uc3QgUGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6
OlJUQ0NvbmZpZ3VyYXRpb24mIGNvbmZpZykgeworICAgICAgY29uc3QgUGVlckNvbm5lY3Rpb25J
bnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24mKSB7CiAgICAgcmV0dXJuIGZhbHNlOwogICB9CiAg
IC8vIFByb3ZpZGVzIGEgcmVtb3RlIGNhbmRpZGF0ZSB0byB0aGUgSUNFIEFnZW50LgpAQCAtNTAx
LDcgKzUwMSw3IEBAIGNsYXNzIFBlZXJDb25uZWN0aW9uSW50ZXJmYWNlIDogcHVibGljIHJ0Yzo6
UmVmQ291bnRJbnRlcmZhY2UgewogCiAgIC8vIFJlbW92ZXMgYSBncm91cCBvZiByZW1vdGUgY2Fu
ZGlkYXRlcyBmcm9tIHRoZSBJQ0UgYWdlbnQuCiAgIHZpcnR1YWwgYm9vbCBSZW1vdmVJY2VDYW5k
aWRhdGVzKAotICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8Y3JpY2tldDo6Q2FuZGlkYXRlPiYgY2Fu
ZGlkYXRlcykgeworICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8Y3JpY2tldDo6Q2FuZGlkYXRlPiYp
IHsKICAgICByZXR1cm4gZmFsc2U7CiAgIH0KIApAQCAtNTE4LDggKzUxOCw4IEBAIGNsYXNzIFBl
ZXJDb25uZWN0aW9uSW50ZXJmYWNlIDogcHVibGljIHJ0Yzo6UmVmQ291bnRJbnRlcmZhY2Ugewog
ICAvLyBhdXRvbWF0aWNhbGx5IGFmdGVyIDEwIG1pbnV0ZXMgaGF2ZSBwYXNzZWQsIG9yIHdoZW4g
dGhlIFN0b3BSdGNFdmVudExvZwogICAvLyBmdW5jdGlvbiBpcyBjYWxsZWQuCiAgIC8vIFRPRE8o
aXZvYyk6IE1ha2UgdGhpcyBwdXJlIHZpcnR1YWwgd2hlbiBDaHJvbWUgaXMgdXBkYXRlZC4KLSAg
dmlydHVhbCBib29sIFN0YXJ0UnRjRXZlbnRMb2cocnRjOjpQbGF0Zm9ybUZpbGUgZmlsZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50NjRfdCBtYXhfc2l6ZV9ieXRlcykgewor
ICB2aXJ0dWFsIGJvb2wgU3RhcnRSdGNFdmVudExvZyhydGM6OlBsYXRmb3JtRmlsZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50NjRfdCAvKiBtYXhfc2l6ZV9ieXRlcyAqLykg
ewogICAgIHJldHVybiBmYWxzZTsKICAgfQogCkBAIC01NTMsMjEgKzU1MywyMSBAQCBjbGFzcyBQ
ZWVyQ29ubmVjdGlvbk9ic2VydmVyIHsKICAgLy8gcG9pbnRlciB2ZXJzaW9uLgogCiAgIC8vIFRy
aWdnZXJlZCB3aGVuIG1lZGlhIGlzIHJlY2VpdmVkIG9uIGEgbmV3IHN0cmVhbSBmcm9tIHJlbW90
ZSBwZWVyLgotICB2aXJ0dWFsIHZvaWQgT25BZGRTdHJlYW0ocnRjOjpzY29wZWRfcmVmcHRyPE1l
ZGlhU3RyZWFtSW50ZXJmYWNlPiBzdHJlYW0pIHt9CisgIHZpcnR1YWwgdm9pZCBPbkFkZFN0cmVh
bShydGM6OnNjb3BlZF9yZWZwdHI8TWVkaWFTdHJlYW1JbnRlcmZhY2U+KSB7fQogICAvLyBEZXBy
ZWNhdGVkOyBwbGVhc2UgdXNlIHRoZSB2ZXJzaW9uIHRoYXQgdXNlcyBhIHNjb3BlZF9yZWZwdHIu
Ci0gIHZpcnR1YWwgdm9pZCBPbkFkZFN0cmVhbShNZWRpYVN0cmVhbUludGVyZmFjZSogc3RyZWFt
KSB7fQorICB2aXJ0dWFsIHZvaWQgT25BZGRTdHJlYW0oTWVkaWFTdHJlYW1JbnRlcmZhY2UqKSB7
fQogCiAgIC8vIFRyaWdnZXJlZCB3aGVuIGEgcmVtb3RlIHBlZXIgY2xvc2UgYSBzdHJlYW0uCi0g
IHZpcnR1YWwgdm9pZCBPblJlbW92ZVN0cmVhbShydGM6OnNjb3BlZF9yZWZwdHI8TWVkaWFTdHJl
YW1JbnRlcmZhY2U+IHN0cmVhbSkgeworICB2aXJ0dWFsIHZvaWQgT25SZW1vdmVTdHJlYW0ocnRj
OjpzY29wZWRfcmVmcHRyPE1lZGlhU3RyZWFtSW50ZXJmYWNlPikgewogICB9CiAgIC8vIERlcHJl
Y2F0ZWQ7IHBsZWFzZSB1c2UgdGhlIHZlcnNpb24gdGhhdCB1c2VzIGEgc2NvcGVkX3JlZnB0ci4K
LSAgdmlydHVhbCB2b2lkIE9uUmVtb3ZlU3RyZWFtKE1lZGlhU3RyZWFtSW50ZXJmYWNlKiBzdHJl
YW0pIHt9CisgIHZpcnR1YWwgdm9pZCBPblJlbW92ZVN0cmVhbShNZWRpYVN0cmVhbUludGVyZmFj
ZSopIHt9CiAKICAgLy8gVHJpZ2dlcmVkIHdoZW4gYSByZW1vdGUgcGVlciBvcGVucyBhIGRhdGEg
Y2hhbm5lbC4KICAgdmlydHVhbCB2b2lkIE9uRGF0YUNoYW5uZWwoCi0gICAgICBydGM6OnNjb3Bl
ZF9yZWZwdHI8RGF0YUNoYW5uZWxJbnRlcmZhY2U+IGRhdGFfY2hhbm5lbCl7fTsKKyAgICAgIHJ0
Yzo6c2NvcGVkX3JlZnB0cjxEYXRhQ2hhbm5lbEludGVyZmFjZT4pe307CiAgIC8vIERlcHJlY2F0
ZWQ7IHBsZWFzZSB1c2UgdGhlIHZlcnNpb24gdGhhdCB1c2VzIGEgc2NvcGVkX3JlZnB0ci4KLSAg
dmlydHVhbCB2b2lkIE9uRGF0YUNoYW5uZWwoRGF0YUNoYW5uZWxJbnRlcmZhY2UqIGRhdGFfY2hh
bm5lbCkge30KKyAgdmlydHVhbCB2b2lkIE9uRGF0YUNoYW5uZWwoRGF0YUNoYW5uZWxJbnRlcmZh
Y2UqKSB7fQogCiAgIC8vIFRyaWdnZXJlZCB3aGVuIHJlbmVnb3RpYXRpb24gaXMgbmVlZGVkLiBG
b3IgZXhhbXBsZSwgYW4gSUNFIHJlc3RhcnQKICAgLy8gaGFzIGJlZ3VuLgpAQCAtNTg4LDEwICs1
ODgsMTAgQEAgY2xhc3MgUGVlckNvbm5lY3Rpb25PYnNlcnZlciB7CiAgIC8vIFRPRE8oaG9uZ2hh
aXopOiBNYWtlIHRoaXMgYSBwdXJlIHZpcnR1YWwgbWV0aG9kIHdoZW4gYWxsIGl0cyBzdWJjbGFz
c2VzCiAgIC8vIGltcGxlbWVudCBpdC4KICAgdmlydHVhbCB2b2lkIE9uSWNlQ2FuZGlkYXRlc1Jl
bW92ZWQoCi0gICAgICBjb25zdCBzdGQ6OnZlY3Rvcjxjcmlja2V0OjpDYW5kaWRhdGU+JiBjYW5k
aWRhdGVzKSB7fQorICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8Y3JpY2tldDo6Q2FuZGlkYXRlPiYp
IHt9CiAKICAgLy8gQ2FsbGVkIHdoZW4gdGhlIElDRSBjb25uZWN0aW9uIHJlY2VpdmluZyBzdGF0
dXMgY2hhbmdlcy4KLSAgdmlydHVhbCB2b2lkIE9uSWNlQ29ubmVjdGlvblJlY2VpdmluZ0NoYW5n
ZShib29sIHJlY2VpdmluZykge30KKyAgdmlydHVhbCB2b2lkIE9uSWNlQ29ubmVjdGlvblJlY2Vp
dmluZ0NoYW5nZShib29sIC8qIHJlY2VpdmluZyAqLykge30KIAogIHByb3RlY3RlZDoKICAgLy8g
RHRvciBwcm90ZWN0ZWQgYXMgb2JqZWN0cyBzaG91bGRuJ3QgYmUgZGVsZXRlZCB2aWEgdGhpcyBp
bnRlcmZhY2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9iYXNlL21lc3NhZ2VoYW5kbGVyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9iYXNlL21lc3NhZ2VoYW5kbGVyLmgKaW5kZXggMzUxMTRjMWU1YWMx
YmQ1NWMxMzAwYWM5ODM0NTY2NTUwN2IzYmRiNS4uNzk1ZDA0ZWI1Y2M0MDhkOTRhYjA5NGQxNGVm
ZTg4ZjQ3MTZiNTczNSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvYmFzZS9tZXNzYWdlaGFuZGxlci5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2Jhc2UvbWVzc2FnZWhhbmRsZXIuaApAQCAtNDAsNyAr
NDAsNyBAQCBjbGFzcyBGdW5jdG9yTWVzc2FnZUhhbmRsZXIgOiBwdWJsaWMgTWVzc2FnZUhhbmRs
ZXIgewogIHB1YmxpYzoKICAgZXhwbGljaXQgRnVuY3Rvck1lc3NhZ2VIYW5kbGVyKGNvbnN0IEZ1
bmN0b3JUJiBmdW5jdG9yKQogICAgICAgOiBmdW5jdG9yXyhmdW5jdG9yKSB7fQotICB2aXJ0dWFs
IHZvaWQgT25NZXNzYWdlKE1lc3NhZ2UqIG1zZykgeworICB2aXJ0dWFsIHZvaWQgT25NZXNzYWdl
KE1lc3NhZ2UqKSB7CiAgICAgcmVzdWx0XyA9IGZ1bmN0b3JfKCk7CiAgIH0KICAgY29uc3QgUmV0
dXJuVCYgcmVzdWx0KCkgY29uc3QgeyByZXR1cm4gcmVzdWx0XzsgfQpAQCAtNTYsNyArNTYsNyBA
QCBjbGFzcyBGdW5jdG9yTWVzc2FnZUhhbmRsZXI8Y2xhc3Mgc3RkOjp1bmlxdWVfcHRyPFJldHVy
blQ+LCBGdW5jdG9yVD4KICAgICA6IHB1YmxpYyBNZXNzYWdlSGFuZGxlciB7CiAgcHVibGljOgog
ICBleHBsaWNpdCBGdW5jdG9yTWVzc2FnZUhhbmRsZXIoY29uc3QgRnVuY3RvclQmIGZ1bmN0b3Ip
IDogZnVuY3Rvcl8oZnVuY3Rvcikge30KLSAgdmlydHVhbCB2b2lkIE9uTWVzc2FnZShNZXNzYWdl
KiBtc2cpIHsgcmVzdWx0XyA9IHN0ZDo6bW92ZShmdW5jdG9yXygpKTsgfQorICB2aXJ0dWFsIHZv
aWQgT25NZXNzYWdlKE1lc3NhZ2UqKSB7IHJlc3VsdF8gPSBzdGQ6Om1vdmUoZnVuY3Rvcl8oKSk7
IH0KICAgc3RkOjp1bmlxdWVfcHRyPFJldHVyblQ+IHJlc3VsdCgpIHsgcmV0dXJuIHN0ZDo6bW92
ZShyZXN1bHRfKTsgfQogCiAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2Jhc2Uvc2FuaXRpemVyLmggYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9iYXNlL3Nhbml0aXplci5oCmluZGV4IGUyN2E2
OTIxNjRhZDFiOWI4NTcwYWQ1NzJlMDU1OTlmNzI0MWU2MjQuLjIxYWI2Y2RiOTVjZjQ1NTVmZDFl
NmM0ODYwNGY0ZTNlOWVjMDE5MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL2Jhc2Uvc2FuaXRpemVyLmgKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYmFzZS9zYW5pdGl6ZXIuaApAQCAtNDgsNiArNDgs
OSBAQAogc3RhdGljIGlubGluZSB2b2lkIHJ0Y19Bc2FuUG9pc29uKGNvbnN0IHZvbGF0aWxlIHZv
aWQqIHB0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZWxlbWVu
dF9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBudW1fZWxl
bWVudHMpIHsKKyh2b2lkKSYocHRyKTsKKyh2b2lkKSYoZWxlbWVudF9zaXplKTsKKyh2b2lkKSYo
bnVtX2VsZW1lbnRzKTsKICNpZiBSVENfSEFTX0FTQU4KICAgQVNBTl9QT0lTT05fTUVNT1JZX1JF
R0lPTihwdHIsIGVsZW1lbnRfc2l6ZSAqIG51bV9lbGVtZW50cyk7CiAjZW5kaWYKQEAgLTU5LDYg
KzYyLDkgQEAgc3RhdGljIGlubGluZSB2b2lkIHJ0Y19Bc2FuUG9pc29uKGNvbnN0IHZvbGF0aWxl
IHZvaWQqIHB0ciwKIHN0YXRpYyBpbmxpbmUgdm9pZCBydGNfQXNhblVucG9pc29uKGNvbnN0IHZv
bGF0aWxlIHZvaWQqIHB0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNp
emVfdCBlbGVtZW50X3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
aXplX3QgbnVtX2VsZW1lbnRzKSB7Cisodm9pZCkmKHB0cik7Cisodm9pZCkmKGVsZW1lbnRfc2l6
ZSk7Cisodm9pZCkmKG51bV9lbGVtZW50cyk7CiAjaWYgUlRDX0hBU19BU0FOCiAgIEFTQU5fVU5Q
T0lTT05fTUVNT1JZX1JFR0lPTihwdHIsIGVsZW1lbnRfc2l6ZSAqIG51bV9lbGVtZW50cyk7CiAj
ZW5kaWYKQEAgLTY5LDYgKzc1LDkgQEAgc3RhdGljIGlubGluZSB2b2lkIHJ0Y19Bc2FuVW5wb2lz
b24oY29uc3Qgdm9sYXRpbGUgdm9pZCogcHRyLAogc3RhdGljIGlubGluZSB2b2lkIHJ0Y19Nc2Fu
TWFya1VuaW5pdGlhbGl6ZWQoY29uc3Qgdm9sYXRpbGUgdm9pZCogcHRyLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGVsZW1lbnRfc2l6ZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBudW1fZWxl
bWVudHMpIHsKKyh2b2lkKSYocHRyKTsKKyh2b2lkKSYoZWxlbWVudF9zaXplKTsKKyh2b2lkKSYo
bnVtX2VsZW1lbnRzKTsKICNpZiBSVENfSEFTX01TQU4KICAgX19tc2FuX3BvaXNvbihwdHIsIGVs
ZW1lbnRfc2l6ZSAqIG51bV9lbGVtZW50cyk7CiAjZW5kaWYKQEAgLTgwLDYgKzg5LDkgQEAgc3Rh
dGljIGlubGluZSB2b2lkIHJ0Y19Nc2FuTWFya1VuaW5pdGlhbGl6ZWQoY29uc3Qgdm9sYXRpbGUg
dm9pZCogcHRyLAogc3RhdGljIGlubGluZSB2b2lkIHJ0Y19Nc2FuQ2hlY2tJbml0aWFsaXplZChj
b25zdCB2b2xhdGlsZSB2b2lkKiBwdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNpemVfdCBlbGVtZW50X3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBudW1fZWxlbWVudHMpIHsKKyh2b2lkKSYocHRy
KTsKKyh2b2lkKSYoZWxlbWVudF9zaXplKTsKKyh2b2lkKSYobnVtX2VsZW1lbnRzKTsKICNpZiBS
VENfSEFTX01TQU4KICAgX19tc2FuX2NoZWNrX21lbV9pc19pbml0aWFsaXplZChwdHIsIGVsZW1l
bnRfc2l6ZSAqIG51bV9lbGVtZW50cyk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2Jhc2Uvc3RyZWFtLmggYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9iYXNlL3N0cmVhbS5oCmluZGV4IGJjOTQ5
MDY1YzhmZTViYWZlYjc0MGZmNTFlODYyMTYyZWU0Mjg1NjcuLjNhY2Q4MzA1ZmMzN2E4NGJkOWE0
MjczMWMxNWI3YjY0OWVhNDdiMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL2Jhc2Uvc3RyZWFtLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvYmFzZS9zdHJlYW0uaApAQCAtMTMyLDcgKzEzMiw3IEBA
IGNsYXNzIFN0cmVhbUludGVyZmFjZSA6IHB1YmxpYyBNZXNzYWdlSGFuZGxlciB7CiAgIC8vIHBy
b2Nlc3NlZC4gIFJlYWQgYW5kIENvbnN1bWVSZWFkRGF0YSBpbnZhbGlkYXRlIHRoZSBidWZmZXIg
cmV0dXJuZWQgYnkKICAgLy8gR2V0UmVhZERhdGEuCiAgIHZpcnR1YWwgY29uc3Qgdm9pZCogR2V0
UmVhZERhdGEoc2l6ZV90KiBkYXRhX2xlbik7Ci0gIHZpcnR1YWwgdm9pZCBDb25zdW1lUmVhZERh
dGEoc2l6ZV90IHVzZWQpIHt9CisgIHZpcnR1YWwgdm9pZCBDb25zdW1lUmVhZERhdGEoc2l6ZV90
KSB7fQogCiAgIC8vIEdldFdyaXRlQnVmZmVyIHJldHVybnMgYSBwb2ludGVyIHRvIGEgYnVmZmVy
IHdoaWNoIGlzIG93bmVkIGJ5IHRoZSBzdHJlYW0uCiAgIC8vIFRoZSBidWZmZXIgaGFzIGEgY2Fw
YWNpdHkgb2YgYnVmX2xlbiBieXRlcy4gIE5VTEwgaXMgcmV0dXJuZWQgaWYgdGhlcmUgaXMKQEAg
LTE0Niw3ICsxNDYsNyBAQCBjbGFzcyBTdHJlYW1JbnRlcmZhY2UgOiBwdWJsaWMgTWVzc2FnZUhh
bmRsZXIgewogICAvLyB3aGVuIGl0IGlzIGF2YWlsYWJsZS4gIElmIHRoZSByZXF1ZXN0ZWQgYW1v
dW50IGlzIHRvbyBsYXJnZSwgcmV0dXJuIGFuCiAgIC8vIGVycm9yLgogICB2aXJ0dWFsIHZvaWQq
IEdldFdyaXRlQnVmZmVyKHNpemVfdCogYnVmX2xlbik7Ci0gIHZpcnR1YWwgdm9pZCBDb25zdW1l
V3JpdGVCdWZmZXIoc2l6ZV90IHVzZWQpIHt9CisgIHZpcnR1YWwgdm9pZCBDb25zdW1lV3JpdGVC
dWZmZXIoc2l6ZV90KSB7fQogCiAgIC8vIFdyaXRlIGRhdGFfbGVuIGJ5dGVzIGZvdW5kIGluIGRh
dGEsIGNpcmN1bXZlbnRpbmcgYW55IHRocm90dGxpbmcgd2hpY2gKICAgLy8gd291bGQgY291bGQg
Y2F1c2UgU1JfQkxPQ0sgdG8gYmUgcmV0dXJuZWQuICBSZXR1cm5zIHRydWUgaWYgYWxsIHRoZSBk
YXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9tZWRpYS9iYXNlL21lZGlhY2hhbm5lbC5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvbWVkaWEvYmFzZS9tZWRpYWNoYW5uZWwuaAppbmRleCA4MGI5ZDRkNDRj
MjNmYjFmZGQwYzlhN2Q1OGVjM2ZlNDQwMWQ5NDM2Li5mM2FmMmRhYTMxZmVkODM2YTZhYmJjZWFi
YWJhZDIzMzg5MzI2OGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9tZWRpYS9iYXNlL21lZGlhY2hhbm5lbC5oCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVkaWFjaGFubmVsLmgK
QEAgLTExNTksMTMgKzExNTksMTMgQEAgY2xhc3MgRGF0YU1lZGlhQ2hhbm5lbCA6IHB1YmxpYyBN
ZWRpYUNoYW5uZWwgewogICB2aXJ0dWFsIGJvb2wgU2V0UmVjdlBhcmFtZXRlcnMoY29uc3QgRGF0
YVJlY3ZQYXJhbWV0ZXJzJiBwYXJhbXMpID0gMDsKIAogICAvLyBUT0RPKHB0aGF0Y2hlcik6IElt
cGxlbWVudCB0aGlzLgotICB2aXJ0dWFsIGJvb2wgR2V0U3RhdHMoRGF0YU1lZGlhSW5mbyogaW5m
bykgeyByZXR1cm4gdHJ1ZTsgfQorICB2aXJ0dWFsIGJvb2wgR2V0U3RhdHMoRGF0YU1lZGlhSW5m
byopIHsgcmV0dXJuIHRydWU7IH0KIAogICB2aXJ0dWFsIGJvb2wgU2V0U2VuZChib29sIHNlbmQp
ID0gMDsKICAgdmlydHVhbCBib29sIFNldFJlY2VpdmUoYm9vbCByZWNlaXZlKSA9IDA7CiAKLSAg
dmlydHVhbCB2b2lkIE9uTmV0d29ya1JvdXRlQ2hhbmdlZChjb25zdCBzdGQ6OnN0cmluZyYgdHJh
bnNwb3J0X25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
cnRjOjpOZXR3b3JrUm91dGUmIG5ldHdvcmtfcm91dGUpIHt9CisgIHZpcnR1YWwgdm9pZCBPbk5l
dHdvcmtSb3V0ZUNoYW5nZWQoY29uc3Qgc3RkOjpzdHJpbmcmIC8qIHRyYW5zcG9ydF9uYW1lICov
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJ0Yzo6TmV0d29y
a1JvdXRlJikge30KIAogICB2aXJ0dWFsIGJvb2wgU2VuZERhdGEoCiAgICAgICBjb25zdCBTZW5k
RGF0YVBhcmFtcyYgcGFyYW1zLApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvbWVkaWEvZW5naW5lL3dlYnJ0Y3ZpZGVvZGVjb2RlcmZhY3Rvcnku
aCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2VuZ2lu
ZS93ZWJydGN2aWRlb2RlY29kZXJmYWN0b3J5LmgKaW5kZXggN2YwOTIxZmQxMmIwNDE2NWRiMzNj
ZTY2OWUxODA4MjQwYWQ2ZDY1NC4uNDgyMjc0ZTJiODliMjNiMTVkOTJjM2NkNzg3YTVjMGQ4ZTU0
YWI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvbWVkaWEvZW5naW5lL3dlYnJ0Y3ZpZGVvZGVjb2RlcmZhY3RvcnkuaAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tZWRpYS9lbmdpbmUvd2VicnRjdmlk
ZW9kZWNvZGVyZmFjdG9yeS5oCkBAIC0zMiw3ICszMiw3IEBAIGNsYXNzIFdlYlJ0Y1ZpZGVvRGVj
b2RlckZhY3RvcnkgewogICAgICAgd2VicnRjOjpWaWRlb0NvZGVjVHlwZSB0eXBlKSA9IDA7CiAg
IHZpcnR1YWwgd2VicnRjOjpWaWRlb0RlY29kZXIqIENyZWF0ZVZpZGVvRGVjb2RlcldpdGhQYXJh
bXMoCiAgICAgICB3ZWJydGM6OlZpZGVvQ29kZWNUeXBlIHR5cGUsCi0gICAgICBWaWRlb0RlY29k
ZXJQYXJhbXMgcGFyYW1zKSB7CisgICAgICBWaWRlb0RlY29kZXJQYXJhbXMpIHsKICAgICByZXR1
cm4gQ3JlYXRlVmlkZW9EZWNvZGVyKHR5cGUpOwogICB9CiAgIHZpcnR1YWwgfldlYlJ0Y1ZpZGVv
RGVjb2RlckZhY3RvcnkoKSB7fQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvbWVkaWEvZW5naW5lL3dlYnJ0Y3ZpZGVvZW5jb2RlcmZhY3Rvcnku
aCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2VuZ2lu
ZS93ZWJydGN2aWRlb2VuY29kZXJmYWN0b3J5LmgKaW5kZXggMzVlNDA5MjAyODAzNjBmMWNmOTQ5
YjRhZDJhZTU4MTRjNzMyMzI1My4uYzk1YzZmN2I3NTEyYWViMmNhMzIzNzRkMDhkODU5NDZkNTdj
NjdlMCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvbWVkaWEvZW5naW5lL3dlYnJ0Y3ZpZGVvZW5jb2RlcmZhY3RvcnkuaAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tZWRpYS9lbmdpbmUvd2VicnRjdmlk
ZW9lbmNvZGVyZmFjdG9yeS5oCkBAIC0zNiw5ICszNiw5IEBAIGNsYXNzIFdlYlJ0Y1ZpZGVvRW5j
b2RlckZhY3RvcnkgewogCiAgICAgVmlkZW9Db2RlYyh3ZWJydGM6OlZpZGVvQ29kZWNUeXBlIHQs
CiAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgbm0sCi0gICAgICAgICAgICAgICBp
bnQgdywKLSAgICAgICAgICAgICAgIGludCBoLAotICAgICAgICAgICAgICAgaW50IGZyKQorICAg
ICAgICAgICAgICAgaW50IC8qIHcgKi8sCisgICAgICAgICAgICAgICBpbnQgLyogaCAqLywKKyAg
ICAgICAgICAgICAgIGludCAvKiBmciAqLykKICAgICAgICAgOiB0eXBlKHQpLCBuYW1lKG5tKSB7
fQogICB9OwogCkBAIC03MCw3ICs3MCw3IEBAIGNsYXNzIFdlYlJ0Y1ZpZGVvRW5jb2RlckZhY3Rv
cnkgewogICAvLyBmcmFtZXMgdG8gYmUgZGVsaXZlcmVkIHZpYSB3ZWJydGM6OlZpZGVvRW5jb2Rl
cjo6RW5jb2RlLiBUaGlzIGZsYWcgaXMgdXNlZAogICAvLyBhcyB0aGUgaW50ZXJuYWxfc291cmNl
IHBhcmFtZXRlciB0bwogICAvLyB3ZWJydGM6OlZpRUV4dGVybmFsQ29kZWM6OlJlZ2lzdGVyRXh0
ZXJuYWxTZW5kQ29kZWMuCi0gIHZpcnR1YWwgYm9vbCBFbmNvZGVyVHlwZUhhc0ludGVybmFsU291
cmNlKHdlYnJ0Yzo6VmlkZW9Db2RlY1R5cGUgdHlwZSkgY29uc3QgeworICB2aXJ0dWFsIGJvb2wg
RW5jb2RlclR5cGVIYXNJbnRlcm5hbFNvdXJjZSh3ZWJydGM6OlZpZGVvQ29kZWNUeXBlKSBjb25z
dCB7CiAgICAgcmV0dXJuIGZhbHNlOwogICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvaW5jbHVkZS9tb2R1bGUuaCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvaW5jbHVkZS9t
b2R1bGUuaAppbmRleCA0MzJlZDQwOWVlMDEwZTI2MjE1OTFmNjM2MmQ2NTE1MTVmZjZiNzZlLi4y
MTQxZjk3Njc3ZmUyMDI5YjYxZmJhNWNkMDZhY2E2MTA1MTE0MTM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL2luY2x1ZGUvbW9k
dWxlLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9k
dWxlcy9pbmNsdWRlL21vZHVsZS5oCkBAIC01Myw3ICs1Myw3IEBAIGNsYXNzIE1vZHVsZSB7CiAg
IC8vCiAgIC8vIE5PVEU6IFRoaXMgbWV0aG9kIGlzIG5vdCBjYWxsZWQgZnJvbSB0aGUgd29ya2Vy
IHRocmVhZCBpdHNlbGYsIGJ1dCBmcm9tCiAgIC8vICAgICAgIHRoZSB0aHJlYWQgdGhhdCByZWdp
c3RlcnMvZGVyZWdpc3RlcnMgdGhlIG1vZHVsZSBvciBjYWxscyBTdGFydC9TdG9wLgotICB2aXJ0
dWFsIHZvaWQgUHJvY2Vzc1RocmVhZEF0dGFjaGVkKFByb2Nlc3NUaHJlYWQqIHByb2Nlc3NfdGhy
ZWFkKSB7fQorICB2aXJ0dWFsIHZvaWQgUHJvY2Vzc1RocmVhZEF0dGFjaGVkKFByb2Nlc3NUaHJl
YWQqKSB7fQogCiAgcHJvdGVjdGVkOgogICB2aXJ0dWFsIH5Nb2R1bGUoKSB7fQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvcDJwL2Jhc2UvcG9y
dC5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvcDJwL2Jhc2Uv
cG9ydC5oCmluZGV4IDNjODRhMTRlZmQ4NjI3MjgyMDgxYmRiNWFjODJhNDQ5MmEzNTY4YTUuLmRl
ZjlmNWQyN2U4MDJiZmY2YTdhMmFkODg4NGZjNjk1NWUwMTI5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3AycC9iYXNlL3BvcnQuaAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9wMnAvYmFzZS9wb3J0
LmgKQEAgLTI0MSw5ICsyNDEsOSBAQCBjbGFzcyBQb3J0IDogcHVibGljIFBvcnRJbnRlcmZhY2Us
IHB1YmxpYyBydGM6Ok1lc3NhZ2VIYW5kbGVyLAogICAvLyBwb3J0IGltcGxlbWVudGVkIHRoaXMg
bWV0aG9kLgogICAvLyBUT0RPKG1hbGxpbmF0aCkgLSBNYWtlIGl0IHB1cmUgdmlydHVhbC4KICAg
dmlydHVhbCBib29sIEhhbmRsZUluY29taW5nUGFja2V0KAotICAgICAgcnRjOjpBc3luY1BhY2tl
dFNvY2tldCogc29ja2V0LCBjb25zdCBjaGFyKiBkYXRhLCBzaXplX3Qgc2l6ZSwKLSAgICAgIGNv
bnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlX2FkZHIsCi0gICAgICBjb25zdCBydGM6OlBh
Y2tldFRpbWUmIHBhY2tldF90aW1lKSB7CisgICAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0Kiwg
Y29uc3QgY2hhciosIHNpemVfdCwKKyAgICAgIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsCisg
ICAgICBjb25zdCBydGM6OlBhY2tldFRpbWUmKSB7CiAgICAgQVNTRVJUKGZhbHNlKTsKICAgICBy
ZXR1cm4gZmFsc2U7CiAgIH0KQEAgLTM2MCw3ICszNjAsNyBAQCBjbGFzcyBQb3J0IDogcHVibGlj
IFBvcnRJbnRlcmZhY2UsIHB1YmxpYyBydGM6Ok1lc3NhZ2VIYW5kbGVyLAogICB9CiAKICAgLy8g
RXh0cmEgd29yayB0byBiZSBkb25lIGluIHN1YmNsYXNzZXMgd2hlbiBhIGNvbm5lY3Rpb24gaXMg
ZGVzdHJveWVkLgotICB2aXJ0dWFsIHZvaWQgSGFuZGxlQ29ubmVjdGlvbkRlc3Ryb3llZChDb25u
ZWN0aW9uKiBjb25uKSB7fQorICB2aXJ0dWFsIHZvaWQgSGFuZGxlQ29ubmVjdGlvbkRlc3Ryb3ll
ZChDb25uZWN0aW9uKikge30KIAogIHByaXZhdGU6CiAgIHZvaWQgQ29uc3RydWN0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9wMnAvYmFz
ZS9zdHVuLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9wMnAv
YmFzZS9zdHVuLmgKaW5kZXggMTUzZjYzZGM1ODY2NWVmM2E5MzIyYzdjMmZiMjkyZjBiM2U4YjE3
Yi4uNTUzM2IzMWFmZGE5NTcwN2Q3M2M1YmEwMjQzMDE4NDkyMDMyYmI2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvcDJwL2Jhc2Uvc3R1bi5o
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3AycC9iYXNl
L3N0dW4uaApAQCAtMjE3LDcgKzIxNyw3IEBAIGNsYXNzIFN0dW5BdHRyaWJ1dGUgewogICB2aXJ0
dWFsIFN0dW5BdHRyaWJ1dGVWYWx1ZVR5cGUgdmFsdWVfdHlwZSgpIGNvbnN0ID0gMDsKIAogICAv
LyBPbmx5IFhvckFkZHJlc3NBdHRyaWJ1dGUgbmVlZHMgdGhpcyBzbyBmYXIuCi0gIHZpcnR1YWwg
dm9pZCBTZXRPd25lcihTdHVuTWVzc2FnZSogb3duZXIpIHt9CisgIHZpcnR1YWwgdm9pZCBTZXRP
d25lcihTdHVuTWVzc2FnZSopIHt9CiAKICAgLy8gUmVhZHMgdGhlIGJvZHkgKG5vdCB0aGUgdHlw
ZSBvciBsZW5ndGgpIGZvciB0aGlzIHR5cGUgb2YgYXR0cmlidXRlIGZyb20KICAgLy8gdGhlIGdp
dmVuIGJ1ZmZlci4gIFJldHVybiB2YWx1ZSBpcyB0cnVlIGlmIHN1Y2Nlc3NmdWwuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9wMnAvYmFzZS9z
dHVucmVxdWVzdC5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
cDJwL2Jhc2Uvc3R1bnJlcXVlc3QuaAppbmRleCBmNmQyMTZkMWY3MTRlY2E3ODBmOGQ5YjM1NzRm
NjE2NTA5YmJjNDgyLi5lZDg2MGE4ZmJlZGU4OTExZjU4ZmI2YWIzNDgwODc0ZDliNjkzZGMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9wMnAv
YmFzZS9zdHVucmVxdWVzdC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3AycC9iYXNlL3N0dW5yZXF1ZXN0LmgKQEAgLTExMCwxMSArMTEwLDExIEBAIGNs
YXNzIFN0dW5SZXF1ZXN0IDogcHVibGljIHJ0Yzo6TWVzc2FnZUhhbmRsZXIgewogCiAgIC8vIEZp
bGxzIGluIGEgcmVxdWVzdCBvYmplY3QgdG8gYmUgc2VudC4gIE5vdGUgdGhhdCByZXF1ZXN0J3Mg
dHJhbnNhY3Rpb24gSUQKICAgLy8gd2lsbCBhbHJlYWR5IGJlIHNldCBhbmQgY2Fubm90IGJlIGNo
YW5nZWQuCi0gIHZpcnR1YWwgdm9pZCBQcmVwYXJlKFN0dW5NZXNzYWdlKiByZXF1ZXN0KSB7fQor
ICB2aXJ0dWFsIHZvaWQgUHJlcGFyZShTdHVuTWVzc2FnZSopIHt9CiAKICAgLy8gQ2FsbGVkIHdo
ZW4gdGhlIG1lc3NhZ2UgcmVjZWl2ZXMgYSByZXNwb25zZSBvciB0aW1lcyBvdXQuCi0gIHZpcnR1
YWwgdm9pZCBPblJlc3BvbnNlKFN0dW5NZXNzYWdlKiByZXNwb25zZSkge30KLSAgdmlydHVhbCB2
b2lkIE9uRXJyb3JSZXNwb25zZShTdHVuTWVzc2FnZSogcmVzcG9uc2UpIHt9CisgIHZpcnR1YWwg
dm9pZCBPblJlc3BvbnNlKFN0dW5NZXNzYWdlKikge30KKyAgdmlydHVhbCB2b2lkIE9uRXJyb3JS
ZXNwb25zZShTdHVuTWVzc2FnZSopIHt9CiAgIHZpcnR1YWwgdm9pZCBPblRpbWVvdXQoKSB7fQog
ICAvLyBDYWxsZWQgd2hlbiB0aGUgbWVzc2FnZSBpcyBzZW50LgogICB2aXJ0dWFsIHZvaWQgT25T
ZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9wMnAvYmFzZS90cmFuc3BvcnQuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3AycC9iYXNlL3RyYW5zcG9ydC5oCmluZGV4IGFkZWY2NTMzZWE5YjQxYzYz
NWNiMmVjMzI3YzAzOWYxZDQzZjQ0MzEuLmNkMTU2ZjljMTEzNjg1YTE4YmM1ZGQ5NzdmMDhjZmVk
ZTk4NTM2ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL3AycC9iYXNlL3RyYW5zcG9ydC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3AycC9iYXNlL3RyYW5zcG9ydC5oCkBAIC0yNjcsMTEgKzI2Nywx
MSBAQCBjbGFzcyBUcmFuc3BvcnQgOiBwdWJsaWMgc2lnc2xvdDo6aGFzX3Nsb3RzPD4gewogCiAg
IC8vIE11c3QgYmUgY2FsbGVkIGJlZm9yZSBhcHBseWluZyBsb2NhbCBzZXNzaW9uIGRlc2NyaXB0
aW9uLgogICB2aXJ0dWFsIHZvaWQgU2V0TG9jYWxDZXJ0aWZpY2F0ZSgKLSAgICAgIGNvbnN0IHJ0
Yzo6c2NvcGVkX3JlZnB0cjxydGM6OlJUQ0NlcnRpZmljYXRlPiYgY2VydGlmaWNhdGUpIHt9Cisg
ICAgICBjb25zdCBydGM6OnNjb3BlZF9yZWZwdHI8cnRjOjpSVENDZXJ0aWZpY2F0ZT4mKSB7fQog
CiAgIC8vIEdldCBhIGNvcHkgb2YgdGhlIGxvY2FsIGNlcnRpZmljYXRlIHByb3ZpZGVkIGJ5IFNl
dExvY2FsQ2VydGlmaWNhdGUuCiAgIHZpcnR1YWwgYm9vbCBHZXRMb2NhbENlcnRpZmljYXRlKAot
ICAgICAgcnRjOjpzY29wZWRfcmVmcHRyPHJ0Yzo6UlRDQ2VydGlmaWNhdGU+KiBjZXJ0aWZpY2F0
ZSkgeworICAgICAgcnRjOjpzY29wZWRfcmVmcHRyPHJ0Yzo6UlRDQ2VydGlmaWNhdGU+Kikgewog
ICAgIHJldHVybiBmYWxzZTsKICAgfQogCkBAIC0zMjAsMTAgKzMyMCwxMCBAQCBjbGFzcyBUcmFu
c3BvcnQgOiBwdWJsaWMgc2lnc2xvdDo6aGFzX3Nsb3RzPD4gewogICBib29sIFJlbW92ZVJlbW90
ZUNhbmRpZGF0ZXMoY29uc3Qgc3RkOjp2ZWN0b3I8Q2FuZGlkYXRlPiYgY2FuZGlkYXRlcywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nKiBlcnJvcik7CiAKLSAgdmly
dHVhbCBib29sIEdldFNzbFJvbGUocnRjOjpTU0xSb2xlKiBzc2xfcm9sZSkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KKyAgdmlydHVhbCBib29sIEdldFNzbFJvbGUocnRjOjpTU0xSb2xlKikgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAvLyBNdXN0IGJlIGNhbGxlZCBiZWZvcmUgY2hhbm5l
bCBpcyBzdGFydGluZyB0byBjb25uZWN0LgotICB2aXJ0dWFsIGJvb2wgU2V0U3NsTWF4UHJvdG9j
b2xWZXJzaW9uKHJ0Yzo6U1NMUHJvdG9jb2xWZXJzaW9uIHZlcnNpb24pIHsKKyAgdmlydHVhbCBi
b29sIFNldFNzbE1heFByb3RvY29sVmVyc2lvbihydGM6OlNTTFByb3RvY29sVmVyc2lvbikgewog
ICAgIHJldHVybiBmYWxzZTsKICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299361</attachid>
            <date>2017-01-20 11:53:48 -0800</date>
            <delta_ts>2017-01-20 14:31:38 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-167242-20170120115154.patch</filename>
            <type>text/plain</type>
            <size>30489</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwOTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCAwM2QxM2RhZTgzZDFhNmYwOGE3YWIwYjZlYTI2N2EzZTZkNDQ0NjVjLi5kMWQy
YTdlOWZlZDNkMjIzZjQ2ZmQ5NDE1NGU5NzI3MzE3YTU0ZmUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4MSBAQAorMjAxNy0wMS0yMCAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYlJUQ10gbGlid2VicnRjIGhl
YWRlcnMgYXJlIGluY29tcGF0aWJsZSB3aXRoIFdlYktpdCBjb21waWxhdGlvbiBmbGFncworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3MjQyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBXZWJLaXQgaXMg
ZW5mb3JjaW5nIC1XdW51c2VkLXBhcmFtZXRlciBhbmQgLVd1bnVzZWQtdmFyaWFibGUgd2hpY2gg
Y29uZmxpY3Qgd2l0aCBzb21lIGluY2x1ZGVkIGxpYndlcnRjIGhlYWRlcnMuCisgICAgICAgIFJl
bW92ZWQgdW51c2VkIHBhcmFtZXRlciBuYW1lcyBmb3IgaW5saW5lZCBmdW5jdGlvbnMuCisKKyAg
ICAgICAgKiBTb3VyY2Uvd2VicnRjL2FwaS9qc2VwLmg6CisgICAgICAgICh3ZWJydGM6OlNlc3Np
b25EZXNjcmlwdGlvbkludGVyZmFjZTo6UmVtb3ZlQ2FuZGlkYXRlcyk6CisgICAgICAgICogU291
cmNlL3dlYnJ0Yy9hcGkvbWVkaWFzdHJlYW1pbnRlcmZhY2UuaDoKKyAgICAgICAgKHdlYnJ0Yzo6
QXVkaW9Tb3VyY2VJbnRlcmZhY2U6OlNldFZvbHVtZSk6CisgICAgICAgICh3ZWJydGM6OkF1ZGlv
U291cmNlSW50ZXJmYWNlOjpSZWdpc3RlckF1ZGlvT2JzZXJ2ZXIpOgorICAgICAgICAod2VicnRj
OjpBdWRpb1NvdXJjZUludGVyZmFjZTo6VW5yZWdpc3RlckF1ZGlvT2JzZXJ2ZXIpOgorICAgICAg
ICAod2VicnRjOjpBdWRpb1NvdXJjZUludGVyZmFjZTo6QWRkU2luayk6CisgICAgICAgICh3ZWJy
dGM6OkF1ZGlvU291cmNlSW50ZXJmYWNlOjpSZW1vdmVTaW5rKToKKyAgICAgICAgKHdlYnJ0Yzo6
QXVkaW9UcmFja0ludGVyZmFjZTo6R2V0U2lnbmFsTGV2ZWwpOgorICAgICAgICAqIFNvdXJjZS93
ZWJydGMvYXBpL3BlZXJjb25uZWN0aW9uZmFjdG9yeS5oOgorICAgICAgICAqIFNvdXJjZS93ZWJy
dGMvYXBpL3BlZXJjb25uZWN0aW9uaW50ZXJmYWNlLmg6CisgICAgICAgICh3ZWJydGM6Ok1ldHJp
Y3NPYnNlcnZlckludGVyZmFjZTo6SW5jcmVtZW50RW51bUNvdW50ZXIpOgorICAgICAgICAod2Vi
cnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6QWRkVHJhY2spOgorICAgICAgICAod2VicnRj
OjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UmVtb3ZlVHJhY2spOgorICAgICAgICAod2VicnRj
OjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6Q3JlYXRlU2VuZGVyKToKKyAgICAgICAgKHdlYnJ0
Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OkdldFN0YXRzKToKKyAgICAgICAgKHdlYnJ0Yzo6
UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OkNyZWF0ZU9mZmVyKToKKyAgICAgICAgKHdlYnJ0Yzo6
UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OkNyZWF0ZUFuc3dlcik6CisgICAgICAgICh3ZWJydGM6
OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpVcGRhdGVJY2UpOgorICAgICAgICAod2VicnRjOjpQ
ZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6U2V0Q29uZmlndXJhdGlvbik6CisgICAgICAgICh3ZWJy
dGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpSZW1vdmVJY2VDYW5kaWRhdGVzKToKKyAgICAg
ICAgKHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlN0YXJ0UnRjRXZlbnRMb2cpOgor
ICAgICAgICAod2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyOjpPbkFkZFN0cmVhbSk6Cisg
ICAgICAgICh3ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXI6Ok9uUmVtb3ZlU3RyZWFtKToK
KyAgICAgICAgKHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlcjo6T25EYXRhQ2hhbm5lbCk6
CisgICAgICAgICh3ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXI6Ok9uSWNlQ2FuZGlkYXRl
c1JlbW92ZWQpOgorICAgICAgICAod2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyOjpPbklj
ZUNvbm5lY3Rpb25SZWNlaXZpbmdDaGFuZ2UpOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvYXBp
L3J0cHNlbmRlci5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2Jhc2UvbWVzc2FnZWhhbmRs
ZXIuaDoKKyAgICAgICAgKHJ0Yzo6RnVuY3Rvck1lc3NhZ2VIYW5kbGVyOjpPbk1lc3NhZ2UpOgor
ICAgICAgICAqIFNvdXJjZS93ZWJydGMvYmFzZS9zYW5pdGl6ZXIuaDoKKyAgICAgICAgKHJ0Y19B
c2FuUG9pc29uKToKKyAgICAgICAgKHJ0Y19Bc2FuVW5wb2lzb24pOgorICAgICAgICAocnRjX01z
YW5NYXJrVW5pbml0aWFsaXplZCk6CisgICAgICAgIChydGNfTXNhbkNoZWNrSW5pdGlhbGl6ZWQp
OgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvYmFzZS9zdHJlYW0uaDoKKyAgICAgICAgKHJ0Yzo6
U3RyZWFtSW50ZXJmYWNlOjpDb25zdW1lUmVhZERhdGEpOgorICAgICAgICAocnRjOjpTdHJlYW1J
bnRlcmZhY2U6OkNvbnN1bWVXcml0ZUJ1ZmZlcik6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9t
ZWRpYS9iYXNlL21lZGlhY2hhbm5lbC5oOgorICAgICAgICAoY3JpY2tldDo6RGF0YU1lZGlhQ2hh
bm5lbDo6R2V0U3RhdHMpOgorICAgICAgICAoY3JpY2tldDo6RGF0YU1lZGlhQ2hhbm5lbDo6T25O
ZXR3b3JrUm91dGVDaGFuZ2VkKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21lZGlhL2VuZ2lu
ZS93ZWJydGN2aWRlb2RlY29kZXJmYWN0b3J5Lmg6CisgICAgICAgIChjcmlja2V0OjpXZWJSdGNW
aWRlb0RlY29kZXJGYWN0b3J5OjpDcmVhdGVWaWRlb0RlY29kZXJXaXRoUGFyYW1zKToKKyAgICAg
ICAgKiBTb3VyY2Uvd2VicnRjL21lZGlhL2VuZ2luZS93ZWJydGN2aWRlb2VuY29kZXJmYWN0b3J5
Lmg6CisgICAgICAgIChjcmlja2V0OjpXZWJSdGNWaWRlb0VuY29kZXJGYWN0b3J5OjpWaWRlb0Nv
ZGVjOjpWaWRlb0NvZGVjKToKKyAgICAgICAgKGNyaWNrZXQ6OldlYlJ0Y1ZpZGVvRW5jb2RlckZh
Y3Rvcnk6OkVuY29kZXJUeXBlSGFzSW50ZXJuYWxTb3VyY2UpOgorICAgICAgICAqIFNvdXJjZS93
ZWJydGMvbWVkaWEvZW5naW5lL3dlYnJ0Y3ZpZGVvZW5naW5lMi5jYzoKKyAgICAgICAgKiBTb3Vy
Y2Uvd2VicnRjL21vZHVsZXMvaW5jbHVkZS9tb2R1bGUuaDoKKyAgICAgICAgKHdlYnJ0Yzo6TW9k
dWxlOjpQcm9jZXNzVGhyZWFkQXR0YWNoZWQpOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9k
dWxlcy92aWRlb19jb2RpbmcvY29kZWNzL3ZwOS92cDlfbm9vcC5jYzoKKyAgICAgICAgKiBTb3Vy
Y2Uvd2VicnRjL3AycC9iYXNlL3BvcnQuaDoKKyAgICAgICAgKGNyaWNrZXQ6OlBvcnQ6OkhhbmRs
ZUluY29taW5nUGFja2V0KToKKyAgICAgICAgKGNyaWNrZXQ6OlBvcnQ6OkhhbmRsZUNvbm5lY3Rp
b25EZXN0cm95ZWQpOgorICAgICAgICAoY3JpY2tldDo6Q29ubmVjdGlvbjo6c2V0X3JlY2Vpdmlu
Z190aW1lb3V0KToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3AycC9iYXNlL3N0dW4uaDoKKyAg
ICAgICAgKGNyaWNrZXQ6OlN0dW5BdHRyaWJ1dGU6OlNldE93bmVyKToKKyAgICAgICAgKiBTb3Vy
Y2Uvd2VicnRjL3AycC9iYXNlL3N0dW5yZXF1ZXN0Lmg6CisgICAgICAgIChjcmlja2V0OjpTdHVu
UmVxdWVzdDo6UHJlcGFyZSk6CisgICAgICAgIChjcmlja2V0OjpTdHVuUmVxdWVzdDo6T25SZXNw
b25zZSk6CisgICAgICAgIChjcmlja2V0OjpTdHVuUmVxdWVzdDo6T25FcnJvclJlc3BvbnNlKToK
KyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3AycC9iYXNlL3RyYW5zcG9ydC5oOgorICAgICAgICAo
Y3JpY2tldDo6VHJhbnNwb3J0OjpTZXRMb2NhbENlcnRpZmljYXRlKToKKyAgICAgICAgKGNyaWNr
ZXQ6OlRyYW5zcG9ydDo6R2V0TG9jYWxDZXJ0aWZpY2F0ZSk6CisgICAgICAgIChjcmlja2V0OjpU
cmFuc3BvcnQ6OkdldFNzbFJvbGUpOgorICAgICAgICAoY3JpY2tldDo6VHJhbnNwb3J0OjpTZXRT
c2xNYXhQcm90b2NvbFZlcnNpb24pOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMv
RnJhbWV3b3JrL0NsYXNzZXMvdmlkZW90b29sYm94dmlkZW9jb2RlY2ZhY3RvcnkuY2M6CisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy90eXBlZGVmcy5oOgorCiAyMDE3LTAxLTE5ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViUlRDXSBVcGxvYWQgbGlid2Vi
cnRjIGNvZGUgYmFzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvYXBpL2pzZXAuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL2FwaS9qc2VwLmgKaW5kZXggZTExYTJhZGU5YWQ5MjcxMmU0Nzg0YzBmNDQyMGQy
ZDEyNDdkMDRjNi4uOWQ3YmY5ZDdmNTc0MzU4MDBhNTdlMDUwNzNlMzE5NDA5OWE1MzBkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL2pz
ZXAuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkv
anNlcC5oCkBAIC05OCw3ICs5OCw3IEBAIGNsYXNzIFNlc3Npb25EZXNjcmlwdGlvbkludGVyZmFj
ZSB7CiAgIC8vIFJlbW92ZXMgdGhlIGNhbmRpZGF0ZXMgZnJvbSB0aGUgZGVzY3JpcHRpb24uCiAg
IC8vIFJldHVybnMgdGhlIG51bWJlciBvZiBjYW5kaWRhdGVzIHJlbW92ZWQuCiAgIHZpcnR1YWwg
c2l6ZV90IFJlbW92ZUNhbmRpZGF0ZXMoCi0gICAgICBjb25zdCBzdGQ6OnZlY3Rvcjxjcmlja2V0
OjpDYW5kaWRhdGU+JiBjYW5kaWRhdGVzKSB7IHJldHVybiAwOyB9CisgICAgICBjb25zdCBzdGQ6
OnZlY3Rvcjxjcmlja2V0OjpDYW5kaWRhdGU+JikgeyByZXR1cm4gMDsgfQogCiAgIC8vIFJldHVy
bnMgdGhlIG51bWJlciBvZiBtLSBsaW5lcyBpbiB0aGUgc2Vzc2lvbiBkZXNjcmlwdGlvbi4KICAg
dmlydHVhbCBzaXplX3QgbnVtYmVyX29mX21lZGlhc2VjdGlvbnMoKSBjb25zdCA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvbWVk
aWFzdHJlYW1pbnRlcmZhY2UuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL2FwaS9tZWRpYXN0cmVhbWludGVyZmFjZS5oCmluZGV4IGJhZWJhZDdiNjkwOWQ4Mjcz
ZGFmMDNiNjBjZWZlYWU1ZWU1ZDQ2YWIuLjkxYTg3MDViODE5NjQ0MGI3NzYzN2FmMjczYzJlZGVm
M2UwM2UyMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL2FwaS9tZWRpYXN0cmVhbWludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS9tZWRpYXN0cmVhbWludGVyZmFjZS5oCkBAIC0x
MzQsOSArMTM0LDkgQEAgY2xhc3MgVmlkZW9UcmFja0ludGVyZmFjZQogICAgICAgcHVibGljIHJ0
Yzo6VmlkZW9Tb3VyY2VJbnRlcmZhY2U8VmlkZW9GcmFtZT4gewogIHB1YmxpYzoKICAgLy8gUmVn
aXN0ZXIgYSB2aWRlbyBzaW5rIGZvciB0aGlzIHRyYWNrLgotICB2b2lkIEFkZE9yVXBkYXRlU2lu
ayhydGM6OlZpZGVvU2lua0ludGVyZmFjZTxWaWRlb0ZyYW1lPiogc2luaywKLSAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgcnRjOjpWaWRlb1NpbmtXYW50cyYgd2FudHMpIG92ZXJyaWRle307
Ci0gIHZvaWQgUmVtb3ZlU2luayhydGM6OlZpZGVvU2lua0ludGVyZmFjZTxWaWRlb0ZyYW1lPiog
c2luaykgb3ZlcnJpZGV7fTsKKyAgdm9pZCBBZGRPclVwZGF0ZVNpbmsocnRjOjpWaWRlb1NpbmtJ
bnRlcmZhY2U8VmlkZW9GcmFtZT4qLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBydGM6
OlZpZGVvU2lua1dhbnRzJikgb3ZlcnJpZGUge307CisgIHZvaWQgUmVtb3ZlU2luayhydGM6OlZp
ZGVvU2lua0ludGVyZmFjZTxWaWRlb0ZyYW1lPiopIG92ZXJyaWRlIHt9OwogCiAgIHZpcnR1YWwg
VmlkZW9UcmFja1NvdXJjZUludGVyZmFjZSogR2V0U291cmNlKCkgY29uc3QgPSAwOwogCkBAIC0x
NzQsMTUgKzE3NCwxNSBAQCBjbGFzcyBBdWRpb1NvdXJjZUludGVyZmFjZSA6IHB1YmxpYyBNZWRp
YVNvdXJjZUludGVyZmFjZSB7CiAgIC8vIFNldHMgdGhlIHZvbHVtZSB0byB0aGUgc291cmNlLiB8
dm9sdW1lfCBpcyBpbiAgdGhlIHJhbmdlIG9mIFswLCAxMF0uCiAgIC8vIFRPRE8odG9tbWkpOiBU
aGlzIG1ldGhvZCBzaG91bGQgYmUgb24gdGhlIHRyYWNrIGFuZCBpZGVhbGx5IHZvbHVtZSBzaG91
bGQKICAgLy8gYmUgYXBwbGllZCBpbiB0aGUgdHJhY2sgaW4gYSB3YXkgdGhhdCBkb2VzIG5vdCBh
ZmZlY3QgY2xvbmVzIG9mIHRoZSB0cmFjay4KLSAgdmlydHVhbCB2b2lkIFNldFZvbHVtZShkb3Vi
bGUgdm9sdW1lKSB7fQorICB2aXJ0dWFsIHZvaWQgU2V0Vm9sdW1lKGRvdWJsZSkge30KIAogICAv
LyBSZWdpc3RlcnMvdW5yZWdpc3RlcnMgb2JzZXJ2ZXIgdG8gdGhlIGF1ZGlvIHNvdXJjZS4KLSAg
dmlydHVhbCB2b2lkIFJlZ2lzdGVyQXVkaW9PYnNlcnZlcihBdWRpb09ic2VydmVyKiBvYnNlcnZl
cikge30KLSAgdmlydHVhbCB2b2lkIFVucmVnaXN0ZXJBdWRpb09ic2VydmVyKEF1ZGlvT2JzZXJ2
ZXIqIG9ic2VydmVyKSB7fQorICB2aXJ0dWFsIHZvaWQgUmVnaXN0ZXJBdWRpb09ic2VydmVyKEF1
ZGlvT2JzZXJ2ZXIqKSB7fQorICB2aXJ0dWFsIHZvaWQgVW5yZWdpc3RlckF1ZGlvT2JzZXJ2ZXIo
QXVkaW9PYnNlcnZlciopIHt9CiAKICAgLy8gVE9ETyh0b21taSk6IE1ha2UgcHVyZSB2aXJ0dWFs
LgotICB2aXJ0dWFsIHZvaWQgQWRkU2luayhBdWRpb1RyYWNrU2lua0ludGVyZmFjZSogc2luaykg
e30KLSAgdmlydHVhbCB2b2lkIFJlbW92ZVNpbmsoQXVkaW9UcmFja1NpbmtJbnRlcmZhY2UqIHNp
bmspIHt9CisgIHZpcnR1YWwgdm9pZCBBZGRTaW5rKEF1ZGlvVHJhY2tTaW5rSW50ZXJmYWNlKikg
e30KKyAgdmlydHVhbCB2b2lkIFJlbW92ZVNpbmsoQXVkaW9UcmFja1NpbmtJbnRlcmZhY2UqKSB7
fQogfTsKIAogLy8gSW50ZXJmYWNlIG9mIHRoZSBhdWRpbyBwcm9jZXNzb3IgdXNlZCBieSB0aGUg
YXVkaW8gdHJhY2sgdG8gY29sbGVjdApAQCAtMjMwLDcgKzIzMCw3IEBAIGNsYXNzIEF1ZGlvVHJh
Y2tJbnRlcmZhY2UgOiBwdWJsaWMgTWVkaWFTdHJlYW1UcmFja0ludGVyZmFjZSB7CiAgIC8vIFJl
dHVybiB0cnVlIG9uIHN1Y2Nlc3MsIG90aGVyd2lzZSBmYWxzZS4KICAgLy8gVE9ETyh4aWFucyk6
IENoYW5nZSB0aGUgaW50ZXJmYWNlIHRvIGludCBHZXRTaWduYWxMZXZlbCgpIGFuZCBwdXJlIHZp
cnR1YWwKICAgLy8gYWZ0ZXIgQ2hyb21lIGhhcyB0aGUgY29ycmVjdCBpbXBsZW1lbnRhdGlvbiBv
ZiB0aGUgaW50ZXJmYWNlLgotICB2aXJ0dWFsIGJvb2wgR2V0U2lnbmFsTGV2ZWwoaW50KiBsZXZl
bCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgdmlydHVhbCBib29sIEdldFNpZ25hbExldmVsKGludCop
IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgLy8gR2V0IHRoZSBhdWRpbyBwcm9jZXNzb3IgdXNlZCBi
eSB0aGUgYXVkaW8gdHJhY2suIFJldHVybiBOVUxMIGlmIHRoZSB0cmFjawogICAvLyBkb2VzIG5v
dCBoYXZlIGFueSBwcm9jZXNzb3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvcGVlcmNvbm5lY3Rpb25mYWN0b3J5LmggYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvcGVlcmNvbm5lY3Rpb25mYWN0
b3J5LmgKaW5kZXggN2EzMGFiNDU2OTAyNDg3OWEzMzZjZDdkYWRjZDM3OGE3N2M3ZWZmZS4uZjAy
ZjliOWQ5NTkyZmMwNWFkNGUxMWFiZjgxZjQxMTc5ZTYwN2U1NiAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3BlZXJjb25uZWN0aW9uZmFj
dG9yeS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2Fw
aS9wZWVyY29ubmVjdGlvbmZhY3RvcnkuaApAQCAtODEsMTAgKzgxLDEwIEBAIGNsYXNzIFBlZXJD
b25uZWN0aW9uRmFjdG9yeSA6IHB1YmxpYyBQZWVyQ29ubmVjdGlvbkZhY3RvcnlJbnRlcmZhY2Ug
ewogICBib29sIFN0YXJ0QWVjRHVtcChydGM6OlBsYXRmb3JtRmlsZSBmaWxlLCBpbnQ2NF90IG1h
eF9zaXplX2J5dGVzKSBvdmVycmlkZTsKICAgdm9pZCBTdG9wQWVjRHVtcCgpIG92ZXJyaWRlOwog
ICAvLyBUT0RPKGl2b2MpIFJlbW92ZSBhZnRlciBDaHJvbWUgaXMgdXBkYXRlZC4KLSAgYm9vbCBT
dGFydFJ0Y0V2ZW50TG9nKHJ0Yzo6UGxhdGZvcm1GaWxlIGZpbGUpIG92ZXJyaWRlIHsgcmV0dXJu
IGZhbHNlOyB9CisgIGJvb2wgU3RhcnRSdGNFdmVudExvZyhydGM6OlBsYXRmb3JtRmlsZSkgb3Zl
cnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgLy8gVE9ETyhpdm9jKSBSZW1vdmUgYWZ0ZXIgQ2hy
b21lIGlzIHVwZGF0ZWQuCi0gIGJvb2wgU3RhcnRSdGNFdmVudExvZyhydGM6OlBsYXRmb3JtRmls
ZSBmaWxlLAotICAgICAgICAgICAgICAgICAgICAgICAgaW50NjRfdCBtYXhfc2l6ZV9ieXRlcykg
b3ZlcnJpZGUgeworICBib29sIFN0YXJ0UnRjRXZlbnRMb2cocnRjOjpQbGF0Zm9ybUZpbGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICBpbnQ2NF90KSBvdmVycmlkZSB7CiAgICAgcmV0dXJuIGZh
bHNlOwogICB9CiAgIC8vIFRPRE8oaXZvYykgUmVtb3ZlIGFmdGVyIENocm9tZSBpcyB1cGRhdGVk
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
YXBpL3BlZXJjb25uZWN0aW9uaW50ZXJmYWNlLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9hcGkvcGVlcmNvbm5lY3Rpb25pbnRlcmZhY2UuaAppbmRleCBlYTA1
NmJmYzk4ZmEyYTM5YTE5MzVhOTExOTg4ZTNhMWJlMzVkODk3Li43NmNjZTE3M2VkNGNhMzg3NDdi
MmI5NWZiMjNhYzQ0ZTNmYWU0ZTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvcGVlcmNvbm5lY3Rpb25pbnRlcmZhY2UuaAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvcGVlcmNvbm5lY3Rp
b25pbnRlcmZhY2UuaApAQCAtMTE5LDkgKzExOSw5IEBAIGNsYXNzIE1ldHJpY3NPYnNlcnZlcklu
dGVyZmFjZSA6IHB1YmxpYyBydGM6OlJlZkNvdW50SW50ZXJmYWNlIHsKICAgLy8gfHR5cGV8IGlz
IHRoZSB0eXBlIG9mIHRoZSBlbnVtIGNvdW50ZXIgdG8gYmUgaW5jcmVtZW50ZWQuIHxjb3VudGVy
fAogICAvLyBpcyB0aGUgcGFydGljdWxhciBjb3VudGVyIGluIHRoYXQgdHlwZS4gfGNvdW50ZXJf
bWF4fCBpcyB0aGUgbmV4dCBzZXF1ZW5jZQogICAvLyBudW1iZXIgYWZ0ZXIgdGhlIGhpZ2hlc3Qg
Y291bnRlci4KLSAgdmlydHVhbCB2b2lkIEluY3JlbWVudEVudW1Db3VudGVyKFBlZXJDb25uZWN0
aW9uRW51bUNvdW50ZXJUeXBlIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbnQgY291bnRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCBjb3VudGVyX21heCkge30KKyAgdmlydHVhbCB2b2lkIEluY3JlbWVudEVudW1Db3VudGVyKFBl
ZXJDb25uZWN0aW9uRW51bUNvdW50ZXJUeXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50IC8qIGNvdW50ZXIgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnQgLyogY291bnRlcl9tYXggKi8pIHt9CiAKICAgLy8gVGhpcyBpcyB1c2VkIHRv
IGhhbmRsZSBzcGFyc2UgY291bnRlcnMgbGlrZSBTU0wgY2lwaGVyIHN1aXRlcy4KICAgLy8gVE9E
TyhndW93ZWlzKTogUmVtb3ZlIHRoZSBpbXBsZW1lbnRhdGlvbiBvbmNlIHRoZSBkZXBlbmRlbmN5
J3MgaW50ZXJmYWNlCkBAIC0zODksMTQgKzM4OSwxNCBAQCBjbGFzcyBQZWVyQ29ubmVjdGlvbklu
dGVyZmFjZSA6IHB1YmxpYyBydGM6OlJlZkNvdW50SW50ZXJmYWNlIHsKICAgLy8gfHN0cmVhbXN8
IGluZGljYXRlcyB3aGljaCBzdHJlYW0gbGFiZWxzIHRoZSB0cmFjayBzaG91bGQgYmUgYXNzb2Np
YXRlZAogICAvLyB3aXRoLgogICB2aXJ0dWFsIHJ0Yzo6c2NvcGVkX3JlZnB0cjxSdHBTZW5kZXJJ
bnRlcmZhY2U+IEFkZFRyYWNrKAotICAgICAgTWVkaWFTdHJlYW1UcmFja0ludGVyZmFjZSogdHJh
Y2ssCi0gICAgICBzdGQ6OnZlY3RvcjxNZWRpYVN0cmVhbUludGVyZmFjZSo+IHN0cmVhbXMpIHsK
KyAgICAgIE1lZGlhU3RyZWFtVHJhY2tJbnRlcmZhY2UqLAorICAgICAgc3RkOjp2ZWN0b3I8TWVk
aWFTdHJlYW1JbnRlcmZhY2UqPikgewogICAgIHJldHVybiBudWxscHRyOwogICB9CiAKICAgLy8g
UmVtb3ZlIGFuIFJ0cFNlbmRlciBmcm9tIHRoaXMgUGVlckNvbm5lY3Rpb24uCiAgIC8vIFJldHVy
bnMgdHJ1ZSBvbiBzdWNjZXNzLgotICB2aXJ0dWFsIGJvb2wgUmVtb3ZlVHJhY2soUnRwU2VuZGVy
SW50ZXJmYWNlKiBzZW5kZXIpIHsKKyAgdmlydHVhbCBib29sIFJlbW92ZVRyYWNrKFJ0cFNlbmRl
ckludGVyZmFjZSopIHsKICAgICByZXR1cm4gZmFsc2U7CiAgIH0KIApAQCAtNDEwLDggKzQxMCw4
IEBAIGNsYXNzIFBlZXJDb25uZWN0aW9uSW50ZXJmYWNlIDogcHVibGljIHJ0Yzo6UmVmQ291bnRJ
bnRlcmZhY2UgewogICAvLyB8c3RyZWFtX2lkfCBpcyB1c2VkIHRvIHBvcHVsYXRlIHRoZSBtc2lk
IGF0dHJpYnV0ZTsgaWYgZW1wdHksIG9uZSB3aWxsCiAgIC8vIGJlIGdlbmVyYXRlZCBhdXRvbWF0
aWNhbGx5LgogICB2aXJ0dWFsIHJ0Yzo6c2NvcGVkX3JlZnB0cjxSdHBTZW5kZXJJbnRlcmZhY2U+
IENyZWF0ZVNlbmRlcigKLSAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBraW5kLAotICAgICAgY29u
c3Qgc3RkOjpzdHJpbmcmIHN0cmVhbV9pZCkgeworICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIC8q
IGtpbmQgKi8sCisgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgLyogc3RyZWFtX2lkICovKSB7CiAg
ICAgcmV0dXJuIHJ0Yzo6c2NvcGVkX3JlZnB0cjxSdHBTZW5kZXJJbnRlcmZhY2U+KCk7CiAgIH0K
IApAQCAtNDMzLDcgKzQzMyw3IEBAIGNsYXNzIFBlZXJDb25uZWN0aW9uSW50ZXJmYWNlIDogcHVi
bGljIHJ0Yzo6UmVmQ291bnRJbnRlcmZhY2UgewogICAvLyBUT0RPKGhib3MpOiBEZWZhdWx0IGlt
cGxlbWVudGF0aW9uIHRoYXQgZG9lcyBub3RoaW5nIG9ubHkgZXhpc3RzIGFzIHRvIG5vdAogICAv
LyBicmVhayB0aGlyZCBwYXJ0eSBwcm9qZWN0cy4gQXMgc29vbiBhcyB0aGV5IGhhdmUgYmVlbiB1
cGRhdGVkIHRoaXMgc2hvdWxkCiAgIC8vIGJlIGNoYW5nZWQgdG8gIj0gMDsiLgotICB2aXJ0dWFs
IHZvaWQgR2V0U3RhdHMoUlRDU3RhdHNDb2xsZWN0b3JDYWxsYmFjayogY2FsbGJhY2spIHt9Cisg
IHZpcnR1YWwgdm9pZCBHZXRTdGF0cyhSVENTdGF0c0NvbGxlY3RvckNhbGxiYWNrKikge30KIAog
ICB2aXJ0dWFsIHJ0Yzo6c2NvcGVkX3JlZnB0cjxEYXRhQ2hhbm5lbEludGVyZmFjZT4gQ3JlYXRl
RGF0YUNoYW5uZWwoCiAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgbGFiZWwsCkBAIC00NDQsMjMg
KzQ0NCwyMyBAQCBjbGFzcyBQZWVyQ29ubmVjdGlvbkludGVyZmFjZSA6IHB1YmxpYyBydGM6OlJl
ZkNvdW50SW50ZXJmYWNlIHsKIAogICAvLyBDcmVhdGUgYSBuZXcgb2ZmZXIuCiAgIC8vIFRoZSBD
cmVhdGVTZXNzaW9uRGVzY3JpcHRpb25PYnNlcnZlciBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCB3
aGVuIGRvbmUuCi0gIHZpcnR1YWwgdm9pZCBDcmVhdGVPZmZlcihDcmVhdGVTZXNzaW9uRGVzY3Jp
cHRpb25PYnNlcnZlciogb2JzZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzSW50ZXJmYWNlKiBjb25zdHJhaW50cykge30KKyAgdmlydHVhbCB2
b2lkIENyZWF0ZU9mZmVyKENyZWF0ZVNlc3Npb25EZXNjcmlwdGlvbk9ic2VydmVyKiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE1lZGlhQ29uc3RyYWludHNJbnRlcmZhY2UqKSB7
fQogCiAgIC8vIFRPRE8oamlheWwpOiByZW1vdmUgdGhlIGRlZmF1bHQgaW1wbCBhbmQgdGhlIG9s
ZCBpbnRlcmZhY2Ugd2hlbiBjaHJvbWl1bQogICAvLyBjb2RlIGlzIHVwZGF0ZWQuCi0gIHZpcnR1
YWwgdm9pZCBDcmVhdGVPZmZlcihDcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25PYnNlcnZlciogb2Jz
ZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSVENPZmZlckFuc3dlck9w
dGlvbnMmIG9wdGlvbnMpIHt9CisgIHZpcnR1YWwgdm9pZCBDcmVhdGVPZmZlcihDcmVhdGVTZXNz
aW9uRGVzY3JpcHRpb25PYnNlcnZlciosCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBSVENPZmZlckFuc3dlck9wdGlvbnMmKSB7fQogCiAgIC8vIENyZWF0ZSBhbiBhbnN3ZXIgdG8g
YW4gb2ZmZXIuCiAgIC8vIFRoZSBDcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25PYnNlcnZlciBjYWxs
YmFjayB3aWxsIGJlIGNhbGxlZCB3aGVuIGRvbmUuCi0gIHZpcnR1YWwgdm9pZCBDcmVhdGVBbnN3
ZXIoQ3JlYXRlU2Vzc2lvbkRlc2NyaXB0aW9uT2JzZXJ2ZXIqIG9ic2VydmVyLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IFJUQ09mZmVyQW5zd2VyT3B0aW9ucyYgb3B0aW9ucykg
e30KKyAgdmlydHVhbCB2b2lkIENyZWF0ZUFuc3dlcihDcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25P
YnNlcnZlciosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUlRDT2ZmZXJBbnN3
ZXJPcHRpb25zJikge30KICAgLy8gRGVwcmVjYXRlZCAtIHVzZSB2ZXJzaW9uIGFib3ZlLgogICAv
LyBUT0RPKGh0YSk6IFJlbW92ZSBhbmQgcmVtb3ZlIGRlZmF1bHQgaW1wbGVtZW50YXRpb25zIHdo
ZW4gYWxsIGNhbGxlcnMKICAgLy8gYXJlIHVwZGF0ZWQuCi0gIHZpcnR1YWwgdm9pZCBDcmVhdGVB
bnN3ZXIoQ3JlYXRlU2Vzc2lvbkRlc2NyaXB0aW9uT2JzZXJ2ZXIqIG9ic2VydmVyLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE1lZGlhQ29uc3RyYWludHNJbnRlcmZhY2UqIGNv
bnN0cmFpbnRzKSB7fQorICB2aXJ0dWFsIHZvaWQgQ3JlYXRlQW5zd2VyKENyZWF0ZVNlc3Npb25E
ZXNjcmlwdGlvbk9ic2VydmVyKiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzSW50ZXJmYWNlKikge30KIAogICAvLyBTZXRzIHRoZSBsb2NhbCBzZXNz
aW9uIGRlc2NyaXB0aW9uLgogICAvLyBKc2VwSW50ZXJmYWNlIHRha2VzIHRoZSBvd25lcnNoaXAg
b2YgfGRlc2N8IGV2ZW4gaWYgaXQgZmFpbHMuCkBAIC00NzUsMTEgKzQ3NSwxMSBAQCBjbGFzcyBQ
ZWVyQ29ubmVjdGlvbkludGVyZmFjZSA6IHB1YmxpYyBydGM6OlJlZkNvdW50SW50ZXJmYWNlIHsK
ICAgLy8gUmVzdGFydHMgb3IgdXBkYXRlcyB0aGUgSUNFIEFnZW50IHByb2Nlc3Mgb2YgZ2F0aGVy
aW5nIGxvY2FsIGNhbmRpZGF0ZXMKICAgLy8gYW5kIHBpbmdpbmcgcmVtb3RlIGNhbmRpZGF0ZXMu
CiAgIC8vIFRPRE8oZGVhZGJlZWYpOiBSZW1vdmUgb25jZSBDaHJvbWUgaXMgbW92ZWQgb3ZlciB0
byBTZXRDb25maWd1cmF0aW9uLgotICB2aXJ0dWFsIGJvb2wgVXBkYXRlSWNlKGNvbnN0IEljZVNl
cnZlcnMmIGNvbmZpZ3VyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgTWVk
aWFDb25zdHJhaW50c0ludGVyZmFjZSogY29uc3RyYWludHMpIHsKKyAgdmlydHVhbCBib29sIFVw
ZGF0ZUljZShjb25zdCBJY2VTZXJ2ZXJzJiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzSW50ZXJmYWNlKikgewogICAgIHJldHVybiBmYWxzZTsKICAgfQot
ICB2aXJ0dWFsIGJvb2wgVXBkYXRlSWNlKGNvbnN0IEljZVNlcnZlcnMmIGNvbmZpZ3VyYXRpb24p
IHsgcmV0dXJuIGZhbHNlOyB9CisgIHZpcnR1YWwgYm9vbCBVcGRhdGVJY2UoY29uc3QgSWNlU2Vy
dmVycyYpIHsgcmV0dXJuIGZhbHNlOyB9CiAgIC8vIFNldHMgdGhlIFBlZXJDb25uZWN0aW9uJ3Mg
Z2xvYmFsIGNvbmZpZ3VyYXRpb24gdG8gfGNvbmZpZ3wuCiAgIC8vIEFueSBjaGFuZ2VzIHRvIFNU
VU4vVFVSTiBzZXJ2ZXJzIG9yIElDRSBjYW5kaWRhdGUgcG9saWN5IHdpbGwgYWZmZWN0IHRoZQog
ICAvLyBuZXh0IGdhdGhlcmluZyBwaGFzZSwgYW5kIGNhdXNlIHRoZSBuZXh0IGNhbGwgdG8gY3Jl
YXRlT2ZmZXIgdG8gZ2VuZXJhdGUKQEAgLTQ4OCw3ICs0ODgsNyBAQCBjbGFzcyBQZWVyQ29ubmVj
dGlvbkludGVyZmFjZSA6IHB1YmxpYyBydGM6OlJlZkNvdW50SW50ZXJmYWNlIHsKICAgLy8gVE9E
TyhkZWFkYmVlZik6IE1ha2UgdGhpcyBwdXJlIHZpcnR1YWwgb25jZSBhbGwgQ2hyb21lIHN1YmNs
YXNzZXMgb2YKICAgLy8gUGVlckNvbm5lY3Rpb25JbnRlcmZhY2UgaW1wbGVtZW50IGl0LgogICB2
aXJ0dWFsIGJvb2wgU2V0Q29uZmlndXJhdGlvbigKLSAgICAgIGNvbnN0IFBlZXJDb25uZWN0aW9u
SW50ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uJiBjb25maWcpIHsKKyAgICAgIGNvbnN0IFBlZXJD
b25uZWN0aW9uSW50ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uJikgewogICAgIHJldHVybiBmYWxz
ZTsKICAgfQogICAvLyBQcm92aWRlcyBhIHJlbW90ZSBjYW5kaWRhdGUgdG8gdGhlIElDRSBBZ2Vu
dC4KQEAgLTUwMSw3ICs1MDEsNyBAQCBjbGFzcyBQZWVyQ29ubmVjdGlvbkludGVyZmFjZSA6IHB1
YmxpYyBydGM6OlJlZkNvdW50SW50ZXJmYWNlIHsKIAogICAvLyBSZW1vdmVzIGEgZ3JvdXAgb2Yg
cmVtb3RlIGNhbmRpZGF0ZXMgZnJvbSB0aGUgSUNFIGFnZW50LgogICB2aXJ0dWFsIGJvb2wgUmVt
b3ZlSWNlQ2FuZGlkYXRlcygKLSAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGNyaWNrZXQ6OkNhbmRp
ZGF0ZT4mIGNhbmRpZGF0ZXMpIHsKKyAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGNyaWNrZXQ6OkNh
bmRpZGF0ZT4mKSB7CiAgICAgcmV0dXJuIGZhbHNlOwogICB9CiAKQEAgLTUxOCw4ICs1MTgsOCBA
QCBjbGFzcyBQZWVyQ29ubmVjdGlvbkludGVyZmFjZSA6IHB1YmxpYyBydGM6OlJlZkNvdW50SW50
ZXJmYWNlIHsKICAgLy8gYXV0b21hdGljYWxseSBhZnRlciAxMCBtaW51dGVzIGhhdmUgcGFzc2Vk
LCBvciB3aGVuIHRoZSBTdG9wUnRjRXZlbnRMb2cKICAgLy8gZnVuY3Rpb24gaXMgY2FsbGVkLgog
ICAvLyBUT0RPKGl2b2MpOiBNYWtlIHRoaXMgcHVyZSB2aXJ0dWFsIHdoZW4gQ2hyb21lIGlzIHVw
ZGF0ZWQuCi0gIHZpcnR1YWwgYm9vbCBTdGFydFJ0Y0V2ZW50TG9nKHJ0Yzo6UGxhdGZvcm1GaWxl
IGZpbGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDY0X3QgbWF4X3NpemVf
Ynl0ZXMpIHsKKyAgdmlydHVhbCBib29sIFN0YXJ0UnRjRXZlbnRMb2cocnRjOjpQbGF0Zm9ybUZp
bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDY0X3QgLyogbWF4X3NpemVf
Ynl0ZXMgKi8pIHsKICAgICByZXR1cm4gZmFsc2U7CiAgIH0KIApAQCAtNTUzLDIxICs1NTMsMjEg
QEAgY2xhc3MgUGVlckNvbm5lY3Rpb25PYnNlcnZlciB7CiAgIC8vIHBvaW50ZXIgdmVyc2lvbi4K
IAogICAvLyBUcmlnZ2VyZWQgd2hlbiBtZWRpYSBpcyByZWNlaXZlZCBvbiBhIG5ldyBzdHJlYW0g
ZnJvbSByZW1vdGUgcGVlci4KLSAgdmlydHVhbCB2b2lkIE9uQWRkU3RyZWFtKHJ0Yzo6c2NvcGVk
X3JlZnB0cjxNZWRpYVN0cmVhbUludGVyZmFjZT4gc3RyZWFtKSB7fQorICB2aXJ0dWFsIHZvaWQg
T25BZGRTdHJlYW0ocnRjOjpzY29wZWRfcmVmcHRyPE1lZGlhU3RyZWFtSW50ZXJmYWNlPikge30K
ICAgLy8gRGVwcmVjYXRlZDsgcGxlYXNlIHVzZSB0aGUgdmVyc2lvbiB0aGF0IHVzZXMgYSBzY29w
ZWRfcmVmcHRyLgotICB2aXJ0dWFsIHZvaWQgT25BZGRTdHJlYW0oTWVkaWFTdHJlYW1JbnRlcmZh
Y2UqIHN0cmVhbSkge30KKyAgdmlydHVhbCB2b2lkIE9uQWRkU3RyZWFtKE1lZGlhU3RyZWFtSW50
ZXJmYWNlKikge30KIAogICAvLyBUcmlnZ2VyZWQgd2hlbiBhIHJlbW90ZSBwZWVyIGNsb3NlIGEg
c3RyZWFtLgotICB2aXJ0dWFsIHZvaWQgT25SZW1vdmVTdHJlYW0ocnRjOjpzY29wZWRfcmVmcHRy
PE1lZGlhU3RyZWFtSW50ZXJmYWNlPiBzdHJlYW0pIHsKKyAgdmlydHVhbCB2b2lkIE9uUmVtb3Zl
U3RyZWFtKHJ0Yzo6c2NvcGVkX3JlZnB0cjxNZWRpYVN0cmVhbUludGVyZmFjZT4pIHsKICAgfQog
ICAvLyBEZXByZWNhdGVkOyBwbGVhc2UgdXNlIHRoZSB2ZXJzaW9uIHRoYXQgdXNlcyBhIHNjb3Bl
ZF9yZWZwdHIuCi0gIHZpcnR1YWwgdm9pZCBPblJlbW92ZVN0cmVhbShNZWRpYVN0cmVhbUludGVy
ZmFjZSogc3RyZWFtKSB7fQorICB2aXJ0dWFsIHZvaWQgT25SZW1vdmVTdHJlYW0oTWVkaWFTdHJl
YW1JbnRlcmZhY2UqKSB7fQogCiAgIC8vIFRyaWdnZXJlZCB3aGVuIGEgcmVtb3RlIHBlZXIgb3Bl
bnMgYSBkYXRhIGNoYW5uZWwuCiAgIHZpcnR1YWwgdm9pZCBPbkRhdGFDaGFubmVsKAotICAgICAg
cnRjOjpzY29wZWRfcmVmcHRyPERhdGFDaGFubmVsSW50ZXJmYWNlPiBkYXRhX2NoYW5uZWwpe307
CisgICAgICBydGM6OnNjb3BlZF9yZWZwdHI8RGF0YUNoYW5uZWxJbnRlcmZhY2U+KXt9OwogICAv
LyBEZXByZWNhdGVkOyBwbGVhc2UgdXNlIHRoZSB2ZXJzaW9uIHRoYXQgdXNlcyBhIHNjb3BlZF9y
ZWZwdHIuCi0gIHZpcnR1YWwgdm9pZCBPbkRhdGFDaGFubmVsKERhdGFDaGFubmVsSW50ZXJmYWNl
KiBkYXRhX2NoYW5uZWwpIHt9CisgIHZpcnR1YWwgdm9pZCBPbkRhdGFDaGFubmVsKERhdGFDaGFu
bmVsSW50ZXJmYWNlKikge30KIAogICAvLyBUcmlnZ2VyZWQgd2hlbiByZW5lZ290aWF0aW9uIGlz
IG5lZWRlZC4gRm9yIGV4YW1wbGUsIGFuIElDRSByZXN0YXJ0CiAgIC8vIGhhcyBiZWd1bi4KQEAg
LTU4OCwxMCArNTg4LDEwIEBAIGNsYXNzIFBlZXJDb25uZWN0aW9uT2JzZXJ2ZXIgewogICAvLyBU
T0RPKGhvbmdoYWl6KTogTWFrZSB0aGlzIGEgcHVyZSB2aXJ0dWFsIG1ldGhvZCB3aGVuIGFsbCBp
dHMgc3ViY2xhc3NlcwogICAvLyBpbXBsZW1lbnQgaXQuCiAgIHZpcnR1YWwgdm9pZCBPbkljZUNh
bmRpZGF0ZXNSZW1vdmVkKAotICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8Y3JpY2tldDo6Q2FuZGlk
YXRlPiYgY2FuZGlkYXRlcykge30KKyAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGNyaWNrZXQ6OkNh
bmRpZGF0ZT4mKSB7fQogCiAgIC8vIENhbGxlZCB3aGVuIHRoZSBJQ0UgY29ubmVjdGlvbiByZWNl
aXZpbmcgc3RhdHVzIGNoYW5nZXMuCi0gIHZpcnR1YWwgdm9pZCBPbkljZUNvbm5lY3Rpb25SZWNl
aXZpbmdDaGFuZ2UoYm9vbCByZWNlaXZpbmcpIHt9CisgIHZpcnR1YWwgdm9pZCBPbkljZUNvbm5l
Y3Rpb25SZWNlaXZpbmdDaGFuZ2UoYm9vbCAvKiByZWNlaXZpbmcgKi8pIHt9CiAKICBwcm90ZWN0
ZWQ6CiAgIC8vIER0b3IgcHJvdGVjdGVkIGFzIG9iamVjdHMgc2hvdWxkbid0IGJlIGRlbGV0ZWQg
dmlhIHRoaXMgaW50ZXJmYWNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvYmFzZS9tZXNzYWdlaGFuZGxlci5oIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYmFzZS9tZXNzYWdlaGFuZGxlci5oCmluZGV4IDM1
MTE0YzFlNWFjMWJkNTVjMTMwMGFjOTgzNDU2NjU1MDdiM2JkYjUuLjc5NWQwNGViNWNjNDA4ZDk0
YWIwOTRkMTRlZmU4OGY0NzE2YjU3MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2Jhc2UvbWVzc2FnZWhhbmRsZXIuaAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9iYXNlL21lc3NhZ2VoYW5kbGVyLmgK
QEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgRnVuY3Rvck1lc3NhZ2VIYW5kbGVyIDogcHVibGljIE1l
c3NhZ2VIYW5kbGVyIHsKICBwdWJsaWM6CiAgIGV4cGxpY2l0IEZ1bmN0b3JNZXNzYWdlSGFuZGxl
cihjb25zdCBGdW5jdG9yVCYgZnVuY3RvcikKICAgICAgIDogZnVuY3Rvcl8oZnVuY3Rvcikge30K
LSAgdmlydHVhbCB2b2lkIE9uTWVzc2FnZShNZXNzYWdlKiBtc2cpIHsKKyAgdmlydHVhbCB2b2lk
IE9uTWVzc2FnZShNZXNzYWdlKikgewogICAgIHJlc3VsdF8gPSBmdW5jdG9yXygpOwogICB9CiAg
IGNvbnN0IFJldHVyblQmIHJlc3VsdCgpIGNvbnN0IHsgcmV0dXJuIHJlc3VsdF87IH0KQEAgLTU2
LDcgKzU2LDcgQEAgY2xhc3MgRnVuY3Rvck1lc3NhZ2VIYW5kbGVyPGNsYXNzIHN0ZDo6dW5pcXVl
X3B0cjxSZXR1cm5UPiwgRnVuY3RvclQ+CiAgICAgOiBwdWJsaWMgTWVzc2FnZUhhbmRsZXIgewog
IHB1YmxpYzoKICAgZXhwbGljaXQgRnVuY3Rvck1lc3NhZ2VIYW5kbGVyKGNvbnN0IEZ1bmN0b3JU
JiBmdW5jdG9yKSA6IGZ1bmN0b3JfKGZ1bmN0b3IpIHt9Ci0gIHZpcnR1YWwgdm9pZCBPbk1lc3Nh
Z2UoTWVzc2FnZSogbXNnKSB7IHJlc3VsdF8gPSBzdGQ6Om1vdmUoZnVuY3Rvcl8oKSk7IH0KKyAg
dmlydHVhbCB2b2lkIE9uTWVzc2FnZShNZXNzYWdlKikgeyByZXN1bHRfID0gc3RkOjptb3ZlKGZ1
bmN0b3JfKCkpOyB9CiAgIHN0ZDo6dW5pcXVlX3B0cjxSZXR1cm5UPiByZXN1bHQoKSB7IHJldHVy
biBzdGQ6Om1vdmUocmVzdWx0Xyk7IH0KIAogIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9iYXNlL3Nhbml0aXplci5oIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYmFzZS9zYW5pdGl6ZXIuaApp
bmRleCBlMjdhNjkyMTY0YWQxYjliODU3MGFkNTcyZTA1NTk5ZjcyNDFlNjI0Li4wMDRiNDQ5Nzg2
YjgxNTFiYTAxZjU3MmY4ZWE1Zjc1ZjVjZjhmM2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9iYXNlL3Nhbml0aXplci5oCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2Jhc2Uvc2FuaXRpemVyLmgKQEAg
LTQyLDYgKzQyLDEyIEBACiAjZGVmaW5lIFJUQ19OT19TQU5JVElaRSh3aGF0KQogI2VuZGlmCiAK
KyNpZiAhUlRDX0hBU19BU0FOCisjZGVmaW5lIFNBTklUSVpFUl9VTlVTRUQzKHgsIHksIHopICAo
dm9pZCkmKHgpOyBcCisgICh2b2lkKSYoeSk7IFwKKyAgKHZvaWQpJih6KQorI2VuZGlmCisKIC8v
IEFzayBBU2FuIHRvIG1hcmsgdGhlIG1lbW9yeSByYW5nZSBbcHRyLCBwdHIgKyBlbGVtZW50X3Np
emUgKiBudW1fZWxlbWVudHMpCiAvLyBhcyBiZWluZyB1bmFkZHJlc3NhYmxlLCBzbyB0aGF0IHJl
YWRzIGFuZCB3cml0ZXMgYXJlIG5vdCBhbGxvd2VkLiBBU2FuIG1heQogLy8gbmFycm93IHRoZSBy
YW5nZSB0byB0aGUgbmVhcmVzdCBhbGlnbm1lbnQgYm91bmRhcmllcy4KQEAgLTUwLDYgKzU2LDgg
QEAgc3RhdGljIGlubGluZSB2b2lkIHJ0Y19Bc2FuUG9pc29uKGNvbnN0IHZvbGF0aWxlIHZvaWQq
IHB0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbnVtX2VsZW1l
bnRzKSB7CiAjaWYgUlRDX0hBU19BU0FOCiAgIEFTQU5fUE9JU09OX01FTU9SWV9SRUdJT04ocHRy
LCBlbGVtZW50X3NpemUgKiBudW1fZWxlbWVudHMpOworI2Vsc2UKKyAgU0FOSVRJWkVSX1VOVVNF
RDMocHRyLCBlbGVtZW50X3NpemUsIG51bV9lbGVtZW50cyk7CiAjZW5kaWYKIH0KIApAQCAtNjEs
NiArNjksOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcnRjX0FzYW5VbnBvaXNvbihjb25zdCB2b2xh
dGlsZSB2b2lkKiBwdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl
X3QgbnVtX2VsZW1lbnRzKSB7CiAjaWYgUlRDX0hBU19BU0FOCiAgIEFTQU5fVU5QT0lTT05fTUVN
T1JZX1JFR0lPTihwdHIsIGVsZW1lbnRfc2l6ZSAqIG51bV9lbGVtZW50cyk7CisjZWxzZQorICBT
QU5JVElaRVJfVU5VU0VEMyhwdHIsIGVsZW1lbnRfc2l6ZSwgbnVtX2VsZW1lbnRzKTsKICNlbmRp
ZgogfQogCkBAIC03MSw2ICs4MSw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBydGNfTXNhbk1hcmtV
bmluaXRpYWxpemVkKGNvbnN0IHZvbGF0aWxlIHZvaWQqIHB0ciwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBudW1fZWxlbWVudHMpIHsKICNpZiBS
VENfSEFTX01TQU4KICAgX19tc2FuX3BvaXNvbihwdHIsIGVsZW1lbnRfc2l6ZSAqIG51bV9lbGVt
ZW50cyk7CisjZWxzZQorICBTQU5JVElaRVJfVU5VU0VEMyhwdHIsIGVsZW1lbnRfc2l6ZSwgbnVt
X2VsZW1lbnRzKTsKICNlbmRpZgogfQogCkBAIC04Miw2ICs5NCw4IEBAIHN0YXRpYyBpbmxpbmUg
dm9pZCBydGNfTXNhbkNoZWNrSW5pdGlhbGl6ZWQoY29uc3Qgdm9sYXRpbGUgdm9pZCogcHRyLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbnVtX2Vs
ZW1lbnRzKSB7CiAjaWYgUlRDX0hBU19NU0FOCiAgIF9fbXNhbl9jaGVja19tZW1faXNfaW5pdGlh
bGl6ZWQocHRyLCBlbGVtZW50X3NpemUgKiBudW1fZWxlbWVudHMpOworI2Vsc2UKKyAgU0FOSVRJ
WkVSX1VOVVNFRDMocHRyLCBlbGVtZW50X3NpemUsIG51bV9lbGVtZW50cyk7CiAjZW5kaWYKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
YmFzZS9zdHJlYW0uaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L2Jhc2Uvc3RyZWFtLmgKaW5kZXggYmM5NDkwNjVjOGZlNWJhZmViNzQwZmY1MWU4NjIxNjJlZTQy
ODU2Ny4uM2FjZDgzMDVmYzM3YTg0YmQ5YTQyNzMxYzE1YjdiNjQ5ZWE0N2IyNiAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYmFzZS9zdHJlYW0u
aAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9iYXNlL3N0
cmVhbS5oCkBAIC0xMzIsNyArMTMyLDcgQEAgY2xhc3MgU3RyZWFtSW50ZXJmYWNlIDogcHVibGlj
IE1lc3NhZ2VIYW5kbGVyIHsKICAgLy8gcHJvY2Vzc2VkLiAgUmVhZCBhbmQgQ29uc3VtZVJlYWRE
YXRhIGludmFsaWRhdGUgdGhlIGJ1ZmZlciByZXR1cm5lZCBieQogICAvLyBHZXRSZWFkRGF0YS4K
ICAgdmlydHVhbCBjb25zdCB2b2lkKiBHZXRSZWFkRGF0YShzaXplX3QqIGRhdGFfbGVuKTsKLSAg
dmlydHVhbCB2b2lkIENvbnN1bWVSZWFkRGF0YShzaXplX3QgdXNlZCkge30KKyAgdmlydHVhbCB2
b2lkIENvbnN1bWVSZWFkRGF0YShzaXplX3QpIHt9CiAKICAgLy8gR2V0V3JpdGVCdWZmZXIgcmV0
dXJucyBhIHBvaW50ZXIgdG8gYSBidWZmZXIgd2hpY2ggaXMgb3duZWQgYnkgdGhlIHN0cmVhbS4K
ICAgLy8gVGhlIGJ1ZmZlciBoYXMgYSBjYXBhY2l0eSBvZiBidWZfbGVuIGJ5dGVzLiAgTlVMTCBp
cyByZXR1cm5lZCBpZiB0aGVyZSBpcwpAQCAtMTQ2LDcgKzE0Niw3IEBAIGNsYXNzIFN0cmVhbUlu
dGVyZmFjZSA6IHB1YmxpYyBNZXNzYWdlSGFuZGxlciB7CiAgIC8vIHdoZW4gaXQgaXMgYXZhaWxh
YmxlLiAgSWYgdGhlIHJlcXVlc3RlZCBhbW91bnQgaXMgdG9vIGxhcmdlLCByZXR1cm4gYW4KICAg
Ly8gZXJyb3IuCiAgIHZpcnR1YWwgdm9pZCogR2V0V3JpdGVCdWZmZXIoc2l6ZV90KiBidWZfbGVu
KTsKLSAgdmlydHVhbCB2b2lkIENvbnN1bWVXcml0ZUJ1ZmZlcihzaXplX3QgdXNlZCkge30KKyAg
dmlydHVhbCB2b2lkIENvbnN1bWVXcml0ZUJ1ZmZlcihzaXplX3QpIHt9CiAKICAgLy8gV3JpdGUg
ZGF0YV9sZW4gYnl0ZXMgZm91bmQgaW4gZGF0YSwgY2lyY3VtdmVudGluZyBhbnkgdGhyb3R0bGlu
ZyB3aGljaAogICAvLyB3b3VsZCBjb3VsZCBjYXVzZSBTUl9CTE9DSyB0byBiZSByZXR1cm5lZC4g
IFJldHVybnMgdHJ1ZSBpZiBhbGwgdGhlIGRhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVkaWFjaGFubmVsLmggYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tZWRpYS9iYXNlL21lZGlh
Y2hhbm5lbC5oCmluZGV4IDgwYjlkNGQ0NGMyM2ZiMWZkZDBjOWE3ZDU4ZWMzZmU0NDAxZDk0MzYu
LmYzYWYyZGFhMzFmZWQ4MzZhNmFiYmNlYWJhYmFkMjMzODkzMjY4ZGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVkaWFj
aGFubmVsLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
bWVkaWEvYmFzZS9tZWRpYWNoYW5uZWwuaApAQCAtMTE1OSwxMyArMTE1OSwxMyBAQCBjbGFzcyBE
YXRhTWVkaWFDaGFubmVsIDogcHVibGljIE1lZGlhQ2hhbm5lbCB7CiAgIHZpcnR1YWwgYm9vbCBT
ZXRSZWN2UGFyYW1ldGVycyhjb25zdCBEYXRhUmVjdlBhcmFtZXRlcnMmIHBhcmFtcykgPSAwOwog
CiAgIC8vIFRPRE8ocHRoYXRjaGVyKTogSW1wbGVtZW50IHRoaXMuCi0gIHZpcnR1YWwgYm9vbCBH
ZXRTdGF0cyhEYXRhTWVkaWFJbmZvKiBpbmZvKSB7IHJldHVybiB0cnVlOyB9CisgIHZpcnR1YWwg
Ym9vbCBHZXRTdGF0cyhEYXRhTWVkaWFJbmZvKikgeyByZXR1cm4gdHJ1ZTsgfQogCiAgIHZpcnR1
YWwgYm9vbCBTZXRTZW5kKGJvb2wgc2VuZCkgPSAwOwogICB2aXJ0dWFsIGJvb2wgU2V0UmVjZWl2
ZShib29sIHJlY2VpdmUpID0gMDsKIAotICB2aXJ0dWFsIHZvaWQgT25OZXR3b3JrUm91dGVDaGFu
Z2VkKGNvbnN0IHN0ZDo6c3RyaW5nJiB0cmFuc3BvcnRfbmFtZSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBydGM6Ok5ldHdvcmtSb3V0ZSYgbmV0d29ya19yb3V0
ZSkge30KKyAgdmlydHVhbCB2b2lkIE9uTmV0d29ya1JvdXRlQ2hhbmdlZChjb25zdCBzdGQ6OnN0
cmluZyYgLyogdHJhbnNwb3J0X25hbWUgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgcnRjOjpOZXR3b3JrUm91dGUmKSB7fQogCiAgIHZpcnR1YWwgYm9vbCBT
ZW5kRGF0YSgKICAgICAgIGNvbnN0IFNlbmREYXRhUGFyYW1zJiBwYXJhbXMsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tZWRpYS9lbmdpbmUv
d2VicnRjdmlkZW9kZWNvZGVyZmFjdG9yeS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvbWVkaWEvZW5naW5lL3dlYnJ0Y3ZpZGVvZGVjb2RlcmZhY3RvcnkuaApp
bmRleCA3ZjA5MjFmZDEyYjA0MTY1ZGIzM2NlNjY5ZTE4MDgyNDBhZDZkNjU0Li40ODIyNzRlMmI4
OWIyM2IxNWQ5MmMzY2Q3ODdhNWMwZDhlNTRhYjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tZWRpYS9lbmdpbmUvd2VicnRjdmlkZW9kZWNv
ZGVyZmFjdG9yeS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL21lZGlhL2VuZ2luZS93ZWJydGN2aWRlb2RlY29kZXJmYWN0b3J5LmgKQEAgLTMyLDcgKzMy
LDcgQEAgY2xhc3MgV2ViUnRjVmlkZW9EZWNvZGVyRmFjdG9yeSB7CiAgICAgICB3ZWJydGM6OlZp
ZGVvQ29kZWNUeXBlIHR5cGUpID0gMDsKICAgdmlydHVhbCB3ZWJydGM6OlZpZGVvRGVjb2Rlciog
Q3JlYXRlVmlkZW9EZWNvZGVyV2l0aFBhcmFtcygKICAgICAgIHdlYnJ0Yzo6VmlkZW9Db2RlY1R5
cGUgdHlwZSwKLSAgICAgIFZpZGVvRGVjb2RlclBhcmFtcyBwYXJhbXMpIHsKKyAgICAgIFZpZGVv
RGVjb2RlclBhcmFtcykgewogICAgIHJldHVybiBDcmVhdGVWaWRlb0RlY29kZXIodHlwZSk7CiAg
IH0KICAgdmlydHVhbCB+V2ViUnRjVmlkZW9EZWNvZGVyRmFjdG9yeSgpIHt9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tZWRpYS9lbmdpbmUv
d2VicnRjdmlkZW9lbmNvZGVyZmFjdG9yeS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvbWVkaWEvZW5naW5lL3dlYnJ0Y3ZpZGVvZW5jb2RlcmZhY3RvcnkuaApp
bmRleCAzNWU0MDkyMDI4MDM2MGYxY2Y5NDliNGFkMmFlNTgxNGM3MzIzMjUzLi5jOTVjNmY3Yjc1
MTJhZWIyY2EzMjM3NGQwOGQ4NTk0NmQ1N2M2N2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tZWRpYS9lbmdpbmUvd2VicnRjdmlkZW9lbmNv
ZGVyZmFjdG9yeS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL21lZGlhL2VuZ2luZS93ZWJydGN2aWRlb2VuY29kZXJmYWN0b3J5LmgKQEAgLTM2LDkgKzM2
LDkgQEAgY2xhc3MgV2ViUnRjVmlkZW9FbmNvZGVyRmFjdG9yeSB7CiAKICAgICBWaWRlb0NvZGVj
KHdlYnJ0Yzo6VmlkZW9Db2RlY1R5cGUgdCwKICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3Ry
aW5nJiBubSwKLSAgICAgICAgICAgICAgIGludCB3LAotICAgICAgICAgICAgICAgaW50IGgsCi0g
ICAgICAgICAgICAgICBpbnQgZnIpCisgICAgICAgICAgICAgICBpbnQgLyogdyAqLywKKyAgICAg
ICAgICAgICAgIGludCAvKiBoICovLAorICAgICAgICAgICAgICAgaW50IC8qIGZyICovKQogICAg
ICAgICA6IHR5cGUodCksIG5hbWUobm0pIHt9CiAgIH07CiAKQEAgLTcwLDcgKzcwLDcgQEAgY2xh
c3MgV2ViUnRjVmlkZW9FbmNvZGVyRmFjdG9yeSB7CiAgIC8vIGZyYW1lcyB0byBiZSBkZWxpdmVy
ZWQgdmlhIHdlYnJ0Yzo6VmlkZW9FbmNvZGVyOjpFbmNvZGUuIFRoaXMgZmxhZyBpcyB1c2VkCiAg
IC8vIGFzIHRoZSBpbnRlcm5hbF9zb3VyY2UgcGFyYW1ldGVyIHRvCiAgIC8vIHdlYnJ0Yzo6VmlF
RXh0ZXJuYWxDb2RlYzo6UmVnaXN0ZXJFeHRlcm5hbFNlbmRDb2RlYy4KLSAgdmlydHVhbCBib29s
IEVuY29kZXJUeXBlSGFzSW50ZXJuYWxTb3VyY2Uod2VicnRjOjpWaWRlb0NvZGVjVHlwZSB0eXBl
KSBjb25zdCB7CisgIHZpcnR1YWwgYm9vbCBFbmNvZGVyVHlwZUhhc0ludGVybmFsU291cmNlKHdl
YnJ0Yzo6VmlkZW9Db2RlY1R5cGUpIGNvbnN0IHsKICAgICByZXR1cm4gZmFsc2U7CiAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9k
dWxlcy9pbmNsdWRlL21vZHVsZS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvbW9kdWxlcy9pbmNsdWRlL21vZHVsZS5oCmluZGV4IDQzMmVkNDA5ZWUwMTBlMjYy
MTU5MWY2MzYyZDY1MTUxNWZmNmI3NmUuLjIxNDFmOTc2NzdmZTIwMjliNjFmYmE1Y2QwNmFjYTYx
MDUxMTQxMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL21vZHVsZXMvaW5jbHVkZS9tb2R1bGUuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL2luY2x1ZGUvbW9kdWxlLmgKQEAgLTUzLDcg
KzUzLDcgQEAgY2xhc3MgTW9kdWxlIHsKICAgLy8KICAgLy8gTk9URTogVGhpcyBtZXRob2QgaXMg
bm90IGNhbGxlZCBmcm9tIHRoZSB3b3JrZXIgdGhyZWFkIGl0c2VsZiwgYnV0IGZyb20KICAgLy8g
ICAgICAgdGhlIHRocmVhZCB0aGF0IHJlZ2lzdGVycy9kZXJlZ2lzdGVycyB0aGUgbW9kdWxlIG9y
IGNhbGxzIFN0YXJ0L1N0b3AuCi0gIHZpcnR1YWwgdm9pZCBQcm9jZXNzVGhyZWFkQXR0YWNoZWQo
UHJvY2Vzc1RocmVhZCogcHJvY2Vzc190aHJlYWQpIHt9CisgIHZpcnR1YWwgdm9pZCBQcm9jZXNz
VGhyZWFkQXR0YWNoZWQoUHJvY2Vzc1RocmVhZCopIHt9CiAKICBwcm90ZWN0ZWQ6CiAgIHZpcnR1
YWwgfk1vZHVsZSgpIHt9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9wMnAvYmFzZS9wb3J0LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9wMnAvYmFzZS9wb3J0LmgKaW5kZXggM2M4NGExNGVmZDg2MjcyODIw
ODFiZGI1YWM4MmE0NDkyYTM1NjhhNS4uZGVmOWY1ZDI3ZTgwMmJmZjZhN2EyYWQ4ODg0ZmM2OTU1
ZTAxMjkzNCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvcDJwL2Jhc2UvcG9ydC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3AycC9iYXNlL3BvcnQuaApAQCAtMjQxLDkgKzI0MSw5IEBAIGNsYXNzIFBv
cnQgOiBwdWJsaWMgUG9ydEludGVyZmFjZSwgcHVibGljIHJ0Yzo6TWVzc2FnZUhhbmRsZXIsCiAg
IC8vIHBvcnQgaW1wbGVtZW50ZWQgdGhpcyBtZXRob2QuCiAgIC8vIFRPRE8obWFsbGluYXRoKSAt
IE1ha2UgaXQgcHVyZSB2aXJ0dWFsLgogICB2aXJ0dWFsIGJvb2wgSGFuZGxlSW5jb21pbmdQYWNr
ZXQoCi0gICAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBzb2NrZXQsIGNvbnN0IGNoYXIqIGRh
dGEsIHNpemVfdCBzaXplLAotICAgICAgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVf
YWRkciwKLSAgICAgIGNvbnN0IHJ0Yzo6UGFja2V0VGltZSYgcGFja2V0X3RpbWUpIHsKKyAgICAg
IHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqLCBjb25zdCBjaGFyKiwgc2l6ZV90LAorICAgICAgY29u
c3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwKKyAgICAgIGNvbnN0IHJ0Yzo6UGFja2V0VGltZSYpIHsK
ICAgICBBU1NFUlQoZmFsc2UpOwogICAgIHJldHVybiBmYWxzZTsKICAgfQpAQCAtMzYwLDcgKzM2
MCw3IEBAIGNsYXNzIFBvcnQgOiBwdWJsaWMgUG9ydEludGVyZmFjZSwgcHVibGljIHJ0Yzo6TWVz
c2FnZUhhbmRsZXIsCiAgIH0KIAogICAvLyBFeHRyYSB3b3JrIHRvIGJlIGRvbmUgaW4gc3ViY2xh
c3NlcyB3aGVuIGEgY29ubmVjdGlvbiBpcyBkZXN0cm95ZWQuCi0gIHZpcnR1YWwgdm9pZCBIYW5k
bGVDb25uZWN0aW9uRGVzdHJveWVkKENvbm5lY3Rpb24qIGNvbm4pIHt9CisgIHZpcnR1YWwgdm9p
ZCBIYW5kbGVDb25uZWN0aW9uRGVzdHJveWVkKENvbm5lY3Rpb24qKSB7fQogCiAgcHJpdmF0ZToK
ICAgdm9pZCBDb25zdHJ1Y3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3AycC9iYXNlL3N0dW4uaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3AycC9iYXNlL3N0dW4uaAppbmRleCAxNTNmNjNkYzU4NjY1
ZWYzYTkzMjJjN2MyZmIyOTJmMGIzZThiMTdiLi41NTMzYjMxYWZkYTk1NzA3ZDczYzViYTAyNDMw
MTg0OTIwMzJiYjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9wMnAvYmFzZS9zdHVuLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvcDJwL2Jhc2Uvc3R1bi5oCkBAIC0yMTcsNyArMjE3LDcgQEAgY2xh
c3MgU3R1bkF0dHJpYnV0ZSB7CiAgIHZpcnR1YWwgU3R1bkF0dHJpYnV0ZVZhbHVlVHlwZSB2YWx1
ZV90eXBlKCkgY29uc3QgPSAwOwogCiAgIC8vIE9ubHkgWG9yQWRkcmVzc0F0dHJpYnV0ZSBuZWVk
cyB0aGlzIHNvIGZhci4KLSAgdmlydHVhbCB2b2lkIFNldE93bmVyKFN0dW5NZXNzYWdlKiBvd25l
cikge30KKyAgdmlydHVhbCB2b2lkIFNldE93bmVyKFN0dW5NZXNzYWdlKikge30KIAogICAvLyBS
ZWFkcyB0aGUgYm9keSAobm90IHRoZSB0eXBlIG9yIGxlbmd0aCkgZm9yIHRoaXMgdHlwZSBvZiBh
dHRyaWJ1dGUgZnJvbQogICAvLyB0aGUgZ2l2ZW4gYnVmZmVyLiAgUmV0dXJuIHZhbHVlIGlzIHRy
dWUgaWYgc3VjY2Vzc2Z1bC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3AycC9iYXNlL3N0dW5yZXF1ZXN0LmggYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9wMnAvYmFzZS9zdHVucmVxdWVzdC5oCmluZGV4IGY2
ZDIxNmQxZjcxNGVjYTc4MGY4ZDliMzU3NGY2MTY1MDliYmM0ODIuLmVkODYwYThmYmVkZTg5MTFm
NThmYjZhYjM0ODA4NzRkOWI2OTNkYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3AycC9iYXNlL3N0dW5yZXF1ZXN0LmgKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvcDJwL2Jhc2Uvc3R1bnJlcXVlc3Qu
aApAQCAtMTEwLDExICsxMTAsMTEgQEAgY2xhc3MgU3R1blJlcXVlc3QgOiBwdWJsaWMgcnRjOjpN
ZXNzYWdlSGFuZGxlciB7CiAKICAgLy8gRmlsbHMgaW4gYSByZXF1ZXN0IG9iamVjdCB0byBiZSBz
ZW50LiAgTm90ZSB0aGF0IHJlcXVlc3QncyB0cmFuc2FjdGlvbiBJRAogICAvLyB3aWxsIGFscmVh
ZHkgYmUgc2V0IGFuZCBjYW5ub3QgYmUgY2hhbmdlZC4KLSAgdmlydHVhbCB2b2lkIFByZXBhcmUo
U3R1bk1lc3NhZ2UqIHJlcXVlc3QpIHt9CisgIHZpcnR1YWwgdm9pZCBQcmVwYXJlKFN0dW5NZXNz
YWdlKikge30KIAogICAvLyBDYWxsZWQgd2hlbiB0aGUgbWVzc2FnZSByZWNlaXZlcyBhIHJlc3Bv
bnNlIG9yIHRpbWVzIG91dC4KLSAgdmlydHVhbCB2b2lkIE9uUmVzcG9uc2UoU3R1bk1lc3NhZ2Uq
IHJlc3BvbnNlKSB7fQotICB2aXJ0dWFsIHZvaWQgT25FcnJvclJlc3BvbnNlKFN0dW5NZXNzYWdl
KiByZXNwb25zZSkge30KKyAgdmlydHVhbCB2b2lkIE9uUmVzcG9uc2UoU3R1bk1lc3NhZ2UqKSB7
fQorICB2aXJ0dWFsIHZvaWQgT25FcnJvclJlc3BvbnNlKFN0dW5NZXNzYWdlKikge30KICAgdmly
dHVhbCB2b2lkIE9uVGltZW91dCgpIHt9CiAgIC8vIENhbGxlZCB3aGVuIHRoZSBtZXNzYWdlIGlz
IHNlbnQuCiAgIHZpcnR1YWwgdm9pZCBPblNlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3AycC9iYXNlL3RyYW5zcG9ydC5oIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvcDJwL2Jhc2UvdHJhbnNwb3J0
LmgKaW5kZXggYWRlZjY1MzNlYTliNDFjNjM1Y2IyZWMzMjdjMDM5ZjFkNDNmNDQzMS4uY2QxNTZm
OWMxMTM2ODVhMThiYzVkZDk3N2YwOGNmZWRlOTg1MzZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvcDJwL2Jhc2UvdHJhbnNwb3J0LmgKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvcDJwL2Jhc2UvdHJh
bnNwb3J0LmgKQEAgLTI2NywxMSArMjY3LDExIEBAIGNsYXNzIFRyYW5zcG9ydCA6IHB1YmxpYyBz
aWdzbG90OjpoYXNfc2xvdHM8PiB7CiAKICAgLy8gTXVzdCBiZSBjYWxsZWQgYmVmb3JlIGFwcGx5
aW5nIGxvY2FsIHNlc3Npb24gZGVzY3JpcHRpb24uCiAgIHZpcnR1YWwgdm9pZCBTZXRMb2NhbENl
cnRpZmljYXRlKAotICAgICAgY29uc3QgcnRjOjpzY29wZWRfcmVmcHRyPHJ0Yzo6UlRDQ2VydGlm
aWNhdGU+JiBjZXJ0aWZpY2F0ZSkge30KKyAgICAgIGNvbnN0IHJ0Yzo6c2NvcGVkX3JlZnB0cjxy
dGM6OlJUQ0NlcnRpZmljYXRlPiYpIHt9CiAKICAgLy8gR2V0IGEgY29weSBvZiB0aGUgbG9jYWwg
Y2VydGlmaWNhdGUgcHJvdmlkZWQgYnkgU2V0TG9jYWxDZXJ0aWZpY2F0ZS4KICAgdmlydHVhbCBi
b29sIEdldExvY2FsQ2VydGlmaWNhdGUoCi0gICAgICBydGM6OnNjb3BlZF9yZWZwdHI8cnRjOjpS
VENDZXJ0aWZpY2F0ZT4qIGNlcnRpZmljYXRlKSB7CisgICAgICBydGM6OnNjb3BlZF9yZWZwdHI8
cnRjOjpSVENDZXJ0aWZpY2F0ZT4qKSB7CiAgICAgcmV0dXJuIGZhbHNlOwogICB9CiAKQEAgLTMy
MCwxMCArMzIwLDEwIEBAIGNsYXNzIFRyYW5zcG9ydCA6IHB1YmxpYyBzaWdzbG90OjpoYXNfc2xv
dHM8PiB7CiAgIGJvb2wgUmVtb3ZlUmVtb3RlQ2FuZGlkYXRlcyhjb25zdCBzdGQ6OnZlY3RvcjxD
YW5kaWRhdGU+JiBjYW5kaWRhdGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rk
OjpzdHJpbmcqIGVycm9yKTsKIAotICB2aXJ0dWFsIGJvb2wgR2V0U3NsUm9sZShydGM6OlNTTFJv
bGUqIHNzbF9yb2xlKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICB2aXJ0dWFsIGJvb2wgR2V0
U3NsUm9sZShydGM6OlNTTFJvbGUqKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgIC8vIE11
c3QgYmUgY2FsbGVkIGJlZm9yZSBjaGFubmVsIGlzIHN0YXJ0aW5nIHRvIGNvbm5lY3QuCi0gIHZp
cnR1YWwgYm9vbCBTZXRTc2xNYXhQcm90b2NvbFZlcnNpb24ocnRjOjpTU0xQcm90b2NvbFZlcnNp
b24gdmVyc2lvbikgeworICB2aXJ0dWFsIGJvb2wgU2V0U3NsTWF4UHJvdG9jb2xWZXJzaW9uKHJ0
Yzo6U1NMUHJvdG9jb2xWZXJzaW9uKSB7CiAgICAgcmV0dXJuIGZhbHNlOwogICB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>