<?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>55719</bug_id>
          
          <creation_ts>2011-03-03 15:27:54 -0800</creation_ts>
          <short_desc>[Qt][WK2] Make Qt port compiling with ENABLE_PLUGIN_PROCESS=1</short_desc>
          <delta_ts>2011-04-14 15:17:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Plug-ins</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>55658</dependson>
          <blocked>55659</blocked>
    
    <blocked>57617</blocked>
    
    <blocked>58223</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Oleg Romashin (:romaxa)">romaxa</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>hausmann</cc>
    
    <cc>jade.han</cc>
    
    <cc>kbalazs</cc>
    
    <cc>kenneth</cc>
    
    <cc>kling</cc>
    
    <cc>ossy</cc>
    
    <cc>vestbo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>362006</commentid>
    <comment_count>0</comment_count>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-03 15:27:54 -0800</bug_when>
    <thetext>It is a bit problematic to compile Qt port now with PLUGIN_PROCESS enabled, bunch of file contain not properly ifdefed CoreIPC::MachPort, .pro files don&apos;t compile some certain files et.c.
Some parts need dummy implementation with notImplemented() function in &quot;qt&quot; folders</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362007</commentid>
    <comment_count>1</comment_count>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-03 15:28:40 -0800</bug_when>
    <thetext>Bug 55658 - is needed to ifdef MachPort related functionality in *.messages.in files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362324</commentid>
    <comment_count>2</comment_count>
      <attachid>84703</attachid>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-04 00:24:31 -0800</bug_when>
    <thetext>Created attachment 84703
Works fine with latest webkit, need to check other platforms WIP1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362325</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-04 00:27:50 -0800</bug_when>
    <thetext>Attachment 84703 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit.pri&apos;, u&apos;Source/WebKit2/Deriv...&quot; exit_code: 1

Source/WebKit2/PluginProcess/qt/PluginProcessQt.cpp:34:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/WebProcess/Plugins/Netscape/qt/PluginProxyQt.cpp:27:  You should add a blank line after implementation file&apos;s own header.  [build/include_order] [4]
Source/WebKit2/WebProcess/Plugins/Netscape/qt/PluginProxyQt.cpp:38:  Use 0 instead of NULL.  [readability/null] [5]
Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp:38:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 4 in 24 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>362333</commentid>
    <comment_count>4</comment_count>
      <attachid>84703</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-03-04 00:32:41 -0800</bug_when>
    <thetext>Comment on attachment 84703
Works fine with latest webkit, need to check other platforms WIP1

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

Where are the changelogs? Did you run check-webkit-style and prepare-ChangeLog? Please consult the wikipages on how to contribute to WebKit

&gt; Source/WebKit.pri:76
&gt; +webkit2:INCLUDEPATH *= $$OUTPUT_DIR/include/WebKit2 $$OUTPUT_DIR/WebKit2/generated

Don&apos;t we have these generated included somewhere else?

&gt; Source/WebKit2/PluginProcess/PluginControllerProxy.cpp:258
&gt; +#if PLATFORM(MAC)
&gt;  void PluginControllerProxy::setComplexTextInputEnabled(bool complexTextInputEnabled)

So we will not support input methods? Actuallu you are saying that no other platform that Mac will support this. I guess this should be #if !PLATFORM(QT) instead

&gt; Source/WebKit2/PluginProcess/PluginProcess.cpp:133
&gt;  
&gt;  void PluginProcess::createWebProcessConnection()
&gt;  {
&gt; +#if PLATFORM(MAC)
&gt;      // FIXME: This is platform specific!

Maybe this should be integrated into a PluginProcessMac instead?

&gt; Source/WebKit2/Scripts/webkit2/messages.py:454
&gt; +    headers = {
&gt; +        &apos;&quot;%s&quot;&apos; % messages_header_filename(receiver): None,
&gt; +        &apos;&quot;HandleMessage.h&quot;&apos;: None,

This patch is very hard to review as there is no changelog explaining why you are making these changes...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362341</commentid>
    <comment_count>5</comment_count>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-04 00:50:22 -0800</bug_when>
    <thetext>&gt; Where are the changelogs? Did you run check-webkit-style and prepare-ChangeLog? Please consult the wikipages on how to contribute to WebKit
&gt; 
sorry, I&apos;m just trying to check this patch on other platforms, so that is why it is marked as WIP

&gt; &gt; +webkit2:INCLUDEPATH *= $$OUTPUT_DIR/include/WebKit2 $$OUTPUT_DIR/WebKit2/generated
&gt; 
&gt; Don&apos;t we have these generated included somewhere else?

By some reason no, I did not get why it does not work, and found only this way to make it works, if you have any ideas what other place better for this include please share.

&gt; &gt; +#if PLATFORM(MAC)
&gt; &gt;  void PluginControllerProxy::setComplexTextInputEnabled(bool complexTextInputEnabled)
&gt; 
&gt; So we will not support input methods? Actuallu you are saying that no other platform that Mac will support this. I guess this should be #if !PLATFORM(QT) instead


Not sure, I can make Qt method with notImplemented  entry, probably it make more sense for future development

&gt; &gt; Source/WebKit2/PluginProcess/PluginProcess.cpp:133
&gt; &gt;  
&gt; &gt;  void PluginProcess::createWebProcessConnection()
&gt; &gt;  {
&gt; &gt; +#if PLATFORM(MAC)
&gt; &gt;      // FIXME: This is platform specific!
&gt; 
&gt; Maybe this should be integrated into a PluginProcessMac instead?

Not sure about this stuff yet, just got separate process create, but did not get where and how these specific things need to be initialized

&gt; 
&gt; &gt; Source/WebKit2/Scripts/webkit2/messages.py:454
&gt; &gt; +    headers = {
&gt; &gt; +        &apos;&quot;%s&quot;&apos; % messages_header_filename(receiver): None,
&gt; &gt; +        &apos;&quot;HandleMessage.h&quot;&apos;: None,
&gt; 
&gt; This patch is very hard to review as there is no changelog explaining why you are making these changes...

messages.py part already attached for review in separate dependent bug 55658 ....

that is about teaching IPC stub generator to use ifdefs for forward headers related to ifdef-ed methods</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362342</commentid>
    <comment_count>6</comment_count>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-04 00:50:46 -0800</bug_when>
    <thetext>anyway thanks for WIP review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362660</commentid>
    <comment_count>7</comment_count>
      <attachid>84790</attachid>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-04 12:17:09 -0800</bug_when>
    <thetext>Created attachment 84790
WIP2 fixed style issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362662</commentid>
    <comment_count>8</comment_count>
      <attachid>84790</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-03-04 12:21:55 -0800</bug_when>
    <thetext>Comment on attachment 84790
WIP2 fixed style issues

Changelogs are mandatory, please use the Tools/Scripts/prepare-ChangeLog script</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362698</commentid>
    <comment_count>9</comment_count>
      <attachid>84796</attachid>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-04 14:25:48 -0800</bug_when>
    <thetext>Created attachment 84796
Part1, dummy Qt implementation, Makefiles</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362699</commentid>
    <comment_count>10</comment_count>
      <attachid>84797</attachid>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-04 14:27:17 -0800</bug_when>
    <thetext>Created attachment 84797
Part1, dummy Qt implementation, Makefiles</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362733</commentid>
    <comment_count>11</comment_count>
      <attachid>84797</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-03-04 15:08:19 -0800</bug_when>
    <thetext>Comment on attachment 84797
Part1, dummy Qt implementation, Makefiles

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

Seems pretty OK to me as a start.

&gt; Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp:47
&gt; +    notImplemented();
&gt; +

Things are implemented in this method

&gt; Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp:52
&gt; +    String localization = commandLine[&quot;localization&quot;];

I do not see what that does here. It is not used anywhere</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362825</commentid>
    <comment_count>12</comment_count>
      <attachid>84835</attachid>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-04 17:49:49 -0800</bug_when>
    <thetext>Created attachment 84835
Fixed review comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362826</commentid>
    <comment_count>13</comment_count>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-04 17:53:59 -0800</bug_when>
    <thetext>I hope it was ok to move r+ to updated patch...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363060</commentid>
    <comment_count>14</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-03-06 05:27:48 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; I hope it was ok to move r+ to updated patch...

It is not. You can manually fill out the reviewer field and just add cq?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363094</commentid>
    <comment_count>15</comment_count>
      <attachid>84835</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-06 10:29:32 -0800</bug_when>
    <thetext>Comment on attachment 84835
Fixed review comments

Clearing flags on attachment: 84835

Committed r80434: &lt;http://trac.webkit.org/changeset/80434&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363125</commentid>
    <comment_count>16</comment_count>
      <attachid>84899</attachid>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-06 13:55:27 -0800</bug_when>
    <thetext>Created attachment 84899
Part2, fixed sendComplexInput</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363138</commentid>
    <comment_count>17</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-03-06 14:29:57 -0800</bug_when>
    <thetext>Attachment 84899 did not build on win:
Build output: http://queues.webkit.org/results/8107161</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363142</commentid>
    <comment_count>18</comment_count>
      <attachid>84901</attachid>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-06 14:57:31 -0800</bug_when>
    <thetext>Created attachment 84901
Added dummy implementation for Gtk and Win port</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363143</commentid>
    <comment_count>19</comment_count>
      <attachid>84790</attachid>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-06 14:58:42 -0800</bug_when>
    <thetext>Comment on attachment 84790
WIP2 fixed style issues

this is obsolete now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363145</commentid>
    <comment_count>20</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-03-06 15:24:49 -0800</bug_when>
    <thetext>Attachment 84901 did not build on win:
Build output: http://queues.webkit.org/results/8105317</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363161</commentid>
    <comment_count>21</comment_count>
      <attachid>84904</attachid>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-06 17:57:12 -0800</bug_when>
    <thetext>Created attachment 84904
Added dummy implementation for Gtk and Win port + Fix 3 unresolved externals on win port</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363169</commentid>
    <comment_count>22</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-03-06 18:23:35 -0800</bug_when>
    <thetext>Attachment 84904 did not build on win:
Build output: http://queues.webkit.org/results/8103423</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363174</commentid>
    <comment_count>23</comment_count>
      <attachid>84907</attachid>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-06 18:55:21 -0800</bug_when>
    <thetext>Created attachment 84907
Added dummy implementation for Gtk and Win port + Fix 3 unresolved externals on win port.v4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363237</commentid>
    <comment_count>24</comment_count>
      <attachid>84907</attachid>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-06 23:07:10 -0800</bug_when>
    <thetext>Comment on attachment 84907
Added dummy implementation for Gtk and Win port + Fix 3 unresolved externals on win port.v4

Ok, this version builds fine on win port now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363272</commentid>
    <comment_count>25</comment_count>
      <attachid>84907</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-03-07 02:13:02 -0800</bug_when>
    <thetext>Comment on attachment 84907
Added dummy implementation for Gtk and Win port + Fix 3 unresolved externals on win port.v4

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

Informal review from a non-reviewer.

Generally I thing we should first design how to make things more portable.
Btw, why do you think all platforms need the complex text stuff?
It seems to be pretty Mac specific.

&gt; Source/WebKit2/PluginProcess/PluginProcess.cpp:135
&gt; -    // FIXME: This is platform specific!
&gt; -
&gt; +#if PLATFORM(MAC)
&gt;      // Create the listening port.
&gt;      mach_port_t listeningPort;
&gt;      mach_port_allocate(mach_task_self(), MACH_PORT_RIGHT_RECEIVE, &amp;listeningPort);

This function should rather be factored to be a platform specific one that is implemented per platform...

&gt; Source/WebKit2/PluginProcess/PluginProcess.cpp:148
&gt; +#else
&gt; +    ASSERT(false);
&gt; +#endif

and than this should be removed.

&gt; Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp:131
&gt; +#else
&gt; +        ASSERT(false);
&gt; +#endif

Use ASSERT_NOT_REACHED(). It&apos;s an open question however how to abstract an empty message in a platform independent way.
Maybe we should solve this before actually adding even a stub implementation for plugin process.

&gt; Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp:212
&gt;      CoreIPC::ArgumentEncoder* reply = m_pendingConnectionReplies.first().second;
&gt;      m_pendingConnectionReplies.removeFirst();
&gt;  
&gt; -    // FIXME: This is Mac specific.
&gt;      reply-&gt;encode(CoreIPC::MachPort(machPort.port(), MACH_MSG_TYPE_MOVE_SEND));
&gt; +
&gt;      replyWebProcessProxy-&gt;connection()-&gt;sendSyncReply(reply);
&gt;  }
&gt; +#endif

Similar issue. It is not good having this to be implemented per platform just because of the MachPort argument.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363347</commentid>
    <comment_count>26</comment_count>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-07 07:59:38 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; (From update of attachment 84907 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=84907&amp;action=review
&gt; 
&gt; Informal review from a non-reviewer.
&gt; 
&gt; Generally I thing we should first design how to make things more portable.
&gt; Btw, why do you think all platforms need the complex text stuff?
&gt; It seems to be pretty Mac specific.

Not sure about it in 55719#c4, I got suggestion about adding this for non-mac platforms (originally I just moved one entry under MAC define), I&apos;m not mac developer, can we get some understanding is it pure mac specific stuff or is it possible to implement it for other platforms?


&gt; Maybe we should solve this before actually adding even a stub implementation for plugin process.

Goal here is not to implement anything, but make this dummy stub compilable, with assert entries which should help us to not skip important implementations

&gt; 
&gt; Similar issue. It is not good having this to be implemented per platform just because of the MachPort argument.

Not sure what is the right way to fix this problem... do you have any suggestions? Wrap argument into platform-independent structure?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363753</commentid>
    <comment_count>27</comment_count>
      <attachid>85008</attachid>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-07 18:49:09 -0800</bug_when>
    <thetext>Created attachment 85008
Fixed some review comments,

moved createWebProcessConnection to platform specific implementation, fixed changed to assert_not_reached
asked kling about ComplexTextInput and he proposed to keep that Qt IME implementation.

m_connection-&gt;send(Messages::PluginProcessProxy::DidCreateWebProcessConnection(clientPort), 0); - is called only from PluginProcess::createWebProcessConnection, which is not implemented yet in Qt port.
lets keep DidCreateWebProcessConnection mac only for now, and change that when some implementation for Qt createWebProcessConnection is done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363861</commentid>
    <comment_count>28</comment_count>
      <attachid>85029</attachid>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-08 00:10:11 -0800</bug_when>
    <thetext>Created attachment 85029
Qt Xlib includes conflict fix, Fixed include order, QTBUG-54

A bit hacky fix, against webkit style but according to 
http://bugreports.qt.nokia.com/browse/QTBUG-54
**************
Since X11 headers are not namespace safe, they have to be included after Qt headers. Generally, headers should always be included in the order from the most specialized to the most general one to prevent namespace pollution:

#include &quot;myownheader.h&quot;
#include &lt;someQtHeader.h&gt;
#include &lt;X11/someXheader&gt;
#include &lt;string.h&gt; // system header
**************

Another way to fix it is some magic with &quot;Bool&quot; &quot;Status&quot; defines, but that looks ugly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363866</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-08 00:14:07 -0800</bug_when>
    <thetext>Attachment 85029 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1

Source/WebKit2/Shared/Plugins/NPIdentifierData.cpp:28:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Source/WebKit2/Shared/Plugins/NPIdentifierData.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/Shared/Plugins/NPObjectProxy.cpp:28:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 3 in 5 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>363942</commentid>
    <comment_count>30</comment_count>
      <attachid>85029</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-03-08 06:02:07 -0800</bug_when>
    <thetext>Comment on attachment 85029
Qt Xlib includes conflict fix, Fixed include order, QTBUG-54

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

&gt; Source/WebKit2/Shared/Plugins/NPIdentifierData.h:33
&gt; -#include &lt;WebCore/npruntime.h&gt;
&gt;  #include &lt;wtf/text/CString.h&gt;
&gt; +#include &lt;WebCore/npruntime.h&gt;
&gt;  

We have WebCore/bridge/npruntime_internal.h to solve this. Hopefully it can solve all these &quot;evil defines&quot; problems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364045</commentid>
    <comment_count>31</comment_count>
      <attachid>85064</attachid>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-08 11:19:50 -0800</bug_when>
    <thetext>Created attachment 85064
Use runtime_internal.h to solve X/Qt conflicts

Thanks Balazs, this works fine</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365606</commentid>
    <comment_count>32</comment_count>
      <attachid>85064</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-03-10 15:58:33 -0800</bug_when>
    <thetext>Comment on attachment 85064
Use runtime_internal.h to solve X/Qt conflicts

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365615</commentid>
    <comment_count>33</comment_count>
      <attachid>85403</attachid>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-10 16:10:10 -0800</bug_when>
    <thetext>Created attachment 85403
Fixed according to recent NetscapePluginQt/Gtk -&gt; NetscapePluginX11 changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365625</commentid>
    <comment_count>34</comment_count>
      <attachid>85064</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-10 16:17:20 -0800</bug_when>
    <thetext>Comment on attachment 85064
Use runtime_internal.h to solve X/Qt conflicts

Clearing flags on attachment: 85064

Committed r80784: &lt;http://trac.webkit.org/changeset/80784&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365631</commentid>
    <comment_count>35</comment_count>
      <attachid>85403</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-03-10 16:21:26 -0800</bug_when>
    <thetext>Comment on attachment 85403
Fixed according to recent NetscapePluginQt/Gtk -&gt; NetscapePluginX11 changes

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

&gt; Source/WebKit2/UIProcess/API/qt/qwkpage.cpp:280
&gt; +void
&gt; +QWKPagePrivate::setComplexTextInputEnabled(uint64_t pluginComplexTextInputIdentifier,
&gt; +                                           bool complexTextInputEnabled)

Coding style, this should all be on one line.

&gt; Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp:140
&gt; -        // FIXME: This is Mac specific.
&gt; +#if PLATFORM(MAC)
&gt;          reply-&gt;encode(CoreIPC::MachPort(0, MACH_MSG_TYPE_MOVE_SEND));
&gt; +#else
&gt; +        ASSERT_NOT_REACHED();
&gt; +#endif
&gt;          replyWebProcessProxy-&gt;connection()-&gt;sendSyncReply(reply);

Why the ASSERT_NOT_REACHED()? It reads to me like we can indeed reach this code.

&gt; Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp:217
&gt; +

Unnecessary newline.

&gt; Source/WebKit2/WebProcess/Plugins/PluginProcessConnectionManager.cpp:74
&gt; +    connectionIdentifier = 0;
&gt; +    ASSERT(connectionIdentifier);

What&apos;s going on here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365646</commentid>
    <comment_count>36</comment_count>
      <attachid>85408</attachid>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-10 16:36:37 -0800</bug_when>
    <thetext>Created attachment 85408
Fixed comments from 55719#c35</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365655</commentid>
    <comment_count>37</comment_count>
      <attachid>85408</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-03-10 16:43:10 -0800</bug_when>
    <thetext>Comment on attachment 85408
Fixed comments from 55719#c35

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

As discussed on IRC, this is merely the first step (making it build) towards a proper implementation.

I like the intent of keeping patches incremental and readable, so I&apos;ll say r+ here.

&gt; Source/WebKit2/UIProcess/API/qt/qwkpage.cpp:279
&gt; +void
&gt; +QWKPagePrivate::setComplexTextInputEnabled(uint64_t pluginComplexTextInputIdentifier, bool complexTextInputEnabled)

Coding style, the function return type should not be on a line by itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365667</commentid>
    <comment_count>38</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-03-10 16:56:21 -0800</bug_when>
    <thetext>The patch looks good to me but we should investigate in the complex 
text concept to understand it&apos;s role. I&apos;m still unsure about that we
really need that. I will take a look into that tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365728</commentid>
    <comment_count>39</comment_count>
      <attachid>85419</attachid>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-10 18:37:49 -0800</bug_when>
    <thetext>Created attachment 85419
Fixed style nit from 55719#c37</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365848</commentid>
    <comment_count>40</comment_count>
      <attachid>85440</attachid>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-10 23:55:02 -0800</bug_when>
    <thetext>Created attachment 85440
Build log

Not sure where is exactly problem, but I found that when we compiling UIProcess or WebProcess stuff then WebKit2 includes are in first place, but when we compiling PluginProcess stuff then WebKit includes (as well config.h) are not available in first place and WebCore stuff overriding config.h from webkit2 subfolder...
as result we are getting build error in attachment...

Fast fix is to copy PLUGIN_ARCHITECTURE stuff to webcore/config.h but that is wrong because I don&apos;t understand why in pluginProcess includes order are different comparing to WebProcess or UIProcess 
..
I tried to compare .pri/pro files and did not found what is the difference...
any ideas what is wrong here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365850</commentid>
    <comment_count>41</comment_count>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-10 23:56:58 -0800</bug_when>
    <thetext>kbalazs: do you know what is needed in order to have right include order for PluginProcess?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365936</commentid>
    <comment_count>42</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-03-11 04:56:01 -0800</bug_when>
    <thetext>(In reply to comment #41)
&gt; kbalazs: do you know what is needed in order to have right include order for PluginProcess?

Currently I have not idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365980</commentid>
    <comment_count>43</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-03-11 06:55:53 -0800</bug_when>
    <thetext>Huhh, complex text handling is complex. I&apos;m still unsure about the purpose of the whole logic i.e
I&apos;m unsure about it is needed for supporting exotic languages or it is just an optimization for situations when
the simple code path can be used. Actually the plugin part is seems to be really needed for supporting non-regular
text with plugins (i.e. we need to wait for the whole string to arrive before sending it to the plugin).
However I hardly think that it is even possible for X based plugins.
The complex text is sent to the plugin here (on Mac):
-&gt; NetscapePluginMac.cpp
void NetscapePlugin::sendComplexTextInput(const String&amp; textInput)
{
    switch (m_eventModel) {
    case NPEventModelCocoa: {
        NPCocoaEvent event = initializeEvent(NPCocoaEventTextInput);
        event.data.text.text = reinterpret_cast&lt;NPNSString*&gt;(static_cast&lt;NSString*&gt;(textInput));
        NPP_HandleEvent(&amp;event);
        break;
    }
...

But we have to work with XKeyEvent that cannot store a unicode string.
According to that I didn&apos;t see anything in the Qt and GTK WK1 plugin code that deals with complex text.

The complex text story exists on WK1 as well at the WebKit level but it is used by only Mac and Windows.
Here is some grep output:
./mac/WebKit.order:2464:+[WebView(WebPrivate) _setAlwaysUsesComplexTextCodePath:]
./mac/WebView/WebView.mm:1019:    [self _setAlwaysUsesComplexTextCodePath:f];
./mac/WebView/WebView.mm:1022:+ (void)_setAlwaysUsesComplexTextCodePath:(BOOL)f
./mac/WebView/WebViewPrivate.h:340:+ (void)_setAlwaysUsesComplexTextCodePath:(BOOL)f;
./win/Interfaces/IWebViewPrivate.idl:156:    HRESULT setAlwaysUsesComplexTextCodePath([in] BOOL complex);
./win/Interfaces/IWebViewPrivate.idl:157:    HRESULT alwaysUsesComplexTextCodePath([out, retval] BOOL* complex);
./win/WebView.h:750:    virtual HRESULT STDMETHODCALLTYPE setAlwaysUsesComplexTextCodePath(
./win/WebView.h:753:    virtual HRESULT STDMETHODCALLTYPE alwaysUsesComplexTextCodePath(
./win/WebView.cpp:5853:HRESULT STDMETHODCALLTYPE WebView::setAlwaysUsesComplexTextCodePath(BOOL complex)
./win/WebView.cpp:5855:    WebCoreSetAlwaysUsesComplexTextCodePath(complex);
./win/WebView.cpp:5860:HRESULT STDMETHODCALLTYPE WebView::alwaysUsesComplexTextCodePath(BOOL* complex)
./win/WebView.cpp:5865:    *complex = WebCoreAlwaysUsesComplexTextCodePath();

According to special circumstances they call WebCore::Font::setCodePath (static function) to statically
anchor the path to use. I guess it is about optimizing the simple case and avoid having to decide the path
for every text run.

In summary I think we should not deal with that now but leave it as a Mac specific thing.
This way we can set up the build with a less complex patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366659</commentid>
    <comment_count>44</comment_count>
      <attachid>85607</attachid>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-12 22:03:11 -0800</bug_when>
    <thetext>Created attachment 85607
Same patch, but with complexTextPlugin disabled for non-Mac

Here is another patch which does not contain complexTextPlugin stuff
From my point of view it worse to add InputText API for NON-Mac plugins, and should not be hard... also it will help for som different mobile platforms with different VKB IM...

but anyway patch above with ComplexTextInput, and current patch without it.
My point here is to get ENABLE_PLUGIN_PROCES define compiling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366701</commentid>
    <comment_count>45</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-03-13 05:25:53 -0700</bug_when>
    <thetext>(In reply to comment #44)
&gt; Created an attachment (id=85607) [details]
&gt; Same patch, but with complexTextPlugin disabled for non-Mac
&gt; 
&gt; Here is another patch which does not contain complexTextPlugin stuff
&gt; From my point of view it worse to add InputText API for NON-Mac plugins, and should not be hard... also it will help for som different mobile platforms with different VKB IM...

IMHO this can be handled in the future and not belongs strictly to
make Qt build with ENABLE(PLUGIN_PROCESS).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368730</commentid>
    <comment_count>46</comment_count>
      <attachid>85607</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-03-16 19:28:45 -0700</bug_when>
    <thetext>Comment on attachment 85607
Same patch, but with complexTextPlugin disabled for non-Mac

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368734</commentid>
    <comment_count>47</comment_count>
      <attachid>85607</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-16 19:32:33 -0700</bug_when>
    <thetext>Comment on attachment 85607
Same patch, but with complexTextPlugin disabled for non-Mac

Rejecting attachment 85607 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=eseidel-cq-sf&apos;, &apos;ap...&quot; exit_code: 2

Last 500 characters of output:

patching file Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.h
Hunk #1 succeeded at 80 (offset 3 lines).
patching file Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.messages.in
patching file Source/WebKit2/WebProcess/Plugins/PluginProcessConnectionManager.cpp
patching file Source/WebKit2/WebProcess/WebPage/WebPage.cpp
Hunk #1 succeeded at 110 (offset 1 line).

Failed to run &quot;[u&apos;/Projects/CommitQueue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Andreas Kling&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/8193339</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368829</commentid>
    <comment_count>48</comment_count>
      <attachid>86028</attachid>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-16 22:41:17 -0700</bug_when>
    <thetext>Created attachment 86028
Fixed patch apply to latest trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368935</commentid>
    <comment_count>49</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-03-17 01:33:29 -0700</bug_when>
    <thetext>(In reply to comment #48)
&gt; Created an attachment (id=86028) [details]
&gt; Fixed patch apply to latest trunk

May I land it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368977</commentid>
    <comment_count>50</comment_count>
      <attachid>86028</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-17 04:18:52 -0700</bug_when>
    <thetext>Comment on attachment 86028
Fixed patch apply to latest trunk

Rejecting attachment 86028 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-3&apos;, &apos;build&apos;...&quot; exit_code: 2

Last 500 characters of output:
 WebKit2 WITH CONFIGURATION Debug ===
Check dependencies

=== BUILD AGGREGATE TARGET All OF PROJECT WebKit2 WITH CONFIGURATION Debug ===
Check dependencies
** BUILD FAILED **


The following build commands failed:
WebKit2:
	CompileC /mnt/git/webkit-commit-queue/WebKitBuild/WebKit2.build/Debug/WebKit2.build/Objects-normal/x86_64/PluginProcessMac.o /mnt/git/webkit-commit-queue/Source/WebKit2/PluginProcess/mac/PluginProcessMac.mm normal x86_64 objective-c++ com.apple.compilers.gcc.4_2
(1 failure)


Full output: http://queues.webkit.org/results/8188670</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369097</commentid>
    <comment_count>51</comment_count>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-17 09:50:39 -0700</bug_when>
    <thetext>sounds like NetscapePluginModule.h missing in PluginProcessMac.mm, but not sure... is there are some way to get more dtailed info about mac failure?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369103</commentid>
    <comment_count>52</comment_count>
      <attachid>86064</attachid>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-17 09:59:33 -0700</bug_when>
    <thetext>Created attachment 86064
Keep PluginProcess::createWebProcessConnection in PluginProcess.cpp (suggested by :andersca)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369111</commentid>
    <comment_count>53</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-03-17 10:04:52 -0700</bug_when>
    <thetext>(In reply to comment #52)
&gt; Created an attachment (id=86064) [details]
&gt; Keep PluginProcess::createWebProcessConnection in PluginProcess.cpp (suggested by :andersca)

It&apos;s there but hard to find. Search for &quot;PluginProcessMac.mm&quot; from the
start of the build log. ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369160</commentid>
    <comment_count>54</comment_count>
      <attachid>86070</attachid>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-17 10:59:02 -0700</bug_when>
    <thetext>Created attachment 86070
Previous version, added missing WebProcessConnection.h  createWebProcessConnection platform specific method</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369731</commentid>
    <comment_count>55</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-03-18 11:04:50 -0700</bug_when>
    <thetext>(In reply to comment #54)
&gt; Created an attachment (id=86070) [details]
&gt; Previous version, added missing WebProcessConnection.h  createWebProcessConnection platform specific method

So, which one do you like to be reviewed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369754</commentid>
    <comment_count>56</comment_count>
    <who name="Oleg Romashin (:romaxa)">romaxa</who>
    <bug_when>2011-03-18 11:35:31 -0700</bug_when>
    <thetext>&gt; So, which one do you like to be reviewed?

createWebProcessConnection now contain also generic code, so I guess second one need to be reviewed.
https://bugs.webkit.org/attachment.cgi?id=86070</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369762</commentid>
    <comment_count>57</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-03-18 11:44:29 -0700</bug_when>
    <thetext>CC&apos;ing people who care about Qt + plugins.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377185</commentid>
    <comment_count>58</comment_count>
      <attachid>87734</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-03-31 08:53:47 -0700</bug_when>
    <thetext>Created attachment 87734
patch

Updated patch. Handle some further build issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380594</commentid>
    <comment_count>59</comment_count>
      <attachid>85607</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-04-06 10:43:41 -0700</bug_when>
    <thetext>Comment on attachment 85607
Same patch, but with complexTextPlugin disabled for non-Mac

Cleared Andreas Kling&apos;s review+ from obsolete attachment 85607 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380595</commentid>
    <comment_count>60</comment_count>
      <attachid>86028</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-04-06 10:43:46 -0700</bug_when>
    <thetext>Comment on attachment 86028
Fixed patch apply to latest trunk

Cleared Andreas Kling&apos;s review+ from obsolete attachment 86028 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382669</commentid>
    <comment_count>61</comment_count>
      <attachid>88903</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-04-08 17:20:07 -0700</bug_when>
    <thetext>Created attachment 88903
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382674</commentid>
    <comment_count>62</comment_count>
      <attachid>88903</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-04-08 17:24:47 -0700</bug_when>
    <thetext>Comment on attachment 88903
Patch

Changed my mind.
We don&apos;t need separate files for Qt and Gtk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382677</commentid>
    <comment_count>63</comment_count>
      <attachid>88903</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-04-08 17:29:23 -0700</bug_when>
    <thetext>Comment on attachment 88903
Patch

...but the renaming should be handled in a follow up patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385597</commentid>
    <comment_count>64</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-04-14 02:13:33 -0700</bug_when>
    <thetext>ping</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385676</commentid>
    <comment_count>65</comment_count>
      <attachid>88903</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-04-14 05:38:57 -0700</bug_when>
    <thetext>Comment on attachment 88903
Patch

Clearing flags on attachment: 88903

Committed r83842: &lt;http://trac.webkit.org/changeset/83842&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385677</commentid>
    <comment_count>66</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-04-14 05:39:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385746</commentid>
    <comment_count>67</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-04-14 07:17:53 -0700</bug_when>
    <thetext>It broke the Symbian build: http://webkit.sed.hu/buildbot/builders/Qt%20Symbian%20ARMv5%20Release/builds/368

Could you fix it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385760</commentid>
    <comment_count>68</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-04-14 07:53:59 -0700</bug_when>
    <thetext>(In reply to comment #67)
&gt; It broke the Symbian build: http://webkit.sed.hu/buildbot/builders/Qt%20Symbian%20ARMv5%20Release/builds/368
&gt; 
&gt; Could you fix it?

I don&apos;t think so :(
This is the error:
Compile    : Source\WebKit2\Shared\Plugins\PluginProcessCreationParameters.cpp [armv5_urel.rvct4_0]
   /bin/sh: -c: line 0: unexpected EOF while looking for matching `&quot;&apos;
   /bin/sh: -c: line 1: syntax error: unexpected end of filef

This make me guess that this is either a compiler error or an error with the bot.
Actually my patch should not change anything without adding the -DDEFINES+=ENABLE_PLUGIN_PROCESS flag to the build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386074</commentid>
    <comment_count>69</comment_count>
    <who name="jade han">jade.han</who>
    <bug_when>2011-04-14 15:03:37 -0700</bug_when>
    <thetext>the build break on symbian builder is not related to code, but related to a raptor issue which siddharth.mathur@nokia.com will file a bug against.  By passing --no-depend-generate to sbs command, the build is passing now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386100</commentid>
    <comment_count>70</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-04-14 15:17:58 -0700</bug_when>
    <thetext>(In reply to comment #69)
&gt; the build break on symbian builder is not related to code, but related to a raptor issue which siddharth.mathur@nokia.com will file a bug against.  By passing --no-depend-generate to sbs command, the build is passing now.

Thanks for finding this out.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84703</attachid>
            <date>2011-03-04 00:24:31 -0800</date>
            <delta_ts>2011-03-04 12:17:09 -0800</delta_ts>
            <desc>Works fine with latest webkit, need to check other platforms WIP1</desc>
            <filename>patch2.diff</filename>
            <type>text/plain</type>
            <size>46535</size>
            <attacher name="Oleg Romashin (:romaxa)">romaxa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQucHJpIGIvU291cmNlL1dlYktpdC5wcmkKLS0tIGEv
U291cmNlL1dlYktpdC5wcmkKKysrIGIvU291cmNlL1dlYktpdC5wcmkKQEAgLTY4LDE3ICs2OCwx
NyBAQCBDT05GSUcocmVsZWFzZSwgZGVidWd8cmVsZWFzZSkgewogfQogCiBJTkNMVURFUEFUSCAr
PSBcCiAgICAgJCRQV0QgXAogICAgICQkT1VUUFVUX0RJUi9pbmNsdWRlL1F0V2ViS2l0IFwKICAg
ICAkJE9VVFBVVF9ESVIvaW5jbHVkZSBcCiAgICAgJCRRVC5zY3JpcHQuaW5jbHVkZXMKIAotd2Vi
a2l0MjpJTkNMVURFUEFUSCAqPSAkJE9VVFBVVF9ESVIvaW5jbHVkZS9XZWJLaXQyCit3ZWJraXQy
OklOQ0xVREVQQVRIICo9ICQkT1VUUFVUX0RJUi9pbmNsdWRlL1dlYktpdDIgJCRPVVRQVVRfRElS
L1dlYktpdDIvZ2VuZXJhdGVkCiAKICMgUGljayB1cCAzcmRwYXJ0eSBsaWJyYXJpZXMgZnJvbSBJ
TkNMVURFL0xJQiBqdXN0IGxpa2Ugd2l0aCBNU1ZDCiB3aW4zMi1nKysqIHsKICAgICBUTVBQQVRI
ICAgICAgICAgICAgPSAkJHF1b3RlKCQkKElOQ0xVREUpKQogICAgIFFNQUtFX0lOQ0RJUl9QT1NU
ICs9ICQkc3BsaXQoVE1QUEFUSCwiOyIpCiAgICAgVE1QUEFUSCAgICAgICAgICAgID0gJCRxdW90
ZSgkJChMSUIpKQogICAgIFFNQUtFX0xJQkRJUl9QT1NUICs9ICQkc3BsaXQoVE1QUEFUSCwiOyIp
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcm8gYi9Tb3Vy
Y2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcm8KLS0tIGEvU291cmNlL1dlYktpdDIvRGVyaXZl
ZFNvdXJjZXMucHJvCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnBybwpAQCAt
ODIsMTcgKzgyLDE4IEBAIFZQQVRIID0gXAogICAgIFdlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdl
IFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMgXAogICAgIFdlYlByb2Nlc3MvUmVzb3VyY2VDYWNo
ZSBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJQ
YWdlIFwKICAgICBXZWJQcm9jZXNzIFwKICAgICBVSVByb2Nlc3MgXAogICAgIFVJUHJvY2Vzcy9E
b3dubG9hZHMgXAotICAgIFVJUHJvY2Vzcy9QbHVnaW5zCisgICAgVUlQcm9jZXNzL1BsdWdpbnMg
XAorICAgIFNoYXJlZC9QbHVnaW5zCiAKIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIEF1dGhl
bnRpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbiBcCiAgICAgRG93bmxvYWRQcm94eS5tZXNzYWdl
cy5pbiBcCiAgICAgUGx1Z2luQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluIFwKICAgICBQbHVn
aW5Qcm9jZXNzLm1lc3NhZ2VzLmluIFwKICAgICBQbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4gXAogICAgIFBsdWdpblByb3h5Lm1lc3NhZ2VzLmluIFwKQEAgLTExMCwxNyArMTExLDE4IEBA
IE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbiBcCiAgICAgV2ViUGFnZS9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW4gXAog
ICAgIFdlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBcCiAgICAgV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluIFwKICAgICBXZWJQcm9jZXNzLm1lc3NhZ2VzLmluIFwKICAgICBXZWJQcm9jZXNzQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbiBcCiAgICAgV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIFwK
ICAgICBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbiBcCi0gICAgV2ViUmVzb3Vy
Y2VDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorICAgIFdlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4gXAorICAgIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLm1lc3Nh
Z2VzLmluCiAKIFNDUklQVFMgPSBcCiAgICAgJCRQV0QvU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdl
LXJlY2VpdmVyLnB5IFwKICAgICAkJFBXRC9TY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2VzLWhlYWRl
ci5weSBcCiAgICAgJCRQV0QvU2NyaXB0cy93ZWJraXQyL19faW5pdF9fLnB5IFwKICAgICAkJFBX
RC9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKIAogbWVzc2FnZV9oZWFkZXJfZ2VuZXJhdG9y
LmNvbW1hbmRzID0gJCR7UFlUSE9OfSAkJHtTUkNfUk9PVF9ESVJ9L1NvdXJjZS9XZWJLaXQyL1Nj
cmlwdHMvZ2VuZXJhdGUtbWVzc2FnZXMtaGVhZGVyLnB5ICR7UU1BS0VfRklMRV9JTn0gPiAke1FN
QUtFX0ZJTEVfT1VUfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5Db250cm9sbGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5Db250cm9sbGVyUHJveHkuY3BwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nl
c3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Q
cm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAKQEAgLTI0OSwzMCArMjQ5LDM0IEBAIGJv
b2wgUGx1Z2luQ29udHJvbGxlclByb3h5Ojppc0FjY2VsZXJhdGUKIH0KIAogdm9pZCBQbHVnaW5D
b250cm9sbGVyUHJveHk6OnBsdWdpblByb2Nlc3NDcmFzaGVkKCkKIHsKICAgICAvLyBUaGlzIHNo
b3VsZCBuZXZlciBiZSBjYWxsZWQgZnJvbSBoZXJlLgogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogfQogCisjaWYgUExBVEZPUk0oTUFDKQogdm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OnNl
dENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKGJvb2wgY29tcGxleFRleHRJbnB1dEVuYWJsZWQpCiB7
CiAgICAgaWYgKG1faXNDb21wbGV4VGV4dElucHV0RW5hYmxlZCA9PSBjb21wbGV4VGV4dElucHV0
RW5hYmxlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9pc0NvbXBsZXhUZXh0SW5wdXRFbmFi
bGVkID0gY29tcGxleFRleHRJbnB1dEVuYWJsZWQ7CiAKICAgICBtX2Nvbm5lY3Rpb24tPmNvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UGx1Z2luUHJveHk6OlNldENvbXBsZXhUZXh0SW5wdXRF
bmFibGVkKGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKSwgbV9wbHVnaW5JbnN0YW5jZUlEKTsKIH0K
KyNlbmRpZgogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBQTEFURk9STShN
QUMpCiBtYWNoX3BvcnRfdCBQbHVnaW5Db250cm9sbGVyUHJveHk6OmNvbXBvc2l0aW5nUmVuZGVy
U2VydmVyUG9ydCgpCiB7CiAgICAgcmV0dXJuIFBsdWdpblByb2Nlc3M6OnNoYXJlZCgpLmNvbXBv
c2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpOwogfQorI2VuZGlmCiAKIFN0cmluZyBQbHVnaW5Db250
cm9sbGVyUHJveHk6OnByb3hpZXNGb3JVUkwoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiB7CiAg
ICAgU3RyaW5nIHByb3h5U3RyaW5nOwogICAgIAogICAgIGlmICghbV9jb25uZWN0aW9uLT5jb25u
ZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpQbHVnaW5Qcm94eTo6Q29va2llc0ZvclVSTCh1
cmxTdHJpbmcpLCBNZXNzYWdlczo6UGx1Z2luUHJveHk6OkNvb2tpZXNGb3JVUkw6OlJlcGx5KHBy
b3h5U3RyaW5nKSwgbV9wbHVnaW5JbnN0YW5jZUlEKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygp
OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5D
b250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNz
L1BsdWdpbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5p
bgpAQCAtODEsMjAgKzgxLDIwIEBAIG1lc3NhZ2VzIC0+IFBsdWdpbkNvbnRyb2xsZXJQcm94eSB7
CiAgICAgRGlkVXBkYXRlKCkKIAogICAgICMgUGFpbnQgdGhlIGVudGlyZSBwbHVnLWluLgogICAg
IFBhaW50RW50aXJlUGx1Z2luKCkgLT4gKCkKIAogICAgICMgR2V0IGEgcmVmZXJlbmNlIHRvIHRo
ZSBwbHVnLWluJ3Mgc2NyaXB0YWJsZSBOUE9iamVjdC4KICAgICBHZXRQbHVnaW5TY3JpcHRhYmxl
TlBPYmplY3QoKSAtPiAodWludDY0X3QgcGx1Z2luU2NyaXB0YWJsZU5QT2JqZWN0SUQpCiAKKyNp
ZiBQTEFURk9STShNQUMpCiAgICAgIyBTZW5kIHRoZSBjb21wbGV4IHRleHQgaW5wdXQgdG8gdGhl
IHBsdWctaW4uCiAgICAgU2VuZENvbXBsZXhUZXh0SW5wdXQoV1RGOjpTdHJpbmcgdGV4dElucHV0
KQogCi0jaWYgUExBVEZPUk0oTUFDKQogICAgICMgU2VudCB3aGVuIHRoZSBjb250YWluaW5nIE5T
V2luZG93J3MgZm9jdXMgY2hhbmdlcwogICAgIFdpbmRvd0ZvY3VzQ2hhbmdlZChib29sIGhhc0Zv
Y3VzKQogCiAgICAgIyBTZW50IHdoZW4gdGhlIGNvbnRhaW5pbmcgTlNXaW5kb3cgb3IgTlNWaWV3
IGZyYW1lIGNoYW5nZXMKICAgICBXaW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChXZWJDb3JlOjpJ
bnRSZWN0IHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgV2ViQ29yZTo6SW50UmVjdCB2
aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKQogCiAgICAgIyBTZW50IHdoZW4gdGhlIGNvbnRh
aW5pbmcgTlNXaW5kb3cncyB2aXNpYmlsaXR5IGNoYW5nZXMKICAgICBXaW5kb3dWaXNpYmlsaXR5
Q2hhbmdlZChib29sIGlzVmlzaWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNz
L1BsdWdpblByb2Nlc3MuY3BwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Q
cm9jZXNzLmNwcApAQCAtMjQsMTcgKzI0LDE5IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3MuaCIKIAogI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VT
UykKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCisjaWYgUExBVEZPUk0oTUFDKQogI2lu
Y2x1ZGUgIk1hY2hQb3J0LmgiCisjZW5kaWYKICNpbmNsdWRlICJOZXRzY2FwZVBsdWdpbk1vZHVs
ZS5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
UGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3ND
b25uZWN0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdGF0aWMgY29uc3QgZG91Ymxl
IHNodXRkb3duVGltZW91dCA9IDE1LjA7CkBAIC0xMjIsMzEgKzEyNCwzNSBAQCB2b2lkIFBsdWdp
blByb2Nlc3M6OmluaXRpYWxpemVQbHVnaW5Qcm9jCiAKICAgICBtX3BsdWdpblBhdGggPSBwYXJh
bWV0ZXJzLnBsdWdpblBhdGg7CiAKICAgICBwbGF0Zm9ybUluaXRpYWxpemUocGFyYW1ldGVycyk7
CiB9CiAKIHZvaWQgUGx1Z2luUHJvY2Vzczo6Y3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQog
eworI2lmIFBMQVRGT1JNKE1BQykKICAgICAvLyBGSVhNRTogVGhpcyBpcyBwbGF0Zm9ybSBzcGVj
aWZpYyEKIAogICAgIC8vIENyZWF0ZSB0aGUgbGlzdGVuaW5nIHBvcnQuCiAgICAgbWFjaF9wb3J0
X3QgbGlzdGVuaW5nUG9ydDsKICAgICBtYWNoX3BvcnRfYWxsb2NhdGUobWFjaF90YXNrX3NlbGYo
KSwgTUFDSF9QT1JUX1JJR0hUX1JFQ0VJVkUsICZsaXN0ZW5pbmdQb3J0KTsKIAogICAgIC8vIENy
ZWF0ZSBhIGxpc3RlbmluZyBjb25uZWN0aW9uLgogICAgIFJlZlB0cjxXZWJQcm9jZXNzQ29ubmVj
dGlvbj4gY29ubmVjdGlvbiA9IFdlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUobGlzdGVuaW5n
UG9ydCk7CiAgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMuYXBwZW5kKGNvbm5lY3Rpb24ucmVs
ZWFzZSgpKTsKIAogICAgIENvcmVJUEM6Ok1hY2hQb3J0IGNsaWVudFBvcnQobGlzdGVuaW5nUG9y
dCwgTUFDSF9NU0dfVFlQRV9NQUtFX1NFTkQpOwogICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpEaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbihj
bGllbnRQb3J0KSwgMCk7CiAKICAgICAvLyBTdG9wIHRoZSBzaHV0ZG93biB0aW1lci4KICAgICBt
X3NodXRkb3duVGltZXIuc3RvcCgpOworI2Vsc2UKKyAgICBBU1NFUlQoZmFsc2UpOworI2VuZGlm
CiB9CiAKIHZvaWQgUGx1Z2luUHJvY2Vzczo6Z2V0U2l0ZXNXaXRoRGF0YSh1aW50NjRfdCBjYWxs
YmFja0lEKQogewogICAgIFZlY3RvcjxTdHJpbmc+IHNpdGVzOwogICAgIGlmIChOZXRzY2FwZVBs
dWdpbk1vZHVsZSogbW9kdWxlID0gbmV0c2NhcGVQbHVnaW5Nb2R1bGUoKSkKICAgICAgICAgc2l0
ZXMgPSBtb2R1bGUtPnNpdGVzV2l0aERhdGEoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMTYzLDE3
ICsxNjMsMjEgQEAgdm9pZCBXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlUGx1Z2luKAogICAg
IC8vIE1ha2Ugc3VyZSB0byBhZGQgdGhlIHByb3h5IHRvIHRoZSBtYXAgYmVmb3JlIGluaXRpYWxp
emluZyBpdCwgc2luY2UgdGhlIHBsdWctaW4gbWlnaHQgY2FsbCBvdXQgdG8gdGhlIHdlYiBwcm9j
ZXNzIGZyb20gCiAgICAgLy8gaXRzIE5QUF9OZXcgZnVuY3Rpb24uIFRoaXMgd2lsbCBoYW5kIG92
ZXIgb3duZXJzaGlwIG9mIHRoZSBwcm94eSB0byB0aGUgd2ViIHByb2Nlc3MgY29ubmVjdGlvbi4K
ICAgICBhZGRQbHVnaW5Db250cm9sbGVyUHJveHkocGx1Z2luQ29udHJvbGxlclByb3h5LnJlbGVh
c2UoKSk7CiAKICAgICAvLyBOb3cgdHJ5IHRvIGluaXRpYWxpemUgdGhlIHBsdWctaW4uCiAgICAg
cmVzdWx0ID0gcGx1Z2luQ29udHJvbGxlclByb3h5UHRyLT5pbml0aWFsaXplKHBhcmFtZXRlcnMp
OwogCiAgICAgaWYgKHJlc3VsdCkgeworI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgcmVtb3Rl
TGF5ZXJDbGllbnRJRCA9IHBsdWdpbkNvbnRyb2xsZXJQcm94eVB0ci0+cmVtb3RlTGF5ZXJDbGll
bnRJRCgpOworI2Vsc2UKKyAgICAgICAgQVNTRVJUKGZhbHNlKTsKKyNlbmRpZgogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCiAgICAgLy8gV2UgZmFpbGVkIHRvIGluaXRpYWxpemUsIHJlbW92ZSB0
aGUgcGx1Zy1pbiBjb250cm9sbGVyLiBUaGlzIGNvdWxkIGNhdXNlIHVzIHRvIGJlIGRlbGV0ZWQu
CiAgICAgcmVtb3ZlUGx1Z2luQ29udHJvbGxlclByb3h5KHBsdWdpbkNvbnRyb2xsZXJQcm94eVB0
cik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Db250cm9sbGVyUHJveHlRdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpbkNvbnRyb2xsZXJQcm94eVF0LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvcXQvUGx1Z2luQ29udHJvbGxlclByb3h5UXQuY3BwCkBAIC0wLDAgKzEsNTUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGx1Z2luQ29udHJv
bGxlclByb3h5LmgiCisKKyNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCisKKyNpbmNsdWRlICJQ
bHVnaW5Qcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorCit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgUGx1
Z2luQ29udHJvbGxlclByb3h5OjpwbGF0Zm9ybUluaXRpYWxpemUoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5OjpwbGF0Zm9ybURlc3Ry
b3koKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUGx1Z2luQ29udHJvbGxl
clByb3h5OjpwbGF0Zm9ybUdlb21ldHJ5RGlkQ2hhbmdlKGNvbnN0IEludFJlY3QmIGZyYW1lUmVj
dCwgY29uc3QgSW50UmVjdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoUExVR0lOX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nlc3NNYWlu
UXQuY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzTWFp
blF0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc01haW5RdC5jcHAKQEAgLTAsMCAr
MSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJQbHVnaW5Qcm9jZXNzTWFpbi5oIgorCisjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQorCisj
aW5jbHVkZSAiQ29tbWFuZExpbmUuaCIKKyNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzLmgiCisjaW5j
bHVkZSAiUnVuTG9vcC5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5o
PgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9O
b3RJbXBsZW1lbnRlZC5oPgorCisjZGVmaW5lIFNIT1dfQ1JBU0hfUkVQT1JURVIgMQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworLy8gRklYTUU6IFRoZXJlIGlzIG11Y2ggY29kZSBoZXJlIHRoYXQg
aXMgZHVwbGljYXRlZCBpbiBXZWJQcm9jZXNzTWFpbk1hYy5tbSwgd2Ugc2hvdWxkIGFkZCBhIHNo
YXJlZCBiYXNlIGNsYXNzIHdoZXJlCisvLyB3ZSBjYW4gcHV0IGV2ZXJ5dGhpbmcuCisKK2ludCBQ
bHVnaW5Qcm9jZXNzTWFpbihjb25zdCBDb21tYW5kTGluZSYgY29tbWFuZExpbmUpCit7CisgICAg
Ly8gVW5zZXQgRFlMRF9JTlNFUlRfTElCUkFSSUVTLiBXZSBkb24ndCB3YW50IG91ciBwbHVnLWlu
IHByb2Nlc3Mgc2hpbSB0byBiZSBsb2FkZWQgCisgICAgLy8gYnkgYW55IGNoaWxkIHByb2Nlc3Nl
cyB0aGF0IHRoZSBwbHVnLWluIG1heSBsYXVuY2guCisgICAgdW5zZXRlbnYoIkRZTERfSU5TRVJU
X0xJQlJBUklFUyIpOworCisgICAgbm90SW1wbGVtZW50ZWQoKTsKKworICAgIFN0cmluZyBzZXJ2
aWNlTmFtZSA9IGNvbW1hbmRMaW5lWyJzZXJ2aWNlbmFtZSJdOworICAgIGlmIChzZXJ2aWNlTmFt
ZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisKKyAgICBTdHJpbmcg
bG9jYWxpemF0aW9uID0gY29tbWFuZExpbmVbImxvY2FsaXphdGlvbiJdOworCisjaWYgIVNIT1df
Q1JBU0hfUkVQT1JURVIKKyAgICAvLyBJbnN0YWxscyBzaWduYWwgaGFuZGxlcnMgdGhhdCBleGl0
IG9uIGEgY3Jhc2ggc28gdGhhdCBDcmFzaFJlcG9ydGVyIGRvZXMgbm90IHNob3cgdXAuCisgICAg
c2lnbmFsKFNJR0lMTCwgX2V4aXQpOworICAgIHNpZ25hbChTSUdGUEUsIF9leGl0KTsKKyAgICBz
aWduYWwoU0lHQlVTLCBfZXhpdCk7CisgICAgc2lnbmFsKFNJR1NFR1YsIF9leGl0KTsKKyNlbmRp
ZgorCisgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CisgICAgV1RGOjppbml0aWFsaXpl
TWFpblRocmVhZCgpOworICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOworCisg
ICAgUnVuTG9vcDo6cnVuKCk7CisKKyAgICByZXR1cm4gMDsKK30KKworfQorCisjZW5kaWYgLy8g
RU5BQkxFKFBMVUdJTl9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2lu
UHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzUXQuY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9xdC9QbHVnaW5Qcm9jZXNzUXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNz
UXQuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzcy5oIgorCisjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNT
KQorCisjaW5jbHVkZSAiTmV0c2NhcGVQbHVnaW4uaCIKKyNpbmNsdWRlICJQbHVnaW5Qcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSA8ZGxmY24uaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL05vdEltcGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFBsdWdp
blByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBQbHVnaW5Qcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5IGIv
U291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
Y3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKQEAgLTQ0NCw1NSArNDQ0LDcxIEBAIGRlZiBoZWFk
ZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICByZXR1cm4gW10KICAgICBpZiBzcGxpdFswXSA9
PSAnV2ViS2l0JyBvciBzcGxpdFswXSA9PSAnQ29yZUlQQyc6CiAgICAgICAgIHJldHVybiBbJyIl
cy5oIicgJSBzcGxpdFsxXV0KICAgICByZXR1cm4gWyc8JXMvJXMuaD4nICUgdHVwbGUoc3BsaXQp
XQogCiAKIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIoZmlsZSk6CiAgICAgcmVjZWl2ZXIg
PSBNZXNzYWdlUmVjZWl2ZXIucGFyc2UoZmlsZSkKLSAgICBoZWFkZXJzID0gc2V0KFsKLSAgICAg
ICAgJyIlcyInICUgbWVzc2FnZXNfaGVhZGVyX2ZpbGVuYW1lKHJlY2VpdmVyKSwKLSAgICAgICAg
JyJIYW5kbGVNZXNzYWdlLmgiJywKLSAgICAgICAgJyJBcmd1bWVudERlY29kZXIuaCInLAotICAg
IF0pCisgICAgaGVhZGVycyA9IHsKKyAgICAgICAgJyIlcyInICUgbWVzc2FnZXNfaGVhZGVyX2Zp
bGVuYW1lKHJlY2VpdmVyKTogTm9uZSwKKyAgICAgICAgJyJIYW5kbGVNZXNzYWdlLmgiJzogTm9u
ZSwKKyAgICAgICAgJyJBcmd1bWVudERlY29kZXIuaCInOiBOb25lLAorICAgIH0KIAorICAgIG51
bSA9IDAKICAgICBmb3IgcGFyYW1ldGVyIGluIHJlY2VpdmVyLml0ZXJwYXJhbWV0ZXJzKCk6CiAg
ICAgICAgIHR5cGUgPSBwYXJhbWV0ZXIudHlwZQorICAgICAgICBjb25kaXRpb24gPSBOb25lCisg
ICAgICAgIGlmIGxlbihyZWNlaXZlci5tZXNzYWdlcykgPiBudW06CisgICAgICAgICAgICBjb25k
aXRpb24gPSByZWNlaXZlci5tZXNzYWdlc1tudW1dLmNvbmRpdGlvbgorICAgICAgICBudW0gKz0g
MQorCiAgICAgICAgIGFyZ3VtZW50X2VuY29kZXJfaGVhZGVycyA9IGFyZ3VtZW50X2NvZGVyX2hl
YWRlcnNfZm9yX3R5cGUocGFyYW1ldGVyLnR5cGUpCiAgICAgICAgIGlmIGFyZ3VtZW50X2VuY29k
ZXJfaGVhZGVyczoKLSAgICAgICAgICAgIGhlYWRlcnMudXBkYXRlKGFyZ3VtZW50X2VuY29kZXJf
aGVhZGVycykKKyAgICAgICAgICAgIGZvciBoZWFkZXIgaW4gYXJndW1lbnRfZW5jb2Rlcl9oZWFk
ZXJzOgorICAgICAgICAgICAgICAgIGhlYWRlcnNbaGVhZGVyXSA9IGNvbmRpdGlvbgogICAgICAg
ICAgICAgY29udGludWUKIAogICAgICAgICB0eXBlX2hlYWRlcnMgPSBoZWFkZXJzX2Zvcl90eXBl
KHR5cGUpCi0gICAgICAgIGhlYWRlcnMudXBkYXRlKHR5cGVfaGVhZGVycykKKyAgICAgICAgZm9y
IGhlYWRlciBpbiB0eXBlX2hlYWRlcnM6CisgICAgICAgICAgICBoZWFkZXJzW2hlYWRlcl0gPSBj
b25kaXRpb24KIAogICAgIGZvciBtZXNzYWdlIGluIHJlY2VpdmVyLm1lc3NhZ2VzOgogICAgICAg
ICBpZiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnMgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBm
b3IgcmVwbHlfcGFyYW1ldGVyIGluIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVyczoKICAgICAgICAg
ICAgICAgICB0eXBlID0gcmVwbHlfcGFyYW1ldGVyLnR5cGUKICAgICAgICAgICAgICAgICBhcmd1
bWVudF9lbmNvZGVyX2hlYWRlcnMgPSBhcmd1bWVudF9jb2Rlcl9oZWFkZXJzX2Zvcl90eXBlKHR5
cGUpCiAgICAgICAgICAgICAgICAgaWYgYXJndW1lbnRfZW5jb2Rlcl9oZWFkZXJzOgotICAgICAg
ICAgICAgICAgICAgICBoZWFkZXJzLnVwZGF0ZShhcmd1bWVudF9lbmNvZGVyX2hlYWRlcnMpCisg
ICAgICAgICAgICAgICAgICAgIGZvciBoZWFkZXIgaW4gYXJndW1lbnRfZW5jb2Rlcl9oZWFkZXJz
OgorICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyc1toZWFkZXJdID0gbWVzc2FnZS5jb25k
aXRpb24KICAgICAgICAgICAgICAgICAgICAgY29udGludWUKIAogICAgICAgICAgICAgICAgIHR5
cGVfaGVhZGVycyA9IGhlYWRlcnNfZm9yX3R5cGUodHlwZSkKLSAgICAgICAgICAgICAgICBoZWFk
ZXJzLnVwZGF0ZSh0eXBlX2hlYWRlcnMpCisgICAgICAgICAgICAgICAgZm9yIGhlYWRlciBpbiB0
eXBlX2hlYWRlcnM6CisgICAgICAgICAgICAgICAgICAgIGhlYWRlcnNbaGVhZGVyXSA9IG1lc3Nh
Z2UuY29uZGl0aW9uCiAKICAgICByZXN1bHQgPSBbXQogCiAgICAgcmVzdWx0LmFwcGVuZChfbGlj
ZW5zZV9oZWFkZXIpCiAgICAgcmVzdWx0LmFwcGVuZCgnI2luY2x1ZGUgImNvbmZpZy5oIlxuJykK
ICAgICByZXN1bHQuYXBwZW5kKCdcbicpCiAKICAgICBpZiByZWNlaXZlci5jb25kaXRpb246CiAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoJyNpZiAlc1xuXG4nICUgcmVjZWl2ZXIuY29uZGl0aW9uKQog
CiAgICAgcmVzdWx0LmFwcGVuZCgnI2luY2x1ZGUgIiVzLmgiXG5cbicgJSByZWNlaXZlci5uYW1l
KQotICAgIHJlc3VsdCArPSBbJyNpbmNsdWRlICVzXG4nICUgaGVhZGVyIGZvciBoZWFkZXIgaW4g
c29ydGVkKGhlYWRlcnMpXQorICAgIGZvciBoZWFkZXJjb25kaXRpb24gaW4gc29ydGVkKGhlYWRl
cnMpOgorICAgICAgICBpZiBoZWFkZXJzW2hlYWRlcmNvbmRpdGlvbl06CisgICAgICAgICAgICBy
ZXN1bHQuYXBwZW5kKCcjaWYgJXNcbicgJSBoZWFkZXJzW2hlYWRlcmNvbmRpdGlvbl0pCisgICAg
ICAgICAgICByZXN1bHQgKz0gWycjaW5jbHVkZSAlc1xuJyAlIGhlYWRlcmNvbmRpdGlvbl0KKyAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyNlbmRpZiAvLyAlc1xuJyAlIGhlYWRlcnNbaGVhZGVy
Y29uZGl0aW9uXSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJlc3VsdCArPSBbJyNpbmNs
dWRlICVzXG4nICUgaGVhZGVyY29uZGl0aW9uXQogICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKIAog
ICAgIHJlc3VsdC5hcHBlbmQoJ25hbWVzcGFjZSBXZWJLaXQge1xuXG4nKQogCiAgICAgYXN5bmNf
bWVzc2FnZXMgPSBbXQogICAgIHN5bmNfbWVzc2FnZXMgPSBbXQogICAgIGZvciBtZXNzYWdlIGlu
IHJlY2VpdmVyLm1lc3NhZ2VzOgogICAgICAgICBpZiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnMg
aXMgbm90IE5vbmU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9O
UElkZW50aWZpZXJEYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QSWRl
bnRpZmllckRhdGEuY3BwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QSWRl
bnRpZmllckRhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QSWRl
bnRpZmllckRhdGEuY3BwCkBAIC0xOSwyMiArMTksMjQgQEAKICAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwog
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KICAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCiAgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCiAg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAogI2luY2x1ZGUgImNvbmZp
Zy5oIgorCiAjaW5jbHVkZSAiTlBJZGVudGlmaWVyRGF0YS5oIgogCiAjaWYgRU5BQkxFKFBMVUdJ
Tl9QUk9DRVNTKQogCiAjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCiAjaW5jbHVkZSAiQXJn
dW1lbnRFbmNvZGVyLmgiCisKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0lkZW50aWZpZXJSZXAuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdElt
cGxlbWVudGVkLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBPYmpl
Y3RQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdFByb3h5
LmNwcAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdFByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdFByb3h5LmNwcApA
QCAtMjUsMTcgKzI1LDE2IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJOUE9i
amVjdFByb3h5LmgiCiAKICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAKICNpbmNsdWRlICJB
cmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJOUElk
ZW50aWZpZXJEYXRhLmgiCiAjaW5jbHVkZSAiTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIk5QUmVtb3RlT2JqZWN0TWFwLmgiCiAjaW5jbHVkZSAiTlBSdW50aW1l
VXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiTlBWYXJpYW50RGF0YS5oIgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogTlBPYmplY3RQcm94eSogTlBPYmplY3RQcm94eTo6Y3JlYXRlKE5QUmVtb3RlT2Jq
ZWN0TWFwKiBucFJlbW90ZU9iamVjdE1hcCwgdWludDY0X3QgbnBPYmplY3RJRCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0TWFwLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0TWFwLmNwcAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuY3BwCkBA
IC0xNDAsMTcgKzE0MCwxNyBAQCBOUFZhcmlhbnQgTlBSZW1vdGVPYmplY3RNYXA6Om5wVmFyaWFu
dERhCiAKICAgICBzd2l0Y2ggKG5wVmFyaWFudERhdGEudHlwZSgpKSB7CiAgICAgY2FzZSBOUFZh
cmlhbnREYXRhOjpWb2lkOgogICAgICAgICBWT0lEX1RPX05QVkFSSUFOVChucFZhcmlhbnQpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIE5QVmFyaWFudERhdGE6Ok51bGw6CiAgICAgICAgIE5V
TExfVE9fTlBWQVJJQU5UKG5wVmFyaWFudCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgTlBW
YXJpYW50RGF0YTo6Qm9vbDoKKyAgICBjYXNlIE5QVmFyaWFudERhdGE6OkJvb2xlYW46CiAgICAg
ICAgIEJPT0xFQU5fVE9fTlBWQVJJQU5UKG5wVmFyaWFudERhdGEuYm9vbFZhbHVlKCksIG5wVmFy
aWFudCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTlBWYXJpYW50RGF0YTo6SW50MzI6CiAg
ICAgICAgIElOVDMyX1RPX05QVkFSSUFOVChucFZhcmlhbnREYXRhLmludDMyVmFsdWUoKSwgbnBW
YXJpYW50KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBOUFZhcmlhbnREYXRhOjpEb3VibGU6
CiAgICAgICAgIERPVUJMRV9UT19OUFZBUklBTlQobnBWYXJpYW50RGF0YS5kb3VibGVWYWx1ZSgp
LCBucFZhcmlhbnQpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9QbHVnaW5zL05QVmFyaWFudERhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1BsdWdpbnMvTlBWYXJpYW50RGF0YS5jcHAKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Bs
dWdpbnMvTlBWYXJpYW50RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdp
bnMvTlBWYXJpYW50RGF0YS5jcHAKQEAgLTU4LDE3ICs1OCwxNyBAQCBOUFZhcmlhbnREYXRhIE5Q
VmFyaWFudERhdGE6Om1ha2VOdWxsKCkKICAgICAKICAgICByZXR1cm4gbnBWYXJpYW50RGF0YTsK
IH0KICAgICAKIE5QVmFyaWFudERhdGEgTlBWYXJpYW50RGF0YTo6bWFrZUJvb2woYm9vbCB2YWx1
ZSkKIHsKICAgICBOUFZhcmlhbnREYXRhIG5wVmFyaWFudERhdGE7CiAKLSAgICBucFZhcmlhbnRE
YXRhLm1fdHlwZSA9IE5QVmFyaWFudERhdGE6OkJvb2w7CisgICAgbnBWYXJpYW50RGF0YS5tX3R5
cGUgPSBOUFZhcmlhbnREYXRhOjpCb29sZWFuOwogICAgIG5wVmFyaWFudERhdGEubV9ib29sVmFs
dWUgPSB2YWx1ZTsKIAogICAgIHJldHVybiBucFZhcmlhbnREYXRhOwogfQogCiBOUFZhcmlhbnRE
YXRhIE5QVmFyaWFudERhdGE6Om1ha2VJbnQzMihpbnQzMl90IHZhbHVlKQogewogICAgIE5QVmFy
aWFudERhdGEgbnBWYXJpYW50RGF0YTsKQEAgLTEyMiwxNyArMTIyLDE3IEBAIE5QVmFyaWFudERh
dGEgTlBWYXJpYW50RGF0YTo6bWFrZVJlbW90ZU4KIHZvaWQgTlBWYXJpYW50RGF0YTo6ZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVy
LT5lbmNvZGUobV90eXBlKTsKIAogICAgIHN3aXRjaCAodHlwZSgpKSB7CiAgICAgY2FzZSBOUFZh
cmlhbnREYXRhOjpWb2lkOgogICAgIGNhc2UgTlBWYXJpYW50RGF0YTo6TnVsbDoKICAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBOUFZhcmlhbnREYXRhOjpCb29sOgorICAgIGNhc2UgTlBWYXJpYW50
RGF0YTo6Qm9vbGVhbjoKICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGJvb2xWYWx1ZSgpKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBOUFZhcmlhbnREYXRhOjpJbnQzMjoKICAgICAgICAgZW5j
b2Rlci0+ZW5jb2RlKGludDMyVmFsdWUoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTlBW
YXJpYW50RGF0YTo6RG91YmxlOgogICAgICAgICBlbmNvZGVyLT5lbmNvZGUoZG91YmxlVmFsdWUo
KSk7CiAgICAgICAgIGJyZWFrOwpAQCAtMTY0LDE3ICsxNjQsMTcgQEAgYm9vbCBOUFZhcmlhbnRE
YXRhOjpkZWNvZGUoQ29yZUlQQzo6QXJndQogICAgICAgICB0eXBlID0gTlBWYXJpYW50RGF0YTo6
TG9jYWxOUE9iamVjdElEOwogCiAgICAgcmVzdWx0Lm1fdHlwZSA9IHR5cGU7CiAKICAgICBzd2l0
Y2ggKHJlc3VsdC5tX3R5cGUpIHsKICAgICBjYXNlIE5QVmFyaWFudERhdGE6OlZvaWQ6CiAgICAg
Y2FzZSBOUFZhcmlhbnREYXRhOjpOdWxsOgogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBjYXNl
IE5QVmFyaWFudERhdGE6OkJvb2w6CisgICAgY2FzZSBOUFZhcmlhbnREYXRhOjpCb29sZWFuOgog
ICAgICAgICByZXR1cm4gZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX2Jvb2xWYWx1ZSk7CiAgICAg
Y2FzZSBOUFZhcmlhbnREYXRhOjpJbnQzMjoKICAgICAgICAgcmV0dXJuIGRlY29kZXItPmRlY29k
ZShyZXN1bHQubV9pbnQzMlZhbHVlKTsKICAgICBjYXNlIE5QVmFyaWFudERhdGE6OkRvdWJsZToK
ICAgICAgICAgcmV0dXJuIGRlY29kZXItPmRlY29kZShyZXN1bHQubV9kb3VibGVWYWx1ZSk7CiAg
ICAgY2FzZSBOUFZhcmlhbnREYXRhOjpTdHJpbmc6CiAgICAgICAgIHJldHVybiBkZWNvZGVyLT5k
ZWNvZGUocmVzdWx0Lm1fc3RyaW5nVmFsdWUpOwogICAgIGNhc2UgTlBWYXJpYW50RGF0YTo6TG9j
YWxOUE9iamVjdElEOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMv
TlBWYXJpYW50RGF0YS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBWYXJpYW50
RGF0YS5oCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QVmFyaWFudERhdGEu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFZhcmlhbnREYXRhLmgKQEAg
LTM5LDE3ICszOSwxNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogLy8gVGhlIENvcmVJUEMgcmVw
cmVzZW50YXRpb24gb2YgYW4gTlBWYXJpYW50LgogCiBjbGFzcyBOUFZhcmlhbnREYXRhIHsKIHB1
YmxpYzoKICAgICBlbnVtIFR5cGUgewogICAgICAgICBWb2lkLAogICAgICAgICBOdWxsLAotICAg
ICAgICBCb29sLAorICAgICAgICBCb29sZWFuLAogICAgICAgICBJbnQzMiwKICAgICAgICAgRG91
YmxlLAogICAgICAgICBTdHJpbmcsCiAgICAgICAgIExvY2FsTlBPYmplY3RJRCwKICAgICAgICAg
UmVtb3RlTlBPYmplY3RJRCwKICAgICB9OwogICAgIE5QVmFyaWFudERhdGEoKTsKIApAQCAtNjEs
MTcgKzYxLDE3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgTlBWYXJpYW50RGF0YSBtYWtlU3RyaW5n
KGNvbnN0IGNoYXIqIHN0cmluZywgdW5zaWduZWQgbGVuZ3RoKTsKICAgICBzdGF0aWMgTlBWYXJp
YW50RGF0YSBtYWtlTG9jYWxOUE9iamVjdElEKHVpbnQ2NF90IHZhbHVlKTsKICAgICBzdGF0aWMg
TlBWYXJpYW50RGF0YSBtYWtlUmVtb3RlTlBPYmplY3RJRCh1aW50NjRfdCB2YWx1ZSk7CiAKICAg
ICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxUeXBlPihtX3R5cGUpOyB9
CiAKICAgICBib29sIGJvb2xWYWx1ZSgpIGNvbnN0CiAgICAgewotICAgICAgICBBU1NFUlQodHlw
ZSgpID09IE5QVmFyaWFudERhdGE6OkJvb2wpOworICAgICAgICBBU1NFUlQodHlwZSgpID09IE5Q
VmFyaWFudERhdGE6OkJvb2xlYW4pOwogICAgICAgICByZXR1cm4gbV9ib29sVmFsdWU7CiAgICAg
fQogCiAgICAgaW50MzJfdCBpbnQzMlZhbHVlKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VS
VCh0eXBlKCkgPT0gTlBWYXJpYW50RGF0YTo6SW50MzIpOwogICAgICAgICByZXR1cm4gbV9pbnQz
MlZhbHVlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5z
L1BsdWdpblF1aXJrcy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvUGx1Z2luUXVp
cmtzLmgKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvUGx1Z2luUXVpcmtzLmgK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvUGx1Z2luUXVpcmtzLmgKQEAgLTIx
LDE2ICsyMSwyNiBAQAogICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKICAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKICAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCiAjaWZuZGVmIFBsdWdpblF1aXJr
c19oCiAjZGVmaW5lIFBsdWdpblF1aXJrc19oCiAKKyNpZiBQTEFURk9STShNQUMpIHx8IChPUyhN
QUNfT1NfWCkgJiYgUExBVEZPUk0oUVQpKQorI2RlZmluZSBQTFVHSU5fQVJDSElURUNUVVJFX01B
QyAxCisjZWxpZiBQTEFURk9STShXSU4pIHx8IChPUyhXSU5ET1dTKSAmJiBQTEFURk9STShRVCkp
CisjZGVmaW5lIFBMVUdJTl9BUkNISVRFQ1RVUkVfV0lOIDEKKyNlbGlmIChQTEFURk9STShRVCkg
JiYgZGVmaW5lZChRX1dTX1gxMSkpIHx8IChQTEFURk9STShHVEspICYmIE9TKFVOSVgpICYmICFP
UyhNQUNfT1NfWCkpCisjZGVmaW5lIFBMVUdJTl9BUkNISVRFQ1RVUkVfWDExIDEKKyNlbmRpZgor
CisjZGVmaW5lIFBMVUdJTl9BUkNISVRFQ1RVUkUoQVJDSCkgKGRlZmluZWQgUExVR0lOX0FSQ0hJ
VEVDVFVSRV8jI0FSQ0ggJiYgUExVR0lOX0FSQ0hJVEVDVFVSRV8jI0FSQ0gpCisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBQbHVnaW5RdWlya3MgewogcHVibGljOgogICAgIGVudW0gUGx1
Z2luUXVpcmsgewogICAgICAgICAvLyBNYWMgc3BlY2lmaWMgcXVpcmtzOgogI2lmIFBMVUdJTl9B
UkNISVRFQ1RVUkUoTUFDKQogICAgICAgICAvLyBUaGUgcGx1Zy1pbiB3YW50cyB0aGUgY2FsbCB0
byBnZXRwcm9nYW1lKCkgdG8gcmV0dXJuICJXZWJLaXRQbHVnaW5Ib3N0Ii4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3Bw
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vz
c1Byb3h5LmNwcApAQCAtMjMsMTcgKzIzLDE5IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBsdWdpblBy
b2Nlc3NQcm94eS5oIgogCiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogCisjaWYgUExBVEZP
Uk0oTUFDKQogI2luY2x1ZGUgIk1hY2hQb3J0LmgiCisjZW5kaWYKICNpbmNsdWRlICJQbHVnaW5Q
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc01hbmFn
ZXIuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSdW5M
b29wLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2Vi
UGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAK
QEAgLTExNywxOCArMTE5LDIxIEBAIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpjbGVhclNpdGVE
YXRhKFcKIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpwbHVnaW5Qcm9jZXNzQ3Jhc2hlZE9yRmFp
bGVkVG9MYXVuY2goKQogewogICAgIC8vIFRoZSBwbHVnLWluIHByb2Nlc3MgbXVzdCBoYXZlIGNy
YXNoZWQgb3IgZXhpdGVkLCBzZW5kIGFueSBwZW5kaW5nIHN5bmMgcmVwbGllcyB3ZSBtaWdodCBo
YXZlLgogICAgIHdoaWxlICghbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMuaXNFbXB0eSgpKSB7
CiAgICAgICAgIFJlZlB0cjxXZWJQcm9jZXNzUHJveHk+IHJlcGx5V2ViUHJvY2Vzc1Byb3h5ID0g
bV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMuZmlyc3QoKS5maXJzdC5yZWxlYXNlKCk7CiAgICAg
ICAgIENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogcmVwbHkgPSBtX3BlbmRpbmdDb25uZWN0aW9u
UmVwbGllcy5maXJzdCgpLnNlY29uZDsKICAgICAgICAgbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxp
ZXMucmVtb3ZlRmlyc3QoKTsKIAotICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBNYWMgc3BlY2lm
aWMuCisjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICByZXBseS0+ZW5jb2RlKENvcmVJUEM6Ok1h
Y2hQb3J0KDAsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKSk7CisjZWxzZQorICAgICAgICBBU1NF
UlQoZmFsc2UpOworI2VuZGlmCiAgICAgICAgIHJlcGx5V2ViUHJvY2Vzc1Byb3h5LT5jb25uZWN0
aW9uKCktPnNlbmRTeW5jUmVwbHkocmVwbHkpOwogICAgIH0KIAogICAgIHdoaWxlICghbV9wZW5k
aW5nR2V0U2l0ZXNSZXBsaWVzLmlzRW1wdHkoKSkKICAgICAgICAgZGlkR2V0U2l0ZXNXaXRoRGF0
YShWZWN0b3I8U3RyaW5nPigpLCBtX3BlbmRpbmdHZXRTaXRlc1JlcGxpZXMuYmVnaW4oKS0+Zmly
c3QpOwogCiAgICAgd2hpbGUgKCFtX3BlbmRpbmdDbGVhclNpdGVEYXRhUmVwbGllcy5pc0VtcHR5
KCkpCiAgICAgICAgIGRpZENsZWFyU2l0ZURhdGEobV9wZW5kaW5nQ2xlYXJTaXRlRGF0YVJlcGxp
ZXMuYmVnaW4oKS0+Zmlyc3QpOwpAQCAtMTk0LDE4ICsxOTksMjAgQEAgdm9pZCBQbHVnaW5Qcm9j
ZXNzUHJveHk6OmRpZENyZWF0ZVdlYlBybwogewogICAgIEFTU0VSVCghbV9wZW5kaW5nQ29ubmVj
dGlvblJlcGxpZXMuaXNFbXB0eSgpKTsKIAogICAgIC8vIEdyYWIgdGhlIGZpcnN0IHBlbmRpbmcg
Y29ubmVjdGlvbiByZXBseS4KICAgICBSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiByZXBseVdlYlBy
b2Nlc3NQcm94eSA9IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmZpcnN0KCkuZmlyc3QucmVs
ZWFzZSgpOwogICAgIENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogcmVwbHkgPSBtX3BlbmRpbmdD
b25uZWN0aW9uUmVwbGllcy5maXJzdCgpLnNlY29uZDsKICAgICBtX3BlbmRpbmdDb25uZWN0aW9u
UmVwbGllcy5yZW1vdmVGaXJzdCgpOwogCisjaWYgUExBVEZPUk0oTUFDKQogICAgIC8vIEZJWE1F
OiBUaGlzIGlzIE1hYyBzcGVjaWZpYy4KICAgICByZXBseS0+ZW5jb2RlKENvcmVJUEM6Ok1hY2hQ
b3J0KG1hY2hQb3J0LnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpKTsKKyNlbmRpZgog
ICAgIHJlcGx5V2ViUHJvY2Vzc1Byb3h5LT5jb25uZWN0aW9uKCktPnNlbmRTeW5jUmVwbHkocmVw
bHkpOwogfQogCiB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6ZGlkR2V0U2l0ZXNXaXRoRGF0YShj
b25zdCBWZWN0b3I8U3RyaW5nPiYgc2l0ZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7CiAgICAg
UmVmUHRyPFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcj4gd2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2Vy
ID0gbV9wZW5kaW5nR2V0U2l0ZXNSZXBsaWVzLnRha2UoY2FsbGJhY2tJRCk7CiAgICAgQVNTRVJU
KHdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5p
bgotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0xOCwxNiArMTgsMTcgQEAKICMgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIKICMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKICMgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KIAogI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKIAogbWVzc2Fn
ZXMgLT4gUGx1Z2luUHJvY2Vzc1Byb3h5IHsKLSAgICAjIEZJWE1FOiBUaGlzIGlzIHBsYXRmb3Jt
IHNwZWNpZmljCisjaWYgUExBVEZPUk0oTUFDKQogICAgIERpZENyZWF0ZVdlYlByb2Nlc3NDb25u
ZWN0aW9uKENvcmVJUEM6Ok1hY2hQb3J0IGNvbm5lY3Rpb25JZGVudGlmaWVyKQorI2VuZGlmCiAK
ICAgICBEaWRHZXRTaXRlc1dpdGhEYXRhKFZlY3RvcjxXVEY6OlN0cmluZz4gc2l0ZXMsIHVpbnQ2
NF90IGNhbGxiYWNrSUQpCiAgICAgRGlkQ2xlYXJTaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lE
KQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVn
aW5zL3F0L1BsdWdpblByb2Nlc3NQcm94eVF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QbHVnaW5zL3F0L1BsdWdpblByb2Nlc3NQcm94eVF0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL3F0
L1BsdWdpblByb2Nlc3NQcm94eVF0LmNwcApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NQcm94eS5oIgorCisj
aWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQorCisjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBQbHVnaW5Qcm9j
ZXNzUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZVBsdWdpblByb2Nlc3MoUGx1Z2luUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKK3sKKworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIucHJpIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcmkKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcmkKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0
Mi5wcmkKQEAgLTQ5LDE3ICs0OSwxOCBAQCBXRUJLSVQyX0lOQ0xVREVQQVRIID0gXAogICAgICQk
U09VUkNFX0RJUi9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MgXAogICAg
ICQkU09VUkNFX0RJUi9XZWJLaXQyL1dlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlIFwKICAgICAk
JFNPVVJDRV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMgXAogICAgICQkU09VUkNFX0RJ
Ui9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZSBcCiAgICAgJCRTT1VSQ0VfRElS
L1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIFwKICAgICAkJFNPVVJDRV9ESVIvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0IFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0IFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UgXAotICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1dlYlByb2Nl
c3MvcXQKKyAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0IFwKKyAgICAkJFNP
VVJDRV9ESVIvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzCiAKICMgT24gU3ltYmlhbiBQUkVQRU5EX0lO
Q0xVREVQQVRIIGlzIHRoZSBiZXN0IHdheSB0byBtYWtlIHN1cmUgdGhhdCBXZWJLaXQgaGVhZGVy
cwogIyBhcmUgaW5jbHVkZWQgYmVmb3JlIHBsYXRmb3JtIGhlYWRlcnMuCiAKIHN5bWJpYW4gewog
ICAgIFBSRVBFTkRfSU5DTFVERVBBVEggPSAkJFdFQktJVDJfSU5DTFVERVBBVEggJCRXRUJLSVQy
X0dFTkVSQVRFRF9TT1VSQ0VTX0RJUiAkJFBSRVBFTkRfSU5DTFVERVBBVEgKIH0gZWxzZSB7CiAg
ICAgSU5DTFVERVBBVEggPSAkJFdFQktJVDJfSU5DTFVERVBBVEggJCRXRUJLSVQyX0dFTkVSQVRF
RF9TT1VSQ0VTX0RJUiAkJElOQ0xVREVQQVRICmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJLaXQyLnBybyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCi0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYktpdDIucHJvCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCkBAIC0xNiwx
NiArMTYsMTcgQEAgVEFSR0VUID0gJCRXRUJLSVQyX1RBUkdFVAogREVTVERJUiA9ICQkV0VCS0lU
Ml9ERVNURElSCiAKICMgQnVpbGQgYm90aCBkZWJ1ZyBhbmQgcmVsZWFzZSBjb25maWd1cmF0aW9u
cwogbWFjOiBDT05GSUcgKz0gYnVpbGRfYWxsCiAKIFdFQktJVDJfR0VORVJBVEVEX0hFQURFUlMg
PSBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9BdXRoZW50aWNhdGlvbk1h
bmFnZXJNZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL0Rv
d25sb2FkUHJveHlNZXNzYWdlcy5oIFwKKyAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNf
RElSL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyTWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dF
TkVSQVRFRF9TT1VSQ0VTX0RJUi9QbHVnaW5Db250cm9sbGVyUHJveHlNZXNzYWdlcy5oIFwKICAg
ICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1BsdWdpblByb2Nlc3NNZXNzYWdlcy5o
IFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1BsdWdpblByb2Nlc3NQcm94
eU1lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvUGx1Z2lu
UHJveHlNZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dl
YkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVS
QVRFRF9TT1VSQ0VTX0RJUi9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMu
aCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJDb250ZXh0TWVzc2Fn
ZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJDb29raWVNYW5h
Z2VyTWVzc2FnZXMuaCBcCkBAIC00NCwxNiArNDUsMTcgQEAgV0VCS0lUMl9HRU5FUkFURURfSEVB
REVSUyA9IFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlByb2Nlc3NN
ZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlByb2Nl
c3NQcm94eU1lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIv
V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJB
VEVEX1NPVVJDRVNfRElSL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oCiAK
IFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVMgPSBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9T
T1VSQ0VTX0RJUi9BdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAg
ICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL0Rvd25sb2FkUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwIFwKKyAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL05QT2JqZWN0
TWVzc2FnZVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVS
QVRFRF9TT1VSQ0VTX0RJUi9QbHVnaW5Db250cm9sbGVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
IFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1BsdWdpblByb2Nlc3NNZXNz
YWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1Bs
dWdpblByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAogICAgICQkV0VCS0lUMl9HRU5F
UkFURURfU09VUkNFU19ESVIvUGx1Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAk
JFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJ
Ui9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAg
ICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJDb250ZXh0TWVzc2FnZVJlY2Vp
dmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJDb29raWVN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCkBAIC0xMzQsMTYgKzEzNiwyMyBAQCBIRUFERVJT
ICs9IFwKICAgICBTaGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5oIFwKICAgICBTaGFyZWQvV2ViUG9w
dXBJdGVtLmggXAogICAgIFNoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmggXAogICAgIFNoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggXAogICAgIFNoYXJlZC9XZWJVUkxSZXF1
ZXN0LmggXAogICAgIFNoYXJlZC9XZWJVUkxSZXNwb25zZS5oIFwKICAgICBTaGFyZWQvV2ViVXNl
ckNvbnRlbnRVUkxQYXR0ZXJuLmggXAogICAgIFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL05ldHNj
YXBlUGx1Z2luTW9kdWxlLmggXAorICAgIFNoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0TWFw
LmggXAorICAgIFNoYXJlZC9QbHVnaW5zL05QSWRlbnRpZmllckRhdGEuaCBcCisgICAgU2hhcmVk
L1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuaCBcCisgICAgU2hhcmVkL1BsdWdpbnMv
TlBPYmplY3RQcm94eS5oIFwKKyAgICBTaGFyZWQvUGx1Z2lucy9OUFZhcmlhbnREYXRhLmggXAor
ICAgIFNoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBcCisg
ICAgU2hhcmVkL1BsdWdpbnMvUGx1Z2luUXVpcmtzLmggXAogICAgIFNoYXJlZC9xdC9QbGF0Zm9y
bUNlcnRpZmljYXRlSW5mby5oIFwKICAgICBTaGFyZWQvcXQvVXBkYXRlQ2h1bmsuaCBcCiAgICAg
U2hhcmVkL3F0L1dlYkV2ZW50RmFjdG9yeVF0LmggXAogICAgIFVJUHJvY2Vzcy9BdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmggXAogICAgIFVJUHJvY2Vzcy9BdXRo
ZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuaCBcCiAgICAgVUlQcm9j
ZXNzL0F1dGhlbnRpY2F0aW9uL1dlYkNyZWRlbnRpYWwuaCBcCiAgICAgVUlQcm9jZXNzL0F1dGhl
bnRpY2F0aW9uL1dlYlByb3RlY3Rpb25TcGFjZS5oIFwKICAgICBVSVByb2Nlc3MvQ2h1bmtlZFVw
ZGF0ZURyYXdpbmdBcmVhUHJveHkuaCBcCkBAIC0xNTIsMTYgKzE2MSwxOCBAQCBIRUFERVJTICs9
IFwKICAgICBVSVByb2Nlc3MvRmluZEluZGljYXRvci5oIFwKICAgICBVSVByb2Nlc3MvR2VuZXJp
Y0NhbGxiYWNrLmggXAogICAgIFVJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmggXAogICAgIFVJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oIFwK
ICAgICBVSVByb2Nlc3MvTGF1bmNoZXIvVGhyZWFkTGF1bmNoZXIuaCBcCiAgICAgVUlQcm9jZXNz
L1BhZ2VDbGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luSW5mb1N0b3JlLmgg
XAorICAgIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oIFwKKyAgICBVSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5oIFwKICAgICBVSVByb2Nlc3MvUHJv
Y2Vzc01vZGVsLmggXAogICAgIFVJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmggXAogICAg
IFVJUHJvY2Vzcy9UZXh0Q2hlY2tlci5oIFwKICAgICBVSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJl
YVByb3h5LmggXAogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmggXAogICAgIFVJ
UHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmggXAogICAgIFVJUHJvY2Vz
cy9XZWJDb250ZXh0LmggXAogICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVD
bGllbnQuaCBcCkBAIC0yMjUsMTYgKzIzNiwxOSBAQCBIRUFERVJTICs9IFwKICAgICBXZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50aW1lT2JqZWN0TWFwLmggXAogICAgIFdlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVVdGlsaXRpZXMuaCBcCiAgICAgV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcCBcCiAgICAgV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmggXAogICAgIFdlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oIFwKICAgICBXZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luLmggXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9s
bGVyLmggXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmggXAorICAgIFdlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oIFwKKyAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uaCBcCisgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNv
bnRleHRNZW51Q2xpZW50LmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0
YWJhc2VNYW5hZ2VyLmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0Ns
aWVudC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5o
IFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVycm9ycy5oIFwKICAgICBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggXAogICAgIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaCBcCkBAIC0yNzMsMTYg
KzI4NywyMiBAQCBTT1VSQ0VTICs9IFwKICAgICBQbGF0Zm9ybS9Xb3JrUXVldWUuY3BwIFwKICAg
ICBQbGF0Zm9ybS9xdC9Nb2R1bGVRdC5jcHAgXAogICAgIFBsYXRmb3JtL3F0L1J1bkxvb3BRdC5j
cHAgXAogICAgIFBsYXRmb3JtL3F0L1NoYXJlZE1lbW9yeVF0LmNwcCBcCiAgICAgUGxhdGZvcm0v
cXQvV29ya1F1ZXVlUXQuY3BwIFwKICAgICBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2Fw
ZVBsdWdpbk1vZHVsZS5jcHAgXAogICAgIFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRz
Y2FwZVBsdWdpbk1vZHVsZVgxMS5jcHAgXAogICAgIFNoYXJlZC9TaGFyZWFibGVCaXRtYXAuY3Bw
IFwKKyAgICBTaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5jcHAgXAorICAgIFNoYXJl
ZC9QbHVnaW5zL05QSWRlbnRpZmllckRhdGEuY3BwIFwKKyAgICBTaGFyZWQvUGx1Z2lucy9OUE9i
amVjdE1lc3NhZ2VSZWNlaXZlci5jcHAgXAorICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0UHJv
eHkuY3BwIFwKKyAgICBTaGFyZWQvUGx1Z2lucy9OUFZhcmlhbnREYXRhLmNwcCBcCisgICAgU2hh
cmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgXAogICAgIFNo
YXJlZC9DaGlsZFByb2Nlc3MuY3BwIFwKICAgICBTaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5j
cHAgXAogICAgIFNoYXJlZC9Gb250SW5mby5jcHAgXAogICAgIFNoYXJlZC9JbW11dGFibGVBcnJh
eS5jcHAgXAogICAgIFNoYXJlZC9JbW11dGFibGVEaWN0aW9uYXJ5LmNwcCBcCiAgICAgU2hhcmVk
L011dGFibGVBcnJheS5jcHAgXAogICAgIFNoYXJlZC9NdXRhYmxlRGljdGlvbmFyeS5jcHAgXAog
ICAgIFNoYXJlZC9PcmlnaW5BbmREYXRhYmFzZXMuY3BwIFwKQEAgLTMzMCwxOCArMzUwLDIxIEBA
IFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9GaW5kSW5kaWNhdG9yLmNwcCBcCiAgICAgVUlQ
cm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIFwKICAg
ICBVSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCBcCiAgICAg
VUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9M
YXVuY2hlci9UaHJlYWRMYXVuY2hlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9MYXVuY2hlci9xdC9Q
cm9jZXNzTGF1bmNoZXJRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9MYXVuY2hlci9xdC9UaHJlYWRM
YXVuY2hlclF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luSW5mb1N0b3JlLmNw
cCBcCisgICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcCBcCisgICAg
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwIFwKICAgICBVSVByb2Nl
c3MvUGx1Z2lucy9XZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwIFwKICAgICBVSVByb2Nlc3Mv
UGx1Z2lucy9xdC9QbHVnaW5JbmZvU3RvcmVRdC5jcHAgXAorICAgIFVJUHJvY2Vzcy9QbHVnaW5z
L3F0L1BsdWdpblByb2Nlc3NQcm94eVF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL1Jlc3BvbnNpdmVu
ZXNzVGltZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVByb3h5LmNwcCBc
CiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuY3BwIFwKICAgICBVSVByb2Nlc3Mv
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJC
YWNrRm9yd2FyZExpc3QuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgXAogICAg
IFVJUHJvY2Vzcy9XZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwIFwKICAgICBVSVBy
b2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5jcHAgXApAQCAtNDE1LDE4ICs0MzgsMjIgQEAgU09V
UkNFUyArPSBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3Bw
IFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHAgXAogICAg
IFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuY3BwIFwKICAg
ICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50aW1lVXRpbGl0aWVzLmNwcCBcCiAg
ICAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcCBc
CiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcCBcCiAg
ICAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmNwcCBc
CiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3F0L05ldHNjYXBlUGx1Z2luUXQuY3Bw
IFwKKyAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvcXQvUGx1Z2luUHJveHlRdC5jcHAg
XAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwIFwKICAgICBXZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luVmlldy5jcHAgXAorICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94
eS5jcHAgXAorICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5j
cHAgXAorICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXIuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQu
Y3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFiYXNlTWFuYWdlci5j
cHAgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAgXAog
ICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBcCiAgICAg
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgXAogICAg
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwIFwKICAg
ICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0MkFQSS5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJLaXQyQVBJLnByaQotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyQVBJLnByaQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyQVBJLnByaQpAQCAtNTUsMjAgKzU1LDI0IEBAIFdFQktJVDJf
QVBJX1NPVVJDRVMgPSBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuY3BwIFwKICAgICAkJFNPVVJD
RV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5z
cGVjdG9yLmNwcCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5hdmlnYXRpb25BY3Rpb24uY3BwIFwKICAgICAkJFNPVVJD
RV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlTm9k
ZUhhbmRsZS5jcHAgXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VHcm91cC5jcHAg
XAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVQYWdlT3ZlcmxheS5jcHAgXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5jcHAgXAot
ICAgIFwKKyAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRy
b2xsZXJQcm94eS5jcHAgXAorICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1BsdWdpblByb2Nlc3Mv
UGx1Z2luUHJvY2Vzcy5jcHAgXAorICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1BsdWdpblByb2Nl
c3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIFwKKyAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL3F0L1BsdWdpbkNvbnRyb2xsZXJQcm94eVF0LmNwcCBcCisgICAgJCRTT1VS
Q0VfRElSL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzTWFpblF0LmNwcCBc
CisgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNz
UXQuY3BwIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1dlYlByb2Nl
c3NNYWluUXQuY3BwCiAKLQogV0VCS0lUMl9BUElfSEVBREVSUyArPSBcCiAgICAgJCRTT1VSQ0Vf
RElSL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oIFwKICAgICAkJFNPVVJDRV9ESVIvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvV0tDZXJ0aWZpY2F0ZUluZm8uaCBcCiAgICAgJCRTT1VSQ0VfRElS
L1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQ29udGV4dE1lbnVJdGVtLmggXAogICAgICQkU09VUkNF
X0RJUi9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0NvbnRleHRNZW51SXRlbVR5cGVzLmggXAogICAg
ICQkU09VUkNFX0RJUi9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0RpY3Rpb25hcnkuaCBcCiAgICAg
JCRTT1VSQ0VfRElSL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLR2VvbWV0cnkuaCBcCiAgICAgJCRT
T1VSQ0VfRElSL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLR3JhcGhpY3NDb250ZXh0LmggXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3F0L1Bs
dWdpblByb3h5UXQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL3F0L1BsdWdpblByb3h5UXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3F0L1Bs
dWdpblByb3h5UXQuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUGx1Z2luUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05v
dEltcGxlbWVudGVkLmg+CisKKyNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCisjaWYgUExBVEZPUk0oTUFDKQorUGxhdGZvcm1MYXllciogUGx1Z2luUHJv
eHk6OnBsdWdpbkxheWVyKCkKK3sKKyAgICBBU1NFUlQoZmFsc2UpOworICAgIHJldHVybiBOVUxM
OworfQorI2VuZGlmCisKK2Jvb2wgUGx1Z2luUHJveHk6Om5lZWRzQmFja2luZ1N0b3JlKCkgY29u
c3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiB0cnVlOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0
aW9uTWFuYWdlci5jcHAKQEAgLTI1LDE3ICsyNSwxOSBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmgiCiAKICNpZiBFTkFC
TEUoUExVR0lOX1BST0NFU1MpCiAKICNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKICNpbmNs
dWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSAiTWFj
aFBvcnQuaCIKKyNlbmRpZgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uLmgiCiAj
aW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5o
IgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VLaW5kcy5oIgogI2luY2x1ZGUgPHd0
Zi9TdGRMaWJFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTU2LDIxICs1OCwy
NyBAQCBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6On5QbHVnaW5QCiBQbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbiogUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpnZXRQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbihjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgpCiB7CiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBtX3BsdWdpblByb2Nlc3NDb25uZWN0aW9ucy5zaXplKCk7ICsraSkg
ewogICAgICAgICBpZiAobV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbnNbaV0tPnBsdWdpblBhdGgo
KSA9PSBwbHVnaW5QYXRoKQogICAgICAgICAgICAgcmV0dXJuIG1fcGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb25zW2ldLmdldCgpOwogICAgIH0KIAogICAgIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50
aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXI7CisjaWYgUExBVEZPUk0oTUFDKQogICAgIENvcmVJ
UEM6Ok1hY2hQb3J0IGNvbm5lY3Rpb25NYWNoUG9ydDsKICAgICBpZiAoIVdlYlByb2Nlc3M6OnNo
YXJlZCgpLmNvbm5lY3Rpb24oKS0+ZGVwcmVjYXRlZFNlbmRTeW5jKFdlYlByb2Nlc3NQcm94eUxl
Z2FjeU1lc3NhZ2U6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uLCAwLCBDb3JlSVBDOjpJbihw
bHVnaW5QYXRoKSwgQ29yZUlQQzo6T3V0KGNvbm5lY3Rpb25NYWNoUG9ydCkpKQogICAgICAgICBy
ZXR1cm4gMDsKIAogICAgIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gY29ubmVjdGlvbk1hY2hQb3J0
LnBvcnQoKTsKKyNlbHNlCisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9u
KCktPmRlcHJlY2F0ZWRTZW5kU3luYyhXZWJQcm9jZXNzUHJveHlMZWdhY3lNZXNzYWdlOjpHZXRQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbiwgMCwgQ29yZUlQQzo6SW4ocGx1Z2luUGF0aCksIENvcmVJ
UEM6Ok91dChjb25uZWN0aW9uSWRlbnRpZmllcikpKQorICAgICAgICByZXR1cm4gMDsKKyAgICBw
cmludGYoIkFTU0VSVDpOZWVkIGltcGxlbWVudCBXZWJQcm9jZXNzUHJveHlMZWdhY3lNZXNzYWdl
OjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvblxuIik7CisjZW5kaWYKICAgICBpZiAoIWNvbm5l
Y3Rpb25JZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIFJlZlB0cjxQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbj4gcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24gPSBQbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbjo6Y3JlYXRlKHRoaXMsIHBsdWdpblBhdGgsIGNvbm5lY3Rpb25JZGVudGlmaWVy
KTsKICAgICBtX3BsdWdpblByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQocGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb24pOwogCiAgICAgcmV0dXJuIHBsdWdpblByb2Nlc3NDb25uZWN0aW9uLmdldCgpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCi0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEwMywxOCArMTAz
LDIwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9WaXNpYmxlUG9zaXRpb24uaD4KIAogI2lmIFBMQVRG
T1JNKE1BQykgfHwgUExBVEZPUk0oV0lOKQogI2luY2x1ZGUgPFdlYkNvcmUvTGVnYWN5V2ViQXJj
aGl2ZS5oPgogI2VuZGlmCiAKICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAvLyBGSVhNRTog
VGhpcyBpcyBjdXJyZW50bHkgTWFjLXNwZWNpZmljIQorI2lmIFBMQVRGT1JNKE1BQykKICNpbmNs
dWRlICJNYWNoUG9ydC5oIgogI2VuZGlmCisjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFFUKQogI2lu
Y2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNlbmRpZgogCiAjaWZuZGVmIE5ERUJVRwogI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KICNlbmRpZgpAQCAtMTgzLDE2ICsxODUs
MTcgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IAogI2lmICFQTEFU
Rk9STShRVCkKICAgICBtX3BhZ2UtPnNldENhblN0YXJ0TWVkaWEoZmFsc2UpOwogI2VuZGlmCiAK
ICAgICB1cGRhdGVQcmVmZXJlbmNlcyhwYXJhbWV0ZXJzLnN0b3JlKTsKIAogICAgIG1fcGFnZUdy
b3VwID0gV2ViUHJvY2Vzczo6c2hhcmVkKCkud2ViUGFnZUdyb3VwKHBhcmFtZXRlcnMucGFnZUdy
b3VwRGF0YSk7CiAgICAgbV9wYWdlLT5zZXRHcm91cE5hbWUobV9wYWdlR3JvdXAtPmlkZW50aWZp
ZXIoKSk7CisgICAgbV9wYWdlLT5zZXR0aW5ncygpLT5zZXRQbHVnaW5zRW5hYmxlZCh0cnVlKTsK
IAogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogICAgIFNldHRpbmdzOjpzZXREZWZhdWx0TWlu
RE9NVGltZXJJbnRlcnZhbCgwLjAwNCk7CiAKICAgICBtX2RyYXdpbmdBcmVhID0gRHJhd2luZ0Fy
ZWE6OmNyZWF0ZSh0aGlzLCBwYXJhbWV0ZXJzKTsKICAgICBtX21haW5GcmFtZSA9IFdlYkZyYW1l
OjpjcmVhdGVNYWluRnJhbWUodGhpcyk7CiAKICAgICBzZXREcmF3c0JhY2tncm91bmQocGFyYW1l
dGVycy5kcmF3c0JhY2tncm91bmQpOwo=
</data>
<flag name="review"
          id="76726"
          type_id="1"
          status="-"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84790</attachid>
            <date>2011-03-04 12:17:09 -0800</date>
            <delta_ts>2011-03-06 14:58:42 -0800</delta_ts>
            <desc>WIP2 fixed style issues</desc>
            <filename>new_patch.diff</filename>
            <type>text/plain</type>
            <size>33409</size>
            <attacher name="Oleg Romashin (:romaxa)">romaxa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQucHJp
CShyZXZpc2lvbiA4MDMyOCkKKysrIFNvdXJjZS9XZWJLaXQucHJpCSh3b3JraW5nIGNvcHkpCkBA
IC03Myw3ICs3Myw3IEBAIElOQ0xVREVQQVRIICs9IFwKICAgICAkJE9VVFBVVF9ESVIvaW5jbHVk
ZSBcCiAgICAgJCRRVC5zY3JpcHQuaW5jbHVkZXMKIAotd2Via2l0MjpJTkNMVURFUEFUSCAqPSAk
JE9VVFBVVF9ESVIvaW5jbHVkZS9XZWJLaXQyCit3ZWJraXQyOklOQ0xVREVQQVRIICo9ICQkT1VU
UFVUX0RJUi9pbmNsdWRlL1dlYktpdDIgJCRPVVRQVVRfRElSL1dlYktpdDIvZ2VuZXJhdGVkCiAK
ICMgUGljayB1cCAzcmRwYXJ0eSBsaWJyYXJpZXMgZnJvbSBJTkNMVURFL0xJQiBqdXN0IGxpa2Ug
d2l0aCBNU1ZDCiB3aW4zMi1nKysqIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3Vy
Y2VzLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcm8J
KHJldmlzaW9uIDgwMzI4KQorKysgU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJvCSh3
b3JraW5nIGNvcHkpCkBAIC04Nyw3ICs4Nyw4IEBAIFZQQVRIID0gXAogICAgIFdlYlByb2Nlc3Mg
XAogICAgIFVJUHJvY2VzcyBcCiAgICAgVUlQcm9jZXNzL0Rvd25sb2FkcyBcCi0gICAgVUlQcm9j
ZXNzL1BsdWdpbnMKKyAgICBVSVByb2Nlc3MvUGx1Z2lucyBcCisgICAgU2hhcmVkL1BsdWdpbnMK
IAogTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgQXV0aGVudGljYXRpb25NYW5hZ2VyLm1lc3Nh
Z2VzLmluIFwKQEAgLTExNSw3ICsxMTYsOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBX
ZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBcCiAgICAgV2ViUHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluIFwKICAgICBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbiBcCi0g
ICAgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorICAgIFdlYlJlc291
cmNlQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gXAorICAgIE5QT2JqZWN0TWVzc2FnZVJl
Y2VpdmVyLm1lc3NhZ2VzLmluCiAKIFNDUklQVFMgPSBcCiAgICAgJCRQV0QvU2NyaXB0cy9nZW5l
cmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5IFwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIu
cHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJpCShyZXZpc2lvbiA4
MDMyOCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJpCSh3b3JraW5nIGNvcHkpCkBAIC01
NCw3ICs1NCw4IEBAIFdFQktJVDJfSU5DTFVERVBBVEggPSBcCiAgICAgJCRTT1VSQ0VfRElSL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlIFwKLSAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9XZWJQcm9j
ZXNzL3F0CisgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9xdCBcCisgICAgJCRT
T1VSQ0VfRElSL1dlYktpdDIvUGx1Z2luUHJvY2VzcwogCiAjIE9uIFN5bWJpYW4gUFJFUEVORF9J
TkNMVURFUEFUSCBpcyB0aGUgYmVzdCB3YXkgdG8gbWFrZSBzdXJlIHRoYXQgV2ViS2l0IGhlYWRl
cnMKICMgYXJlIGluY2x1ZGVkIGJlZm9yZSBwbGF0Zm9ybSBoZWFkZXJzLgpJbmRleDogU291cmNl
L1dlYktpdDIvV2ViS2l0Mi5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0
Mi5wcm8JKHJldmlzaW9uIDgwMzI4KQorKysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8JKHdv
cmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAgbWFjOiBDT05GSUcgKz0gYnVpbGRfYWxsCiBX
RUJLSVQyX0dFTkVSQVRFRF9IRUFERVJTID0gXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09V
UkNFU19ESVIvQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQy
X0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9Eb3dubG9hZFByb3h5TWVzc2FnZXMuaCBcCisgICAgJCRX
RUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3Nh
Z2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvUGx1Z2luQ29udHJv
bGxlclByb3h5TWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJ
Ui9QbHVnaW5Qcm9jZXNzTWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VS
Q0VTX0RJUi9QbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlcy5oIFwKQEAgLTQ5LDYgKzUwLDcgQEAg
V0VCS0lUMl9HRU5FUkFURURfSEVBREVSUyA9IFwKIFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVMg
PSBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9BdXRoZW50aWNhdGlvbk1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJD
RVNfRElSL0Rvd25sb2FkUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKKyAgICAkJFdFQktJVDJf
R0VORVJBVEVEX1NPVVJDRVNfRElSL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyTWVzc2FnZVJlY2Vp
dmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9QbHVnaW5Db250
cm9sbGVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVE
X1NPVVJDRVNfRElSL1BsdWdpblByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdF
QktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1BsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgXApAQCAtMTM5LDYgKzE0MSwxMyBAQCBIRUFERVJTICs9IFwKICAgICBTaGFyZWQv
V2ViVVJMUmVzcG9uc2UuaCBcCiAgICAgU2hhcmVkL1dlYlVzZXJDb250ZW50VVJMUGF0dGVybi5o
IFwKICAgICBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbk1vZHVsZS5oIFwK
KyAgICBTaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5oIFwKKyAgICBTaGFyZWQvUGx1
Z2lucy9OUElkZW50aWZpZXJEYXRhLmggXAorICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVz
c2FnZVJlY2VpdmVyLmggXAorICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0UHJveHkuaCBcCisg
ICAgU2hhcmVkL1BsdWdpbnMvTlBWYXJpYW50RGF0YS5oIFwKKyAgICBTaGFyZWQvUGx1Z2lucy9Q
bHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggXAorICAgIFNoYXJlZC9QbHVnaW5zL1Bs
dWdpblF1aXJrcy5oIFwKICAgICBTaGFyZWQvcXQvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaCBc
CiAgICAgU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmggXAogICAgIFNoYXJlZC9xdC9XZWJFdmVudEZh
Y3RvcnlRdC5oIFwKQEAgLTE1Nyw2ICsxNjYsOCBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nl
c3MvTGF1bmNoZXIvVGhyZWFkTGF1bmNoZXIuaCBcCiAgICAgVUlQcm9jZXNzL1BhZ2VDbGllbnQu
aCBcCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luSW5mb1N0b3JlLmggXAorICAgIFVJUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oIFwKKyAgICBVSVByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5oIFwKICAgICBVSVByb2Nlc3MvUHJvY2Vzc01vZGVsLmgg
XAogICAgIFVJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmggXAogICAgIFVJUHJvY2Vzcy9U
ZXh0Q2hlY2tlci5oIFwKQEAgLTIzMCw2ICsyNDEsOSBAQCBIRUFERVJTICs9IFwKICAgICBXZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luLmggXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5D
b250cm9sbGVyLmggXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmggXAorICAg
IFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oIFwKKyAgICBXZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uaCBcCisgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNvbnRleHRNZW51Q2xpZW50LmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRGF0YWJhc2VNYW5hZ2VyLmggXApAQCAtMjc4LDYgKzI5MiwxMiBAQCBTT1VSQ0VTICs9IFwK
ICAgICBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbk1vZHVsZS5jcHAgXAog
ICAgIFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpbk1vZHVsZVgxMS5j
cHAgXAogICAgIFNoYXJlZC9TaGFyZWFibGVCaXRtYXAuY3BwIFwKKyAgICBTaGFyZWQvUGx1Z2lu
cy9OUFJlbW90ZU9iamVjdE1hcC5jcHAgXAorICAgIFNoYXJlZC9QbHVnaW5zL05QSWRlbnRpZmll
ckRhdGEuY3BwIFwKKyAgICBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5j
cHAgXAorICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0UHJveHkuY3BwIFwKKyAgICBTaGFyZWQv
UGx1Z2lucy9OUFZhcmlhbnREYXRhLmNwcCBcCisgICAgU2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgXAogICAgIFNoYXJlZC9DaGlsZFByb2Nlc3MuY3Bw
IFwKICAgICBTaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5jcHAgXAogICAgIFNoYXJlZC9Gb250
SW5mby5jcHAgXApAQCAtMzM1LDggKzM1NSwxMSBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nl
c3MvTGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwIFwKICAgICBVSVByb2Nlc3MvTGF1
bmNoZXIvcXQvVGhyZWFkTGF1bmNoZXJRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpbkluZm9TdG9yZS5jcHAgXAorICAgIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQ
cm94eS5jcHAgXAorICAgIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmNw
cCBcCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcCBc
CiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvcXQvUGx1Z2luSW5mb1N0b3JlUXQuY3BwIFwKKyAgICBV
SVByb2Nlc3MvUGx1Z2lucy9xdC9QbHVnaW5Qcm9jZXNzUHJveHlRdC5jcHAgXAogICAgIFVJUHJv
Y2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcCBcCiAgICAgVUlQcm9jZXNzL1RpbGVkRHJhd2lu
Z0FyZWFQcm94eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmNwcCBc
CkBAIC00MjAsOCArNDQzLDEyIEBAIFNPVVJDRVMgKz0gXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5jcHAgXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5jcHAgXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9xdC9OZXRzY2FwZVBsdWdpblF0LmNwcCBcCisgICAgV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL3F0L1BsdWdpblByb3h5UXQuY3BwIFwKICAgICBXZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIFwK
KyAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwIFwKKyAgICBXZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIFwKKyAgICBXZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcCBcCiAgICAgV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJEYXRhYmFzZU1hbmFnZXIuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1dlYktpdDJBUEkucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDJB
UEkucHJpCShyZXZpc2lvbiA4MDMyOCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDJBUEkucHJp
CSh3b3JraW5nIGNvcHkpCkBAIC02MCwxMCArNjAsMTQgQEAgV0VCS0lUMl9BUElfU09VUkNFUyA9
IFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlUGFnZUdyb3VwLmNwcCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VPdmVybGF5LmNwcCBcCiAg
ICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZVNjcmlwdFdvcmxkLmNwcCBcCi0gICAgXAorICAgICQkU09VUkNFX0RJUi9XZWJLaXQy
L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcCBcCisgICAgJCRTT1VSQ0Vf
RElSL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcCBcCisgICAgJCRTT1VS
Q0VfRElSL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgXAor
ICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luQ29udHJvbGxl
clByb3h5UXQuY3BwIFwKKyAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0
L1BsdWdpblByb2Nlc3NNYWluUXQuY3BwIFwKKyAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nlc3NRdC5jcHAgXAogICAgICQkU09VUkNFX0RJUi9XZWJL
aXQyL1dlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc01haW5RdC5jcHAKIAotCiBXRUJLSVQyX0FQSV9I
RUFERVJTICs9IFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNl
LmggXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0NlcnRpZmljYXRl
SW5mby5oIFwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJv
bGxlclByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNz
L1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAJKHJldmlzaW9uIDgwMzI4KQorKysgU291cmNlL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNTQsNiArMjU0LDcgQEAgdm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OnBsdWdp
blByb2NlcwogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCisjaWYgUExBVEZPUk0oTUFD
KQogdm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OnNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVk
KGJvb2wgY29tcGxleFRleHRJbnB1dEVuYWJsZWQpCiB7CiAgICAgaWYgKG1faXNDb21wbGV4VGV4
dElucHV0RW5hYmxlZCA9PSBjb21wbGV4VGV4dElucHV0RW5hYmxlZCkKQEAgLTI2MywxMSArMjY0
LDE0IEBAIHZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5OjpzZXRDb21wbGV4VGUKIAogICAgIG1f
Y29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpQbHVnaW5Qcm94eTo6U2V0
Q29tcGxleFRleHRJbnB1dEVuYWJsZWQoY29tcGxleFRleHRJbnB1dEVuYWJsZWQpLCBtX3BsdWdp
bkluc3RhbmNlSUQpOwogfQorI2VuZGlmCiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpICYmIFBMQVRGT1JNKE1BQykKIG1hY2hfcG9ydF90IFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6
Y29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCkKIHsKICAgICByZXR1cm4gUGx1Z2luUHJvY2Vz
czo6c2hhcmVkKCkuY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCk7CiB9CisjZW5kaWYKIAog
U3RyaW5nIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6cHJveGllc0ZvclVSTChjb25zdCBTdHJpbmcm
IHVybFN0cmluZykKIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2lu
Q29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lv
biA4MDMyOCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxl
clByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC04NiwxMCArODYsMTAgQEAgbWVz
c2FnZXMgLT4gUGx1Z2luQ29udHJvbGxlclByb3h5IHsKICAgICAjIEdldCBhIHJlZmVyZW5jZSB0
byB0aGUgcGx1Zy1pbidzIHNjcmlwdGFibGUgTlBPYmplY3QuCiAgICAgR2V0UGx1Z2luU2NyaXB0
YWJsZU5QT2JqZWN0KCkgLT4gKHVpbnQ2NF90IHBsdWdpblNjcmlwdGFibGVOUE9iamVjdElEKQog
CisjaWYgUExBVEZPUk0oTUFDKQogICAgICMgU2VuZCB0aGUgY29tcGxleCB0ZXh0IGlucHV0IHRv
IHRoZSBwbHVnLWluLgogICAgIFNlbmRDb21wbGV4VGV4dElucHV0KFdURjo6U3RyaW5nIHRleHRJ
bnB1dCkKIAotI2lmIFBMQVRGT1JNKE1BQykKICAgICAjIFNlbnQgd2hlbiB0aGUgY29udGFpbmlu
ZyBOU1dpbmRvdydzIGZvY3VzIGNoYW5nZXMKICAgICBXaW5kb3dGb2N1c0NoYW5nZWQoYm9vbCBo
YXNGb2N1cykKIApJbmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9j
ZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdp
blByb2Nlc3MuY3BwCShyZXZpc2lvbiA4MDMyOCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDkgQEAK
ICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAKICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5o
IgorI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJNYWNoUG9ydC5oIgorI2VuZGlmCiAjaW5j
bHVkZSAiTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzUHJv
eHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aCIKQEAgLTEyNyw2ICsxMjksNyBAQCB2b2lkIFBsdWdpblByb2Nlc3M6OmluaXRpYWxpemVQbHVn
aW5Qcm9jCiAKIHZvaWQgUGx1Z2luUHJvY2Vzczo6Y3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24o
KQogeworI2lmIFBMQVRGT1JNKE1BQykKICAgICAvLyBGSVhNRTogVGhpcyBpcyBwbGF0Zm9ybSBz
cGVjaWZpYyEKIAogICAgIC8vIENyZWF0ZSB0aGUgbGlzdGVuaW5nIHBvcnQuCkBAIC0xNDIsNiAr
MTQ1LDkgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubgogCiAgICAg
Ly8gU3RvcCB0aGUgc2h1dGRvd24gdGltZXIuCiAgICAgbV9zaHV0ZG93blRpbWVyLnN0b3AoKTsK
KyNlbHNlCisgICAgQVNTRVJUKGZhbHNlKTsKKyNlbmRpZgogfQogCiB2b2lkIFBsdWdpblByb2Nl
c3M6OmdldFNpdGVzV2l0aERhdGEodWludDY0X3QgY2FsbGJhY2tJRCkKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
CShyZXZpc2lvbiA4MDMyOCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjgsNyArMTY4LDExIEBAIHZv
aWQgV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZVBsdWdpbigKICAgICByZXN1bHQgPSBwbHVn
aW5Db250cm9sbGVyUHJveHlQdHItPmluaXRpYWxpemUocGFyYW1ldGVycyk7CiAKICAgICBpZiAo
cmVzdWx0KSB7CisjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICByZW1vdGVMYXllckNsaWVudElE
ID0gcGx1Z2luQ29udHJvbGxlclByb3h5UHRyLT5yZW1vdGVMYXllckNsaWVudElEKCk7CisjZWxz
ZQorICAgICAgICBBU1NFUlQoZmFsc2UpOworI2VuZGlmCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luQ29udHJvbGxl
clByb3h5UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3Mv
cXQvUGx1Z2luQ29udHJvbGxlclByb3h5UXQuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Db250cm9sbGVyUHJveHlRdC5jcHAJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisKKyNpbmNsdWRlICJQbHVnaW5Db250cm9sbGVyUHJveHkuaCIKKworI2lmIEVOQUJMRShQTFVH
SU5fUFJPQ0VTUykKKworI2luY2x1ZGUgIlBsdWdpblByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL05vdEltcGxlbWVudGVkLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1l
c3BhY2UgV2ViS2l0IHsKKwordm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OnBsYXRmb3JtSW5p
dGlhbGl6ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBQbHVnaW5Db250
cm9sbGVyUHJveHk6OnBsYXRmb3JtRGVzdHJveSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OnBsYXRmb3JtR2VvbWV0cnlEaWRDaGFu
Z2UoY29uc3QgSW50UmVjdCYgZnJhbWVSZWN0LCBjb25zdCBJbnRSZWN0JikKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVO
QUJMRShQTFVHSU5fUFJPQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3Mv
cXQvUGx1Z2luUHJvY2Vzc01haW5RdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzTWFpblF0LmNwcAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc01haW5RdC5jcHAJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAs
IDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzTWFpbi5oIgorCisjaWYgRU5B
QkxFKFBMVUdJTl9QUk9DRVNTKQorCisjaW5jbHVkZSAiQ29tbWFuZExpbmUuaCIKKyNpbmNsdWRl
ICJQbHVnaW5Qcm9jZXNzLmgiCisjaW5jbHVkZSAiUnVuTG9vcC5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRp
bmcuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCisjZGVmaW5lIFNIT1df
Q1JBU0hfUkVQT1JURVIgMQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworLy8gRklYTUU6IFRoZXJl
IGlzIG11Y2ggY29kZSBoZXJlIHRoYXQgaXMgZHVwbGljYXRlZCBpbiBXZWJQcm9jZXNzTWFpbk1h
Yy5tbSwgd2Ugc2hvdWxkIGFkZCBhIHNoYXJlZCBiYXNlIGNsYXNzIHdoZXJlCisvLyB3ZSBjYW4g
cHV0IGV2ZXJ5dGhpbmcuCisKK2ludCBQbHVnaW5Qcm9jZXNzTWFpbihjb25zdCBDb21tYW5kTGlu
ZSYgY29tbWFuZExpbmUpCit7CisgICAgLy8gVW5zZXQgRFlMRF9JTlNFUlRfTElCUkFSSUVTLiBX
ZSBkb24ndCB3YW50IG91ciBwbHVnLWluIHByb2Nlc3Mgc2hpbSB0byBiZSBsb2FkZWQgCisgICAg
Ly8gYnkgYW55IGNoaWxkIHByb2Nlc3NlcyB0aGF0IHRoZSBwbHVnLWluIG1heSBsYXVuY2guCisg
ICAgdW5zZXRlbnYoIkRZTERfSU5TRVJUX0xJQlJBUklFUyIpOworCisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKworICAgIFN0cmluZyBzZXJ2aWNlTmFtZSA9IGNvbW1hbmRMaW5lWyJzZXJ2aWNlbmFt
ZSJdOworICAgIGlmIChzZXJ2aWNlTmFtZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBFWElU
X0ZBSUxVUkU7CisKKyAgICBTdHJpbmcgbG9jYWxpemF0aW9uID0gY29tbWFuZExpbmVbImxvY2Fs
aXphdGlvbiJdOworCisjaWYgIVNIT1dfQ1JBU0hfUkVQT1JURVIKKyAgICAvLyBJbnN0YWxscyBz
aWduYWwgaGFuZGxlcnMgdGhhdCBleGl0IG9uIGEgY3Jhc2ggc28gdGhhdCBDcmFzaFJlcG9ydGVy
IGRvZXMgbm90IHNob3cgdXAuCisgICAgc2lnbmFsKFNJR0lMTCwgX2V4aXQpOworICAgIHNpZ25h
bChTSUdGUEUsIF9leGl0KTsKKyAgICBzaWduYWwoU0lHQlVTLCBfZXhpdCk7CisgICAgc2lnbmFs
KFNJR1NFR1YsIF9leGl0KTsKKyNlbmRpZgorCisgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5n
KCk7CisgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZCgpOworICAgIFJ1bkxvb3A6OmluaXRp
YWxpemVNYWluUnVuTG9vcCgpOworCisgICAgUnVuTG9vcDo6cnVuKCk7CisKKyAgICByZXR1cm4g
MDsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQpJbmRleDogU291
cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzUXQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc1F0LmNw
cAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2lu
UHJvY2Vzc1F0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIlBsdWdpblByb2Nlc3MuaCIKKworI2lm
IEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKKworI2luY2x1ZGUgIk5ldHNjYXBlUGx1Z2luLmgiCisj
aW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgUGx1
Z2luUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IFBsdWdpblByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoUExVR0lOX1BST0NFU1Mp
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CShyZXZp
c2lvbiA4MDMyOCkKKysrIFNvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5w
eQkod29ya2luZyBjb3B5KQpAQCAtNDQ5LDIxICs0NDksMjkgQEAgZGVmIGhlYWRlcnNfZm9yX3R5
cGUodHlwZSk6CiAKIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIoZmlsZSk6CiAgICAgcmVj
ZWl2ZXIgPSBNZXNzYWdlUmVjZWl2ZXIucGFyc2UoZmlsZSkKLSAgICBoZWFkZXJzID0gc2V0KFsK
LSAgICAgICAgJyIlcyInICUgbWVzc2FnZXNfaGVhZGVyX2ZpbGVuYW1lKHJlY2VpdmVyKSwKLSAg
ICAgICAgJyJIYW5kbGVNZXNzYWdlLmgiJywKLSAgICAgICAgJyJBcmd1bWVudERlY29kZXIuaCIn
LAotICAgIF0pCisgICAgaGVhZGVycyA9IHsKKyAgICAgICAgJyIlcyInICUgbWVzc2FnZXNfaGVh
ZGVyX2ZpbGVuYW1lKHJlY2VpdmVyKTogTm9uZSwKKyAgICAgICAgJyJIYW5kbGVNZXNzYWdlLmgi
JzogTm9uZSwKKyAgICAgICAgJyJBcmd1bWVudERlY29kZXIuaCInOiBOb25lLAorICAgIH0KIAor
ICAgIG51bSA9IDAKICAgICBmb3IgcGFyYW1ldGVyIGluIHJlY2VpdmVyLml0ZXJwYXJhbWV0ZXJz
KCk6CiAgICAgICAgIHR5cGUgPSBwYXJhbWV0ZXIudHlwZQorICAgICAgICBjb25kaXRpb24gPSBO
b25lCisgICAgICAgIGlmIGxlbihyZWNlaXZlci5tZXNzYWdlcykgPiBudW06CisgICAgICAgICAg
ICBjb25kaXRpb24gPSByZWNlaXZlci5tZXNzYWdlc1tudW1dLmNvbmRpdGlvbgorICAgICAgICBu
dW0gKz0gMQorCiAgICAgICAgIGFyZ3VtZW50X2VuY29kZXJfaGVhZGVycyA9IGFyZ3VtZW50X2Nv
ZGVyX2hlYWRlcnNfZm9yX3R5cGUocGFyYW1ldGVyLnR5cGUpCiAgICAgICAgIGlmIGFyZ3VtZW50
X2VuY29kZXJfaGVhZGVyczoKLSAgICAgICAgICAgIGhlYWRlcnMudXBkYXRlKGFyZ3VtZW50X2Vu
Y29kZXJfaGVhZGVycykKKyAgICAgICAgICAgIGZvciBoZWFkZXIgaW4gYXJndW1lbnRfZW5jb2Rl
cl9oZWFkZXJzOgorICAgICAgICAgICAgICAgIGhlYWRlcnNbaGVhZGVyXSA9IGNvbmRpdGlvbgog
ICAgICAgICAgICAgY29udGludWUKIAogICAgICAgICB0eXBlX2hlYWRlcnMgPSBoZWFkZXJzX2Zv
cl90eXBlKHR5cGUpCi0gICAgICAgIGhlYWRlcnMudXBkYXRlKHR5cGVfaGVhZGVycykKKyAgICAg
ICAgZm9yIGhlYWRlciBpbiB0eXBlX2hlYWRlcnM6CisgICAgICAgICAgICBoZWFkZXJzW2hlYWRl
cl0gPSBjb25kaXRpb24KIAogICAgIGZvciBtZXNzYWdlIGluIHJlY2VpdmVyLm1lc3NhZ2VzOgog
ICAgICAgICBpZiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnMgaXMgbm90IE5vbmU6CkBAIC00NzEs
MTEgKzQ3OSwxMyBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAg
ICAgICAgICAgIHR5cGUgPSByZXBseV9wYXJhbWV0ZXIudHlwZQogICAgICAgICAgICAgICAgIGFy
Z3VtZW50X2VuY29kZXJfaGVhZGVycyA9IGFyZ3VtZW50X2NvZGVyX2hlYWRlcnNfZm9yX3R5cGUo
dHlwZSkKICAgICAgICAgICAgICAgICBpZiBhcmd1bWVudF9lbmNvZGVyX2hlYWRlcnM6Ci0gICAg
ICAgICAgICAgICAgICAgIGhlYWRlcnMudXBkYXRlKGFyZ3VtZW50X2VuY29kZXJfaGVhZGVycykK
KyAgICAgICAgICAgICAgICAgICAgZm9yIGhlYWRlciBpbiBhcmd1bWVudF9lbmNvZGVyX2hlYWRl
cnM6CisgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzW2hlYWRlcl0gPSBtZXNzYWdlLmNv
bmRpdGlvbgogICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogCiAgICAgICAgICAgICAgICAg
dHlwZV9oZWFkZXJzID0gaGVhZGVyc19mb3JfdHlwZSh0eXBlKQotICAgICAgICAgICAgICAgIGhl
YWRlcnMudXBkYXRlKHR5cGVfaGVhZGVycykKKyAgICAgICAgICAgICAgICBmb3IgaGVhZGVyIGlu
IHR5cGVfaGVhZGVyczoKKyAgICAgICAgICAgICAgICAgICAgaGVhZGVyc1toZWFkZXJdID0gbWVz
c2FnZS5jb25kaXRpb24KIAogICAgIHJlc3VsdCA9IFtdCiAKQEAgLTQ4Nyw3ICs0OTcsMTMgQEAg
ZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihmaWxlKToKICAgICAgICAgcmVzdWx0LmFwcGVu
ZCgnI2lmICVzXG5cbicgJSByZWNlaXZlci5jb25kaXRpb24pCiAKICAgICByZXN1bHQuYXBwZW5k
KCcjaW5jbHVkZSAiJXMuaCJcblxuJyAlIHJlY2VpdmVyLm5hbWUpCi0gICAgcmVzdWx0ICs9IFsn
I2luY2x1ZGUgJXNcbicgJSBoZWFkZXIgZm9yIGhlYWRlciBpbiBzb3J0ZWQoaGVhZGVycyldCisg
ICAgZm9yIGhlYWRlcmNvbmRpdGlvbiBpbiBzb3J0ZWQoaGVhZGVycyk6CisgICAgICAgIGlmIGhl
YWRlcnNbaGVhZGVyY29uZGl0aW9uXToKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyNpZiAl
c1xuJyAlIGhlYWRlcnNbaGVhZGVyY29uZGl0aW9uXSkKKyAgICAgICAgICAgIHJlc3VsdCArPSBb
JyNpbmNsdWRlICVzXG4nICUgaGVhZGVyY29uZGl0aW9uXQorICAgICAgICAgICAgcmVzdWx0LmFw
cGVuZCgnI2VuZGlmIC8vICVzXG4nICUgaGVhZGVyc1toZWFkZXJjb25kaXRpb25dKQorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgcmVzdWx0ICs9IFsnI2luY2x1ZGUgJXNcbicgJSBoZWFkZXJj
b25kaXRpb25dCiAgICAgcmVzdWx0LmFwcGVuZCgnXG4nKQogCiAgICAgcmVzdWx0LmFwcGVuZCgn
bmFtZXNwYWNlIFdlYktpdCB7XG5cbicpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1
Z2lucy9OUElkZW50aWZpZXJEYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNwcAkocmV2aXNpb24gODAzMjgpCisrKyBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjQsMTIgKzI0LDE0IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgor
CiAjaW5jbHVkZSAiTlBJZGVudGlmaWVyRGF0YS5oIgogCiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9D
RVNTKQogCiAjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCiAjaW5jbHVkZSAiQXJndW1lbnRF
bmNvZGVyLmgiCisKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0lkZW50aWZpZXJSZXAuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVu
dGVkLmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdFByb3h5
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVj
dFByb3h5LmNwcAkocmV2aXNpb24gODAzMjgpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1
Z2lucy9OUE9iamVjdFByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAog
CiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCi0j
aW5jbHVkZSAiTlBJZGVudGlmaWVyRGF0YS5oIgogI2luY2x1ZGUgIk5QT2JqZWN0TWVzc2FnZVJl
Y2VpdmVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOUFJlbW90ZU9iamVjdE1hcC5oIgogI2luY2x1
ZGUgIk5QUnVudGltZVV0aWxpdGllcy5oIgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1Bs
dWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0TWFwLmNwcAkocmV2aXNpb24gODAzMjgpCisr
KyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE0NSw3ICsxNDUsNyBAQCBOUFZhcmlhbnQgTlBSZW1vdGVPYmplY3RN
YXA6Om5wVmFyaWFudERhCiAgICAgY2FzZSBOUFZhcmlhbnREYXRhOjpOdWxsOgogICAgICAgICBO
VUxMX1RPX05QVkFSSUFOVChucFZhcmlhbnQpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIE5Q
VmFyaWFudERhdGE6OkJvb2w6CisgICAgY2FzZSBOUFZhcmlhbnREYXRhOjpCb29sZWFuOgogICAg
ICAgICBCT09MRUFOX1RPX05QVkFSSUFOVChucFZhcmlhbnREYXRhLmJvb2xWYWx1ZSgpLCBucFZh
cmlhbnQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE5QVmFyaWFudERhdGE6OkludDMyOgpJ
bmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBWYXJpYW50RGF0YS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBWYXJpYW50RGF0YS5j
cHAJKHJldmlzaW9uIDgwMzI4KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBW
YXJpYW50RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzLDcgKzYzLDcgQEAgTlBWYXJpYW50
RGF0YSBOUFZhcmlhbnREYXRhOjptYWtlQm9vbChibwogewogICAgIE5QVmFyaWFudERhdGEgbnBW
YXJpYW50RGF0YTsKIAotICAgIG5wVmFyaWFudERhdGEubV90eXBlID0gTlBWYXJpYW50RGF0YTo6
Qm9vbDsKKyAgICBucFZhcmlhbnREYXRhLm1fdHlwZSA9IE5QVmFyaWFudERhdGE6OkJvb2xlYW47
CiAgICAgbnBWYXJpYW50RGF0YS5tX2Jvb2xWYWx1ZSA9IHZhbHVlOwogCiAgICAgcmV0dXJuIG5w
VmFyaWFudERhdGE7CkBAIC0xMjcsNyArMTI3LDcgQEAgdm9pZCBOUFZhcmlhbnREYXRhOjplbmNv
ZGUoQ29yZUlQQzo6QXJndQogICAgIGNhc2UgTlBWYXJpYW50RGF0YTo6Vm9pZDoKICAgICBjYXNl
IE5QVmFyaWFudERhdGE6Ok51bGw6CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgTlBWYXJpYW50
RGF0YTo6Qm9vbDoKKyAgICBjYXNlIE5QVmFyaWFudERhdGE6OkJvb2xlYW46CiAgICAgICAgIGVu
Y29kZXItPmVuY29kZShib29sVmFsdWUoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTlBW
YXJpYW50RGF0YTo6SW50MzI6CkBAIC0xNjksNyArMTY5LDcgQEAgYm9vbCBOUFZhcmlhbnREYXRh
OjpkZWNvZGUoQ29yZUlQQzo6QXJndQogICAgIGNhc2UgTlBWYXJpYW50RGF0YTo6Vm9pZDoKICAg
ICBjYXNlIE5QVmFyaWFudERhdGE6Ok51bGw6CiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIGNh
c2UgTlBWYXJpYW50RGF0YTo6Qm9vbDoKKyAgICBjYXNlIE5QVmFyaWFudERhdGE6OkJvb2xlYW46
CiAgICAgICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fYm9vbFZhbHVlKTsKICAg
ICBjYXNlIE5QVmFyaWFudERhdGE6OkludDMyOgogICAgICAgICByZXR1cm4gZGVjb2Rlci0+ZGVj
b2RlKHJlc3VsdC5tX2ludDMyVmFsdWUpOwpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1Bs
dWdpbnMvTlBWYXJpYW50RGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9QbHVnaW5zL05QVmFyaWFudERhdGEuaAkocmV2aXNpb24gODAzMjgpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFZhcmlhbnREYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0
LDcgKzQ0LDcgQEAgcHVibGljOgogICAgIGVudW0gVHlwZSB7CiAgICAgICAgIFZvaWQsCiAgICAg
ICAgIE51bGwsCi0gICAgICAgIEJvb2wsCisgICAgICAgIEJvb2xlYW4sCiAgICAgICAgIEludDMy
LAogICAgICAgICBEb3VibGUsCiAgICAgICAgIFN0cmluZywKQEAgLTY2LDcgKzY2LDcgQEAgcHVi
bGljOgogCiAgICAgYm9vbCBib29sVmFsdWUoKSBjb25zdAogICAgIHsKLSAgICAgICAgQVNTRVJU
KHR5cGUoKSA9PSBOUFZhcmlhbnREYXRhOjpCb29sKTsKKyAgICAgICAgQVNTRVJUKHR5cGUoKSA9
PSBOUFZhcmlhbnREYXRhOjpCb29sZWFuKTsKICAgICAgICAgcmV0dXJuIG1fYm9vbFZhbHVlOwog
ICAgIH0KIApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvUGx1Z2luUXVpcmtz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvUGx1Z2luUXVp
cmtzLmgJKHJldmlzaW9uIDgwMzI4KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMv
UGx1Z2luUXVpcmtzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDE2IEBACiAjaWZuZGVm
IFBsdWdpblF1aXJrc19oCiAjZGVmaW5lIFBsdWdpblF1aXJrc19oCiAKKyNpZiBQTEFURk9STShN
QUMpIHx8IChPUyhNQUNfT1NfWCkgJiYgUExBVEZPUk0oUVQpKQorI2RlZmluZSBQTFVHSU5fQVJD
SElURUNUVVJFX01BQyAxCisjZWxpZiBQTEFURk9STShXSU4pIHx8IChPUyhXSU5ET1dTKSAmJiBQ
TEFURk9STShRVCkpCisjZGVmaW5lIFBMVUdJTl9BUkNISVRFQ1RVUkVfV0lOIDEKKyNlbGlmIChQ
TEFURk9STShRVCkgJiYgZGVmaW5lZChRX1dTX1gxMSkpIHx8IChQTEFURk9STShHVEspICYmIE9T
KFVOSVgpICYmICFPUyhNQUNfT1NfWCkpCisjZGVmaW5lIFBMVUdJTl9BUkNISVRFQ1RVUkVfWDEx
IDEKKyNlbmRpZgorCisjZGVmaW5lIFBMVUdJTl9BUkNISVRFQ1RVUkUoQVJDSCkgKGRlZmluZWQg
UExVR0lOX0FSQ0hJVEVDVFVSRV8jI0FSQ0ggJiYgUExVR0lOX0FSQ0hJVEVDVFVSRV8jI0FSQ0gp
CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBQbHVnaW5RdWlya3MgewpJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
UHJveHkuY3BwCShyZXZpc2lvbiA4MDMyOCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4
LDkgQEAKIAogI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKIAorI2lmIFBMQVRGT1JNKE1BQykK
ICNpbmNsdWRlICJNYWNoUG9ydC5oIgorI2VuZGlmCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NNYW5hZ2VyLmgiCiAj
aW5jbHVkZSAiUGx1Z2luUHJvY2Vzc01lc3NhZ2VzLmgiCkBAIC0xMjIsOCArMTI0LDExIEBAIHZv
aWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpwbHVnaW5Qcm9jZXNzQ3IKICAgICAgICAgQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyKiByZXBseSA9IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmZpcnN0
KCkuc2Vjb25kOwogICAgICAgICBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5yZW1vdmVGaXJz
dCgpOwogCi0gICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIE1hYyBzcGVjaWZpYy4KKyNpZiBQTEFU
Rk9STShNQUMpCiAgICAgICAgIHJlcGx5LT5lbmNvZGUoQ29yZUlQQzo6TWFjaFBvcnQoMCwgTUFD
SF9NU0dfVFlQRV9NT1ZFX1NFTkQpKTsKKyNlbHNlCisgICAgICAgIEFTU0VSVChmYWxzZSk7Cisj
ZW5kaWYKICAgICAgICAgcmVwbHlXZWJQcm9jZXNzUHJveHktPmNvbm5lY3Rpb24oKS0+c2VuZFN5
bmNSZXBseShyZXBseSk7CiAgICAgfQogCkBAIC0xOTksOCArMjA0LDEwIEBAIHZvaWQgUGx1Z2lu
UHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVXZWJQcm8KICAgICBDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXIqIHJlcGx5ID0gbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMuZmlyc3QoKS5zZWNvbmQ7CiAg
ICAgbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMucmVtb3ZlRmlyc3QoKTsKIAorI2lmIFBMQVRG
T1JNKE1BQykKICAgICAvLyBGSVhNRTogVGhpcyBpcyBNYWMgc3BlY2lmaWMuCiAgICAgcmVwbHkt
PmVuY29kZShDb3JlSVBDOjpNYWNoUG9ydChtYWNoUG9ydC5wb3J0KCksIE1BQ0hfTVNHX1RZUEVf
TU9WRV9TRU5EKSk7CisjZW5kaWYKICAgICByZXBseVdlYlByb2Nlc3NQcm94eS0+Y29ubmVjdGlv
bigpLT5zZW5kU3luY1JlcGx5KHJlcGx5KTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbgkocmV2aXNpb24gODAzMjgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAg
LTIzLDggKzIzLDkgQEAKICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAKIG1lc3NhZ2VzIC0+
IFBsdWdpblByb2Nlc3NQcm94eSB7Ci0gICAgIyBGSVhNRTogVGhpcyBpcyBwbGF0Zm9ybSBzcGVj
aWZpYworI2lmIFBMQVRGT1JNKE1BQykKICAgICBEaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlv
bihDb3JlSVBDOjpNYWNoUG9ydCBjb25uZWN0aW9uSWRlbnRpZmllcikKKyNlbmRpZgogCiAgICAg
RGlkR2V0U2l0ZXNXaXRoRGF0YShWZWN0b3I8V1RGOjpTdHJpbmc+IHNpdGVzLCB1aW50NjRfdCBj
YWxsYmFja0lEKQogICAgIERpZENsZWFyU2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCkKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL3F0L1BsdWdpblByb2Nlc3NQcm94
eVF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9x
dC9QbHVnaW5Qcm9jZXNzUHJveHlRdC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvUGx1Z2lucy9xdC9QbHVnaW5Qcm9jZXNzUHJveHlRdC5jcHAJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUGx1Z2luUHJvY2Vzc1Byb3h5LmgiCisKKyNpZiBFTkFCTEUoUExVR0lOX1BST0NF
U1MpCisKKyNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisKK25h
bWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6cGxhdGZvcm1Jbml0
aWFsaXplUGx1Z2luUHJvY2VzcyhQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzKQoreworCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5B
QkxFKFBMVUdJTl9QUk9DRVNTKQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFu
YWdlci5jcHAJKHJldmlzaW9uIDgwMzI4KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMwLDcgKzMwLDkgQEAKIAogI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgogI2luY2x1
ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJNYWNo
UG9ydC5oIgorI2VuZGlmCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNp
bmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgi
CkBAIC02MSwxMSArNjMsMTcgQEAgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24qIFBsdWdpblByb2Nl
c3NDbwogICAgIH0KIAogICAgIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVj
dGlvbklkZW50aWZpZXI7CisjaWYgUExBVEZPUk0oTUFDKQogICAgIENvcmVJUEM6Ok1hY2hQb3J0
IGNvbm5lY3Rpb25NYWNoUG9ydDsKICAgICBpZiAoIVdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5l
Y3Rpb24oKS0+ZGVwcmVjYXRlZFNlbmRTeW5jKFdlYlByb2Nlc3NQcm94eUxlZ2FjeU1lc3NhZ2U6
OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uLCAwLCBDb3JlSVBDOjpJbihwbHVnaW5QYXRoKSwg
Q29yZUlQQzo6T3V0KGNvbm5lY3Rpb25NYWNoUG9ydCkpKQogICAgICAgICByZXR1cm4gMDsKIAog
ICAgIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gY29ubmVjdGlvbk1hY2hQb3J0LnBvcnQoKTsKKyNl
bHNlCisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPmRlcHJlY2F0
ZWRTZW5kU3luYyhXZWJQcm9jZXNzUHJveHlMZWdhY3lNZXNzYWdlOjpHZXRQbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbiwgMCwgQ29yZUlQQzo6SW4ocGx1Z2luUGF0aCksIENvcmVJUEM6Ok91dChjb25u
ZWN0aW9uSWRlbnRpZmllcikpKQorICAgICAgICByZXR1cm4gMDsKKyAgICBwcmludGYoIkFTU0VS
VDpOZWVkIGltcGxlbWVudCBXZWJQcm9jZXNzUHJveHlMZWdhY3lNZXNzYWdlOjpHZXRQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvblxuIik7CisjZW5kaWYKICAgICBpZiAoIWNvbm5lY3Rpb25JZGVudGlm
aWVyKQogICAgICAgICByZXR1cm4gMDsKIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL3F0L1BsdWdpblByb3h5UXQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9xdC9QbHVnaW5Qcm94eVF0
LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9xdC9QbHVnaW5Qcm94eVF0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIlBsdWdpblBy
b3h5LmgiCisKKyNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCisKKyNpbmNsdWRlIDxXZWJDb3Jl
L05vdEltcGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisjaWYgUExBVEZPUk0o
TUFDKQorUGxhdGZvcm1MYXllciogUGx1Z2luUHJveHk6OnBsdWdpbkxheWVyKCkKK3sKKyAgICBB
U1NFUlQoZmFsc2UpOworICAgIHJldHVybiAwOworfQorI2VuZGlmCisKK2Jvb2wgUGx1Z2luUHJv
eHk6Om5lZWRzQmFja2luZ1N0b3JlKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDgwMzI4KQorKysgU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgs
OCArMTA4LDEwIEBACiAKICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAvLyBGSVhNRTogVGhp
cyBpcyBjdXJyZW50bHkgTWFjLXNwZWNpZmljIQorI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRl
ICJNYWNoUG9ydC5oIgogI2VuZGlmCisjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFFUKQogI2luY2x1
ZGUgIkhpdFRlc3RSZXN1bHQuaCIKQEAgLTE4OCw2ICsxOTAsNyBAQCBXZWJQYWdlOjpXZWJQYWdl
KHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QKIAogICAgIG1fcGFnZUdyb3VwID0gV2ViUHJvY2Vzczo6
c2hhcmVkKCkud2ViUGFnZUdyb3VwKHBhcmFtZXRlcnMucGFnZUdyb3VwRGF0YSk7CiAgICAgbV9w
YWdlLT5zZXRHcm91cE5hbWUobV9wYWdlR3JvdXAtPmlkZW50aWZpZXIoKSk7CisgICAgbV9wYWdl
LT5zZXR0aW5ncygpLT5zZXRQbHVnaW5zRW5hYmxlZCh0cnVlKTsKIAogICAgIHBsYXRmb3JtSW5p
dGlhbGl6ZSgpOwogICAgIFNldHRpbmdzOjpzZXREZWZhdWx0TWluRE9NVGltZXJJbnRlcnZhbCgw
LjAwNCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84796</attachid>
            <date>2011-03-04 14:25:48 -0800</date>
            <delta_ts>2011-03-04 14:27:17 -0800</delta_ts>
            <desc>Part1, dummy Qt implementation, Makefiles</desc>
            <filename>new_patch.diff</filename>
            <type>text/plain</type>
            <size>19374</size>
            <attacher name="Oleg Romashin (:romaxa)">romaxa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwMzcxKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMDMtMDQgIE9sZWcgUm9t
YXNoaW4gIDxyb21heGFAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtRdF1bV0syXSBNYWtlIFF0IHBvcnQgY29tcGlsaW5nIHdpdGgg
RU5BQkxFX1BMVUdJTl9QUk9DRVNTPTEsIHBhcnQxCisgICAgICAgIEFkZGluZyBkdW1teSBRdCBm
aWxlcyBmb3IgUGx1Z2luIFByb2Nlc3MgaW1wbGVtZW50YXRpb24sCisgICAgICAgIEFkZGluZyBt
aXNzaW5nIHNvdXJjZXMgaW50byBRdCBwcm8gZmlsZXMKKworICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLnBybzoKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL3F0OiBBZGRlZC4KKyAgICAgICAgKiBQ
bHVnaW5Qcm9jZXNzL3F0L1BsdWdpbkNvbnRyb2xsZXJQcm94eVF0LmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKToK
KyAgICAgICAgKFdlYktpdDo6UGx1Z2luQ29udHJvbGxlclByb3h5OjpwbGF0Zm9ybURlc3Ryb3kp
OgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Db250cm9sbGVyUHJveHk6OnBsYXRmb3JtR2VvbWV0
cnlEaWRDaGFuZ2UpOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc01h
aW5RdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzTWFpbik6Cisg
ICAgICAgICogUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzUXQuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9xdC9QbHVnaW5Qcm9jZXNzUHJveHlRdC5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6
ZVBsdWdpblByb2Nlc3MpOgorICAgICAgICAqIFdlYktpdDIucHJpOgorICAgICAgICAqIFdlYktp
dDIucHJvOgorICAgICAgICAqIFdlYktpdDJBUEkucHJpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9xdC9QbHVnaW5Qcm94eVF0LmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OlBsdWdpblByb3h5OjpuZWVkc0JhY2tpbmdTdG9yZSk6CisKIDIwMTEtMDMtMDQgIEpl
c3NpZSBCZXJsaW4gIDxqYmVybGluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBN
YWNpZWogU3RhY2hvd2lhay4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnBy
bwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcm8JKHJldmlz
aW9uIDgwMzcxKQorKysgU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJvCSh3b3JraW5n
IGNvcHkpCkBAIC04Nyw3ICs4Nyw4IEBAIFZQQVRIID0gXAogICAgIFdlYlByb2Nlc3MgXAogICAg
IFVJUHJvY2VzcyBcCiAgICAgVUlQcm9jZXNzL0Rvd25sb2FkcyBcCi0gICAgVUlQcm9jZXNzL1Bs
dWdpbnMKKyAgICBVSVByb2Nlc3MvUGx1Z2lucyBcCisgICAgU2hhcmVkL1BsdWdpbnMKIAogTUVT
U0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgQXV0aGVudGljYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmlu
IFwKQEAgLTExNSw3ICsxMTYsOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBXZWJQcm9j
ZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBcCiAgICAgV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2Vz
LmluIFwKICAgICBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbiBcCi0gICAgV2Vi
UmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorICAgIFdlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gXAorICAgIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVy
Lm1lc3NhZ2VzLmluCiAKIFNDUklQVFMgPSBcCiAgICAgJCRQV0QvU2NyaXB0cy9nZW5lcmF0ZS1t
ZXNzYWdlLXJlY2VpdmVyLnB5IFwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJpCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJpCShyZXZpc2lvbiA4MDM3MSkK
KysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJpCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1
NCw4IEBAIFdFQktJVDJfSU5DTFVERVBBVEggPSBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlIFwKLSAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0
CisgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9xdCBcCisgICAgJCRTT1VSQ0Vf
RElSL1dlYktpdDIvUGx1Z2luUHJvY2VzcwogCiAjIE9uIFN5bWJpYW4gUFJFUEVORF9JTkNMVURF
UEFUSCBpcyB0aGUgYmVzdCB3YXkgdG8gbWFrZSBzdXJlIHRoYXQgV2ViS2l0IGhlYWRlcnMKICMg
YXJlIGluY2x1ZGVkIGJlZm9yZSBwbGF0Zm9ybSBoZWFkZXJzLgpJbmRleDogU291cmNlL1dlYktp
dDIvV2ViS2l0Mi5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8J
KHJldmlzaW9uIDgwMzcxKQorKysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8JKHdvcmtpbmcg
Y29weSkKQEAgLTIxLDYgKzIxLDcgQEAgbWFjOiBDT05GSUcgKz0gYnVpbGRfYWxsCiBXRUJLSVQy
X0dFTkVSQVRFRF9IRUFERVJTID0gXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19E
SVIvQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVS
QVRFRF9TT1VSQ0VTX0RJUi9Eb3dubG9hZFByb3h5TWVzc2FnZXMuaCBcCisgICAgJCRXRUJLSVQy
X0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2VzLmgg
XAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvUGx1Z2luQ29udHJvbGxlclBy
b3h5TWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9QbHVn
aW5Qcm9jZXNzTWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJ
Ui9QbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlcy5oIFwKQEAgLTQ5LDYgKzUwLDcgQEAgV0VCS0lU
Ml9HRU5FUkFURURfSEVBREVSUyA9IFwKIFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVMgPSBcCiAg
ICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9BdXRoZW50aWNhdGlvbk1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElS
L0Rvd25sb2FkUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKKyAgICAkJFdFQktJVDJfR0VORVJB
VEVEX1NPVVJDRVNfRElSL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNw
cCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9QbHVnaW5Db250cm9sbGVy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJD
RVNfRElSL1BsdWdpblByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJf
R0VORVJBVEVEX1NPVVJDRVNfRElSL1BsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgXApAQCAtMTM5LDYgKzE0MSwxMyBAQCBIRUFERVJTICs9IFwKICAgICBTaGFyZWQvV2ViVVJM
UmVzcG9uc2UuaCBcCiAgICAgU2hhcmVkL1dlYlVzZXJDb250ZW50VVJMUGF0dGVybi5oIFwKICAg
ICBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbk1vZHVsZS5oIFwKKyAgICBT
aGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5oIFwKKyAgICBTaGFyZWQvUGx1Z2lucy9O
UElkZW50aWZpZXJEYXRhLmggXAorICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJl
Y2VpdmVyLmggXAorICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0UHJveHkuaCBcCisgICAgU2hh
cmVkL1BsdWdpbnMvTlBWYXJpYW50RGF0YS5oIFwKKyAgICBTaGFyZWQvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggXAorICAgIFNoYXJlZC9QbHVnaW5zL1BsdWdpblF1
aXJrcy5oIFwKICAgICBTaGFyZWQvcXQvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaCBcCiAgICAg
U2hhcmVkL3F0L1VwZGF0ZUNodW5rLmggXAogICAgIFNoYXJlZC9xdC9XZWJFdmVudEZhY3RvcnlR
dC5oIFwKQEAgLTE1Nyw2ICsxNjYsOCBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3MvTGF1
bmNoZXIvVGhyZWFkTGF1bmNoZXIuaCBcCiAgICAgVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBcCiAg
ICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luSW5mb1N0b3JlLmggXAorICAgIFVJUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oIFwKKyAgICBVSVByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzTWFuYWdlci5oIFwKICAgICBVSVByb2Nlc3MvUHJvY2Vzc01vZGVsLmggXAogICAg
IFVJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmggXAogICAgIFVJUHJvY2Vzcy9UZXh0Q2hl
Y2tlci5oIFwKQEAgLTIzMCw2ICsyNDEsOSBAQCBIRUFERVJTICs9IFwKICAgICBXZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luLmggXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9s
bGVyLmggXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmggXAorICAgIFdlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oIFwKKyAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uaCBcCisgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNv
bnRleHRNZW51Q2xpZW50LmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0
YWJhc2VNYW5hZ2VyLmggXApAQCAtMjc4LDYgKzI5MiwxMiBAQCBTT1VSQ0VTICs9IFwKICAgICBT
aGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbk1vZHVsZS5jcHAgXAogICAgIFNo
YXJlZC9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpbk1vZHVsZVgxMS5jcHAgXAog
ICAgIFNoYXJlZC9TaGFyZWFibGVCaXRtYXAuY3BwIFwKKyAgICBTaGFyZWQvUGx1Z2lucy9OUFJl
bW90ZU9iamVjdE1hcC5jcHAgXAorICAgIFNoYXJlZC9QbHVnaW5zL05QSWRlbnRpZmllckRhdGEu
Y3BwIFwKKyAgICBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5jcHAgXAor
ICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0UHJveHkuY3BwIFwKKyAgICBTaGFyZWQvUGx1Z2lu
cy9OUFZhcmlhbnREYXRhLmNwcCBcCisgICAgU2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAgXAogICAgIFNoYXJlZC9DaGlsZFByb2Nlc3MuY3BwIFwKICAg
ICBTaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5jcHAgXAogICAgIFNoYXJlZC9Gb250SW5mby5j
cHAgXApAQCAtMzM1LDggKzM1NSwxMSBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvTGF1
bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwIFwKICAgICBVSVByb2Nlc3MvTGF1bmNoZXIv
cXQvVGhyZWFkTGF1bmNoZXJRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbklu
Zm9TdG9yZS5jcHAgXAorICAgIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5j
cHAgXAorICAgIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmNwcCBcCiAg
ICAgVUlQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcCBcCiAgICAg
VUlQcm9jZXNzL1BsdWdpbnMvcXQvUGx1Z2luSW5mb1N0b3JlUXQuY3BwIFwKKyAgICBVSVByb2Nl
c3MvUGx1Z2lucy9xdC9QbHVnaW5Qcm9jZXNzUHJveHlRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9S
ZXNwb25zaXZlbmVzc1RpbWVyLmNwcCBcCiAgICAgVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQ
cm94eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmNwcCBcCkBAIC00
MjAsOCArNDQzLDEyIEBAIFNPVVJDRVMgKz0gXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9OZXRzY2FwZVBsdWdpbi5jcHAgXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5jcHAgXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9xdC9OZXRzY2FwZVBsdWdpblF0LmNwcCBcCisgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL3F0L1BsdWdpblByb3h5UXQuY3BwIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIFwKKyAgICBX
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwIFwKKyAgICBXZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIFwKKyAgICBXZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJEYXRhYmFzZU1hbmFnZXIuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dl
YktpdDJBUEkucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDJBUEkucHJp
CShyZXZpc2lvbiA4MDM3MSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDJBUEkucHJpCSh3b3Jr
aW5nIGNvcHkpCkBAIC02MCw3ICs2MCwxMiBAQCBXRUJLSVQyX0FQSV9TT1VSQ0VTID0gXAogICAg
ICQkU09VUkNFX0RJUi9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVQYWdlR3JvdXAuY3BwIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZU92ZXJsYXkuY3BwIFwKICAgICAkJFNP
VVJDRV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
U2NyaXB0V29ybGQuY3BwIFwKLSAgICBcCisgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvUGx1Z2lu
UHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwIFwKKyAgICAkJFNPVVJDRV9ESVIvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwIFwKKyAgICAkJFNPVVJDRV9ESVIv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBcCisgICAgJCRT
T1VSQ0VfRElSL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Db250cm9sbGVyUHJveHlR
dC5jcHAgXAorICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2lu
UHJvY2Vzc01haW5RdC5jcHAgXAorICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1BsdWdpblByb2Nl
c3MvcXQvUGx1Z2luUHJvY2Vzc1F0LmNwcCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2Vi
UHJvY2Vzcy9xdC9XZWJQcm9jZXNzTWFpblF0LmNwcAogCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luQ29udHJvbGxlclByb3h5UXQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luQ29udHJvbGxlclByb3h5
UXQuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9Q
bHVnaW5Db250cm9sbGVyUHJveHlRdC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGx1Z2luQ29udHJv
bGxlclByb3h5LmgiCisKKyNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCisKKyNpbmNsdWRlICJQ
bHVnaW5Qcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorCit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgUGx1
Z2luQ29udHJvbGxlclByb3h5OjpwbGF0Zm9ybUluaXRpYWxpemUoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5OjpwbGF0Zm9ybURlc3Ry
b3koKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUGx1Z2luQ29udHJvbGxl
clByb3h5OjpwbGF0Zm9ybUdlb21ldHJ5RGlkQ2hhbmdlKGNvbnN0IEludFJlY3QmIGZyYW1lUmVj
dCwgY29uc3QgSW50UmVjdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoUExVR0lOX1BST0NFU1MpCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nlc3NNYWluUXQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJv
Y2Vzc01haW5RdC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9j
ZXNzL3F0L1BsdWdpblByb2Nlc3NNYWluUXQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIE5va2lhIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBs
dWdpblByb2Nlc3NNYWluLmgiCisKKyNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCisKKyNpbmNs
dWRlICJDb21tYW5kTGluZS5oIgorI2luY2x1ZGUgIlBsdWdpblByb2Nlc3MuaCIKKyNpbmNsdWRl
ICJSdW5Mb29wLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1
ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5Q
dHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKKyNkZWZpbmUgU0hPV19DUkFTSF9SRVBPUlRFUiAxCisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitpbnQgUGx1Z2luUHJvY2Vzc01haW4oY29uc3QgQ29tbWFuZExpbmUmIGNv
bW1hbmRMaW5lKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisKKyAgICBTdHJpbmcgc2Vydmlj
ZU5hbWUgPSBjb21tYW5kTGluZVsic2VydmljZW5hbWUiXTsKKyAgICBpZiAoc2VydmljZU5hbWUu
aXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworCisgICAgU3RyaW5nIGxv
Y2FsaXphdGlvbiA9IGNvbW1hbmRMaW5lWyJsb2NhbGl6YXRpb24iXTsKKworI2lmICFTSE9XX0NS
QVNIX1JFUE9SVEVSCisgICAgLy8gSW5zdGFsbHMgc2lnbmFsIGhhbmRsZXJzIHRoYXQgZXhpdCBv
biBhIGNyYXNoIHNvIHRoYXQgQ3Jhc2hSZXBvcnRlciBkb2VzIG5vdCBzaG93IHVwLgorICAgIHNp
Z25hbChTSUdJTEwsIF9leGl0KTsKKyAgICBzaWduYWwoU0lHRlBFLCBfZXhpdCk7CisgICAgc2ln
bmFsKFNJR0JVUywgX2V4aXQpOworICAgIHNpZ25hbChTSUdTRUdWLCBfZXhpdCk7CisjZW5kaWYK
KworICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOworICAgIFdURjo6aW5pdGlhbGl6ZU1h
aW5UaHJlYWQoKTsKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKworICAg
IFJ1bkxvb3A6OnJ1bigpOworCisgICAgcmV0dXJuIDA7Cit9CisKK30KKworI2VuZGlmIC8vIEVO
QUJMRShQTFVHSU5fUFJPQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3Mv
cXQvUGx1Z2luUHJvY2Vzc1F0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nlc3NRdC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nlc3NRdC5jcHAJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUGx1Z2luUHJvY2Vzcy5oIgorCisjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQorCisj
aW5jbHVkZSAiTmV0c2NhcGVQbHVnaW4uaCIKKyNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBQbHVnaW5Qcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxp
emUoY29uc3QgUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QbHVnaW5zL3F0L1BsdWdpblByb2Nlc3NQcm94eVF0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9xdC9QbHVnaW5Qcm9jZXNzUHJveHlRdC5j
cHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9xdC9Q
bHVnaW5Qcm9jZXNzUHJveHlRdC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc1By
b3h5LmgiCisKKyNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCisKKyNpbmNsdWRlICJQbHVnaW5Q
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1l
bnRlZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6
OnBsYXRmb3JtSW5pdGlhbGl6ZVBsdWdpblByb2Nlc3MoUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYgcGFyYW1ldGVycykKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9xdC9QbHVnaW5Q
cm94eVF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvcXQvUGx1Z2luUHJveHlRdC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvcXQvUGx1Z2luUHJveHlRdC5jcHAJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
Tm9raWEgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUGx1Z2luUHJveHkuaCIKKworI2lmIEVOQUJMRShQTFVHSU5fUFJP
Q0VTUykKKworI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2Jvb2wgUGx1Z2luUHJveHk6Om5lZWRzQmFja2luZ1N0b3JlKCkgY29uc3QK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84797</attachid>
            <date>2011-03-04 14:27:17 -0800</date>
            <delta_ts>2011-04-08 17:19:29 -0700</delta_ts>
            <desc>Part1, dummy Qt implementation, Makefiles</desc>
            <filename>new_patch.diff</filename>
            <type>text/plain</type>
            <size>19429</size>
            <attacher name="Oleg Romashin (:romaxa)">romaxa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwMzcxKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTEtMDMtMDQgIE9sZWcgUm9t
YXNoaW4gIDxyb21heGFAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtRdF1bV0syXSBNYWtlIFF0IHBvcnQgY29tcGlsaW5nIHdpdGgg
RU5BQkxFX1BMVUdJTl9QUk9DRVNTPTEsIHBhcnQxCisgICAgICAgIEFkZGluZyBkdW1teSBRdCBm
aWxlcyBmb3IgUGx1Z2luIFByb2Nlc3MgaW1wbGVtZW50YXRpb24sCisgICAgICAgIEFkZGluZyBt
aXNzaW5nIHNvdXJjZXMgaW50byBRdCBwcm8gZmlsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1NzE5CisKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5wcm86CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9xdDogQWRkZWQuCisgICAgICAgICogUGx1
Z2luUHJvY2Vzcy9xdC9QbHVnaW5Db250cm9sbGVyUHJveHlRdC5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpQbHVnaW5Db250cm9sbGVyUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6cGxhdGZvcm1EZXN0cm95KToK
KyAgICAgICAgKFdlYktpdDo6UGx1Z2luQ29udHJvbGxlclByb3h5OjpwbGF0Zm9ybUdlb21ldHJ5
RGlkQ2hhbmdlKToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nlc3NNYWlu
UXQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc01haW4pOgorICAg
ICAgICAqIFBsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc1F0LmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAg
ICogVUlQcm9jZXNzL1BsdWdpbnMvcXQvUGx1Z2luUHJvY2Vzc1Byb3h5UXQuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUluaXRpYWxpemVQ
bHVnaW5Qcm9jZXNzKToKKyAgICAgICAgKiBXZWJLaXQyLnByaToKKyAgICAgICAgKiBXZWJLaXQy
LnBybzoKKyAgICAgICAgKiBXZWJLaXQyQVBJLnByaToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvcXQvUGx1Z2luUHJveHlRdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpQbHVnaW5Qcm94eTo6bmVlZHNCYWNraW5nU3RvcmUpOgorCiAyMDExLTAzLTA0ICBKZXNz
aWUgQmVybGluICA8amJlcmxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFj
aWVqIFN0YWNob3dpYWsuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcm8K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJvCShyZXZpc2lv
biA4MDM3MSkKKysrIFNvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnBybwkod29ya2luZyBj
b3B5KQpAQCAtODcsNyArODcsOCBAQCBWUEFUSCA9IFwKICAgICBXZWJQcm9jZXNzIFwKICAgICBV
SVByb2Nlc3MgXAogICAgIFVJUHJvY2Vzcy9Eb3dubG9hZHMgXAotICAgIFVJUHJvY2Vzcy9QbHVn
aW5zCisgICAgVUlQcm9jZXNzL1BsdWdpbnMgXAorICAgIFNoYXJlZC9QbHVnaW5zCiAKIE1FU1NB
R0VfUkVDRUlWRVJTID0gXAogICAgIEF1dGhlbnRpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbiBc
CkBAIC0xMTUsNyArMTE2LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gXAogICAgIFdlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5p
biBcCiAgICAgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4gXAotICAgIFdlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKyAgICBXZWJSZXNvdXJjZUNhY2hl
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIFwKKyAgICBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5t
ZXNzYWdlcy5pbgogCiBTQ1JJUFRTID0gXAogICAgICQkUFdEL1NjcmlwdHMvZ2VuZXJhdGUtbWVz
c2FnZS1yZWNlaXZlci5weSBcCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnByaQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnByaQkocmV2aXNpb24gODAzNzEpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnByaQkod29ya2luZyBjb3B5KQpAQCAtNTQsNyArNTQs
OCBAQCBXRUJLSVQyX0lOQ0xVREVQQVRIID0gXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQgXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQgXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZSBcCi0gICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9xdAor
ICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1dlYlByb2Nlc3MvcXQgXAorICAgICQkU09VUkNFX0RJ
Ui9XZWJLaXQyL1BsdWdpblByb2Nlc3MKIAogIyBPbiBTeW1iaWFuIFBSRVBFTkRfSU5DTFVERVBB
VEggaXMgdGhlIGJlc3Qgd2F5IHRvIG1ha2Ugc3VyZSB0aGF0IFdlYktpdCBoZWFkZXJzCiAjIGFy
ZSBpbmNsdWRlZCBiZWZvcmUgcGxhdGZvcm0gaGVhZGVycy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYktpdDIucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCShy
ZXZpc2lvbiA4MDM3MSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCSh3b3JraW5nIGNv
cHkpCkBAIC0yMSw2ICsyMSw3IEBAIG1hYzogQ09ORklHICs9IGJ1aWxkX2FsbAogV0VCS0lUMl9H
RU5FUkFURURfSEVBREVSUyA9IFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElS
L0F1dGhlbnRpY2F0aW9uTWFuYWdlck1lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFU
RURfU09VUkNFU19ESVIvRG93bmxvYWRQcm94eU1lc3NhZ2VzLmggXAorICAgICQkV0VCS0lUMl9H
RU5FUkFURURfU09VUkNFU19ESVIvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlcy5oIFwK
ICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1BsdWdpbkNvbnRyb2xsZXJQcm94
eU1lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvUGx1Z2lu
UHJvY2Vzc01lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIv
UGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBcCkBAIC00OSw2ICs1MCw3IEBAIFdFQktJVDJf
R0VORVJBVEVEX0hFQURFUlMgPSBcCiBXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTID0gXAogICAg
ICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvQXV0aGVudGljYXRpb25NYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9E
b3dubG9hZFByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCisgICAgJCRXRUJLSVQyX0dFTkVSQVRF
RF9TT1VSQ0VTX0RJUi9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2VSZWNlaXZlci5jcHAg
XAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvUGx1Z2luQ29udHJvbGxlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VT
X0RJUi9QbHVnaW5Qcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dF
TkVSQVRFRF9TT1VSQ0VTX0RJUi9QbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
IFwKQEAgLTEzOSw2ICsxNDEsMTMgQEAgSEVBREVSUyArPSBcCiAgICAgU2hhcmVkL1dlYlVSTFJl
c3BvbnNlLmggXAogICAgIFNoYXJlZC9XZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaCBcCiAgICAg
U2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCBcCisgICAgU2hh
cmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuaCBcCisgICAgU2hhcmVkL1BsdWdpbnMvTlBJ
ZGVudGlmaWVyRGF0YS5oIFwKKyAgICBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNl
aXZlci5oIFwKKyAgICBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdFByb3h5LmggXAorICAgIFNoYXJl
ZC9QbHVnaW5zL05QVmFyaWFudERhdGEuaCBcCisgICAgU2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIFwKKyAgICBTaGFyZWQvUGx1Z2lucy9QbHVnaW5RdWly
a3MuaCBcCiAgICAgU2hhcmVkL3F0L1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmggXAogICAgIFNo
YXJlZC9xdC9VcGRhdGVDaHVuay5oIFwKICAgICBTaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQu
aCBcCkBAIC0xNTcsNiArMTY2LDggQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL0xhdW5j
aGVyL1RocmVhZExhdW5jaGVyLmggXAogICAgIFVJUHJvY2Vzcy9QYWdlQ2xpZW50LmggXAogICAg
IFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9TdG9yZS5oIFwKKyAgICBVSVByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaCBcCisgICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc01hbmFnZXIuaCBcCiAgICAgVUlQcm9jZXNzL1Byb2Nlc3NNb2RlbC5oIFwKICAgICBV
SVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5oIFwKICAgICBVSVByb2Nlc3MvVGV4dENoZWNr
ZXIuaCBcCkBAIC0yMzAsNiArMjQxLDkgQEAgSEVBREVSUyArPSBcCiAgICAgV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpbi5oIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luQ29udHJvbGxl
ci5oIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oIFwKKyAgICBXZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaCBcCisgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb2Nlc3NDb25uZWN0aW9uLmggXAorICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250
ZXh0TWVudUNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFi
YXNlTWFuYWdlci5oIFwKQEAgLTI3OCw2ICsyOTIsMTIgQEAgU09VUkNFUyArPSBcCiAgICAgU2hh
cmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5Nb2R1bGUuY3BwIFwKICAgICBTaGFy
ZWQvUGx1Z2lucy9OZXRzY2FwZS94MTEvTmV0c2NhcGVQbHVnaW5Nb2R1bGVYMTEuY3BwIFwKICAg
ICBTaGFyZWQvU2hhcmVhYmxlQml0bWFwLmNwcCBcCisgICAgU2hhcmVkL1BsdWdpbnMvTlBSZW1v
dGVPYmplY3RNYXAuY3BwIFwKKyAgICBTaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNw
cCBcCisgICAgU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKKyAg
ICBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdFByb3h5LmNwcCBcCisgICAgU2hhcmVkL1BsdWdpbnMv
TlBWYXJpYW50RGF0YS5jcHAgXAorICAgIFNoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwIFwKICAgICBTaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcCBcCiAgICAg
U2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uY3BwIFwKICAgICBTaGFyZWQvRm9udEluZm8uY3Bw
IFwKQEAgLTMzNSw4ICszNTUsMTEgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL0xhdW5j
aGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL0xhdW5jaGVyL3F0
L1RocmVhZExhdW5jaGVyUXQuY3BwIFwKICAgICBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5JbmZv
U3RvcmUuY3BwIFwKKyAgICBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3Bw
IFwKKyAgICBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5jcHAgXAogICAg
IFVJUHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAgXAogICAgIFVJ
UHJvY2Vzcy9QbHVnaW5zL3F0L1BsdWdpbkluZm9TdG9yZVF0LmNwcCBcCisgICAgVUlQcm9jZXNz
L1BsdWdpbnMvcXQvUGx1Z2luUHJvY2Vzc1Byb3h5UXQuY3BwIFwKICAgICBVSVByb2Nlc3MvUmVz
cG9uc2l2ZW5lc3NUaW1lci5jcHAgXAogICAgIFVJUHJvY2Vzcy9UaWxlZERyYXdpbmdBcmVhUHJv
eHkuY3BwIFwKICAgICBVSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5jcHAgXApAQCAtNDIw
LDggKzQ0MywxMiBAQCBTT1VSQ0VTICs9IFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvTmV0c2NhcGVQbHVnaW4uY3BwIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
TmV0c2NhcGVQbHVnaW5TdHJlYW0uY3BwIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvcXQvTmV0c2NhcGVQbHVnaW5RdC5jcHAgXAorICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9xdC9QbHVnaW5Qcm94eVF0LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
bi5jcHAgXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBcCisgICAgV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmNwcCBcCisgICAgV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmNwcCBcCisgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRGF0YWJhc2VNYW5hZ2VyLmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyQVBJLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyQVBJLnByaQko
cmV2aXNpb24gODAzNzEpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyQVBJLnByaQkod29ya2lu
ZyBjb3B5KQpAQCAtNjAsNyArNjAsMTIgQEAgV0VCS0lUMl9BUElfU09VUkNFUyA9IFwKICAgICAk
JFNPVVJDRV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZUdyb3VwLmNwcCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VPdmVybGF5LmNwcCBcCiAgICAgJCRTT1VS
Q0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVNj
cmlwdFdvcmxkLmNwcCBcCi0gICAgXAorICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcCBcCisgICAgJCRTT1VSQ0VfRElSL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcCBcCisgICAgJCRTT1VSQ0VfRElSL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgXAorICAgICQkU09V
UkNFX0RJUi9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luQ29udHJvbGxlclByb3h5UXQu
Y3BwIFwKKyAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblBy
b2Nlc3NNYWluUXQuY3BwIFwKKyAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNz
L3F0L1BsdWdpblByb2Nlc3NRdC5jcHAgXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1dlYlBy
b2Nlc3MvcXQvV2ViUHJvY2Vzc01haW5RdC5jcHAKIAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL3F0L1BsdWdpbkNvbnRyb2xsZXJQcm94eVF0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpbkNvbnRyb2xsZXJQcm94eVF0
LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1
Z2luQ29udHJvbGxlclByb3h5UXQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsdWdpbkNvbnRyb2xs
ZXJQcm94eS5oIgorCisjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQorCisjaW5jbHVkZSAiUGx1
Z2luUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKwordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFBsdWdp
bkNvbnRyb2xsZXJQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCit2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6cGxhdGZvcm1EZXN0cm95
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFBsdWdpbkNvbnRyb2xsZXJQ
cm94eTo6cGxhdGZvcm1HZW9tZXRyeURpZENoYW5nZShjb25zdCBJbnRSZWN0JiBmcmFtZVJlY3Qs
IGNvbnN0IEludFJlY3QmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQpJbmRleDog
U291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzTWFpblF0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nl
c3NNYWluUXQuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vz
cy9xdC9QbHVnaW5Qcm9jZXNzTWFpblF0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBOb2tpYSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbHVn
aW5Qcm9jZXNzTWFpbi5oIgorCisjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQorCisjaW5jbHVk
ZSAiQ29tbWFuZExpbmUuaCIKKyNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzLmgiCisjaW5jbHVkZSAi
UnVuTG9vcC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRl
IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorCisjZGVmaW5lIFNIT1dfQ1JBU0hfUkVQT1JURVIgMQorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworaW50IFBsdWdpblByb2Nlc3NNYWluKGNvbnN0IENvbW1hbmRMaW5lJiBjb21t
YW5kTGluZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworCisgICAgU3RyaW5nIHNlcnZpY2VO
YW1lID0gY29tbWFuZExpbmVbInNlcnZpY2VuYW1lIl07CisgICAgaWYgKHNlcnZpY2VOYW1lLmlz
RW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKworICAgIFN0cmluZyBsb2Nh
bGl6YXRpb24gPSBjb21tYW5kTGluZVsibG9jYWxpemF0aW9uIl07CisKKyNpZiAhU0hPV19DUkFT
SF9SRVBPUlRFUgorICAgIC8vIEluc3RhbGxzIHNpZ25hbCBoYW5kbGVycyB0aGF0IGV4aXQgb24g
YSBjcmFzaCBzbyB0aGF0IENyYXNoUmVwb3J0ZXIgZG9lcyBub3Qgc2hvdyB1cC4KKyAgICBzaWdu
YWwoU0lHSUxMLCBfZXhpdCk7CisgICAgc2lnbmFsKFNJR0ZQRSwgX2V4aXQpOworICAgIHNpZ25h
bChTSUdCVVMsIF9leGl0KTsKKyAgICBzaWduYWwoU0lHU0VHViwgX2V4aXQpOworI2VuZGlmCisK
KyAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKKyAgICBXVEY6OmluaXRpYWxpemVNYWlu
VGhyZWFkKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisKKyAgICBS
dW5Mb29wOjpydW4oKTsKKworICAgIHJldHVybiAwOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFC
TEUoUExVR0lOX1BST0NFU1MpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0
L1BsdWdpblByb2Nlc3NRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2lu
UHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzUXQuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzUXQuY3BwCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlBsdWdpblByb2Nlc3MuaCIKKworI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKKworI2lu
Y2x1ZGUgIk5ldHNjYXBlUGx1Z2luLmgiCisjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgUGx1Z2luUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXpl
KGNvbnN0IFBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBFTkFCTEUoUExVR0lOX1BST0NFU1MpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGx1Z2lucy9xdC9QbHVnaW5Qcm9jZXNzUHJveHlRdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvcXQvUGx1Z2luUHJvY2Vzc1Byb3h5UXQuY3Bw
CShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvcXQvUGx1
Z2luUHJvY2Vzc1Byb3h5UXQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NQcm94
eS5oIgorCisjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQorCisjaW5jbHVkZSAiUGx1Z2luUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50
ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5Ojpw
bGF0Zm9ybUluaXRpYWxpemVQbHVnaW5Qcm9jZXNzKFBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMmIHBhcmFtZXRlcnMpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoUExVR0lOX1BST0NFU1MpCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvcXQvUGx1Z2luUHJv
eHlRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL3F0L1BsdWdpblByb3h5UXQuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3F0L1BsdWdpblByb3h5UXQuY3BwCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIE5v
a2lhIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlBsdWdpblByb3h5LmgiCisKKyNpZiBFTkFCTEUoUExVR0lOX1BST0NF
U1MpCisKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitib29sIFBsdWdpblByb3h5OjpuZWVkc0JhY2tpbmdTdG9yZSgpIGNvbnN0Cit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoUExVR0lOX1BST0NFU1MpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84835</attachid>
            <date>2011-03-04 17:49:49 -0800</date>
            <delta_ts>2011-04-08 17:19:36 -0700</delta_ts>
            <desc>Fixed review comments</desc>
            <filename>new_patch2.diff</filename>
            <type>text/plain</type>
            <size>19346</size>
            <attacher name="Oleg Romashin (:romaxa)">romaxa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwMzcxKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTEtMDMtMDQgIE9sZWcgUm9t
YXNoaW4gIDxyb21heGFAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtRdF1bV0syXSBNYWtlIFF0IHBvcnQgY29tcGlsaW5nIHdpdGgg
RU5BQkxFX1BMVUdJTl9QUk9DRVNTPTEsIHBhcnQxCisgICAgICAgIEFkZGluZyBkdW1teSBRdCBm
aWxlcyBmb3IgUGx1Z2luIFByb2Nlc3MgaW1wbGVtZW50YXRpb24sCisgICAgICAgIEFkZGluZyBt
aXNzaW5nIHNvdXJjZXMgaW50byBRdCBwcm8gZmlsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1NzE5CisKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5wcm86CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9xdDogQWRkZWQuCisgICAgICAgICogUGx1
Z2luUHJvY2Vzcy9xdC9QbHVnaW5Db250cm9sbGVyUHJveHlRdC5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpQbHVnaW5Db250cm9sbGVyUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6cGxhdGZvcm1EZXN0cm95KToK
KyAgICAgICAgKFdlYktpdDo6UGx1Z2luQ29udHJvbGxlclByb3h5OjpwbGF0Zm9ybUdlb21ldHJ5
RGlkQ2hhbmdlKToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nlc3NNYWlu
UXQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc01haW4pOgorICAg
ICAgICAqIFBsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc1F0LmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAg
ICogVUlQcm9jZXNzL1BsdWdpbnMvcXQvUGx1Z2luUHJvY2Vzc1Byb3h5UXQuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUluaXRpYWxpemVQ
bHVnaW5Qcm9jZXNzKToKKyAgICAgICAgKiBXZWJLaXQyLnByaToKKyAgICAgICAgKiBXZWJLaXQy
LnBybzoKKyAgICAgICAgKiBXZWJLaXQyQVBJLnByaToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvcXQvUGx1Z2luUHJveHlRdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpQbHVnaW5Qcm94eTo6bmVlZHNCYWNraW5nU3RvcmUpOgorCiAyMDExLTAzLTA0ICBKZXNz
aWUgQmVybGluICA8amJlcmxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFj
aWVqIFN0YWNob3dpYWsuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcm8K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJvCShyZXZpc2lv
biA4MDM3MSkKKysrIFNvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnBybwkod29ya2luZyBj
b3B5KQpAQCAtODcsNyArODcsOCBAQCBWUEFUSCA9IFwKICAgICBXZWJQcm9jZXNzIFwKICAgICBV
SVByb2Nlc3MgXAogICAgIFVJUHJvY2Vzcy9Eb3dubG9hZHMgXAotICAgIFVJUHJvY2Vzcy9QbHVn
aW5zCisgICAgVUlQcm9jZXNzL1BsdWdpbnMgXAorICAgIFNoYXJlZC9QbHVnaW5zCiAKIE1FU1NB
R0VfUkVDRUlWRVJTID0gXAogICAgIEF1dGhlbnRpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbiBc
CkBAIC0xMTUsNyArMTE2LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gXAogICAgIFdlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5p
biBcCiAgICAgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4gXAotICAgIFdlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKyAgICBXZWJSZXNvdXJjZUNhY2hl
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIFwKKyAgICBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5t
ZXNzYWdlcy5pbgogCiBTQ1JJUFRTID0gXAogICAgICQkUFdEL1NjcmlwdHMvZ2VuZXJhdGUtbWVz
c2FnZS1yZWNlaXZlci5weSBcCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnByaQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnByaQkocmV2aXNpb24gODAzNzEpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnByaQkod29ya2luZyBjb3B5KQpAQCAtNTQsNyArNTQs
OCBAQCBXRUJLSVQyX0lOQ0xVREVQQVRIID0gXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQgXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQgXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZSBcCi0gICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9xdAor
ICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1dlYlByb2Nlc3MvcXQgXAorICAgICQkU09VUkNFX0RJ
Ui9XZWJLaXQyL1BsdWdpblByb2Nlc3MKIAogIyBPbiBTeW1iaWFuIFBSRVBFTkRfSU5DTFVERVBB
VEggaXMgdGhlIGJlc3Qgd2F5IHRvIG1ha2Ugc3VyZSB0aGF0IFdlYktpdCBoZWFkZXJzCiAjIGFy
ZSBpbmNsdWRlZCBiZWZvcmUgcGxhdGZvcm0gaGVhZGVycy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYktpdDIucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCShy
ZXZpc2lvbiA4MDM3MSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCSh3b3JraW5nIGNv
cHkpCkBAIC0yMSw2ICsyMSw3IEBAIG1hYzogQ09ORklHICs9IGJ1aWxkX2FsbAogV0VCS0lUMl9H
RU5FUkFURURfSEVBREVSUyA9IFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElS
L0F1dGhlbnRpY2F0aW9uTWFuYWdlck1lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFU
RURfU09VUkNFU19ESVIvRG93bmxvYWRQcm94eU1lc3NhZ2VzLmggXAorICAgICQkV0VCS0lUMl9H
RU5FUkFURURfU09VUkNFU19ESVIvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlcy5oIFwK
ICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1BsdWdpbkNvbnRyb2xsZXJQcm94
eU1lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvUGx1Z2lu
UHJvY2Vzc01lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIv
UGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBcCkBAIC00OSw2ICs1MCw3IEBAIFdFQktJVDJf
R0VORVJBVEVEX0hFQURFUlMgPSBcCiBXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTID0gXAogICAg
ICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvQXV0aGVudGljYXRpb25NYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9E
b3dubG9hZFByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCisgICAgJCRXRUJLSVQyX0dFTkVSQVRF
RF9TT1VSQ0VTX0RJUi9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2VSZWNlaXZlci5jcHAg
XAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvUGx1Z2luQ29udHJvbGxlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VT
X0RJUi9QbHVnaW5Qcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dF
TkVSQVRFRF9TT1VSQ0VTX0RJUi9QbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
IFwKQEAgLTEzOSw2ICsxNDEsMTMgQEAgSEVBREVSUyArPSBcCiAgICAgU2hhcmVkL1dlYlVSTFJl
c3BvbnNlLmggXAogICAgIFNoYXJlZC9XZWJVc2VyQ29udGVudFVSTFBhdHRlcm4uaCBcCiAgICAg
U2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCBcCisgICAgU2hh
cmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuaCBcCisgICAgU2hhcmVkL1BsdWdpbnMvTlBJ
ZGVudGlmaWVyRGF0YS5oIFwKKyAgICBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNl
aXZlci5oIFwKKyAgICBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdFByb3h5LmggXAorICAgIFNoYXJl
ZC9QbHVnaW5zL05QVmFyaWFudERhdGEuaCBcCisgICAgU2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIFwKKyAgICBTaGFyZWQvUGx1Z2lucy9QbHVnaW5RdWly
a3MuaCBcCiAgICAgU2hhcmVkL3F0L1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmggXAogICAgIFNo
YXJlZC9xdC9VcGRhdGVDaHVuay5oIFwKICAgICBTaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQu
aCBcCkBAIC0xNTcsNiArMTY2LDggQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL0xhdW5j
aGVyL1RocmVhZExhdW5jaGVyLmggXAogICAgIFVJUHJvY2Vzcy9QYWdlQ2xpZW50LmggXAogICAg
IFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9TdG9yZS5oIFwKKyAgICBVSVByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaCBcCisgICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc01hbmFnZXIuaCBcCiAgICAgVUlQcm9jZXNzL1Byb2Nlc3NNb2RlbC5oIFwKICAgICBV
SVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5oIFwKICAgICBVSVByb2Nlc3MvVGV4dENoZWNr
ZXIuaCBcCkBAIC0yMzAsNiArMjQxLDkgQEAgSEVBREVSUyArPSBcCiAgICAgV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpbi5oIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luQ29udHJvbGxl
ci5oIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oIFwKKyAgICBXZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaCBcCisgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb2Nlc3NDb25uZWN0aW9uLmggXAorICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250
ZXh0TWVudUNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFi
YXNlTWFuYWdlci5oIFwKQEAgLTI3OCw2ICsyOTIsMTIgQEAgU09VUkNFUyArPSBcCiAgICAgU2hh
cmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5Nb2R1bGUuY3BwIFwKICAgICBTaGFy
ZWQvUGx1Z2lucy9OZXRzY2FwZS94MTEvTmV0c2NhcGVQbHVnaW5Nb2R1bGVYMTEuY3BwIFwKICAg
ICBTaGFyZWQvU2hhcmVhYmxlQml0bWFwLmNwcCBcCisgICAgU2hhcmVkL1BsdWdpbnMvTlBSZW1v
dGVPYmplY3RNYXAuY3BwIFwKKyAgICBTaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNw
cCBcCisgICAgU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKKyAg
ICBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdFByb3h5LmNwcCBcCisgICAgU2hhcmVkL1BsdWdpbnMv
TlBWYXJpYW50RGF0YS5jcHAgXAorICAgIFNoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwIFwKICAgICBTaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcCBcCiAgICAg
U2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uY3BwIFwKICAgICBTaGFyZWQvRm9udEluZm8uY3Bw
IFwKQEAgLTMzNSw4ICszNTUsMTEgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL0xhdW5j
aGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL0xhdW5jaGVyL3F0
L1RocmVhZExhdW5jaGVyUXQuY3BwIFwKICAgICBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5JbmZv
U3RvcmUuY3BwIFwKKyAgICBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3Bw
IFwKKyAgICBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5jcHAgXAogICAg
IFVJUHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAgXAogICAgIFVJ
UHJvY2Vzcy9QbHVnaW5zL3F0L1BsdWdpbkluZm9TdG9yZVF0LmNwcCBcCisgICAgVUlQcm9jZXNz
L1BsdWdpbnMvcXQvUGx1Z2luUHJvY2Vzc1Byb3h5UXQuY3BwIFwKICAgICBVSVByb2Nlc3MvUmVz
cG9uc2l2ZW5lc3NUaW1lci5jcHAgXAogICAgIFVJUHJvY2Vzcy9UaWxlZERyYXdpbmdBcmVhUHJv
eHkuY3BwIFwKICAgICBVSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5jcHAgXApAQCAtNDIw
LDggKzQ0MywxMiBAQCBTT1VSQ0VTICs9IFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvTmV0c2NhcGVQbHVnaW4uY3BwIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
TmV0c2NhcGVQbHVnaW5TdHJlYW0uY3BwIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvcXQvTmV0c2NhcGVQbHVnaW5RdC5jcHAgXAorICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9xdC9QbHVnaW5Qcm94eVF0LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
bi5jcHAgXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBcCisgICAgV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmNwcCBcCisgICAgV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmNwcCBcCisgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRGF0YWJhc2VNYW5hZ2VyLmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyQVBJLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyQVBJLnByaQko
cmV2aXNpb24gODAzNzEpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyQVBJLnByaQkod29ya2lu
ZyBjb3B5KQpAQCAtNjAsNyArNjAsMTIgQEAgV0VCS0lUMl9BUElfU09VUkNFUyA9IFwKICAgICAk
JFNPVVJDRV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZUdyb3VwLmNwcCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VPdmVybGF5LmNwcCBcCiAgICAgJCRTT1VS
Q0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVNj
cmlwdFdvcmxkLmNwcCBcCi0gICAgXAorICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcCBcCisgICAgJCRTT1VSQ0VfRElSL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcCBcCisgICAgJCRTT1VSQ0VfRElSL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgXAorICAgICQkU09V
UkNFX0RJUi9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luQ29udHJvbGxlclByb3h5UXQu
Y3BwIFwKKyAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblBy
b2Nlc3NNYWluUXQuY3BwIFwKKyAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNz
L3F0L1BsdWdpblByb2Nlc3NRdC5jcHAgXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1dlYlBy
b2Nlc3MvcXQvV2ViUHJvY2Vzc01haW5RdC5jcHAKIAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL3F0L1BsdWdpbkNvbnRyb2xsZXJQcm94eVF0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpbkNvbnRyb2xsZXJQcm94eVF0
LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1
Z2luQ29udHJvbGxlclByb3h5UXQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsdWdpbkNvbnRyb2xs
ZXJQcm94eS5oIgorCisjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQorCisjaW5jbHVkZSAiUGx1
Z2luUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKwordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFBsdWdp
bkNvbnRyb2xsZXJQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCit2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6cGxhdGZvcm1EZXN0cm95
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFBsdWdpbkNvbnRyb2xsZXJQ
cm94eTo6cGxhdGZvcm1HZW9tZXRyeURpZENoYW5nZShjb25zdCBJbnRSZWN0JiBmcmFtZVJlY3Qs
IGNvbnN0IEludFJlY3QmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQpJbmRleDog
U291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzTWFpblF0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nl
c3NNYWluUXQuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vz
cy9xdC9QbHVnaW5Qcm9jZXNzTWFpblF0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2OSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBOb2tpYSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbHVn
aW5Qcm9jZXNzTWFpbi5oIgorCisjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQorCisjaW5jbHVk
ZSAiQ29tbWFuZExpbmUuaCIKKyNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzLmgiCisjaW5jbHVkZSAi
UnVuTG9vcC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRl
IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorCisjZGVmaW5lIFNIT1dfQ1JBU0hfUkVQT1JURVIgMQorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworaW50IFBsdWdpblByb2Nlc3NNYWluKGNvbnN0IENvbW1hbmRMaW5lJiBjb21t
YW5kTGluZSkKK3sKKyAgICBTdHJpbmcgc2VydmljZU5hbWUgPSBjb21tYW5kTGluZVsic2Vydmlj
ZW5hbWUiXTsKKyAgICBpZiAoc2VydmljZU5hbWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4g
RVhJVF9GQUlMVVJFOworCisjaWYgIVNIT1dfQ1JBU0hfUkVQT1JURVIKKyAgICAvLyBJbnN0YWxs
cyBzaWduYWwgaGFuZGxlcnMgdGhhdCBleGl0IG9uIGEgY3Jhc2ggc28gdGhhdCBDcmFzaFJlcG9y
dGVyIGRvZXMgbm90IHNob3cgdXAuCisgICAgc2lnbmFsKFNJR0lMTCwgX2V4aXQpOworICAgIHNp
Z25hbChTSUdGUEUsIF9leGl0KTsKKyAgICBzaWduYWwoU0lHQlVTLCBfZXhpdCk7CisgICAgc2ln
bmFsKFNJR1NFR1YsIF9leGl0KTsKKyNlbmRpZgorCisgICAgSlNDOjppbml0aWFsaXplVGhyZWFk
aW5nKCk7CisgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZCgpOworICAgIFJ1bkxvb3A6Omlu
aXRpYWxpemVNYWluUnVuTG9vcCgpOworCisgICAgUnVuTG9vcDo6cnVuKCk7CisKKyAgICByZXR1
cm4gMDsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQpJbmRleDog
U291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzUXQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc1F0
LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1
Z2luUHJvY2Vzc1F0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzLmgiCisKKyNp
ZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCisKKyNpbmNsdWRlICJOZXRzY2FwZVBsdWdpbi5oIgor
I2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFBs
dWdpblByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBQbHVnaW5Qcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFBMVUdJTl9QUk9DRVNT
KQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvcXQvUGx1Z2luUHJvY2Vz
c1Byb3h5UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVn
aW5zL3F0L1BsdWdpblByb2Nlc3NQcm94eVF0LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL3F0L1BsdWdpblByb2Nlc3NQcm94eVF0LmNwcAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tp
YSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzUHJveHkuaCIKKworI2lmIEVOQUJMRShQTFVHSU5f
UFJPQ0VTUykKKworI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCit2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplUGx1Z2luUHJv
Y2VzcyhQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL3F0L1BsdWdpblByb3h5UXQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9xdC9QbHVnaW5Qcm94eVF0
LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9xdC9QbHVnaW5Qcm94eVF0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbHVnaW5Qcm94
eS5oIgorCisjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQorCisjaW5jbHVkZSA8V2ViQ29yZS9O
b3RJbXBsZW1lbnRlZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworYm9vbCBQbHVnaW5Qcm94
eTo6bmVlZHNCYWNraW5nU3RvcmUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
RU5BQkxFKFBMVUdJTl9QUk9DRVNTKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84899</attachid>
            <date>2011-03-06 13:55:27 -0800</date>
            <delta_ts>2011-03-06 14:57:31 -0800</delta_ts>
            <desc>Part2, fixed sendComplexInput</desc>
            <filename>bug55719_part2.diff</filename>
            <type>text/plain</type>
            <size>28356</size>
            <attacher name="Oleg Romashin (:romaxa)">romaxa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTEtMDMtMDYgIE9sZWcgUm9t
YXNoaW4gIDxyb21heGFAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1ha2UgUXQgcG9ydCBjb21waWxpbmcgd2l0aCBFTkFCTEVfUExV
R0lOX1BST0NFU1M9MSwgcGFydDIKKyAgICAgICAgTWFrZSBDb21wbGV4VGV4dElucHV0IGNvbXBp
bGluZyBmb3IgUXQKKyAgICAgICAgQ292ZXIgd2l0aCBpZmRlZiBNYWNoUG9ydCByZWxhdGVkIGZ1
bmN0aW9uYWxpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU1NzE5CisKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6c2VuZENvbXBs
ZXhUZXh0SW5wdXQpOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclBy
b3h5Lmg6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6Y3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgor
ICAgICAgICAqIFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlUGx1Z2luKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwOgorICAgICAgICAoUVdLUGFnZVByaXZhdGU6
OnNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0
L3F3a3BhZ2VfcC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpwbHVnaW5Qcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9M
YXVuY2gpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZENyZWF0ZVdl
YlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
UHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2VuZENvbXBsZXhUZXh0SW5wdXRUb1Bs
dWdpbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL3F0L05ldHNjYXBlUGx1Z2luUXQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXRzY2FwZVBsdWdpbjo6c2VuZENvbXBsZXhUZXh0SW5wdXQpOgorICAgICAgICAoV2ViS2l0
OjpOZXRzY2FwZVBsdWdpbjo6cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luQ29udHJvbGxlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OmdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9u
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpQbHVnaW5Qcm94eTo6c2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblZpZXcuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6YWNjZXNzaWJpbGl0eVBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvcXQvV2ViUGFnZVF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGVyZm9ybURl
ZmF1bHRCZWhhdmlvckZvcktleUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2Vu
ZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbik6CisKIDIwMTEtMDMtMDYgIEplc3NpZSBCZXJsaW4g
IDxqYmVybGluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJ
bmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHku
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29u
dHJvbGxlclByb3h5LmNwcAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2
NCwxMCArMjY0LDEyIEBAIHZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5OjpzZXRDb21wbGV4VGUK
ICAgICBtX2Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UGx1Z2luUHJv
eHk6OlNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKSwg
bV9wbHVnaW5JbnN0YW5jZUlEKTsKIH0KIAorI2lmIFBMQVRGT1JNKE1BQykKIG1hY2hfcG9ydF90
IFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6Y29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCkKIHsK
ICAgICByZXR1cm4gUGx1Z2luUHJvY2Vzczo6c2hhcmVkKCkuY29tcG9zaXRpbmdSZW5kZXJTZXJ2
ZXJQb3J0KCk7CiB9CisjZW5kaWYKIAogU3RyaW5nIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6cHJv
eGllc0ZvclVSTChjb25zdCBTdHJpbmcmIHVybFN0cmluZykKIHsKQEAgLTQ3OCwxNCArNDgwLDEz
IEBAIHZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5Ojp3aW5kb3dWaXNpYmkKIHsKICAgICBtX3Bs
dWdpbi0+d2luZG93VmlzaWJpbGl0eUNoYW5nZWQoaXNWaXNpYmxlKTsKIH0KKyNlbmRpZgogCiB2
b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6c2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3QgU3Ry
aW5nJiB0ZXh0SW5wdXQpCiB7CiAgICAgbV9wbHVnaW4tPnNlbmRDb21wbGV4VGV4dElucHV0KHRl
eHRJbnB1dCk7CiB9CiAKLSNlbmRpZgotCiB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6cHJp
dmF0ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkKGJvb2wgaXNQcml2YXRlQnJvd3NpbmdFbmFibGVkKQog
ewogICAgIG1fcGx1Z2luLT5wcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQoaXNQcml2YXRlQnJv
d3NpbmdFbmFibGVkKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2lu
Q29udHJvbGxlclByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCSh3b3JraW5nIGNv
cHkpCkBAIC05MCw4ICs5MCw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcGx1Z2luUHJvY2Vz
c0NyYXNoZWQoKTsKIAotI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29t
cGxleFRleHRJbnB1dEVuYWJsZWQoYm9vbCk7CisjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1
YWwgbWFjaF9wb3J0X3QgY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCk7CiAjZW5kaWYKIApA
QCAtMTMwLDggKzEzMCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCB3aW5kb3dGb2N1c0NoYW5nZWQo
Ym9vbCk7CiAgICAgdm9pZCB3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMpOwogICAgIHZvaWQgd2luZG93
VmlzaWJpbGl0eUNoYW5nZWQoYm9vbCk7Ci0gICAgdm9pZCBzZW5kQ29tcGxleFRleHRJbnB1dChj
b25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CiAjZW5kaWYKKyAgICB2b2lkIHNlbmRDb21wbGV4VGV4
dElucHV0KGNvbnN0IFN0cmluZyYgdGV4dElucHV0KTsKIAogICAgIHZvaWQgcHJpdmF0ZUJyb3dz
aW5nU3RhdGVDaGFuZ2VkKGJvb2wpOwogCkBAIC0xNzIsMTAgKzE3MiwxMCBAQCBwcml2YXRlOgog
ICAgIC8vIFdoZXRoZXIgdGhlIHBsdWctaW4gaGFzIGNhbmNlbGVkIHRoZSBtYW51YWwgc3RyZWFt
IGxvYWQuCiAgICAgYm9vbCBtX3BsdWdpbkNhbmNlbGVkTWFudWFsU3RyZWFtTG9hZDsKIAotI2lm
IFBMQVRGT1JNKE1BQykKICAgICAvLyBXaGV0aGVyIGNvbXBsZXggdGV4dCBpbnB1dCBpcyBlbmFi
bGVkIGZvciB0aGlzIHBsdWctaW4uCiAgICAgYm9vbCBtX2lzQ29tcGxleFRleHRJbnB1dEVuYWJs
ZWQ7CiAKKyNpZiBQTEFURk9STShNQUMpCiAgICAgLy8gRm9yIENBIHBsdWctaW5zLCB0aGlzIGhv
bGRzIHRoZSBpbmZvcm1hdGlvbiBuZWVkZWQgdG8gZXhwb3J0IHRoZSBsYXllciBoaWVyYXJjaHkg
dG8gdGhlIFVJIHByb2Nlc3MuCiAgICAgUmV0YWluUHRyPFdLQ0FSZW1vdGVMYXllckNsaWVudFJl
Zj4gbV9yZW1vdGVMYXllckNsaWVudDsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCShyZXZpc2lvbiA4MDQzNikKKysrIFNv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDcgKzI5LDkgQEAKICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAKICNpbmNs
dWRlICJBcmd1bWVudENvZGVycy5oIgorI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJNYWNo
UG9ydC5oIgorI2VuZGlmCiAjaW5jbHVkZSAiTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCIKICNpbmNs
dWRlICJQbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKQEAgLTEyNyw4ICsxMjksNyBAQCB2b2lkIFBsdWdpblBy
b2Nlc3M6OmluaXRpYWxpemVQbHVnaW5Qcm9jCiAKIHZvaWQgUGx1Z2luUHJvY2Vzczo6Y3JlYXRl
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQogewotICAgIC8vIEZJWE1FOiBUaGlzIGlzIHBsYXRmb3Jt
IHNwZWNpZmljIQotCisjaWYgUExBVEZPUk0oTUFDKQogICAgIC8vIENyZWF0ZSB0aGUgbGlzdGVu
aW5nIHBvcnQuCiAgICAgbWFjaF9wb3J0X3QgbGlzdGVuaW5nUG9ydDsKICAgICBtYWNoX3BvcnRf
YWxsb2NhdGUobWFjaF90YXNrX3NlbGYoKSwgTUFDSF9QT1JUX1JJR0hUX1JFQ0VJVkUsICZsaXN0
ZW5pbmdQb3J0KTsKQEAgLTE0Miw2ICsxNDMsOSBAQCB2b2lkIFBsdWdpblByb2Nlc3M6OmNyZWF0
ZVdlYlByb2Nlc3NDb25uCiAKICAgICAvLyBTdG9wIHRoZSBzaHV0ZG93biB0aW1lci4KICAgICBt
X3NodXRkb3duVGltZXIuc3RvcCgpOworI2Vsc2UKKyAgICBBU1NFUlQoZmFsc2UpOworI2VuZGlm
CiB9CiAKIHZvaWQgUGx1Z2luUHJvY2Vzczo6Z2V0U2l0ZXNXaXRoRGF0YSh1aW50NjRfdCBjYWxs
YmFja0lEKQpJbmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29u
bmVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAJKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE2NywxMCArMTY3LDEyIEBAIHZvaWQgV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZVBs
dWdpbigKICAgICAvLyBOb3cgdHJ5IHRvIGluaXRpYWxpemUgdGhlIHBsdWctaW4uCiAgICAgcmVz
dWx0ID0gcGx1Z2luQ29udHJvbGxlclByb3h5UHRyLT5pbml0aWFsaXplKHBhcmFtZXRlcnMpOwog
CisjaWYgUExBVEZPUk0oTUFDKQogICAgIGlmIChyZXN1bHQpIHsKICAgICAgICAgcmVtb3RlTGF5
ZXJDbGllbnRJRCA9IHBsdWdpbkNvbnRyb2xsZXJQcm94eVB0ci0+cmVtb3RlTGF5ZXJDbGllbnRJ
RCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2VuZGlmCiAKICAgICAvLyBXZSBmYWlsZWQg
dG8gaW5pdGlhbGl6ZSwgcmVtb3ZlIHRoZSBwbHVnLWluIGNvbnRyb2xsZXIuIFRoaXMgY291bGQg
Y2F1c2UgdXMgdG8gYmUgZGVsZXRlZC4KICAgICByZW1vdmVQbHVnaW5Db250cm9sbGVyUHJveHko
cGx1Z2luQ29udHJvbGxlclByb3h5UHRyKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bh
Z2VDbGllbnQuaAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGFnZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQsOCArMTI0LDggQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgSFdORCBuYXRpdmVXaW5kb3coKSA9IDA7CiAjZW5kaWYKIAotI2lmIFBMQVRG
T1JNKE1BQykKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQodWlu
dDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgY29tcGxleFRleHRJ
bnB1dEVuYWJsZWQpID0gMDsKKyNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIHNl
dEF1dG9kaXNwbGF5KGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIENHQ29udGV4dFJlZiBjb250YWlu
aW5nV2luZG93R3JhcGhpY3NDb250ZXh0KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJm
b3JtRGljdGlvbmFyeUxvb2t1cChjb25zdCBTdHJpbmcmLCBkb3VibGUgc2NhbGVGYWN0b3IsIGNv
bnN0IERpY3Rpb25hcnlQb3B1cEluZm8mKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAwMyw3ICsy
MDAzLDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNlbGVjdGlvblN0YXRlQ2hhbmdlZAogICAgIG1f
c2VsZWN0aW9uU3RhdGUgPSBzZWxlY3Rpb25TdGF0ZTsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykK
IC8vIENvbXBsZXggdGV4dCBpbnB1dCBzdXBwb3J0IGZvciBwbHVnLWlucy4KIHZvaWQgV2ViUGFn
ZVByb3h5OjpzZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBs
ZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkKIHsKQEAgLTIw
MTIsNyArMjAxMSw2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZW5kQ29tcGxleFRleHRJbnB1dFQK
ICAgICAKICAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNlbmRDb21wbGV4
VGV4dElucHV0VG9QbHVnaW4ocGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIHRleHRJ
bnB1dCksIG1fcGFnZUlEKTsKIH0KLSNlbmRpZgogCiAjaWYgUExBVEZPUk0oV0lOKQogdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZENoYW5nZUNvbXBvc2l0aW9uU2VsZWN0aW9uKGJvb2wgaGFzQ29tcG9z
aXRpb24pCkBAIC0yNzM1LDEyICsyNzMzLDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5p
c2hMb2FkaW5nRGF0YUYKICAgICBtX3BhZ2VDbGllbnQtPmRpZEZpbmlzaExvYWRpbmdEYXRhRm9y
Q3VzdG9tUmVwcmVzZW50YXRpb24oc3VnZ2VzdGVkRmlsZW5hbWUsIGRhdGFSZWZlcmVuY2UpOwog
fQogCi0jaWYgUExBVEZPUk0oTUFDKQogdm9pZCBXZWJQYWdlUHJveHk6OnNldENvbXBsZXhUZXh0
SW5wdXRFbmFibGVkKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBi
b29sIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKQogewogICAgIG1fcGFnZUNsaWVudC0+c2V0Q29t
cGxleFRleHRJbnB1dEVuYWJsZWQocGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGNv
bXBsZXhUZXh0SW5wdXRFbmFibGVkKTsKIH0KIAorI2lmIFBMQVRGT1JNKE1BQykKIHZvaWQgV2Vi
UGFnZVByb3h5OjpzZXRBdXRvZGlzcGxheShib29sIG5ld1N0YXRlKQogewogICAgIG1fcGFnZUNs
aWVudC0+c2V0QXV0b2Rpc3BsYXkobmV3U3RhdGUpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1OCw5ICsyNTgsMTEg
QEAgcHVibGljOgogICAgIHZvaWQgZ2V0TWFya2VkUmFuZ2UodWludDY0X3QmIGxvY2F0aW9uLCB1
aW50NjRfdCYgbGVuZ3RoKTsKICAgICB1aW50NjRfdCBjaGFyYWN0ZXJJbmRleEZvclBvaW50KGNv
bnN0IFdlYkNvcmU6OkludFBvaW50KTsKICAgICBXZWJDb3JlOjpJbnRSZWN0IGZpcnN0UmVjdEZv
ckNoYXJhY3RlclJhbmdlKHVpbnQ2NF90LCB1aW50NjRfdCk7Ci0gICAgdm9pZCBzZW5kQ29tcGxl
eFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CiAgICAgQ0dDb250ZXh0UmVmIGNvbnRhaW5p
bmdXaW5kb3dHcmFwaGljc0NvbnRleHQoKTsKICNlbmRpZgorCisgICAgdm9pZCBzZW5kQ29tcGxl
eFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CisKICNpZiBQTEFURk9STShXSU4pCiAgICAg
dm9pZCBkaWRDaGFuZ2VDb21wb3NpdGlvblNlbGVjdGlvbihib29sKTsKICAgICB2b2lkIGNvbmZp
cm1Db21wb3NpdGlvbihjb25zdCBTdHJpbmcmKTsKQEAgLTYzMCw5ICs2MzIsNyBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbVJlcHJlc2VudGF0aW9u
KGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUsIGNvbnN0IENvcmVJUEM6OkRhdGFSZWZl
cmVuY2UmKTsKIAotI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIHNldENvbXBsZXhUZXh0SW5w
dXRFbmFibGVkKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBib29s
IGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKTsKLSNlbmRpZgogCiAgICAgc3RhdGljIFN0cmluZyBz
dGFuZGFyZFVzZXJBZ2VudChjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFtZSA9IFN0cmluZygp
KTsKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiA4MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTE3NywxMCArMTc3
LDggQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICAjIEdlb2xvY2F0aW9uIG1lc3Nh
Z2VzCiAgICAgUmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdl
b2xvY2F0aW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFdURjo6U3RyaW5nIG9yaWdpbklkZW50aWZp
ZXIpCiAKLSNpZiBQTEFURk9STShNQUMpCiAgICAgIyBQbHVnLWluIGNvbXBsZXggdGV4dCBpbnB1
dCBzdXBwb3J0IG1lc3NhZ2VzCiAgICAgU2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQodWludDY0
X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgY29tcGxleFRleHRJbnB1
dEVuYWJsZWQpCi0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICAjIFNwZWVjaCBtZXNz
YWdlcwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3Bw
CShyZXZpc2lvbiA4MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdr
cGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3MCw2ICsyNzAsMTMgQEAgdm9pZCBRV0tQYWdl
UHJpdmF0ZTo6cGFpbnQoUVBhaW50ZXIqIHBhaQogICAgICAgICBwYWludGVyLT5maWxsUmVjdChh
cmVhLCBRdDo6d2hpdGUpOwogfQogCit2b2lkCitRV0tQYWdlUHJpdmF0ZTo6c2V0Q29tcGxleFRl
eHRJbnB1dEVuYWJsZWQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjb21wbGV4
VGV4dElucHV0RW5hYmxlZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB2b2lkIFFX
S1BhZ2VQcml2YXRlOjprZXlQcmVzc0V2ZW50KFFLZXlFdmVudCogZXYpCiB7CiAgICAgcGFnZS0+
aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2KSk7CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2VfcC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZV9wLmgJKHJldmlzaW9uIDgw
NDM2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlX3AuaAkod29y
a2luZyBjb3B5KQpAQCAtODksNiArODksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBkb3VibGUg
Y3VzdG9tUmVwcmVzZW50YXRpb25ab29tRmFjdG9yKCkgeyByZXR1cm4gMTsgfQogICAgIHZpcnR1
YWwgdm9pZCBzZXRDdXN0b21SZXByZXNlbnRhdGlvblpvb21GYWN0b3IoZG91YmxlKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsYmFyc0Zvck1haW5GcmFtZSgpIGNvbnN0IHsg
fQorICAgIHZpcnR1YWwgdm9pZCBzZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZCh1aW50NjRfdCBw
bHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgYm9vbCBjb21wbGV4VGV4dElucHV0RW5h
YmxlZCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZmxhc2hCYWNraW5nU3RvcmVVcGRhdGVzKGNvbnN0
IFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYgdXBkYXRlUmVjdHMpOwogCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94
eS5jcHAJKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsOSBA
QAogCiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogCisjaWYgUExBVEZPUk0oTUFDKQogI2lu
Y2x1ZGUgIk1hY2hQb3J0LmgiCisjZW5kaWYKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc01hbmFnZXIuaCIKICNpbmNs
dWRlICJQbHVnaW5Qcm9jZXNzTWVzc2FnZXMuaCIKQEAgLTEyMiw4ICsxMjQsMTEgQEAgdm9pZCBQ
bHVnaW5Qcm9jZXNzUHJveHk6OnBsdWdpblByb2Nlc3NDcgogICAgICAgICBDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXIqIHJlcGx5ID0gbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMuZmlyc3QoKS5z
ZWNvbmQ7CiAgICAgICAgIG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLnJlbW92ZUZpcnN0KCk7
CiAKLSAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgTWFjIHNwZWNpZmljLgorI2lmIFBMQVRGT1JN
KE1BQykKICAgICAgICAgcmVwbHktPmVuY29kZShDb3JlSVBDOjpNYWNoUG9ydCgwLCBNQUNIX01T
R19UWVBFX01PVkVfU0VORCkpOworI2Vsc2UKKyAgICAgICAgQVNTRVJUKGZhbHNlKTsKKyNlbmRp
ZgogICAgICAgICByZXBseVdlYlByb2Nlc3NQcm94eS0+Y29ubmVjdGlvbigpLT5zZW5kU3luY1Jl
cGx5KHJlcGx5KTsKICAgICB9CiAKQEAgLTE5MCw2ICsxOTUsNyBAQCB2b2lkIFBsdWdpblByb2Nl
c3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoCiAgICAgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVl
c3RzID0gMDsKIH0KIAorI2lmIFBMQVRGT1JNKE1BQykKIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5
OjpkaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBDb3JlSVBDOjpNYWNoUG9ydCYg
bWFjaFBvcnQpCiB7CiAgICAgQVNTRVJUKCFtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5pc0Vt
cHR5KCkpOwpAQCAtMTk5LDEwICsyMDUsMTEgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmRp
ZENyZWF0ZVdlYlBybwogICAgIENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogcmVwbHkgPSBtX3Bl
bmRpbmdDb25uZWN0aW9uUmVwbGllcy5maXJzdCgpLnNlY29uZDsKICAgICBtX3BlbmRpbmdDb25u
ZWN0aW9uUmVwbGllcy5yZW1vdmVGaXJzdCgpOwogCi0gICAgLy8gRklYTUU6IFRoaXMgaXMgTWFj
IHNwZWNpZmljLgogICAgIHJlcGx5LT5lbmNvZGUoQ29yZUlQQzo6TWFjaFBvcnQobWFjaFBvcnQu
cG9ydCgpLCBNQUNIX01TR19UWVBFX01PVkVfU0VORCkpOworCiAgICAgcmVwbHlXZWJQcm9jZXNz
UHJveHktPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmNSZXBseShyZXBseSk7CiB9CisjZW5kaWYKIAog
dm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZEdldFNpdGVzV2l0aERhdGEoY29uc3QgVmVjdG9y
PFN0cmluZz4mIHNpdGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgJ
KHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc1Byb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTc3LDcgKzc3LDkgQEAgcHJpdmF0
ZToKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKICAgICB2b2lkIGRpZFJlY2VpdmVQbHVnaW5Q
cm9jZXNzUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworI2lmIFBMQVRGT1JNKE1BQykKICAgICB2
b2lkIGRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IENvcmVJUEM6Ok1hY2hQb3J0
Jik7CisjZW5kaWYKICAgICB2b2lkIGRpZEdldFNpdGVzV2l0aERhdGEoY29uc3QgVmVjdG9yPFN0
cmluZz4mIHNpdGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGRpZENsZWFyU2l0
ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVz
c2FnZXMuaW4JKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0y
Myw4ICsyMyw5IEBACiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBQ
bHVnaW5Qcm9jZXNzUHJveHkgewotICAgICMgRklYTUU6IFRoaXMgaXMgcGxhdGZvcm0gc3BlY2lm
aWMKKyNpZiBQTEFURk9STShNQUMpCiAgICAgRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24o
Q29yZUlQQzo6TWFjaFBvcnQgY29ubmVjdGlvbklkZW50aWZpZXIpCisjZW5kaWYKIAogICAgIERp
ZEdldFNpdGVzV2l0aERhdGEoVmVjdG9yPFdURjo6U3RyaW5nPiBzaXRlcywgdWludDY0X3QgY2Fs
bGJhY2tJRCkKICAgICBEaWRDbGVhclNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oCShyZXZpc2lvbiA4
MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaAkod29y
a2luZyBjb3B5KQpAQCAtMTU0LDEzICsxNTQsMTMgQEAgcHVibGljOgogCiAgICAgLy8gVGVsbHMg
dGhlIHBsdWctaW4gYWJvdXQgd2luZG93IHZpc2liaWxpdHkgY2hhbmdlcy4KICAgICB2aXJ0dWFs
IHZvaWQgd2luZG93VmlzaWJpbGl0eUNoYW5nZWQoYm9vbCkgPSAwOworI2VuZGlmCiAKICAgICAv
LyBHZXQgdGhlIHBlciBjb21wbGV4IHRleHQgaW5wdXQgaWRlbnRpZmllci4KICAgICB2aXJ0dWFs
IHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkgY29uc3QgPSAwOwog
CiAgICAgLy8gU2VuZCB0aGUgY29tcGxleCB0ZXh0IGlucHV0IHRvIHRoZSBwbHVnLWluLgogICAg
IHZpcnR1YWwgdm9pZCBzZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1
dCkgPSAwOwotI2VuZGlmCiAKICAgICAvLyBDYWxsZWQgd2hlbiB0aGUgcHJpdmF0ZSBicm93c2lu
ZyBzdGF0ZSBmb3IgdGhpcyBwbHVnLWluIGNoYW5nZXMuCiAgICAgdmlydHVhbCB2b2lkIHByaXZh
dGVCcm93c2luZ1N0YXRlQ2hhbmdlZChib29sKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luQ29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9sbGVyLmgJKHJldmlzaW9u
IDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkNvbnRy
b2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtODgsMTAgKzg4LDEwIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIEhXTkQgbmF0aXZlUGFyZW50V2luZG93KCkgPSAwOwogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShNQUMpCiAgICAgLy8gVGVsbHMgdGhlIGNvbnRyb2xsZXIgdGhhdCBjb21wbGV4IHRleHQg
aW5wdXQgYmUgZW5hYmxlZCBvciBkaXNhYmxlZCBmb3IgdGhlIHBsdWctaW4uCiAgICAgdmlydHVh
bCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKGJvb2wpID0gMDsKIAorI2lmIFBMQVRG
T1JNKE1BQykKICAgICAvLyBSZXR1cm5zIHRoZSBtYWNoIHBvcnQgb2YgdGhlIGNvbXBvc2l0aW5n
IHJlbmRlciBzZXJ2ZXIuCiAgICAgdmlydHVhbCBtYWNoX3BvcnRfdCBjb21wb3NpdGluZ1JlbmRl
clNlcnZlclBvcnQoKSA9IDA7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbk1hbmFnZXIuY3BwCShyZXZpc2lvbiA4MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMCw3ICszMCw5IEBACiAKICNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIK
ICNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpZiBQTEFURk9STShNQUMpCiAjaW5jbHVk
ZSAiTWFjaFBvcnQuaCIKKyNlbmRpZgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9u
LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzcy5oIgpAQCAtNjEsMTEgKzYzLDE2IEBAIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKiBQbHVn
aW5Qcm9jZXNzQ28KICAgICB9CiAKICAgICBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
IGNvbm5lY3Rpb25JZGVudGlmaWVyOworI2lmIFBMQVRGT1JNKE1BQykKICAgICBDb3JlSVBDOjpN
YWNoUG9ydCBjb25uZWN0aW9uTWFjaFBvcnQ7CiAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQo
KS5jb25uZWN0aW9uKCktPmRlcHJlY2F0ZWRTZW5kU3luYyhXZWJQcm9jZXNzUHJveHlMZWdhY3lN
ZXNzYWdlOjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbiwgMCwgQ29yZUlQQzo6SW4ocGx1Z2lu
UGF0aCksIENvcmVJUEM6Ok91dChjb25uZWN0aW9uTWFjaFBvcnQpKSkKICAgICAgICAgcmV0dXJu
IDA7CiAKICAgICBjb25uZWN0aW9uSWRlbnRpZmllciA9IGNvbm5lY3Rpb25NYWNoUG9ydC5wb3J0
KCk7CisjZWxzZQorICAgIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gMDsKKyAgICBBU1NFUlQoY29u
bmVjdGlvbklkZW50aWZpZXIpOworI2VuZGlmCiAgICAgaWYgKCFjb25uZWN0aW9uSWRlbnRpZmll
cikKICAgICAgICAgcmV0dXJuIDA7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmNwcAkocmV2aXNpb24gODA0MzYpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMzcsNiArMzM3LDcgQEAgdm9pZCBQbHVnaW5Qcm94eTo6d2luZG93VmlzaWJpbGl0
eUNoYW5nZQogewogICAgIG1fY29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpQbHVnaW5Db250cm9sbGVyUHJveHk6OldpbmRvd1Zpc2liaWxpdHlDaGFuZ2VkKGlzVmlzaWJs
ZSksIG1fcGx1Z2luSW5zdGFuY2VJRCk7CiB9CisjZW5kaWYKIAogdWludDY0X3QgUGx1Z2luUHJv
eHk6OnBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkgY29uc3QKIHsKQEAgLTM0OCw4
ICszNDksNiBAQCB2b2lkIFBsdWdpblByb3h5OjpzZW5kQ29tcGxleFRleHRJbnB1dChjCiAgICAg
bV9jb25uZWN0aW9uLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBsdWdpbkNvbnRyb2xs
ZXJQcm94eTo6U2VuZENvbXBsZXhUZXh0SW5wdXQodGV4dElucHV0KSwgbV9wbHVnaW5JbnN0YW5j
ZUlEKTsKIH0KIAotI2VuZGlmCi0KIHZvaWQgUGx1Z2luUHJveHk6OnByaXZhdGVCcm93c2luZ1N0
YXRlQ2hhbmdlZChib29sIGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKIHsKICAgICBtX2Nvbm5l
Y3Rpb24tPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UGx1Z2luQ29udHJvbGxlclByb3h5
OjpQcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQoaXNQcml2YXRlQnJvd3NpbmdFbmFibGVkKSwg
bV9wbHVnaW5JbnN0YW5jZUlEKTsKQEAgLTQ0MCwxMiArNDM5LDEwIEBAIHZvaWQgUGx1Z2luUHJv
eHk6OnNldFN0YXR1c2JhclRleHQoY29uc3QKICAgICBtX3BsdWdpbkNvbnRyb2xsZXItPnNldFN0
YXR1c2JhclRleHQoc3RhdHVzYmFyVGV4dCk7CiB9CiAKLSNpZiBQTEFURk9STShNQUMpCiB2b2lk
IFBsdWdpblByb3h5OjpzZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZChib29sIGNvbXBsZXhUZXh0
SW5wdXRFbmFibGVkKQogewogICAgIG1fcGx1Z2luQ29udHJvbGxlci0+c2V0Q29tcGxleFRleHRJ
bnB1dEVuYWJsZWQoY29tcGxleFRleHRJbnB1dEVuYWJsZWQpOwogfQotI2VuZGlmCiAgICAgCiB2
b2lkIFBsdWdpblByb3h5Ojp1cGRhdGUoY29uc3QgSW50UmVjdCYgcGFpbnRlZFJlY3QpCiB7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHku
aAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtOTIsOSArOTIsOSBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgdm9pZCB3aW5kb3dGb2N1c0NoYW5nZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2
b2lkIHdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHdp
bmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmll
d0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbmRvd1Zpc2li
aWxpdHlDaGFuZ2VkKGJvb2wpOworI2VuZGlmCiAgICAgdmlydHVhbCB1aW50NjRfdCBwbHVnaW5D
b21wbGV4VGV4dElucHV0SWRlbnRpZmllcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZW5k
Q29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7Ci0jZW5kaWYKIAogICAg
IHZpcnR1YWwgdm9pZCBwcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQoYm9vbCk7CiAKQEAgLTEx
NCw5ICsxMTQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2FuY2VsU3RyZWFtTG9hZCh1aW50NjRf
dCBzdHJlYW1JRCk7CiAgICAgdm9pZCBjYW5jZWxNYW51YWxTdHJlYW1Mb2FkKCk7CiAgICAgdm9p
ZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYgc3RhdHVzYmFyVGV4dCk7Ci0jaWYgUExB
VEZPUk0oTUFDKQogICAgIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQoYm9vbCk7Ci0j
ZW5kaWYKIAogICAgIFN0cmluZyBtX3BsdWdpblBhdGg7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2FnZXMu
aW4JKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC01NiwxMCArNTYsOCBA
QCBtZXNzYWdlcyAtPiBQbHVnaW5Qcm94eSB7CiAgICAgIyBTZXQgdGhlIHN0YXR1cyBiYXIgdGV4
dC4KICAgICBTZXRTdGF0dXNiYXJUZXh0KFdURjo6U3RyaW5nIHN0YXR1c2JhclRleHQpCiAKLSNp
ZiBQTEFURk9STShNQUMpCiAgICAgIyBDaGFuZ2Ugd2hldGhlciBjb21wbGV4dCB0ZXh0IGlucHV0
IGlzIGVuYWJsZWQgZm9yIHRoaXMgcGx1Zy1pbi4KICAgICBTZXRDb21wbGV4VGV4dElucHV0RW5h
YmxlZChib29sIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKQotI2VuZGlmCiB9CiAKICNlbmRpZgpJ
bmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3
LmNwcAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5Nyw2ICszOTcsNyBAQCB2b2lk
IFBsdWdpblZpZXc6OndpbmRvd0FuZFZpZXdGcmFtZXNDaGFuCiAKICAgICBtX3BsdWdpbi0+d2lu
ZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQod2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzLCB2
aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKTsKIH0KKyNlbmRpZgogCiBib29sIFBsdWdpblZp
ZXc6OnNlbmRDb21wbGV4VGV4dElucHV0KHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkKIHsKQEAgLTQxMCw4ICs0MTEsNiBA
QCBib29sIFBsdWdpblZpZXc6OnNlbmRDb21wbGV4VGV4dElucHV0KHVpCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLSNlbmRpZgotCiB2b2lkIFBsdWdpblZpZXc6OmluaXRpYWxpemVQbHVnaW4oKQog
ewogICAgIGlmIChtX2lzSW5pdGlhbGl6ZWQpCkBAIC05ODksMTIgKzk4OCwxMiBAQCBIV05EIFBs
dWdpblZpZXc6Om5hdGl2ZVBhcmVudFdpbmRvdygpCiB9CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JN
KE1BQykKIHZvaWQgUGx1Z2luVmlldzo6c2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQoYm9vbCBj
b21wbGV4VGV4dElucHV0RW5hYmxlZCkKIHsKICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6U2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQobV9wbHVnaW4tPnBsdWdp
bkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCksIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKSk7
CiB9CiAKKyNpZiBQTEFURk9STShNQUMpCiBtYWNoX3BvcnRfdCBQbHVnaW5WaWV3Ojpjb21wb3Np
dGluZ1JlbmRlclNlcnZlclBvcnQoKQogewogICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaGFyZWQo
KS5jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAkocmV2aXNpb24gODA0MzYpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCSh3b3JraW5nIGNv
cHkpCkBAIC02NCw4ICs2NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFdpbmRvd0lzVmlzaWJs
ZShib29sKTsKICAgICB2b2lkIHNldFdpbmRvd0lzRm9jdXNlZChib29sKTsKICAgICB2b2lkIHdp
bmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHdpbmRvd0Zy
YW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld0ZyYW1l
SW5XaW5kb3dDb29yZGluYXRlcyk7Ci0gICAgYm9vbCBzZW5kQ29tcGxleFRleHRJbnB1dCh1aW50
NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0
SW5wdXQpOwogI2VuZGlmCisgICAgYm9vbCBzZW5kQ29tcGxleFRleHRJbnB1dCh1aW50NjRfdCBw
bHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQp
OwogCiBwcml2YXRlOgogICAgIFBsdWdpblZpZXcoUGFzc1JlZlB0cjxXZWJDb3JlOjpIVE1MUGx1
Z0luRWxlbWVudD4sIFBhc3NSZWZQdHI8UGx1Z2luPiwgY29uc3QgUGx1Z2luOjpQYXJhbWV0ZXJz
JiBwYXJhbWV0ZXJzKTsKQEAgLTEzMiw4ICsxMzIsOCBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JN
KFdJTikKICAgICB2aXJ0dWFsIEhXTkQgbmF0aXZlUGFyZW50V2luZG93KCk7CiAjZW5kaWYKLSNp
ZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRFbmFi
bGVkKGJvb2wpOworI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIG1hY2hfcG9ydF90IGNv
bXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpOwogI2VuZGlmCiAgICAgdmlydHVhbCBTdHJpbmcg
cHJveGllc0ZvclVSTChjb25zdCBTdHJpbmcmKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5o
CShyZXZpc2lvbiA4MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzIsMTAgKzE3Miwx
MCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB3aW5kb3dGb2N1c0NoYW5nZWQoYm9vbCk7
CiAgICAgdmlydHVhbCB2b2lkIHdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyk7CiAgICAgdmlydHVhbCB2
b2lkIHdpbmRvd1Zpc2liaWxpdHlDaGFuZ2VkKGJvb2wpOworI2VuZGlmCiAKICAgICB2aXJ0dWFs
IHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkgY29uc3Q7CiAgICAg
dmlydHVhbCB2b2lkIHNlbmRDb21wbGV4VGV4dElucHV0KGNvbnN0IFN0cmluZyYgdGV4dElucHV0
KTsKLSNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdl
ZChib29sKTsKIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL3F0L05ldHNjYXBlUGx1Z2luUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9xdC9OZXRzY2FwZVBsdWdpblF0LmNwcAkocmV2
aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvcXQvTmV0c2NhcGVQbHVnaW5RdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMiw0ICsxMjIs
MTYgQEAgYm9vbCBOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVLZXlibwogICAgIHJldHVy
biBmYWxzZTsKIH0KIAordm9pZCBOZXRzY2FwZVBsdWdpbjo6c2VuZENvbXBsZXhUZXh0SW5wdXQo
Y29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
dWludDY0X3QgTmV0c2NhcGVQbHVnaW46OnBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVy
KCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIC8vIEp1c3QgcmV0dXJuIGEg
ZHVtbXkgdmFsdWU7IHRoaXMgaXMgb25seSBjYWxsZWQgZm9yIGluLXByb2Nlc3MgcGx1Zy1pbnMK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0
cl90Pih0aGlzKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gODA0MzYp
CisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEwOCw5ICsxMDgsMTAgQEAKICNlbmRpZgogCiAjaWYgRU5BQkxFKFBMVUdJ
Tl9QUk9DRVNTKQotLy8gRklYTUU6IFRoaXMgaXMgY3VycmVudGx5IE1hYy1zcGVjaWZpYyEKKyNp
ZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSAiTWFjaFBvcnQuaCIKICNlbmRpZgorI2VuZGlmCiAK
ICNpZiBQTEFURk9STShRVCkKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHJldmlzaW9uIDgwNDM2
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjg2LDEzICsyODYsMTIgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQg
Z2V0TG9jYXRpb25BbmRMZW5ndGhGcm9tUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqLCB1aW50NjRfdCYg
bG9jYXRpb24sIHVpbnQ2NF90JiBsZW5ndGgpOwogCisgICAgdm9pZCBzZW5kQ29tcGxleFRleHRJ
bnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CisKICNpZiBQTEFURk9STShNQUMpCiAgICAgdm9pZCBy
ZWdpc3RlclVJUHJvY2Vzc0FjY2Vzc2liaWxpdHlUb2tlbnMoY29uc3QgQ29yZUlQQzo6RGF0YVJl
ZmVyZW5jZSYgZWxlbWVuVG9rZW4sIGNvbnN0IENvcmVJUEM6OkRhdGFSZWZlcmVuY2UmIHdpbmRv
d1Rva2VuKTsKICAgICBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdCogYWNjZXNzaWJpbGl0eVJl
bW90ZU9iamVjdCgpOwogICAgIFdlYkNvcmU6OkludFBvaW50IGFjY2Vzc2liaWxpdHlQb3NpdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZXNzaWJpbGl0eVBvc2l0aW9uOyB9ICAgIAotICAgIAot
ICAgIHZvaWQgc2VuZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbih1aW50NjRfdCBwbHVnaW5Db21w
bGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpOwotCiAgICAg
dm9pZCBnZXRNYXJrZWRSYW5nZSh1aW50NjRfdCYgbG9jYXRpb24sIHVpbnQ2NF90JiBsZW5ndGgp
OwogICAgIHZvaWQgY2hhcmFjdGVySW5kZXhGb3JQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCBwb2ludCwgdWludDY0X3QmIHJlc3VsdCk7CiAgICAgdm9pZCBmaXJzdFJlY3RGb3JDaGFyYWN0
ZXJSYW5nZSh1aW50NjRfdCBsb2NhdGlvbiwgdWludDY0X3QgbGVuZ3RoLCBXZWJDb3JlOjpJbnRS
ZWN0JiByZXN1bHRSZWN0KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCShyZXZpc2lvbiA4MDQzNikKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNzAsMTAgKzE3MCwxMCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIHsKICAg
ICBTZXRDYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoYm9vbCBjYW5SdW5CZWZvcmVVbmxv
YWRDb25maXJtUGFuZWwpCiAgICAgU2V0Q2FuUnVuTW9kYWwoYm9vbCBjYW5SdW5Nb2RhbCkKIAot
I2lmIFBMQVRGT1JNKE1BQykKICAgICAjIENvbXBsZXggdGV4dCBpbnB1dCBzdXBwb3J0IGZvciBw
bHVnLWlucy4KICAgICBTZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdp
bkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBTdHJpbmcgdGV4dElucHV0KQogCisjaWYgUExB
VEZPUk0oTUFDKQogICAgIFNldFdpbmRvd0lzVmlzaWJsZShib29sIHdpbmRvd0lzVmlzaWJsZSkK
ICAgICBXaW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChXZWJDb3JlOjpJbnRSZWN0IHdpbmRvd0Zy
YW1lSW5TY3JlZW5Db29yZGluYXRlcywgV2ViQ29yZTo6SW50UmVjdCB2aWV3RnJhbWVJbldpbmRv
d0Nvb3JkaW5hdGVzLCBXZWJDb3JlOjpJbnRQb2ludCBhY2Nlc3NpYmlsaXR5Vmlld0Nvb3JkaW5h
dGVzKQogICAgIEdldE1hcmtlZFJhbmdlKCkgLT4gKHVpbnQ2NF90IGxvY2F0aW9uLCB1aW50NjRf
dCBsZW5ndGgpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvV2Vi
UGFnZVF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvcXQvV2ViUGFnZVF0LmNwcAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvcXQvV2ViUGFnZVF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEs
NiArMzEsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRm9jdXNDb250cm9sbGVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bh
Z2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KQEAgLTI2NSw2ICsyNjYsMTIgQEAgYm9vbCBXZWJQYWdl
OjpwZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9ySwogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lk
IFdlYlBhZ2U6OnNlbmRDb21wbGV4VGV4dElucHV0VG9QbHVnaW4odWludDY0X3QgcGx1Z2luQ29t
cGxleFRleHRJbnB1dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdGV4dElucHV0KQoreworICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiBib29sIFdl
YlBhZ2U6OnBsYXRmb3JtSGFzTG9jYWxEYXRhRm9yVVJMKGNvbnN0IFdlYkNvcmU6OktVUkwmKQog
ewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84901</attachid>
            <date>2011-03-06 14:57:31 -0800</date>
            <delta_ts>2011-03-06 17:57:12 -0800</delta_ts>
            <desc>Added dummy implementation for Gtk and Win port</desc>
            <filename>bug55719_part2.v2.diff</filename>
            <type>text/plain</type>
            <size>30753</size>
            <attacher name="Oleg Romashin (:romaxa)">romaxa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTEtMDMtMDYgIE9sZWcgUm9t
YXNoaW4gIDxyb21heGFAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1ha2UgUXQgcG9ydCBjb21waWxpbmcgd2l0aCBFTkFCTEVfUExV
R0lOX1BST0NFU1M9MSwgcGFydDIKKyAgICAgICAgTWFrZSBDb21wbGV4VGV4dElucHV0IGNvbXBp
bGluZyBmb3IgUXQKKyAgICAgICAgQ292ZXIgd2l0aCBpZmRlZiBNYWNoUG9ydCByZWxhdGVkIGZ1
bmN0aW9uYWxpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU1NzE5CisKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6c2VuZENvbXBs
ZXhUZXh0SW5wdXQpOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclBy
b3h5Lmg6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6Y3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgor
ICAgICAgICAqIFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlUGx1Z2luKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwOgorICAgICAgICAoUVdLUGFnZVByaXZhdGU6
OnNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0
L3F3a3BhZ2VfcC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpwbHVnaW5Qcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9M
YXVuY2gpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZENyZWF0ZVdl
YlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
UHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2VuZENvbXBsZXhUZXh0SW5wdXRUb1Bs
dWdpbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL3F0L05ldHNjYXBlUGx1Z2luUXQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXRzY2FwZVBsdWdpbjo6c2VuZENvbXBsZXhUZXh0SW5wdXQpOgorICAgICAgICAoV2ViS2l0
OjpOZXRzY2FwZVBsdWdpbjo6cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luQ29udHJvbGxlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OmdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9u
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpQbHVnaW5Qcm94eTo6c2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblZpZXcuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6YWNjZXNzaWJpbGl0eVBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvcXQvV2ViUGFnZVF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGVyZm9ybURl
ZmF1bHRCZWhhdmlvckZvcktleUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2Vu
ZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbik6CisKIDIwMTEtMDMtMDYgIEplc3NpZSBCZXJsaW4g
IDxqYmVybGluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJ
bmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHku
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29u
dHJvbGxlclByb3h5LmNwcAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2
NCwxMCArMjY0LDEyIEBAIHZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5OjpzZXRDb21wbGV4VGUK
ICAgICBtX2Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UGx1Z2luUHJv
eHk6OlNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKSwg
bV9wbHVnaW5JbnN0YW5jZUlEKTsKIH0KIAorI2lmIFBMQVRGT1JNKE1BQykKIG1hY2hfcG9ydF90
IFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6Y29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCkKIHsK
ICAgICByZXR1cm4gUGx1Z2luUHJvY2Vzczo6c2hhcmVkKCkuY29tcG9zaXRpbmdSZW5kZXJTZXJ2
ZXJQb3J0KCk7CiB9CisjZW5kaWYKIAogU3RyaW5nIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6cHJv
eGllc0ZvclVSTChjb25zdCBTdHJpbmcmIHVybFN0cmluZykKIHsKQEAgLTQ3OCwxNCArNDgwLDEz
IEBAIHZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5Ojp3aW5kb3dWaXNpYmkKIHsKICAgICBtX3Bs
dWdpbi0+d2luZG93VmlzaWJpbGl0eUNoYW5nZWQoaXNWaXNpYmxlKTsKIH0KKyNlbmRpZgogCiB2
b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6c2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3QgU3Ry
aW5nJiB0ZXh0SW5wdXQpCiB7CiAgICAgbV9wbHVnaW4tPnNlbmRDb21wbGV4VGV4dElucHV0KHRl
eHRJbnB1dCk7CiB9CiAKLSNlbmRpZgotCiB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6cHJp
dmF0ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkKGJvb2wgaXNQcml2YXRlQnJvd3NpbmdFbmFibGVkKQog
ewogICAgIG1fcGx1Z2luLT5wcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQoaXNQcml2YXRlQnJv
d3NpbmdFbmFibGVkKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2lu
Q29udHJvbGxlclByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCSh3b3JraW5nIGNv
cHkpCkBAIC05MCw4ICs5MCw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcGx1Z2luUHJvY2Vz
c0NyYXNoZWQoKTsKIAotI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29t
cGxleFRleHRJbnB1dEVuYWJsZWQoYm9vbCk7CisjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1
YWwgbWFjaF9wb3J0X3QgY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCk7CiAjZW5kaWYKIApA
QCAtMTMwLDggKzEzMCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCB3aW5kb3dGb2N1c0NoYW5nZWQo
Ym9vbCk7CiAgICAgdm9pZCB3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMpOwogICAgIHZvaWQgd2luZG93
VmlzaWJpbGl0eUNoYW5nZWQoYm9vbCk7Ci0gICAgdm9pZCBzZW5kQ29tcGxleFRleHRJbnB1dChj
b25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CiAjZW5kaWYKKyAgICB2b2lkIHNlbmRDb21wbGV4VGV4
dElucHV0KGNvbnN0IFN0cmluZyYgdGV4dElucHV0KTsKIAogICAgIHZvaWQgcHJpdmF0ZUJyb3dz
aW5nU3RhdGVDaGFuZ2VkKGJvb2wpOwogCkBAIC0xNzIsMTAgKzE3MiwxMCBAQCBwcml2YXRlOgog
ICAgIC8vIFdoZXRoZXIgdGhlIHBsdWctaW4gaGFzIGNhbmNlbGVkIHRoZSBtYW51YWwgc3RyZWFt
IGxvYWQuCiAgICAgYm9vbCBtX3BsdWdpbkNhbmNlbGVkTWFudWFsU3RyZWFtTG9hZDsKIAotI2lm
IFBMQVRGT1JNKE1BQykKICAgICAvLyBXaGV0aGVyIGNvbXBsZXggdGV4dCBpbnB1dCBpcyBlbmFi
bGVkIGZvciB0aGlzIHBsdWctaW4uCiAgICAgYm9vbCBtX2lzQ29tcGxleFRleHRJbnB1dEVuYWJs
ZWQ7CiAKKyNpZiBQTEFURk9STShNQUMpCiAgICAgLy8gRm9yIENBIHBsdWctaW5zLCB0aGlzIGhv
bGRzIHRoZSBpbmZvcm1hdGlvbiBuZWVkZWQgdG8gZXhwb3J0IHRoZSBsYXllciBoaWVyYXJjaHkg
dG8gdGhlIFVJIHByb2Nlc3MuCiAgICAgUmV0YWluUHRyPFdLQ0FSZW1vdGVMYXllckNsaWVudFJl
Zj4gbV9yZW1vdGVMYXllckNsaWVudDsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCShyZXZpc2lvbiA4MDQzNikKKysrIFNv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDcgKzI5LDkgQEAKICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAKICNpbmNs
dWRlICJBcmd1bWVudENvZGVycy5oIgorI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJNYWNo
UG9ydC5oIgorI2VuZGlmCiAjaW5jbHVkZSAiTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCIKICNpbmNs
dWRlICJQbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKQEAgLTEyNyw4ICsxMjksNyBAQCB2b2lkIFBsdWdpblBy
b2Nlc3M6OmluaXRpYWxpemVQbHVnaW5Qcm9jCiAKIHZvaWQgUGx1Z2luUHJvY2Vzczo6Y3JlYXRl
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQogewotICAgIC8vIEZJWE1FOiBUaGlzIGlzIHBsYXRmb3Jt
IHNwZWNpZmljIQotCisjaWYgUExBVEZPUk0oTUFDKQogICAgIC8vIENyZWF0ZSB0aGUgbGlzdGVu
aW5nIHBvcnQuCiAgICAgbWFjaF9wb3J0X3QgbGlzdGVuaW5nUG9ydDsKICAgICBtYWNoX3BvcnRf
YWxsb2NhdGUobWFjaF90YXNrX3NlbGYoKSwgTUFDSF9QT1JUX1JJR0hUX1JFQ0VJVkUsICZsaXN0
ZW5pbmdQb3J0KTsKQEAgLTE0Miw2ICsxNDMsOSBAQCB2b2lkIFBsdWdpblByb2Nlc3M6OmNyZWF0
ZVdlYlByb2Nlc3NDb25uCiAKICAgICAvLyBTdG9wIHRoZSBzaHV0ZG93biB0aW1lci4KICAgICBt
X3NodXRkb3duVGltZXIuc3RvcCgpOworI2Vsc2UKKyAgICBBU1NFUlQoZmFsc2UpOworI2VuZGlm
CiB9CiAKIHZvaWQgUGx1Z2luUHJvY2Vzczo6Z2V0U2l0ZXNXaXRoRGF0YSh1aW50NjRfdCBjYWxs
YmFja0lEKQpJbmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29u
bmVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAJKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE2NywxMCArMTY3LDEyIEBAIHZvaWQgV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZVBs
dWdpbigKICAgICAvLyBOb3cgdHJ5IHRvIGluaXRpYWxpemUgdGhlIHBsdWctaW4uCiAgICAgcmVz
dWx0ID0gcGx1Z2luQ29udHJvbGxlclByb3h5UHRyLT5pbml0aWFsaXplKHBhcmFtZXRlcnMpOwog
CisjaWYgUExBVEZPUk0oTUFDKQogICAgIGlmIChyZXN1bHQpIHsKICAgICAgICAgcmVtb3RlTGF5
ZXJDbGllbnRJRCA9IHBsdWdpbkNvbnRyb2xsZXJQcm94eVB0ci0+cmVtb3RlTGF5ZXJDbGllbnRJ
RCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2VuZGlmCiAKICAgICAvLyBXZSBmYWlsZWQg
dG8gaW5pdGlhbGl6ZSwgcmVtb3ZlIHRoZSBwbHVnLWluIGNvbnRyb2xsZXIuIFRoaXMgY291bGQg
Y2F1c2UgdXMgdG8gYmUgZGVsZXRlZC4KICAgICByZW1vdmVQbHVnaW5Db250cm9sbGVyUHJveHko
cGx1Z2luQ29udHJvbGxlclByb3h5UHRyKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bh
Z2VDbGllbnQuaAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGFnZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQsOCArMTI0LDggQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgSFdORCBuYXRpdmVXaW5kb3coKSA9IDA7CiAjZW5kaWYKIAotI2lmIFBMQVRG
T1JNKE1BQykKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQodWlu
dDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgY29tcGxleFRleHRJ
bnB1dEVuYWJsZWQpID0gMDsKKyNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIHNl
dEF1dG9kaXNwbGF5KGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIENHQ29udGV4dFJlZiBjb250YWlu
aW5nV2luZG93R3JhcGhpY3NDb250ZXh0KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJm
b3JtRGljdGlvbmFyeUxvb2t1cChjb25zdCBTdHJpbmcmLCBkb3VibGUgc2NhbGVGYWN0b3IsIGNv
bnN0IERpY3Rpb25hcnlQb3B1cEluZm8mKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAwMyw3ICsy
MDAzLDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNlbGVjdGlvblN0YXRlQ2hhbmdlZAogICAgIG1f
c2VsZWN0aW9uU3RhdGUgPSBzZWxlY3Rpb25TdGF0ZTsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykK
IC8vIENvbXBsZXggdGV4dCBpbnB1dCBzdXBwb3J0IGZvciBwbHVnLWlucy4KIHZvaWQgV2ViUGFn
ZVByb3h5OjpzZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBs
ZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkKIHsKQEAgLTIw
MTIsNyArMjAxMSw2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZW5kQ29tcGxleFRleHRJbnB1dFQK
ICAgICAKICAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNlbmRDb21wbGV4
VGV4dElucHV0VG9QbHVnaW4ocGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIHRleHRJ
bnB1dCksIG1fcGFnZUlEKTsKIH0KLSNlbmRpZgogCiAjaWYgUExBVEZPUk0oV0lOKQogdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZENoYW5nZUNvbXBvc2l0aW9uU2VsZWN0aW9uKGJvb2wgaGFzQ29tcG9z
aXRpb24pCkBAIC0yNzM1LDEyICsyNzMzLDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5p
c2hMb2FkaW5nRGF0YUYKICAgICBtX3BhZ2VDbGllbnQtPmRpZEZpbmlzaExvYWRpbmdEYXRhRm9y
Q3VzdG9tUmVwcmVzZW50YXRpb24oc3VnZ2VzdGVkRmlsZW5hbWUsIGRhdGFSZWZlcmVuY2UpOwog
fQogCi0jaWYgUExBVEZPUk0oTUFDKQogdm9pZCBXZWJQYWdlUHJveHk6OnNldENvbXBsZXhUZXh0
SW5wdXRFbmFibGVkKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBi
b29sIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKQogewogICAgIG1fcGFnZUNsaWVudC0+c2V0Q29t
cGxleFRleHRJbnB1dEVuYWJsZWQocGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGNv
bXBsZXhUZXh0SW5wdXRFbmFibGVkKTsKIH0KIAorI2lmIFBMQVRGT1JNKE1BQykKIHZvaWQgV2Vi
UGFnZVByb3h5OjpzZXRBdXRvZGlzcGxheShib29sIG5ld1N0YXRlKQogewogICAgIG1fcGFnZUNs
aWVudC0+c2V0QXV0b2Rpc3BsYXkobmV3U3RhdGUpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1OCw5ICsyNTgsMTEg
QEAgcHVibGljOgogICAgIHZvaWQgZ2V0TWFya2VkUmFuZ2UodWludDY0X3QmIGxvY2F0aW9uLCB1
aW50NjRfdCYgbGVuZ3RoKTsKICAgICB1aW50NjRfdCBjaGFyYWN0ZXJJbmRleEZvclBvaW50KGNv
bnN0IFdlYkNvcmU6OkludFBvaW50KTsKICAgICBXZWJDb3JlOjpJbnRSZWN0IGZpcnN0UmVjdEZv
ckNoYXJhY3RlclJhbmdlKHVpbnQ2NF90LCB1aW50NjRfdCk7Ci0gICAgdm9pZCBzZW5kQ29tcGxl
eFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CiAgICAgQ0dDb250ZXh0UmVmIGNvbnRhaW5p
bmdXaW5kb3dHcmFwaGljc0NvbnRleHQoKTsKICNlbmRpZgorCisgICAgdm9pZCBzZW5kQ29tcGxl
eFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CisKICNpZiBQTEFURk9STShXSU4pCiAgICAg
dm9pZCBkaWRDaGFuZ2VDb21wb3NpdGlvblNlbGVjdGlvbihib29sKTsKICAgICB2b2lkIGNvbmZp
cm1Db21wb3NpdGlvbihjb25zdCBTdHJpbmcmKTsKQEAgLTYzMCw5ICs2MzIsNyBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbVJlcHJlc2VudGF0aW9u
KGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUsIGNvbnN0IENvcmVJUEM6OkRhdGFSZWZl
cmVuY2UmKTsKIAotI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIHNldENvbXBsZXhUZXh0SW5w
dXRFbmFibGVkKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBib29s
IGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKTsKLSNlbmRpZgogCiAgICAgc3RhdGljIFN0cmluZyBz
dGFuZGFyZFVzZXJBZ2VudChjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFtZSA9IFN0cmluZygp
KTsKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiA4MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTE3NywxMCArMTc3
LDggQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICAjIEdlb2xvY2F0aW9uIG1lc3Nh
Z2VzCiAgICAgUmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdl
b2xvY2F0aW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFdURjo6U3RyaW5nIG9yaWdpbklkZW50aWZp
ZXIpCiAKLSNpZiBQTEFURk9STShNQUMpCiAgICAgIyBQbHVnLWluIGNvbXBsZXggdGV4dCBpbnB1
dCBzdXBwb3J0IG1lc3NhZ2VzCiAgICAgU2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQodWludDY0
X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgY29tcGxleFRleHRJbnB1
dEVuYWJsZWQpCi0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICAjIFNwZWVjaCBtZXNz
YWdlcwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3Bw
CShyZXZpc2lvbiA4MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdr
cGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3MCw2ICsyNzAsMTMgQEAgdm9pZCBRV0tQYWdl
UHJpdmF0ZTo6cGFpbnQoUVBhaW50ZXIqIHBhaQogICAgICAgICBwYWludGVyLT5maWxsUmVjdChh
cmVhLCBRdDo6d2hpdGUpOwogfQogCit2b2lkCitRV0tQYWdlUHJpdmF0ZTo6c2V0Q29tcGxleFRl
eHRJbnB1dEVuYWJsZWQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjb21wbGV4
VGV4dElucHV0RW5hYmxlZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB2b2lkIFFX
S1BhZ2VQcml2YXRlOjprZXlQcmVzc0V2ZW50KFFLZXlFdmVudCogZXYpCiB7CiAgICAgcGFnZS0+
aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2KSk7CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2VfcC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZV9wLmgJKHJldmlzaW9uIDgw
NDM2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlX3AuaAkod29y
a2luZyBjb3B5KQpAQCAtODksNiArODksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBkb3VibGUg
Y3VzdG9tUmVwcmVzZW50YXRpb25ab29tRmFjdG9yKCkgeyByZXR1cm4gMTsgfQogICAgIHZpcnR1
YWwgdm9pZCBzZXRDdXN0b21SZXByZXNlbnRhdGlvblpvb21GYWN0b3IoZG91YmxlKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsYmFyc0Zvck1haW5GcmFtZSgpIGNvbnN0IHsg
fQorICAgIHZpcnR1YWwgdm9pZCBzZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZCh1aW50NjRfdCBw
bHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgYm9vbCBjb21wbGV4VGV4dElucHV0RW5h
YmxlZCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZmxhc2hCYWNraW5nU3RvcmVVcGRhdGVzKGNvbnN0
IFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYgdXBkYXRlUmVjdHMpOwogCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94
eS5jcHAJKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsOSBA
QAogCiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogCisjaWYgUExBVEZPUk0oTUFDKQogI2lu
Y2x1ZGUgIk1hY2hQb3J0LmgiCisjZW5kaWYKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc01hbmFnZXIuaCIKICNpbmNs
dWRlICJQbHVnaW5Qcm9jZXNzTWVzc2FnZXMuaCIKQEAgLTEyMiw4ICsxMjQsMTEgQEAgdm9pZCBQ
bHVnaW5Qcm9jZXNzUHJveHk6OnBsdWdpblByb2Nlc3NDcgogICAgICAgICBDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXIqIHJlcGx5ID0gbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMuZmlyc3QoKS5z
ZWNvbmQ7CiAgICAgICAgIG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLnJlbW92ZUZpcnN0KCk7
CiAKLSAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgTWFjIHNwZWNpZmljLgorI2lmIFBMQVRGT1JN
KE1BQykKICAgICAgICAgcmVwbHktPmVuY29kZShDb3JlSVBDOjpNYWNoUG9ydCgwLCBNQUNIX01T
R19UWVBFX01PVkVfU0VORCkpOworI2Vsc2UKKyAgICAgICAgQVNTRVJUKGZhbHNlKTsKKyNlbmRp
ZgogICAgICAgICByZXBseVdlYlByb2Nlc3NQcm94eS0+Y29ubmVjdGlvbigpLT5zZW5kU3luY1Jl
cGx5KHJlcGx5KTsKICAgICB9CiAKQEAgLTE5MCw2ICsxOTUsNyBAQCB2b2lkIFBsdWdpblByb2Nl
c3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoCiAgICAgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVl
c3RzID0gMDsKIH0KIAorI2lmIFBMQVRGT1JNKE1BQykKIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5
OjpkaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBDb3JlSVBDOjpNYWNoUG9ydCYg
bWFjaFBvcnQpCiB7CiAgICAgQVNTRVJUKCFtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5pc0Vt
cHR5KCkpOwpAQCAtMTk5LDEwICsyMDUsMTEgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmRp
ZENyZWF0ZVdlYlBybwogICAgIENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogcmVwbHkgPSBtX3Bl
bmRpbmdDb25uZWN0aW9uUmVwbGllcy5maXJzdCgpLnNlY29uZDsKICAgICBtX3BlbmRpbmdDb25u
ZWN0aW9uUmVwbGllcy5yZW1vdmVGaXJzdCgpOwogCi0gICAgLy8gRklYTUU6IFRoaXMgaXMgTWFj
IHNwZWNpZmljLgogICAgIHJlcGx5LT5lbmNvZGUoQ29yZUlQQzo6TWFjaFBvcnQobWFjaFBvcnQu
cG9ydCgpLCBNQUNIX01TR19UWVBFX01PVkVfU0VORCkpOworCiAgICAgcmVwbHlXZWJQcm9jZXNz
UHJveHktPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmNSZXBseShyZXBseSk7CiB9CisjZW5kaWYKIAog
dm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZEdldFNpdGVzV2l0aERhdGEoY29uc3QgVmVjdG9y
PFN0cmluZz4mIHNpdGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgJ
KHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc1Byb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTc3LDcgKzc3LDkgQEAgcHJpdmF0
ZToKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKICAgICB2b2lkIGRpZFJlY2VpdmVQbHVnaW5Q
cm9jZXNzUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworI2lmIFBMQVRGT1JNKE1BQykKICAgICB2
b2lkIGRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IENvcmVJUEM6Ok1hY2hQb3J0
Jik7CisjZW5kaWYKICAgICB2b2lkIGRpZEdldFNpdGVzV2l0aERhdGEoY29uc3QgVmVjdG9yPFN0
cmluZz4mIHNpdGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGRpZENsZWFyU2l0
ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVz
c2FnZXMuaW4JKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0y
Myw4ICsyMyw5IEBACiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBQ
bHVnaW5Qcm9jZXNzUHJveHkgewotICAgICMgRklYTUU6IFRoaXMgaXMgcGxhdGZvcm0gc3BlY2lm
aWMKKyNpZiBQTEFURk9STShNQUMpCiAgICAgRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24o
Q29yZUlQQzo6TWFjaFBvcnQgY29ubmVjdGlvbklkZW50aWZpZXIpCisjZW5kaWYKIAogICAgIERp
ZEdldFNpdGVzV2l0aERhdGEoVmVjdG9yPFdURjo6U3RyaW5nPiBzaXRlcywgdWludDY0X3QgY2Fs
bGJhY2tJRCkKICAgICBEaWRDbGVhclNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlZpZXcuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViVmlldy5jcHAJKHJldmlzaW9uIDgwNDM2
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJWaWV3LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjg4LDYgKzI4OCwxMSBAQCB2b2lkIFdlYlZpZXc6OmRpZENoYW5nZVNjcm9sbGJh
cnNGb3JNYWluCiB7CiB9CiAKK3ZvaWQgV2ViVmlldzo6c2V0Q29tcGxleFRleHRJbnB1dEVuYWJs
ZWQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgY29tcGxl
eFRleHRJbnB1dEVuYWJsZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogdm9pZCBX
ZWJWaWV3OjpmbGFzaEJhY2tpbmdTdG9yZVVwZGF0ZXMoY29uc3QgVmVjdG9yPEludFJlY3Q+JikK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2d0ay9XZWJWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0
ay9XZWJWaWV3LmgJKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2d0ay9XZWJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTk5LDYgKzk5LDcgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29udGV4dE1lbnVQcm94eT4gY3JlYXRlQ29udGV4
dE1lbnVQcm94eShXZWJQYWdlUHJveHkqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RmluZEluZGlj
YXRvcihQYXNzUmVmUHRyPEZpbmRJbmRpY2F0b3I+LCBib29sIGZhZGVPdXQpOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRDaGFuZ2VTY3JvbGxiYXJzRm9yTWFpbkZyYW1lKCkgY29uc3Q7CisgICAgdmly
dHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKHVpbnQ2NF90IHBsdWdpbkNvbXBs
ZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBib29sIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZmxhc2hCYWNraW5nU3RvcmVVcGRhdGVzKGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpJbnRSZWN0PiYgdXBkYXRlUmVjdHMpOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwCShy
ZXZpc2lvbiA4MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTExNTcsNiArMTE1NywxMCBAQCB2b2lkIFdlYlZpZXc6OmRp
ZENoYW5nZVNjcm9sbGJhcnNGb3JNYWluCiB7CiB9CiAKK3ZvaWQgV2ViVmlldzo6c2V0Q29tcGxl
eFRleHRJbnB1dEVuYWJsZWQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZp
ZXIsIGJvb2wgY29tcGxleFRleHRJbnB1dEVuYWJsZWQpCit7Cit9CisKIHZvaWQgV2ViVmlldzo6
c2V0SXNJbldpbmRvdyhib29sIGlzSW5XaW5kb3cpCiB7CiAgICAgbV9pc0luV2luZG93ID0gaXNJ
bldpbmRvdzsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5oCShyZXZp
c2lvbiA4MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjgsNiArMTY4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgc2V0Q3VzdG9tUmVwcmVzZW50YXRpb25ab29tRmFjdG9yKGRvdWJsZSk7CiAgICAgV2ViQ29y
ZTo6RHJhZ09wZXJhdGlvbiBrZXlTdGF0ZVRvRHJhZ09wZXJhdGlvbihEV09SRCBncmZLZXlTdGF0
ZSkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVNjcm9sbGJhcnNGb3JNYWluRnJh
bWUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQo
dWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgY29tcGxleFRl
eHRJbnB1dEVuYWJsZWQpOwogCiAgICAgdmlydHVhbCBIV05EIG5hdGl2ZVdpbmRvdygpOwogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oCShyZXZpc2lv
biA4MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaAko
d29ya2luZyBjb3B5KQpAQCAtMTU0LDEzICsxNTQsMTMgQEAgcHVibGljOgogCiAgICAgLy8gVGVs
bHMgdGhlIHBsdWctaW4gYWJvdXQgd2luZG93IHZpc2liaWxpdHkgY2hhbmdlcy4KICAgICB2aXJ0
dWFsIHZvaWQgd2luZG93VmlzaWJpbGl0eUNoYW5nZWQoYm9vbCkgPSAwOworI2VuZGlmCiAKICAg
ICAvLyBHZXQgdGhlIHBlciBjb21wbGV4IHRleHQgaW5wdXQgaWRlbnRpZmllci4KICAgICB2aXJ0
dWFsIHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkgY29uc3QgPSAw
OwogCiAgICAgLy8gU2VuZCB0aGUgY29tcGxleCB0ZXh0IGlucHV0IHRvIHRoZSBwbHVnLWluLgog
ICAgIHZpcnR1YWwgdm9pZCBzZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJ
bnB1dCkgPSAwOwotI2VuZGlmCiAKICAgICAvLyBDYWxsZWQgd2hlbiB0aGUgcHJpdmF0ZSBicm93
c2luZyBzdGF0ZSBmb3IgdGhpcyBwbHVnLWluIGNoYW5nZXMuCiAgICAgdmlydHVhbCB2b2lkIHBy
aXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChib29sKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luQ29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9sbGVyLmgJKHJldmlz
aW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkNv
bnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtODgsMTAgKzg4LDEwIEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIEhXTkQgbmF0aXZlUGFyZW50V2luZG93KCkgPSAwOwogI2VuZGlmCiAKLSNpZiBQ
TEFURk9STShNQUMpCiAgICAgLy8gVGVsbHMgdGhlIGNvbnRyb2xsZXIgdGhhdCBjb21wbGV4IHRl
eHQgaW5wdXQgYmUgZW5hYmxlZCBvciBkaXNhYmxlZCBmb3IgdGhlIHBsdWctaW4uCiAgICAgdmly
dHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKGJvb2wpID0gMDsKIAorI2lmIFBM
QVRGT1JNKE1BQykKICAgICAvLyBSZXR1cm5zIHRoZSBtYWNoIHBvcnQgb2YgdGhlIGNvbXBvc2l0
aW5nIHJlbmRlciBzZXJ2ZXIuCiAgICAgdmlydHVhbCBtYWNoX3BvcnRfdCBjb21wb3NpdGluZ1Jl
bmRlclNlcnZlclBvcnQoKSA9IDA7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbk1hbmFnZXIuY3BwCShyZXZpc2lvbiA4MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCw3ICszMCw5IEBACiAKICNpbmNsdWRlICJBcmd1bWVudERlY29kZXIu
aCIKICNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpZiBQTEFURk9STShNQUMpCiAjaW5j
bHVkZSAiTWFjaFBvcnQuaCIKKyNlbmRpZgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0
aW9uLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzcy5oIgpAQCAtNjEsMTEgKzYzLDE2IEBAIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKiBQ
bHVnaW5Qcm9jZXNzQ28KICAgICB9CiAKICAgICBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyOworI2lmIFBMQVRGT1JNKE1BQykKICAgICBDb3JlSVBD
OjpNYWNoUG9ydCBjb25uZWN0aW9uTWFjaFBvcnQ7CiAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFy
ZWQoKS5jb25uZWN0aW9uKCktPmRlcHJlY2F0ZWRTZW5kU3luYyhXZWJQcm9jZXNzUHJveHlMZWdh
Y3lNZXNzYWdlOjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbiwgMCwgQ29yZUlQQzo6SW4ocGx1
Z2luUGF0aCksIENvcmVJUEM6Ok91dChjb25uZWN0aW9uTWFjaFBvcnQpKSkKICAgICAgICAgcmV0
dXJuIDA7CiAKICAgICBjb25uZWN0aW9uSWRlbnRpZmllciA9IGNvbm5lY3Rpb25NYWNoUG9ydC5w
b3J0KCk7CisjZWxzZQorICAgIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gMDsKKyAgICBBU1NFUlQo
Y29ubmVjdGlvbklkZW50aWZpZXIpOworI2VuZGlmCiAgICAgaWYgKCFjb25uZWN0aW9uSWRlbnRp
ZmllcikKICAgICAgICAgcmV0dXJuIDA7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmNwcAkocmV2aXNpb24gODA0MzYpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMzcsNiArMzM3LDcgQEAgdm9pZCBQbHVnaW5Qcm94eTo6d2luZG93VmlzaWJp
bGl0eUNoYW5nZQogewogICAgIG1fY29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpQbHVnaW5Db250cm9sbGVyUHJveHk6OldpbmRvd1Zpc2liaWxpdHlDaGFuZ2VkKGlzVmlz
aWJsZSksIG1fcGx1Z2luSW5zdGFuY2VJRCk7CiB9CisjZW5kaWYKIAogdWludDY0X3QgUGx1Z2lu
UHJveHk6OnBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkgY29uc3QKIHsKQEAgLTM0
OCw4ICszNDksNiBAQCB2b2lkIFBsdWdpblByb3h5OjpzZW5kQ29tcGxleFRleHRJbnB1dChjCiAg
ICAgbV9jb25uZWN0aW9uLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBsdWdpbkNvbnRy
b2xsZXJQcm94eTo6U2VuZENvbXBsZXhUZXh0SW5wdXQodGV4dElucHV0KSwgbV9wbHVnaW5JbnN0
YW5jZUlEKTsKIH0KIAotI2VuZGlmCi0KIHZvaWQgUGx1Z2luUHJveHk6OnByaXZhdGVCcm93c2lu
Z1N0YXRlQ2hhbmdlZChib29sIGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKIHsKICAgICBtX2Nv
bm5lY3Rpb24tPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UGx1Z2luQ29udHJvbGxlclBy
b3h5OjpQcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQoaXNQcml2YXRlQnJvd3NpbmdFbmFibGVk
KSwgbV9wbHVnaW5JbnN0YW5jZUlEKTsKQEAgLTQ0MCwxMiArNDM5LDEwIEBAIHZvaWQgUGx1Z2lu
UHJveHk6OnNldFN0YXR1c2JhclRleHQoY29uc3QKICAgICBtX3BsdWdpbkNvbnRyb2xsZXItPnNl
dFN0YXR1c2JhclRleHQoc3RhdHVzYmFyVGV4dCk7CiB9CiAKLSNpZiBQTEFURk9STShNQUMpCiB2
b2lkIFBsdWdpblByb3h5OjpzZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZChib29sIGNvbXBsZXhU
ZXh0SW5wdXRFbmFibGVkKQogewogICAgIG1fcGx1Z2luQ29udHJvbGxlci0+c2V0Q29tcGxleFRl
eHRJbnB1dEVuYWJsZWQoY29tcGxleFRleHRJbnB1dEVuYWJsZWQpOwogfQotI2VuZGlmCiAgICAg
CiB2b2lkIFBsdWdpblByb3h5Ojp1cGRhdGUoY29uc3QgSW50UmVjdCYgcGFpbnRlZFJlY3QpCiB7
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJv
eHkuaAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtOTIsOSArOTIsOSBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgdm9pZCB3aW5kb3dGb2N1c0NoYW5nZWQoYm9vbCk7CiAgICAgdmlydHVh
bCB2b2lkIHdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
dmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbmRvd1Zp
c2liaWxpdHlDaGFuZ2VkKGJvb2wpOworI2VuZGlmCiAgICAgdmlydHVhbCB1aW50NjRfdCBwbHVn
aW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBz
ZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7Ci0jZW5kaWYKIAog
ICAgIHZpcnR1YWwgdm9pZCBwcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQoYm9vbCk7CiAKQEAg
LTExNCw5ICsxMTQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2FuY2VsU3RyZWFtTG9hZCh1aW50
NjRfdCBzdHJlYW1JRCk7CiAgICAgdm9pZCBjYW5jZWxNYW51YWxTdHJlYW1Mb2FkKCk7CiAgICAg
dm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYgc3RhdHVzYmFyVGV4dCk7Ci0jaWYg
UExBVEZPUk0oTUFDKQogICAgIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQoYm9vbCk7
Ci0jZW5kaWYKIAogICAgIFN0cmluZyBtX3BsdWdpblBhdGg7CiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2Fn
ZXMuaW4JKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC01NiwxMCArNTYs
OCBAQCBtZXNzYWdlcyAtPiBQbHVnaW5Qcm94eSB7CiAgICAgIyBTZXQgdGhlIHN0YXR1cyBiYXIg
dGV4dC4KICAgICBTZXRTdGF0dXNiYXJUZXh0KFdURjo6U3RyaW5nIHN0YXR1c2JhclRleHQpCiAK
LSNpZiBQTEFURk9STShNQUMpCiAgICAgIyBDaGFuZ2Ugd2hldGhlciBjb21wbGV4dCB0ZXh0IGlu
cHV0IGlzIGVuYWJsZWQgZm9yIHRoaXMgcGx1Zy1pbi4KICAgICBTZXRDb21wbGV4VGV4dElucHV0
RW5hYmxlZChib29sIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKQotI2VuZGlmCiB9CiAKICNlbmRp
ZgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5W
aWV3LmNwcAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5Nyw2ICszOTcsNyBAQCB2
b2lkIFBsdWdpblZpZXc6OndpbmRvd0FuZFZpZXdGcmFtZXNDaGFuCiAKICAgICBtX3BsdWdpbi0+
d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQod2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVz
LCB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKTsKIH0KKyNlbmRpZgogCiBib29sIFBsdWdp
blZpZXc6OnNlbmRDb21wbGV4VGV4dElucHV0KHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5w
dXRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkKIHsKQEAgLTQxMCw4ICs0MTEs
NiBAQCBib29sIFBsdWdpblZpZXc6OnNlbmRDb21wbGV4VGV4dElucHV0KHVpCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLSNlbmRpZgotCiB2b2lkIFBsdWdpblZpZXc6OmluaXRpYWxpemVQbHVnaW4o
KQogewogICAgIGlmIChtX2lzSW5pdGlhbGl6ZWQpCkBAIC05ODksMTIgKzk4OCwxMiBAQCBIV05E
IFBsdWdpblZpZXc6Om5hdGl2ZVBhcmVudFdpbmRvdygpCiB9CiAjZW5kaWYKIAotI2lmIFBMQVRG
T1JNKE1BQykKIHZvaWQgUGx1Z2luVmlldzo6c2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQoYm9v
bCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCkKIHsKICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6U2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQobV9wbHVnaW4tPnBs
dWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCksIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVk
KSk7CiB9CiAKKyNpZiBQTEFURk9STShNQUMpCiBtYWNoX3BvcnRfdCBQbHVnaW5WaWV3Ojpjb21w
b3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKQogewogICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaGFy
ZWQoKS5jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAkocmV2aXNpb24gODA0MzYpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCSh3b3JraW5n
IGNvcHkpCkBAIC02NCw4ICs2NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFdpbmRvd0lzVmlz
aWJsZShib29sKTsKICAgICB2b2lkIHNldFdpbmRvd0lzRm9jdXNlZChib29sKTsKICAgICB2b2lk
IHdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHdpbmRv
d0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld0Zy
YW1lSW5XaW5kb3dDb29yZGluYXRlcyk7Ci0gICAgYm9vbCBzZW5kQ29tcGxleFRleHRJbnB1dCh1
aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0
ZXh0SW5wdXQpOwogI2VuZGlmCisgICAgYm9vbCBzZW5kQ29tcGxleFRleHRJbnB1dCh1aW50NjRf
dCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5w
dXQpOwogCiBwcml2YXRlOgogICAgIFBsdWdpblZpZXcoUGFzc1JlZlB0cjxXZWJDb3JlOjpIVE1M
UGx1Z0luRWxlbWVudD4sIFBhc3NSZWZQdHI8UGx1Z2luPiwgY29uc3QgUGx1Z2luOjpQYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzKTsKQEAgLTEzMiw4ICsxMzIsOCBAQCBwcml2YXRlOgogI2lmIFBMQVRG
T1JNKFdJTikKICAgICB2aXJ0dWFsIEhXTkQgbmF0aXZlUGFyZW50V2luZG93KCk7CiAjZW5kaWYK
LSNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRF
bmFibGVkKGJvb2wpOworI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIG1hY2hfcG9ydF90
IGNvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpOwogI2VuZGlmCiAgICAgdmlydHVhbCBTdHJp
bmcgcHJveGllc0ZvclVSTChjb25zdCBTdHJpbmcmKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdp
bi5oCShyZXZpc2lvbiA4MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzIsMTAgKzE3
MiwxMCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB3aW5kb3dGb2N1c0NoYW5nZWQoYm9v
bCk7CiAgICAgdmlydHVhbCB2b2lkIHdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyk7CiAgICAgdmlydHVh
bCB2b2lkIHdpbmRvd1Zpc2liaWxpdHlDaGFuZ2VkKGJvb2wpOworI2VuZGlmCiAKICAgICB2aXJ0
dWFsIHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkgY29uc3Q7CiAg
ICAgdmlydHVhbCB2b2lkIHNlbmRDb21wbGV4VGV4dElucHV0KGNvbnN0IFN0cmluZyYgdGV4dElu
cHV0KTsKLSNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHByaXZhdGVCcm93c2luZ1N0YXRlQ2hh
bmdlZChib29sKTsKIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL3F0L05ldHNjYXBlUGx1Z2luUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9xdC9OZXRzY2FwZVBsdWdpblF0LmNwcAko
cmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvcXQvTmV0c2NhcGVQbHVnaW5RdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMiw0ICsx
MjIsMTYgQEAgYm9vbCBOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVLZXlibwogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAordm9pZCBOZXRzY2FwZVBsdWdpbjo6c2VuZENvbXBsZXhUZXh0SW5w
dXQoY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
KwordWludDY0X3QgTmV0c2NhcGVQbHVnaW46OnBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlm
aWVyKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIC8vIEp1c3QgcmV0dXJu
IGEgZHVtbXkgdmFsdWU7IHRoaXMgaXMgb25seSBjYWxsZWQgZm9yIGluLXByb2Nlc3MgcGx1Zy1p
bnMKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dHB0cl90Pih0aGlzKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gODA0
MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEwOCw5ICsxMDgsMTAgQEAKICNlbmRpZgogCiAjaWYgRU5BQkxFKFBM
VUdJTl9QUk9DRVNTKQotLy8gRklYTUU6IFRoaXMgaXMgY3VycmVudGx5IE1hYy1zcGVjaWZpYyEK
KyNpZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSAiTWFjaFBvcnQuaCIKICNlbmRpZgorI2VuZGlm
CiAKICNpZiBQTEFURk9STShRVCkKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHJldmlzaW9uIDgw
NDM2KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkod29y
a2luZyBjb3B5KQpAQCAtMjg2LDEzICsyODYsMTIgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZv
aWQgZ2V0TG9jYXRpb25BbmRMZW5ndGhGcm9tUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqLCB1aW50NjRf
dCYgbG9jYXRpb24sIHVpbnQ2NF90JiBsZW5ndGgpOwogCisgICAgdm9pZCBzZW5kQ29tcGxleFRl
eHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CisKICNpZiBQTEFURk9STShNQUMpCiAgICAgdm9p
ZCByZWdpc3RlclVJUHJvY2Vzc0FjY2Vzc2liaWxpdHlUb2tlbnMoY29uc3QgQ29yZUlQQzo6RGF0
YVJlZmVyZW5jZSYgZWxlbWVuVG9rZW4sIGNvbnN0IENvcmVJUEM6OkRhdGFSZWZlcmVuY2UmIHdp
bmRvd1Rva2VuKTsKICAgICBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdCogYWNjZXNzaWJpbGl0
eVJlbW90ZU9iamVjdCgpOwogICAgIFdlYkNvcmU6OkludFBvaW50IGFjY2Vzc2liaWxpdHlQb3Np
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZXNzaWJpbGl0eVBvc2l0aW9uOyB9ICAgIAotICAg
IAotICAgIHZvaWQgc2VuZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbih1aW50NjRfdCBwbHVnaW5D
b21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpOwotCiAg
ICAgdm9pZCBnZXRNYXJrZWRSYW5nZSh1aW50NjRfdCYgbG9jYXRpb24sIHVpbnQ2NF90JiBsZW5n
dGgpOwogICAgIHZvaWQgY2hhcmFjdGVySW5kZXhGb3JQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCBwb2ludCwgdWludDY0X3QmIHJlc3VsdCk7CiAgICAgdm9pZCBmaXJzdFJlY3RGb3JDaGFy
YWN0ZXJSYW5nZSh1aW50NjRfdCBsb2NhdGlvbiwgdWludDY0X3QgbGVuZ3RoLCBXZWJDb3JlOjpJ
bnRSZWN0JiByZXN1bHRSZWN0KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCShyZXZpc2lvbiA4MDQzNikKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCSh3
b3JraW5nIGNvcHkpCkBAIC0xNzAsMTAgKzE3MCwxMCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIHsK
ICAgICBTZXRDYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoYm9vbCBjYW5SdW5CZWZvcmVV
bmxvYWRDb25maXJtUGFuZWwpCiAgICAgU2V0Q2FuUnVuTW9kYWwoYm9vbCBjYW5SdW5Nb2RhbCkK
IAotI2lmIFBMQVRGT1JNKE1BQykKICAgICAjIENvbXBsZXggdGV4dCBpbnB1dCBzdXBwb3J0IGZv
ciBwbHVnLWlucy4KICAgICBTZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBs
dWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBTdHJpbmcgdGV4dElucHV0KQogCisjaWYg
UExBVEZPUk0oTUFDKQogICAgIFNldFdpbmRvd0lzVmlzaWJsZShib29sIHdpbmRvd0lzVmlzaWJs
ZSkKICAgICBXaW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChXZWJDb3JlOjpJbnRSZWN0IHdpbmRv
d0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgV2ViQ29yZTo6SW50UmVjdCB2aWV3RnJhbWVJbldp
bmRvd0Nvb3JkaW5hdGVzLCBXZWJDb3JlOjpJbnRQb2ludCBhY2Nlc3NpYmlsaXR5Vmlld0Nvb3Jk
aW5hdGVzKQogICAgIEdldE1hcmtlZFJhbmdlKCkgLT4gKHVpbnQ2NF90IGxvY2F0aW9uLCB1aW50
NjRfdCBsZW5ndGgpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQv
V2ViUGFnZVF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvcXQvV2ViUGFnZVF0LmNwcAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvV2ViUGFnZVF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRm9jdXNDb250cm9sbGVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KQEAgLTI2NSw2ICsyNjYsMTIgQEAgYm9vbCBXZWJQ
YWdlOjpwZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9ySwogICAgIHJldHVybiB0cnVlOwogfQogCit2
b2lkIFdlYlBhZ2U6OnNlbmRDb21wbGV4VGV4dElucHV0VG9QbHVnaW4odWludDY0X3QgcGx1Z2lu
Q29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdGV4dElucHV0KQorewor
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiBib29s
IFdlYlBhZ2U6OnBsYXRmb3JtSGFzTG9jYWxEYXRhRm9yVVJMKGNvbnN0IFdlYkNvcmU6OktVUkwm
KQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84904</attachid>
            <date>2011-03-06 17:57:12 -0800</date>
            <delta_ts>2011-03-06 18:55:21 -0800</delta_ts>
            <desc>Added dummy implementation for Gtk and Win port + Fix 3 unresolved externals on win port</desc>
            <filename>bug55719_part2.v3.diff</filename>
            <type>text/plain</type>
            <size>32874</size>
            <attacher name="Oleg Romashin (:romaxa)">romaxa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTEtMDMtMDYgIE9sZWcgUm9t
YXNoaW4gIDxyb21heGFAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1ha2UgUXQgcG9ydCBjb21waWxpbmcgd2l0aCBFTkFCTEVfUExV
R0lOX1BST0NFU1M9MSwgcGFydDIKKyAgICAgICAgTWFrZSBDb21wbGV4VGV4dElucHV0IGNvbXBp
bGluZyBmb3IgUXQKKyAgICAgICAgQ292ZXIgd2l0aCBpZmRlZiBNYWNoUG9ydCByZWxhdGVkIGZ1
bmN0aW9uYWxpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU1NzE5CisKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6c2VuZENvbXBs
ZXhUZXh0SW5wdXQpOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclBy
b3h5Lmg6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6Y3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgor
ICAgICAgICAqIFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlUGx1Z2luKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwOgorICAgICAgICAoUVdLUGFnZVByaXZhdGU6
OnNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0
L3F3a3BhZ2VfcC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpwbHVnaW5Qcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9M
YXVuY2gpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZENyZWF0ZVdl
YlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
UHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2VuZENvbXBsZXhUZXh0SW5wdXRUb1Bs
dWdpbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL3F0L05ldHNjYXBlUGx1Z2luUXQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXRzY2FwZVBsdWdpbjo6c2VuZENvbXBsZXhUZXh0SW5wdXQpOgorICAgICAgICAoV2ViS2l0
OjpOZXRzY2FwZVBsdWdpbjo6cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luQ29udHJvbGxlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OmdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9u
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpQbHVnaW5Qcm94eTo6c2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblZpZXcuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6YWNjZXNzaWJpbGl0eVBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvcXQvV2ViUGFnZVF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGVyZm9ybURl
ZmF1bHRCZWhhdmlvckZvcktleUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2Vu
ZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbik6CisKIDIwMTEtMDMtMDYgIEplc3NpZSBCZXJsaW4g
IDxqYmVybGluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJ
bmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHku
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29u
dHJvbGxlclByb3h5LmNwcAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2
NCwxMCArMjY0LDEyIEBAIHZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5OjpzZXRDb21wbGV4VGUK
ICAgICBtX2Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UGx1Z2luUHJv
eHk6OlNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKSwg
bV9wbHVnaW5JbnN0YW5jZUlEKTsKIH0KIAorI2lmIFBMQVRGT1JNKE1BQykKIG1hY2hfcG9ydF90
IFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6Y29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCkKIHsK
ICAgICByZXR1cm4gUGx1Z2luUHJvY2Vzczo6c2hhcmVkKCkuY29tcG9zaXRpbmdSZW5kZXJTZXJ2
ZXJQb3J0KCk7CiB9CisjZW5kaWYKIAogU3RyaW5nIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6cHJv
eGllc0ZvclVSTChjb25zdCBTdHJpbmcmIHVybFN0cmluZykKIHsKQEAgLTQ3OCwxNCArNDgwLDEz
IEBAIHZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5Ojp3aW5kb3dWaXNpYmkKIHsKICAgICBtX3Bs
dWdpbi0+d2luZG93VmlzaWJpbGl0eUNoYW5nZWQoaXNWaXNpYmxlKTsKIH0KKyNlbmRpZgogCiB2
b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6c2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3QgU3Ry
aW5nJiB0ZXh0SW5wdXQpCiB7CiAgICAgbV9wbHVnaW4tPnNlbmRDb21wbGV4VGV4dElucHV0KHRl
eHRJbnB1dCk7CiB9CiAKLSNlbmRpZgotCiB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6cHJp
dmF0ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkKGJvb2wgaXNQcml2YXRlQnJvd3NpbmdFbmFibGVkKQog
ewogICAgIG1fcGx1Z2luLT5wcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQoaXNQcml2YXRlQnJv
d3NpbmdFbmFibGVkKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2lu
Q29udHJvbGxlclByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCSh3b3JraW5nIGNv
cHkpCkBAIC05MCw4ICs5MCw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcGx1Z2luUHJvY2Vz
c0NyYXNoZWQoKTsKIAotI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29t
cGxleFRleHRJbnB1dEVuYWJsZWQoYm9vbCk7CisjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1
YWwgbWFjaF9wb3J0X3QgY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCk7CiAjZW5kaWYKIApA
QCAtMTMwLDggKzEzMCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCB3aW5kb3dGb2N1c0NoYW5nZWQo
Ym9vbCk7CiAgICAgdm9pZCB3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMpOwogICAgIHZvaWQgd2luZG93
VmlzaWJpbGl0eUNoYW5nZWQoYm9vbCk7Ci0gICAgdm9pZCBzZW5kQ29tcGxleFRleHRJbnB1dChj
b25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CiAjZW5kaWYKKyAgICB2b2lkIHNlbmRDb21wbGV4VGV4
dElucHV0KGNvbnN0IFN0cmluZyYgdGV4dElucHV0KTsKIAogICAgIHZvaWQgcHJpdmF0ZUJyb3dz
aW5nU3RhdGVDaGFuZ2VkKGJvb2wpOwogCkBAIC0xNzIsMTAgKzE3MiwxMCBAQCBwcml2YXRlOgog
ICAgIC8vIFdoZXRoZXIgdGhlIHBsdWctaW4gaGFzIGNhbmNlbGVkIHRoZSBtYW51YWwgc3RyZWFt
IGxvYWQuCiAgICAgYm9vbCBtX3BsdWdpbkNhbmNlbGVkTWFudWFsU3RyZWFtTG9hZDsKIAotI2lm
IFBMQVRGT1JNKE1BQykKICAgICAvLyBXaGV0aGVyIGNvbXBsZXggdGV4dCBpbnB1dCBpcyBlbmFi
bGVkIGZvciB0aGlzIHBsdWctaW4uCiAgICAgYm9vbCBtX2lzQ29tcGxleFRleHRJbnB1dEVuYWJs
ZWQ7CiAKKyNpZiBQTEFURk9STShNQUMpCiAgICAgLy8gRm9yIENBIHBsdWctaW5zLCB0aGlzIGhv
bGRzIHRoZSBpbmZvcm1hdGlvbiBuZWVkZWQgdG8gZXhwb3J0IHRoZSBsYXllciBoaWVyYXJjaHkg
dG8gdGhlIFVJIHByb2Nlc3MuCiAgICAgUmV0YWluUHRyPFdLQ0FSZW1vdGVMYXllckNsaWVudFJl
Zj4gbV9yZW1vdGVMYXllckNsaWVudDsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCShyZXZpc2lvbiA4MDQzNikKKysrIFNv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDcgKzI5LDkgQEAKICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAKICNpbmNs
dWRlICJBcmd1bWVudENvZGVycy5oIgorI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJNYWNo
UG9ydC5oIgorI2VuZGlmCiAjaW5jbHVkZSAiTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCIKICNpbmNs
dWRlICJQbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKQEAgLTEyNyw4ICsxMjksNyBAQCB2b2lkIFBsdWdpblBy
b2Nlc3M6OmluaXRpYWxpemVQbHVnaW5Qcm9jCiAKIHZvaWQgUGx1Z2luUHJvY2Vzczo6Y3JlYXRl
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQogewotICAgIC8vIEZJWE1FOiBUaGlzIGlzIHBsYXRmb3Jt
IHNwZWNpZmljIQotCisjaWYgUExBVEZPUk0oTUFDKQogICAgIC8vIENyZWF0ZSB0aGUgbGlzdGVu
aW5nIHBvcnQuCiAgICAgbWFjaF9wb3J0X3QgbGlzdGVuaW5nUG9ydDsKICAgICBtYWNoX3BvcnRf
YWxsb2NhdGUobWFjaF90YXNrX3NlbGYoKSwgTUFDSF9QT1JUX1JJR0hUX1JFQ0VJVkUsICZsaXN0
ZW5pbmdQb3J0KTsKQEAgLTE0Miw2ICsxNDMsOSBAQCB2b2lkIFBsdWdpblByb2Nlc3M6OmNyZWF0
ZVdlYlByb2Nlc3NDb25uCiAKICAgICAvLyBTdG9wIHRoZSBzaHV0ZG93biB0aW1lci4KICAgICBt
X3NodXRkb3duVGltZXIuc3RvcCgpOworI2Vsc2UKKyAgICBBU1NFUlQoZmFsc2UpOworI2VuZGlm
CiB9CiAKIHZvaWQgUGx1Z2luUHJvY2Vzczo6Z2V0U2l0ZXNXaXRoRGF0YSh1aW50NjRfdCBjYWxs
YmFja0lEKQpJbmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29u
bmVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAJKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE2NywxMCArMTY3LDEyIEBAIHZvaWQgV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZVBs
dWdpbigKICAgICAvLyBOb3cgdHJ5IHRvIGluaXRpYWxpemUgdGhlIHBsdWctaW4uCiAgICAgcmVz
dWx0ID0gcGx1Z2luQ29udHJvbGxlclByb3h5UHRyLT5pbml0aWFsaXplKHBhcmFtZXRlcnMpOwog
CisjaWYgUExBVEZPUk0oTUFDKQogICAgIGlmIChyZXN1bHQpIHsKICAgICAgICAgcmVtb3RlTGF5
ZXJDbGllbnRJRCA9IHBsdWdpbkNvbnRyb2xsZXJQcm94eVB0ci0+cmVtb3RlTGF5ZXJDbGllbnRJ
RCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2VuZGlmCiAKICAgICAvLyBXZSBmYWlsZWQg
dG8gaW5pdGlhbGl6ZSwgcmVtb3ZlIHRoZSBwbHVnLWluIGNvbnRyb2xsZXIuIFRoaXMgY291bGQg
Y2F1c2UgdXMgdG8gYmUgZGVsZXRlZC4KICAgICByZW1vdmVQbHVnaW5Db250cm9sbGVyUHJveHko
cGx1Z2luQ29udHJvbGxlclByb3h5UHRyKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bh
Z2VDbGllbnQuaAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGFnZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQsOCArMTI0LDggQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgSFdORCBuYXRpdmVXaW5kb3coKSA9IDA7CiAjZW5kaWYKIAotI2lmIFBMQVRG
T1JNKE1BQykKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQodWlu
dDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgY29tcGxleFRleHRJ
bnB1dEVuYWJsZWQpID0gMDsKKyNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIHNl
dEF1dG9kaXNwbGF5KGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIENHQ29udGV4dFJlZiBjb250YWlu
aW5nV2luZG93R3JhcGhpY3NDb250ZXh0KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJm
b3JtRGljdGlvbmFyeUxvb2t1cChjb25zdCBTdHJpbmcmLCBkb3VibGUgc2NhbGVGYWN0b3IsIGNv
bnN0IERpY3Rpb25hcnlQb3B1cEluZm8mKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAwMyw3ICsy
MDAzLDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNlbGVjdGlvblN0YXRlQ2hhbmdlZAogICAgIG1f
c2VsZWN0aW9uU3RhdGUgPSBzZWxlY3Rpb25TdGF0ZTsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykK
IC8vIENvbXBsZXggdGV4dCBpbnB1dCBzdXBwb3J0IGZvciBwbHVnLWlucy4KIHZvaWQgV2ViUGFn
ZVByb3h5OjpzZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBs
ZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkKIHsKQEAgLTIw
MTIsNyArMjAxMSw2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZW5kQ29tcGxleFRleHRJbnB1dFQK
ICAgICAKICAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNlbmRDb21wbGV4
VGV4dElucHV0VG9QbHVnaW4ocGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIHRleHRJ
bnB1dCksIG1fcGFnZUlEKTsKIH0KLSNlbmRpZgogCiAjaWYgUExBVEZPUk0oV0lOKQogdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZENoYW5nZUNvbXBvc2l0aW9uU2VsZWN0aW9uKGJvb2wgaGFzQ29tcG9z
aXRpb24pCkBAIC0yNzM1LDEyICsyNzMzLDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5p
c2hMb2FkaW5nRGF0YUYKICAgICBtX3BhZ2VDbGllbnQtPmRpZEZpbmlzaExvYWRpbmdEYXRhRm9y
Q3VzdG9tUmVwcmVzZW50YXRpb24oc3VnZ2VzdGVkRmlsZW5hbWUsIGRhdGFSZWZlcmVuY2UpOwog
fQogCi0jaWYgUExBVEZPUk0oTUFDKQogdm9pZCBXZWJQYWdlUHJveHk6OnNldENvbXBsZXhUZXh0
SW5wdXRFbmFibGVkKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBi
b29sIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKQogewogICAgIG1fcGFnZUNsaWVudC0+c2V0Q29t
cGxleFRleHRJbnB1dEVuYWJsZWQocGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGNv
bXBsZXhUZXh0SW5wdXRFbmFibGVkKTsKIH0KIAorI2lmIFBMQVRGT1JNKE1BQykKIHZvaWQgV2Vi
UGFnZVByb3h5OjpzZXRBdXRvZGlzcGxheShib29sIG5ld1N0YXRlKQogewogICAgIG1fcGFnZUNs
aWVudC0+c2V0QXV0b2Rpc3BsYXkobmV3U3RhdGUpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1OCw5ICsyNTgsMTEg
QEAgcHVibGljOgogICAgIHZvaWQgZ2V0TWFya2VkUmFuZ2UodWludDY0X3QmIGxvY2F0aW9uLCB1
aW50NjRfdCYgbGVuZ3RoKTsKICAgICB1aW50NjRfdCBjaGFyYWN0ZXJJbmRleEZvclBvaW50KGNv
bnN0IFdlYkNvcmU6OkludFBvaW50KTsKICAgICBXZWJDb3JlOjpJbnRSZWN0IGZpcnN0UmVjdEZv
ckNoYXJhY3RlclJhbmdlKHVpbnQ2NF90LCB1aW50NjRfdCk7Ci0gICAgdm9pZCBzZW5kQ29tcGxl
eFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CiAgICAgQ0dDb250ZXh0UmVmIGNvbnRhaW5p
bmdXaW5kb3dHcmFwaGljc0NvbnRleHQoKTsKICNlbmRpZgorCisgICAgdm9pZCBzZW5kQ29tcGxl
eFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CisKICNpZiBQTEFURk9STShXSU4pCiAgICAg
dm9pZCBkaWRDaGFuZ2VDb21wb3NpdGlvblNlbGVjdGlvbihib29sKTsKICAgICB2b2lkIGNvbmZp
cm1Db21wb3NpdGlvbihjb25zdCBTdHJpbmcmKTsKQEAgLTYzMCw5ICs2MzIsNyBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbVJlcHJlc2VudGF0aW9u
KGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUsIGNvbnN0IENvcmVJUEM6OkRhdGFSZWZl
cmVuY2UmKTsKIAotI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIHNldENvbXBsZXhUZXh0SW5w
dXRFbmFibGVkKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBib29s
IGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKTsKLSNlbmRpZgogCiAgICAgc3RhdGljIFN0cmluZyBz
dGFuZGFyZFVzZXJBZ2VudChjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFtZSA9IFN0cmluZygp
KTsKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiA4MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTE3NywxMCArMTc3
LDggQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICAjIEdlb2xvY2F0aW9uIG1lc3Nh
Z2VzCiAgICAgUmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdl
b2xvY2F0aW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFdURjo6U3RyaW5nIG9yaWdpbklkZW50aWZp
ZXIpCiAKLSNpZiBQTEFURk9STShNQUMpCiAgICAgIyBQbHVnLWluIGNvbXBsZXggdGV4dCBpbnB1
dCBzdXBwb3J0IG1lc3NhZ2VzCiAgICAgU2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQodWludDY0
X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgY29tcGxleFRleHRJbnB1
dEVuYWJsZWQpCi0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICAjIFNwZWVjaCBtZXNz
YWdlcwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3Bw
CShyZXZpc2lvbiA4MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdr
cGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3MCw2ICsyNzAsMTMgQEAgdm9pZCBRV0tQYWdl
UHJpdmF0ZTo6cGFpbnQoUVBhaW50ZXIqIHBhaQogICAgICAgICBwYWludGVyLT5maWxsUmVjdChh
cmVhLCBRdDo6d2hpdGUpOwogfQogCit2b2lkCitRV0tQYWdlUHJpdmF0ZTo6c2V0Q29tcGxleFRl
eHRJbnB1dEVuYWJsZWQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjb21wbGV4
VGV4dElucHV0RW5hYmxlZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB2b2lkIFFX
S1BhZ2VQcml2YXRlOjprZXlQcmVzc0V2ZW50KFFLZXlFdmVudCogZXYpCiB7CiAgICAgcGFnZS0+
aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2KSk7CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2VfcC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZV9wLmgJKHJldmlzaW9uIDgw
NDM2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlX3AuaAkod29y
a2luZyBjb3B5KQpAQCAtODksNiArODksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBkb3VibGUg
Y3VzdG9tUmVwcmVzZW50YXRpb25ab29tRmFjdG9yKCkgeyByZXR1cm4gMTsgfQogICAgIHZpcnR1
YWwgdm9pZCBzZXRDdXN0b21SZXByZXNlbnRhdGlvblpvb21GYWN0b3IoZG91YmxlKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsYmFyc0Zvck1haW5GcmFtZSgpIGNvbnN0IHsg
fQorICAgIHZpcnR1YWwgdm9pZCBzZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZCh1aW50NjRfdCBw
bHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgYm9vbCBjb21wbGV4VGV4dElucHV0RW5h
YmxlZCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZmxhc2hCYWNraW5nU3RvcmVVcGRhdGVzKGNvbnN0
IFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYgdXBkYXRlUmVjdHMpOwogCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94
eS5jcHAJKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsOSBA
QAogCiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogCisjaWYgUExBVEZPUk0oTUFDKQogI2lu
Y2x1ZGUgIk1hY2hQb3J0LmgiCisjZW5kaWYKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc01hbmFnZXIuaCIKICNpbmNs
dWRlICJQbHVnaW5Qcm9jZXNzTWVzc2FnZXMuaCIKQEAgLTEyMiw4ICsxMjQsMTEgQEAgdm9pZCBQ
bHVnaW5Qcm9jZXNzUHJveHk6OnBsdWdpblByb2Nlc3NDcgogICAgICAgICBDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXIqIHJlcGx5ID0gbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMuZmlyc3QoKS5z
ZWNvbmQ7CiAgICAgICAgIG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLnJlbW92ZUZpcnN0KCk7
CiAKLSAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgTWFjIHNwZWNpZmljLgorI2lmIFBMQVRGT1JN
KE1BQykKICAgICAgICAgcmVwbHktPmVuY29kZShDb3JlSVBDOjpNYWNoUG9ydCgwLCBNQUNIX01T
R19UWVBFX01PVkVfU0VORCkpOworI2Vsc2UKKyAgICAgICAgQVNTRVJUKGZhbHNlKTsKKyNlbmRp
ZgogICAgICAgICByZXBseVdlYlByb2Nlc3NQcm94eS0+Y29ubmVjdGlvbigpLT5zZW5kU3luY1Jl
cGx5KHJlcGx5KTsKICAgICB9CiAKQEAgLTE5MCw2ICsxOTUsNyBAQCB2b2lkIFBsdWdpblByb2Nl
c3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoCiAgICAgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVl
c3RzID0gMDsKIH0KIAorI2lmIFBMQVRGT1JNKE1BQykKIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5
OjpkaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBDb3JlSVBDOjpNYWNoUG9ydCYg
bWFjaFBvcnQpCiB7CiAgICAgQVNTRVJUKCFtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5pc0Vt
cHR5KCkpOwpAQCAtMTk5LDEwICsyMDUsMTEgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmRp
ZENyZWF0ZVdlYlBybwogICAgIENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogcmVwbHkgPSBtX3Bl
bmRpbmdDb25uZWN0aW9uUmVwbGllcy5maXJzdCgpLnNlY29uZDsKICAgICBtX3BlbmRpbmdDb25u
ZWN0aW9uUmVwbGllcy5yZW1vdmVGaXJzdCgpOwogCi0gICAgLy8gRklYTUU6IFRoaXMgaXMgTWFj
IHNwZWNpZmljLgogICAgIHJlcGx5LT5lbmNvZGUoQ29yZUlQQzo6TWFjaFBvcnQobWFjaFBvcnQu
cG9ydCgpLCBNQUNIX01TR19UWVBFX01PVkVfU0VORCkpOworCiAgICAgcmVwbHlXZWJQcm9jZXNz
UHJveHktPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmNSZXBseShyZXBseSk7CiB9CisjZW5kaWYKIAog
dm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZEdldFNpdGVzV2l0aERhdGEoY29uc3QgVmVjdG9y
PFN0cmluZz4mIHNpdGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgJ
KHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc1Byb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTc3LDcgKzc3LDkgQEAgcHJpdmF0
ZToKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKICAgICB2b2lkIGRpZFJlY2VpdmVQbHVnaW5Q
cm9jZXNzUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworI2lmIFBMQVRGT1JNKE1BQykKICAgICB2
b2lkIGRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IENvcmVJUEM6Ok1hY2hQb3J0
Jik7CisjZW5kaWYKICAgICB2b2lkIGRpZEdldFNpdGVzV2l0aERhdGEoY29uc3QgVmVjdG9yPFN0
cmluZz4mIHNpdGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGRpZENsZWFyU2l0
ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVz
c2FnZXMuaW4JKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0y
Myw4ICsyMyw5IEBACiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBQ
bHVnaW5Qcm9jZXNzUHJveHkgewotICAgICMgRklYTUU6IFRoaXMgaXMgcGxhdGZvcm0gc3BlY2lm
aWMKKyNpZiBQTEFURk9STShNQUMpCiAgICAgRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24o
Q29yZUlQQzo6TWFjaFBvcnQgY29ubmVjdGlvbklkZW50aWZpZXIpCisjZW5kaWYKIAogICAgIERp
ZEdldFNpdGVzV2l0aERhdGEoVmVjdG9yPFdURjo6U3RyaW5nPiBzaXRlcywgdWludDY0X3QgY2Fs
bGJhY2tJRCkKICAgICBEaWRDbGVhclNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlZpZXcuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViVmlldy5jcHAJKHJldmlzaW9uIDgwNDM2
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJWaWV3LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjg4LDYgKzI4OCwxMSBAQCB2b2lkIFdlYlZpZXc6OmRpZENoYW5nZVNjcm9sbGJh
cnNGb3JNYWluCiB7CiB9CiAKK3ZvaWQgV2ViVmlldzo6c2V0Q29tcGxleFRleHRJbnB1dEVuYWJs
ZWQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgY29tcGxl
eFRleHRJbnB1dEVuYWJsZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogdm9pZCBX
ZWJWaWV3OjpmbGFzaEJhY2tpbmdTdG9yZVVwZGF0ZXMoY29uc3QgVmVjdG9yPEludFJlY3Q+JikK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2d0ay9XZWJWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0
ay9XZWJWaWV3LmgJKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2d0ay9XZWJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTk5LDYgKzk5LDcgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29udGV4dE1lbnVQcm94eT4gY3JlYXRlQ29udGV4
dE1lbnVQcm94eShXZWJQYWdlUHJveHkqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RmluZEluZGlj
YXRvcihQYXNzUmVmUHRyPEZpbmRJbmRpY2F0b3I+LCBib29sIGZhZGVPdXQpOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRDaGFuZ2VTY3JvbGxiYXJzRm9yTWFpbkZyYW1lKCkgY29uc3Q7CisgICAgdmly
dHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKHVpbnQ2NF90IHBsdWdpbkNvbXBs
ZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBib29sIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZmxhc2hCYWNraW5nU3RvcmVVcGRhdGVzKGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpJbnRSZWN0PiYgdXBkYXRlUmVjdHMpOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwCShy
ZXZpc2lvbiA4MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTExNTcsNiArMTE1NywxMCBAQCB2b2lkIFdlYlZpZXc6OmRp
ZENoYW5nZVNjcm9sbGJhcnNGb3JNYWluCiB7CiB9CiAKK3ZvaWQgV2ViVmlldzo6c2V0Q29tcGxl
eFRleHRJbnB1dEVuYWJsZWQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZp
ZXIsIGJvb2wgY29tcGxleFRleHRJbnB1dEVuYWJsZWQpCit7Cit9CisKIHZvaWQgV2ViVmlldzo6
c2V0SXNJbldpbmRvdyhib29sIGlzSW5XaW5kb3cpCiB7CiAgICAgbV9pc0luV2luZG93ID0gaXNJ
bldpbmRvdzsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5oCShyZXZp
c2lvbiA4MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjgsNiArMTY4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgc2V0Q3VzdG9tUmVwcmVzZW50YXRpb25ab29tRmFjdG9yKGRvdWJsZSk7CiAgICAgV2ViQ29y
ZTo6RHJhZ09wZXJhdGlvbiBrZXlTdGF0ZVRvRHJhZ09wZXJhdGlvbihEV09SRCBncmZLZXlTdGF0
ZSkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVNjcm9sbGJhcnNGb3JNYWluRnJh
bWUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQo
dWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgY29tcGxleFRl
eHRJbnB1dEVuYWJsZWQpOwogCiAgICAgdmlydHVhbCBIV05EIG5hdGl2ZVdpbmRvdygpOwogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oCShyZXZpc2lv
biA4MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaAko
d29ya2luZyBjb3B5KQpAQCAtMTU0LDEzICsxNTQsMTMgQEAgcHVibGljOgogCiAgICAgLy8gVGVs
bHMgdGhlIHBsdWctaW4gYWJvdXQgd2luZG93IHZpc2liaWxpdHkgY2hhbmdlcy4KICAgICB2aXJ0
dWFsIHZvaWQgd2luZG93VmlzaWJpbGl0eUNoYW5nZWQoYm9vbCkgPSAwOworI2VuZGlmCiAKICAg
ICAvLyBHZXQgdGhlIHBlciBjb21wbGV4IHRleHQgaW5wdXQgaWRlbnRpZmllci4KICAgICB2aXJ0
dWFsIHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkgY29uc3QgPSAw
OwogCiAgICAgLy8gU2VuZCB0aGUgY29tcGxleCB0ZXh0IGlucHV0IHRvIHRoZSBwbHVnLWluLgog
ICAgIHZpcnR1YWwgdm9pZCBzZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJ
bnB1dCkgPSAwOwotI2VuZGlmCiAKICAgICAvLyBDYWxsZWQgd2hlbiB0aGUgcHJpdmF0ZSBicm93
c2luZyBzdGF0ZSBmb3IgdGhpcyBwbHVnLWluIGNoYW5nZXMuCiAgICAgdmlydHVhbCB2b2lkIHBy
aXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChib29sKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luQ29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9sbGVyLmgJKHJldmlz
aW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkNv
bnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtODgsMTAgKzg4LDEwIEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIEhXTkQgbmF0aXZlUGFyZW50V2luZG93KCkgPSAwOwogI2VuZGlmCiAKLSNpZiBQ
TEFURk9STShNQUMpCiAgICAgLy8gVGVsbHMgdGhlIGNvbnRyb2xsZXIgdGhhdCBjb21wbGV4IHRl
eHQgaW5wdXQgYmUgZW5hYmxlZCBvciBkaXNhYmxlZCBmb3IgdGhlIHBsdWctaW4uCiAgICAgdmly
dHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKGJvb2wpID0gMDsKIAorI2lmIFBM
QVRGT1JNKE1BQykKICAgICAvLyBSZXR1cm5zIHRoZSBtYWNoIHBvcnQgb2YgdGhlIGNvbXBvc2l0
aW5nIHJlbmRlciBzZXJ2ZXIuCiAgICAgdmlydHVhbCBtYWNoX3BvcnRfdCBjb21wb3NpdGluZ1Jl
bmRlclNlcnZlclBvcnQoKSA9IDA7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbk1hbmFnZXIuY3BwCShyZXZpc2lvbiA4MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCw3ICszMCw5IEBACiAKICNpbmNsdWRlICJBcmd1bWVudERlY29kZXIu
aCIKICNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpZiBQTEFURk9STShNQUMpCiAjaW5j
bHVkZSAiTWFjaFBvcnQuaCIKKyNlbmRpZgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0
aW9uLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzcy5oIgpAQCAtNjEsMTEgKzYzLDE2IEBAIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKiBQ
bHVnaW5Qcm9jZXNzQ28KICAgICB9CiAKICAgICBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyOworI2lmIFBMQVRGT1JNKE1BQykKICAgICBDb3JlSVBD
OjpNYWNoUG9ydCBjb25uZWN0aW9uTWFjaFBvcnQ7CiAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFy
ZWQoKS5jb25uZWN0aW9uKCktPmRlcHJlY2F0ZWRTZW5kU3luYyhXZWJQcm9jZXNzUHJveHlMZWdh
Y3lNZXNzYWdlOjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbiwgMCwgQ29yZUlQQzo6SW4ocGx1
Z2luUGF0aCksIENvcmVJUEM6Ok91dChjb25uZWN0aW9uTWFjaFBvcnQpKSkKICAgICAgICAgcmV0
dXJuIDA7CiAKICAgICBjb25uZWN0aW9uSWRlbnRpZmllciA9IGNvbm5lY3Rpb25NYWNoUG9ydC5w
b3J0KCk7CisjZWxzZQorICAgIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gMDsKKyAgICBBU1NFUlQo
Y29ubmVjdGlvbklkZW50aWZpZXIpOworI2VuZGlmCiAgICAgaWYgKCFjb25uZWN0aW9uSWRlbnRp
ZmllcikKICAgICAgICAgcmV0dXJuIDA7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmNwcAkocmV2aXNpb24gODA0MzYpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMzcsNiArMzM3LDcgQEAgdm9pZCBQbHVnaW5Qcm94eTo6d2luZG93VmlzaWJp
bGl0eUNoYW5nZQogewogICAgIG1fY29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpQbHVnaW5Db250cm9sbGVyUHJveHk6OldpbmRvd1Zpc2liaWxpdHlDaGFuZ2VkKGlzVmlz
aWJsZSksIG1fcGx1Z2luSW5zdGFuY2VJRCk7CiB9CisjZW5kaWYKIAogdWludDY0X3QgUGx1Z2lu
UHJveHk6OnBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkgY29uc3QKIHsKQEAgLTM0
OCw4ICszNDksNiBAQCB2b2lkIFBsdWdpblByb3h5OjpzZW5kQ29tcGxleFRleHRJbnB1dChjCiAg
ICAgbV9jb25uZWN0aW9uLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBsdWdpbkNvbnRy
b2xsZXJQcm94eTo6U2VuZENvbXBsZXhUZXh0SW5wdXQodGV4dElucHV0KSwgbV9wbHVnaW5JbnN0
YW5jZUlEKTsKIH0KIAotI2VuZGlmCi0KIHZvaWQgUGx1Z2luUHJveHk6OnByaXZhdGVCcm93c2lu
Z1N0YXRlQ2hhbmdlZChib29sIGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKIHsKICAgICBtX2Nv
bm5lY3Rpb24tPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UGx1Z2luQ29udHJvbGxlclBy
b3h5OjpQcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQoaXNQcml2YXRlQnJvd3NpbmdFbmFibGVk
KSwgbV9wbHVnaW5JbnN0YW5jZUlEKTsKQEAgLTQ0MCwxMiArNDM5LDEwIEBAIHZvaWQgUGx1Z2lu
UHJveHk6OnNldFN0YXR1c2JhclRleHQoY29uc3QKICAgICBtX3BsdWdpbkNvbnRyb2xsZXItPnNl
dFN0YXR1c2JhclRleHQoc3RhdHVzYmFyVGV4dCk7CiB9CiAKLSNpZiBQTEFURk9STShNQUMpCiB2
b2lkIFBsdWdpblByb3h5OjpzZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZChib29sIGNvbXBsZXhU
ZXh0SW5wdXRFbmFibGVkKQogewogICAgIG1fcGx1Z2luQ29udHJvbGxlci0+c2V0Q29tcGxleFRl
eHRJbnB1dEVuYWJsZWQoY29tcGxleFRleHRJbnB1dEVuYWJsZWQpOwogfQotI2VuZGlmCiAgICAg
CiB2b2lkIFBsdWdpblByb3h5Ojp1cGRhdGUoY29uc3QgSW50UmVjdCYgcGFpbnRlZFJlY3QpCiB7
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJv
eHkuaAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtOTIsOSArOTIsOSBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgdm9pZCB3aW5kb3dGb2N1c0NoYW5nZWQoYm9vbCk7CiAgICAgdmlydHVh
bCB2b2lkIHdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
dmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbmRvd1Zp
c2liaWxpdHlDaGFuZ2VkKGJvb2wpOworI2VuZGlmCiAgICAgdmlydHVhbCB1aW50NjRfdCBwbHVn
aW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBz
ZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7Ci0jZW5kaWYKIAog
ICAgIHZpcnR1YWwgdm9pZCBwcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQoYm9vbCk7CiAKQEAg
LTExNCw5ICsxMTQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2FuY2VsU3RyZWFtTG9hZCh1aW50
NjRfdCBzdHJlYW1JRCk7CiAgICAgdm9pZCBjYW5jZWxNYW51YWxTdHJlYW1Mb2FkKCk7CiAgICAg
dm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYgc3RhdHVzYmFyVGV4dCk7Ci0jaWYg
UExBVEZPUk0oTUFDKQogICAgIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQoYm9vbCk7
Ci0jZW5kaWYKIAogICAgIFN0cmluZyBtX3BsdWdpblBhdGg7CiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2Fn
ZXMuaW4JKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC01NiwxMCArNTYs
OCBAQCBtZXNzYWdlcyAtPiBQbHVnaW5Qcm94eSB7CiAgICAgIyBTZXQgdGhlIHN0YXR1cyBiYXIg
dGV4dC4KICAgICBTZXRTdGF0dXNiYXJUZXh0KFdURjo6U3RyaW5nIHN0YXR1c2JhclRleHQpCiAK
LSNpZiBQTEFURk9STShNQUMpCiAgICAgIyBDaGFuZ2Ugd2hldGhlciBjb21wbGV4dCB0ZXh0IGlu
cHV0IGlzIGVuYWJsZWQgZm9yIHRoaXMgcGx1Zy1pbi4KICAgICBTZXRDb21wbGV4VGV4dElucHV0
RW5hYmxlZChib29sIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKQotI2VuZGlmCiB9CiAKICNlbmRp
ZgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5W
aWV3LmNwcAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5Nyw2ICszOTcsNyBAQCB2
b2lkIFBsdWdpblZpZXc6OndpbmRvd0FuZFZpZXdGcmFtZXNDaGFuCiAKICAgICBtX3BsdWdpbi0+
d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQod2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVz
LCB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKTsKIH0KKyNlbmRpZgogCiBib29sIFBsdWdp
blZpZXc6OnNlbmRDb21wbGV4VGV4dElucHV0KHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5w
dXRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkKIHsKQEAgLTQxMCw4ICs0MTEs
NiBAQCBib29sIFBsdWdpblZpZXc6OnNlbmRDb21wbGV4VGV4dElucHV0KHVpCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLSNlbmRpZgotCiB2b2lkIFBsdWdpblZpZXc6OmluaXRpYWxpemVQbHVnaW4o
KQogewogICAgIGlmIChtX2lzSW5pdGlhbGl6ZWQpCkBAIC05ODksMTIgKzk4OCwxMiBAQCBIV05E
IFBsdWdpblZpZXc6Om5hdGl2ZVBhcmVudFdpbmRvdygpCiB9CiAjZW5kaWYKIAotI2lmIFBMQVRG
T1JNKE1BQykKIHZvaWQgUGx1Z2luVmlldzo6c2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQoYm9v
bCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCkKIHsKICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6U2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQobV9wbHVnaW4tPnBs
dWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCksIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVk
KSk7CiB9CiAKKyNpZiBQTEFURk9STShNQUMpCiBtYWNoX3BvcnRfdCBQbHVnaW5WaWV3Ojpjb21w
b3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKQogewogICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaGFy
ZWQoKS5jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAkocmV2aXNpb24gODA0MzYpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCSh3b3JraW5n
IGNvcHkpCkBAIC02NCw4ICs2NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFdpbmRvd0lzVmlz
aWJsZShib29sKTsKICAgICB2b2lkIHNldFdpbmRvd0lzRm9jdXNlZChib29sKTsKICAgICB2b2lk
IHdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHdpbmRv
d0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld0Zy
YW1lSW5XaW5kb3dDb29yZGluYXRlcyk7Ci0gICAgYm9vbCBzZW5kQ29tcGxleFRleHRJbnB1dCh1
aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0
ZXh0SW5wdXQpOwogI2VuZGlmCisgICAgYm9vbCBzZW5kQ29tcGxleFRleHRJbnB1dCh1aW50NjRf
dCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5w
dXQpOwogCiBwcml2YXRlOgogICAgIFBsdWdpblZpZXcoUGFzc1JlZlB0cjxXZWJDb3JlOjpIVE1M
UGx1Z0luRWxlbWVudD4sIFBhc3NSZWZQdHI8UGx1Z2luPiwgY29uc3QgUGx1Z2luOjpQYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzKTsKQEAgLTEzMiw4ICsxMzIsOCBAQCBwcml2YXRlOgogI2lmIFBMQVRG
T1JNKFdJTikKICAgICB2aXJ0dWFsIEhXTkQgbmF0aXZlUGFyZW50V2luZG93KCk7CiAjZW5kaWYK
LSNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRF
bmFibGVkKGJvb2wpOworI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIG1hY2hfcG9ydF90
IGNvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpOwogI2VuZGlmCiAgICAgdmlydHVhbCBTdHJp
bmcgcHJveGllc0ZvclVSTChjb25zdCBTdHJpbmcmKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdp
bi5oCShyZXZpc2lvbiA4MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzIsMTAgKzE3
MiwxMCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB3aW5kb3dGb2N1c0NoYW5nZWQoYm9v
bCk7CiAgICAgdmlydHVhbCB2b2lkIHdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyk7CiAgICAgdmlydHVh
bCB2b2lkIHdpbmRvd1Zpc2liaWxpdHlDaGFuZ2VkKGJvb2wpOworI2VuZGlmCiAKICAgICB2aXJ0
dWFsIHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkgY29uc3Q7CiAg
ICAgdmlydHVhbCB2b2lkIHNlbmRDb21wbGV4VGV4dElucHV0KGNvbnN0IFN0cmluZyYgdGV4dElu
cHV0KTsKLSNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHByaXZhdGVCcm93c2luZ1N0YXRlQ2hh
bmdlZChib29sKTsKIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL2d0ay9OZXRzY2FwZVBsdWdpbkd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL2d0ay9OZXRzY2FwZVBsdWdpbkd0ay5j
cHAJKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL2d0ay9OZXRzY2FwZVBsdWdpbkd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEw
Miw0ICsxMDIsMTYgQEAgYm9vbCBOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVLZXlibwog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBOZXRzY2FwZVBsdWdpbjo6c2VuZENvbXBsZXhU
ZXh0SW5wdXQoY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordWludDY0X3QgTmV0c2NhcGVQbHVnaW46OnBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJ
ZGVudGlmaWVyKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIC8vIEp1c3Qg
cmV0dXJuIGEgZHVtbXkgdmFsdWU7IHRoaXMgaXMgb25seSBjYWxsZWQgZm9yIGluLXByb2Nlc3Mg
cGx1Zy1pbnMKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJlaW50ZXJwcmV0X2Nh
c3Q8dWludHB0cl90Pih0aGlzKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDog
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3F0L05ldHNjYXBlUGx1
Z2luUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9xdC9OZXRzY2FwZVBsdWdpblF0LmNwcAkocmV2aXNpb24gODA0MzYpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvcXQvTmV0c2NhcGVQbHVn
aW5RdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMiw0ICsxMjIsMTYgQEAgYm9vbCBOZXRzY2Fw
ZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVLZXlibwogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9p
ZCBOZXRzY2FwZVBsdWdpbjo6c2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3QgU3RyaW5nJiB0ZXh0
SW5wdXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordWludDY0X3QgTmV0c2NhcGVQ
bHVnaW46OnBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkgY29uc3QKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIC8vIEp1c3QgcmV0dXJuIGEgZHVtbXkgdmFsdWU7IHRoaXMg
aXMgb25seSBjYWxsZWQgZm9yIGluLXByb2Nlc3MgcGx1Zy1pbnMKKyAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8dWludDY0X3Q+KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pih0aGlzKSk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL3dpbi9OZXRzY2FwZVBsdWdpbldpbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3dpbi9OZXRzY2FwZVBs
dWdpbldpbi5jcHAJKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL3dpbi9OZXRzY2FwZVBsdWdpbldpbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI5MSw0ICsyOTEsMTYgQEAgYm9vbCBOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5k
bGVLZXlibwogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBOZXRzY2FwZVBsdWdpbjo6c2Vu
ZENvbXBsZXhUZXh0SW5wdXQoY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordWludDY0X3QgTmV0c2NhcGVQbHVnaW46OnBsdWdpbkNvbXBsZXhU
ZXh0SW5wdXRJZGVudGlmaWVyKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IC8vIEp1c3QgcmV0dXJuIGEgZHVtbXkgdmFsdWU7IHRoaXMgaXMgb25seSBjYWxsZWQgZm9yIGlu
LXByb2Nlc3MgcGx1Zy1pbnMKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJlaW50
ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pih0aGlzKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOCw5ICsxMDgsMTAgQEAKICNlbmRpZgog
CiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQotLy8gRklYTUU6IFRoaXMgaXMgY3VycmVudGx5
IE1hYy1zcGVjaWZpYyEKKyNpZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSAiTWFjaFBvcnQuaCIK
ICNlbmRpZgorI2VuZGlmCiAKICNpZiBQTEFURk9STShRVCkKICNpbmNsdWRlICJIaXRUZXN0UmVz
dWx0LmgiCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgJKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjg2LDEzICsyODYsMTIgQEAgcHVibGljOgog
CiAgICAgc3RhdGljIHZvaWQgZ2V0TG9jYXRpb25BbmRMZW5ndGhGcm9tUmFuZ2UoV2ViQ29yZTo6
UmFuZ2UqLCB1aW50NjRfdCYgbG9jYXRpb24sIHVpbnQ2NF90JiBsZW5ndGgpOwogCisgICAgdm9p
ZCBzZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0
SW5wdXRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CisKICNpZiBQTEFURk9S
TShNQUMpCiAgICAgdm9pZCByZWdpc3RlclVJUHJvY2Vzc0FjY2Vzc2liaWxpdHlUb2tlbnMoY29u
c3QgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSYgZWxlbWVuVG9rZW4sIGNvbnN0IENvcmVJUEM6OkRh
dGFSZWZlcmVuY2UmIHdpbmRvd1Rva2VuKTsKICAgICBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVj
dCogYWNjZXNzaWJpbGl0eVJlbW90ZU9iamVjdCgpOwogICAgIFdlYkNvcmU6OkludFBvaW50IGFj
Y2Vzc2liaWxpdHlQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZXNzaWJpbGl0eVBvc2l0
aW9uOyB9ICAgIAotICAgIAotICAgIHZvaWQgc2VuZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbih1
aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0
ZXh0SW5wdXQpOwotCiAgICAgdm9pZCBnZXRNYXJrZWRSYW5nZSh1aW50NjRfdCYgbG9jYXRpb24s
IHVpbnQ2NF90JiBsZW5ndGgpOwogICAgIHZvaWQgY2hhcmFjdGVySW5kZXhGb3JQb2ludChjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgdWludDY0X3QmIHJlc3VsdCk7CiAgICAgdm9pZCBm
aXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZSh1aW50NjRfdCBsb2NhdGlvbiwgdWludDY0X3QgbGVu
Z3RoLCBXZWJDb3JlOjpJbnRSZWN0JiByZXN1bHRSZWN0KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCShyZXZp
c2lvbiA4MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xNzAsMTAgKzE3MCwxMCBAQCBtZXNzYWdl
cyAtPiBXZWJQYWdlIHsKICAgICBTZXRDYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoYm9v
bCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwpCiAgICAgU2V0Q2FuUnVuTW9kYWwoYm9v
bCBjYW5SdW5Nb2RhbCkKIAotI2lmIFBMQVRGT1JNKE1BQykKICAgICAjIENvbXBsZXggdGV4dCBp
bnB1dCBzdXBwb3J0IGZvciBwbHVnLWlucy4KICAgICBTZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1
Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBTdHJpbmcgdGV4
dElucHV0KQogCisjaWYgUExBVEZPUk0oTUFDKQogICAgIFNldFdpbmRvd0lzVmlzaWJsZShib29s
IHdpbmRvd0lzVmlzaWJsZSkKICAgICBXaW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChXZWJDb3Jl
OjpJbnRSZWN0IHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgV2ViQ29yZTo6SW50UmVj
dCB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzLCBXZWJDb3JlOjpJbnRQb2ludCBhY2Nlc3Np
YmlsaXR5Vmlld0Nvb3JkaW5hdGVzKQogICAgIEdldE1hcmtlZFJhbmdlKCkgLT4gKHVpbnQ2NF90
IGxvY2F0aW9uLCB1aW50NjRfdCBsZW5ndGgpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvcXQvV2ViUGFnZVF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvV2ViUGFnZVF0LmNwcAkocmV2aXNpb24gODA0MzYpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvV2ViUGFnZVF0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRm9jdXNDb250
cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
S2V5Ym9hcmRFdmVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9h
cmRFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KQEAgLTI2NSw2ICsyNjYs
MTIgQEAgYm9vbCBXZWJQYWdlOjpwZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9ySwogICAgIHJldHVy
biB0cnVlOwogfQogCit2b2lkIFdlYlBhZ2U6OnNlbmRDb21wbGV4VGV4dElucHV0VG9QbHVnaW4o
dWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
dGV4dElucHV0KQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCiBib29sIFdlYlBhZ2U6OnBsYXRmb3JtSGFzTG9jYWxEYXRhRm9yVVJMKGNvbnN0
IFdlYkNvcmU6OktVUkwmKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNw
cAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
d2luL1dlYlBhZ2VXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDIsNCArMzQyLDEwIEBAIHZv
aWQgV2ViUGFnZTo6Z2V0U2VsZWN0ZWRUZXh0KFN0cmluZyYgdGUKICAgICB0ZXh0ID0gc2VsZWN0
ZWRSYW5nZS0+dGV4dCgpOwogfQogCit2b2lkIFdlYlBhZ2U6OnNlbmRDb21wbGV4VGV4dElucHV0
VG9QbHVnaW4odWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgdGV4dElucHV0KQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84907</attachid>
            <date>2011-03-06 18:55:21 -0800</date>
            <delta_ts>2011-03-07 18:49:09 -0800</delta_ts>
            <desc>Added dummy implementation for Gtk and Win port + Fix 3 unresolved externals on win port.v4</desc>
            <filename>bug55719_part2.v4.diff</filename>
            <type>text/plain</type>
            <size>32850</size>
            <attacher name="Oleg Romashin (:romaxa)">romaxa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTEtMDMtMDYgIE9sZWcgUm9t
YXNoaW4gIDxyb21heGFAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1ha2UgUXQgcG9ydCBjb21waWxpbmcgd2l0aCBFTkFCTEVfUExV
R0lOX1BST0NFU1M9MSwgcGFydDIKKyAgICAgICAgTWFrZSBDb21wbGV4VGV4dElucHV0IGNvbXBp
bGluZyBmb3IgUXQKKyAgICAgICAgQ292ZXIgd2l0aCBpZmRlZiBNYWNoUG9ydCByZWxhdGVkIGZ1
bmN0aW9uYWxpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU1NzE5CisKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6c2VuZENvbXBs
ZXhUZXh0SW5wdXQpOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclBy
b3h5Lmg6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6Y3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgor
ICAgICAgICAqIFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlUGx1Z2luKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwOgorICAgICAgICAoUVdLUGFnZVByaXZhdGU6
OnNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0
L3F3a3BhZ2VfcC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpwbHVnaW5Qcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9M
YXVuY2gpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZENyZWF0ZVdl
YlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
UHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2VuZENvbXBsZXhUZXh0SW5wdXRUb1Bs
dWdpbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL3F0L05ldHNjYXBlUGx1Z2luUXQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXRzY2FwZVBsdWdpbjo6c2VuZENvbXBsZXhUZXh0SW5wdXQpOgorICAgICAgICAoV2ViS2l0
OjpOZXRzY2FwZVBsdWdpbjo6cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luQ29udHJvbGxlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OmdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9u
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpQbHVnaW5Qcm94eTo6c2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblZpZXcuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6YWNjZXNzaWJpbGl0eVBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvcXQvV2ViUGFnZVF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGVyZm9ybURl
ZmF1bHRCZWhhdmlvckZvcktleUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2Vu
ZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbik6CisKIDIwMTEtMDMtMDYgIEplc3NpZSBCZXJsaW4g
IDxqYmVybGluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJ
bmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHku
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29u
dHJvbGxlclByb3h5LmNwcAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2
NCwxMCArMjY0LDEyIEBAIHZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5OjpzZXRDb21wbGV4VGUK
ICAgICBtX2Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UGx1Z2luUHJv
eHk6OlNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKSwg
bV9wbHVnaW5JbnN0YW5jZUlEKTsKIH0KIAorI2lmIFBMQVRGT1JNKE1BQykKIG1hY2hfcG9ydF90
IFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6Y29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCkKIHsK
ICAgICByZXR1cm4gUGx1Z2luUHJvY2Vzczo6c2hhcmVkKCkuY29tcG9zaXRpbmdSZW5kZXJTZXJ2
ZXJQb3J0KCk7CiB9CisjZW5kaWYKIAogU3RyaW5nIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6cHJv
eGllc0ZvclVSTChjb25zdCBTdHJpbmcmIHVybFN0cmluZykKIHsKQEAgLTQ3OCwxNCArNDgwLDEz
IEBAIHZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5Ojp3aW5kb3dWaXNpYmkKIHsKICAgICBtX3Bs
dWdpbi0+d2luZG93VmlzaWJpbGl0eUNoYW5nZWQoaXNWaXNpYmxlKTsKIH0KKyNlbmRpZgogCiB2
b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6c2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3QgU3Ry
aW5nJiB0ZXh0SW5wdXQpCiB7CiAgICAgbV9wbHVnaW4tPnNlbmRDb21wbGV4VGV4dElucHV0KHRl
eHRJbnB1dCk7CiB9CiAKLSNlbmRpZgotCiB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6cHJp
dmF0ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkKGJvb2wgaXNQcml2YXRlQnJvd3NpbmdFbmFibGVkKQog
ewogICAgIG1fcGx1Z2luLT5wcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQoaXNQcml2YXRlQnJv
d3NpbmdFbmFibGVkKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2lu
Q29udHJvbGxlclByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCSh3b3JraW5nIGNv
cHkpCkBAIC05MCw4ICs5MCw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcGx1Z2luUHJvY2Vz
c0NyYXNoZWQoKTsKIAotI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29t
cGxleFRleHRJbnB1dEVuYWJsZWQoYm9vbCk7CisjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1
YWwgbWFjaF9wb3J0X3QgY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCk7CiAjZW5kaWYKIApA
QCAtMTMwLDggKzEzMCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCB3aW5kb3dGb2N1c0NoYW5nZWQo
Ym9vbCk7CiAgICAgdm9pZCB3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMpOwogICAgIHZvaWQgd2luZG93
VmlzaWJpbGl0eUNoYW5nZWQoYm9vbCk7Ci0gICAgdm9pZCBzZW5kQ29tcGxleFRleHRJbnB1dChj
b25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CiAjZW5kaWYKKyAgICB2b2lkIHNlbmRDb21wbGV4VGV4
dElucHV0KGNvbnN0IFN0cmluZyYgdGV4dElucHV0KTsKIAogICAgIHZvaWQgcHJpdmF0ZUJyb3dz
aW5nU3RhdGVDaGFuZ2VkKGJvb2wpOwogCkBAIC0xNzIsMTAgKzE3MiwxMCBAQCBwcml2YXRlOgog
ICAgIC8vIFdoZXRoZXIgdGhlIHBsdWctaW4gaGFzIGNhbmNlbGVkIHRoZSBtYW51YWwgc3RyZWFt
IGxvYWQuCiAgICAgYm9vbCBtX3BsdWdpbkNhbmNlbGVkTWFudWFsU3RyZWFtTG9hZDsKIAotI2lm
IFBMQVRGT1JNKE1BQykKICAgICAvLyBXaGV0aGVyIGNvbXBsZXggdGV4dCBpbnB1dCBpcyBlbmFi
bGVkIGZvciB0aGlzIHBsdWctaW4uCiAgICAgYm9vbCBtX2lzQ29tcGxleFRleHRJbnB1dEVuYWJs
ZWQ7CiAKKyNpZiBQTEFURk9STShNQUMpCiAgICAgLy8gRm9yIENBIHBsdWctaW5zLCB0aGlzIGhv
bGRzIHRoZSBpbmZvcm1hdGlvbiBuZWVkZWQgdG8gZXhwb3J0IHRoZSBsYXllciBoaWVyYXJjaHkg
dG8gdGhlIFVJIHByb2Nlc3MuCiAgICAgUmV0YWluUHRyPFdLQ0FSZW1vdGVMYXllckNsaWVudFJl
Zj4gbV9yZW1vdGVMYXllckNsaWVudDsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCShyZXZpc2lvbiA4MDQzNikKKysrIFNv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDcgKzI5LDkgQEAKICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAKICNpbmNs
dWRlICJBcmd1bWVudENvZGVycy5oIgorI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJNYWNo
UG9ydC5oIgorI2VuZGlmCiAjaW5jbHVkZSAiTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCIKICNpbmNs
dWRlICJQbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKQEAgLTEyNyw4ICsxMjksNyBAQCB2b2lkIFBsdWdpblBy
b2Nlc3M6OmluaXRpYWxpemVQbHVnaW5Qcm9jCiAKIHZvaWQgUGx1Z2luUHJvY2Vzczo6Y3JlYXRl
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQogewotICAgIC8vIEZJWE1FOiBUaGlzIGlzIHBsYXRmb3Jt
IHNwZWNpZmljIQotCisjaWYgUExBVEZPUk0oTUFDKQogICAgIC8vIENyZWF0ZSB0aGUgbGlzdGVu
aW5nIHBvcnQuCiAgICAgbWFjaF9wb3J0X3QgbGlzdGVuaW5nUG9ydDsKICAgICBtYWNoX3BvcnRf
YWxsb2NhdGUobWFjaF90YXNrX3NlbGYoKSwgTUFDSF9QT1JUX1JJR0hUX1JFQ0VJVkUsICZsaXN0
ZW5pbmdQb3J0KTsKQEAgLTE0Miw2ICsxNDMsOSBAQCB2b2lkIFBsdWdpblByb2Nlc3M6OmNyZWF0
ZVdlYlByb2Nlc3NDb25uCiAKICAgICAvLyBTdG9wIHRoZSBzaHV0ZG93biB0aW1lci4KICAgICBt
X3NodXRkb3duVGltZXIuc3RvcCgpOworI2Vsc2UKKyAgICBBU1NFUlQoZmFsc2UpOworI2VuZGlm
CiB9CiAKIHZvaWQgUGx1Z2luUHJvY2Vzczo6Z2V0U2l0ZXNXaXRoRGF0YSh1aW50NjRfdCBjYWxs
YmFja0lEKQpJbmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29u
bmVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAJKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE2NywxMCArMTY3LDEyIEBAIHZvaWQgV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZVBs
dWdpbigKICAgICAvLyBOb3cgdHJ5IHRvIGluaXRpYWxpemUgdGhlIHBsdWctaW4uCiAgICAgcmVz
dWx0ID0gcGx1Z2luQ29udHJvbGxlclByb3h5UHRyLT5pbml0aWFsaXplKHBhcmFtZXRlcnMpOwog
CisjaWYgUExBVEZPUk0oTUFDKQogICAgIGlmIChyZXN1bHQpIHsKICAgICAgICAgcmVtb3RlTGF5
ZXJDbGllbnRJRCA9IHBsdWdpbkNvbnRyb2xsZXJQcm94eVB0ci0+cmVtb3RlTGF5ZXJDbGllbnRJ
RCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2VuZGlmCiAKICAgICAvLyBXZSBmYWlsZWQg
dG8gaW5pdGlhbGl6ZSwgcmVtb3ZlIHRoZSBwbHVnLWluIGNvbnRyb2xsZXIuIFRoaXMgY291bGQg
Y2F1c2UgdXMgdG8gYmUgZGVsZXRlZC4KICAgICByZW1vdmVQbHVnaW5Db250cm9sbGVyUHJveHko
cGx1Z2luQ29udHJvbGxlclByb3h5UHRyKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bh
Z2VDbGllbnQuaAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGFnZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQsOCArMTI0LDggQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgSFdORCBuYXRpdmVXaW5kb3coKSA9IDA7CiAjZW5kaWYKIAotI2lmIFBMQVRG
T1JNKE1BQykKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQodWlu
dDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgY29tcGxleFRleHRJ
bnB1dEVuYWJsZWQpID0gMDsKKyNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIHNl
dEF1dG9kaXNwbGF5KGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIENHQ29udGV4dFJlZiBjb250YWlu
aW5nV2luZG93R3JhcGhpY3NDb250ZXh0KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJm
b3JtRGljdGlvbmFyeUxvb2t1cChjb25zdCBTdHJpbmcmLCBkb3VibGUgc2NhbGVGYWN0b3IsIGNv
bnN0IERpY3Rpb25hcnlQb3B1cEluZm8mKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAwMyw3ICsy
MDAzLDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNlbGVjdGlvblN0YXRlQ2hhbmdlZAogICAgIG1f
c2VsZWN0aW9uU3RhdGUgPSBzZWxlY3Rpb25TdGF0ZTsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykK
IC8vIENvbXBsZXggdGV4dCBpbnB1dCBzdXBwb3J0IGZvciBwbHVnLWlucy4KIHZvaWQgV2ViUGFn
ZVByb3h5OjpzZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBs
ZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkKIHsKQEAgLTIw
MTIsNyArMjAxMSw2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZW5kQ29tcGxleFRleHRJbnB1dFQK
ICAgICAKICAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNlbmRDb21wbGV4
VGV4dElucHV0VG9QbHVnaW4ocGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIHRleHRJ
bnB1dCksIG1fcGFnZUlEKTsKIH0KLSNlbmRpZgogCiAjaWYgUExBVEZPUk0oV0lOKQogdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZENoYW5nZUNvbXBvc2l0aW9uU2VsZWN0aW9uKGJvb2wgaGFzQ29tcG9z
aXRpb24pCkBAIC0yNzM1LDEyICsyNzMzLDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5p
c2hMb2FkaW5nRGF0YUYKICAgICBtX3BhZ2VDbGllbnQtPmRpZEZpbmlzaExvYWRpbmdEYXRhRm9y
Q3VzdG9tUmVwcmVzZW50YXRpb24oc3VnZ2VzdGVkRmlsZW5hbWUsIGRhdGFSZWZlcmVuY2UpOwog
fQogCi0jaWYgUExBVEZPUk0oTUFDKQogdm9pZCBXZWJQYWdlUHJveHk6OnNldENvbXBsZXhUZXh0
SW5wdXRFbmFibGVkKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBi
b29sIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKQogewogICAgIG1fcGFnZUNsaWVudC0+c2V0Q29t
cGxleFRleHRJbnB1dEVuYWJsZWQocGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGNv
bXBsZXhUZXh0SW5wdXRFbmFibGVkKTsKIH0KIAorI2lmIFBMQVRGT1JNKE1BQykKIHZvaWQgV2Vi
UGFnZVByb3h5OjpzZXRBdXRvZGlzcGxheShib29sIG5ld1N0YXRlKQogewogICAgIG1fcGFnZUNs
aWVudC0+c2V0QXV0b2Rpc3BsYXkobmV3U3RhdGUpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1OCw5ICsyNTgsMTEg
QEAgcHVibGljOgogICAgIHZvaWQgZ2V0TWFya2VkUmFuZ2UodWludDY0X3QmIGxvY2F0aW9uLCB1
aW50NjRfdCYgbGVuZ3RoKTsKICAgICB1aW50NjRfdCBjaGFyYWN0ZXJJbmRleEZvclBvaW50KGNv
bnN0IFdlYkNvcmU6OkludFBvaW50KTsKICAgICBXZWJDb3JlOjpJbnRSZWN0IGZpcnN0UmVjdEZv
ckNoYXJhY3RlclJhbmdlKHVpbnQ2NF90LCB1aW50NjRfdCk7Ci0gICAgdm9pZCBzZW5kQ29tcGxl
eFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CiAgICAgQ0dDb250ZXh0UmVmIGNvbnRhaW5p
bmdXaW5kb3dHcmFwaGljc0NvbnRleHQoKTsKICNlbmRpZgorCisgICAgdm9pZCBzZW5kQ29tcGxl
eFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CisKICNpZiBQTEFURk9STShXSU4pCiAgICAg
dm9pZCBkaWRDaGFuZ2VDb21wb3NpdGlvblNlbGVjdGlvbihib29sKTsKICAgICB2b2lkIGNvbmZp
cm1Db21wb3NpdGlvbihjb25zdCBTdHJpbmcmKTsKQEAgLTYzMCw5ICs2MzIsNyBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbVJlcHJlc2VudGF0aW9u
KGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUsIGNvbnN0IENvcmVJUEM6OkRhdGFSZWZl
cmVuY2UmKTsKIAotI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIHNldENvbXBsZXhUZXh0SW5w
dXRFbmFibGVkKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBib29s
IGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKTsKLSNlbmRpZgogCiAgICAgc3RhdGljIFN0cmluZyBz
dGFuZGFyZFVzZXJBZ2VudChjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFtZSA9IFN0cmluZygp
KTsKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiA4MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTE3NywxMCArMTc3
LDggQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICAjIEdlb2xvY2F0aW9uIG1lc3Nh
Z2VzCiAgICAgUmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdl
b2xvY2F0aW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFdURjo6U3RyaW5nIG9yaWdpbklkZW50aWZp
ZXIpCiAKLSNpZiBQTEFURk9STShNQUMpCiAgICAgIyBQbHVnLWluIGNvbXBsZXggdGV4dCBpbnB1
dCBzdXBwb3J0IG1lc3NhZ2VzCiAgICAgU2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQodWludDY0
X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgY29tcGxleFRleHRJbnB1
dEVuYWJsZWQpCi0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICAjIFNwZWVjaCBtZXNz
YWdlcwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3Bw
CShyZXZpc2lvbiA4MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdr
cGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3MCw2ICsyNzAsMTMgQEAgdm9pZCBRV0tQYWdl
UHJpdmF0ZTo6cGFpbnQoUVBhaW50ZXIqIHBhaQogICAgICAgICBwYWludGVyLT5maWxsUmVjdChh
cmVhLCBRdDo6d2hpdGUpOwogfQogCit2b2lkCitRV0tQYWdlUHJpdmF0ZTo6c2V0Q29tcGxleFRl
eHRJbnB1dEVuYWJsZWQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjb21wbGV4
VGV4dElucHV0RW5hYmxlZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB2b2lkIFFX
S1BhZ2VQcml2YXRlOjprZXlQcmVzc0V2ZW50KFFLZXlFdmVudCogZXYpCiB7CiAgICAgcGFnZS0+
aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2KSk7CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2VfcC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZV9wLmgJKHJldmlzaW9uIDgw
NDM2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlX3AuaAkod29y
a2luZyBjb3B5KQpAQCAtODksNiArODksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBkb3VibGUg
Y3VzdG9tUmVwcmVzZW50YXRpb25ab29tRmFjdG9yKCkgeyByZXR1cm4gMTsgfQogICAgIHZpcnR1
YWwgdm9pZCBzZXRDdXN0b21SZXByZXNlbnRhdGlvblpvb21GYWN0b3IoZG91YmxlKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsYmFyc0Zvck1haW5GcmFtZSgpIGNvbnN0IHsg
fQorICAgIHZpcnR1YWwgdm9pZCBzZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZCh1aW50NjRfdCBw
bHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgYm9vbCBjb21wbGV4VGV4dElucHV0RW5h
YmxlZCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZmxhc2hCYWNraW5nU3RvcmVVcGRhdGVzKGNvbnN0
IFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYgdXBkYXRlUmVjdHMpOwogCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94
eS5jcHAJKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsOSBA
QAogCiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogCisjaWYgUExBVEZPUk0oTUFDKQogI2lu
Y2x1ZGUgIk1hY2hQb3J0LmgiCisjZW5kaWYKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc01hbmFnZXIuaCIKICNpbmNs
dWRlICJQbHVnaW5Qcm9jZXNzTWVzc2FnZXMuaCIKQEAgLTEyMiw4ICsxMjQsMTEgQEAgdm9pZCBQ
bHVnaW5Qcm9jZXNzUHJveHk6OnBsdWdpblByb2Nlc3NDcgogICAgICAgICBDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXIqIHJlcGx5ID0gbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMuZmlyc3QoKS5z
ZWNvbmQ7CiAgICAgICAgIG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLnJlbW92ZUZpcnN0KCk7
CiAKLSAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgTWFjIHNwZWNpZmljLgorI2lmIFBMQVRGT1JN
KE1BQykKICAgICAgICAgcmVwbHktPmVuY29kZShDb3JlSVBDOjpNYWNoUG9ydCgwLCBNQUNIX01T
R19UWVBFX01PVkVfU0VORCkpOworI2Vsc2UKKyAgICAgICAgQVNTRVJUKGZhbHNlKTsKKyNlbmRp
ZgogICAgICAgICByZXBseVdlYlByb2Nlc3NQcm94eS0+Y29ubmVjdGlvbigpLT5zZW5kU3luY1Jl
cGx5KHJlcGx5KTsKICAgICB9CiAKQEAgLTE5MCw2ICsxOTUsNyBAQCB2b2lkIFBsdWdpblByb2Nl
c3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoCiAgICAgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVl
c3RzID0gMDsKIH0KIAorI2lmIFBMQVRGT1JNKE1BQykKIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5
OjpkaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBDb3JlSVBDOjpNYWNoUG9ydCYg
bWFjaFBvcnQpCiB7CiAgICAgQVNTRVJUKCFtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5pc0Vt
cHR5KCkpOwpAQCAtMTk5LDEwICsyMDUsMTEgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmRp
ZENyZWF0ZVdlYlBybwogICAgIENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogcmVwbHkgPSBtX3Bl
bmRpbmdDb25uZWN0aW9uUmVwbGllcy5maXJzdCgpLnNlY29uZDsKICAgICBtX3BlbmRpbmdDb25u
ZWN0aW9uUmVwbGllcy5yZW1vdmVGaXJzdCgpOwogCi0gICAgLy8gRklYTUU6IFRoaXMgaXMgTWFj
IHNwZWNpZmljLgogICAgIHJlcGx5LT5lbmNvZGUoQ29yZUlQQzo6TWFjaFBvcnQobWFjaFBvcnQu
cG9ydCgpLCBNQUNIX01TR19UWVBFX01PVkVfU0VORCkpOworCiAgICAgcmVwbHlXZWJQcm9jZXNz
UHJveHktPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmNSZXBseShyZXBseSk7CiB9CisjZW5kaWYKIAog
dm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZEdldFNpdGVzV2l0aERhdGEoY29uc3QgVmVjdG9y
PFN0cmluZz4mIHNpdGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgJ
KHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc1Byb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTc3LDcgKzc3LDkgQEAgcHJpdmF0
ZToKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKICAgICB2b2lkIGRpZFJlY2VpdmVQbHVnaW5Q
cm9jZXNzUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworI2lmIFBMQVRGT1JNKE1BQykKICAgICB2
b2lkIGRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IENvcmVJUEM6Ok1hY2hQb3J0
Jik7CisjZW5kaWYKICAgICB2b2lkIGRpZEdldFNpdGVzV2l0aERhdGEoY29uc3QgVmVjdG9yPFN0
cmluZz4mIHNpdGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGRpZENsZWFyU2l0
ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVz
c2FnZXMuaW4JKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0y
Myw4ICsyMyw5IEBACiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBQ
bHVnaW5Qcm9jZXNzUHJveHkgewotICAgICMgRklYTUU6IFRoaXMgaXMgcGxhdGZvcm0gc3BlY2lm
aWMKKyNpZiBQTEFURk9STShNQUMpCiAgICAgRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24o
Q29yZUlQQzo6TWFjaFBvcnQgY29ubmVjdGlvbklkZW50aWZpZXIpCisjZW5kaWYKIAogICAgIERp
ZEdldFNpdGVzV2l0aERhdGEoVmVjdG9yPFdURjo6U3RyaW5nPiBzaXRlcywgdWludDY0X3QgY2Fs
bGJhY2tJRCkKICAgICBEaWRDbGVhclNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlZpZXcuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViVmlldy5jcHAJKHJldmlzaW9uIDgwNDM2
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJWaWV3LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjg4LDYgKzI4OCwxMSBAQCB2b2lkIFdlYlZpZXc6OmRpZENoYW5nZVNjcm9sbGJh
cnNGb3JNYWluCiB7CiB9CiAKK3ZvaWQgV2ViVmlldzo6c2V0Q29tcGxleFRleHRJbnB1dEVuYWJs
ZWQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgY29tcGxl
eFRleHRJbnB1dEVuYWJsZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogdm9pZCBX
ZWJWaWV3OjpmbGFzaEJhY2tpbmdTdG9yZVVwZGF0ZXMoY29uc3QgVmVjdG9yPEludFJlY3Q+JikK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2d0ay9XZWJWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0
ay9XZWJWaWV3LmgJKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2d0ay9XZWJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTk5LDYgKzk5LDcgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29udGV4dE1lbnVQcm94eT4gY3JlYXRlQ29udGV4
dE1lbnVQcm94eShXZWJQYWdlUHJveHkqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RmluZEluZGlj
YXRvcihQYXNzUmVmUHRyPEZpbmRJbmRpY2F0b3I+LCBib29sIGZhZGVPdXQpOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRDaGFuZ2VTY3JvbGxiYXJzRm9yTWFpbkZyYW1lKCkgY29uc3Q7CisgICAgdmly
dHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKHVpbnQ2NF90IHBsdWdpbkNvbXBs
ZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBib29sIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZmxhc2hCYWNraW5nU3RvcmVVcGRhdGVzKGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpJbnRSZWN0PiYgdXBkYXRlUmVjdHMpOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwCShy
ZXZpc2lvbiA4MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTExNTcsNiArMTE1NywxMCBAQCB2b2lkIFdlYlZpZXc6OmRp
ZENoYW5nZVNjcm9sbGJhcnNGb3JNYWluCiB7CiB9CiAKK3ZvaWQgV2ViVmlldzo6c2V0Q29tcGxl
eFRleHRJbnB1dEVuYWJsZWQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZp
ZXIsIGJvb2wgY29tcGxleFRleHRJbnB1dEVuYWJsZWQpCit7Cit9CisKIHZvaWQgV2ViVmlldzo6
c2V0SXNJbldpbmRvdyhib29sIGlzSW5XaW5kb3cpCiB7CiAgICAgbV9pc0luV2luZG93ID0gaXNJ
bldpbmRvdzsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5oCShyZXZp
c2lvbiA4MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjgsNiArMTY4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgc2V0Q3VzdG9tUmVwcmVzZW50YXRpb25ab29tRmFjdG9yKGRvdWJsZSk7CiAgICAgV2ViQ29y
ZTo6RHJhZ09wZXJhdGlvbiBrZXlTdGF0ZVRvRHJhZ09wZXJhdGlvbihEV09SRCBncmZLZXlTdGF0
ZSkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVNjcm9sbGJhcnNGb3JNYWluRnJh
bWUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQo
dWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgY29tcGxleFRl
eHRJbnB1dEVuYWJsZWQpOwogCiAgICAgdmlydHVhbCBIV05EIG5hdGl2ZVdpbmRvdygpOwogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oCShyZXZpc2lv
biA4MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaAko
d29ya2luZyBjb3B5KQpAQCAtMTU0LDEzICsxNTQsMTMgQEAgcHVibGljOgogCiAgICAgLy8gVGVs
bHMgdGhlIHBsdWctaW4gYWJvdXQgd2luZG93IHZpc2liaWxpdHkgY2hhbmdlcy4KICAgICB2aXJ0
dWFsIHZvaWQgd2luZG93VmlzaWJpbGl0eUNoYW5nZWQoYm9vbCkgPSAwOworI2VuZGlmCiAKICAg
ICAvLyBHZXQgdGhlIHBlciBjb21wbGV4IHRleHQgaW5wdXQgaWRlbnRpZmllci4KICAgICB2aXJ0
dWFsIHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkgY29uc3QgPSAw
OwogCiAgICAgLy8gU2VuZCB0aGUgY29tcGxleCB0ZXh0IGlucHV0IHRvIHRoZSBwbHVnLWluLgog
ICAgIHZpcnR1YWwgdm9pZCBzZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJ
bnB1dCkgPSAwOwotI2VuZGlmCiAKICAgICAvLyBDYWxsZWQgd2hlbiB0aGUgcHJpdmF0ZSBicm93
c2luZyBzdGF0ZSBmb3IgdGhpcyBwbHVnLWluIGNoYW5nZXMuCiAgICAgdmlydHVhbCB2b2lkIHBy
aXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChib29sKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luQ29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9sbGVyLmgJKHJldmlz
aW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkNv
bnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtODgsMTAgKzg4LDEwIEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIEhXTkQgbmF0aXZlUGFyZW50V2luZG93KCkgPSAwOwogI2VuZGlmCiAKLSNpZiBQ
TEFURk9STShNQUMpCiAgICAgLy8gVGVsbHMgdGhlIGNvbnRyb2xsZXIgdGhhdCBjb21wbGV4IHRl
eHQgaW5wdXQgYmUgZW5hYmxlZCBvciBkaXNhYmxlZCBmb3IgdGhlIHBsdWctaW4uCiAgICAgdmly
dHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKGJvb2wpID0gMDsKIAorI2lmIFBM
QVRGT1JNKE1BQykKICAgICAvLyBSZXR1cm5zIHRoZSBtYWNoIHBvcnQgb2YgdGhlIGNvbXBvc2l0
aW5nIHJlbmRlciBzZXJ2ZXIuCiAgICAgdmlydHVhbCBtYWNoX3BvcnRfdCBjb21wb3NpdGluZ1Jl
bmRlclNlcnZlclBvcnQoKSA9IDA7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbk1hbmFnZXIuY3BwCShyZXZpc2lvbiA4MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCw3ICszMCw5IEBACiAKICNpbmNsdWRlICJBcmd1bWVudERlY29kZXIu
aCIKICNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpZiBQTEFURk9STShNQUMpCiAjaW5j
bHVkZSAiTWFjaFBvcnQuaCIKKyNlbmRpZgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0
aW9uLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzcy5oIgpAQCAtNjEsMTEgKzYzLDE2IEBAIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKiBQ
bHVnaW5Qcm9jZXNzQ28KICAgICB9CiAKICAgICBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyOworI2lmIFBMQVRGT1JNKE1BQykKICAgICBDb3JlSVBD
OjpNYWNoUG9ydCBjb25uZWN0aW9uTWFjaFBvcnQ7CiAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFy
ZWQoKS5jb25uZWN0aW9uKCktPmRlcHJlY2F0ZWRTZW5kU3luYyhXZWJQcm9jZXNzUHJveHlMZWdh
Y3lNZXNzYWdlOjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbiwgMCwgQ29yZUlQQzo6SW4ocGx1
Z2luUGF0aCksIENvcmVJUEM6Ok91dChjb25uZWN0aW9uTWFjaFBvcnQpKSkKICAgICAgICAgcmV0
dXJuIDA7CiAKICAgICBjb25uZWN0aW9uSWRlbnRpZmllciA9IGNvbm5lY3Rpb25NYWNoUG9ydC5w
b3J0KCk7CisjZWxzZQorICAgIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gMDsKKyAgICBBU1NFUlQo
Y29ubmVjdGlvbklkZW50aWZpZXIpOworI2VuZGlmCiAgICAgaWYgKCFjb25uZWN0aW9uSWRlbnRp
ZmllcikKICAgICAgICAgcmV0dXJuIDA7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmNwcAkocmV2aXNpb24gODA0MzYpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMzcsNiArMzM3LDcgQEAgdm9pZCBQbHVnaW5Qcm94eTo6d2luZG93VmlzaWJp
bGl0eUNoYW5nZQogewogICAgIG1fY29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpQbHVnaW5Db250cm9sbGVyUHJveHk6OldpbmRvd1Zpc2liaWxpdHlDaGFuZ2VkKGlzVmlz
aWJsZSksIG1fcGx1Z2luSW5zdGFuY2VJRCk7CiB9CisjZW5kaWYKIAogdWludDY0X3QgUGx1Z2lu
UHJveHk6OnBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkgY29uc3QKIHsKQEAgLTM0
OCw4ICszNDksNiBAQCB2b2lkIFBsdWdpblByb3h5OjpzZW5kQ29tcGxleFRleHRJbnB1dChjCiAg
ICAgbV9jb25uZWN0aW9uLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBsdWdpbkNvbnRy
b2xsZXJQcm94eTo6U2VuZENvbXBsZXhUZXh0SW5wdXQodGV4dElucHV0KSwgbV9wbHVnaW5JbnN0
YW5jZUlEKTsKIH0KIAotI2VuZGlmCi0KIHZvaWQgUGx1Z2luUHJveHk6OnByaXZhdGVCcm93c2lu
Z1N0YXRlQ2hhbmdlZChib29sIGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKIHsKICAgICBtX2Nv
bm5lY3Rpb24tPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UGx1Z2luQ29udHJvbGxlclBy
b3h5OjpQcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQoaXNQcml2YXRlQnJvd3NpbmdFbmFibGVk
KSwgbV9wbHVnaW5JbnN0YW5jZUlEKTsKQEAgLTQ0MCwxMiArNDM5LDEwIEBAIHZvaWQgUGx1Z2lu
UHJveHk6OnNldFN0YXR1c2JhclRleHQoY29uc3QKICAgICBtX3BsdWdpbkNvbnRyb2xsZXItPnNl
dFN0YXR1c2JhclRleHQoc3RhdHVzYmFyVGV4dCk7CiB9CiAKLSNpZiBQTEFURk9STShNQUMpCiB2
b2lkIFBsdWdpblByb3h5OjpzZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZChib29sIGNvbXBsZXhU
ZXh0SW5wdXRFbmFibGVkKQogewogICAgIG1fcGx1Z2luQ29udHJvbGxlci0+c2V0Q29tcGxleFRl
eHRJbnB1dEVuYWJsZWQoY29tcGxleFRleHRJbnB1dEVuYWJsZWQpOwogfQotI2VuZGlmCiAgICAg
CiB2b2lkIFBsdWdpblByb3h5Ojp1cGRhdGUoY29uc3QgSW50UmVjdCYgcGFpbnRlZFJlY3QpCiB7
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJv
eHkuaAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtOTIsOSArOTIsOSBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgdm9pZCB3aW5kb3dGb2N1c0NoYW5nZWQoYm9vbCk7CiAgICAgdmlydHVh
bCB2b2lkIHdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
dmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbmRvd1Zp
c2liaWxpdHlDaGFuZ2VkKGJvb2wpOworI2VuZGlmCiAgICAgdmlydHVhbCB1aW50NjRfdCBwbHVn
aW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBz
ZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7Ci0jZW5kaWYKIAog
ICAgIHZpcnR1YWwgdm9pZCBwcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQoYm9vbCk7CiAKQEAg
LTExNCw5ICsxMTQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2FuY2VsU3RyZWFtTG9hZCh1aW50
NjRfdCBzdHJlYW1JRCk7CiAgICAgdm9pZCBjYW5jZWxNYW51YWxTdHJlYW1Mb2FkKCk7CiAgICAg
dm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYgc3RhdHVzYmFyVGV4dCk7Ci0jaWYg
UExBVEZPUk0oTUFDKQogICAgIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQoYm9vbCk7
Ci0jZW5kaWYKIAogICAgIFN0cmluZyBtX3BsdWdpblBhdGg7CiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2Fn
ZXMuaW4JKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC01NiwxMCArNTYs
OCBAQCBtZXNzYWdlcyAtPiBQbHVnaW5Qcm94eSB7CiAgICAgIyBTZXQgdGhlIHN0YXR1cyBiYXIg
dGV4dC4KICAgICBTZXRTdGF0dXNiYXJUZXh0KFdURjo6U3RyaW5nIHN0YXR1c2JhclRleHQpCiAK
LSNpZiBQTEFURk9STShNQUMpCiAgICAgIyBDaGFuZ2Ugd2hldGhlciBjb21wbGV4dCB0ZXh0IGlu
cHV0IGlzIGVuYWJsZWQgZm9yIHRoaXMgcGx1Zy1pbi4KICAgICBTZXRDb21wbGV4VGV4dElucHV0
RW5hYmxlZChib29sIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKQotI2VuZGlmCiB9CiAKICNlbmRp
ZgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5W
aWV3LmNwcAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5Nyw2ICszOTcsNyBAQCB2
b2lkIFBsdWdpblZpZXc6OndpbmRvd0FuZFZpZXdGcmFtZXNDaGFuCiAKICAgICBtX3BsdWdpbi0+
d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQod2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVz
LCB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKTsKIH0KKyNlbmRpZgogCiBib29sIFBsdWdp
blZpZXc6OnNlbmRDb21wbGV4VGV4dElucHV0KHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5w
dXRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkKIHsKQEAgLTQxMCw4ICs0MTEs
NiBAQCBib29sIFBsdWdpblZpZXc6OnNlbmRDb21wbGV4VGV4dElucHV0KHVpCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLSNlbmRpZgotCiB2b2lkIFBsdWdpblZpZXc6OmluaXRpYWxpemVQbHVnaW4o
KQogewogICAgIGlmIChtX2lzSW5pdGlhbGl6ZWQpCkBAIC05ODksMTIgKzk4OCwxMiBAQCBIV05E
IFBsdWdpblZpZXc6Om5hdGl2ZVBhcmVudFdpbmRvdygpCiB9CiAjZW5kaWYKIAotI2lmIFBMQVRG
T1JNKE1BQykKIHZvaWQgUGx1Z2luVmlldzo6c2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQoYm9v
bCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCkKIHsKICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6U2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQobV9wbHVnaW4tPnBs
dWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCksIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVk
KSk7CiB9CiAKKyNpZiBQTEFURk9STShNQUMpCiBtYWNoX3BvcnRfdCBQbHVnaW5WaWV3Ojpjb21w
b3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKQogewogICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaGFy
ZWQoKS5jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAkocmV2aXNpb24gODA0MzYpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCSh3b3JraW5n
IGNvcHkpCkBAIC02NCw4ICs2NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFdpbmRvd0lzVmlz
aWJsZShib29sKTsKICAgICB2b2lkIHNldFdpbmRvd0lzRm9jdXNlZChib29sKTsKICAgICB2b2lk
IHdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHdpbmRv
d0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld0Zy
YW1lSW5XaW5kb3dDb29yZGluYXRlcyk7Ci0gICAgYm9vbCBzZW5kQ29tcGxleFRleHRJbnB1dCh1
aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0
ZXh0SW5wdXQpOwogI2VuZGlmCisgICAgYm9vbCBzZW5kQ29tcGxleFRleHRJbnB1dCh1aW50NjRf
dCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5w
dXQpOwogCiBwcml2YXRlOgogICAgIFBsdWdpblZpZXcoUGFzc1JlZlB0cjxXZWJDb3JlOjpIVE1M
UGx1Z0luRWxlbWVudD4sIFBhc3NSZWZQdHI8UGx1Z2luPiwgY29uc3QgUGx1Z2luOjpQYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzKTsKQEAgLTEzMiw4ICsxMzIsOCBAQCBwcml2YXRlOgogI2lmIFBMQVRG
T1JNKFdJTikKICAgICB2aXJ0dWFsIEhXTkQgbmF0aXZlUGFyZW50V2luZG93KCk7CiAjZW5kaWYK
LSNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRF
bmFibGVkKGJvb2wpOworI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIG1hY2hfcG9ydF90
IGNvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpOwogI2VuZGlmCiAgICAgdmlydHVhbCBTdHJp
bmcgcHJveGllc0ZvclVSTChjb25zdCBTdHJpbmcmKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdp
bi5oCShyZXZpc2lvbiA4MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzIsMTAgKzE3
MiwxMCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB3aW5kb3dGb2N1c0NoYW5nZWQoYm9v
bCk7CiAgICAgdmlydHVhbCB2b2lkIHdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyk7CiAgICAgdmlydHVh
bCB2b2lkIHdpbmRvd1Zpc2liaWxpdHlDaGFuZ2VkKGJvb2wpOworI2VuZGlmCiAKICAgICB2aXJ0
dWFsIHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkgY29uc3Q7CiAg
ICAgdmlydHVhbCB2b2lkIHNlbmRDb21wbGV4VGV4dElucHV0KGNvbnN0IFN0cmluZyYgdGV4dElu
cHV0KTsKLSNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHByaXZhdGVCcm93c2luZ1N0YXRlQ2hh
bmdlZChib29sKTsKIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL2d0ay9OZXRzY2FwZVBsdWdpbkd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL2d0ay9OZXRzY2FwZVBsdWdpbkd0ay5j
cHAJKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL2d0ay9OZXRzY2FwZVBsdWdpbkd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEw
Miw0ICsxMDIsMTYgQEAgYm9vbCBOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVLZXlibwog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBOZXRzY2FwZVBsdWdpbjo6c2VuZENvbXBsZXhU
ZXh0SW5wdXQoY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordWludDY0X3QgTmV0c2NhcGVQbHVnaW46OnBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJ
ZGVudGlmaWVyKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIC8vIEp1c3Qg
cmV0dXJuIGEgZHVtbXkgdmFsdWU7IHRoaXMgaXMgb25seSBjYWxsZWQgZm9yIGluLXByb2Nlc3Mg
cGx1Zy1pbnMKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJlaW50ZXJwcmV0X2Nh
c3Q8dWludHB0cl90Pih0aGlzKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDog
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3F0L05ldHNjYXBlUGx1
Z2luUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9xdC9OZXRzY2FwZVBsdWdpblF0LmNwcAkocmV2aXNpb24gODA0MzYpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvcXQvTmV0c2NhcGVQbHVn
aW5RdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMiw0ICsxMjIsMTYgQEAgYm9vbCBOZXRzY2Fw
ZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVLZXlibwogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9p
ZCBOZXRzY2FwZVBsdWdpbjo6c2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3QgU3RyaW5nJiB0ZXh0
SW5wdXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordWludDY0X3QgTmV0c2NhcGVQ
bHVnaW46OnBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkgY29uc3QKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIC8vIEp1c3QgcmV0dXJuIGEgZHVtbXkgdmFsdWU7IHRoaXMg
aXMgb25seSBjYWxsZWQgZm9yIGluLXByb2Nlc3MgcGx1Zy1pbnMKKyAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8dWludDY0X3Q+KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pih0aGlzKSk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL3dpbi9OZXRzY2FwZVBsdWdpbldpbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3dpbi9OZXRzY2FwZVBs
dWdpbldpbi5jcHAJKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL3dpbi9OZXRzY2FwZVBsdWdpbldpbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI5MSw0ICsyOTEsMTYgQEAgYm9vbCBOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5k
bGVLZXlibwogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBOZXRzY2FwZVBsdWdpbjo6c2Vu
ZENvbXBsZXhUZXh0SW5wdXQoY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordWludDY0X3QgTmV0c2NhcGVQbHVnaW46OnBsdWdpbkNvbXBsZXhU
ZXh0SW5wdXRJZGVudGlmaWVyKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IC8vIEp1c3QgcmV0dXJuIGEgZHVtbXkgdmFsdWU7IHRoaXMgaXMgb25seSBjYWxsZWQgZm9yIGlu
LXByb2Nlc3MgcGx1Zy1pbnMKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJlaW50
ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pih0aGlzKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOCw5ICsxMDgsMTAgQEAKICNlbmRpZgog
CiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQotLy8gRklYTUU6IFRoaXMgaXMgY3VycmVudGx5
IE1hYy1zcGVjaWZpYyEKKyNpZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSAiTWFjaFBvcnQuaCIK
ICNlbmRpZgorI2VuZGlmCiAKICNpZiBQTEFURk9STShRVCkKICNpbmNsdWRlICJIaXRUZXN0UmVz
dWx0LmgiCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgJKHJldmlzaW9uIDgwNDM2KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjg2LDEzICsyODYsMTIgQEAgcHVibGljOgog
CiAgICAgc3RhdGljIHZvaWQgZ2V0TG9jYXRpb25BbmRMZW5ndGhGcm9tUmFuZ2UoV2ViQ29yZTo6
UmFuZ2UqLCB1aW50NjRfdCYgbG9jYXRpb24sIHVpbnQ2NF90JiBsZW5ndGgpOwogCisgICAgdm9p
ZCBzZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0
SW5wdXRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CisKICNpZiBQTEFURk9S
TShNQUMpCiAgICAgdm9pZCByZWdpc3RlclVJUHJvY2Vzc0FjY2Vzc2liaWxpdHlUb2tlbnMoY29u
c3QgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSYgZWxlbWVuVG9rZW4sIGNvbnN0IENvcmVJUEM6OkRh
dGFSZWZlcmVuY2UmIHdpbmRvd1Rva2VuKTsKICAgICBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVj
dCogYWNjZXNzaWJpbGl0eVJlbW90ZU9iamVjdCgpOwogICAgIFdlYkNvcmU6OkludFBvaW50IGFj
Y2Vzc2liaWxpdHlQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZXNzaWJpbGl0eVBvc2l0
aW9uOyB9ICAgIAotICAgIAotICAgIHZvaWQgc2VuZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbih1
aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0
ZXh0SW5wdXQpOwotCiAgICAgdm9pZCBnZXRNYXJrZWRSYW5nZSh1aW50NjRfdCYgbG9jYXRpb24s
IHVpbnQ2NF90JiBsZW5ndGgpOwogICAgIHZvaWQgY2hhcmFjdGVySW5kZXhGb3JQb2ludChjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgdWludDY0X3QmIHJlc3VsdCk7CiAgICAgdm9pZCBm
aXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZSh1aW50NjRfdCBsb2NhdGlvbiwgdWludDY0X3QgbGVu
Z3RoLCBXZWJDb3JlOjpJbnRSZWN0JiByZXN1bHRSZWN0KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCShyZXZp
c2lvbiA4MDQzNikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xNzAsMTAgKzE3MCwxMCBAQCBtZXNzYWdl
cyAtPiBXZWJQYWdlIHsKICAgICBTZXRDYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoYm9v
bCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwpCiAgICAgU2V0Q2FuUnVuTW9kYWwoYm9v
bCBjYW5SdW5Nb2RhbCkKIAotI2lmIFBMQVRGT1JNKE1BQykKICAgICAjIENvbXBsZXggdGV4dCBp
bnB1dCBzdXBwb3J0IGZvciBwbHVnLWlucy4KICAgICBTZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1
Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBTdHJpbmcgdGV4
dElucHV0KQogCisjaWYgUExBVEZPUk0oTUFDKQogICAgIFNldFdpbmRvd0lzVmlzaWJsZShib29s
IHdpbmRvd0lzVmlzaWJsZSkKICAgICBXaW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChXZWJDb3Jl
OjpJbnRSZWN0IHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgV2ViQ29yZTo6SW50UmVj
dCB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzLCBXZWJDb3JlOjpJbnRQb2ludCBhY2Nlc3Np
YmlsaXR5Vmlld0Nvb3JkaW5hdGVzKQogICAgIEdldE1hcmtlZFJhbmdlKCkgLT4gKHVpbnQ2NF90
IGxvY2F0aW9uLCB1aW50NjRfdCBsZW5ndGgpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvcXQvV2ViUGFnZVF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvV2ViUGFnZVF0LmNwcAkocmV2aXNpb24gODA0MzYpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvV2ViUGFnZVF0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRm9jdXNDb250
cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
S2V5Ym9hcmRFdmVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9h
cmRFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KQEAgLTI2NSw2ICsyNjYs
MTIgQEAgYm9vbCBXZWJQYWdlOjpwZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9ySwogICAgIHJldHVy
biB0cnVlOwogfQogCit2b2lkIFdlYlBhZ2U6OnNlbmRDb21wbGV4VGV4dElucHV0VG9QbHVnaW4o
dWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
dGV4dElucHV0KQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCiBib29sIFdlYlBhZ2U6OnBsYXRmb3JtSGFzTG9jYWxEYXRhRm9yVVJMKGNvbnN0
IFdlYkNvcmU6OktVUkwmKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNw
cAkocmV2aXNpb24gODA0MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
d2luL1dlYlBhZ2VXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDIsNCArMzQyLDkgQEAgdm9p
ZCBXZWJQYWdlOjpnZXRTZWxlY3RlZFRleHQoU3RyaW5nJiB0ZQogICAgIHRleHQgPSBzZWxlY3Rl
ZFJhbmdlLT50ZXh0KCk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6c2VuZENvbXBsZXhUZXh0SW5wdXRU
b1BsdWdpbih1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiB0ZXh0SW5wdXQpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudAorfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85008</attachid>
            <date>2011-03-07 18:49:09 -0800</date>
            <delta_ts>2011-03-10 16:10:10 -0800</delta_ts>
            <desc>Fixed some review comments,</desc>
            <filename>bug55719_part2.v5.diff</filename>
            <type>text/plain</type>
            <size>35813</size>
            <attacher name="Oleg Romashin (:romaxa)">romaxa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNTIzKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjggQEAKKzIwMTEtMDMtMDcgIE9sZWcgUm9t
YXNoaW4gIDxyb21heGFAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1ha2UgUXQgcG9ydCBjb21waWxpbmcgd2l0aCBFTkFCTEVfUExV
R0lOX1BST0NFU1M9MSwgcGFydDIKKyAgICAgICAgTWFrZSBDb21wbGV4VGV4dElucHV0IGNvbXBp
bGluZyBmb3IgUXQKKyAgICAgICAgQ292ZXIgd2l0aCBpZmRlZiBNYWNoUG9ydCByZWxhdGVkIGZ1
bmN0aW9uYWxpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU1NzE5CisKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6c2VuZENvbXBs
ZXhUZXh0SW5wdXQpOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclBy
b3h5Lmg6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6Y3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgor
ICAgICAgICAqIFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlUGx1Z2luKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwOgorICAgICAgICAoUVdLUGFnZVByaXZhdGU6
OnNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0
L3F3a3BhZ2VfcC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpwbHVnaW5Qcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9M
YXVuY2gpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZENyZWF0ZVdl
YlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
UHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2VuZENvbXBsZXhUZXh0SW5wdXRUb1Bs
dWdpbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2d0
ay9XZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6c2V0Q29tcGxleFRleHRJ
bnB1dEVuYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViVmlldy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6
OnNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3Mvd2luL1dl
YlZpZXcuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQ
bHVnaW4uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvZ3RrL05ldHNj
YXBlUGx1Z2luR3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW46OnNlbmRD
b21wbGV4VGV4dElucHV0KToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW46OnBsdWdp
bkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvcXQvTmV0c2NhcGVQbHVnaW5RdC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHNjYXBlUGx1Z2luOjpzZW5kQ29tcGxleFRleHRJbnB1dCk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHNjYXBlUGx1Z2luOjpwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3dpbi9OZXRzY2FwZVBsdWdpbldpbi5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpzZW5kQ29tcGxleFRleHRJbnB1dCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpwbHVnaW5Db21wbGV4VGV4dElucHV0
SWRlbnRpZmllcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9sbGVyLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6Z2V0UGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb3h5OjpzZXRDb21wbGV4VGV4dElu
cHV0RW5hYmxlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5Lmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjphY2Nlc3NpYmlsaXR5UG9zaXRpb24pOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9xdC9XZWJQYWdlUXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpwZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9yS2V5RXZlbnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpzZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpzZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKToKKwogMjAxMS0wMy0wNyAgRGFt
aWFuIEthbGV0YSAgPGRrYWxldGFAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFu
ZGVycyBDYXJsc3Nvbi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2lu
Q29udHJvbGxlclByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Q
cm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAJKHJldmlzaW9uIDgwNTIzKQorKysgU291
cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNjQsMTAgKzI2NCwxMiBAQCB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94
eTo6c2V0Q29tcGxleFRlCiAgICAgbV9jb25uZWN0aW9uLT5jb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OlBsdWdpblByb3h5OjpTZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZChjb21wbGV4VGV4
dElucHV0RW5hYmxlZCksIG1fcGx1Z2luSW5zdGFuY2VJRCk7CiB9CiAKKyNpZiBQTEFURk9STShN
QUMpCiBtYWNoX3BvcnRfdCBQbHVnaW5Db250cm9sbGVyUHJveHk6OmNvbXBvc2l0aW5nUmVuZGVy
U2VydmVyUG9ydCgpCiB7CiAgICAgcmV0dXJuIFBsdWdpblByb2Nlc3M6OnNoYXJlZCgpLmNvbXBv
c2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpOwogfQorI2VuZGlmCiAKIFN0cmluZyBQbHVnaW5Db250
cm9sbGVyUHJveHk6OnByb3hpZXNGb3JVUkwoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiB7CkBA
IC00NzgsMTQgKzQ4MCwxMyBAQCB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6d2luZG93Vmlz
aWJpCiB7CiAgICAgbV9wbHVnaW4tPndpbmRvd1Zpc2liaWxpdHlDaGFuZ2VkKGlzVmlzaWJsZSk7
CiB9CisjZW5kaWYKIAogdm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OnNlbmRDb21wbGV4VGV4
dElucHV0KGNvbnN0IFN0cmluZyYgdGV4dElucHV0KQogewogICAgIG1fcGx1Z2luLT5zZW5kQ29t
cGxleFRleHRJbnB1dCh0ZXh0SW5wdXQpOwogfQogCi0jZW5kaWYKLQogdm9pZCBQbHVnaW5Db250
cm9sbGVyUHJveHk6OnByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChib29sIGlzUHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZCkKIHsKICAgICBtX3BsdWdpbi0+cHJpdmF0ZUJyb3dzaW5nU3RhdGVDaGFu
Z2VkKGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmgJKHJldmlzaW9uIDgw
NTIzKQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJv
eHkuaAkod29ya2luZyBjb3B5KQpAQCAtOTAsOCArOTAsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgYm9vbCBpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCk7CiAgICAgdmlydHVhbCB2
b2lkIHBsdWdpblByb2Nlc3NDcmFzaGVkKCk7CiAKLSNpZiBQTEFURk9STShNQUMpCiAgICAgdmly
dHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKGJvb2wpOworI2lmIFBMQVRGT1JN
KE1BQykKICAgICB2aXJ0dWFsIG1hY2hfcG9ydF90IGNvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9y
dCgpOwogI2VuZGlmCiAKQEAgLTEzMCw4ICsxMzAsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgd2lu
ZG93Rm9jdXNDaGFuZ2VkKGJvb2wpOwogICAgIHZvaWQgd2luZG93QW5kVmlld0ZyYW1lc0NoYW5n
ZWQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVz
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKTsK
ICAgICB2b2lkIHdpbmRvd1Zpc2liaWxpdHlDaGFuZ2VkKGJvb2wpOwotICAgIHZvaWQgc2VuZENv
bXBsZXhUZXh0SW5wdXQoY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpOwogI2VuZGlmCisgICAgdm9p
ZCBzZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CiAKICAgICB2
b2lkIHByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChib29sKTsKIApAQCAtMTcyLDEwICsxNzIs
MTAgQEAgcHJpdmF0ZToKICAgICAvLyBXaGV0aGVyIHRoZSBwbHVnLWluIGhhcyBjYW5jZWxlZCB0
aGUgbWFudWFsIHN0cmVhbSBsb2FkLgogICAgIGJvb2wgbV9wbHVnaW5DYW5jZWxlZE1hbnVhbFN0
cmVhbUxvYWQ7CiAKLSNpZiBQTEFURk9STShNQUMpCiAgICAgLy8gV2hldGhlciBjb21wbGV4IHRl
eHQgaW5wdXQgaXMgZW5hYmxlZCBmb3IgdGhpcyBwbHVnLWluLgogICAgIGJvb2wgbV9pc0NvbXBs
ZXhUZXh0SW5wdXRFbmFibGVkOwogCisjaWYgUExBVEZPUk0oTUFDKQogICAgIC8vIEZvciBDQSBw
bHVnLWlucywgdGhpcyBob2xkcyB0aGUgaW5mb3JtYXRpb24gbmVlZGVkIHRvIGV4cG9ydCB0aGUg
bGF5ZXIgaGllcmFyY2h5IHRvIHRoZSBVSSBwcm9jZXNzLgogICAgIFJldGFpblB0cjxXS0NBUmVt
b3RlTGF5ZXJDbGllbnRSZWY+IG1fcmVtb3RlTGF5ZXJDbGllbnQ7CiAjZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAkocmV2aXNp
b24gODA1MjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3Mu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBACiAjaWYgRU5BQkxFKFBMVUdJTl9Q
Uk9DRVNTKQogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJNYWNoUG9y
dC5oIgogI2luY2x1ZGUgIk5ldHNjYXBlUGx1Z2luTW9kdWxlLmgiCiAjaW5jbHVkZSAiUGx1Z2lu
UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgiCkBAIC0xMjUsMjUgKzEyNCw2IEBAIHZvaWQgUGx1Z2luUHJvY2Vzczo6aW5p
dGlhbGl6ZVBsdWdpblByb2MKICAgICBwbGF0Zm9ybUluaXRpYWxpemUocGFyYW1ldGVycyk7CiB9
CiAKLXZvaWQgUGx1Z2luUHJvY2Vzczo6Y3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQotewot
ICAgIC8vIEZJWE1FOiBUaGlzIGlzIHBsYXRmb3JtIHNwZWNpZmljIQotCi0gICAgLy8gQ3JlYXRl
IHRoZSBsaXN0ZW5pbmcgcG9ydC4KLSAgICBtYWNoX3BvcnRfdCBsaXN0ZW5pbmdQb3J0OwotICAg
IG1hY2hfcG9ydF9hbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBNQUNIX1BPUlRfUklHSFRfUkVD
RUlWRSwgJmxpc3RlbmluZ1BvcnQpOwotCi0gICAgLy8gQ3JlYXRlIGEgbGlzdGVuaW5nIGNvbm5l
Y3Rpb24uCi0gICAgUmVmUHRyPFdlYlByb2Nlc3NDb25uZWN0aW9uPiBjb25uZWN0aW9uID0gV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShsaXN0ZW5pbmdQb3J0KTsKLSAgICBtX3dlYlByb2Nl
c3NDb25uZWN0aW9ucy5hcHBlbmQoY29ubmVjdGlvbi5yZWxlYXNlKCkpOwotCi0gICAgQ29yZUlQ
Qzo6TWFjaFBvcnQgY2xpZW50UG9ydChsaXN0ZW5pbmdQb3J0LCBNQUNIX01TR19UWVBFX01BS0Vf
U0VORCk7Ci0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpQbHVnaW5Qcm9jZXNzUHJv
eHk6OkRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKGNsaWVudFBvcnQpLCAwKTsKLQotICAg
IC8vIFN0b3AgdGhlIHNodXRkb3duIHRpbWVyLgotICAgIG1fc2h1dGRvd25UaW1lci5zdG9wKCk7
Ci19Ci0KIHZvaWQgUGx1Z2luUHJvY2Vzczo6Z2V0U2l0ZXNXaXRoRGF0YSh1aW50NjRfdCBjYWxs
YmFja0lEKQogewogICAgIFZlY3RvcjxTdHJpbmc+IHNpdGVzOwpJbmRleDogU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAJKHJl
dmlzaW9uIDgwNTIzKQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2NywxMCArMTY3LDEyIEBAIHZvaWQg
V2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZVBsdWdpbigKICAgICAvLyBOb3cgdHJ5IHRvIGlu
aXRpYWxpemUgdGhlIHBsdWctaW4uCiAgICAgcmVzdWx0ID0gcGx1Z2luQ29udHJvbGxlclByb3h5
UHRyLT5pbml0aWFsaXplKHBhcmFtZXRlcnMpOwogCisjaWYgUExBVEZPUk0oTUFDKQogICAgIGlm
IChyZXN1bHQpIHsKICAgICAgICAgcmVtb3RlTGF5ZXJDbGllbnRJRCA9IHBsdWdpbkNvbnRyb2xs
ZXJQcm94eVB0ci0+cmVtb3RlTGF5ZXJDbGllbnRJRCgpOwogICAgICAgICByZXR1cm47CiAgICAg
fQorI2VuZGlmCiAKICAgICAvLyBXZSBmYWlsZWQgdG8gaW5pdGlhbGl6ZSwgcmVtb3ZlIHRoZSBw
bHVnLWluIGNvbnRyb2xsZXIuIFRoaXMgY291bGQgY2F1c2UgdXMgdG8gYmUgZGVsZXRlZC4KICAg
ICByZW1vdmVQbHVnaW5Db250cm9sbGVyUHJveHkocGx1Z2luQ29udHJvbGxlclByb3h5UHRyKTsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2lu
UHJvY2Vzc01hYy5tbQkocmV2aXNpb24gODA1MjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Q
cm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICsz
MSw3IEBACiAvLyBGSVhNRSAoV2ViS2l0MikgPHJkYXI6Ly9wcm9ibGVtLzg3Mjg4NjA+IFdlYktp
dDIgbmVlZHMgdG8gYmUgbG9jYWxpemVkCiAjZGVmaW5lIFVJX1NUUklORyhfX3N0ciwgX19kZXNj
KSBbTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhTdHJpbmc6X19zdHJdCiAKKyNpbmNsdWRlICJNYWNo
UG9ydC5oIgogI2ltcG9ydCAiTmV0c2NhcGVQbHVnaW4uaCIKICNpbXBvcnQgIlBsdWdpblByb2Nl
c3NTaGltLmgiCiAjaW1wb3J0ICJQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCkBA
IC0xMDMsNiArMTA0LDIzIEBAIHZvaWQgUGx1Z2luUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXpl
KGMKICAgICBXS1NldFZpc2libGVBcHBsaWNhdGlvbk5hbWUoKENGU3RyaW5nUmVmKWFwcGxpY2F0
aW9uTmFtZSk7CiB9CiAKK3ZvaWQgUGx1Z2luUHJvY2Vzczo6Y3JlYXRlV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24oKQoreworICAgIC8vIENyZWF0ZSB0aGUgbGlzdGVuaW5nIHBvcnQuCisgICAgbWFjaF9w
b3J0X3QgbGlzdGVuaW5nUG9ydDsKKyAgICBtYWNoX3BvcnRfYWxsb2NhdGUobWFjaF90YXNrX3Nl
bGYoKSwgTUFDSF9QT1JUX1JJR0hUX1JFQ0VJVkUsICZsaXN0ZW5pbmdQb3J0KTsKKworICAgIC8v
IENyZWF0ZSBhIGxpc3RlbmluZyBjb25uZWN0aW9uLgorICAgIFJlZlB0cjxXZWJQcm9jZXNzQ29u
bmVjdGlvbj4gY29ubmVjdGlvbiA9IFdlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUobGlzdGVu
aW5nUG9ydCk7CisgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMuYXBwZW5kKGNvbm5lY3Rpb24u
cmVsZWFzZSgpKTsKKworICAgIENvcmVJUEM6Ok1hY2hQb3J0IGNsaWVudFBvcnQobGlzdGVuaW5n
UG9ydCwgTUFDSF9NU0dfVFlQRV9NQUtFX1NFTkQpOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChN
ZXNzYWdlczo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpEaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlv
bihjbGllbnRQb3J0KSwgMCk7CisKKyAgICAvLyBTdG9wIHRoZSBzaHV0ZG93biB0aW1lci4KKyAg
ICBtX3NodXRkb3duVGltZXIuc3RvcCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAog
I2VuZGlmIC8vIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1Bs
dWdpblByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc1F0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nlc3NRdC5jcHAJKHJldmlzaW9uIDgw
NTIzKQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzUXQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSwxMSBAQCB2b2lkIFBsdWdpblByb2Nlc3M6
OnBsYXRmb3JtSW5pdGlhbGl6ZShjCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBQ
bHVnaW5Qcm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbigpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFC
TEUoUExVR0lOX1BST0NFU1MpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNs
aWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50
LmgJKHJldmlzaW9uIDgwNTIzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTI0LDggKzEyNCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIEhXTkQgbmF0aXZlV2luZG93KCkgPSAwOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMp
CiAgICAgdmlydHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKHVpbnQ2NF90IHBs
dWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBib29sIGNvbXBsZXhUZXh0SW5wdXRFbmFi
bGVkKSA9IDA7CisjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgdm9pZCBzZXRBdXRvZGlz
cGxheShib29sKSA9IDA7CiAgICAgdmlydHVhbCBDR0NvbnRleHRSZWYgY29udGFpbmluZ1dpbmRv
d0dyYXBoaWNzQ29udGV4dCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybURpY3Rp
b25hcnlMb29rdXAoY29uc3QgU3RyaW5nJiwgZG91YmxlIHNjYWxlRmFjdG9yLCBjb25zdCBEaWN0
aW9uYXJ5UG9wdXBJbmZvJikgPSAwOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDgwNTIzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMTYsNyArMjAxNiw2IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpzZWxlY3Rpb25TdGF0ZUNoYW5nZWQKICAgICBtX3NlbGVjdGlv
blN0YXRlID0gc2VsZWN0aW9uU3RhdGU7CiB9CiAKLSNpZiBQTEFURk9STShNQUMpCiAvLyBDb21w
bGV4IHRleHQgaW5wdXQgc3VwcG9ydCBmb3IgcGx1Zy1pbnMuCiB2b2lkIFdlYlBhZ2VQcm94eTo6
c2VuZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbih1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElu
cHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpCiB7CkBAIC0yMDI1LDcgKzIw
MjQsNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2VuZENvbXBsZXhUZXh0SW5wdXRUCiAgICAgCiAg
ICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kQ29tcGxleFRleHRJbnB1
dFRvUGx1Z2luKHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCB0ZXh0SW5wdXQpLCBt
X3BhZ2VJRCk7CiB9Ci0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikKIHZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRDaGFuZ2VDb21wb3NpdGlvblNlbGVjdGlvbihib29sIGhhc0NvbXBvc2l0aW9uKQpA
QCAtMjc0OCwxMiArMjc0NiwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZGlu
Z0RhdGFGCiAgICAgbV9wYWdlQ2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbVJl
cHJlc2VudGF0aW9uKHN1Z2dlc3RlZEZpbGVuYW1lLCBkYXRhUmVmZXJlbmNlKTsKIH0KIAotI2lm
IFBMQVRGT1JNKE1BQykKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRDb21wbGV4VGV4dElucHV0RW5h
YmxlZCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgYm9vbCBjb21w
bGV4VGV4dElucHV0RW5hYmxlZCkKIHsKICAgICBtX3BhZ2VDbGllbnQtPnNldENvbXBsZXhUZXh0
SW5wdXRFbmFibGVkKHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBjb21wbGV4VGV4
dElucHV0RW5hYmxlZCk7CiB9CiAKKyNpZiBQTEFURk9STShNQUMpCiB2b2lkIFdlYlBhZ2VQcm94
eTo6c2V0QXV0b2Rpc3BsYXkoYm9vbCBuZXdTdGF0ZSkKIHsKICAgICBtX3BhZ2VDbGllbnQtPnNl
dEF1dG9kaXNwbGF5KG5ld1N0YXRlKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgJKHJldmlzaW9uIDgwNTIzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTgsOSArMjU4LDExIEBAIHB1Ymxp
YzoKICAgICB2b2lkIGdldE1hcmtlZFJhbmdlKHVpbnQ2NF90JiBsb2NhdGlvbiwgdWludDY0X3Qm
IGxlbmd0aCk7CiAgICAgdWludDY0X3QgY2hhcmFjdGVySW5kZXhGb3JQb2ludChjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCk7CiAgICAgV2ViQ29yZTo6SW50UmVjdCBmaXJzdFJlY3RGb3JDaGFyYWN0
ZXJSYW5nZSh1aW50NjRfdCwgdWludDY0X3QpOwotICAgIHZvaWQgc2VuZENvbXBsZXhUZXh0SW5w
dXRUb1BsdWdpbih1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiB0ZXh0SW5wdXQpOwogICAgIENHQ29udGV4dFJlZiBjb250YWluaW5nV2luZG93
R3JhcGhpY3NDb250ZXh0KCk7CiAjZW5kaWYKKworICAgIHZvaWQgc2VuZENvbXBsZXhUZXh0SW5w
dXRUb1BsdWdpbih1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiB0ZXh0SW5wdXQpOworCiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHZvaWQgZGlk
Q2hhbmdlQ29tcG9zaXRpb25TZWxlY3Rpb24oYm9vbCk7CiAgICAgdm9pZCBjb25maXJtQ29tcG9z
aXRpb24oY29uc3QgU3RyaW5nJik7CkBAIC02MzEsOSArNjMzLDcgQEAgcHJpdmF0ZToKIAogICAg
IHZvaWQgZGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21SZXByZXNlbnRhdGlvbihjb25zdCBT
dHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lLCBjb25zdCBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlJik7
CiAKLSNpZiBQTEFURk9STShNQUMpCiAgICAgdm9pZCBzZXRDb21wbGV4VGV4dElucHV0RW5hYmxl
ZCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgYm9vbCBjb21wbGV4
VGV4dElucHV0RW5hYmxlZCk7Ci0jZW5kaWYKIAogICAgIHN0YXRpYyBTdHJpbmcgc3RhbmRhcmRV
c2VyQWdlbnQoY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvbk5hbWUgPSBTdHJpbmcoKSk7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgkocmV2aXNpb24gODA1MjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xNzgsMTAgKzE3OCw4IEBAIG1l
c3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgIyBHZW9sb2NhdGlvbiBtZXNzYWdlcwogICAg
IFJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlv
bklELCB1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQogCi0j
aWYgUExBVEZPUk0oTUFDKQogICAgICMgUGx1Zy1pbiBjb21wbGV4IHRleHQgaW5wdXQgc3VwcG9y
dCBtZXNzYWdlcwogICAgIFNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKHVpbnQ2NF90IHBsdWdp
bkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBib29sIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVk
KQotI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgIyBTcGVlY2ggbWVzc2FnZXMKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcAkocmV2aXNp
b24gODA1MjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNzAsNiArMjcwLDEzIEBAIHZvaWQgUVdLUGFnZVByaXZhdGU6
OnBhaW50KFFQYWludGVyKiBwYWkKICAgICAgICAgcGFpbnRlci0+ZmlsbFJlY3QoYXJlYSwgUXQ6
OndoaXRlKTsKIH0KIAordm9pZAorUVdLUGFnZVByaXZhdGU6OnNldENvbXBsZXhUZXh0SW5wdXRF
bmFibGVkKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY29tcGxleFRleHRJbnB1
dEVuYWJsZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogdm9pZCBRV0tQYWdlUHJp
dmF0ZTo6a2V5UHJlc3NFdmVudChRS2V5RXZlbnQqIGV2KQogewogICAgIHBhZ2UtPmhhbmRsZUtl
eWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChldikpOwpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlX3AuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2VfcC5oCShyZXZpc2lvbiA4MDUyMykKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZV9wLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTg5LDYgKzg5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgZG91YmxlIGN1c3RvbVJl
cHJlc2VudGF0aW9uWm9vbUZhY3RvcigpIHsgcmV0dXJuIDE7IH0KICAgICB2aXJ0dWFsIHZvaWQg
c2V0Q3VzdG9tUmVwcmVzZW50YXRpb25ab29tRmFjdG9yKGRvdWJsZSkgeyB9CiAgICAgdmlydHVh
bCB2b2lkIGRpZENoYW5nZVNjcm9sbGJhcnNGb3JNYWluRnJhbWUoKSBjb25zdCB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQodWludDY0X3QgcGx1Z2luQ29t
cGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgY29tcGxleFRleHRJbnB1dEVuYWJsZWQpOwog
CiAgICAgdmlydHVhbCB2b2lkIGZsYXNoQmFja2luZ1N0b3JlVXBkYXRlcyhjb25zdCBWZWN0b3I8
V2ViQ29yZTo6SW50UmVjdD4mIHVwZGF0ZVJlY3RzKTsKIApJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCShy
ZXZpc2lvbiA4MDUyMykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb2Nlc3NQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDkgQEAKIAogI2lm
IEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKIAorI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJN
YWNoUG9ydC5oIgorI2VuZGlmCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUGx1
Z2luUHJvY2Vzc01lc3NhZ2VzLmgiCkBAIC0xMzAsOCArMTMyLDExIEBAIHZvaWQgUGx1Z2luUHJv
Y2Vzc1Byb3h5OjpwbHVnaW5Qcm9jZXNzQ3IKICAgICAgICAgQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyKiByZXBseSA9IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmZpcnN0KCkuc2Vjb25kOwog
ICAgICAgICBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5yZW1vdmVGaXJzdCgpOwogCi0gICAg
ICAgIC8vIEZJWE1FOiBUaGlzIGlzIE1hYyBzcGVjaWZpYy4KKyNpZiBQTEFURk9STShNQUMpCiAg
ICAgICAgIHJlcGx5LT5lbmNvZGUoQ29yZUlQQzo6TWFjaFBvcnQoMCwgTUFDSF9NU0dfVFlQRV9N
T1ZFX1NFTkQpKTsKKyNlbHNlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlm
CiAgICAgICAgIHJlcGx5V2ViUHJvY2Vzc1Byb3h5LT5jb25uZWN0aW9uKCktPnNlbmRTeW5jUmVw
bHkocmVwbHkpOwogICAgIH0KIApAQCAtMTk4LDYgKzIwMyw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vz
c1Byb3h5OjpkaWRGaW5pc2hMYXVuY2gKICAgICBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVz
dHMgPSAwOwogfQogCisjaWYgUExBVEZPUk0oTUFDKQogdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6
OmRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IENvcmVJUEM6Ok1hY2hQb3J0JiBt
YWNoUG9ydCkKIHsKICAgICBBU1NFUlQoIW1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmlzRW1w
dHkoKSk7CkBAIC0yMDcsMTAgKzIxMywxMSBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6ZGlk
Q3JlYXRlV2ViUHJvCiAgICAgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiByZXBseSA9IG1fcGVu
ZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmZpcnN0KCkuc2Vjb25kOwogICAgIG1fcGVuZGluZ0Nvbm5l
Y3Rpb25SZXBsaWVzLnJlbW92ZUZpcnN0KCk7CiAKLSAgICAvLyBGSVhNRTogVGhpcyBpcyBNYWMg
c3BlY2lmaWMuCiAgICAgcmVwbHktPmVuY29kZShDb3JlSVBDOjpNYWNoUG9ydChtYWNoUG9ydC5w
b3J0KCksIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKSk7CisKICAgICByZXBseVdlYlByb2Nlc3NQ
cm94eS0+Y29ubmVjdGlvbigpLT5zZW5kU3luY1JlcGx5KHJlcGx5KTsKIH0KKyNlbmRpZgogCiB2
b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6ZGlkR2V0U2l0ZXNXaXRoRGF0YShjb25zdCBWZWN0b3I8
U3RyaW5nPiYgc2l0ZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaAko
cmV2aXNpb24gODA1MjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtNzcsNyArNzcsOSBAQCBwcml2YXRl
OgogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycwogICAgIHZvaWQgZGlkUmVjZWl2ZVBsdWdpblBy
b2Nlc3NQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisjaWYgUExBVEZPUk0oTUFDKQogICAgIHZv
aWQgZGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY29uc3QgQ29yZUlQQzo6TWFjaFBvcnQm
KTsKKyNlbmRpZgogICAgIHZvaWQgZGlkR2V0U2l0ZXNXaXRoRGF0YShjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgc2l0ZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgZGlkQ2xlYXJTaXRl
RGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKTsKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNz
YWdlcy5pbgkocmV2aXNpb24gODA1MjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTIz
LDggKzIzLDkgQEAKICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAKIG1lc3NhZ2VzIC0+IFBs
dWdpblByb2Nlc3NQcm94eSB7Ci0gICAgIyBGSVhNRTogVGhpcyBpcyBwbGF0Zm9ybSBzcGVjaWZp
YworI2lmIFBMQVRGT1JNKE1BQykKICAgICBEaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbihD
b3JlSVBDOjpNYWNoUG9ydCBjb25uZWN0aW9uSWRlbnRpZmllcikKKyNlbmRpZgogCiAgICAgRGlk
R2V0U2l0ZXNXaXRoRGF0YShWZWN0b3I8V1RGOjpTdHJpbmc+IHNpdGVzLCB1aW50NjRfdCBjYWxs
YmFja0lEKQogICAgIERpZENsZWFyU2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCkKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViVmlldy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJWaWV3LmNwcAkocmV2aXNpb24gODA1MjMp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlZpZXcuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yODgsNiArMjg4LDExIEBAIHZvaWQgV2ViVmlldzo6ZGlkQ2hhbmdlU2Nyb2xsYmFy
c0Zvck1haW4KIHsKIH0KIAordm9pZCBXZWJWaWV3OjpzZXRDb21wbGV4VGV4dElucHV0RW5hYmxl
ZCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgYm9vbCBjb21wbGV4
VGV4dElucHV0RW5hYmxlZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB2b2lkIFdl
YlZpZXc6OmZsYXNoQmFja2luZ1N0b3JlVXBkYXRlcyhjb25zdCBWZWN0b3I8SW50UmVjdD4mKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Z3RrL1dlYlZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3Rr
L1dlYlZpZXcuaAkocmV2aXNpb24gODA1MjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Z3RrL1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtOTksNiArOTksNyBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb250ZXh0TWVudVByb3h5PiBjcmVhdGVDb250ZXh0
TWVudVByb3h5KFdlYlBhZ2VQcm94eSopOwogICAgIHZpcnR1YWwgdm9pZCBzZXRGaW5kSW5kaWNh
dG9yKFBhc3NSZWZQdHI8RmluZEluZGljYXRvcj4sIGJvb2wgZmFkZU91dCk7CiAgICAgdmlydHVh
bCB2b2lkIGRpZENoYW5nZVNjcm9sbGJhcnNGb3JNYWluRnJhbWUoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQodWludDY0X3QgcGx1Z2luQ29tcGxl
eFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgY29tcGxleFRleHRJbnB1dEVuYWJsZWQpOwogICAg
IHZpcnR1YWwgdm9pZCBmbGFzaEJhY2tpbmdTdG9yZVVwZGF0ZXMoY29uc3QgVmVjdG9yPFdlYkNv
cmU6OkludFJlY3Q+JiB1cGRhdGVSZWN0cyk7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAJKHJl
dmlzaW9uIDgwNTIzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTE1Nyw2ICsxMTU3LDEwIEBAIHZvaWQgV2ViVmlldzo6ZGlk
Q2hhbmdlU2Nyb2xsYmFyc0Zvck1haW4KIHsKIH0KIAordm9pZCBXZWJWaWV3OjpzZXRDb21wbGV4
VGV4dElucHV0RW5hYmxlZCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmll
ciwgYm9vbCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCkKK3sKK30KKwogdm9pZCBXZWJWaWV3Ojpz
ZXRJc0luV2luZG93KGJvb2wgaXNJbldpbmRvdykKIHsKICAgICBtX2lzSW5XaW5kb3cgPSBpc0lu
V2luZG93OwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmgJKHJldmlz
aW9uIDgwNTIzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmgJKHdv
cmtpbmcgY29weSkKQEAgLTE2OCw2ICsxNjgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRDdXN0b21SZXByZXNlbnRhdGlvblpvb21GYWN0b3IoZG91YmxlKTsKICAgICBXZWJDb3Jl
OjpEcmFnT3BlcmF0aW9uIGtleVN0YXRlVG9EcmFnT3BlcmF0aW9uKERXT1JEIGdyZktleVN0YXRl
KSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsYmFyc0Zvck1haW5GcmFt
ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZCh1
aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgYm9vbCBjb21wbGV4VGV4
dElucHV0RW5hYmxlZCk7CiAKICAgICB2aXJ0dWFsIEhXTkQgbmF0aXZlV2luZG93KCk7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgJKHJldmlzaW9u
IDgwNTIzKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xNTQsMTMgKzE1NCwxMyBAQCBwdWJsaWM6CiAKICAgICAvLyBUZWxs
cyB0aGUgcGx1Zy1pbiBhYm91dCB3aW5kb3cgdmlzaWJpbGl0eSBjaGFuZ2VzLgogICAgIHZpcnR1
YWwgdm9pZCB3aW5kb3dWaXNpYmlsaXR5Q2hhbmdlZChib29sKSA9IDA7CisjZW5kaWYKIAogICAg
IC8vIEdldCB0aGUgcGVyIGNvbXBsZXggdGV4dCBpbnB1dCBpZGVudGlmaWVyLgogICAgIHZpcnR1
YWwgdWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIoKSBjb25zdCA9IDA7
CiAKICAgICAvLyBTZW5kIHRoZSBjb21wbGV4IHRleHQgaW5wdXQgdG8gdGhlIHBsdWctaW4uCiAg
ICAgdmlydHVhbCB2b2lkIHNlbmRDb21wbGV4VGV4dElucHV0KGNvbnN0IFN0cmluZyYgdGV4dElu
cHV0KSA9IDA7Ci0jZW5kaWYKIAogICAgIC8vIENhbGxlZCB3aGVuIHRoZSBwcml2YXRlIGJyb3dz
aW5nIHN0YXRlIGZvciB0aGlzIHBsdWctaW4gY2hhbmdlcy4KICAgICB2aXJ0dWFsIHZvaWQgcHJp
dmF0ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkKGJvb2wpID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkNvbnRyb2xsZXIuaAkocmV2aXNp
b24gODA1MjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luQ29u
dHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC04OCwxMCArODgsMTAgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgSFdORCBuYXRpdmVQYXJlbnRXaW5kb3coKSA9IDA7CiAjZW5kaWYKIAotI2lmIFBM
QVRGT1JNKE1BQykKICAgICAvLyBUZWxscyB0aGUgY29udHJvbGxlciB0aGF0IGNvbXBsZXggdGV4
dCBpbnB1dCBiZSBlbmFibGVkIG9yIGRpc2FibGVkIGZvciB0aGUgcGx1Zy1pbi4KICAgICB2aXJ0
dWFsIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQoYm9vbCkgPSAwOwogCisjaWYgUExB
VEZPUk0oTUFDKQogICAgIC8vIFJldHVybnMgdGhlIG1hY2ggcG9ydCBvZiB0aGUgY29tcG9zaXRp
bmcgcmVuZGVyIHNlcnZlci4KICAgICB2aXJ0dWFsIG1hY2hfcG9ydF90IGNvbXBvc2l0aW5nUmVu
ZGVyU2VydmVyUG9ydCgpID0gMDsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25u
ZWN0aW9uTWFuYWdlci5jcHAJKHJldmlzaW9uIDgwNTIzKQorKysgU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMwLDcgKzMwLDkgQEAKIAogI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5o
IgogI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2lmIFBMQVRGT1JNKE1BQykKICNpbmNs
dWRlICJNYWNoUG9ydC5oIgorI2VuZGlmCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b24uaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQ
cm9jZXNzLmgiCkBAIC02MSwxMSArNjMsMTYgQEAgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24qIFBs
dWdpblByb2Nlc3NDbwogICAgIH0KIAogICAgIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZp
ZXIgY29ubmVjdGlvbklkZW50aWZpZXI7CisjaWYgUExBVEZPUk0oTUFDKQogICAgIENvcmVJUEM6
Ok1hY2hQb3J0IGNvbm5lY3Rpb25NYWNoUG9ydDsKICAgICBpZiAoIVdlYlByb2Nlc3M6OnNoYXJl
ZCgpLmNvbm5lY3Rpb24oKS0+ZGVwcmVjYXRlZFNlbmRTeW5jKFdlYlByb2Nlc3NQcm94eUxlZ2Fj
eU1lc3NhZ2U6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uLCAwLCBDb3JlSVBDOjpJbihwbHVn
aW5QYXRoKSwgQ29yZUlQQzo6T3V0KGNvbm5lY3Rpb25NYWNoUG9ydCkpKQogICAgICAgICByZXR1
cm4gMDsKIAogICAgIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gY29ubmVjdGlvbk1hY2hQb3J0LnBv
cnQoKTsKKyNlbHNlCisgICAgY29ubmVjdGlvbklkZW50aWZpZXIgPSAwOworICAgIEFTU0VSVChj
b25uZWN0aW9uSWRlbnRpZmllcik7CisjZW5kaWYKICAgICBpZiAoIWNvbm5lY3Rpb25JZGVudGlm
aWVyKQogICAgICAgICByZXR1cm4gMDsKIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwCShyZXZpc2lvbiA4MDUyMykKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMzNyw2ICszMzcsNyBAQCB2b2lkIFBsdWdpblByb3h5Ojp3aW5kb3dWaXNpYmls
aXR5Q2hhbmdlCiB7CiAgICAgbV9jb25uZWN0aW9uLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6V2luZG93VmlzaWJpbGl0eUNoYW5nZWQoaXNWaXNp
YmxlKSwgbV9wbHVnaW5JbnN0YW5jZUlEKTsKIH0KKyNlbmRpZgogCiB1aW50NjRfdCBQbHVnaW5Q
cm94eTo6cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIoKSBjb25zdAogewpAQCAtMzQ4
LDggKzM0OSw2IEBAIHZvaWQgUGx1Z2luUHJveHk6OnNlbmRDb21wbGV4VGV4dElucHV0KGMKICAg
ICBtX2Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UGx1Z2luQ29udHJv
bGxlclByb3h5OjpTZW5kQ29tcGxleFRleHRJbnB1dCh0ZXh0SW5wdXQpLCBtX3BsdWdpbkluc3Rh
bmNlSUQpOwogfQogCi0jZW5kaWYKLQogdm9pZCBQbHVnaW5Qcm94eTo6cHJpdmF0ZUJyb3dzaW5n
U3RhdGVDaGFuZ2VkKGJvb2wgaXNQcml2YXRlQnJvd3NpbmdFbmFibGVkKQogewogICAgIG1fY29u
bmVjdGlvbi0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpQbHVnaW5Db250cm9sbGVyUHJv
eHk6OlByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChpc1ByaXZhdGVCcm93c2luZ0VuYWJsZWQp
LCBtX3BsdWdpbkluc3RhbmNlSUQpOwpAQCAtNDQwLDEyICs0MzksMTAgQEAgdm9pZCBQbHVnaW5Q
cm94eTo6c2V0U3RhdHVzYmFyVGV4dChjb25zdAogICAgIG1fcGx1Z2luQ29udHJvbGxlci0+c2V0
U3RhdHVzYmFyVGV4dChzdGF0dXNiYXJUZXh0KTsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykKIHZv
aWQgUGx1Z2luUHJveHk6OnNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKGJvb2wgY29tcGxleFRl
eHRJbnB1dEVuYWJsZWQpCiB7CiAgICAgbV9wbHVnaW5Db250cm9sbGVyLT5zZXRDb21wbGV4VGV4
dElucHV0RW5hYmxlZChjb21wbGV4VGV4dElucHV0RW5hYmxlZCk7CiB9Ci0jZW5kaWYKICAgICAK
IHZvaWQgUGx1Z2luUHJveHk6OnVwZGF0ZShjb25zdCBJbnRSZWN0JiBwYWludGVkUmVjdCkKIHsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94
eS5oCShyZXZpc2lvbiA4MDUyMykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC05Miw5ICs5Miw5IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIHdpbmRvd0ZvY3VzQ2hhbmdlZChib29sKTsKICAgICB2aXJ0dWFs
IHZvaWQgd2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
d2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2
aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2luZG93Vmlz
aWJpbGl0eUNoYW5nZWQoYm9vbCk7CisjZW5kaWYKICAgICB2aXJ0dWFsIHVpbnQ2NF90IHBsdWdp
bkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNl
bmRDb21wbGV4VGV4dElucHV0KGNvbnN0IFN0cmluZyYgdGV4dElucHV0KTsKLSNlbmRpZgogCiAg
ICAgdmlydHVhbCB2b2lkIHByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChib29sKTsKIApAQCAt
MTE0LDkgKzExNCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjYW5jZWxTdHJlYW1Mb2FkKHVpbnQ2
NF90IHN0cmVhbUlEKTsKICAgICB2b2lkIGNhbmNlbE1hbnVhbFN0cmVhbUxvYWQoKTsKICAgICB2
b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJiBzdGF0dXNiYXJUZXh0KTsKLSNpZiBQ
TEFURk9STShNQUMpCiAgICAgdm9pZCBzZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZChib29sKTsK
LSNlbmRpZgogCiAgICAgU3RyaW5nIG1fcGx1Z2luUGF0aDsKIApJbmRleDogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5tZXNzYWdl
cy5pbgkocmV2aXNpb24gODA1MjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTU2LDEwICs1Niw4
IEBAIG1lc3NhZ2VzIC0+IFBsdWdpblByb3h5IHsKICAgICAjIFNldCB0aGUgc3RhdHVzIGJhciB0
ZXh0LgogICAgIFNldFN0YXR1c2JhclRleHQoV1RGOjpTdHJpbmcgc3RhdHVzYmFyVGV4dCkKIAot
I2lmIFBMQVRGT1JNKE1BQykKICAgICAjIENoYW5nZSB3aGV0aGVyIGNvbXBsZXh0IHRleHQgaW5w
dXQgaXMgZW5hYmxlZCBmb3IgdGhpcyBwbHVnLWluLgogICAgIFNldENvbXBsZXhUZXh0SW5wdXRF
bmFibGVkKGJvb2wgY29tcGxleFRleHRJbnB1dEVuYWJsZWQpCi0jZW5kaWYKIH0KIAogI2VuZGlm
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZp
ZXcuY3BwCShyZXZpc2lvbiA4MDUyMykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5WaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzk3LDYgKzM5Nyw3IEBAIHZv
aWQgUGx1Z2luVmlldzo6d2luZG93QW5kVmlld0ZyYW1lc0NoYW4KIAogICAgIG1fcGx1Z2luLT53
aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZCh3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMs
IHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMpOwogfQorI2VuZGlmCiAKIGJvb2wgUGx1Z2lu
Vmlldzo6c2VuZENvbXBsZXhUZXh0SW5wdXQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1
dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdGV4dElucHV0KQogewpAQCAtNDEwLDggKzQxMSw2
IEBAIGJvb2wgUGx1Z2luVmlldzo6c2VuZENvbXBsZXhUZXh0SW5wdXQodWkKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotI2VuZGlmCi0KIHZvaWQgUGx1Z2luVmlldzo6aW5pdGlhbGl6ZVBsdWdpbigp
CiB7CiAgICAgaWYgKG1faXNJbml0aWFsaXplZCkKQEAgLTk4OSwxMiArOTg4LDEyIEBAIEhXTkQg
UGx1Z2luVmlldzo6bmF0aXZlUGFyZW50V2luZG93KCkKIH0KICNlbmRpZgogCi0jaWYgUExBVEZP
Uk0oTUFDKQogdm9pZCBQbHVnaW5WaWV3OjpzZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZChib29s
IGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKQogewogICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpTZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZChtX3BsdWdpbi0+cGx1
Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIoKSwgY29tcGxleFRleHRJbnB1dEVuYWJsZWQp
KTsKIH0KIAorI2lmIFBMQVRGT1JNKE1BQykKIG1hY2hfcG9ydF90IFBsdWdpblZpZXc6OmNvbXBv
c2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpCiB7CiAgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNoYXJl
ZCgpLmNvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpOwpJbmRleDogU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCShyZXZpc2lvbiA4MDUyMykKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTY0LDggKzY0LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0V2luZG93SXNWaXNp
YmxlKGJvb2wpOwogICAgIHZvaWQgc2V0V2luZG93SXNGb2N1c2VkKGJvb2wpOwogICAgIHZvaWQg
d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgd2luZG93
RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2aWV3RnJh
bWVJbldpbmRvd0Nvb3JkaW5hdGVzKTsKLSAgICBib29sIHNlbmRDb21wbGV4VGV4dElucHV0KHVp
bnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRl
eHRJbnB1dCk7CiAjZW5kaWYKKyAgICBib29sIHNlbmRDb21wbGV4VGV4dElucHV0KHVpbnQ2NF90
IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1
dCk7CiAKIHByaXZhdGU6CiAgICAgUGx1Z2luVmlldyhQYXNzUmVmUHRyPFdlYkNvcmU6OkhUTUxQ
bHVnSW5FbGVtZW50PiwgUGFzc1JlZlB0cjxQbHVnaW4+LCBjb25zdCBQbHVnaW46OlBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMpOwpAQCAtMTMyLDggKzEzMiw4IEBAIHByaXZhdGU6CiAjaWYgUExBVEZP
Uk0oV0lOKQogICAgIHZpcnR1YWwgSFdORCBuYXRpdmVQYXJlbnRXaW5kb3coKTsKICNlbmRpZgot
I2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dEVu
YWJsZWQoYm9vbCk7CisjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgbWFjaF9wb3J0X3Qg
Y29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCk7CiAjZW5kaWYKICAgICB2aXJ0dWFsIFN0cmlu
ZyBwcm94aWVzRm9yVVJMKGNvbnN0IFN0cmluZyYpOwpJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2lu
LmgJKHJldmlzaW9uIDgwNTIzKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3MiwxMCArMTcy
LDEwIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHdpbmRvd0ZvY3VzQ2hhbmdlZChib29s
KTsKICAgICB2aXJ0dWFsIHZvaWQgd2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzLCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKTsKICAgICB2aXJ0dWFs
IHZvaWQgd2luZG93VmlzaWJpbGl0eUNoYW5nZWQoYm9vbCk7CisjZW5kaWYKIAogICAgIHZpcnR1
YWwgdWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIHZvaWQgc2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3QgU3RyaW5nJiB0ZXh0SW5w
dXQpOwotI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgcHJpdmF0ZUJyb3dzaW5nU3RhdGVDaGFu
Z2VkKGJvb2wpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvZ3RrL05ldHNjYXBlUGx1Z2luR3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvZ3RrL05ldHNjYXBlUGx1Z2luR3RrLmNw
cAkocmV2aXNpb24gODA1MjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvZ3RrL05ldHNjYXBlUGx1Z2luR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAy
LDQgKzEwMiwxNiBAQCBib29sIE5ldHNjYXBlUGx1Z2luOjpwbGF0Zm9ybUhhbmRsZUtleWJvCiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIE5ldHNjYXBlUGx1Z2luOjpzZW5kQ29tcGxleFRl
eHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit1aW50NjRfdCBOZXRzY2FwZVBsdWdpbjo6cGx1Z2luQ29tcGxleFRleHRJbnB1dElk
ZW50aWZpZXIoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgLy8gSnVzdCBy
ZXR1cm4gYSBkdW1teSB2YWx1ZTsgdGhpcyBpcyBvbmx5IGNhbGxlZCBmb3IgaW4tcHJvY2VzcyBw
bHVnLWlucworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocmVpbnRlcnByZXRfY2Fz
dDx1aW50cHRyX3Q+KHRoaXMpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvcXQvTmV0c2NhcGVQbHVn
aW5RdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL3F0L05ldHNjYXBlUGx1Z2luUXQuY3BwCShyZXZpc2lvbiA4MDUyMykKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9xdC9OZXRzY2FwZVBsdWdp
blF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDQgKzEyMiwxNiBAQCBib29sIE5ldHNjYXBl
UGx1Z2luOjpwbGF0Zm9ybUhhbmRsZUtleWJvCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lk
IE5ldHNjYXBlUGx1Z2luOjpzZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJ
bnB1dCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit1aW50NjRfdCBOZXRzY2FwZVBs
dWdpbjo6cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIoKSBjb25zdAoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgLy8gSnVzdCByZXR1cm4gYSBkdW1teSB2YWx1ZTsgdGhpcyBp
cyBvbmx5IGNhbGxlZCBmb3IgaW4tcHJvY2VzcyBwbHVnLWlucworICAgIHJldHVybiBzdGF0aWNf
Y2FzdDx1aW50NjRfdD4ocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHRoaXMpKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvd2luL05ldHNjYXBlUGx1Z2luV2luLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvd2luL05ldHNjYXBlUGx1
Z2luV2luLmNwcAkocmV2aXNpb24gODA1MjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvd2luL05ldHNjYXBlUGx1Z2luV2luLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjkxLDQgKzI5MSwxNiBAQCBib29sIE5ldHNjYXBlUGx1Z2luOjpwbGF0Zm9ybUhhbmRs
ZUtleWJvCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIE5ldHNjYXBlUGx1Z2luOjpzZW5k
Q29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit1aW50NjRfdCBOZXRzY2FwZVBsdWdpbjo6cGx1Z2luQ29tcGxleFRl
eHRJbnB1dElkZW50aWZpZXIoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
Ly8gSnVzdCByZXR1cm4gYSBkdW1teSB2YWx1ZTsgdGhpcyBpcyBvbmx5IGNhbGxlZCBmb3IgaW4t
cHJvY2VzcyBwbHVnLWlucworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocmVpbnRl
cnByZXRfY2FzdDx1aW50cHRyX3Q+KHRoaXMpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CShyZXZpc2lvbiA4MDUyMykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA4LDkgKzEwOCwxMCBAQAogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCi0vLyBGSVhNRTogVGhpcyBpcyBjdXJyZW50bHkg
TWFjLXNwZWNpZmljIQorI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJNYWNoUG9ydC5oIgog
I2VuZGlmCisjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFFUKQogI2luY2x1ZGUgIkhpdFRlc3RSZXN1
bHQuaCIKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAkocmV2aXNpb24gODA1MjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yODYsMTMgKzI4NiwxMiBAQCBwdWJsaWM6CiAK
ICAgICBzdGF0aWMgdm9pZCBnZXRMb2NhdGlvbkFuZExlbmd0aEZyb21SYW5nZShXZWJDb3JlOjpS
YW5nZSosIHVpbnQ2NF90JiBsb2NhdGlvbiwgdWludDY0X3QmIGxlbmd0aCk7CiAKKyAgICB2b2lk
IHNlbmRDb21wbGV4VGV4dElucHV0VG9QbHVnaW4odWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJ
bnB1dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdGV4dElucHV0KTsKKwogI2lmIFBMQVRGT1JN
KE1BQykKICAgICB2b2lkIHJlZ2lzdGVyVUlQcm9jZXNzQWNjZXNzaWJpbGl0eVRva2Vucyhjb25z
dCBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlJiBlbGVtZW5Ub2tlbiwgY29uc3QgQ29yZUlQQzo6RGF0
YVJlZmVyZW5jZSYgd2luZG93VG9rZW4pOwogICAgIEFjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0
KiBhY2Nlc3NpYmlsaXR5UmVtb3RlT2JqZWN0KCk7CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgYWNj
ZXNzaWJpbGl0eVBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9hY2Nlc3NpYmlsaXR5UG9zaXRp
b247IH0gICAgCi0gICAgCi0gICAgdm9pZCBzZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHVp
bnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRl
eHRJbnB1dCk7Ci0KICAgICB2b2lkIGdldE1hcmtlZFJhbmdlKHVpbnQ2NF90JiBsb2NhdGlvbiwg
dWludDY0X3QmIGxlbmd0aCk7CiAgICAgdm9pZCBjaGFyYWN0ZXJJbmRleEZvclBvaW50KGNvbnN0
IFdlYkNvcmU6OkludFBvaW50IHBvaW50LCB1aW50NjRfdCYgcmVzdWx0KTsKICAgICB2b2lkIGZp
cnN0UmVjdEZvckNoYXJhY3RlclJhbmdlKHVpbnQ2NF90IGxvY2F0aW9uLCB1aW50NjRfdCBsZW5n
dGgsIFdlYkNvcmU6OkludFJlY3QmIHJlc3VsdFJlY3QpOwpJbmRleDogU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHJldmlz
aW9uIDgwNTIzKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTE3MCwxMCArMTcwLDEwIEBAIG1lc3NhZ2Vz
IC0+IFdlYlBhZ2UgewogICAgIFNldENhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChib29s
IGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCkKICAgICBTZXRDYW5SdW5Nb2RhbChib29s
IGNhblJ1bk1vZGFsKQogCi0jaWYgUExBVEZPUk0oTUFDKQogICAgICMgQ29tcGxleCB0ZXh0IGlu
cHV0IHN1cHBvcnQgZm9yIHBsdWctaW5zLgogICAgIFNlbmRDb21wbGV4VGV4dElucHV0VG9QbHVn
aW4odWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIFN0cmluZyB0ZXh0
SW5wdXQpCiAKKyNpZiBQTEFURk9STShNQUMpCiAgICAgU2V0V2luZG93SXNWaXNpYmxlKGJvb2wg
d2luZG93SXNWaXNpYmxlKQogICAgIFdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKFdlYkNvcmU6
OkludFJlY3Qgd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzLCBXZWJDb3JlOjpJbnRSZWN0
IHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMsIFdlYkNvcmU6OkludFBvaW50IGFjY2Vzc2li
aWxpdHlWaWV3Q29vcmRpbmF0ZXMpCiAgICAgR2V0TWFya2VkUmFuZ2UoKSAtPiAodWludDY0X3Qg
bG9jYXRpb24sIHVpbnQ2NF90IGxlbmd0aCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9xdC9XZWJQYWdlUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9XZWJQYWdlUXQuY3BwCShyZXZpc2lvbiA4MDUyMykKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9XZWJQYWdlUXQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Gb2N1c0NvbnRy
b2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9L
ZXlib2FyZEV2ZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgpAQCAtMjY1LDYgKzI2Niwx
MiBAQCBib29sIFdlYlBhZ2U6OnBlcmZvcm1EZWZhdWx0QmVoYXZpb3JGb3JLCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6c2VuZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbih1
aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0
ZXh0SW5wdXQpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudAorICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKIGJvb2wgV2ViUGFnZTo6cGxhdGZvcm1IYXNMb2NhbERhdGFGb3JVUkwoY29uc3Qg
V2ViQ29yZTo6S1VSTCYpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudApJbmRleDogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3Bw
CShyZXZpc2lvbiA4MDUyMykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93
aW4vV2ViUGFnZVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0Miw0ICszNDIsOSBAQCB2b2lk
IFdlYlBhZ2U6OmdldFNlbGVjdGVkVGV4dChTdHJpbmcmIHRlCiAgICAgdGV4dCA9IHNlbGVjdGVk
UmFuZ2UtPnRleHQoKTsKIH0KIAordm9pZCBXZWJQYWdlOjpzZW5kQ29tcGxleFRleHRJbnB1dFRv
UGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIHRleHRJbnB1dCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85029</attachid>
            <date>2011-03-08 00:10:11 -0800</date>
            <delta_ts>2011-03-08 11:19:50 -0800</delta_ts>
            <desc>Qt Xlib includes conflict fix, Fixed include order, QTBUG-54</desc>
            <filename>bug55719_part3.v1.diff</filename>
            <type>text/plain</type>
            <size>2921</size>
            <attacher name="Oleg Romashin (:romaxa)">romaxa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNTQ1KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDMtMDggIE9sZWcgUm9t
YXNoaW4gIDxyb21heGFAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1ha2UgUXQgcG9ydCBjb21waWxpbmcgd2l0aCBFTkFCTEVfUExV
R0lOX1BST0NFU1M9MSwgcGFydDMKKyAgICAgICAgU29sdmUgY29uZmxpY3Qgb2YgUXQgYW5kIFhs
aWIgaW5jbHVkZXMsIGEgYml0IGFnYWluc3Qgd2Via2l0IHN0bHllIChhbHBoYWJldGljYWwgb3Jk
ZXIpCisgICAgICAgIGluY2x1ZGVzIHJlb3JkZXJlZCBpbiBvcmRlciB0byBmb2xsb3cgc3VnZ2Vz
dGlvbnMgaW4gUVRCVUctNTQKKworICAgICAgICAqIFNoYXJlZC9QbHVnaW5zL05QSWRlbnRpZmll
ckRhdGEuY3BwOgorICAgICAgICAqIFNoYXJlZC9QbHVnaW5zL05QSWRlbnRpZmllckRhdGEuaDoK
KyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdFByb3h5LmNwcDoKKyAgICAgICAgKiBT
aGFyZWQvUGx1Z2lucy9OUFZhcmlhbnREYXRhLmg6CisKIDIwMTEtMDMtMDcgIERhbWlhbiBLYWxl
dGEgIDxka2FsZXRhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2Fy
bHNzb24uCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJE
YXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUElk
ZW50aWZpZXJEYXRhLmNwcAkocmV2aXNpb24gODA1NDUpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsMTMg
KzI0LDE0IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiTlBJZGVudGlmaWVyRGF0YS5oIgogCiAjaWYg
RU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogCiAjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCiAj
aW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgiCi0jaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JZGVudGlmaWVyUmVwLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1
Z2lucy9OUElkZW50aWZpZXJEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hh
cmVkL1BsdWdpbnMvTlBJZGVudGlmaWVyRGF0YS5oCShyZXZpc2lvbiA4MDU0NSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QSWRlbnRpZmllckRhdGEuaAkod29ya2luZyBjb3B5
KQpAQCAtMjgsOCArMjgsOCBAQAogCiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogCi0jaW5j
bHVkZSA8V2ViQ29yZS9ucHJ1bnRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9ucHJ1bnRpbWUuaD4KIAogbmFtZXNwYWNlIENvcmVJUEMgewog
ICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Q
bHVnaW5zL05QT2JqZWN0UHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9QbHVnaW5zL05QT2JqZWN0UHJveHkuY3BwCShyZXZpc2lvbiA4MDU0NSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QT2JqZWN0UHJveHkuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNCwxNyArMjQsMTggQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNs
dWRlICJBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIk5QVmFyaWFudERhdGEuaCIKICNpbmNs
dWRlICJOUE9iamVjdFByb3h5LmgiCiAKICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAKLSNp
bmNsdWRlICJBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNs
dWRlICJOUElkZW50aWZpZXJEYXRhLmgiCiAjaW5jbHVkZSAiTlBPYmplY3RNZXNzYWdlUmVjZWl2
ZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5QUmVtb3RlT2JqZWN0TWFwLmgiCiAjaW5jbHVkZSAi
TlBSdW50aW1lVXRpbGl0aWVzLmgiCi0jaW5jbHVkZSAiTlBWYXJpYW50RGF0YS5oIgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBW
YXJpYW50RGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5z
L05QVmFyaWFudERhdGEuaAkocmV2aXNpb24gODA1NDUpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvUGx1Z2lucy9OUFZhcmlhbnREYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcg
QEAKICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CisjdW5kZWYgQm9vbAogCiBuYW1lc3BhY2UgQ29yZUlQQyB7CiAgICAgY2xhc3MgQXJn
dW1lbnREZWNvZGVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85064</attachid>
            <date>2011-03-08 11:19:50 -0800</date>
            <delta_ts>2011-04-08 17:19:42 -0700</delta_ts>
            <desc>Use runtime_internal.h to solve X/Qt conflicts</desc>
            <filename>bug55719_part3.v2.diff</filename>
            <type>text/plain</type>
            <size>1554</size>
            <attacher name="Oleg Romashin (:romaxa)">romaxa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNTQ1KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDMtMDggIE9sZWcgUm9t
YXNoaW4gIDxyb21heGFAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1ha2UgUXQgcG9ydCBjb21waWxpbmcgd2l0aCBFTkFCTEVfUExV
R0lOX1BST0NFU1M9MSwgcGFydDMKKyAgICAgICAgU29sdmluZyBjb25mbGljdCBvZiBRdCBhbmQg
WGxpYiBpbmNsdWRlcworCisgICAgICAgICogU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlmaWVyRGF0
YS5jcHA6CisgICAgICAgICogU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlmaWVyRGF0YS5oOgorICAg
ICAgICAqIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0UHJveHkuY3BwOgorICAgICAgICAqIFNoYXJl
ZC9QbHVnaW5zL05QVmFyaWFudERhdGEuaDoKKwogMjAxMS0wMy0wNyAgRGFtaWFuIEthbGV0YSAg
PGRrYWxldGFAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nv
bi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QSWRlbnRpZmllckRhdGEu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUElkZW50aWZp
ZXJEYXRhLmgJKHJldmlzaW9uIDgwNTQ1KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdp
bnMvTlBJZGVudGlmaWVyRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAK
ICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAKLSNpbmNsdWRlIDxXZWJDb3JlL25wcnVudGlt
ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvbnBydW50aW1lX2ludGVybmFsLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdFByb3h5LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RQcm94eS5oCShyZXZpc2lvbiA4MDU0
NSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QT2JqZWN0UHJveHkuaAkod29y
a2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogCiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNT
KQogCi0jaW5jbHVkZSA8V2ViQ29yZS9ucHJ1bnRpbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL25w
cnVudGltZV9pbnRlcm5hbC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85403</attachid>
            <date>2011-03-10 16:10:10 -0800</date>
            <delta_ts>2011-03-10 16:36:37 -0800</delta_ts>
            <desc>Fixed according to recent NetscapePluginQt/Gtk -&gt; NetscapePluginX11 changes</desc>
            <filename>bug55719_part2.v3.diff</filename>
            <type>text/plain</type>
            <size>35116</size>
            <attacher name="Oleg Romashin (:romaxa)">romaxa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNzgyKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNzAgQEAKKzIwMTEtMDMtMTAgIE9sZWcgUm9t
YXNoaW4gIDxyb21heGFAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1ha2UgUXQgcG9ydCBjb21waWxpbmcgd2l0aCBFTkFCTEVfUExV
R0lOX1BST0NFU1M9MSwgcGFydDIKKyAgICAgICAgTWFrZSBDb21wbGV4VGV4dElucHV0IGNvbXBp
bGluZyBmb3IgUXQKKyAgICAgICAgQ292ZXIgd2l0aCBpZmRlZiBNYWNoUG9ydCByZWxhdGVkIGZ1
bmN0aW9uYWxpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU1NzE5CisKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6c2VuZENvbXBs
ZXhUZXh0SW5wdXQpOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclBy
b3h5Lmg6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6aW5pdGlhbGl6ZVBsdWdpblByb2Nlc3MpOgorICAg
ICAgICAqIFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlUGx1Z2luKToKKyAgICAgICAgKiBQ
bHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQ
bHVnaW5Qcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpQbHVn
aW5Qcm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogUGx1Z2lu
UHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzUXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Q
cm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9xdC9xd2twYWdlLmNwcDoKKyAgICAgICAgKFFXS1BhZ2VQcml2YXRlOjpzZXRDb21wbGV4
VGV4dElucHV0RW5hYmxlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlX3Au
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdp
blByb2Nlc3NQcm94eTo6cGx1Z2luUHJvY2Vzc0NyYXNoZWRPckZhaWxlZFRvTGF1bmNoKToKKyAg
ICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVXZWJQcm9jZXNzQ29u
bmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OnNlbmRDb21wbGV4VGV4dElucHV0VG9QbHVnaW4pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViVmlldy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OnNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVk
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYlZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3Mvd2luL1dlYlZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3OjpzZXRDb21wbGV4
VGV4dElucHV0RW5hYmxlZCk6CisgICAgICAgICogVUlQcm9jZXNzL3dpbi9XZWJWaWV3Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3dpbi9OZXRzY2FwZVBsdWdpbldp
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpzZW5kQ29tcGxleFRleHRJ
bnB1dCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpwbHVnaW5Db21wbGV4VGV4
dElucHV0SWRlbnRpZmllcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L3gxMS9OZXRzY2FwZVBsdWdpblgxMS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1
Z2luOjpzZW5kQ29tcGxleFRleHRJbnB1dCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1
Z2luOjpwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Db250cm9sbGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3ND
b25uZWN0aW9uTWFuYWdlcjo6Z2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAq
IFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBs
dWdpblByb3h5OjpzZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjph
Y2Nlc3NpYmlsaXR5UG9zaXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9xdC9XZWJQYWdl
UXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwZXJmb3JtRGVmYXVsdEJlaGF2aW9y
Rm9yS2V5RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZW5kQ29tcGxleFRleHRJ
bnB1dFRvUGx1Z2luKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VX
aW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZW5kQ29tcGxleFRleHRJbnB1dFRv
UGx1Z2luKToKKwogMjAxMS0wMy0xMCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IE1hcmsgUm93ZS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAJKHJldmlzaW9u
IDgwNzgwKQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVy
UHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjQsMTAgKzI2NCwxMiBAQCB2b2lkIFBsdWdp
bkNvbnRyb2xsZXJQcm94eTo6c2V0Q29tcGxleFRlCiAgICAgbV9jb25uZWN0aW9uLT5jb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBsdWdpblByb3h5OjpTZXRDb21wbGV4VGV4dElucHV0RW5h
YmxlZChjb21wbGV4VGV4dElucHV0RW5hYmxlZCksIG1fcGx1Z2luSW5zdGFuY2VJRCk7CiB9CiAK
KyNpZiBQTEFURk9STShNQUMpCiBtYWNoX3BvcnRfdCBQbHVnaW5Db250cm9sbGVyUHJveHk6OmNv
bXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpCiB7CiAgICAgcmV0dXJuIFBsdWdpblByb2Nlc3M6
OnNoYXJlZCgpLmNvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpOwogfQorI2VuZGlmCiAKIFN0
cmluZyBQbHVnaW5Db250cm9sbGVyUHJveHk6OnByb3hpZXNGb3JVUkwoY29uc3QgU3RyaW5nJiB1
cmxTdHJpbmcpCiB7CkBAIC00NzgsMTQgKzQ4MCwxMyBAQCB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQ
cm94eTo6d2luZG93VmlzaWJpCiB7CiAgICAgbV9wbHVnaW4tPndpbmRvd1Zpc2liaWxpdHlDaGFu
Z2VkKGlzVmlzaWJsZSk7CiB9CisjZW5kaWYKIAogdm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6
OnNlbmRDb21wbGV4VGV4dElucHV0KGNvbnN0IFN0cmluZyYgdGV4dElucHV0KQogewogICAgIG1f
cGx1Z2luLT5zZW5kQ29tcGxleFRleHRJbnB1dCh0ZXh0SW5wdXQpOwogfQogCi0jZW5kaWYKLQog
dm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OnByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChi
b29sIGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKIHsKICAgICBtX3BsdWdpbi0+cHJpdmF0ZUJy
b3dzaW5nU3RhdGVDaGFuZ2VkKGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5
LmgJKHJldmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVn
aW5Db250cm9sbGVyUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtOTAsOCArOTAsOCBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCk7
CiAgICAgdmlydHVhbCB2b2lkIHBsdWdpblByb2Nlc3NDcmFzaGVkKCk7CiAKLSNpZiBQTEFURk9S
TShNQUMpCiAgICAgdmlydHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKGJvb2wp
OworI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIG1hY2hfcG9ydF90IGNvbXBvc2l0aW5n
UmVuZGVyU2VydmVyUG9ydCgpOwogI2VuZGlmCiAKQEAgLTEzMCw4ICsxMzAsOCBAQCBwcml2YXRl
OgogICAgIHZvaWQgd2luZG93Rm9jdXNDaGFuZ2VkKGJvb2wpOwogICAgIHZvaWQgd2luZG93QW5k
Vmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgd2luZG93RnJhbWVJblNj
cmVlbkNvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2aWV3RnJhbWVJbldpbmRv
d0Nvb3JkaW5hdGVzKTsKICAgICB2b2lkIHdpbmRvd1Zpc2liaWxpdHlDaGFuZ2VkKGJvb2wpOwot
ICAgIHZvaWQgc2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpOwog
I2VuZGlmCisgICAgdm9pZCBzZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJ
bnB1dCk7CiAKICAgICB2b2lkIHByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChib29sKTsKIApA
QCAtMTcyLDEwICsxNzIsMTAgQEAgcHJpdmF0ZToKICAgICAvLyBXaGV0aGVyIHRoZSBwbHVnLWlu
IGhhcyBjYW5jZWxlZCB0aGUgbWFudWFsIHN0cmVhbSBsb2FkLgogICAgIGJvb2wgbV9wbHVnaW5D
YW5jZWxlZE1hbnVhbFN0cmVhbUxvYWQ7CiAKLSNpZiBQTEFURk9STShNQUMpCiAgICAgLy8gV2hl
dGhlciBjb21wbGV4IHRleHQgaW5wdXQgaXMgZW5hYmxlZCBmb3IgdGhpcyBwbHVnLWluLgogICAg
IGJvb2wgbV9pc0NvbXBsZXhUZXh0SW5wdXRFbmFibGVkOwogCisjaWYgUExBVEZPUk0oTUFDKQog
ICAgIC8vIEZvciBDQSBwbHVnLWlucywgdGhpcyBob2xkcyB0aGUgaW5mb3JtYXRpb24gbmVlZGVk
IHRvIGV4cG9ydCB0aGUgbGF5ZXIgaGllcmFyY2h5IHRvIHRoZSBVSSBwcm9jZXNzLgogICAgIFJl
dGFpblB0cjxXS0NBUmVtb3RlTGF5ZXJDbGllbnRSZWY+IG1fcmVtb3RlTGF5ZXJDbGllbnQ7CiAj
ZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9j
ZXNzLmNwcAkocmV2aXNpb24gODA3ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNz
L1BsdWdpblByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBACiAjaWYg
RU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLSNp
bmNsdWRlICJNYWNoUG9ydC5oIgogI2luY2x1ZGUgIk5ldHNjYXBlUGx1Z2luTW9kdWxlLmgiCiAj
aW5jbHVkZSAiUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJQbHVnaW5Q
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCkBAIC0xMjUsMjUgKzEyNCw2IEBAIHZvaWQgUGx1
Z2luUHJvY2Vzczo6aW5pdGlhbGl6ZVBsdWdpblByb2MKICAgICBwbGF0Zm9ybUluaXRpYWxpemUo
cGFyYW1ldGVycyk7CiB9CiAKLXZvaWQgUGx1Z2luUHJvY2Vzczo6Y3JlYXRlV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24oKQotewotICAgIC8vIEZJWE1FOiBUaGlzIGlzIHBsYXRmb3JtIHNwZWNpZmljIQot
Ci0gICAgLy8gQ3JlYXRlIHRoZSBsaXN0ZW5pbmcgcG9ydC4KLSAgICBtYWNoX3BvcnRfdCBsaXN0
ZW5pbmdQb3J0OwotICAgIG1hY2hfcG9ydF9hbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBNQUNI
X1BPUlRfUklHSFRfUkVDRUlWRSwgJmxpc3RlbmluZ1BvcnQpOwotCi0gICAgLy8gQ3JlYXRlIGEg
bGlzdGVuaW5nIGNvbm5lY3Rpb24uCi0gICAgUmVmUHRyPFdlYlByb2Nlc3NDb25uZWN0aW9uPiBj
b25uZWN0aW9uID0gV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShsaXN0ZW5pbmdQb3J0KTsK
LSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQoY29ubmVjdGlvbi5yZWxlYXNlKCkp
OwotCi0gICAgQ29yZUlQQzo6TWFjaFBvcnQgY2xpZW50UG9ydChsaXN0ZW5pbmdQb3J0LCBNQUNI
X01TR19UWVBFX01BS0VfU0VORCk7Ci0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpQ
bHVnaW5Qcm9jZXNzUHJveHk6OkRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKGNsaWVudFBv
cnQpLCAwKTsKLQotICAgIC8vIFN0b3AgdGhlIHNodXRkb3duIHRpbWVyLgotICAgIG1fc2h1dGRv
d25UaW1lci5zdG9wKCk7Ci19Ci0KIHZvaWQgUGx1Z2luUHJvY2Vzczo6Z2V0U2l0ZXNXaXRoRGF0
YSh1aW50NjRfdCBjYWxsYmFja0lEKQogewogICAgIFZlY3RvcjxTdHJpbmc+IHNpdGVzOwpJbmRl
eDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29u
bmVjdGlvbi5jcHAJKHJldmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2NywxMCAr
MTY3LDEyIEBAIHZvaWQgV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZVBsdWdpbigKICAgICAv
LyBOb3cgdHJ5IHRvIGluaXRpYWxpemUgdGhlIHBsdWctaW4uCiAgICAgcmVzdWx0ID0gcGx1Z2lu
Q29udHJvbGxlclByb3h5UHRyLT5pbml0aWFsaXplKHBhcmFtZXRlcnMpOwogCisjaWYgUExBVEZP
Uk0oTUFDKQogICAgIGlmIChyZXN1bHQpIHsKICAgICAgICAgcmVtb3RlTGF5ZXJDbGllbnRJRCA9
IHBsdWdpbkNvbnRyb2xsZXJQcm94eVB0ci0+cmVtb3RlTGF5ZXJDbGllbnRJRCgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQorI2VuZGlmCiAKICAgICAvLyBXZSBmYWlsZWQgdG8gaW5pdGlhbGl6
ZSwgcmVtb3ZlIHRoZSBwbHVnLWluIGNvbnRyb2xsZXIuIFRoaXMgY291bGQgY2F1c2UgdXMgdG8g
YmUgZGVsZXRlZC4KICAgICByZW1vdmVQbHVnaW5Db250cm9sbGVyUHJveHkocGx1Z2luQ29udHJv
bGxlclByb3h5UHRyKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1Bs
dWdpblByb2Nlc3NNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbQkocmV2aXNpb24gODA3ODApCisrKyBTb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0zMSw2ICszMSw3IEBACiAvLyBGSVhNRSAoV2ViS2l0MikgPHJkYXI6Ly9wcm9ibGVt
Lzg3Mjg4NjA+IFdlYktpdDIgbmVlZHMgdG8gYmUgbG9jYWxpemVkCiAjZGVmaW5lIFVJX1NUUklO
RyhfX3N0ciwgX19kZXNjKSBbTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhTdHJpbmc6X19zdHJdCiAK
KyNpbmNsdWRlICJNYWNoUG9ydC5oIgogI2ltcG9ydCAiTmV0c2NhcGVQbHVnaW4uaCIKICNpbXBv
cnQgIlBsdWdpblByb2Nlc3NTaGltLmgiCiAjaW1wb3J0ICJQbHVnaW5Qcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgiCkBAIC0xMDMsNiArMTA0LDIzIEBAIHZvaWQgUGx1Z2luUHJvY2Vzczo6cGxh
dGZvcm1Jbml0aWFsaXplKGMKICAgICBXS1NldFZpc2libGVBcHBsaWNhdGlvbk5hbWUoKENGU3Ry
aW5nUmVmKWFwcGxpY2F0aW9uTmFtZSk7CiB9CiAKK3ZvaWQgUGx1Z2luUHJvY2Vzczo6Y3JlYXRl
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQoreworICAgIC8vIENyZWF0ZSB0aGUgbGlzdGVuaW5nIHBv
cnQuCisgICAgbWFjaF9wb3J0X3QgbGlzdGVuaW5nUG9ydDsKKyAgICBtYWNoX3BvcnRfYWxsb2Nh
dGUobWFjaF90YXNrX3NlbGYoKSwgTUFDSF9QT1JUX1JJR0hUX1JFQ0VJVkUsICZsaXN0ZW5pbmdQ
b3J0KTsKKworICAgIC8vIENyZWF0ZSBhIGxpc3RlbmluZyBjb25uZWN0aW9uLgorICAgIFJlZlB0
cjxXZWJQcm9jZXNzQ29ubmVjdGlvbj4gY29ubmVjdGlvbiA9IFdlYlByb2Nlc3NDb25uZWN0aW9u
OjpjcmVhdGUobGlzdGVuaW5nUG9ydCk7CisgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMuYXBw
ZW5kKGNvbm5lY3Rpb24ucmVsZWFzZSgpKTsKKworICAgIENvcmVJUEM6Ok1hY2hQb3J0IGNsaWVu
dFBvcnQobGlzdGVuaW5nUG9ydCwgTUFDSF9NU0dfVFlQRV9NQUtFX1NFTkQpOworICAgIG1fY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpEaWRDcmVhdGVXZWJQ
cm9jZXNzQ29ubmVjdGlvbihjbGllbnRQb3J0KSwgMCk7CisKKyAgICAvLyBTdG9wIHRoZSBzaHV0
ZG93biB0aW1lci4KKyAgICBtX3NodXRkb3duVGltZXIuc3RvcCgpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc1F0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nlc3NRdC5j
cHAJKHJldmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9Q
bHVnaW5Qcm9jZXNzUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSwxMSBAQCB2b2lk
IFBsdWdpblByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZShjCiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKIH0KIAordm9pZCBQbHVnaW5Qcm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbigp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
ICNlbmRpZiAvLyBFTkFCTEUoUExVR0lOX1BST0NFU1MpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvUGFnZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QYWdlQ2xpZW50LmgJKHJldmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BhZ2VDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDggKzEyNiw4IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIEhXTkQgbmF0aXZlV2luZG93KCkgPSAwOwogI2VuZGlmCiAKLSNp
ZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRFbmFi
bGVkKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBib29sIGNvbXBs
ZXhUZXh0SW5wdXRFbmFibGVkKSA9IDA7CisjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwg
dm9pZCBzZXRBdXRvZGlzcGxheShib29sKSA9IDA7CiAgICAgdmlydHVhbCBDR0NvbnRleHRSZWYg
Y29udGFpbmluZ1dpbmRvd0dyYXBoaWNzQ29udGV4dCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgU3RyaW5nJiwgZG91YmxlIHNjYWxlRmFj
dG9yLCBjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJikgPSAwOwpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDgwNzgwKQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIw
NTEsNyArMjA1MSw2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZWxlY3Rpb25TdGF0ZUNoYW5nZWQK
ICAgICBtX3NlbGVjdGlvblN0YXRlID0gc2VsZWN0aW9uU3RhdGU7CiB9CiAKLSNpZiBQTEFURk9S
TShNQUMpCiAvLyBDb21wbGV4IHRleHQgaW5wdXQgc3VwcG9ydCBmb3IgcGx1Zy1pbnMuCiB2b2lk
IFdlYlBhZ2VQcm94eTo6c2VuZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbih1aW50NjRfdCBwbHVn
aW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpCiB7
CkBAIC0yMDYwLDcgKzIwNTksNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2VuZENvbXBsZXhUZXh0
SW5wdXRUCiAgICAgCiAgICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5k
Q29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVy
LCB0ZXh0SW5wdXQpLCBtX3BhZ2VJRCk7CiB9Ci0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikK
IHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VDb21wb3NpdGlvblNlbGVjdGlvbihib29sIGhh
c0NvbXBvc2l0aW9uKQpAQCAtMjgxNCwxMiArMjgxMiwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkRmluaXNoTG9hZGluZ0RhdGFGCiAgICAgbV9wYWdlQ2xpZW50LT5kaWRGaW5pc2hMb2FkaW5n
RGF0YUZvckN1c3RvbVJlcHJlc2VudGF0aW9uKHN1Z2dlc3RlZEZpbGVuYW1lLCBkYXRhUmVmZXJl
bmNlKTsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRDb21w
bGV4VGV4dElucHV0RW5hYmxlZCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRp
ZmllciwgYm9vbCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCkKIHsKICAgICBtX3BhZ2VDbGllbnQt
PnNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlm
aWVyLCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCk7CiB9CiAKKyNpZiBQTEFURk9STShNQUMpCiB2
b2lkIFdlYlBhZ2VQcm94eTo6c2V0QXV0b2Rpc3BsYXkoYm9vbCBuZXdTdGF0ZSkKIHsKICAgICBt
X3BhZ2VDbGllbnQtPnNldEF1dG9kaXNwbGF5KG5ld1N0YXRlKTsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNjMsOSAr
MjYzLDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGdldE1hcmtlZFJhbmdlKHVpbnQ2NF90JiBsb2Nh
dGlvbiwgdWludDY0X3QmIGxlbmd0aCk7CiAgICAgdWludDY0X3QgY2hhcmFjdGVySW5kZXhGb3JQ
b2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCk7CiAgICAgV2ViQ29yZTo6SW50UmVjdCBmaXJz
dFJlY3RGb3JDaGFyYWN0ZXJSYW5nZSh1aW50NjRfdCwgdWludDY0X3QpOwotICAgIHZvaWQgc2Vu
ZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbih1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpOwogICAgIENHQ29udGV4dFJlZiBj
b250YWluaW5nV2luZG93R3JhcGhpY3NDb250ZXh0KCk7CiAjZW5kaWYKKworICAgIHZvaWQgc2Vu
ZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbih1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpOworCiAjaWYgUExBVEZPUk0oV0lO
KQogICAgIHZvaWQgZGlkQ2hhbmdlQ29tcG9zaXRpb25TZWxlY3Rpb24oYm9vbCk7CiAgICAgdm9p
ZCBjb25maXJtQ29tcG9zaXRpb24oY29uc3QgU3RyaW5nJik7CkBAIC02MzksOSArNjQxLDcgQEAg
cHJpdmF0ZToKIAogICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21SZXByZXNl
bnRhdGlvbihjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lLCBjb25zdCBDb3JlSVBDOjpE
YXRhUmVmZXJlbmNlJik7CiAKLSNpZiBQTEFURk9STShNQUMpCiAgICAgdm9pZCBzZXRDb21wbGV4
VGV4dElucHV0RW5hYmxlZCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmll
ciwgYm9vbCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCk7Ci0jZW5kaWYKIAogICAgIHN0YXRpYyBT
dHJpbmcgc3RhbmRhcmRVc2VyQWdlbnQoY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvbk5hbWUgPSBT
dHJpbmcoKSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gODA3ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xODAs
MTAgKzE4MCw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgIyBHZW9sb2NhdGlv
biBtZXNzYWdlcwogICAgIFJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50
NjRfdCBnZW9sb2NhdGlvbklELCB1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmluZyBvcmlnaW5J
ZGVudGlmaWVyKQogCi0jaWYgUExBVEZPUk0oTUFDKQogICAgICMgUGx1Zy1pbiBjb21wbGV4IHRl
eHQgaW5wdXQgc3VwcG9ydCBtZXNzYWdlcwogICAgIFNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVk
KHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBib29sIGNvbXBsZXhU
ZXh0SW5wdXRFbmFibGVkKQotI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgIyBTcGVl
Y2ggbWVzc2FnZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFn
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tw
YWdlLmNwcAkocmV2aXNpb24gODA3ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3F3a3BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzUsNiArMjc1LDEzIEBAIHZvaWQg
UVdLUGFnZVByaXZhdGU6OnBhaW50KFFQYWludGVyKiBwYWkKICAgICAgICAgcGFpbnRlci0+Zmls
bFJlY3QoYXJlYSwgUXQ6OndoaXRlKTsKIH0KIAordm9pZAorUVdLUGFnZVByaXZhdGU6OnNldENv
bXBsZXhUZXh0SW5wdXRFbmFibGVkKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVu
dGlmaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wg
Y29tcGxleFRleHRJbnB1dEVuYWJsZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwog
dm9pZCBRV0tQYWdlUHJpdmF0ZTo6a2V5UHJlc3NFdmVudChRS2V5RXZlbnQqIGV2KQogewogICAg
IHBhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChldikpOwpJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlX3AuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2VfcC5oCShyZXZp
c2lvbiA4MDc4MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZV9w
LmgJKHdvcmtpbmcgY29weSkKQEAgLTkyLDYgKzkyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
ZG91YmxlIGN1c3RvbVJlcHJlc2VudGF0aW9uWm9vbUZhY3RvcigpIHsgcmV0dXJuIDE7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q3VzdG9tUmVwcmVzZW50YXRpb25ab29tRmFjdG9yKGRvdWJsZSkg
eyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVNjcm9sbGJhcnNGb3JNYWluRnJhbWUoKSBj
b25zdCB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQodWlu
dDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgY29tcGxleFRleHRJ
bnB1dEVuYWJsZWQpOwogCiAgICAgdmlydHVhbCB2b2lkIGZsYXNoQmFja2luZ1N0b3JlVXBkYXRl
cyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4mIHVwZGF0ZVJlY3RzKTsKIApJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzUHJveHkuY3BwCShyZXZpc2lvbiA4MDc4MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcg
KzI4LDkgQEAKIAogI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKIAorI2lmIFBMQVRGT1JNKE1B
QykKICNpbmNsdWRlICJNYWNoUG9ydC5oIgorI2VuZGlmCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NNYW5hZ2VyLmgi
CiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc01lc3NhZ2VzLmgiCkBAIC0xMzAsOCArMTMyLDExIEBA
IHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpwbHVnaW5Qcm9jZXNzQ3IKICAgICAgICAgQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyKiByZXBseSA9IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmZp
cnN0KCkuc2Vjb25kOwogICAgICAgICBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5yZW1vdmVG
aXJzdCgpOwogCi0gICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIE1hYyBzcGVjaWZpYy4KKyNpZiBQ
TEFURk9STShNQUMpCiAgICAgICAgIHJlcGx5LT5lbmNvZGUoQ29yZUlQQzo6TWFjaFBvcnQoMCwg
TUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpKTsKKyNlbHNlCisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworI2VuZGlmCiAgICAgICAgIHJlcGx5V2ViUHJvY2Vzc1Byb3h5LT5jb25uZWN0aW9u
KCktPnNlbmRTeW5jUmVwbHkocmVwbHkpOwogICAgIH0KIApAQCAtMTk4LDYgKzIwMyw3IEBAIHZv
aWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2gKICAgICBtX251bVBlbmRpbmdD
b25uZWN0aW9uUmVxdWVzdHMgPSAwOwogfQogCisjaWYgUExBVEZPUk0oTUFDKQogdm9pZCBQbHVn
aW5Qcm9jZXNzUHJveHk6OmRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IENvcmVJ
UEM6Ok1hY2hQb3J0JiBtYWNoUG9ydCkKIHsKICAgICBBU1NFUlQoIW1fcGVuZGluZ0Nvbm5lY3Rp
b25SZXBsaWVzLmlzRW1wdHkoKSk7CkBAIC0yMDcsMTAgKzIxMywxMSBAQCB2b2lkIFBsdWdpblBy
b2Nlc3NQcm94eTo6ZGlkQ3JlYXRlV2ViUHJvCiAgICAgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
KiByZXBseSA9IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmZpcnN0KCkuc2Vjb25kOwogICAg
IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLnJlbW92ZUZpcnN0KCk7CiAKLSAgICAvLyBGSVhN
RTogVGhpcyBpcyBNYWMgc3BlY2lmaWMuCiAgICAgcmVwbHktPmVuY29kZShDb3JlSVBDOjpNYWNo
UG9ydChtYWNoUG9ydC5wb3J0KCksIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKSk7CisKICAgICBy
ZXBseVdlYlByb2Nlc3NQcm94eS0+Y29ubmVjdGlvbigpLT5zZW5kU3luY1JlcGx5KHJlcGx5KTsK
IH0KKyNlbmRpZgogCiB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6ZGlkR2V0U2l0ZXNXaXRoRGF0
YShjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2l0ZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHku
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzUHJveHkuaAkocmV2aXNpb24gODA3ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtNzcsNyAr
NzcsOSBAQCBwcml2YXRlOgogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycwogICAgIHZvaWQgZGlk
UmVjZWl2ZVBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisjaWYgUExBVEZP
Uk0oTUFDKQogICAgIHZvaWQgZGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY29uc3QgQ29y
ZUlQQzo6TWFjaFBvcnQmKTsKKyNlbmRpZgogICAgIHZvaWQgZGlkR2V0U2l0ZXNXaXRoRGF0YShj
b25zdCBWZWN0b3I8U3RyaW5nPiYgc2l0ZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogICAgIHZv
aWQgZGlkQ2xlYXJTaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKTsKIApJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmlu
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b2Nlc3NQcm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gODA3ODApCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4JKHdvcmtp
bmcgY29weSkKQEAgLTIzLDggKzIzLDkgQEAKICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAK
IG1lc3NhZ2VzIC0+IFBsdWdpblByb2Nlc3NQcm94eSB7Ci0gICAgIyBGSVhNRTogVGhpcyBpcyBw
bGF0Zm9ybSBzcGVjaWZpYworI2lmIFBMQVRGT1JNKE1BQykKICAgICBEaWRDcmVhdGVXZWJQcm9j
ZXNzQ29ubmVjdGlvbihDb3JlSVBDOjpNYWNoUG9ydCBjb25uZWN0aW9uSWRlbnRpZmllcikKKyNl
bmRpZgogCiAgICAgRGlkR2V0U2l0ZXNXaXRoRGF0YShWZWN0b3I8V1RGOjpTdHJpbmc+IHNpdGVz
LCB1aW50NjRfdCBjYWxsYmFja0lEKQogICAgIERpZENsZWFyU2l0ZURhdGEodWludDY0X3QgY2Fs
bGJhY2tJRCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViVmlldy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJWaWV3LmNwcAko
cmV2aXNpb24gODA3ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlZpZXcu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTksNiArMjk5LDExIEBAIHZvaWQgV2ViVmlldzo6ZGlk
Q2hhbmdlU2Nyb2xsYmFyc0Zvck1haW4KIHsKIH0KIAordm9pZCBXZWJWaWV3OjpzZXRDb21wbGV4
VGV4dElucHV0RW5hYmxlZCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmll
ciwgYm9vbCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCiB2b2lkIFdlYlZpZXc6OmZsYXNoQmFja2luZ1N0b3JlVXBkYXRlcyhjb25zdCBWZWN0
b3I8SW50UmVjdD4mKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZ3RrL1dlYlZpZXcuaAkocmV2aXNpb24gODA3ODApCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDYgKzEw
MSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvbnRleHRNZW51UHJv
eHk+IGNyZWF0ZUNvbnRleHRNZW51UHJveHkoV2ViUGFnZVByb3h5Kik7CiAgICAgdmlydHVhbCB2
b2lkIHNldEZpbmRJbmRpY2F0b3IoUGFzc1JlZlB0cjxGaW5kSW5kaWNhdG9yPiwgYm9vbCBmYWRl
T3V0KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsYmFyc0Zvck1haW5GcmFtZSgp
IGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZCh1aW50
NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgYm9vbCBjb21wbGV4VGV4dElu
cHV0RW5hYmxlZCk7CiAgICAgdmlydHVhbCB2b2lkIGZsYXNoQmFja2luZ1N0b3JlVXBkYXRlcyhj
b25zdCBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4mIHVwZGF0ZVJlY3RzKTsKIAogI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93
aW4vV2ViVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dp
bi9XZWJWaWV3LmNwcAkocmV2aXNpb24gODA3ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3Mvd2luL1dlYlZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTkzLDYgKzExOTMsMTAgQEAg
dm9pZCBXZWJWaWV3OjpkaWRDaGFuZ2VTY3JvbGxiYXJzRm9yTWFpbgogewogfQogCit2b2lkIFdl
YlZpZXc6OnNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhU
ZXh0SW5wdXRJZGVudGlmaWVyLCBib29sIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKQoreworfQor
CiB2b2lkIFdlYlZpZXc6OnNldElzSW5XaW5kb3coYm9vbCBpc0luV2luZG93KQogewogICAgIG1f
aXNJbldpbmRvdyA9IGlzSW5XaW5kb3c7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
d2luL1dlYlZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2lu
L1dlYlZpZXcuaAkocmV2aXNpb24gODA3ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
d2luL1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMTc1LDYgKzE3NSw3IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIHNldEN1c3RvbVJlcHJlc2VudGF0aW9uWm9vbUZhY3Rvcihkb3Vi
bGUpOwogICAgIFdlYkNvcmU6OkRyYWdPcGVyYXRpb24ga2V5U3RhdGVUb0RyYWdPcGVyYXRpb24o
RFdPUkQgZ3JmS2V5U3RhdGUpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VTY3Jv
bGxiYXJzRm9yTWFpbkZyYW1lKCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldENvbXBsZXhU
ZXh0SW5wdXRFbmFibGVkKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVy
LCBib29sIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKTsKIAogICAgIHZpcnR1YWwgSFdORCBuYXRp
dmVXaW5kb3coKTsKIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW4uaAkocmV2aXNpb24gODA3ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTE1NCwxMyArMTU0LDEzIEBAIHB1Ymxp
YzoKIAogICAgIC8vIFRlbGxzIHRoZSBwbHVnLWluIGFib3V0IHdpbmRvdyB2aXNpYmlsaXR5IGNo
YW5nZXMuCiAgICAgdmlydHVhbCB2b2lkIHdpbmRvd1Zpc2liaWxpdHlDaGFuZ2VkKGJvb2wpID0g
MDsKKyNlbmRpZgogCiAgICAgLy8gR2V0IHRoZSBwZXIgY29tcGxleCB0ZXh0IGlucHV0IGlkZW50
aWZpZXIuCiAgICAgdmlydHVhbCB1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRp
ZmllcigpIGNvbnN0ID0gMDsKIAogICAgIC8vIFNlbmQgdGhlIGNvbXBsZXggdGV4dCBpbnB1dCB0
byB0aGUgcGx1Zy1pbi4KICAgICB2aXJ0dWFsIHZvaWQgc2VuZENvbXBsZXhUZXh0SW5wdXQoY29u
c3QgU3RyaW5nJiB0ZXh0SW5wdXQpID0gMDsKLSNlbmRpZgogCiAgICAgLy8gQ2FsbGVkIHdoZW4g
dGhlIHByaXZhdGUgYnJvd3Npbmcgc3RhdGUgZm9yIHRoaXMgcGx1Zy1pbiBjaGFuZ2VzLgogICAg
IHZpcnR1YWwgdm9pZCBwcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQoYm9vbCkgPSAwOwpJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkNvbnRyb2xsZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luQ29u
dHJvbGxlci5oCShyZXZpc2lvbiA4MDc4MCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Db250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTg4LDEwICs4OCwx
MCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBIV05EIG5hdGl2ZVBhcmVudFdpbmRvdygpID0gMDsK
ICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKQogICAgIC8vIFRlbGxzIHRoZSBjb250cm9sbGVy
IHRoYXQgY29tcGxleCB0ZXh0IGlucHV0IGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQgZm9yIHRoZSBw
bHVnLWluLgogICAgIHZpcnR1YWwgdm9pZCBzZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZChib29s
KSA9IDA7CiAKKyNpZiBQTEFURk9STShNQUMpCiAgICAgLy8gUmV0dXJucyB0aGUgbWFjaCBwb3J0
IG9mIHRoZSBjb21wb3NpdGluZyByZW5kZXIgc2VydmVyLgogICAgIHZpcnR1YWwgbWFjaF9wb3J0
X3QgY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCkgPSAwOwogI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5h
Z2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcAkocmV2aXNpb24gODA3ODApCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25N
YW5hZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsOSBAQAogCiAjaW5jbHVkZSAi
QXJndW1lbnREZWNvZGVyLmgiCiAjaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgiCisjaWYgUExB
VEZPUk0oTUFDKQogI2luY2x1ZGUgIk1hY2hQb3J0LmgiCisjZW5kaWYKICNpbmNsdWRlICJQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5o
IgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKQEAgLTYxLDExICs2MywxNiBAQCBQbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbiogUGx1Z2luUHJvY2Vzc0NvCiAgICAgfQogCiAgICAgQ29yZUlQQzo6Q29u
bmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcjsKKyNpZiBQTEFURk9STShN
QUMpCiAgICAgQ29yZUlQQzo6TWFjaFBvcnQgY29ubmVjdGlvbk1hY2hQb3J0OwogICAgIGlmICgh
V2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5kZXByZWNhdGVkU2VuZFN5bmMoV2Vi
UHJvY2Vzc1Byb3h5TGVnYWN5TWVzc2FnZTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24sIDAs
IENvcmVJUEM6OkluKHBsdWdpblBhdGgpLCBDb3JlSVBDOjpPdXQoY29ubmVjdGlvbk1hY2hQb3J0
KSkpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgY29ubmVjdGlvbklkZW50aWZpZXIgPSBjb25u
ZWN0aW9uTWFjaFBvcnQucG9ydCgpOworI2Vsc2UKKyAgICBjb25uZWN0aW9uSWRlbnRpZmllciA9
IDA7CisgICAgQVNTRVJUKGNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKyNlbmRpZgogICAgIGlmICgh
Y29ubmVjdGlvbklkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiAwOwogCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAJKHJldmlz
aW9uIDgwNzgwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzM3LDYgKzMzNyw3IEBAIHZvaWQgUGx1Z2luUHJv
eHk6OndpbmRvd1Zpc2liaWxpdHlDaGFuZ2UKIHsKICAgICBtX2Nvbm5lY3Rpb24tPmNvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6UGx1Z2luQ29udHJvbGxlclByb3h5OjpXaW5kb3dWaXNpYmls
aXR5Q2hhbmdlZChpc1Zpc2libGUpLCBtX3BsdWdpbkluc3RhbmNlSUQpOwogfQorI2VuZGlmCiAK
IHVpbnQ2NF90IFBsdWdpblByb3h5OjpwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcigp
IGNvbnN0CiB7CkBAIC0zNDgsOCArMzQ5LDYgQEAgdm9pZCBQbHVnaW5Qcm94eTo6c2VuZENvbXBs
ZXhUZXh0SW5wdXQoYwogICAgIG1fY29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpQbHVnaW5Db250cm9sbGVyUHJveHk6OlNlbmRDb21wbGV4VGV4dElucHV0KHRleHRJbnB1
dCksIG1fcGx1Z2luSW5zdGFuY2VJRCk7CiB9CiAKLSNlbmRpZgotCiB2b2lkIFBsdWdpblByb3h5
Ojpwcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQoYm9vbCBpc1ByaXZhdGVCcm93c2luZ0VuYWJs
ZWQpCiB7CiAgICAgbV9jb25uZWN0aW9uLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBs
dWdpbkNvbnRyb2xsZXJQcm94eTo6UHJpdmF0ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkKGlzUHJpdmF0
ZUJyb3dzaW5nRW5hYmxlZCksIG1fcGx1Z2luSW5zdGFuY2VJRCk7CkBAIC00NDAsMTIgKzQzOSwx
MCBAQCB2b2lkIFBsdWdpblByb3h5OjpzZXRTdGF0dXNiYXJUZXh0KGNvbnN0CiAgICAgbV9wbHVn
aW5Db250cm9sbGVyLT5zZXRTdGF0dXNiYXJUZXh0KHN0YXR1c2JhclRleHQpOwogfQogCi0jaWYg
UExBVEZPUk0oTUFDKQogdm9pZCBQbHVnaW5Qcm94eTo6c2V0Q29tcGxleFRleHRJbnB1dEVuYWJs
ZWQoYm9vbCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCkKIHsKICAgICBtX3BsdWdpbkNvbnRyb2xs
ZXItPnNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKTsK
IH0KLSNlbmRpZgogICAgIAogdm9pZCBQbHVnaW5Qcm94eTo6dXBkYXRlKGNvbnN0IEludFJlY3Qm
IHBhaW50ZWRSZWN0KQogewpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb3h5LmgJKHJldmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTkyLDkg
KzkyLDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgd2luZG93Rm9jdXNDaGFuZ2VkKGJv
b2wpOwogICAgIHZpcnR1YWwgdm9pZCB3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMpOwogICAgIHZpcnR1
YWwgdm9pZCB3aW5kb3dWaXNpYmlsaXR5Q2hhbmdlZChib29sKTsKKyNlbmRpZgogICAgIHZpcnR1
YWwgdWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIHZvaWQgc2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3QgU3RyaW5nJiB0ZXh0SW5w
dXQpOwotI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgcHJpdmF0ZUJyb3dzaW5nU3RhdGVDaGFu
Z2VkKGJvb2wpOwogCkBAIC0xMTQsOSArMTE0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNhbmNl
bFN0cmVhbUxvYWQodWludDY0X3Qgc3RyZWFtSUQpOwogICAgIHZvaWQgY2FuY2VsTWFudWFsU3Ry
ZWFtTG9hZCgpOwogICAgIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBTdHJpbmcmIHN0YXR1
c2JhclRleHQpOwotI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIHNldENvbXBsZXhUZXh0SW5w
dXRFbmFibGVkKGJvb2wpOwotI2VuZGlmCiAKICAgICBTdHJpbmcgbV9wbHVnaW5QYXRoOwogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2Fn
ZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiA4MDc4MCkKKysrIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5
KQpAQCAtNTYsMTAgKzU2LDggQEAgbWVzc2FnZXMgLT4gUGx1Z2luUHJveHkgewogICAgICMgU2V0
IHRoZSBzdGF0dXMgYmFyIHRleHQuCiAgICAgU2V0U3RhdHVzYmFyVGV4dChXVEY6OlN0cmluZyBz
dGF0dXNiYXJUZXh0KQogCi0jaWYgUExBVEZPUk0oTUFDKQogICAgICMgQ2hhbmdlIHdoZXRoZXIg
Y29tcGxleHQgdGV4dCBpbnB1dCBpcyBlbmFibGVkIGZvciB0aGlzIHBsdWctaW4uCiAgICAgU2V0
Q29tcGxleFRleHRJbnB1dEVuYWJsZWQoYm9vbCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCkKLSNl
bmRpZgogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5WaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luVmlldy5jcHAJKHJldmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
OTcsNiArMzk3LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojp3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbgog
CiAgICAgbV9wbHVnaW4tPndpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKHdpbmRvd0ZyYW1lSW5T
Y3JlZW5Db29yZGluYXRlcywgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyk7CiB9CisjZW5k
aWYKIAogYm9vbCBQbHVnaW5WaWV3OjpzZW5kQ29tcGxleFRleHRJbnB1dCh1aW50NjRfdCBwbHVn
aW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpCiB7
CkBAIC00MTAsOCArNDExLDYgQEAgYm9vbCBQbHVnaW5WaWV3OjpzZW5kQ29tcGxleFRleHRJbnB1
dCh1aQogICAgIHJldHVybiB0cnVlOwogfQogCi0jZW5kaWYKLQogdm9pZCBQbHVnaW5WaWV3Ojpp
bml0aWFsaXplUGx1Z2luKCkKIHsKICAgICBpZiAobV9pc0luaXRpYWxpemVkKQpAQCAtOTg5LDEy
ICs5ODgsMTIgQEAgSFdORCBQbHVnaW5WaWV3OjpuYXRpdmVQYXJlbnRXaW5kb3coKQogfQogI2Vu
ZGlmCiAKLSNpZiBQTEFURk9STShNQUMpCiB2b2lkIFBsdWdpblZpZXc6OnNldENvbXBsZXhUZXh0
SW5wdXRFbmFibGVkKGJvb2wgY29tcGxleFRleHRJbnB1dEVuYWJsZWQpCiB7CiAgICAgbV93ZWJQ
YWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldENvbXBsZXhUZXh0SW5wdXRFbmFi
bGVkKG1fcGx1Z2luLT5wbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcigpLCBjb21wbGV4
VGV4dElucHV0RW5hYmxlZCkpOwogfQogCisjaWYgUExBVEZPUk0oTUFDKQogbWFjaF9wb3J0X3Qg
UGx1Z2luVmlldzo6Y29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCkKIHsKICAgICByZXR1cm4g
V2ViUHJvY2Vzczo6c2hhcmVkKCkuY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCk7CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgJKHJl
dmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtNjQsOCArNjQsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRXaW5kb3dJc1Zpc2libGUoYm9vbCk7CiAgICAgdm9pZCBzZXRXaW5kb3dJc0ZvY3VzZWQo
Ym9vbCk7CiAgICAgdm9pZCB3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMpOwotICAgIGJvb2wgc2VuZENv
bXBsZXhUZXh0SW5wdXQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgdGV4dElucHV0KTsKICNlbmRpZgorICAgIGJvb2wgc2VuZENvbXBsZXhU
ZXh0SW5wdXQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgdGV4dElucHV0KTsKIAogcHJpdmF0ZToKICAgICBQbHVnaW5WaWV3KFBhc3NSZWZQ
dHI8V2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ+LCBQYXNzUmVmUHRyPFBsdWdpbj4sIGNvbnN0
IFBsdWdpbjo6UGFyYW1ldGVycyYgcGFyYW1ldGVycyk7CkBAIC0xMzIsOCArMTMyLDggQEAgcHJp
dmF0ZToKICNpZiBQTEFURk9STShXSU4pCiAgICAgdmlydHVhbCBIV05EIG5hdGl2ZVBhcmVudFdp
bmRvdygpOwogI2VuZGlmCi0jaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgdm9pZCBzZXRD
b21wbGV4VGV4dElucHV0RW5hYmxlZChib29sKTsKKyNpZiBQTEFURk9STShNQUMpCiAgICAgdmly
dHVhbCBtYWNoX3BvcnRfdCBjb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKTsKICNlbmRpZgog
ICAgIHZpcnR1YWwgU3RyaW5nIHByb3hpZXNGb3JVUkwoY29uc3QgU3RyaW5nJik7CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvTmV0c2NhcGVQbHVnaW4uaAkocmV2aXNpb24gODA3ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaAkod29ya2luZyBjb3B5
KQpAQCAtMTcyLDEwICsxNzIsMTAgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgd2luZG93
Rm9jdXNDaGFuZ2VkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCB3aW5kb3dBbmRWaWV3RnJhbWVz
Q2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRp
bmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0
ZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3aW5kb3dWaXNpYmlsaXR5Q2hhbmdlZChib29sKTsKKyNl
bmRpZgogCiAgICAgdmlydHVhbCB1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRp
ZmllcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZW5kQ29tcGxleFRleHRJbnB1dChjb25z
dCBTdHJpbmcmIHRleHRJbnB1dCk7Ci0jZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBwcml2YXRl
QnJvd3NpbmdTdGF0ZUNoYW5nZWQoYm9vbCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS93aW4vTmV0c2NhcGVQbHVnaW5XaW4uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS93aW4vTmV0
c2NhcGVQbHVnaW5XaW4uY3BwCShyZXZpc2lvbiA4MDc4MCkKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS93aW4vTmV0c2NhcGVQbHVnaW5XaW4uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOTEsNCArMjkxLDE2IEBAIGJvb2wgTmV0c2NhcGVQbHVnaW46OnBsYXRm
b3JtSGFuZGxlS2V5Ym8KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgTmV0c2NhcGVQbHVn
aW46OnNlbmRDb21wbGV4VGV4dElucHV0KGNvbnN0IFN0cmluZyYgdGV4dElucHV0KQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3VpbnQ2NF90IE5ldHNjYXBlUGx1Z2luOjpwbHVnaW5D
b21wbGV4VGV4dElucHV0SWRlbnRpZmllcigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICAvLyBKdXN0IHJldHVybiBhIGR1bW15IHZhbHVlOyB0aGlzIGlzIG9ubHkgY2FsbGVk
IGZvciBpbi1wcm9jZXNzIHBsdWctaW5zCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ2NF90
PihyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4odGhpcykpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS94MTEvTmV0c2NhcGVQbHVnaW5YMTEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS94MTEvTmV0c2NhcGVQbHVnaW5YMTEuY3BwCShy
ZXZpc2lvbiA4MDc4MCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS94MTEvTmV0c2NhcGVQbHVnaW5YMTEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMDcsNCAr
MzA3LDE2IEBAIGJvb2wgTmV0c2NhcGVQbHVnaW46OnBsYXRmb3JtSGFuZGxlS2V5Ym8KICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgTmV0c2NhcGVQbHVnaW46OnNlbmRDb21wbGV4VGV4dElu
cHV0KGNvbnN0IFN0cmluZyYgdGV4dElucHV0KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3VpbnQ2NF90IE5ldHNjYXBlUGx1Z2luOjpwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRp
ZmllcigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAvLyBKdXN0IHJldHVy
biBhIGR1bW15IHZhbHVlOyB0aGlzIGlzIG9ubHkgY2FsbGVkIGZvciBpbi1wcm9jZXNzIHBsdWct
aW5zCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ2NF90PihyZWludGVycHJldF9jYXN0PHVp
bnRwdHJfdD4odGhpcykpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDgw
NzgwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDksOSArMTA5LDEwIEBACiAjZW5kaWYKIAogI2lmIEVOQUJMRShQ
TFVHSU5fUFJPQ0VTUykKLS8vIEZJWE1FOiBUaGlzIGlzIGN1cnJlbnRseSBNYWMtc3BlY2lmaWMh
CisjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIk1hY2hQb3J0LmgiCiAjZW5kaWYKKyNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oUVQpCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgpJbmRleDog
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCShyZXZpc2lvbiA4
MDc4MCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI5MiwxMyArMjkyLDEyIEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2
b2lkIGdldExvY2F0aW9uQW5kTGVuZ3RoRnJvbVJhbmdlKFdlYkNvcmU6OlJhbmdlKiwgdWludDY0
X3QmIGxvY2F0aW9uLCB1aW50NjRfdCYgbGVuZ3RoKTsKIAorICAgIHZvaWQgc2VuZENvbXBsZXhU
ZXh0SW5wdXRUb1BsdWdpbih1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpOworCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZv
aWQgcmVnaXN0ZXJVSVByb2Nlc3NBY2Nlc3NpYmlsaXR5VG9rZW5zKGNvbnN0IENvcmVJUEM6OkRh
dGFSZWZlcmVuY2UmIGVsZW1lblRva2VuLCBjb25zdCBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlJiB3
aW5kb3dUb2tlbik7CiAgICAgQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QqIGFjY2Vzc2liaWxp
dHlSZW1vdGVPYmplY3QoKTsKICAgICBXZWJDb3JlOjpJbnRQb2ludCBhY2Nlc3NpYmlsaXR5UG9z
aXRpb24oKSBjb25zdCB7IHJldHVybiBtX2FjY2Vzc2liaWxpdHlQb3NpdGlvbjsgfSAgICAKLSAg
ICAKLSAgICB2b2lkIHNlbmRDb21wbGV4VGV4dElucHV0VG9QbHVnaW4odWludDY0X3QgcGx1Z2lu
Q29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdGV4dElucHV0KTsKLQog
ICAgIHZvaWQgZ2V0TWFya2VkUmFuZ2UodWludDY0X3QmIGxvY2F0aW9uLCB1aW50NjRfdCYgbGVu
Z3RoKTsKICAgICB2b2lkIGNoYXJhY3RlckluZGV4Rm9yUG9pbnQoY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQgcG9pbnQsIHVpbnQ2NF90JiByZXN1bHQpOwogICAgIHZvaWQgZmlyc3RSZWN0Rm9yQ2hh
cmFjdGVyUmFuZ2UodWludDY0X3QgbG9jYXRpb24sIHVpbnQ2NF90IGxlbmd0aCwgV2ViQ29yZTo6
SW50UmVjdCYgcmVzdWx0UmVjdCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgkocmV2aXNpb24gODA3ODApCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgko
d29ya2luZyBjb3B5KQpAQCAtMTcxLDEwICsxNzEsMTAgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSB7
CiAgICAgU2V0Q2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGJvb2wgY2FuUnVuQmVmb3Jl
VW5sb2FkQ29uZmlybVBhbmVsKQogICAgIFNldENhblJ1bk1vZGFsKGJvb2wgY2FuUnVuTW9kYWwp
CiAKLSNpZiBQTEFURk9STShNQUMpCiAgICAgIyBDb21wbGV4IHRleHQgaW5wdXQgc3VwcG9ydCBm
b3IgcGx1Zy1pbnMuCiAgICAgU2VuZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbih1aW50NjRfdCBw
bHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgU3RyaW5nIHRleHRJbnB1dCkKIAorI2lm
IFBMQVRGT1JNKE1BQykKICAgICBTZXRXaW5kb3dJc1Zpc2libGUoYm9vbCB3aW5kb3dJc1Zpc2li
bGUpCiAgICAgV2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoV2ViQ29yZTo6SW50UmVjdCB3aW5k
b3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIFdlYkNvcmU6OkludFJlY3Qgdmlld0ZyYW1lSW5X
aW5kb3dDb29yZGluYXRlcywgV2ViQ29yZTo6SW50UG9pbnQgYWNjZXNzaWJpbGl0eVZpZXdDb29y
ZGluYXRlcykKICAgICBHZXRNYXJrZWRSYW5nZSgpIC0+ICh1aW50NjRfdCBsb2NhdGlvbiwgdWlu
dDY0X3QgbGVuZ3RoKQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0
L1dlYlBhZ2VRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL3F0L1dlYlBhZ2VRdC5jcHAJKHJldmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L1dlYlBhZ2VRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZvY3VzQ29udHJvbGxlci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CkBAIC0yNjUsNiArMjY2LDEyIEBAIGJvb2wgV2Vi
UGFnZTo6cGVyZm9ybURlZmF1bHRCZWhhdmlvckZvcksKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAor
dm9pZCBXZWJQYWdlOjpzZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdp
bkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkKK3sK
KyAgICAvLyBGSVhNRTogSW1wbGVtZW50CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogYm9v
bCBXZWJQYWdlOjpwbGF0Zm9ybUhhc0xvY2FsRGF0YUZvclVSTChjb25zdCBXZWJDb3JlOjpLVVJM
JikKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHAJKHJldmlzaW9uIDgw
NzgwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2lu
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQyLDQgKzM0Miw5IEBAIHZvaWQgV2ViUGFnZTo6Z2V0
U2VsZWN0ZWRUZXh0KFN0cmluZyYgdGUKICAgICB0ZXh0ID0gc2VsZWN0ZWRSYW5nZS0+dGV4dCgp
OwogfQogCit2b2lkIFdlYlBhZ2U6OnNlbmRDb21wbGV4VGV4dElucHV0VG9QbHVnaW4odWludDY0
X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdGV4dElu
cHV0KQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0Cg==
</data>
<flag name="review"
          id="77523"
          type_id="1"
          status="-"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85408</attachid>
            <date>2011-03-10 16:36:37 -0800</date>
            <delta_ts>2011-04-08 17:19:48 -0700</delta_ts>
            <desc>Fixed comments from 55719#c35</desc>
            <filename>bug55719_part2.v4.diff</filename>
            <type>text/plain</type>
            <size>35118</size>
            <attacher name="Oleg Romashin (:romaxa)">romaxa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNzgyKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNzAgQEAKKzIwMTEtMDMtMTAgIE9sZWcgUm9t
YXNoaW4gIDxyb21heGFAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1ha2UgUXQgcG9ydCBjb21waWxpbmcgd2l0aCBFTkFCTEVfUExV
R0lOX1BST0NFU1M9MSwgcGFydDIKKyAgICAgICAgTWFrZSBDb21wbGV4VGV4dElucHV0IGNvbXBp
bGluZyBmb3IgUXQKKyAgICAgICAgQ292ZXIgd2l0aCBpZmRlZiBNYWNoUG9ydCByZWxhdGVkIGZ1
bmN0aW9uYWxpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU1NzE5CisKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6c2VuZENvbXBs
ZXhUZXh0SW5wdXQpOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclBy
b3h5Lmg6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6aW5pdGlhbGl6ZVBsdWdpblByb2Nlc3MpOgorICAg
ICAgICAqIFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlUGx1Z2luKToKKyAgICAgICAgKiBQ
bHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQ
bHVnaW5Qcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpQbHVn
aW5Qcm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogUGx1Z2lu
UHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzUXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Q
cm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9xdC9xd2twYWdlLmNwcDoKKyAgICAgICAgKFFXS1BhZ2VQcml2YXRlOjpzZXRDb21wbGV4
VGV4dElucHV0RW5hYmxlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlX3Au
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdp
blByb2Nlc3NQcm94eTo6cGx1Z2luUHJvY2Vzc0NyYXNoZWRPckZhaWxlZFRvTGF1bmNoKToKKyAg
ICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVXZWJQcm9jZXNzQ29u
bmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OnNlbmRDb21wbGV4VGV4dElucHV0VG9QbHVnaW4pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViVmlldy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OnNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVk
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYlZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3Mvd2luL1dlYlZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3OjpzZXRDb21wbGV4
VGV4dElucHV0RW5hYmxlZCk6CisgICAgICAgICogVUlQcm9jZXNzL3dpbi9XZWJWaWV3Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3dpbi9OZXRzY2FwZVBsdWdpbldp
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpzZW5kQ29tcGxleFRleHRJ
bnB1dCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpwbHVnaW5Db21wbGV4VGV4
dElucHV0SWRlbnRpZmllcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L3gxMS9OZXRzY2FwZVBsdWdpblgxMS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1
Z2luOjpzZW5kQ29tcGxleFRleHRJbnB1dCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1
Z2luOjpwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Db250cm9sbGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3ND
b25uZWN0aW9uTWFuYWdlcjo6Z2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAq
IFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBs
dWdpblByb3h5OjpzZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjph
Y2Nlc3NpYmlsaXR5UG9zaXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9xdC9XZWJQYWdl
UXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwZXJmb3JtRGVmYXVsdEJlaGF2aW9y
Rm9yS2V5RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZW5kQ29tcGxleFRleHRJ
bnB1dFRvUGx1Z2luKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VX
aW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZW5kQ29tcGxleFRleHRJbnB1dFRv
UGx1Z2luKToKKwogMjAxMS0wMy0xMCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IE1hcmsgUm93ZS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAJKHJldmlzaW9u
IDgwNzgwKQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVy
UHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjQsMTAgKzI2NCwxMiBAQCB2b2lkIFBsdWdp
bkNvbnRyb2xsZXJQcm94eTo6c2V0Q29tcGxleFRlCiAgICAgbV9jb25uZWN0aW9uLT5jb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBsdWdpblByb3h5OjpTZXRDb21wbGV4VGV4dElucHV0RW5h
YmxlZChjb21wbGV4VGV4dElucHV0RW5hYmxlZCksIG1fcGx1Z2luSW5zdGFuY2VJRCk7CiB9CiAK
KyNpZiBQTEFURk9STShNQUMpCiBtYWNoX3BvcnRfdCBQbHVnaW5Db250cm9sbGVyUHJveHk6OmNv
bXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpCiB7CiAgICAgcmV0dXJuIFBsdWdpblByb2Nlc3M6
OnNoYXJlZCgpLmNvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpOwogfQorI2VuZGlmCiAKIFN0
cmluZyBQbHVnaW5Db250cm9sbGVyUHJveHk6OnByb3hpZXNGb3JVUkwoY29uc3QgU3RyaW5nJiB1
cmxTdHJpbmcpCiB7CkBAIC00NzgsMTQgKzQ4MCwxMyBAQCB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQ
cm94eTo6d2luZG93VmlzaWJpCiB7CiAgICAgbV9wbHVnaW4tPndpbmRvd1Zpc2liaWxpdHlDaGFu
Z2VkKGlzVmlzaWJsZSk7CiB9CisjZW5kaWYKIAogdm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6
OnNlbmRDb21wbGV4VGV4dElucHV0KGNvbnN0IFN0cmluZyYgdGV4dElucHV0KQogewogICAgIG1f
cGx1Z2luLT5zZW5kQ29tcGxleFRleHRJbnB1dCh0ZXh0SW5wdXQpOwogfQogCi0jZW5kaWYKLQog
dm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OnByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChi
b29sIGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKIHsKICAgICBtX3BsdWdpbi0+cHJpdmF0ZUJy
b3dzaW5nU3RhdGVDaGFuZ2VkKGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5
LmgJKHJldmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVn
aW5Db250cm9sbGVyUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtOTAsOCArOTAsOCBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCk7
CiAgICAgdmlydHVhbCB2b2lkIHBsdWdpblByb2Nlc3NDcmFzaGVkKCk7CiAKLSNpZiBQTEFURk9S
TShNQUMpCiAgICAgdmlydHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKGJvb2wp
OworI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIG1hY2hfcG9ydF90IGNvbXBvc2l0aW5n
UmVuZGVyU2VydmVyUG9ydCgpOwogI2VuZGlmCiAKQEAgLTEzMCw4ICsxMzAsOCBAQCBwcml2YXRl
OgogICAgIHZvaWQgd2luZG93Rm9jdXNDaGFuZ2VkKGJvb2wpOwogICAgIHZvaWQgd2luZG93QW5k
Vmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgd2luZG93RnJhbWVJblNj
cmVlbkNvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2aWV3RnJhbWVJbldpbmRv
d0Nvb3JkaW5hdGVzKTsKICAgICB2b2lkIHdpbmRvd1Zpc2liaWxpdHlDaGFuZ2VkKGJvb2wpOwot
ICAgIHZvaWQgc2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpOwog
I2VuZGlmCisgICAgdm9pZCBzZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJ
bnB1dCk7CiAKICAgICB2b2lkIHByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChib29sKTsKIApA
QCAtMTcyLDEwICsxNzIsMTAgQEAgcHJpdmF0ZToKICAgICAvLyBXaGV0aGVyIHRoZSBwbHVnLWlu
IGhhcyBjYW5jZWxlZCB0aGUgbWFudWFsIHN0cmVhbSBsb2FkLgogICAgIGJvb2wgbV9wbHVnaW5D
YW5jZWxlZE1hbnVhbFN0cmVhbUxvYWQ7CiAKLSNpZiBQTEFURk9STShNQUMpCiAgICAgLy8gV2hl
dGhlciBjb21wbGV4IHRleHQgaW5wdXQgaXMgZW5hYmxlZCBmb3IgdGhpcyBwbHVnLWluLgogICAg
IGJvb2wgbV9pc0NvbXBsZXhUZXh0SW5wdXRFbmFibGVkOwogCisjaWYgUExBVEZPUk0oTUFDKQog
ICAgIC8vIEZvciBDQSBwbHVnLWlucywgdGhpcyBob2xkcyB0aGUgaW5mb3JtYXRpb24gbmVlZGVk
IHRvIGV4cG9ydCB0aGUgbGF5ZXIgaGllcmFyY2h5IHRvIHRoZSBVSSBwcm9jZXNzLgogICAgIFJl
dGFpblB0cjxXS0NBUmVtb3RlTGF5ZXJDbGllbnRSZWY+IG1fcmVtb3RlTGF5ZXJDbGllbnQ7CiAj
ZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9j
ZXNzLmNwcAkocmV2aXNpb24gODA3ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNz
L1BsdWdpblByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBACiAjaWYg
RU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLSNp
bmNsdWRlICJNYWNoUG9ydC5oIgogI2luY2x1ZGUgIk5ldHNjYXBlUGx1Z2luTW9kdWxlLmgiCiAj
aW5jbHVkZSAiUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJQbHVnaW5Q
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCkBAIC0xMjUsMjUgKzEyNCw2IEBAIHZvaWQgUGx1
Z2luUHJvY2Vzczo6aW5pdGlhbGl6ZVBsdWdpblByb2MKICAgICBwbGF0Zm9ybUluaXRpYWxpemUo
cGFyYW1ldGVycyk7CiB9CiAKLXZvaWQgUGx1Z2luUHJvY2Vzczo6Y3JlYXRlV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24oKQotewotICAgIC8vIEZJWE1FOiBUaGlzIGlzIHBsYXRmb3JtIHNwZWNpZmljIQot
Ci0gICAgLy8gQ3JlYXRlIHRoZSBsaXN0ZW5pbmcgcG9ydC4KLSAgICBtYWNoX3BvcnRfdCBsaXN0
ZW5pbmdQb3J0OwotICAgIG1hY2hfcG9ydF9hbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBNQUNI
X1BPUlRfUklHSFRfUkVDRUlWRSwgJmxpc3RlbmluZ1BvcnQpOwotCi0gICAgLy8gQ3JlYXRlIGEg
bGlzdGVuaW5nIGNvbm5lY3Rpb24uCi0gICAgUmVmUHRyPFdlYlByb2Nlc3NDb25uZWN0aW9uPiBj
b25uZWN0aW9uID0gV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShsaXN0ZW5pbmdQb3J0KTsK
LSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQoY29ubmVjdGlvbi5yZWxlYXNlKCkp
OwotCi0gICAgQ29yZUlQQzo6TWFjaFBvcnQgY2xpZW50UG9ydChsaXN0ZW5pbmdQb3J0LCBNQUNI
X01TR19UWVBFX01BS0VfU0VORCk7Ci0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpQ
bHVnaW5Qcm9jZXNzUHJveHk6OkRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKGNsaWVudFBv
cnQpLCAwKTsKLQotICAgIC8vIFN0b3AgdGhlIHNodXRkb3duIHRpbWVyLgotICAgIG1fc2h1dGRv
d25UaW1lci5zdG9wKCk7Ci19Ci0KIHZvaWQgUGx1Z2luUHJvY2Vzczo6Z2V0U2l0ZXNXaXRoRGF0
YSh1aW50NjRfdCBjYWxsYmFja0lEKQogewogICAgIFZlY3RvcjxTdHJpbmc+IHNpdGVzOwpJbmRl
eDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29u
bmVjdGlvbi5jcHAJKHJldmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2NywxMCAr
MTY3LDEyIEBAIHZvaWQgV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZVBsdWdpbigKICAgICAv
LyBOb3cgdHJ5IHRvIGluaXRpYWxpemUgdGhlIHBsdWctaW4uCiAgICAgcmVzdWx0ID0gcGx1Z2lu
Q29udHJvbGxlclByb3h5UHRyLT5pbml0aWFsaXplKHBhcmFtZXRlcnMpOwogCisjaWYgUExBVEZP
Uk0oTUFDKQogICAgIGlmIChyZXN1bHQpIHsKICAgICAgICAgcmVtb3RlTGF5ZXJDbGllbnRJRCA9
IHBsdWdpbkNvbnRyb2xsZXJQcm94eVB0ci0+cmVtb3RlTGF5ZXJDbGllbnRJRCgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQorI2VuZGlmCiAKICAgICAvLyBXZSBmYWlsZWQgdG8gaW5pdGlhbGl6
ZSwgcmVtb3ZlIHRoZSBwbHVnLWluIGNvbnRyb2xsZXIuIFRoaXMgY291bGQgY2F1c2UgdXMgdG8g
YmUgZGVsZXRlZC4KICAgICByZW1vdmVQbHVnaW5Db250cm9sbGVyUHJveHkocGx1Z2luQ29udHJv
bGxlclByb3h5UHRyKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1Bs
dWdpblByb2Nlc3NNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbQkocmV2aXNpb24gODA3ODApCisrKyBTb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0zMSw2ICszMSw3IEBACiAvLyBGSVhNRSAoV2ViS2l0MikgPHJkYXI6Ly9wcm9ibGVt
Lzg3Mjg4NjA+IFdlYktpdDIgbmVlZHMgdG8gYmUgbG9jYWxpemVkCiAjZGVmaW5lIFVJX1NUUklO
RyhfX3N0ciwgX19kZXNjKSBbTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhTdHJpbmc6X19zdHJdCiAK
KyNpbmNsdWRlICJNYWNoUG9ydC5oIgogI2ltcG9ydCAiTmV0c2NhcGVQbHVnaW4uaCIKICNpbXBv
cnQgIlBsdWdpblByb2Nlc3NTaGltLmgiCiAjaW1wb3J0ICJQbHVnaW5Qcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgiCkBAIC0xMDMsNiArMTA0LDIzIEBAIHZvaWQgUGx1Z2luUHJvY2Vzczo6cGxh
dGZvcm1Jbml0aWFsaXplKGMKICAgICBXS1NldFZpc2libGVBcHBsaWNhdGlvbk5hbWUoKENGU3Ry
aW5nUmVmKWFwcGxpY2F0aW9uTmFtZSk7CiB9CiAKK3ZvaWQgUGx1Z2luUHJvY2Vzczo6Y3JlYXRl
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQoreworICAgIC8vIENyZWF0ZSB0aGUgbGlzdGVuaW5nIHBv
cnQuCisgICAgbWFjaF9wb3J0X3QgbGlzdGVuaW5nUG9ydDsKKyAgICBtYWNoX3BvcnRfYWxsb2Nh
dGUobWFjaF90YXNrX3NlbGYoKSwgTUFDSF9QT1JUX1JJR0hUX1JFQ0VJVkUsICZsaXN0ZW5pbmdQ
b3J0KTsKKworICAgIC8vIENyZWF0ZSBhIGxpc3RlbmluZyBjb25uZWN0aW9uLgorICAgIFJlZlB0
cjxXZWJQcm9jZXNzQ29ubmVjdGlvbj4gY29ubmVjdGlvbiA9IFdlYlByb2Nlc3NDb25uZWN0aW9u
OjpjcmVhdGUobGlzdGVuaW5nUG9ydCk7CisgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMuYXBw
ZW5kKGNvbm5lY3Rpb24ucmVsZWFzZSgpKTsKKworICAgIENvcmVJUEM6Ok1hY2hQb3J0IGNsaWVu
dFBvcnQobGlzdGVuaW5nUG9ydCwgTUFDSF9NU0dfVFlQRV9NQUtFX1NFTkQpOworICAgIG1fY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpEaWRDcmVhdGVXZWJQ
cm9jZXNzQ29ubmVjdGlvbihjbGllbnRQb3J0KSwgMCk7CisKKyAgICAvLyBTdG9wIHRoZSBzaHV0
ZG93biB0aW1lci4KKyAgICBtX3NodXRkb3duVGltZXIuc3RvcCgpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc1F0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nlc3NRdC5j
cHAJKHJldmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9Q
bHVnaW5Qcm9jZXNzUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSwxMSBAQCB2b2lk
IFBsdWdpblByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZShjCiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKIH0KIAordm9pZCBQbHVnaW5Qcm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbigp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
ICNlbmRpZiAvLyBFTkFCTEUoUExVR0lOX1BST0NFU1MpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvUGFnZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QYWdlQ2xpZW50LmgJKHJldmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BhZ2VDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDggKzEyNiw4IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIEhXTkQgbmF0aXZlV2luZG93KCkgPSAwOwogI2VuZGlmCiAKLSNp
ZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRFbmFi
bGVkKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBib29sIGNvbXBs
ZXhUZXh0SW5wdXRFbmFibGVkKSA9IDA7CisjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwg
dm9pZCBzZXRBdXRvZGlzcGxheShib29sKSA9IDA7CiAgICAgdmlydHVhbCBDR0NvbnRleHRSZWYg
Y29udGFpbmluZ1dpbmRvd0dyYXBoaWNzQ29udGV4dCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgU3RyaW5nJiwgZG91YmxlIHNjYWxlRmFj
dG9yLCBjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJikgPSAwOwpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDgwNzgwKQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIw
NTEsNyArMjA1MSw2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZWxlY3Rpb25TdGF0ZUNoYW5nZWQK
ICAgICBtX3NlbGVjdGlvblN0YXRlID0gc2VsZWN0aW9uU3RhdGU7CiB9CiAKLSNpZiBQTEFURk9S
TShNQUMpCiAvLyBDb21wbGV4IHRleHQgaW5wdXQgc3VwcG9ydCBmb3IgcGx1Zy1pbnMuCiB2b2lk
IFdlYlBhZ2VQcm94eTo6c2VuZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbih1aW50NjRfdCBwbHVn
aW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpCiB7
CkBAIC0yMDYwLDcgKzIwNTksNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2VuZENvbXBsZXhUZXh0
SW5wdXRUCiAgICAgCiAgICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5k
Q29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVy
LCB0ZXh0SW5wdXQpLCBtX3BhZ2VJRCk7CiB9Ci0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikK
IHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VDb21wb3NpdGlvblNlbGVjdGlvbihib29sIGhh
c0NvbXBvc2l0aW9uKQpAQCAtMjgxNCwxMiArMjgxMiwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkRmluaXNoTG9hZGluZ0RhdGFGCiAgICAgbV9wYWdlQ2xpZW50LT5kaWRGaW5pc2hMb2FkaW5n
RGF0YUZvckN1c3RvbVJlcHJlc2VudGF0aW9uKHN1Z2dlc3RlZEZpbGVuYW1lLCBkYXRhUmVmZXJl
bmNlKTsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRDb21w
bGV4VGV4dElucHV0RW5hYmxlZCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRp
ZmllciwgYm9vbCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCkKIHsKICAgICBtX3BhZ2VDbGllbnQt
PnNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlm
aWVyLCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCk7CiB9CiAKKyNpZiBQTEFURk9STShNQUMpCiB2
b2lkIFdlYlBhZ2VQcm94eTo6c2V0QXV0b2Rpc3BsYXkoYm9vbCBuZXdTdGF0ZSkKIHsKICAgICBt
X3BhZ2VDbGllbnQtPnNldEF1dG9kaXNwbGF5KG5ld1N0YXRlKTsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNjMsOSAr
MjYzLDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGdldE1hcmtlZFJhbmdlKHVpbnQ2NF90JiBsb2Nh
dGlvbiwgdWludDY0X3QmIGxlbmd0aCk7CiAgICAgdWludDY0X3QgY2hhcmFjdGVySW5kZXhGb3JQ
b2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCk7CiAgICAgV2ViQ29yZTo6SW50UmVjdCBmaXJz
dFJlY3RGb3JDaGFyYWN0ZXJSYW5nZSh1aW50NjRfdCwgdWludDY0X3QpOwotICAgIHZvaWQgc2Vu
ZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbih1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpOwogICAgIENHQ29udGV4dFJlZiBj
b250YWluaW5nV2luZG93R3JhcGhpY3NDb250ZXh0KCk7CiAjZW5kaWYKKworICAgIHZvaWQgc2Vu
ZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbih1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpOworCiAjaWYgUExBVEZPUk0oV0lO
KQogICAgIHZvaWQgZGlkQ2hhbmdlQ29tcG9zaXRpb25TZWxlY3Rpb24oYm9vbCk7CiAgICAgdm9p
ZCBjb25maXJtQ29tcG9zaXRpb24oY29uc3QgU3RyaW5nJik7CkBAIC02MzksOSArNjQxLDcgQEAg
cHJpdmF0ZToKIAogICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21SZXByZXNl
bnRhdGlvbihjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lLCBjb25zdCBDb3JlSVBDOjpE
YXRhUmVmZXJlbmNlJik7CiAKLSNpZiBQTEFURk9STShNQUMpCiAgICAgdm9pZCBzZXRDb21wbGV4
VGV4dElucHV0RW5hYmxlZCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmll
ciwgYm9vbCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCk7Ci0jZW5kaWYKIAogICAgIHN0YXRpYyBT
dHJpbmcgc3RhbmRhcmRVc2VyQWdlbnQoY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvbk5hbWUgPSBT
dHJpbmcoKSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gODA3ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xODAs
MTAgKzE4MCw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgIyBHZW9sb2NhdGlv
biBtZXNzYWdlcwogICAgIFJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50
NjRfdCBnZW9sb2NhdGlvbklELCB1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmluZyBvcmlnaW5J
ZGVudGlmaWVyKQogCi0jaWYgUExBVEZPUk0oTUFDKQogICAgICMgUGx1Zy1pbiBjb21wbGV4IHRl
eHQgaW5wdXQgc3VwcG9ydCBtZXNzYWdlcwogICAgIFNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVk
KHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBib29sIGNvbXBsZXhU
ZXh0SW5wdXRFbmFibGVkKQotI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgIyBTcGVl
Y2ggbWVzc2FnZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFn
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tw
YWdlLmNwcAkocmV2aXNpb24gODA3ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3F3a3BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzUsNiArMjc1LDEyIEBAIHZvaWQg
UVdLUGFnZVByaXZhdGU6OnBhaW50KFFQYWludGVyKiBwYWkKICAgICAgICAgcGFpbnRlci0+Zmls
bFJlY3QoYXJlYSwgUXQ6OndoaXRlKTsKIH0KIAordm9pZAorUVdLUGFnZVByaXZhdGU6OnNldENv
bXBsZXhUZXh0SW5wdXRFbmFibGVkKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVu
dGlmaWVyLCBib29sIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKIHZvaWQgUVdLUGFnZVByaXZhdGU6OmtleVByZXNzRXZlbnQoUUtleUV2ZW50
KiBldikKIHsKICAgICBwYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJk
RXZlbnQoZXYpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFn
ZV9wLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tw
YWdlX3AuaAkocmV2aXNpb24gODA3ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3F3a3BhZ2VfcC5oCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2ICs5Miw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIGRvdWJsZSBjdXN0b21SZXByZXNlbnRhdGlvblpvb21GYWN0b3IoKSB7IHJl
dHVybiAxOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldEN1c3RvbVJlcHJlc2VudGF0aW9uWm9vbUZh
Y3Rvcihkb3VibGUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VTY3JvbGxiYXJzRm9y
TWFpbkZyYW1lKCkgY29uc3QgeyB9CisgICAgdmlydHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5w
dXRFbmFibGVkKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBib29s
IGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKTsKIAogICAgIHZpcnR1YWwgdm9pZCBmbGFzaEJhY2tp
bmdTdG9yZVVwZGF0ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiB1cGRhdGVSZWN0
cyk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAkocmV2aXNpb24gODA3ODApCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yOCw3ICsyOCw5IEBACiAKICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAKKyNp
ZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSAiTWFjaFBvcnQuaCIKKyNlbmRpZgogI2luY2x1ZGUg
IlBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9j
ZXNzTWFuYWdlci5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NNZXNzYWdlcy5oIgpAQCAtMTMw
LDggKzEzMiwxMiBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6cGx1Z2luUHJvY2Vzc0NyCiAg
ICAgICAgIENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogcmVwbHkgPSBtX3BlbmRpbmdDb25uZWN0
aW9uUmVwbGllcy5maXJzdCgpLnNlY29uZDsKICAgICAgICAgbV9wZW5kaW5nQ29ubmVjdGlvblJl
cGxpZXMucmVtb3ZlRmlyc3QoKTsKIAotICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBNYWMgc3Bl
Y2lmaWMuCisjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICByZXBseS0+ZW5jb2RlKENvcmVJUEM6
Ok1hY2hQb3J0KDAsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKSk7CisjZWxzZQorICAgICAgICAv
LyBGSVhNRTogSW1wbGVtZW50LgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRp
ZgogICAgICAgICByZXBseVdlYlByb2Nlc3NQcm94eS0+Y29ubmVjdGlvbigpLT5zZW5kU3luY1Jl
cGx5KHJlcGx5KTsKICAgICB9CiAKQEAgLTE5OCw2ICsyMDQsNyBAQCB2b2lkIFBsdWdpblByb2Nl
c3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoCiAgICAgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVl
c3RzID0gMDsKIH0KIAorI2lmIFBMQVRGT1JNKE1BQykKIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5
OjpkaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBDb3JlSVBDOjpNYWNoUG9ydCYg
bWFjaFBvcnQpCiB7CiAgICAgQVNTRVJUKCFtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5pc0Vt
cHR5KCkpOwpAQCAtMjA3LDEwICsyMTQsMTAgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmRp
ZENyZWF0ZVdlYlBybwogICAgIENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogcmVwbHkgPSBtX3Bl
bmRpbmdDb25uZWN0aW9uUmVwbGllcy5maXJzdCgpLnNlY29uZDsKICAgICBtX3BlbmRpbmdDb25u
ZWN0aW9uUmVwbGllcy5yZW1vdmVGaXJzdCgpOwogCi0gICAgLy8gRklYTUU6IFRoaXMgaXMgTWFj
IHNwZWNpZmljLgogICAgIHJlcGx5LT5lbmNvZGUoQ29yZUlQQzo6TWFjaFBvcnQobWFjaFBvcnQu
cG9ydCgpLCBNQUNIX01TR19UWVBFX01PVkVfU0VORCkpOwogICAgIHJlcGx5V2ViUHJvY2Vzc1By
b3h5LT5jb25uZWN0aW9uKCktPnNlbmRTeW5jUmVwbHkocmVwbHkpOwogfQorI2VuZGlmCiAKIHZv
aWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpkaWRHZXRTaXRlc1dpdGhEYXRhKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBzaXRlcywgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCShy
ZXZpc2lvbiA4MDc4MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb2Nlc3NQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw3ICs3Nyw5IEBAIHByaXZhdGU6
CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzCiAgICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJv
Y2Vzc1Byb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyNpZiBQTEFURk9STShNQUMpCiAgICAgdm9p
ZCBkaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBDb3JlSVBDOjpNYWNoUG9ydCYp
OworI2VuZGlmCiAgICAgdm9pZCBkaWRHZXRTaXRlc1dpdGhEYXRhKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBzaXRlcywgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkaWRDbGVhclNpdGVE
YXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3Nh
Z2VzLmluCShyZXZpc2lvbiA4MDc4MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjMs
OCArMjMsOSBAQAogI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKIAogbWVzc2FnZXMgLT4gUGx1
Z2luUHJvY2Vzc1Byb3h5IHsKLSAgICAjIEZJWE1FOiBUaGlzIGlzIHBsYXRmb3JtIHNwZWNpZmlj
CisjaWYgUExBVEZPUk0oTUFDKQogICAgIERpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKENv
cmVJUEM6Ok1hY2hQb3J0IGNvbm5lY3Rpb25JZGVudGlmaWVyKQorI2VuZGlmCiAKICAgICBEaWRH
ZXRTaXRlc1dpdGhEYXRhKFZlY3RvcjxXVEY6OlN0cmluZz4gc2l0ZXMsIHVpbnQ2NF90IGNhbGxi
YWNrSUQpCiAgICAgRGlkQ2xlYXJTaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKQpJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJWaWV3LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlZpZXcuY3BwCShyZXZpc2lvbiA4MDc4MCkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViVmlldy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI5OSw2ICsyOTksMTEgQEAgdm9pZCBXZWJWaWV3OjpkaWRDaGFuZ2VTY3JvbGxiYXJz
Rm9yTWFpbgogewogfQogCit2b2lkIFdlYlZpZXc6OnNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVk
KHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBib29sIGNvbXBsZXhU
ZXh0SW5wdXRFbmFibGVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIHZvaWQgV2Vi
Vmlldzo6Zmxhc2hCYWNraW5nU3RvcmVVcGRhdGVzKGNvbnN0IFZlY3RvcjxJbnRSZWN0PiYpCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9n
dGsvV2ViVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsv
V2ViVmlldy5oCShyZXZpc2lvbiA4MDc4MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9n
dGsvV2ViVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNiArMTAxLDcgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29udGV4dE1lbnVQcm94eT4gY3JlYXRlQ29udGV4
dE1lbnVQcm94eShXZWJQYWdlUHJveHkqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RmluZEluZGlj
YXRvcihQYXNzUmVmUHRyPEZpbmRJbmRpY2F0b3I+LCBib29sIGZhZGVPdXQpOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRDaGFuZ2VTY3JvbGxiYXJzRm9yTWFpbkZyYW1lKCkgY29uc3Q7CisgICAgdmly
dHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKHVpbnQ2NF90IHBsdWdpbkNvbXBs
ZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBib29sIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZmxhc2hCYWNraW5nU3RvcmVVcGRhdGVzKGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpJbnRSZWN0PiYgdXBkYXRlUmVjdHMpOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwCShy
ZXZpc2lvbiA4MDc4MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTExOTMsNiArMTE5MywxMCBAQCB2b2lkIFdlYlZpZXc6OmRp
ZENoYW5nZVNjcm9sbGJhcnNGb3JNYWluCiB7CiB9CiAKK3ZvaWQgV2ViVmlldzo6c2V0Q29tcGxl
eFRleHRJbnB1dEVuYWJsZWQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZp
ZXIsIGJvb2wgY29tcGxleFRleHRJbnB1dEVuYWJsZWQpCit7Cit9CisKIHZvaWQgV2ViVmlldzo6
c2V0SXNJbldpbmRvdyhib29sIGlzSW5XaW5kb3cpCiB7CiAgICAgbV9pc0luV2luZG93ID0gaXNJ
bldpbmRvdzsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5oCShyZXZp
c2lvbiA4MDc4MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xNzUsNiArMTc1LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgc2V0Q3VzdG9tUmVwcmVzZW50YXRpb25ab29tRmFjdG9yKGRvdWJsZSk7CiAgICAgV2ViQ29y
ZTo6RHJhZ09wZXJhdGlvbiBrZXlTdGF0ZVRvRHJhZ09wZXJhdGlvbihEV09SRCBncmZLZXlTdGF0
ZSkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVNjcm9sbGJhcnNGb3JNYWluRnJh
bWUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQo
dWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgY29tcGxleFRl
eHRJbnB1dEVuYWJsZWQpOwogCiAgICAgdmlydHVhbCBIV05EIG5hdGl2ZVdpbmRvdygpOwogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oCShyZXZpc2lv
biA4MDc4MCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaAko
d29ya2luZyBjb3B5KQpAQCAtMTU0LDEzICsxNTQsMTMgQEAgcHVibGljOgogCiAgICAgLy8gVGVs
bHMgdGhlIHBsdWctaW4gYWJvdXQgd2luZG93IHZpc2liaWxpdHkgY2hhbmdlcy4KICAgICB2aXJ0
dWFsIHZvaWQgd2luZG93VmlzaWJpbGl0eUNoYW5nZWQoYm9vbCkgPSAwOworI2VuZGlmCiAKICAg
ICAvLyBHZXQgdGhlIHBlciBjb21wbGV4IHRleHQgaW5wdXQgaWRlbnRpZmllci4KICAgICB2aXJ0
dWFsIHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkgY29uc3QgPSAw
OwogCiAgICAgLy8gU2VuZCB0aGUgY29tcGxleCB0ZXh0IGlucHV0IHRvIHRoZSBwbHVnLWluLgog
ICAgIHZpcnR1YWwgdm9pZCBzZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJ
bnB1dCkgPSAwOwotI2VuZGlmCiAKICAgICAvLyBDYWxsZWQgd2hlbiB0aGUgcHJpdmF0ZSBicm93
c2luZyBzdGF0ZSBmb3IgdGhpcyBwbHVnLWluIGNoYW5nZXMuCiAgICAgdmlydHVhbCB2b2lkIHBy
aXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChib29sKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luQ29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9sbGVyLmgJKHJldmlz
aW9uIDgwNzgwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkNv
bnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtODgsMTAgKzg4LDEwIEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIEhXTkQgbmF0aXZlUGFyZW50V2luZG93KCkgPSAwOwogI2VuZGlmCiAKLSNpZiBQ
TEFURk9STShNQUMpCiAgICAgLy8gVGVsbHMgdGhlIGNvbnRyb2xsZXIgdGhhdCBjb21wbGV4IHRl
eHQgaW5wdXQgYmUgZW5hYmxlZCBvciBkaXNhYmxlZCBmb3IgdGhlIHBsdWctaW4uCiAgICAgdmly
dHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKGJvb2wpID0gMDsKIAorI2lmIFBM
QVRGT1JNKE1BQykKICAgICAvLyBSZXR1cm5zIHRoZSBtYWNoIHBvcnQgb2YgdGhlIGNvbXBvc2l0
aW5nIHJlbmRlciBzZXJ2ZXIuCiAgICAgdmlydHVhbCBtYWNoX3BvcnRfdCBjb21wb3NpdGluZ1Jl
bmRlclNlcnZlclBvcnQoKSA9IDA7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbk1hbmFnZXIuY3BwCShyZXZpc2lvbiA4MDc4MCkKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCw3ICszMCw5IEBACiAKICNpbmNsdWRlICJBcmd1bWVudERlY29kZXIu
aCIKICNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpZiBQTEFURk9STShNQUMpCiAjaW5j
bHVkZSAiTWFjaFBvcnQuaCIKKyNlbmRpZgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0
aW9uLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzcy5oIgpAQCAtNjEsMTEgKzYzLDE3IEBAIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKiBQ
bHVnaW5Qcm9jZXNzQ28KICAgICB9CiAKICAgICBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyOworI2lmIFBMQVRGT1JNKE1BQykKICAgICBDb3JlSVBD
OjpNYWNoUG9ydCBjb25uZWN0aW9uTWFjaFBvcnQ7CiAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFy
ZWQoKS5jb25uZWN0aW9uKCktPmRlcHJlY2F0ZWRTZW5kU3luYyhXZWJQcm9jZXNzUHJveHlMZWdh
Y3lNZXNzYWdlOjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbiwgMCwgQ29yZUlQQzo6SW4ocGx1
Z2luUGF0aCksIENvcmVJUEM6Ok91dChjb25uZWN0aW9uTWFjaFBvcnQpKSkKICAgICAgICAgcmV0
dXJuIDA7CiAKICAgICBjb25uZWN0aW9uSWRlbnRpZmllciA9IGNvbm5lY3Rpb25NYWNoUG9ydC5w
b3J0KCk7CisjZWxzZQorICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCisgICAgY29ubmVjdGlvbklk
ZW50aWZpZXIgPSAwOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCiAgICAgaWYg
KCFjb25uZWN0aW9uSWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIDA7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmNwcAkocmV2
aXNpb24gODA3ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzcsNiArMzM3LDcgQEAgdm9pZCBQbHVnaW5Q
cm94eTo6d2luZG93VmlzaWJpbGl0eUNoYW5nZQogewogICAgIG1fY29ubmVjdGlvbi0+Y29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpQbHVnaW5Db250cm9sbGVyUHJveHk6OldpbmRvd1Zpc2li
aWxpdHlDaGFuZ2VkKGlzVmlzaWJsZSksIG1fcGx1Z2luSW5zdGFuY2VJRCk7CiB9CisjZW5kaWYK
IAogdWludDY0X3QgUGx1Z2luUHJveHk6OnBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVy
KCkgY29uc3QKIHsKQEAgLTM0OCw4ICszNDksNiBAQCB2b2lkIFBsdWdpblByb3h5OjpzZW5kQ29t
cGxleFRleHRJbnB1dChjCiAgICAgbV9jb25uZWN0aW9uLT5jb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6U2VuZENvbXBsZXhUZXh0SW5wdXQodGV4dElu
cHV0KSwgbV9wbHVnaW5JbnN0YW5jZUlEKTsKIH0KIAotI2VuZGlmCi0KIHZvaWQgUGx1Z2luUHJv
eHk6OnByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChib29sIGlzUHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZCkKIHsKICAgICBtX2Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6
UGx1Z2luQ29udHJvbGxlclByb3h5OjpQcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQoaXNQcml2
YXRlQnJvd3NpbmdFbmFibGVkKSwgbV9wbHVnaW5JbnN0YW5jZUlEKTsKQEAgLTQ0MCwxMiArNDM5
LDEwIEBAIHZvaWQgUGx1Z2luUHJveHk6OnNldFN0YXR1c2JhclRleHQoY29uc3QKICAgICBtX3Bs
dWdpbkNvbnRyb2xsZXItPnNldFN0YXR1c2JhclRleHQoc3RhdHVzYmFyVGV4dCk7CiB9CiAKLSNp
ZiBQTEFURk9STShNQUMpCiB2b2lkIFBsdWdpblByb3h5OjpzZXRDb21wbGV4VGV4dElucHV0RW5h
YmxlZChib29sIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKQogewogICAgIG1fcGx1Z2luQ29udHJv
bGxlci0+c2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQoY29tcGxleFRleHRJbnB1dEVuYWJsZWQp
OwogfQotI2VuZGlmCiAgICAgCiB2b2lkIFBsdWdpblByb3h5Ojp1cGRhdGUoY29uc3QgSW50UmVj
dCYgcGFpbnRlZFJlY3QpCiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJveHkuaAkocmV2aXNpb24gODA3ODApCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtOTIs
OSArOTIsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB3aW5kb3dGb2N1c0NoYW5nZWQo
Ym9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyk7CiAgICAgdmly
dHVhbCB2b2lkIHdpbmRvd1Zpc2liaWxpdHlDaGFuZ2VkKGJvb2wpOworI2VuZGlmCiAgICAgdmly
dHVhbCB1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcigpIGNvbnN0Owog
ICAgIHZpcnR1YWwgdm9pZCBzZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJ
bnB1dCk7Ci0jZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBwcml2YXRlQnJvd3NpbmdTdGF0ZUNo
YW5nZWQoYm9vbCk7CiAKQEAgLTExNCw5ICsxMTQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2Fu
Y2VsU3RyZWFtTG9hZCh1aW50NjRfdCBzdHJlYW1JRCk7CiAgICAgdm9pZCBjYW5jZWxNYW51YWxT
dHJlYW1Mb2FkKCk7CiAgICAgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYgc3Rh
dHVzYmFyVGV4dCk7Ci0jaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgc2V0Q29tcGxleFRleHRJ
bnB1dEVuYWJsZWQoYm9vbCk7Ci0jZW5kaWYKIAogICAgIFN0cmluZyBtX3BsdWdpblBhdGg7CiAK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5tZXNz
YWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNv
cHkpCkBAIC01NiwxMCArNTYsOCBAQCBtZXNzYWdlcyAtPiBQbHVnaW5Qcm94eSB7CiAgICAgIyBT
ZXQgdGhlIHN0YXR1cyBiYXIgdGV4dC4KICAgICBTZXRTdGF0dXNiYXJUZXh0KFdURjo6U3RyaW5n
IHN0YXR1c2JhclRleHQpCiAKLSNpZiBQTEFURk9STShNQUMpCiAgICAgIyBDaGFuZ2Ugd2hldGhl
ciBjb21wbGV4dCB0ZXh0IGlucHV0IGlzIGVuYWJsZWQgZm9yIHRoaXMgcGx1Zy1pbi4KICAgICBT
ZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZChib29sIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKQot
I2VuZGlmCiB9CiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAkocmV2aXNpb24gODA3ODApCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM5Nyw2ICszOTcsNyBAQCB2b2lkIFBsdWdpblZpZXc6OndpbmRvd0FuZFZpZXdGcmFtZXNDaGFu
CiAKICAgICBtX3BsdWdpbi0+d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQod2luZG93RnJhbWVJ
blNjcmVlbkNvb3JkaW5hdGVzLCB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKTsKIH0KKyNl
bmRpZgogCiBib29sIFBsdWdpblZpZXc6OnNlbmRDb21wbGV4VGV4dElucHV0KHVpbnQ2NF90IHBs
dWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkK
IHsKQEAgLTQxMCw4ICs0MTEsNiBAQCBib29sIFBsdWdpblZpZXc6OnNlbmRDb21wbGV4VGV4dElu
cHV0KHVpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLSNlbmRpZgotCiB2b2lkIFBsdWdpblZpZXc6
OmluaXRpYWxpemVQbHVnaW4oKQogewogICAgIGlmIChtX2lzSW5pdGlhbGl6ZWQpCkBAIC05ODks
MTIgKzk4OCwxMiBAQCBIV05EIFBsdWdpblZpZXc6Om5hdGl2ZVBhcmVudFdpbmRvdygpCiB9CiAj
ZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykKIHZvaWQgUGx1Z2luVmlldzo6c2V0Q29tcGxleFRl
eHRJbnB1dEVuYWJsZWQoYm9vbCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCkKIHsKICAgICBtX3dl
YlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0Q29tcGxleFRleHRJbnB1dEVu
YWJsZWQobV9wbHVnaW4tPnBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCksIGNvbXBs
ZXhUZXh0SW5wdXRFbmFibGVkKSk7CiB9CiAKKyNpZiBQTEFURk9STShNQUMpCiBtYWNoX3BvcnRf
dCBQbHVnaW5WaWV3Ojpjb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKQogewogICAgIHJldHVy
biBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAko
cmV2aXNpb24gODA3ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC02NCw4ICs2NCw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldFdpbmRvd0lzVmlzaWJsZShib29sKTsKICAgICB2b2lkIHNldFdpbmRvd0lzRm9jdXNl
ZChib29sKTsKICAgICB2b2lkIHdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyk7Ci0gICAgYm9vbCBzZW5k
Q29tcGxleFRleHRJbnB1dCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpOwogI2VuZGlmCisgICAgYm9vbCBzZW5kQ29tcGxl
eFRleHRJbnB1dCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiB0ZXh0SW5wdXQpOwogCiBwcml2YXRlOgogICAgIFBsdWdpblZpZXcoUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudD4sIFBhc3NSZWZQdHI8UGx1Z2luPiwgY29u
c3QgUGx1Z2luOjpQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKTsKQEAgLTEzMiw4ICsxMzIsOCBAQCBw
cml2YXRlOgogI2lmIFBMQVRGT1JNKFdJTikKICAgICB2aXJ0dWFsIEhXTkQgbmF0aXZlUGFyZW50
V2luZG93KCk7CiAjZW5kaWYKLSNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIHNl
dENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKGJvb2wpOworI2lmIFBMQVRGT1JNKE1BQykKICAgICB2
aXJ0dWFsIG1hY2hfcG9ydF90IGNvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpOwogI2VuZGlm
CiAgICAgdmlydHVhbCBTdHJpbmcgcHJveGllc0ZvclVSTChjb25zdCBTdHJpbmcmKTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdp
bi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9OZXRzY2FwZVBsdWdpbi5oCShyZXZpc2lvbiA4MDc4MCkKKysrIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xNzIsMTAgKzE3MiwxMCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB3aW5k
b3dGb2N1c0NoYW5nZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHdpbmRvd0FuZFZpZXdGcmFt
ZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29y
ZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGlu
YXRlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbmRvd1Zpc2liaWxpdHlDaGFuZ2VkKGJvb2wpOwor
I2VuZGlmCiAKICAgICB2aXJ0dWFsIHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVu
dGlmaWVyKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNlbmRDb21wbGV4VGV4dElucHV0KGNv
bnN0IFN0cmluZyYgdGV4dElucHV0KTsKLSNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHByaXZh
dGVCcm93c2luZ1N0YXRlQ2hhbmdlZChib29sKTsKIApJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3dpbi9OZXRzY2FwZVBsdWdpbldpbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3dpbi9O
ZXRzY2FwZVBsdWdpbldpbi5jcHAJKHJldmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3dpbi9OZXRzY2FwZVBsdWdpbldpbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI5MSw0ICsyOTEsMTYgQEAgYm9vbCBOZXRzY2FwZVBsdWdpbjo6cGxh
dGZvcm1IYW5kbGVLZXlibwogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBOZXRzY2FwZVBs
dWdpbjo6c2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordWludDY0X3QgTmV0c2NhcGVQbHVnaW46OnBsdWdp
bkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIC8vIEp1c3QgcmV0dXJuIGEgZHVtbXkgdmFsdWU7IHRoaXMgaXMgb25seSBjYWxs
ZWQgZm9yIGluLXByb2Nlc3MgcGx1Zy1pbnMKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDY0
X3Q+KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pih0aGlzKSk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL3gxMS9OZXRzY2FwZVBsdWdpblgxMS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpblgxMS5jcHAJ
KHJldmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpblgxMS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwNyw0
ICszMDcsMTYgQEAgYm9vbCBOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVLZXlibwogICAg
IHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBOZXRzY2FwZVBsdWdpbjo6c2VuZENvbXBsZXhUZXh0
SW5wdXQoY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordWludDY0X3QgTmV0c2NhcGVQbHVnaW46OnBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVu
dGlmaWVyKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIC8vIEp1c3QgcmV0
dXJuIGEgZHVtbXkgdmFsdWU7IHRoaXMgaXMgb25seSBjYWxsZWQgZm9yIGluLXByb2Nlc3MgcGx1
Zy1pbnMKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJlaW50ZXJwcmV0X2Nhc3Q8
dWludHB0cl90Pih0aGlzKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24g
ODA3ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEwOSw5ICsxMDksMTAgQEAKICNlbmRpZgogCiAjaWYgRU5BQkxF
KFBMVUdJTl9QUk9DRVNTKQotLy8gRklYTUU6IFRoaXMgaXMgY3VycmVudGx5IE1hYy1zcGVjaWZp
YyEKKyNpZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSAiTWFjaFBvcnQuaCIKICNlbmRpZgorI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShRVCkKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHJldmlzaW9u
IDgwNzgwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAko
d29ya2luZyBjb3B5KQpAQCAtMjkyLDEzICsyOTIsMTIgQEAgcHVibGljOgogCiAgICAgc3RhdGlj
IHZvaWQgZ2V0TG9jYXRpb25BbmRMZW5ndGhGcm9tUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqLCB1aW50
NjRfdCYgbG9jYXRpb24sIHVpbnQ2NF90JiBsZW5ndGgpOwogCisgICAgdm9pZCBzZW5kQ29tcGxl
eFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CisKICNpZiBQTEFURk9STShNQUMpCiAgICAg
dm9pZCByZWdpc3RlclVJUHJvY2Vzc0FjY2Vzc2liaWxpdHlUb2tlbnMoY29uc3QgQ29yZUlQQzo6
RGF0YVJlZmVyZW5jZSYgZWxlbWVuVG9rZW4sIGNvbnN0IENvcmVJUEM6OkRhdGFSZWZlcmVuY2Um
IHdpbmRvd1Rva2VuKTsKICAgICBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdCogYWNjZXNzaWJp
bGl0eVJlbW90ZU9iamVjdCgpOwogICAgIFdlYkNvcmU6OkludFBvaW50IGFjY2Vzc2liaWxpdHlQ
b3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZXNzaWJpbGl0eVBvc2l0aW9uOyB9ICAgIAot
ICAgIAotICAgIHZvaWQgc2VuZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbih1aW50NjRfdCBwbHVn
aW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpOwot
CiAgICAgdm9pZCBnZXRNYXJrZWRSYW5nZSh1aW50NjRfdCYgbG9jYXRpb24sIHVpbnQ2NF90JiBs
ZW5ndGgpOwogICAgIHZvaWQgY2hhcmFjdGVySW5kZXhGb3JQb2ludChjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCBwb2ludCwgdWludDY0X3QmIHJlc3VsdCk7CiAgICAgdm9pZCBmaXJzdFJlY3RGb3JD
aGFyYWN0ZXJSYW5nZSh1aW50NjRfdCBsb2NhdGlvbiwgdWludDY0X3QgbGVuZ3RoLCBXZWJDb3Jl
OjpJbnRSZWN0JiByZXN1bHRSZWN0KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCShyZXZpc2lvbiA4MDc4MCkK
KysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
CSh3b3JraW5nIGNvcHkpCkBAIC0xNzEsMTAgKzE3MSwxMCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdl
IHsKICAgICBTZXRDYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoYm9vbCBjYW5SdW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWwpCiAgICAgU2V0Q2FuUnVuTW9kYWwoYm9vbCBjYW5SdW5Nb2Rh
bCkKIAotI2lmIFBMQVRGT1JNKE1BQykKICAgICAjIENvbXBsZXggdGV4dCBpbnB1dCBzdXBwb3J0
IGZvciBwbHVnLWlucy4KICAgICBTZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90
IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBTdHJpbmcgdGV4dElucHV0KQogCisj
aWYgUExBVEZPUk0oTUFDKQogICAgIFNldFdpbmRvd0lzVmlzaWJsZShib29sIHdpbmRvd0lzVmlz
aWJsZSkKICAgICBXaW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChXZWJDb3JlOjpJbnRSZWN0IHdp
bmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgV2ViQ29yZTo6SW50UmVjdCB2aWV3RnJhbWVJ
bldpbmRvd0Nvb3JkaW5hdGVzLCBXZWJDb3JlOjpJbnRQb2ludCBhY2Nlc3NpYmlsaXR5Vmlld0Nv
b3JkaW5hdGVzKQogICAgIEdldE1hcmtlZFJhbmdlKCkgLT4gKHVpbnQ2NF90IGxvY2F0aW9uLCB1
aW50NjRfdCBsZW5ndGgpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
cXQvV2ViUGFnZVF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvcXQvV2ViUGFnZVF0LmNwcAkocmV2aXNpb24gODA3ODApCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvV2ViUGFnZVF0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRm9jdXNDb250cm9sbGVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvS2V5Ym9hcmRFdmVu
dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KQEAgLTI2NSw2ICsyNjYsMTIgQEAgYm9vbCBX
ZWJQYWdlOjpwZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9ySwogICAgIHJldHVybiB0cnVlOwogfQog
Cit2b2lkIFdlYlBhZ2U6OnNlbmRDb21wbGV4VGV4dElucHV0VG9QbHVnaW4odWludDY0X3QgcGx1
Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdGV4dElucHV0KQor
eworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiBi
b29sIFdlYlBhZ2U6OnBsYXRmb3JtSGFzTG9jYWxEYXRhRm9yVVJMKGNvbnN0IFdlYkNvcmU6OktV
UkwmKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNwcAkocmV2aXNpb24g
ODA3ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VX
aW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDIsNCArMzQyLDkgQEAgdm9pZCBXZWJQYWdlOjpn
ZXRTZWxlY3RlZFRleHQoU3RyaW5nJiB0ZQogICAgIHRleHQgPSBzZWxlY3RlZFJhbmdlLT50ZXh0
KCk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6c2VuZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbih1aW50
NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0
SW5wdXQpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudAorfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85419</attachid>
            <date>2011-03-10 18:37:49 -0800</date>
            <delta_ts>2011-04-08 17:19:54 -0700</delta_ts>
            <desc>Fixed style nit from 55719#c37</desc>
            <filename>bug55719_part2.v5.diff</filename>
            <type>text/plain</type>
            <size>35117</size>
            <attacher name="Oleg Romashin (:romaxa)">romaxa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNzgyKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNzAgQEAKKzIwMTEtMDMtMTAgIE9sZWcgUm9t
YXNoaW4gIDxyb21heGFAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1ha2UgUXQgcG9ydCBjb21waWxpbmcgd2l0aCBFTkFCTEVfUExV
R0lOX1BST0NFU1M9MSwgcGFydDIKKyAgICAgICAgTWFrZSBDb21wbGV4VGV4dElucHV0IGNvbXBp
bGluZyBmb3IgUXQKKyAgICAgICAgQ292ZXIgd2l0aCBpZmRlZiBNYWNoUG9ydCByZWxhdGVkIGZ1
bmN0aW9uYWxpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU1NzE5CisKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6c2VuZENvbXBs
ZXhUZXh0SW5wdXQpOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclBy
b3h5Lmg6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6aW5pdGlhbGl6ZVBsdWdpblByb2Nlc3MpOgorICAg
ICAgICAqIFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlUGx1Z2luKToKKyAgICAgICAgKiBQ
bHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQ
bHVnaW5Qcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpQbHVn
aW5Qcm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogUGx1Z2lu
UHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzUXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Q
cm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9xdC9xd2twYWdlLmNwcDoKKyAgICAgICAgKFFXS1BhZ2VQcml2YXRlOjpzZXRDb21wbGV4
VGV4dElucHV0RW5hYmxlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlX3Au
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdp
blByb2Nlc3NQcm94eTo6cGx1Z2luUHJvY2Vzc0NyYXNoZWRPckZhaWxlZFRvTGF1bmNoKToKKyAg
ICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVXZWJQcm9jZXNzQ29u
bmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OnNlbmRDb21wbGV4VGV4dElucHV0VG9QbHVnaW4pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViVmlldy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OnNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVk
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYlZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3Mvd2luL1dlYlZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3OjpzZXRDb21wbGV4
VGV4dElucHV0RW5hYmxlZCk6CisgICAgICAgICogVUlQcm9jZXNzL3dpbi9XZWJWaWV3Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3dpbi9OZXRzY2FwZVBsdWdpbldp
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpzZW5kQ29tcGxleFRleHRJ
bnB1dCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpwbHVnaW5Db21wbGV4VGV4
dElucHV0SWRlbnRpZmllcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L3gxMS9OZXRzY2FwZVBsdWdpblgxMS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1
Z2luOjpzZW5kQ29tcGxleFRleHRJbnB1dCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1
Z2luOjpwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Db250cm9sbGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3ND
b25uZWN0aW9uTWFuYWdlcjo6Z2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAq
IFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBs
dWdpblByb3h5OjpzZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjph
Y2Nlc3NpYmlsaXR5UG9zaXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9xdC9XZWJQYWdl
UXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwZXJmb3JtRGVmYXVsdEJlaGF2aW9y
Rm9yS2V5RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZW5kQ29tcGxleFRleHRJ
bnB1dFRvUGx1Z2luKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VX
aW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZW5kQ29tcGxleFRleHRJbnB1dFRv
UGx1Z2luKToKKwogMjAxMS0wMy0xMCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IE1hcmsgUm93ZS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAJKHJldmlzaW9u
IDgwNzgwKQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVy
UHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjQsMTAgKzI2NCwxMiBAQCB2b2lkIFBsdWdp
bkNvbnRyb2xsZXJQcm94eTo6c2V0Q29tcGxleFRlCiAgICAgbV9jb25uZWN0aW9uLT5jb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBsdWdpblByb3h5OjpTZXRDb21wbGV4VGV4dElucHV0RW5h
YmxlZChjb21wbGV4VGV4dElucHV0RW5hYmxlZCksIG1fcGx1Z2luSW5zdGFuY2VJRCk7CiB9CiAK
KyNpZiBQTEFURk9STShNQUMpCiBtYWNoX3BvcnRfdCBQbHVnaW5Db250cm9sbGVyUHJveHk6OmNv
bXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpCiB7CiAgICAgcmV0dXJuIFBsdWdpblByb2Nlc3M6
OnNoYXJlZCgpLmNvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpOwogfQorI2VuZGlmCiAKIFN0
cmluZyBQbHVnaW5Db250cm9sbGVyUHJveHk6OnByb3hpZXNGb3JVUkwoY29uc3QgU3RyaW5nJiB1
cmxTdHJpbmcpCiB7CkBAIC00NzgsMTQgKzQ4MCwxMyBAQCB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQ
cm94eTo6d2luZG93VmlzaWJpCiB7CiAgICAgbV9wbHVnaW4tPndpbmRvd1Zpc2liaWxpdHlDaGFu
Z2VkKGlzVmlzaWJsZSk7CiB9CisjZW5kaWYKIAogdm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6
OnNlbmRDb21wbGV4VGV4dElucHV0KGNvbnN0IFN0cmluZyYgdGV4dElucHV0KQogewogICAgIG1f
cGx1Z2luLT5zZW5kQ29tcGxleFRleHRJbnB1dCh0ZXh0SW5wdXQpOwogfQogCi0jZW5kaWYKLQog
dm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OnByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChi
b29sIGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKIHsKICAgICBtX3BsdWdpbi0+cHJpdmF0ZUJy
b3dzaW5nU3RhdGVDaGFuZ2VkKGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5
LmgJKHJldmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVn
aW5Db250cm9sbGVyUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtOTAsOCArOTAsOCBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCk7
CiAgICAgdmlydHVhbCB2b2lkIHBsdWdpblByb2Nlc3NDcmFzaGVkKCk7CiAKLSNpZiBQTEFURk9S
TShNQUMpCiAgICAgdmlydHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKGJvb2wp
OworI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIG1hY2hfcG9ydF90IGNvbXBvc2l0aW5n
UmVuZGVyU2VydmVyUG9ydCgpOwogI2VuZGlmCiAKQEAgLTEzMCw4ICsxMzAsOCBAQCBwcml2YXRl
OgogICAgIHZvaWQgd2luZG93Rm9jdXNDaGFuZ2VkKGJvb2wpOwogICAgIHZvaWQgd2luZG93QW5k
Vmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgd2luZG93RnJhbWVJblNj
cmVlbkNvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2aWV3RnJhbWVJbldpbmRv
d0Nvb3JkaW5hdGVzKTsKICAgICB2b2lkIHdpbmRvd1Zpc2liaWxpdHlDaGFuZ2VkKGJvb2wpOwot
ICAgIHZvaWQgc2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpOwog
I2VuZGlmCisgICAgdm9pZCBzZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJ
bnB1dCk7CiAKICAgICB2b2lkIHByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChib29sKTsKIApA
QCAtMTcyLDEwICsxNzIsMTAgQEAgcHJpdmF0ZToKICAgICAvLyBXaGV0aGVyIHRoZSBwbHVnLWlu
IGhhcyBjYW5jZWxlZCB0aGUgbWFudWFsIHN0cmVhbSBsb2FkLgogICAgIGJvb2wgbV9wbHVnaW5D
YW5jZWxlZE1hbnVhbFN0cmVhbUxvYWQ7CiAKLSNpZiBQTEFURk9STShNQUMpCiAgICAgLy8gV2hl
dGhlciBjb21wbGV4IHRleHQgaW5wdXQgaXMgZW5hYmxlZCBmb3IgdGhpcyBwbHVnLWluLgogICAg
IGJvb2wgbV9pc0NvbXBsZXhUZXh0SW5wdXRFbmFibGVkOwogCisjaWYgUExBVEZPUk0oTUFDKQog
ICAgIC8vIEZvciBDQSBwbHVnLWlucywgdGhpcyBob2xkcyB0aGUgaW5mb3JtYXRpb24gbmVlZGVk
IHRvIGV4cG9ydCB0aGUgbGF5ZXIgaGllcmFyY2h5IHRvIHRoZSBVSSBwcm9jZXNzLgogICAgIFJl
dGFpblB0cjxXS0NBUmVtb3RlTGF5ZXJDbGllbnRSZWY+IG1fcmVtb3RlTGF5ZXJDbGllbnQ7CiAj
ZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9j
ZXNzLmNwcAkocmV2aXNpb24gODA3ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNz
L1BsdWdpblByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBACiAjaWYg
RU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLSNp
bmNsdWRlICJNYWNoUG9ydC5oIgogI2luY2x1ZGUgIk5ldHNjYXBlUGx1Z2luTW9kdWxlLmgiCiAj
aW5jbHVkZSAiUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJQbHVnaW5Q
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCkBAIC0xMjUsMjUgKzEyNCw2IEBAIHZvaWQgUGx1
Z2luUHJvY2Vzczo6aW5pdGlhbGl6ZVBsdWdpblByb2MKICAgICBwbGF0Zm9ybUluaXRpYWxpemUo
cGFyYW1ldGVycyk7CiB9CiAKLXZvaWQgUGx1Z2luUHJvY2Vzczo6Y3JlYXRlV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24oKQotewotICAgIC8vIEZJWE1FOiBUaGlzIGlzIHBsYXRmb3JtIHNwZWNpZmljIQot
Ci0gICAgLy8gQ3JlYXRlIHRoZSBsaXN0ZW5pbmcgcG9ydC4KLSAgICBtYWNoX3BvcnRfdCBsaXN0
ZW5pbmdQb3J0OwotICAgIG1hY2hfcG9ydF9hbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBNQUNI
X1BPUlRfUklHSFRfUkVDRUlWRSwgJmxpc3RlbmluZ1BvcnQpOwotCi0gICAgLy8gQ3JlYXRlIGEg
bGlzdGVuaW5nIGNvbm5lY3Rpb24uCi0gICAgUmVmUHRyPFdlYlByb2Nlc3NDb25uZWN0aW9uPiBj
b25uZWN0aW9uID0gV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShsaXN0ZW5pbmdQb3J0KTsK
LSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQoY29ubmVjdGlvbi5yZWxlYXNlKCkp
OwotCi0gICAgQ29yZUlQQzo6TWFjaFBvcnQgY2xpZW50UG9ydChsaXN0ZW5pbmdQb3J0LCBNQUNI
X01TR19UWVBFX01BS0VfU0VORCk7Ci0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpQ
bHVnaW5Qcm9jZXNzUHJveHk6OkRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKGNsaWVudFBv
cnQpLCAwKTsKLQotICAgIC8vIFN0b3AgdGhlIHNodXRkb3duIHRpbWVyLgotICAgIG1fc2h1dGRv
d25UaW1lci5zdG9wKCk7Ci19Ci0KIHZvaWQgUGx1Z2luUHJvY2Vzczo6Z2V0U2l0ZXNXaXRoRGF0
YSh1aW50NjRfdCBjYWxsYmFja0lEKQogewogICAgIFZlY3RvcjxTdHJpbmc+IHNpdGVzOwpJbmRl
eDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29u
bmVjdGlvbi5jcHAJKHJldmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2NywxMCAr
MTY3LDEyIEBAIHZvaWQgV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZVBsdWdpbigKICAgICAv
LyBOb3cgdHJ5IHRvIGluaXRpYWxpemUgdGhlIHBsdWctaW4uCiAgICAgcmVzdWx0ID0gcGx1Z2lu
Q29udHJvbGxlclByb3h5UHRyLT5pbml0aWFsaXplKHBhcmFtZXRlcnMpOwogCisjaWYgUExBVEZP
Uk0oTUFDKQogICAgIGlmIChyZXN1bHQpIHsKICAgICAgICAgcmVtb3RlTGF5ZXJDbGllbnRJRCA9
IHBsdWdpbkNvbnRyb2xsZXJQcm94eVB0ci0+cmVtb3RlTGF5ZXJDbGllbnRJRCgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQorI2VuZGlmCiAKICAgICAvLyBXZSBmYWlsZWQgdG8gaW5pdGlhbGl6
ZSwgcmVtb3ZlIHRoZSBwbHVnLWluIGNvbnRyb2xsZXIuIFRoaXMgY291bGQgY2F1c2UgdXMgdG8g
YmUgZGVsZXRlZC4KICAgICByZW1vdmVQbHVnaW5Db250cm9sbGVyUHJveHkocGx1Z2luQ29udHJv
bGxlclByb3h5UHRyKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1Bs
dWdpblByb2Nlc3NNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbQkocmV2aXNpb24gODA3ODApCisrKyBTb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0zMSw2ICszMSw3IEBACiAvLyBGSVhNRSAoV2ViS2l0MikgPHJkYXI6Ly9wcm9ibGVt
Lzg3Mjg4NjA+IFdlYktpdDIgbmVlZHMgdG8gYmUgbG9jYWxpemVkCiAjZGVmaW5lIFVJX1NUUklO
RyhfX3N0ciwgX19kZXNjKSBbTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhTdHJpbmc6X19zdHJdCiAK
KyNpbmNsdWRlICJNYWNoUG9ydC5oIgogI2ltcG9ydCAiTmV0c2NhcGVQbHVnaW4uaCIKICNpbXBv
cnQgIlBsdWdpblByb2Nlc3NTaGltLmgiCiAjaW1wb3J0ICJQbHVnaW5Qcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgiCkBAIC0xMDMsNiArMTA0LDIzIEBAIHZvaWQgUGx1Z2luUHJvY2Vzczo6cGxh
dGZvcm1Jbml0aWFsaXplKGMKICAgICBXS1NldFZpc2libGVBcHBsaWNhdGlvbk5hbWUoKENGU3Ry
aW5nUmVmKWFwcGxpY2F0aW9uTmFtZSk7CiB9CiAKK3ZvaWQgUGx1Z2luUHJvY2Vzczo6Y3JlYXRl
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQoreworICAgIC8vIENyZWF0ZSB0aGUgbGlzdGVuaW5nIHBv
cnQuCisgICAgbWFjaF9wb3J0X3QgbGlzdGVuaW5nUG9ydDsKKyAgICBtYWNoX3BvcnRfYWxsb2Nh
dGUobWFjaF90YXNrX3NlbGYoKSwgTUFDSF9QT1JUX1JJR0hUX1JFQ0VJVkUsICZsaXN0ZW5pbmdQ
b3J0KTsKKworICAgIC8vIENyZWF0ZSBhIGxpc3RlbmluZyBjb25uZWN0aW9uLgorICAgIFJlZlB0
cjxXZWJQcm9jZXNzQ29ubmVjdGlvbj4gY29ubmVjdGlvbiA9IFdlYlByb2Nlc3NDb25uZWN0aW9u
OjpjcmVhdGUobGlzdGVuaW5nUG9ydCk7CisgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMuYXBw
ZW5kKGNvbm5lY3Rpb24ucmVsZWFzZSgpKTsKKworICAgIENvcmVJUEM6Ok1hY2hQb3J0IGNsaWVu
dFBvcnQobGlzdGVuaW5nUG9ydCwgTUFDSF9NU0dfVFlQRV9NQUtFX1NFTkQpOworICAgIG1fY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpEaWRDcmVhdGVXZWJQ
cm9jZXNzQ29ubmVjdGlvbihjbGllbnRQb3J0KSwgMCk7CisKKyAgICAvLyBTdG9wIHRoZSBzaHV0
ZG93biB0aW1lci4KKyAgICBtX3NodXRkb3duVGltZXIuc3RvcCgpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc1F0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nlc3NRdC5j
cHAJKHJldmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9Q
bHVnaW5Qcm9jZXNzUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSwxMSBAQCB2b2lk
IFBsdWdpblByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZShjCiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKIH0KIAordm9pZCBQbHVnaW5Qcm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbigp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
ICNlbmRpZiAvLyBFTkFCTEUoUExVR0lOX1BST0NFU1MpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvUGFnZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QYWdlQ2xpZW50LmgJKHJldmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BhZ2VDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDggKzEyNiw4IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIEhXTkQgbmF0aXZlV2luZG93KCkgPSAwOwogI2VuZGlmCiAKLSNp
ZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRFbmFi
bGVkKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBib29sIGNvbXBs
ZXhUZXh0SW5wdXRFbmFibGVkKSA9IDA7CisjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwg
dm9pZCBzZXRBdXRvZGlzcGxheShib29sKSA9IDA7CiAgICAgdmlydHVhbCBDR0NvbnRleHRSZWYg
Y29udGFpbmluZ1dpbmRvd0dyYXBoaWNzQ29udGV4dCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgU3RyaW5nJiwgZG91YmxlIHNjYWxlRmFj
dG9yLCBjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJikgPSAwOwpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDgwNzgwKQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIw
NTEsNyArMjA1MSw2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZWxlY3Rpb25TdGF0ZUNoYW5nZWQK
ICAgICBtX3NlbGVjdGlvblN0YXRlID0gc2VsZWN0aW9uU3RhdGU7CiB9CiAKLSNpZiBQTEFURk9S
TShNQUMpCiAvLyBDb21wbGV4IHRleHQgaW5wdXQgc3VwcG9ydCBmb3IgcGx1Zy1pbnMuCiB2b2lk
IFdlYlBhZ2VQcm94eTo6c2VuZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbih1aW50NjRfdCBwbHVn
aW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpCiB7
CkBAIC0yMDYwLDcgKzIwNTksNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2VuZENvbXBsZXhUZXh0
SW5wdXRUCiAgICAgCiAgICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5k
Q29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVy
LCB0ZXh0SW5wdXQpLCBtX3BhZ2VJRCk7CiB9Ci0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikK
IHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VDb21wb3NpdGlvblNlbGVjdGlvbihib29sIGhh
c0NvbXBvc2l0aW9uKQpAQCAtMjgxNCwxMiArMjgxMiwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkRmluaXNoTG9hZGluZ0RhdGFGCiAgICAgbV9wYWdlQ2xpZW50LT5kaWRGaW5pc2hMb2FkaW5n
RGF0YUZvckN1c3RvbVJlcHJlc2VudGF0aW9uKHN1Z2dlc3RlZEZpbGVuYW1lLCBkYXRhUmVmZXJl
bmNlKTsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRDb21w
bGV4VGV4dElucHV0RW5hYmxlZCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRp
ZmllciwgYm9vbCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCkKIHsKICAgICBtX3BhZ2VDbGllbnQt
PnNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlm
aWVyLCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCk7CiB9CiAKKyNpZiBQTEFURk9STShNQUMpCiB2
b2lkIFdlYlBhZ2VQcm94eTo6c2V0QXV0b2Rpc3BsYXkoYm9vbCBuZXdTdGF0ZSkKIHsKICAgICBt
X3BhZ2VDbGllbnQtPnNldEF1dG9kaXNwbGF5KG5ld1N0YXRlKTsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNjMsOSAr
MjYzLDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGdldE1hcmtlZFJhbmdlKHVpbnQ2NF90JiBsb2Nh
dGlvbiwgdWludDY0X3QmIGxlbmd0aCk7CiAgICAgdWludDY0X3QgY2hhcmFjdGVySW5kZXhGb3JQ
b2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCk7CiAgICAgV2ViQ29yZTo6SW50UmVjdCBmaXJz
dFJlY3RGb3JDaGFyYWN0ZXJSYW5nZSh1aW50NjRfdCwgdWludDY0X3QpOwotICAgIHZvaWQgc2Vu
ZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbih1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpOwogICAgIENHQ29udGV4dFJlZiBj
b250YWluaW5nV2luZG93R3JhcGhpY3NDb250ZXh0KCk7CiAjZW5kaWYKKworICAgIHZvaWQgc2Vu
ZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbih1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpOworCiAjaWYgUExBVEZPUk0oV0lO
KQogICAgIHZvaWQgZGlkQ2hhbmdlQ29tcG9zaXRpb25TZWxlY3Rpb24oYm9vbCk7CiAgICAgdm9p
ZCBjb25maXJtQ29tcG9zaXRpb24oY29uc3QgU3RyaW5nJik7CkBAIC02MzksOSArNjQxLDcgQEAg
cHJpdmF0ZToKIAogICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21SZXByZXNl
bnRhdGlvbihjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lLCBjb25zdCBDb3JlSVBDOjpE
YXRhUmVmZXJlbmNlJik7CiAKLSNpZiBQTEFURk9STShNQUMpCiAgICAgdm9pZCBzZXRDb21wbGV4
VGV4dElucHV0RW5hYmxlZCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmll
ciwgYm9vbCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCk7Ci0jZW5kaWYKIAogICAgIHN0YXRpYyBT
dHJpbmcgc3RhbmRhcmRVc2VyQWdlbnQoY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvbk5hbWUgPSBT
dHJpbmcoKSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gODA3ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xODAs
MTAgKzE4MCw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgIyBHZW9sb2NhdGlv
biBtZXNzYWdlcwogICAgIFJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50
NjRfdCBnZW9sb2NhdGlvbklELCB1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmluZyBvcmlnaW5J
ZGVudGlmaWVyKQogCi0jaWYgUExBVEZPUk0oTUFDKQogICAgICMgUGx1Zy1pbiBjb21wbGV4IHRl
eHQgaW5wdXQgc3VwcG9ydCBtZXNzYWdlcwogICAgIFNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVk
KHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBib29sIGNvbXBsZXhU
ZXh0SW5wdXRFbmFibGVkKQotI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgIyBTcGVl
Y2ggbWVzc2FnZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFn
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tw
YWdlLmNwcAkocmV2aXNpb24gODA3ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3F3a3BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzUsNiArMjc1LDExIEBAIHZvaWQg
UVdLUGFnZVByaXZhdGU6OnBhaW50KFFQYWludGVyKiBwYWkKICAgICAgICAgcGFpbnRlci0+Zmls
bFJlY3QoYXJlYSwgUXQ6OndoaXRlKTsKIH0KIAordm9pZCBRV0tQYWdlUHJpdmF0ZTo6c2V0Q29t
cGxleFRleHRJbnB1dEVuYWJsZWQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50
aWZpZXIsIGJvb2wgY29tcGxleFRleHRJbnB1dEVuYWJsZWQpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwogdm9pZCBRV0tQYWdlUHJpdmF0ZTo6a2V5UHJlc3NFdmVudChRS2V5RXZlbnQq
IGV2KQogewogICAgIHBhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRF
dmVudChldikpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdl
X3AuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3Bh
Z2VfcC5oCShyZXZpc2lvbiA4MDc4MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXdrcGFnZV9wLmgJKHdvcmtpbmcgY29weSkKQEAgLTkyLDYgKzkyLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgZG91YmxlIGN1c3RvbVJlcHJlc2VudGF0aW9uWm9vbUZhY3RvcigpIHsgcmV0
dXJuIDE7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3VzdG9tUmVwcmVzZW50YXRpb25ab29tRmFj
dG9yKGRvdWJsZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVNjcm9sbGJhcnNGb3JN
YWluRnJhbWUoKSBjb25zdCB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1
dEVuYWJsZWQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wg
Y29tcGxleFRleHRJbnB1dEVuYWJsZWQpOwogCiAgICAgdmlydHVhbCB2b2lkIGZsYXNoQmFja2lu
Z1N0b3JlVXBkYXRlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4mIHVwZGF0ZVJlY3Rz
KTsKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vz
c1Byb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCShyZXZpc2lvbiA4MDc4MCkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI4LDcgKzI4LDkgQEAKIAogI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKIAorI2lm
IFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJNYWNoUG9ydC5oIgorI2VuZGlmCiAjaW5jbHVkZSAi
UGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nl
c3NNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc01lc3NhZ2VzLmgiCkBAIC0xMzAs
OCArMTMyLDEyIEBAIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpwbHVnaW5Qcm9jZXNzQ3IKICAg
ICAgICAgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiByZXBseSA9IG1fcGVuZGluZ0Nvbm5lY3Rp
b25SZXBsaWVzLmZpcnN0KCkuc2Vjb25kOwogICAgICAgICBtX3BlbmRpbmdDb25uZWN0aW9uUmVw
bGllcy5yZW1vdmVGaXJzdCgpOwogCi0gICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIE1hYyBzcGVj
aWZpYy4KKyNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIHJlcGx5LT5lbmNvZGUoQ29yZUlQQzo6
TWFjaFBvcnQoMCwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpKTsKKyNlbHNlCisgICAgICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQuCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlm
CiAgICAgICAgIHJlcGx5V2ViUHJvY2Vzc1Byb3h5LT5jb25uZWN0aW9uKCktPnNlbmRTeW5jUmVw
bHkocmVwbHkpOwogICAgIH0KIApAQCAtMTk4LDYgKzIwNCw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vz
c1Byb3h5OjpkaWRGaW5pc2hMYXVuY2gKICAgICBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVz
dHMgPSAwOwogfQogCisjaWYgUExBVEZPUk0oTUFDKQogdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6
OmRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IENvcmVJUEM6Ok1hY2hQb3J0JiBt
YWNoUG9ydCkKIHsKICAgICBBU1NFUlQoIW1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmlzRW1w
dHkoKSk7CkBAIC0yMDcsMTAgKzIxNCwxMCBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6ZGlk
Q3JlYXRlV2ViUHJvCiAgICAgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiByZXBseSA9IG1fcGVu
ZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmZpcnN0KCkuc2Vjb25kOwogICAgIG1fcGVuZGluZ0Nvbm5l
Y3Rpb25SZXBsaWVzLnJlbW92ZUZpcnN0KCk7CiAKLSAgICAvLyBGSVhNRTogVGhpcyBpcyBNYWMg
c3BlY2lmaWMuCiAgICAgcmVwbHktPmVuY29kZShDb3JlSVBDOjpNYWNoUG9ydChtYWNoUG9ydC5w
b3J0KCksIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKSk7CiAgICAgcmVwbHlXZWJQcm9jZXNzUHJv
eHktPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmNSZXBseShyZXBseSk7CiB9CisjZW5kaWYKIAogdm9p
ZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZEdldFNpdGVzV2l0aERhdGEoY29uc3QgVmVjdG9yPFN0
cmluZz4mIHNpdGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgJKHJl
dmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc1Byb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTc3LDcgKzc3LDkgQEAgcHJpdmF0ZToK
IAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKICAgICB2b2lkIGRpZFJlY2VpdmVQbHVnaW5Qcm9j
ZXNzUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lk
IGRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IENvcmVJUEM6Ok1hY2hQb3J0Jik7
CisjZW5kaWYKICAgICB2b2lkIGRpZEdldFNpdGVzV2l0aERhdGEoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIHNpdGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGRpZENsZWFyU2l0ZURh
dGEodWludDY0X3QgY2FsbGJhY2tJRCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW4JKHJldmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw4
ICsyMyw5IEBACiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBQbHVn
aW5Qcm9jZXNzUHJveHkgewotICAgICMgRklYTUU6IFRoaXMgaXMgcGxhdGZvcm0gc3BlY2lmaWMK
KyNpZiBQTEFURk9STShNQUMpCiAgICAgRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oQ29y
ZUlQQzo6TWFjaFBvcnQgY29ubmVjdGlvbklkZW50aWZpZXIpCisjZW5kaWYKIAogICAgIERpZEdl
dFNpdGVzV2l0aERhdGEoVmVjdG9yPFdURjo6U3RyaW5nPiBzaXRlcywgdWludDY0X3QgY2FsbGJh
Y2tJRCkKICAgICBEaWRDbGVhclNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlZpZXcuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViVmlldy5jcHAJKHJldmlzaW9uIDgwNzgwKQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJWaWV3LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjk5LDYgKzI5OSwxMSBAQCB2b2lkIFdlYlZpZXc6OmRpZENoYW5nZVNjcm9sbGJhcnNG
b3JNYWluCiB7CiB9CiAKK3ZvaWQgV2ViVmlldzo6c2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQo
dWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgY29tcGxleFRl
eHRJbnB1dEVuYWJsZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogdm9pZCBXZWJW
aWV3OjpmbGFzaEJhY2tpbmdTdG9yZVVwZGF0ZXMoY29uc3QgVmVjdG9yPEludFJlY3Q+JikKIHsK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0
ay9XZWJWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9X
ZWJWaWV3LmgJKHJldmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0
ay9XZWJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMSw2ICsxMDEsNyBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb250ZXh0TWVudVByb3h5PiBjcmVhdGVDb250ZXh0
TWVudVByb3h5KFdlYlBhZ2VQcm94eSopOwogICAgIHZpcnR1YWwgdm9pZCBzZXRGaW5kSW5kaWNh
dG9yKFBhc3NSZWZQdHI8RmluZEluZGljYXRvcj4sIGJvb2wgZmFkZU91dCk7CiAgICAgdmlydHVh
bCB2b2lkIGRpZENoYW5nZVNjcm9sbGJhcnNGb3JNYWluRnJhbWUoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQodWludDY0X3QgcGx1Z2luQ29tcGxl
eFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgY29tcGxleFRleHRJbnB1dEVuYWJsZWQpOwogICAg
IHZpcnR1YWwgdm9pZCBmbGFzaEJhY2tpbmdTdG9yZVVwZGF0ZXMoY29uc3QgVmVjdG9yPFdlYkNv
cmU6OkludFJlY3Q+JiB1cGRhdGVSZWN0cyk7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAJKHJl
dmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTE5Myw2ICsxMTkzLDEwIEBAIHZvaWQgV2ViVmlldzo6ZGlk
Q2hhbmdlU2Nyb2xsYmFyc0Zvck1haW4KIHsKIH0KIAordm9pZCBXZWJWaWV3OjpzZXRDb21wbGV4
VGV4dElucHV0RW5hYmxlZCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmll
ciwgYm9vbCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCkKK3sKK30KKwogdm9pZCBXZWJWaWV3Ojpz
ZXRJc0luV2luZG93KGJvb2wgaXNJbldpbmRvdykKIHsKICAgICBtX2lzSW5XaW5kb3cgPSBpc0lu
V2luZG93OwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmgJKHJldmlz
aW9uIDgwNzgwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmgJKHdv
cmtpbmcgY29weSkKQEAgLTE3NSw2ICsxNzUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRDdXN0b21SZXByZXNlbnRhdGlvblpvb21GYWN0b3IoZG91YmxlKTsKICAgICBXZWJDb3Jl
OjpEcmFnT3BlcmF0aW9uIGtleVN0YXRlVG9EcmFnT3BlcmF0aW9uKERXT1JEIGdyZktleVN0YXRl
KSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsYmFyc0Zvck1haW5GcmFt
ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZCh1
aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgYm9vbCBjb21wbGV4VGV4
dElucHV0RW5hYmxlZCk7CiAKICAgICB2aXJ0dWFsIEhXTkQgbmF0aXZlV2luZG93KCk7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgJKHJldmlzaW9u
IDgwNzgwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xNTQsMTMgKzE1NCwxMyBAQCBwdWJsaWM6CiAKICAgICAvLyBUZWxs
cyB0aGUgcGx1Zy1pbiBhYm91dCB3aW5kb3cgdmlzaWJpbGl0eSBjaGFuZ2VzLgogICAgIHZpcnR1
YWwgdm9pZCB3aW5kb3dWaXNpYmlsaXR5Q2hhbmdlZChib29sKSA9IDA7CisjZW5kaWYKIAogICAg
IC8vIEdldCB0aGUgcGVyIGNvbXBsZXggdGV4dCBpbnB1dCBpZGVudGlmaWVyLgogICAgIHZpcnR1
YWwgdWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIoKSBjb25zdCA9IDA7
CiAKICAgICAvLyBTZW5kIHRoZSBjb21wbGV4IHRleHQgaW5wdXQgdG8gdGhlIHBsdWctaW4uCiAg
ICAgdmlydHVhbCB2b2lkIHNlbmRDb21wbGV4VGV4dElucHV0KGNvbnN0IFN0cmluZyYgdGV4dElu
cHV0KSA9IDA7Ci0jZW5kaWYKIAogICAgIC8vIENhbGxlZCB3aGVuIHRoZSBwcml2YXRlIGJyb3dz
aW5nIHN0YXRlIGZvciB0aGlzIHBsdWctaW4gY2hhbmdlcy4KICAgICB2aXJ0dWFsIHZvaWQgcHJp
dmF0ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkKGJvb2wpID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkNvbnRyb2xsZXIuaAkocmV2aXNp
b24gODA3ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luQ29u
dHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC04OCwxMCArODgsMTAgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgSFdORCBuYXRpdmVQYXJlbnRXaW5kb3coKSA9IDA7CiAjZW5kaWYKIAotI2lmIFBM
QVRGT1JNKE1BQykKICAgICAvLyBUZWxscyB0aGUgY29udHJvbGxlciB0aGF0IGNvbXBsZXggdGV4
dCBpbnB1dCBiZSBlbmFibGVkIG9yIGRpc2FibGVkIGZvciB0aGUgcGx1Zy1pbi4KICAgICB2aXJ0
dWFsIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQoYm9vbCkgPSAwOwogCisjaWYgUExB
VEZPUk0oTUFDKQogICAgIC8vIFJldHVybnMgdGhlIG1hY2ggcG9ydCBvZiB0aGUgY29tcG9zaXRp
bmcgcmVuZGVyIHNlcnZlci4KICAgICB2aXJ0dWFsIG1hY2hfcG9ydF90IGNvbXBvc2l0aW5nUmVu
ZGVyU2VydmVyUG9ydCgpID0gMDsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25u
ZWN0aW9uTWFuYWdlci5jcHAJKHJldmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMwLDcgKzMwLDkgQEAKIAogI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5o
IgogI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2lmIFBMQVRGT1JNKE1BQykKICNpbmNs
dWRlICJNYWNoUG9ydC5oIgorI2VuZGlmCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b24uaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQ
cm9jZXNzLmgiCkBAIC02MSwxMSArNjMsMTcgQEAgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24qIFBs
dWdpblByb2Nlc3NDbwogICAgIH0KIAogICAgIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZp
ZXIgY29ubmVjdGlvbklkZW50aWZpZXI7CisjaWYgUExBVEZPUk0oTUFDKQogICAgIENvcmVJUEM6
Ok1hY2hQb3J0IGNvbm5lY3Rpb25NYWNoUG9ydDsKICAgICBpZiAoIVdlYlByb2Nlc3M6OnNoYXJl
ZCgpLmNvbm5lY3Rpb24oKS0+ZGVwcmVjYXRlZFNlbmRTeW5jKFdlYlByb2Nlc3NQcm94eUxlZ2Fj
eU1lc3NhZ2U6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uLCAwLCBDb3JlSVBDOjpJbihwbHVn
aW5QYXRoKSwgQ29yZUlQQzo6T3V0KGNvbm5lY3Rpb25NYWNoUG9ydCkpKQogICAgICAgICByZXR1
cm4gMDsKIAogICAgIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gY29ubmVjdGlvbk1hY2hQb3J0LnBv
cnQoKTsKKyNlbHNlCisgICAgLy8gRklYTUU6IEltcGxlbWVudC4KKyAgICBjb25uZWN0aW9uSWRl
bnRpZmllciA9IDA7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisjZW5kaWYKICAgICBpZiAo
IWNvbm5lY3Rpb25JZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gMDsKIApJbmRleDogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwCShyZXZp
c2lvbiA4MDc4MCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzNyw2ICszMzcsNyBAQCB2b2lkIFBsdWdpblBy
b3h5Ojp3aW5kb3dWaXNpYmlsaXR5Q2hhbmdlCiB7CiAgICAgbV9jb25uZWN0aW9uLT5jb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6V2luZG93VmlzaWJp
bGl0eUNoYW5nZWQoaXNWaXNpYmxlKSwgbV9wbHVnaW5JbnN0YW5jZUlEKTsKIH0KKyNlbmRpZgog
CiB1aW50NjRfdCBQbHVnaW5Qcm94eTo6cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIo
KSBjb25zdAogewpAQCAtMzQ4LDggKzM0OSw2IEBAIHZvaWQgUGx1Z2luUHJveHk6OnNlbmRDb21w
bGV4VGV4dElucHV0KGMKICAgICBtX2Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6UGx1Z2luQ29udHJvbGxlclByb3h5OjpTZW5kQ29tcGxleFRleHRJbnB1dCh0ZXh0SW5w
dXQpLCBtX3BsdWdpbkluc3RhbmNlSUQpOwogfQogCi0jZW5kaWYKLQogdm9pZCBQbHVnaW5Qcm94
eTo6cHJpdmF0ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkKGJvb2wgaXNQcml2YXRlQnJvd3NpbmdFbmFi
bGVkKQogewogICAgIG1fY29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpQ
bHVnaW5Db250cm9sbGVyUHJveHk6OlByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChpc1ByaXZh
dGVCcm93c2luZ0VuYWJsZWQpLCBtX3BsdWdpbkluc3RhbmNlSUQpOwpAQCAtNDQwLDEyICs0Mzks
MTAgQEAgdm9pZCBQbHVnaW5Qcm94eTo6c2V0U3RhdHVzYmFyVGV4dChjb25zdAogICAgIG1fcGx1
Z2luQ29udHJvbGxlci0+c2V0U3RhdHVzYmFyVGV4dChzdGF0dXNiYXJUZXh0KTsKIH0KIAotI2lm
IFBMQVRGT1JNKE1BQykKIHZvaWQgUGx1Z2luUHJveHk6OnNldENvbXBsZXhUZXh0SW5wdXRFbmFi
bGVkKGJvb2wgY29tcGxleFRleHRJbnB1dEVuYWJsZWQpCiB7CiAgICAgbV9wbHVnaW5Db250cm9s
bGVyLT5zZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZChjb21wbGV4VGV4dElucHV0RW5hYmxlZCk7
CiB9Ci0jZW5kaWYKICAgICAKIHZvaWQgUGx1Z2luUHJveHk6OnVwZGF0ZShjb25zdCBJbnRSZWN0
JiBwYWludGVkUmVjdCkKIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm94eS5oCShyZXZpc2lvbiA4MDc4MCkKKysrIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC05Miw5
ICs5Miw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHdpbmRvd0ZvY3VzQ2hhbmdlZChi
b29sKTsKICAgICB2aXJ0dWFsIHZvaWQgd2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKTsKICAgICB2aXJ0
dWFsIHZvaWQgd2luZG93VmlzaWJpbGl0eUNoYW5nZWQoYm9vbCk7CisjZW5kaWYKICAgICB2aXJ0
dWFsIHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkgY29uc3Q7CiAg
ICAgdmlydHVhbCB2b2lkIHNlbmRDb21wbGV4VGV4dElucHV0KGNvbnN0IFN0cmluZyYgdGV4dElu
cHV0KTsKLSNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHByaXZhdGVCcm93c2luZ1N0YXRlQ2hh
bmdlZChib29sKTsKIApAQCAtMTE0LDkgKzExNCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjYW5j
ZWxTdHJlYW1Mb2FkKHVpbnQ2NF90IHN0cmVhbUlEKTsKICAgICB2b2lkIGNhbmNlbE1hbnVhbFN0
cmVhbUxvYWQoKTsKICAgICB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJiBzdGF0
dXNiYXJUZXh0KTsKLSNpZiBQTEFURk9STShNQUMpCiAgICAgdm9pZCBzZXRDb21wbGV4VGV4dElu
cHV0RW5hYmxlZChib29sKTsKLSNlbmRpZgogCiAgICAgU3RyaW5nIG1fcGx1Z2luUGF0aDsKIApJ
bmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5Lm1lc3Nh
Z2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gODA3ODApCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29w
eSkKQEAgLTU2LDEwICs1Niw4IEBAIG1lc3NhZ2VzIC0+IFBsdWdpblByb3h5IHsKICAgICAjIFNl
dCB0aGUgc3RhdHVzIGJhciB0ZXh0LgogICAgIFNldFN0YXR1c2JhclRleHQoV1RGOjpTdHJpbmcg
c3RhdHVzYmFyVGV4dCkKIAotI2lmIFBMQVRGT1JNKE1BQykKICAgICAjIENoYW5nZSB3aGV0aGVy
IGNvbXBsZXh0IHRleHQgaW5wdXQgaXMgZW5hYmxlZCBmb3IgdGhpcyBwbHVnLWluLgogICAgIFNl
dENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKGJvb2wgY29tcGxleFRleHRJbnB1dEVuYWJsZWQpCi0j
ZW5kaWYKIH0KIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCShyZXZpc2lvbiA4MDc4MCkKKysrIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
Mzk3LDYgKzM5Nyw3IEBAIHZvaWQgUGx1Z2luVmlldzo6d2luZG93QW5kVmlld0ZyYW1lc0NoYW4K
IAogICAgIG1fcGx1Z2luLT53aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZCh3aW5kb3dGcmFtZUlu
U2NyZWVuQ29vcmRpbmF0ZXMsIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMpOwogfQorI2Vu
ZGlmCiAKIGJvb2wgUGx1Z2luVmlldzo6c2VuZENvbXBsZXhUZXh0SW5wdXQodWludDY0X3QgcGx1
Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdGV4dElucHV0KQog
ewpAQCAtNDEwLDggKzQxMSw2IEBAIGJvb2wgUGx1Z2luVmlldzo6c2VuZENvbXBsZXhUZXh0SW5w
dXQodWkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotI2VuZGlmCi0KIHZvaWQgUGx1Z2luVmlldzo6
aW5pdGlhbGl6ZVBsdWdpbigpCiB7CiAgICAgaWYgKG1faXNJbml0aWFsaXplZCkKQEAgLTk4OSwx
MiArOTg4LDEyIEBAIEhXTkQgUGx1Z2luVmlldzo6bmF0aXZlUGFyZW50V2luZG93KCkKIH0KICNl
bmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKQogdm9pZCBQbHVnaW5WaWV3OjpzZXRDb21wbGV4VGV4
dElucHV0RW5hYmxlZChib29sIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKQogewogICAgIG1fd2Vi
UGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRDb21wbGV4VGV4dElucHV0RW5h
YmxlZChtX3BsdWdpbi0+cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIoKSwgY29tcGxl
eFRleHRJbnB1dEVuYWJsZWQpKTsKIH0KIAorI2lmIFBMQVRGT1JNKE1BQykKIG1hY2hfcG9ydF90
IFBsdWdpblZpZXc6OmNvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpCiB7CiAgICAgcmV0dXJu
IFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpOwpJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCShy
ZXZpc2lvbiA4MDc4MCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5WaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDggKzY0LDggQEAgcHVibGljOgogICAgIHZv
aWQgc2V0V2luZG93SXNWaXNpYmxlKGJvb2wpOwogICAgIHZvaWQgc2V0V2luZG93SXNGb2N1c2Vk
KGJvb2wpOwogICAgIHZvaWQgd2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKTsKLSAgICBib29sIHNlbmRD
b21wbGV4VGV4dElucHV0KHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CiAjZW5kaWYKKyAgICBib29sIHNlbmRDb21wbGV4
VGV4dElucHV0KHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIHRleHRJbnB1dCk7CiAKIHByaXZhdGU6CiAgICAgUGx1Z2luVmlldyhQYXNzUmVm
UHRyPFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50PiwgUGFzc1JlZlB0cjxQbHVnaW4+LCBjb25z
dCBQbHVnaW46OlBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpOwpAQCAtMTMyLDggKzEzMiw4IEBAIHBy
aXZhdGU6CiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHZpcnR1YWwgSFdORCBuYXRpdmVQYXJlbnRX
aW5kb3coKTsKICNlbmRpZgotI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIHZvaWQgc2V0
Q29tcGxleFRleHRJbnB1dEVuYWJsZWQoYm9vbCk7CisjaWYgUExBVEZPUk0oTUFDKQogICAgIHZp
cnR1YWwgbWFjaF9wb3J0X3QgY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCk7CiAjZW5kaWYK
ICAgICB2aXJ0dWFsIFN0cmluZyBwcm94aWVzRm9yVVJMKGNvbnN0IFN0cmluZyYpOwpJbmRleDog
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2lu
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL05ldHNjYXBlUGx1Z2luLmgJKHJldmlzaW9uIDgwNzgwKQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE3MiwxMCArMTcyLDEwIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHdpbmRv
d0ZvY3VzQ2hhbmdlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgd2luZG93QW5kVmlld0ZyYW1l
c0NoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgd2luZG93RnJhbWVJblNjcmVlbkNvb3Jk
aW5hdGVzLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5h
dGVzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2luZG93VmlzaWJpbGl0eUNoYW5nZWQoYm9vbCk7Cisj
ZW5kaWYKIAogICAgIHZpcnR1YWwgdWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50
aWZpZXIoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2VuZENvbXBsZXhUZXh0SW5wdXQoY29u
c3QgU3RyaW5nJiB0ZXh0SW5wdXQpOwotI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgcHJpdmF0
ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkKGJvb2wpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvd2luL05ldHNjYXBlUGx1Z2luV2luLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvd2luL05l
dHNjYXBlUGx1Z2luV2luLmNwcAkocmV2aXNpb24gODA3ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvd2luL05ldHNjYXBlUGx1Z2luV2luLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjkxLDQgKzI5MSwxNiBAQCBib29sIE5ldHNjYXBlUGx1Z2luOjpwbGF0
Zm9ybUhhbmRsZUtleWJvCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIE5ldHNjYXBlUGx1
Z2luOjpzZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit1aW50NjRfdCBOZXRzY2FwZVBsdWdpbjo6cGx1Z2lu
Q29tcGxleFRleHRJbnB1dElkZW50aWZpZXIoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgLy8gSnVzdCByZXR1cm4gYSBkdW1teSB2YWx1ZTsgdGhpcyBpcyBvbmx5IGNhbGxl
ZCBmb3IgaW4tcHJvY2VzcyBwbHVnLWlucworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50NjRf
dD4ocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHRoaXMpKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUveDExL05ldHNjYXBlUGx1Z2luWDExLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUveDExL05ldHNjYXBlUGx1Z2luWDExLmNwcAko
cmV2aXNpb24gODA3ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUveDExL05ldHNjYXBlUGx1Z2luWDExLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzA3LDQg
KzMwNywxNiBAQCBib29sIE5ldHNjYXBlUGx1Z2luOjpwbGF0Zm9ybUhhbmRsZUtleWJvCiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCit2b2lkIE5ldHNjYXBlUGx1Z2luOjpzZW5kQ29tcGxleFRleHRJ
bnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCit1aW50NjRfdCBOZXRzY2FwZVBsdWdpbjo6cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50
aWZpZXIoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgLy8gSnVzdCByZXR1
cm4gYSBkdW1teSB2YWx1ZTsgdGhpcyBpcyBvbmx5IGNhbGxlZCBmb3IgaW4tcHJvY2VzcyBwbHVn
LWlucworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocmVpbnRlcnByZXRfY2FzdDx1
aW50cHRyX3Q+KHRoaXMpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiA4
MDc4MCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTA5LDkgKzEwOSwxMCBAQAogI2VuZGlmCiAKICNpZiBFTkFCTEUo
UExVR0lOX1BST0NFU1MpCi0vLyBGSVhNRTogVGhpcyBpcyBjdXJyZW50bHkgTWFjLXNwZWNpZmlj
IQorI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJNYWNoUG9ydC5oIgogI2VuZGlmCisjZW5k
aWYKIAogI2lmIFBMQVRGT1JNKFFUKQogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkocmV2aXNpb24g
ODA3ODApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOTIsMTMgKzI5MiwxMiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
dm9pZCBnZXRMb2NhdGlvbkFuZExlbmd0aEZyb21SYW5nZShXZWJDb3JlOjpSYW5nZSosIHVpbnQ2
NF90JiBsb2NhdGlvbiwgdWludDY0X3QmIGxlbmd0aCk7CiAKKyAgICB2b2lkIHNlbmRDb21wbGV4
VGV4dElucHV0VG9QbHVnaW4odWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgdGV4dElucHV0KTsKKwogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2
b2lkIHJlZ2lzdGVyVUlQcm9jZXNzQWNjZXNzaWJpbGl0eVRva2Vucyhjb25zdCBDb3JlSVBDOjpE
YXRhUmVmZXJlbmNlJiBlbGVtZW5Ub2tlbiwgY29uc3QgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSYg
d2luZG93VG9rZW4pOwogICAgIEFjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0KiBhY2Nlc3NpYmls
aXR5UmVtb3RlT2JqZWN0KCk7CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgYWNjZXNzaWJpbGl0eVBv
c2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9hY2Nlc3NpYmlsaXR5UG9zaXRpb247IH0gICAgCi0g
ICAgCi0gICAgdm9pZCBzZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdp
bkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7Ci0K
ICAgICB2b2lkIGdldE1hcmtlZFJhbmdlKHVpbnQ2NF90JiBsb2NhdGlvbiwgdWludDY0X3QmIGxl
bmd0aCk7CiAgICAgdm9pZCBjaGFyYWN0ZXJJbmRleEZvclBvaW50KGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50IHBvaW50LCB1aW50NjRfdCYgcmVzdWx0KTsKICAgICB2b2lkIGZpcnN0UmVjdEZvckNo
YXJhY3RlclJhbmdlKHVpbnQ2NF90IGxvY2F0aW9uLCB1aW50NjRfdCBsZW5ndGgsIFdlYkNvcmU6
OkludFJlY3QmIHJlc3VsdFJlY3QpOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHJldmlzaW9uIDgwNzgwKQor
KysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4J
KHdvcmtpbmcgY29weSkKQEAgLTE3MSwxMCArMTcxLDEwIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2Ug
ewogICAgIFNldENhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChib29sIGNhblJ1bkJlZm9y
ZVVubG9hZENvbmZpcm1QYW5lbCkKICAgICBTZXRDYW5SdW5Nb2RhbChib29sIGNhblJ1bk1vZGFs
KQogCi0jaWYgUExBVEZPUk0oTUFDKQogICAgICMgQ29tcGxleCB0ZXh0IGlucHV0IHN1cHBvcnQg
Zm9yIHBsdWctaW5zLgogICAgIFNlbmRDb21wbGV4VGV4dElucHV0VG9QbHVnaW4odWludDY0X3Qg
cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIFN0cmluZyB0ZXh0SW5wdXQpCiAKKyNp
ZiBQTEFURk9STShNQUMpCiAgICAgU2V0V2luZG93SXNWaXNpYmxlKGJvb2wgd2luZG93SXNWaXNp
YmxlKQogICAgIFdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKFdlYkNvcmU6OkludFJlY3Qgd2lu
ZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzLCBXZWJDb3JlOjpJbnRSZWN0IHZpZXdGcmFtZUlu
V2luZG93Q29vcmRpbmF0ZXMsIFdlYkNvcmU6OkludFBvaW50IGFjY2Vzc2liaWxpdHlWaWV3Q29v
cmRpbmF0ZXMpCiAgICAgR2V0TWFya2VkUmFuZ2UoKSAtPiAodWludDY0X3QgbG9jYXRpb24sIHVp
bnQ2NF90IGxlbmd0aCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9x
dC9XZWJQYWdlUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9xdC9XZWJQYWdlUXQuY3BwCShyZXZpc2lvbiA4MDc4MCkKKysrIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9XZWJQYWdlUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Gb2N1c0NvbnRyb2xsZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9LZXlib2FyZEV2ZW50
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgpAQCAtMjY1LDYgKzI2NiwxMiBAQCBib29sIFdl
YlBhZ2U6OnBlcmZvcm1EZWZhdWx0QmVoYXZpb3JGb3JLCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
K3ZvaWQgV2ViUGFnZTo6c2VuZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbih1aW50NjRfdCBwbHVn
aW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpCit7
CisgICAgLy8gRklYTUU6IEltcGxlbWVudAorICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIGJv
b2wgV2ViUGFnZTo6cGxhdGZvcm1IYXNMb2NhbERhdGFGb3JVUkwoY29uc3QgV2ViQ29yZTo6S1VS
TCYpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudApJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3BwCShyZXZpc2lvbiA4
MDc4MCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdp
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0Miw0ICszNDIsOSBAQCB2b2lkIFdlYlBhZ2U6Omdl
dFNlbGVjdGVkVGV4dChTdHJpbmcmIHRlCiAgICAgdGV4dCA9IHNlbGVjdGVkUmFuZ2UtPnRleHQo
KTsKIH0KIAordm9pZCBXZWJQYWdlOjpzZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2
NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRleHRJ
bnB1dCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>85440</attachid>
            <date>2011-03-10 23:55:02 -0800</date>
            <delta_ts>2011-03-10 23:55:02 -0800</delta_ts>
            <desc>Build log</desc>
            <filename>plugin_build.txt</filename>
            <type>text/plain</type>
            <size>9245</size>
            <attacher name="Oleg Romashin (:romaxa)">romaxa</attacher>
            
              <data encoding="base64">ZysrIC1jIC1waXBlIC1XYWxsIC1XZXh0cmEgLVdyZXR1cm4tdHlwZSAtZm5vLXN0cmljdC1hbGlh
c2luZyAtV2Nhc3QtYWxpZ24gLVdjaGFyLXN1YnNjcmlwdHMgLVdmb3JtYXQtc2VjdXJpdHkgLVdy
ZXR1cm4tdHlwZSAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVduby1zaWduLWNvbXBhcmUgLVduby1z
d2l0Y2ggLVduby1zd2l0Y2gtZW51bSAtV3VuZGVmIC1XbWlzc2luZy1ub3JldHVybiAtV2luaXQt
c2VsZiAtV2Vycm9yIC1mZnVuY3Rpb24tc2VjdGlvbnMgLWZkYXRhLXNlY3Rpb25zIC1nIC1EX1JF
RU5UUkFOVCAtZlBJQyAtREVOQUJMRV9QTFVHSU5fUFJPQ0VTUz0xIC1ERU5BQkxFX05FVFNDQVBF
X1BMVUdJTl9BUEk9MSAtREVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSPTAgLURFTkFCTEVfU1ZH
PTAgLURFTkFCTEVfVklERU89MCAtREJVSUxESU5HX1dFQktJVCAtREJVSUxESU5HX1FUX189MSAt
REJVSUxESU5HX0phdmFTY3JpcHRDb3JlIC1EQlVJTERJTkdfV1RGIC1ERU5BQkxFX0RBVEFCQVNF
PTEgLURFTkFCTEVfRVZFTlRTT1VSQ0U9MSAtREVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElP
TlM9MSAtREVOQUJMRV9ET01fU1RPUkFHRT0xIC1ERU5BQkxFX0lDT05EQVRBQkFTRT0xIC1ERU5B
QkxFX0NIQU5ORUxfTUVTU0FHSU5HPTEgLURFTkFCTEVfRElSRUNUT1JZX1VQTE9BRD0wIC1ERU5B
QkxFX0ZJTEVfU1lTVEVNPTAgLURFTkFCTEVfU1FMSVRFPTEgLURFTkFCTEVfREFTSEJPQVJEX1NV
UFBPUlQ9MCAtREVOQUJMRV9GSUxURVJTPTEgLURFTkFCTEVfWFBBVEg9MSAtREVOQUJMRV9XQ1NT
PTAgLURFTkFCTEVfV01MPTAgLURFTkFCTEVfU0hBUkVEX1dPUktFUlM9MSAtREVOQUJMRV9XT1JL
RVJTPTEgLURFTkFCTEVfWEhUTUxNUD0wIC1ERU5BQkxFX0RBVEFHUklEPTAgLURFTkFCTEVfTUVU
RVJfVEFHPTEgLURFTkFCTEVfUFJPR1JFU1NfVEFHPTEgLURFTkFCTEVfQkxPQj0xIC1ERU5BQkxF
X05PVElGSUNBVElPTlM9MSAtREVOQUJMRV9JTUFHRV9SRVNJWkVSPTAgLURFTkFCTEVfSU5QVVRf
U1BFRUNIPTAgLURFTkFCTEVfSU5TUEVDVE9SPTEgLURFTkFCTEVfM0RfUkVOREVSSU5HPTEgLURF
TkFCTEVfV0VCX0FVRElPPTAgLURFTkFCTEVfV0VCR0w9MCAtREVOQUJMRV9NRURJQV9TVEFUSVNU
SUNTPTAgLURFTkFCTEVfU1ZHX0ZPTlRTPTAgLURFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUPTAg
LURFTkFCTEVfU1ZHX0FOSU1BVElPTj0wIC1ERU5BQkxFX1NWR19BU19JTUFHRT0wIC1ERU5BQkxF
X1NWR19VU0U9MCAtREVOQUJMRV9EQVRBTElTVD0xIC1ERU5BQkxFX1RJTEVEX0JBQ0tJTkdfU1RP
UkU9MSAtREVOQUJMRV9XRUJfU09DS0VUUz0xIC1ERU5BQkxFX1dFQl9USU1JTkc9MSAtREVOQUJM
RV9YU0xUPTEgLURFTkFCTEVfUVRfQkVBUkVSPTEgLURFTkFCTEVfVE9VQ0hfRVZFTlRTPTEgLURY
UF9VTklYIC1ERU5BQkxFX05FVFNDQVBFX1BMVUdJTl9NRVRBREFUQV9DQUNIRT0xIC1EV1RGX1VT
RV9RVF9NT0JJTEVfVEhFTUU9MSAtREVOQUJMRV9TVkdfRk9OVFM9MCAtREVOQUJMRV9TVkdfRk9S
RUlHTl9PQkpFQ1Q9MCAtREVOQUJMRV9TVkdfQU5JTUFUSU9OPTAgLURFTkFCTEVfU1ZHX0FTX0lN
QUdFPTAgLURFTkFCTEVfU1ZHX1VTRT0wIC1EUVRfTUFLRURMTCAtRFFUX1hNTFBBVFRFUk5TX0xJ
QiAtRFFUX0dVSV9MSUIgLURRVF9ORVRXT1JLX0xJQiAtRFFUX0NPUkVfTElCIC1EUVRfU0hBUkVE
IC1JL3Vzci9zaGFyZS9xdDQvbWtzcGVjcy9saW51eC1nKysgLUkuLi8uLi8uLi8uLi9XZWJLaXQv
U291cmNlL1dlYktpdC9xdCAtSS91c3IvaW5jbHVkZS9xdDQvUXRDb3JlIC1JL3Vzci9pbmNsdWRl
L3F0NC9RdE5ldHdvcmsgLUkvdXNyL2luY2x1ZGUvcXQ0L1F0R3VpIC1JL3Vzci9pbmNsdWRlL3F0
NC9RdFhtbFBhdHRlcm5zIC1JL3Vzci9pbmNsdWRlL3F0NCAtSS4uLy4uLy4uLy4uL1dlYktpdC9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQgLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dlYkNv
cmUvcGFnZS9xdCAtSS4uLy4uLy4uLy4uL1dlYktpdC9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9xdCAtSS4uLy4uLy4uLy4uL1dlYktpdC9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3F0IC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
IC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZS9XZWJLaXQvcXQvQXBpIC1JLi4vLi4vLi4vLi4v
V2ViS2l0L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQgLUkuLi8uLi8uLi8uLi9XZWJL
aXQvU291cmNlL1dlYkNvcmUgLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eSAtSS4uLy4uLy4uLy4uL1dlYktpdC9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncyAt
SS4uLy4uLy4uLy4uL1dlYktpdC9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljIC1JLi4v
Li4vLi4vLi4vV2ViS2l0L1NvdXJjZS9XZWJDb3JlL2JyaWRnZSAtSS4uLy4uLy4uLy4uL1dlYktp
dC9Tb3VyY2UvV2ViQ29yZS9jc3MgLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dlYkNvcmUv
ZG9tIC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0IC1JLi4v
Li4vLi4vLi4vV2ViS2l0L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcgLUkuLi8uLi8uLi8uLi9XZWJL
aXQvU291cmNlL1dlYkNvcmUvZmlsZWFwaSAtSS4uLy4uLy4uLy4uL1dlYktpdC9Tb3VyY2UvV2Vi
Q29yZS9oaXN0b3J5IC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZS9XZWJDb3JlL2h0bWwgLUku
Li8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMgLUkuLi8uLi8uLi8u
Li9XZWJLaXQvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIgLUkuLi8uLi8uLi8uLi9XZWJLaXQv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cgLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yIC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZS9XZWJDb3JlL2xvYWRl
ciAtSS4uLy4uLy4uLy4uL1dlYktpdC9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUgLUku
Li8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUgLUkuLi8uLi8u
Li8uLi9XZWJLaXQvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlIC1JLi4vLi4vLi4vLi4vV2Vi
S2l0L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uIC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJj
ZS9XZWJDb3JlL21hdGhtbCAtSS4uLy4uLy4uLy4uL1dlYktpdC9Tb3VyY2UvV2ViQ29yZS9ub3Rp
ZmljYXRpb25zIC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZS9XZWJDb3JlL3BhZ2UgLUkuLi8u
Li8uLi8uLi9XZWJLaXQvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24gLUkuLi8uLi8uLi8u
Li9XZWJLaXQvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0gLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uIC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvIC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzIC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMgLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3JtcyAtSS4uLy4uLy4uLy4uL1dlYktpdC9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycyAtSS4uLy4uLy4uLy4uL1dlYktp
dC9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrIC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsgLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vc3FsIC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQgLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC90cmFuc2NvZGVyIC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZS9XZWJDb3JlL3BsdWdp
bnMgLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nIC1JLi4vLi4v
Li4vLi4vV2ViS2l0L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwgLUkuLi8uLi8uLi8u
Li9XZWJLaXQvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlIC1JLi4vLi4vLi4vLi4vV2Vi
S2l0L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcgLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291
cmNlL1dlYkNvcmUvc3RvcmFnZSAtSS4uLy4uLy4uLy4uL1dlYktpdC9Tb3VyY2UvV2ViQ29yZS9z
dmcgLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbiAtSS4u
Ly4uLy4uLy4uL1dlYktpdC9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MgLUkuLi8uLi8uLi8u
Li9XZWJLaXQvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMgLUkuLi8uLi8uLi8u
Li9XZWJLaXQvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMgLUkuLi8uLi8uLi8uLi9XZWJL
aXQvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8gLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dl
YkNvcmUvd2Vic29ja2V0cyAtSS4uLy4uLy4uLy4uL1dlYktpdC9Tb3VyY2UvV2ViQ29yZS93bWwg
LUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dlYkNvcmUvd29ya2VycyAtSS4uLy4uLy4uLy4u
L1dlYktpdC9Tb3VyY2UvV2ViQ29yZS94bWwgLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dl
YkNvcmUvYnJpZGdlL2pzYyAtSS4uLy4uLy4uLy4uL1dlYktpdC9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcyAtSS9ob21lL3NjcmF0Y2hib3gvdXNlcnMvcm9tYXhhL2hvbWUvcm9tYXhhL3dlYmtp
dGJ1aWxkL1dlYktpdC9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9zcGVjaWFsaXphdGlvbiAt
SS4uLy4uLy4uLy4uL1dlYktpdC9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYyAtSS4uLy4uL1dlYkNv
cmUvZ2VuZXJhdGVkIC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZS9XZWJLaXQyIC1JLi4vLi4v
Li4vLi4vV2ViS2l0L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtIC1JLi4vLi4vLi4vLi4vV2ViS2l0
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMgLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vcXQgLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dlYktp
dDIvU2hhcmVkIC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
YyAtSS4uLy4uLy4uLy4uL1dlYktpdC9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29yZUlQQ1N1cHBv
cnQgLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMgLUku
Li8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUg
LUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0IC1JLi4vLi4vLi4v
Li4vV2ViS2l0L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2VzcyAtSS4uLy4uLy4uLy4uL1dlYktpdC9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MgLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9jcHAgLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9jcHAvcXQgLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdCAtSS4uLy4uLy4uLy4uL1dlYktpdC9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQXV0aGVudGljYXRpb24gLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0Rvd25sb2FkcyAtSS4uLy4uLy4uLy4uL1dlYktpdC9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIgLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1BsdWdpbnMgLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3F0IC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MgLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNh
dGlvbkNhY2hlIC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
QXV0aGVudGljYXRpb24gLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9Db29raWVzIC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvRG93bmxvYWRzIC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvRG93bmxvYWRzL3F0IC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvRnVsbFNjcmVlbiAtSS4uLy4uLy4uLy4uL1dlYktpdC9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0dlb2xvY2F0aW9uIC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUgLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00gLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYyAtSS4uLy4uLy4uLy4u
L1dlYktpdC9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0tleVZhbHVlU3RvcmFnZSAtSS4uLy4u
Ly4uLy4uL1dlYktpdC9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMgLUkuLi8uLi8u
Li8uLi9XZWJLaXQvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlIC1J
Li4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNo
ZSAtSS4uLy4uLy4uLy4uL1dlYktpdC9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0IC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvcXQgLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlIC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvcXQgLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2VzcyAt
SWdlbmVyYXRlZCAtSS4uLy4uLy4uLy4uL1dlYktpdC9Tb3VyY2UvSmF2YVNjcmlwdENvcmUgLUku
Li8uLi8uLi8uLi9XZWJLaXQvU291cmNlIC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZS9UaGly
ZFBhcnR5IC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIgLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlIC1J
Li4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIgLUku
Li8uLi8uLi8uLi9XZWJLaXQvU291cmNlL0phdmFTY3JpcHRDb3JlL2NvbGxlY3Rvci9oYW5kbGVz
IC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlciAtSS4u
Ly4uLy4uLy4uL1dlYktpdC9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIgLUkuLi8u
Li8uLi8uLi9XZWJLaXQvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdCAtSS4uLy4uLy4uLy4uL1dl
YktpdC9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyIC1JLi4vLi4vLi4vLi4vV2ViS2l0L1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlciAtSS4uLy4uLy4uLy4uL1dlYktpdC9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZSAtSS4uLy4uLy4uLy4uL1dlYktpdC9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmIC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvZ29iamVjdCAtSS9ob21lL3NjcmF0Y2hib3gvdXNlcnMvcm9tYXhhL2hvbWUvcm9tYXhhL3dl
YmtpdGJ1aWxkL1dlYktpdC9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3N5bWJpYW4gLUkuLi8u
Li8uLi8uLi9XZWJLaXQvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlIC1JLi4vLi4v
Li4vLi4vV2ViS2l0L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyIC1JLi4vLi4vLi4vLi4vV2Vi
S2l0L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkgLUkuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNl
L0phdmFTY3JpcHRDb3JlL0ZvcndhcmRpbmdIZWFkZXJzIC1JLi4vLi4vSmF2YVNjcmlwdENvcmUv
Z2VuZXJhdGVkIC1JLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZSAtSS4uLy4uL2luY2x1ZGUvUXRX
ZWJLaXQgLUkuLi8uLi9pbmNsdWRlIC1JLi4vLi4vaW5jbHVkZS9XZWJLaXQyIC1JL3Vzci9zcmMv
M3JkcGFydHkvc3FsaXRlLyAtSS91c3IvWDExUjYvaW5jbHVkZSAtSS4gLUkuLi8uLi8uLi8uLi9X
ZWJLaXQvU291cmNlL1dlYktpdC9xdCAtSS4gLW8gb2JqL2RlYnVnL1dlYlByb2Nlc3NNYWluUXQu
byAuLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9j
ZXNzTWFpblF0LmNwcApJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi4vLi4vLi4vLi4vV2ViS2l0L1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5o
OjI5LAogICAgICAgICAgICAgICAgIGZyb20gLi4vLi4vLi4vLi4vV2ViS2l0L1NvdXJjZS9XZWJL
aXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc1F0LmNwcDozMToKLi4vLi4vLi4vLi4v
V2ViS2l0L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1
Z2luTW9kdWxlLmg6Njc6NTogZXJyb3I6ICJQTFVHSU5fQVJDSElURUNUVVJFIiBpcyBub3QgZGVm
aW5lZAouLi8uLi8uLi8uLi9XZWJLaXQvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTmV0
c2NhcGUvTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaDo2NzoyNDogZXJyb3I6IG1pc3NpbmcgYmluYXJ5
IG9wZXJhdG9yIGJlZm9yZSB0b2tlbiAiKCIKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4uLy4uLy4u
Ly4uL1dlYktpdC9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nlc3NR
dC5jcHA6MzE6Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85607</attachid>
            <date>2011-03-12 22:03:11 -0800</date>
            <delta_ts>2011-04-06 10:43:41 -0700</delta_ts>
            <desc>Same patch, but with complexTextPlugin disabled for non-Mac</desc>
            <filename>bug55719_part2.1.v1.diff</filename>
            <type>text/plain</type>
            <size>11884</size>
            <attacher name="Oleg Romashin (:romaxa)">romaxa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwOTU2KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMDMtMTIgIE9sZWcgUm9t
YXNoaW4gIDxyb21heGFAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1ha2UgUXQgcG9ydCBjb21waWxpbmcgd2l0aCBFTkFCTEVfUExV
R0lOX1BST0NFU1M9MSwgcGFydDIKKyAgICAgICAgQ292ZXIgd2l0aCBpZmRlZiBNYWNoUG9ydCBy
ZWxhdGVkIGZ1bmN0aW9uYWxpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU1NzE5CisKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRy
b2xsZXJQcm94eS5jcHA6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVy
UHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6aW5pdGlhbGl6ZVBsdWdpblBy
b2Nlc3MpOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlUGx1Z2luKToK
KyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tOgorICAgICAg
ICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAo
V2ViS2l0OjpQbHVnaW5Qcm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAg
ICAgICogUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzUXQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpQbHVnaW5Qcm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAg
ICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpwbHVnaW5Qcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9M
YXVuY2gpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZENyZWF0ZVdl
YlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
UHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWFuYWdlcjo6Z2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKwogMjAxMS0wMy0xMiAgRGFyaW4g
QWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tOgpJbmRleDogU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcAkocmV2aXNp
b24gODA5NTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xs
ZXJQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1NCw2ICsyNTQsNyBAQCB2b2lkIFBsdWdp
bkNvbnRyb2xsZXJQcm94eTo6cGx1Z2luUHJvY2VzCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiB9CiAKKyNpZiBQTEFURk9STShNQUMpCiB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6c2V0
Q29tcGxleFRleHRJbnB1dEVuYWJsZWQoYm9vbCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCkKIHsK
ICAgICBpZiAobV9pc0NvbXBsZXhUZXh0SW5wdXRFbmFibGVkID09IGNvbXBsZXhUZXh0SW5wdXRF
bmFibGVkKQpAQCAtMjY4LDYgKzI2OSw3IEBAIG1hY2hfcG9ydF90IFBsdWdpbkNvbnRyb2xsZXJQ
cm94eTo6Y29tcG8KIHsKICAgICByZXR1cm4gUGx1Z2luUHJvY2Vzczo6c2hhcmVkKCkuY29tcG9z
aXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCk7CiB9CisjZW5kaWYKIAogU3RyaW5nIFBsdWdpbkNvbnRy
b2xsZXJQcm94eTo6cHJveGllc0ZvclVSTChjb25zdCBTdHJpbmcmIHVybFN0cmluZykKIHsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lm1l
c3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiA4MDk1NikKKysrIFNvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmlu
CSh3b3JraW5nIGNvcHkpCkBAIC04NiwxMCArODYsMTAgQEAgbWVzc2FnZXMgLT4gUGx1Z2luQ29u
dHJvbGxlclByb3h5IHsKICAgICAjIEdldCBhIHJlZmVyZW5jZSB0byB0aGUgcGx1Zy1pbidzIHNj
cmlwdGFibGUgTlBPYmplY3QuCiAgICAgR2V0UGx1Z2luU2NyaXB0YWJsZU5QT2JqZWN0KCkgLT4g
KHVpbnQ2NF90IHBsdWdpblNjcmlwdGFibGVOUE9iamVjdElEKQogCisjaWYgUExBVEZPUk0oTUFD
KQogICAgICMgU2VuZCB0aGUgY29tcGxleCB0ZXh0IGlucHV0IHRvIHRoZSBwbHVnLWluLgogICAg
IFNlbmRDb21wbGV4VGV4dElucHV0KFdURjo6U3RyaW5nIHRleHRJbnB1dCkKIAotI2lmIFBMQVRG
T1JNKE1BQykKICAgICAjIFNlbnQgd2hlbiB0aGUgY29udGFpbmluZyBOU1dpbmRvdydzIGZvY3Vz
IGNoYW5nZXMKICAgICBXaW5kb3dGb2N1c0NoYW5nZWQoYm9vbCBoYXNGb2N1cykKIApJbmRleDog
U291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCShyZXZp
c2lvbiA4MDk1NikKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vz
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKICNpZiBFTkFCTEUoUExVR0lO
X1BST0NFU1MpCiAKICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgotI2luY2x1ZGUgIk1hY2hQ
b3J0LmgiCiAjaW5jbHVkZSAiTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCIKICNpbmNsdWRlICJQbHVn
aW5Qcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaCIKQEAgLTEyNSwyNSArMTI0LDYgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzOjpp
bml0aWFsaXplUGx1Z2luUHJvYwogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZShwYXJhbWV0ZXJzKTsK
IH0KIAotdm9pZCBQbHVnaW5Qcm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbigpCi17
Ci0gICAgLy8gRklYTUU6IFRoaXMgaXMgcGxhdGZvcm0gc3BlY2lmaWMhCi0KLSAgICAvLyBDcmVh
dGUgdGhlIGxpc3RlbmluZyBwb3J0LgotICAgIG1hY2hfcG9ydF90IGxpc3RlbmluZ1BvcnQ7Ci0g
ICAgbWFjaF9wb3J0X2FsbG9jYXRlKG1hY2hfdGFza19zZWxmKCksIE1BQ0hfUE9SVF9SSUdIVF9S
RUNFSVZFLCAmbGlzdGVuaW5nUG9ydCk7Ci0KLSAgICAvLyBDcmVhdGUgYSBsaXN0ZW5pbmcgY29u
bmVjdGlvbi4KLSAgICBSZWZQdHI8V2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IGNvbm5lY3Rpb24gPSBX
ZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGxpc3RlbmluZ1BvcnQpOwotICAgIG1fd2ViUHJv
Y2Vzc0Nvbm5lY3Rpb25zLmFwcGVuZChjb25uZWN0aW9uLnJlbGVhc2UoKSk7Ci0KLSAgICBDb3Jl
SVBDOjpNYWNoUG9ydCBjbGllbnRQb3J0KGxpc3RlbmluZ1BvcnQsIE1BQ0hfTVNHX1RZUEVfTUFL
RV9TRU5EKTsKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlBsdWdpblByb2Nlc3NQ
cm94eTo6RGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY2xpZW50UG9ydCksIDApOwotCi0g
ICAgLy8gU3RvcCB0aGUgc2h1dGRvd24gdGltZXIuCi0gICAgbV9zaHV0ZG93blRpbWVyLnN0b3Ao
KTsKLX0KLQogdm9pZCBQbHVnaW5Qcm9jZXNzOjpnZXRTaXRlc1dpdGhEYXRhKHVpbnQ2NF90IGNh
bGxiYWNrSUQpCiB7CiAgICAgVmVjdG9yPFN0cmluZz4gc2l0ZXM7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAko
cmV2aXNpb24gODA5NTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nl
c3NDb25uZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY3LDEwICsxNjcsMTIgQEAgdm9p
ZCBXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlUGx1Z2luKAogICAgIC8vIE5vdyB0cnkgdG8g
aW5pdGlhbGl6ZSB0aGUgcGx1Zy1pbi4KICAgICByZXN1bHQgPSBwbHVnaW5Db250cm9sbGVyUHJv
eHlQdHItPmluaXRpYWxpemUocGFyYW1ldGVycyk7CiAKKyNpZiBQTEFURk9STShNQUMpCiAgICAg
aWYgKHJlc3VsdCkgewogICAgICAgICByZW1vdGVMYXllckNsaWVudElEID0gcGx1Z2luQ29udHJv
bGxlclByb3h5UHRyLT5yZW1vdGVMYXllckNsaWVudElEKCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CisjZW5kaWYKIAogICAgIC8vIFdlIGZhaWxlZCB0byBpbml0aWFsaXplLCByZW1vdmUgdGhl
IHBsdWctaW4gY29udHJvbGxlci4gVGhpcyBjb3VsZCBjYXVzZSB1cyB0byBiZSBkZWxldGVkLgog
ICAgIHJlbW92ZVBsdWdpbkNvbnRyb2xsZXJQcm94eShwbHVnaW5Db250cm9sbGVyUHJveHlQdHIp
OwpJbmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01h
Yy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVn
aW5Qcm9jZXNzTWFjLm1tCShyZXZpc2lvbiA4MDk1NikKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTMxLDYg
KzMxLDcgQEAKIC8vIEZJWE1FIChXZWJLaXQyKSA8cmRhcjovL3Byb2JsZW0vODcyODg2MD4gV2Vi
S2l0MiBuZWVkcyB0byBiZSBsb2NhbGl6ZWQKICNkZWZpbmUgVUlfU1RSSU5HKF9fc3RyLCBfX2Rl
c2MpIFtOU1N0cmluZyBzdHJpbmdXaXRoVVRGOFN0cmluZzpfX3N0cl0KIAorI2luY2x1ZGUgIk1h
Y2hQb3J0LmgiCiAjaW1wb3J0ICJOZXRzY2FwZVBsdWdpbi5oIgogI2ltcG9ydCAiUGx1Z2luUHJv
Y2Vzc1NoaW0uaCIKICNpbXBvcnQgIlBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIK
QEAgLTEwMyw2ICsxMDQsMjMgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxp
emUoYwogICAgIFdLU2V0VmlzaWJsZUFwcGxpY2F0aW9uTmFtZSgoQ0ZTdHJpbmdSZWYpYXBwbGlj
YXRpb25OYW1lKTsKIH0KIAordm9pZCBQbHVnaW5Qcm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29u
bmVjdGlvbigpCit7CisgICAgLy8gQ3JlYXRlIHRoZSBsaXN0ZW5pbmcgcG9ydC4KKyAgICBtYWNo
X3BvcnRfdCBsaXN0ZW5pbmdQb3J0OworICAgIG1hY2hfcG9ydF9hbGxvY2F0ZShtYWNoX3Rhc2tf
c2VsZigpLCBNQUNIX1BPUlRfUklHSFRfUkVDRUlWRSwgJmxpc3RlbmluZ1BvcnQpOworCisgICAg
Ly8gQ3JlYXRlIGEgbGlzdGVuaW5nIGNvbm5lY3Rpb24uCisgICAgUmVmUHRyPFdlYlByb2Nlc3ND
b25uZWN0aW9uPiBjb25uZWN0aW9uID0gV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShsaXN0
ZW5pbmdQb3J0KTsKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQoY29ubmVjdGlv
bi5yZWxlYXNlKCkpOworCisgICAgQ29yZUlQQzo6TWFjaFBvcnQgY2xpZW50UG9ydChsaXN0ZW5p
bmdQb3J0LCBNQUNIX01TR19UWVBFX01BS0VfU0VORCk7CisgICAgbV9jb25uZWN0aW9uLT5zZW5k
KE1lc3NhZ2VzOjpQbHVnaW5Qcm9jZXNzUHJveHk6OkRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0
aW9uKGNsaWVudFBvcnQpLCAwKTsKKworICAgIC8vIFN0b3AgdGhlIHNodXRkb3duIHRpbWVyLgor
ICAgIG1fc2h1dGRvd25UaW1lci5zdG9wKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAog
CiAjZW5kaWYgLy8gRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQpJbmRleDogU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzUXQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc1F0LmNwcAkocmV2aXNpb24g
ODA5NTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nlc3NR
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDExIEBAIHZvaWQgUGx1Z2luUHJvY2Vz
czo6cGxhdGZvcm1Jbml0aWFsaXplKGMKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lk
IFBsdWdpblByb2Nlc3M6OmNyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVO
QUJMRShQTFVHSU5fUFJPQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAkocmV2aXNpb24gODA5NTYp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHku
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw5IEBACiAKICNpZiBFTkFCTEUoUExVR0lO
X1BST0NFU1MpCiAKKyNpZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSAiTWFjaFBvcnQuaCIKKyNl
bmRpZgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNs
dWRlICJQbHVnaW5Qcm9jZXNzTWFuYWdlci5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NNZXNz
YWdlcy5oIgpAQCAtMTMwLDggKzEzMiwxMiBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6cGx1
Z2luUHJvY2Vzc0NyCiAgICAgICAgIENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogcmVwbHkgPSBt
X3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5maXJzdCgpLnNlY29uZDsKICAgICAgICAgbV9wZW5k
aW5nQ29ubmVjdGlvblJlcGxpZXMucmVtb3ZlRmlyc3QoKTsKIAotICAgICAgICAvLyBGSVhNRTog
VGhpcyBpcyBNYWMgc3BlY2lmaWMuCisjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICByZXBseS0+
ZW5jb2RlKENvcmVJUEM6Ok1hY2hQb3J0KDAsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKSk7Cisj
ZWxzZQorICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyNlbmRpZgogICAgICAgICByZXBseVdlYlByb2Nlc3NQcm94eS0+Y29ubmVjdGlv
bigpLT5zZW5kU3luY1JlcGx5KHJlcGx5KTsKICAgICB9CiAKQEAgLTE5OCw2ICsyMDQsNyBAQCB2
b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoCiAgICAgbV9udW1QZW5kaW5n
Q29ubmVjdGlvblJlcXVlc3RzID0gMDsKIH0KIAorI2lmIFBMQVRGT1JNKE1BQykKIHZvaWQgUGx1
Z2luUHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBDb3Jl
SVBDOjpNYWNoUG9ydCYgbWFjaFBvcnQpCiB7CiAgICAgQVNTRVJUKCFtX3BlbmRpbmdDb25uZWN0
aW9uUmVwbGllcy5pc0VtcHR5KCkpOwpAQCAtMjA3LDEwICsyMTQsMTAgQEAgdm9pZCBQbHVnaW5Q
cm9jZXNzUHJveHk6OmRpZENyZWF0ZVdlYlBybwogICAgIENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciogcmVwbHkgPSBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5maXJzdCgpLnNlY29uZDsKICAg
ICBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5yZW1vdmVGaXJzdCgpOwogCi0gICAgLy8gRklY
TUU6IFRoaXMgaXMgTWFjIHNwZWNpZmljLgogICAgIHJlcGx5LT5lbmNvZGUoQ29yZUlQQzo6TWFj
aFBvcnQobWFjaFBvcnQucG9ydCgpLCBNQUNIX01TR19UWVBFX01PVkVfU0VORCkpOwogICAgIHJl
cGx5V2ViUHJvY2Vzc1Byb3h5LT5jb25uZWN0aW9uKCktPnNlbmRTeW5jUmVwbHkocmVwbHkpOwog
fQorI2VuZGlmCiAKIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpkaWRHZXRTaXRlc1dpdGhEYXRh
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzaXRlcywgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b2Nlc3NQcm94eS5oCShyZXZpc2lvbiA4MDk1NikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw3ICs3
Nyw5IEBAIHByaXZhdGU6CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzCiAgICAgdm9pZCBkaWRS
ZWNlaXZlUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyNpZiBQTEFURk9S
TShNQUMpCiAgICAgdm9pZCBkaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBDb3Jl
SVBDOjpNYWNoUG9ydCYpOworI2VuZGlmCiAgICAgdm9pZCBkaWRHZXRTaXRlc1dpdGhEYXRhKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBzaXRlcywgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9p
ZCBkaWRDbGVhclNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJv
Y2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiA4MDk1NikKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgkod29ya2lu
ZyBjb3B5KQpAQCAtMjMsOCArMjMsOSBAQAogI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKIAog
bWVzc2FnZXMgLT4gUGx1Z2luUHJvY2Vzc1Byb3h5IHsKLSAgICAjIEZJWE1FOiBUaGlzIGlzIHBs
YXRmb3JtIHNwZWNpZmljCisjaWYgUExBVEZPUk0oTUFDKQogICAgIERpZENyZWF0ZVdlYlByb2Nl
c3NDb25uZWN0aW9uKENvcmVJUEM6Ok1hY2hQb3J0IGNvbm5lY3Rpb25JZGVudGlmaWVyKQorI2Vu
ZGlmCiAKICAgICBEaWRHZXRTaXRlc1dpdGhEYXRhKFZlY3RvcjxXVEY6OlN0cmluZz4gc2l0ZXMs
IHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAgICAgRGlkQ2xlYXJTaXRlRGF0YSh1aW50NjRfdCBjYWxs
YmFja0lEKQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAJKHJl
dmlzaW9uIDgwOTU2KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMw
LDkgQEAKIAogI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgogI2luY2x1ZGUgIkFyZ3VtZW50
RW5jb2Rlci5oIgorI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJNYWNoUG9ydC5oIgorI2Vu
ZGlmCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJXZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCkBAIC02MSwxMSAr
NjMsMTcgQEAgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24qIFBsdWdpblByb2Nlc3NDbwogICAgIH0K
IAogICAgIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZp
ZXI7CisjaWYgUExBVEZPUk0oTUFDKQogICAgIENvcmVJUEM6Ok1hY2hQb3J0IGNvbm5lY3Rpb25N
YWNoUG9ydDsKICAgICBpZiAoIVdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+ZGVw
cmVjYXRlZFNlbmRTeW5jKFdlYlByb2Nlc3NQcm94eUxlZ2FjeU1lc3NhZ2U6OkdldFBsdWdpblBy
b2Nlc3NDb25uZWN0aW9uLCAwLCBDb3JlSVBDOjpJbihwbHVnaW5QYXRoKSwgQ29yZUlQQzo6T3V0
KGNvbm5lY3Rpb25NYWNoUG9ydCkpKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGNvbm5lY3Rp
b25JZGVudGlmaWVyID0gY29ubmVjdGlvbk1hY2hQb3J0LnBvcnQoKTsKKyNlbHNlCisgICAgLy8g
RklYTUU6IEltcGxlbWVudC4KKyAgICBjb25uZWN0aW9uSWRlbnRpZmllciA9IDA7CisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisjZW5kaWYKICAgICBpZiAoIWNvbm5lY3Rpb25JZGVudGlmaWVy
KQogICAgICAgICByZXR1cm4gMDsKIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gODA5NTYpCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOSw5
ICsxMDksMTAgQEAKICNlbmRpZgogCiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQotLy8gRklY
TUU6IFRoaXMgaXMgY3VycmVudGx5IE1hYy1zcGVjaWZpYyEKKyNpZiBQTEFURk9STShNQUMpCiAj
aW5jbHVkZSAiTWFjaFBvcnQuaCIKICNlbmRpZgorI2VuZGlmCiAKICNpZiBQTEFURk9STShRVCkK
ICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86028</attachid>
            <date>2011-03-16 22:41:17 -0700</date>
            <delta_ts>2011-04-06 10:43:46 -0700</delta_ts>
            <desc>Fixed patch apply to latest trunk</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>12879</size>
            <attacher name="Oleg Romashin (:romaxa)">romaxa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxMzI0KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTEtMDMtMTYgIE9sZWcgUm9t
YXNoaW4gIDxvbGVnLnJvbWFzaGluQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFF0IHBvcnQgY29tcGlsaW5nIHdpdGggRU5B
QkxFX1BMVUdJTl9QUk9DRVNTPTEsIHBhcnQyCisgICAgICAgIENvdmVyIHdpdGggaWZkZWYgTWFj
aFBvcnQgcmVsYXRlZCBmdW5jdGlvbmFsaXR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01NTcxOQorCisKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1Bs
dWdpbkNvbnRyb2xsZXJQcm94eS5jcHA6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5D
b250cm9sbGVyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVn
aW5Qcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6aW5pdGlhbGl6
ZVBsdWdpblByb2Nlc3MpOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRl
UGx1Z2luKToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1t
OgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUpOgor
ICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlv
bik6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzUXQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbik6
CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpwbHVnaW5Qcm9jZXNzQ3Jhc2hlZE9y
RmFpbGVkVG9MYXVuY2gpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6OmRp
ZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBs
dWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6Z2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24p
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKwogMjAxMS0wMy0x
NiAgSm9zZXBoIFBlY29yYXJvICA8am9lcGVja0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpJbmRleDogU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcAkocmV2
aXNpb24gODEzMTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRy
b2xsZXJQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1NCw2ICsyNTQsNyBAQCB2b2lkIFBs
dWdpbkNvbnRyb2xsZXJQcm94eTo6cGx1Z2luUHJvY2VzCiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiB9CiAKKyNpZiBQTEFURk9STShNQUMpCiB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6
c2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQoYm9vbCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCkK
IHsKICAgICBpZiAobV9pc0NvbXBsZXhUZXh0SW5wdXRFbmFibGVkID09IGNvbXBsZXhUZXh0SW5w
dXRFbmFibGVkKQpAQCAtMjY4LDYgKzI2OSw3IEBAIG1hY2hfcG9ydF90IFBsdWdpbkNvbnRyb2xs
ZXJQcm94eTo6Y29tcG8KIHsKICAgICByZXR1cm4gUGx1Z2luUHJvY2Vzczo6c2hhcmVkKCkuY29t
cG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCk7CiB9CisjZW5kaWYKIAogU3RyaW5nIFBsdWdpbkNv
bnRyb2xsZXJQcm94eTo6cHJveGllc0ZvclVSTChjb25zdCBTdHJpbmcmIHVybFN0cmluZykKIHsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5
Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3Mv
UGx1Z2luQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiA4MTMxNCkKKysrIFNv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lm1lc3NhZ2Vz
LmluCSh3b3JraW5nIGNvcHkpCkBAIC04NiwxMCArODYsMTAgQEAgbWVzc2FnZXMgLT4gUGx1Z2lu
Q29udHJvbGxlclByb3h5IHsKICAgICAjIEdldCBhIHJlZmVyZW5jZSB0byB0aGUgcGx1Zy1pbidz
IHNjcmlwdGFibGUgTlBPYmplY3QuCiAgICAgR2V0UGx1Z2luU2NyaXB0YWJsZU5QT2JqZWN0KCkg
LT4gKHVpbnQ2NF90IHBsdWdpblNjcmlwdGFibGVOUE9iamVjdElEKQogCisjaWYgUExBVEZPUk0o
TUFDKQogICAgICMgU2VuZCB0aGUgY29tcGxleCB0ZXh0IGlucHV0IHRvIHRoZSBwbHVnLWluLgog
ICAgIFNlbmRDb21wbGV4VGV4dElucHV0KFdURjo6U3RyaW5nIHRleHRJbnB1dCkKIAotI2lmIFBM
QVRGT1JNKE1BQykKICAgICAjIFNlbnQgd2hlbiB0aGUgY29udGFpbmluZyBOU1dpbmRvdydzIGZv
Y3VzIGNoYW5nZXMKICAgICBXaW5kb3dGb2N1c0NoYW5nZWQoYm9vbCBoYXNGb2N1cykKIApJbmRl
eDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCShy
ZXZpc2lvbiA4MTMxNCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJv
Y2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKICNpZiBFTkFCTEUoUExV
R0lOX1BST0NFU1MpCiAKICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgotI2luY2x1ZGUgIk1h
Y2hQb3J0LmgiCiAjaW5jbHVkZSAiTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCIKICNpbmNsdWRlICJQ
bHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaCIKQEAgLTEyNSwzNSArMTI0LDYgQEAgdm9pZCBQbHVnaW5Qcm9jZXNz
Ojppbml0aWFsaXplUGx1Z2luUHJvYwogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZShwYXJhbWV0ZXJz
KTsKIH0KIAotdm9pZCBQbHVnaW5Qcm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbigp
Ci17Ci0gICAgLy8gRklYTUU6IFRoaXMgaXMgcGxhdGZvcm0gc3BlY2lmaWMhCi0KLSAgICAvLyBD
cmVhdGUgdGhlIGxpc3RlbmluZyBwb3J0LgotICAgIG1hY2hfcG9ydF90IGxpc3RlbmluZ1BvcnQ7
Ci0gICAgbWFjaF9wb3J0X2FsbG9jYXRlKG1hY2hfdGFza19zZWxmKCksIE1BQ0hfUE9SVF9SSUdI
VF9SRUNFSVZFLCAmbGlzdGVuaW5nUG9ydCk7Ci0KLSAgICBib29sIGRpZEhhdmVBbnlXZWJQcm9j
ZXNzQ29ubmVjdGlvbnMgPSAhbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMuaXNFbXB0eSgpOwotCi0g
ICAgLy8gQ3JlYXRlIGEgbGlzdGVuaW5nIGNvbm5lY3Rpb24uCi0gICAgUmVmUHRyPFdlYlByb2Nl
c3NDb25uZWN0aW9uPiBjb25uZWN0aW9uID0gV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShs
aXN0ZW5pbmdQb3J0KTsKLSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQoY29ubmVj
dGlvbi5yZWxlYXNlKCkpOwotCi0gICAgQ29yZUlQQzo6TWFjaFBvcnQgY2xpZW50UG9ydChsaXN0
ZW5pbmdQb3J0LCBNQUNIX01TR19UWVBFX01BS0VfU0VORCk7Ci0gICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpQbHVnaW5Qcm9jZXNzUHJveHk6OkRpZENyZWF0ZVdlYlByb2Nlc3NDb25u
ZWN0aW9uKGNsaWVudFBvcnQpLCAwKTsKLQotICAgIGlmIChOZXRzY2FwZVBsdWdpbk1vZHVsZSog
bW9kdWxlID0gbmV0c2NhcGVQbHVnaW5Nb2R1bGUoKSkgewotICAgICAgICBpZiAoIWRpZEhhdmVB
bnlXZWJQcm9jZXNzQ29ubmVjdGlvbnMpIHsKLSAgICAgICAgICAgIC8vIEluY3JlbWVudCB0aGUg
bG9hZCBjb3VudC4gVGhpcyBpcyBtYXRjaGVkIGJ5IGEgY2FsbCB0byBkZWNyZW1lbnRMb2FkQ291
bnQgaW4gc3RhcnRTaHV0ZG93blRpbWVySWZOZWNlc3NhcnkuCi0gICAgICAgICAgICAvLyBXZSBk
byB0aGlzIHNvIHRoYXQgdGhlIHBsdWctaW4gbW9kdWxlJ3MgTlBfU2h1dGRvd24gd29uJ3QgYmUg
Y2FsbGVkIHVudGlsIHJpZ2h0IGJlZm9yZSBleGl0aW5nLgotICAgICAgICAgICAgbW9kdWxlLT5p
bmNyZW1lbnRMb2FkQ291bnQoKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIFN0b3AgdGhl
IHNodXRkb3duIHRpbWVyLgotICAgIG1fc2h1dGRvd25UaW1lci5zdG9wKCk7Ci19Ci0KIHZvaWQg
UGx1Z2luUHJvY2Vzczo6Z2V0U2l0ZXNXaXRoRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKQogewog
ICAgIFZlY3RvcjxTdHJpbmc+IHNpdGVzOwpJbmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAJKHJldmlzaW9uIDgxMzE0
KQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE2NywxMCArMTY3LDEyIEBAIHZvaWQgV2ViUHJvY2Vzc0Nv
bm5lY3Rpb246OmNyZWF0ZVBsdWdpbigKICAgICAvLyBOb3cgdHJ5IHRvIGluaXRpYWxpemUgdGhl
IHBsdWctaW4uCiAgICAgcmVzdWx0ID0gcGx1Z2luQ29udHJvbGxlclByb3h5UHRyLT5pbml0aWFs
aXplKHBhcmFtZXRlcnMpOwogCisjaWYgUExBVEZPUk0oTUFDKQogICAgIGlmIChyZXN1bHQpIHsK
ICAgICAgICAgcmVtb3RlTGF5ZXJDbGllbnRJRCA9IHBsdWdpbkNvbnRyb2xsZXJQcm94eVB0ci0+
cmVtb3RlTGF5ZXJDbGllbnRJRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2VuZGlmCiAK
ICAgICAvLyBXZSBmYWlsZWQgdG8gaW5pdGlhbGl6ZSwgcmVtb3ZlIHRoZSBwbHVnLWluIGNvbnRy
b2xsZXIuIFRoaXMgY291bGQgY2F1c2UgdXMgdG8gYmUgZGVsZXRlZC4KICAgICByZW1vdmVQbHVn
aW5Db250cm9sbGVyUHJveHkocGx1Z2luQ29udHJvbGxlclByb3h5UHRyKTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5t
bQkocmV2aXNpb24gODEzMTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9Q
bHVnaW5Qcm9jZXNzTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAvLyBG
SVhNRSAoV2ViS2l0MikgPHJkYXI6Ly9wcm9ibGVtLzg3Mjg4NjA+IFdlYktpdDIgbmVlZHMgdG8g
YmUgbG9jYWxpemVkCiAjZGVmaW5lIFVJX1NUUklORyhfX3N0ciwgX19kZXNjKSBbTlNTdHJpbmcg
c3RyaW5nV2l0aFVURjhTdHJpbmc6X19zdHJdCiAKKyNpbmNsdWRlICJNYWNoUG9ydC5oIgogI2lt
cG9ydCAiTmV0c2NhcGVQbHVnaW4uaCIKICNpbXBvcnQgIlBsdWdpblByb2Nlc3NTaGltLmgiCiAj
aW1wb3J0ICJQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCkBAIC0xMDMsNiArMTA0
LDMzIEBAIHZvaWQgUGx1Z2luUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplKGMKICAgICBXS1Nl
dFZpc2libGVBcHBsaWNhdGlvbk5hbWUoKENGU3RyaW5nUmVmKWFwcGxpY2F0aW9uTmFtZSk7CiB9
CiAKK3ZvaWQgUGx1Z2luUHJvY2Vzczo6Y3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQorewor
ICAgIC8vIENyZWF0ZSB0aGUgbGlzdGVuaW5nIHBvcnQuCisgICAgbWFjaF9wb3J0X3QgbGlzdGVu
aW5nUG9ydDsKKyAgICBtYWNoX3BvcnRfYWxsb2NhdGUobWFjaF90YXNrX3NlbGYoKSwgTUFDSF9Q
T1JUX1JJR0hUX1JFQ0VJVkUsICZsaXN0ZW5pbmdQb3J0KTsKKworICAgIGJvb2wgZGlkSGF2ZUFu
eVdlYlByb2Nlc3NDb25uZWN0aW9ucyA9ICFtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5pc0VtcHR5
KCk7CisKKyAgICAvLyBDcmVhdGUgYSBsaXN0ZW5pbmcgY29ubmVjdGlvbi4KKyAgICBSZWZQdHI8
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzQ29ubmVjdGlvbjo6
Y3JlYXRlKGxpc3RlbmluZ1BvcnQpOworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmFwcGVu
ZChjb25uZWN0aW9uLnJlbGVhc2UoKSk7CisKKyAgICBDb3JlSVBDOjpNYWNoUG9ydCBjbGllbnRQ
b3J0KGxpc3RlbmluZ1BvcnQsIE1BQ0hfTVNHX1RZUEVfTUFLRV9TRU5EKTsKKyAgICBtX2Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6OlBsdWdpblByb2Nlc3NQcm94eTo6RGlkQ3JlYXRlV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24oY2xpZW50UG9ydCksIDApOworCisgICAgaWYgKE5ldHNjYXBlUGx1Z2lu
TW9kdWxlKiBtb2R1bGUgPSBuZXRzY2FwZVBsdWdpbk1vZHVsZSgpKSB7CisgICAgICAgIGlmICgh
ZGlkSGF2ZUFueVdlYlByb2Nlc3NDb25uZWN0aW9ucykgeworICAgICAgICAgICAgLy8gSW5jcmVt
ZW50IHRoZSBsb2FkIGNvdW50LiBUaGlzIGlzIG1hdGNoZWQgYnkgYSBjYWxsIHRvIGRlY3JlbWVu
dExvYWRDb3VudCBpbiBzdGFydFNodXRkb3duVGltZXJJZk5lY2Vzc2FyeS4KKyAgICAgICAgICAg
IC8vIFdlIGRvIHRoaXMgc28gdGhhdCB0aGUgcGx1Zy1pbiBtb2R1bGUncyBOUF9TaHV0ZG93biB3
b24ndCBiZSBjYWxsZWQgdW50aWwgcmlnaHQgYmVmb3JlIGV4aXRpbmcuCisgICAgICAgICAgICBt
b2R1bGUtPmluY3JlbWVudExvYWRDb3VudCgpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8g
U3RvcCB0aGUgc2h1dGRvd24gdGltZXIuCisgICAgbV9zaHV0ZG93blRpbWVyLnN0b3AoKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoUExVR0lOX1BST0NF
U1MpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nlc3NR
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVn
aW5Qcm9jZXNzUXQuY3BwCShyZXZpc2lvbiA4MTMxNCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc1F0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksNiAr
MzksMTEgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUoYwogICAgIG5v
dEltcGxlbWVudGVkKCk7CiB9CiAKK3ZvaWQgUGx1Z2luUHJvY2Vzczo6Y3JlYXRlV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQpJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
UHJveHkuY3BwCShyZXZpc2lvbiA4MTMxNCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4
LDkgQEAKIAogI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKIAorI2lmIFBMQVRGT1JNKE1BQykK
ICNpbmNsdWRlICJNYWNoUG9ydC5oIgorI2VuZGlmCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NNYW5hZ2VyLmgiCiAj
aW5jbHVkZSAiUGx1Z2luUHJvY2Vzc01lc3NhZ2VzLmgiCkBAIC0xMjAsOCArMTIyLDEyIEBAIHZv
aWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpwbHVnaW5Qcm9jZXNzQ3IKICAgICAgICAgQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyKiByZXBseSA9IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmZpcnN0
KCkuc2Vjb25kOwogICAgICAgICBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5yZW1vdmVGaXJz
dCgpOwogCi0gICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIE1hYyBzcGVjaWZpYy4KKyNpZiBQTEFU
Rk9STShNQUMpCiAgICAgICAgIHJlcGx5LT5lbmNvZGUoQ29yZUlQQzo6TWFjaFBvcnQoMCwgTUFD
SF9NU0dfVFlQRV9NT1ZFX1NFTkQpKTsKKyNlbHNlCisgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQuCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCiAgICAgICAgIHJlcGx5
V2ViUHJvY2Vzc1Byb3h5LT5jb25uZWN0aW9uKCktPnNlbmRTeW5jUmVwbHkocmVwbHkpOwogICAg
IH0KIApAQCAtMTg4LDYgKzE5NCw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpkaWRGaW5p
c2hMYXVuY2gKICAgICBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHMgPSAwOwogfQogCisj
aWYgUExBVEZPUk0oTUFDKQogdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZENyZWF0ZVdlYlBy
b2Nlc3NDb25uZWN0aW9uKGNvbnN0IENvcmVJUEM6Ok1hY2hQb3J0JiBtYWNoUG9ydCkKIHsKICAg
ICBBU1NFUlQoIW1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmlzRW1wdHkoKSk7CkBAIC0xOTcs
MTAgKzIwNCwxMCBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlV2ViUHJvCiAg
ICAgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiByZXBseSA9IG1fcGVuZGluZ0Nvbm5lY3Rpb25S
ZXBsaWVzLmZpcnN0KCkuc2Vjb25kOwogICAgIG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLnJl
bW92ZUZpcnN0KCk7CiAKLSAgICAvLyBGSVhNRTogVGhpcyBpcyBNYWMgc3BlY2lmaWMuCiAgICAg
cmVwbHktPmVuY29kZShDb3JlSVBDOjpNYWNoUG9ydChtYWNoUG9ydC5wb3J0KCksIE1BQ0hfTVNH
X1RZUEVfTU9WRV9TRU5EKSk7CiAgICAgcmVwbHlXZWJQcm9jZXNzUHJveHktPmNvbm5lY3Rpb24o
KS0+c2VuZFN5bmNSZXBseShyZXBseSk7CiB9CisjZW5kaWYKIAogdm9pZCBQbHVnaW5Qcm9jZXNz
UHJveHk6OmRpZEdldFNpdGVzV2l0aERhdGEoY29uc3QgVmVjdG9yPFN0cmluZz4mIHNpdGVzLCB1
aW50NjRfdCBjYWxsYmFja0lEKQogewpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgJKHJldmlzaW9uIDgxMzE0KQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTgwLDcgKzgwLDkgQEAgcHJpdmF0ZToKIAogICAgIC8vIE1lc3Nh
Z2UgaGFuZGxlcnMKICAgICB2b2lkIGRpZFJlY2VpdmVQbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopOworI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIGRpZENyZWF0ZVdlYlBy
b2Nlc3NDb25uZWN0aW9uKGNvbnN0IENvcmVJUEM6Ok1hY2hQb3J0Jik7CisjZW5kaWYKICAgICB2
b2lkIGRpZEdldFNpdGVzV2l0aERhdGEoY29uc3QgVmVjdG9yPFN0cmluZz4mIHNpdGVzLCB1aW50
NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGRpZENsZWFyU2l0ZURhdGEodWludDY0X3QgY2Fs
bGJhY2tJRCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9u
IDgxMzE0KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vz
c1Byb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw4ICsyMyw5IEBACiAjaWYg
RU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBQbHVnaW5Qcm9jZXNzUHJveHkg
ewotICAgICMgRklYTUU6IFRoaXMgaXMgcGxhdGZvcm0gc3BlY2lmaWMKKyNpZiBQTEFURk9STShN
QUMpCiAgICAgRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oQ29yZUlQQzo6TWFjaFBvcnQg
Y29ubmVjdGlvbklkZW50aWZpZXIpCisjZW5kaWYKIAogICAgIERpZEdldFNpdGVzV2l0aERhdGEo
VmVjdG9yPFdURjo6U3RyaW5nPiBzaXRlcywgdWludDY0X3QgY2FsbGJhY2tJRCkKICAgICBEaWRD
bGVhclNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcAkocmV2aXNpb24gODEzMTQpCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsOSBAQAogCiAjaW5jbHVkZSAiQXJndW1lbnREZWNv
ZGVyLmgiCiAjaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgiCisjaWYgUExBVEZPUk0oTUFDKQog
I2luY2x1ZGUgIk1hY2hQb3J0LmgiCisjZW5kaWYKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbi5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUg
IldlYlByb2Nlc3MuaCIKQEAgLTYxLDExICs2MywxNyBAQCBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
biogUGx1Z2luUHJvY2Vzc0NvCiAgICAgfQogCiAgICAgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRl
bnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcjsKKyNpZiBQTEFURk9STShNQUMpCiAgICAgQ29y
ZUlQQzo6TWFjaFBvcnQgY29ubmVjdGlvbk1hY2hQb3J0OwogICAgIGlmICghV2ViUHJvY2Vzczo6
c2hhcmVkKCkuY29ubmVjdGlvbigpLT5kZXByZWNhdGVkU2VuZFN5bmMoV2ViUHJvY2Vzc1Byb3h5
TGVnYWN5TWVzc2FnZTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24sIDAsIENvcmVJUEM6Oklu
KHBsdWdpblBhdGgpLCBDb3JlSVBDOjpPdXQoY29ubmVjdGlvbk1hY2hQb3J0KSkpCiAgICAgICAg
IHJldHVybiAwOwogCiAgICAgY29ubmVjdGlvbklkZW50aWZpZXIgPSBjb25uZWN0aW9uTWFjaFBv
cnQucG9ydCgpOworI2Vsc2UKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAgIGNvbm5lY3Rp
b25JZGVudGlmaWVyID0gMDsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgogICAg
IGlmICghY29ubmVjdGlvbklkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiAwOwogCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lv
biA4MTMxNCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTEwLDkgKzExMCwxMCBAQAogI2VuZGlmCiAKICNpZiBFTkFC
TEUoUExVR0lOX1BST0NFU1MpCi0vLyBGSVhNRTogVGhpcyBpcyBjdXJyZW50bHkgTWFjLXNwZWNp
ZmljIQorI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJNYWNoUG9ydC5oIgogI2VuZGlmCisj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKFFUKQogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86064</attachid>
            <date>2011-03-17 09:59:33 -0700</date>
            <delta_ts>2011-03-31 08:53:47 -0700</delta_ts>
            <desc>Keep PluginProcess::createWebProcessConnection in PluginProcess.cpp (suggested by :andersca)</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>11224</size>
            <attacher name="Oleg Romashin (:romaxa)">romaxa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxMzI0KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTEtMDMtMTYgIE9sZWcgUm9t
YXNoaW4gIDxvbGVnLnJvbWFzaGluQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFF0IHBvcnQgY29tcGlsaW5nIHdpdGggRU5B
QkxFX1BMVUdJTl9QUk9DRVNTPTEsIHBhcnQyCisgICAgICAgIENvdmVyIHdpdGggaWZkZWYgTWFj
aFBvcnQgcmVsYXRlZCBmdW5jdGlvbmFsaXR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01NTcxOQorCisKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1Bs
dWdpbkNvbnRyb2xsZXJQcm94eS5jcHA6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5D
b250cm9sbGVyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVn
aW5Qcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6aW5pdGlhbGl6
ZVBsdWdpblByb2Nlc3MpOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRl
UGx1Z2luKToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1t
OgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUpOgor
ICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlv
bik6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzUXQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbik6
CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpwbHVnaW5Qcm9jZXNzQ3Jhc2hlZE9y
RmFpbGVkVG9MYXVuY2gpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6OmRp
ZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBs
dWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6Z2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24p
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKwogMjAxMS0wMy0x
NiAgSm9zZXBoIFBlY29yYXJvICA8am9lcGVja0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpJbmRleDogU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcAkocmV2
aXNpb24gODEzMTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRy
b2xsZXJQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1NCw2ICsyNTQsNyBAQCB2b2lkIFBs
dWdpbkNvbnRyb2xsZXJQcm94eTo6cGx1Z2luUHJvY2VzCiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiB9CiAKKyNpZiBQTEFURk9STShNQUMpCiB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6
c2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQoYm9vbCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCkK
IHsKICAgICBpZiAobV9pc0NvbXBsZXhUZXh0SW5wdXRFbmFibGVkID09IGNvbXBsZXhUZXh0SW5w
dXRFbmFibGVkKQpAQCAtMjY4LDYgKzI2OSw3IEBAIG1hY2hfcG9ydF90IFBsdWdpbkNvbnRyb2xs
ZXJQcm94eTo6Y29tcG8KIHsKICAgICByZXR1cm4gUGx1Z2luUHJvY2Vzczo6c2hhcmVkKCkuY29t
cG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCk7CiB9CisjZW5kaWYKIAogU3RyaW5nIFBsdWdpbkNv
bnRyb2xsZXJQcm94eTo6cHJveGllc0ZvclVSTChjb25zdCBTdHJpbmcmIHVybFN0cmluZykKIHsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5
Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3Mv
UGx1Z2luQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiA4MTMxNCkKKysrIFNv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lm1lc3NhZ2Vz
LmluCSh3b3JraW5nIGNvcHkpCkBAIC04NiwxMCArODYsMTAgQEAgbWVzc2FnZXMgLT4gUGx1Z2lu
Q29udHJvbGxlclByb3h5IHsKICAgICAjIEdldCBhIHJlZmVyZW5jZSB0byB0aGUgcGx1Zy1pbidz
IHNjcmlwdGFibGUgTlBPYmplY3QuCiAgICAgR2V0UGx1Z2luU2NyaXB0YWJsZU5QT2JqZWN0KCkg
LT4gKHVpbnQ2NF90IHBsdWdpblNjcmlwdGFibGVOUE9iamVjdElEKQogCisjaWYgUExBVEZPUk0o
TUFDKQogICAgICMgU2VuZCB0aGUgY29tcGxleCB0ZXh0IGlucHV0IHRvIHRoZSBwbHVnLWluLgog
ICAgIFNlbmRDb21wbGV4VGV4dElucHV0KFdURjo6U3RyaW5nIHRleHRJbnB1dCkKIAotI2lmIFBM
QVRGT1JNKE1BQykKICAgICAjIFNlbnQgd2hlbiB0aGUgY29udGFpbmluZyBOU1dpbmRvdydzIGZv
Y3VzIGNoYW5nZXMKICAgICBXaW5kb3dGb2N1c0NoYW5nZWQoYm9vbCBoYXNGb2N1cykKIApJbmRl
eDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCShy
ZXZpc2lvbiA4MTMxNCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJv
Y2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKICNpZiBFTkFCTEUoUExV
R0lOX1BST0NFU1MpCiAKICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgotI2luY2x1ZGUgIk1h
Y2hQb3J0LmgiCiAjaW5jbHVkZSAiTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCIKICNpbmNsdWRlICJQ
bHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaCIKQEAgLTEyNywyMCArMTI2LDIzIEBAIHZvaWQgUGx1Z2luUHJvY2Vz
czo6aW5pdGlhbGl6ZVBsdWdpblByb2MKIAogdm9pZCBQbHVnaW5Qcm9jZXNzOjpjcmVhdGVXZWJQ
cm9jZXNzQ29ubmVjdGlvbigpCiB7Ci0gICAgLy8gRklYTUU6IFRoaXMgaXMgcGxhdGZvcm0gc3Bl
Y2lmaWMhCisgICAgYm9vbCBkaWRIYXZlQW55V2ViUHJvY2Vzc0Nvbm5lY3Rpb25zID0gIW1fd2Vi
UHJvY2Vzc0Nvbm5lY3Rpb25zLmlzRW1wdHkoKTsKIAorI2lmZGVmIFBMQVRGT1JNKE1BQykKICAg
ICAvLyBDcmVhdGUgdGhlIGxpc3RlbmluZyBwb3J0LgogICAgIG1hY2hfcG9ydF90IGxpc3Rlbmlu
Z1BvcnQ7CiAgICAgbWFjaF9wb3J0X2FsbG9jYXRlKG1hY2hfdGFza19zZWxmKCksIE1BQ0hfUE9S
VF9SSUdIVF9SRUNFSVZFLCAmbGlzdGVuaW5nUG9ydCk7CiAKLSAgICBib29sIGRpZEhhdmVBbnlX
ZWJQcm9jZXNzQ29ubmVjdGlvbnMgPSAhbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMuaXNFbXB0eSgp
OwotCiAgICAgLy8gQ3JlYXRlIGEgbGlzdGVuaW5nIGNvbm5lY3Rpb24uCiAgICAgUmVmUHRyPFdl
YlByb2Nlc3NDb25uZWN0aW9uPiBjb25uZWN0aW9uID0gV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNy
ZWF0ZShsaXN0ZW5pbmdQb3J0KTsKICAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQo
Y29ubmVjdGlvbi5yZWxlYXNlKCkpOwogCiAgICAgQ29yZUlQQzo6TWFjaFBvcnQgY2xpZW50UG9y
dChsaXN0ZW5pbmdQb3J0LCBNQUNIX01TR19UWVBFX01BS0VfU0VORCk7CiAgICAgbV9jb25uZWN0
aW9uLT5zZW5kKE1lc3NhZ2VzOjpQbHVnaW5Qcm9jZXNzUHJveHk6OkRpZENyZWF0ZVdlYlByb2Nl
c3NDb25uZWN0aW9uKGNsaWVudFBvcnQpLCAwKTsKKyNlbHNlCisgICAgLy8gRklYTUUgSW1wbGVt
ZW50CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisjZW5kaWYKIAogICAgIGlmIChOZXRzY2Fw
ZVBsdWdpbk1vZHVsZSogbW9kdWxlID0gbmV0c2NhcGVQbHVnaW5Nb2R1bGUoKSkgewogICAgICAg
ICBpZiAoIWRpZEhhdmVBbnlXZWJQcm9jZXNzQ29ubmVjdGlvbnMpIHsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
CShyZXZpc2lvbiA4MTMxNCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjcsMTAgKzE2NywxMiBAQCB2
b2lkIFdlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGVQbHVnaW4oCiAgICAgLy8gTm93IHRyeSB0
byBpbml0aWFsaXplIHRoZSBwbHVnLWluLgogICAgIHJlc3VsdCA9IHBsdWdpbkNvbnRyb2xsZXJQ
cm94eVB0ci0+aW5pdGlhbGl6ZShwYXJhbWV0ZXJzKTsKIAorI2lmIFBMQVRGT1JNKE1BQykKICAg
ICBpZiAocmVzdWx0KSB7CiAgICAgICAgIHJlbW90ZUxheWVyQ2xpZW50SUQgPSBwbHVnaW5Db250
cm9sbGVyUHJveHlQdHItPnJlbW90ZUxheWVyQ2xpZW50SUQoKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KKyNlbmRpZgogCiAgICAgLy8gV2UgZmFpbGVkIHRvIGluaXRpYWxpemUsIHJlbW92ZSB0
aGUgcGx1Zy1pbiBjb250cm9sbGVyLiBUaGlzIGNvdWxkIGNhdXNlIHVzIHRvIGJlIGRlbGV0ZWQu
CiAgICAgcmVtb3ZlUGx1Z2luQ29udHJvbGxlclByb3h5KHBsdWdpbkNvbnRyb2xsZXJQcm94eVB0
cik7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNz
TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1Bs
dWdpblByb2Nlc3NNYWMubW0JKHJldmlzaW9uIDgxMzE0KQorKysgU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzEs
NiArMzEsNyBAQAogLy8gRklYTUUgKFdlYktpdDIpIDxyZGFyOi8vcHJvYmxlbS84NzI4ODYwPiBX
ZWJLaXQyIG5lZWRzIHRvIGJlIGxvY2FsaXplZAogI2RlZmluZSBVSV9TVFJJTkcoX19zdHIsIF9f
ZGVzYykgW05TU3RyaW5nIHN0cmluZ1dpdGhVVEY4U3RyaW5nOl9fc3RyXQogCisjaW5jbHVkZSAi
TWFjaFBvcnQuaCIKICNpbXBvcnQgIk5ldHNjYXBlUGx1Z2luLmgiCiAjaW1wb3J0ICJQbHVnaW5Q
cm9jZXNzU2hpbS5oIgogI2ltcG9ydCAiUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
IgpJbmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzUXQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2lu
UHJvY2Vzc1F0LmNwcAkocmV2aXNpb24gODEzMTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Q
cm9jZXNzL3F0L1BsdWdpblByb2Nlc3NRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5
LDExIEBAIHZvaWQgUGx1Z2luUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplKGMKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwogfQogCit2b2lkIFBsdWdpblByb2Nlc3M6OmNyZWF0ZVdlYlByb2Nlc3ND
b25uZWN0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1By
b3h5LmNwcAkocmV2aXNpb24gODEzMTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw5
IEBACiAKICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAKKyNpZiBQTEFURk9STShNQUMpCiAj
aW5jbHVkZSAiTWFjaFBvcnQuaCIKKyNlbmRpZgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzTWFuYWdlci5oIgogI2lu
Y2x1ZGUgIlBsdWdpblByb2Nlc3NNZXNzYWdlcy5oIgpAQCAtMTIwLDggKzEyMiwxMiBAQCB2b2lk
IFBsdWdpblByb2Nlc3NQcm94eTo6cGx1Z2luUHJvY2Vzc0NyCiAgICAgICAgIENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciogcmVwbHkgPSBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5maXJzdCgp
LnNlY29uZDsKICAgICAgICAgbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMucmVtb3ZlRmlyc3Qo
KTsKIAotICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBNYWMgc3BlY2lmaWMuCisjaWYgUExBVEZP
Uk0oTUFDKQogICAgICAgICByZXBseS0+ZW5jb2RlKENvcmVJUEM6Ok1hY2hQb3J0KDAsIE1BQ0hf
TVNHX1RZUEVfTU9WRV9TRU5EKSk7CisjZWxzZQorICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50
LgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgogICAgICAgICByZXBseVdl
YlByb2Nlc3NQcm94eS0+Y29ubmVjdGlvbigpLT5zZW5kU3luY1JlcGx5KHJlcGx5KTsKICAgICB9
CiAKQEAgLTE4OCw2ICsxOTQsNyBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6ZGlkRmluaXNo
TGF1bmNoCiAgICAgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzID0gMDsKIH0KIAorI2lm
IFBMQVRGT1JNKE1BQykKIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVXZWJQcm9j
ZXNzQ29ubmVjdGlvbihjb25zdCBDb3JlSVBDOjpNYWNoUG9ydCYgbWFjaFBvcnQpCiB7CiAgICAg
QVNTRVJUKCFtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5pc0VtcHR5KCkpOwpAQCAtMTk3LDEw
ICsyMDQsMTAgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZENyZWF0ZVdlYlBybwogICAg
IENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogcmVwbHkgPSBtX3BlbmRpbmdDb25uZWN0aW9uUmVw
bGllcy5maXJzdCgpLnNlY29uZDsKICAgICBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5yZW1v
dmVGaXJzdCgpOwogCi0gICAgLy8gRklYTUU6IFRoaXMgaXMgTWFjIHNwZWNpZmljLgogICAgIHJl
cGx5LT5lbmNvZGUoQ29yZUlQQzo6TWFjaFBvcnQobWFjaFBvcnQucG9ydCgpLCBNQUNIX01TR19U
WVBFX01PVkVfU0VORCkpOwogICAgIHJlcGx5V2ViUHJvY2Vzc1Byb3h5LT5jb25uZWN0aW9uKCkt
PnNlbmRTeW5jUmVwbHkocmVwbHkpOwogfQorI2VuZGlmCiAKIHZvaWQgUGx1Z2luUHJvY2Vzc1By
b3h5OjpkaWRHZXRTaXRlc1dpdGhEYXRhKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzaXRlcywgdWlu
dDY0X3QgY2FsbGJhY2tJRCkKIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCShyZXZpc2lvbiA4MTMxNCkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCSh3
b3JraW5nIGNvcHkpCkBAIC04MCw3ICs4MCw5IEBAIHByaXZhdGU6CiAKICAgICAvLyBNZXNzYWdl
IGhhbmRsZXJzCiAgICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKKyNpZiBQTEFURk9STShNQUMpCiAgICAgdm9pZCBkaWRDcmVhdGVXZWJQcm9j
ZXNzQ29ubmVjdGlvbihjb25zdCBDb3JlSVBDOjpNYWNoUG9ydCYpOworI2VuZGlmCiAgICAgdm9p
ZCBkaWRHZXRTaXRlc1dpdGhEYXRhKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzaXRlcywgdWludDY0
X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkaWRDbGVhclNpdGVEYXRhKHVpbnQ2NF90IGNhbGxi
YWNrSUQpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiA4
MTMxNCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjMsOCArMjMsOSBAQAogI2lmIEVO
QUJMRShQTFVHSU5fUFJPQ0VTUykKIAogbWVzc2FnZXMgLT4gUGx1Z2luUHJvY2Vzc1Byb3h5IHsK
LSAgICAjIEZJWE1FOiBUaGlzIGlzIHBsYXRmb3JtIHNwZWNpZmljCisjaWYgUExBVEZPUk0oTUFD
KQogICAgIERpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKENvcmVJUEM6Ok1hY2hQb3J0IGNv
bm5lY3Rpb25JZGVudGlmaWVyKQorI2VuZGlmCiAKICAgICBEaWRHZXRTaXRlc1dpdGhEYXRhKFZl
Y3RvcjxXVEY6OlN0cmluZz4gc2l0ZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAgICAgRGlkQ2xl
YXJTaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKQpJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3ND
b25uZWN0aW9uTWFuYWdlci5jcHAJKHJldmlzaW9uIDgxMzE0KQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDkgQEAKIAogI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rl
ci5oIgogI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2lmIFBMQVRGT1JNKE1BQykKICNp
bmNsdWRlICJNYWNoUG9ydC5oIgorI2VuZGlmCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb24uaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzLmgiCkBAIC02MSwxMSArNjMsMTcgQEAgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24q
IFBsdWdpblByb2Nlc3NDbwogICAgIH0KIAogICAgIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50
aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXI7CisjaWYgUExBVEZPUk0oTUFDKQogICAgIENvcmVJ
UEM6Ok1hY2hQb3J0IGNvbm5lY3Rpb25NYWNoUG9ydDsKICAgICBpZiAoIVdlYlByb2Nlc3M6OnNo
YXJlZCgpLmNvbm5lY3Rpb24oKS0+ZGVwcmVjYXRlZFNlbmRTeW5jKFdlYlByb2Nlc3NQcm94eUxl
Z2FjeU1lc3NhZ2U6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uLCAwLCBDb3JlSVBDOjpJbihw
bHVnaW5QYXRoKSwgQ29yZUlQQzo6T3V0KGNvbm5lY3Rpb25NYWNoUG9ydCkpKQogICAgICAgICBy
ZXR1cm4gMDsKIAogICAgIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gY29ubmVjdGlvbk1hY2hQb3J0
LnBvcnQoKTsKKyNlbHNlCisgICAgLy8gRklYTUU6IEltcGxlbWVudC4KKyAgICBjb25uZWN0aW9u
SWRlbnRpZmllciA9IDA7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisjZW5kaWYKICAgICBp
ZiAoIWNvbm5lY3Rpb25JZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gMDsKIApJbmRleDogU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24g
ODEzMTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTExMCw5ICsxMTAsMTAgQEAKICNlbmRpZgogCiAjaWYgRU5BQkxF
KFBMVUdJTl9QUk9DRVNTKQotLy8gRklYTUU6IFRoaXMgaXMgY3VycmVudGx5IE1hYy1zcGVjaWZp
YyEKKyNpZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSAiTWFjaFBvcnQuaCIKICNlbmRpZgorI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShRVCkKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86070</attachid>
            <date>2011-03-17 10:59:02 -0700</date>
            <delta_ts>2011-03-31 08:53:47 -0700</delta_ts>
            <desc>Previous version, added missing WebProcessConnection.h  createWebProcessConnection platform specific method</desc>
            <filename>webconnection_include.diff</filename>
            <type>text/plain</type>
            <size>12978</size>
            <attacher name="Oleg Romashin (:romaxa)">romaxa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxMzY0KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMDMtMTcgIE9sZWcgUm9t
YXNoaW4gIDxyb21heGFAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1ha2UgUXQgcG9ydCBjb21waWxpbmcgd2l0aCBFTkFCTEVfUExV
R0lOX1BST0NFU1M9MSwgcGFydDIKKyAgICAgICAgQ292ZXIgd2l0aCBpZmRlZiBNYWNoUG9ydCBy
ZWxhdGVkIGZ1bmN0aW9uYWxpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU1NzE5CisKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRy
b2xsZXJQcm94eS5jcHA6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVy
UHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6aW5pdGlhbGl6ZVBsdWdpblBy
b2Nlc3MpOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlUGx1Z2luKToK
KyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tOgorICAgICAg
ICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAo
V2ViS2l0OjpQbHVnaW5Qcm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAg
ICAgICogUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzUXQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpQbHVnaW5Qcm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAg
ICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpwbHVnaW5Qcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9M
YXVuY2gpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZENyZWF0ZVdl
YlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
UHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWFuYWdlcjo6Z2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKwogMjAxMS0wMy0xNyAgT2xlZyBS
b21hc2hpbiAgPG9sZWcucm9tYXNoaW5Abm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFuZGVycyBDYXJsc3Nvbi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luQ29udHJvbGxlclByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAJKHJldmlzaW9uIDgxMzY0KQorKysg
U291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNTQsNiArMjU0LDcgQEAgdm9pZCBQbHVnaW5Db250cm9sbGVyUHJv
eHk6OnBsdWdpblByb2NlcwogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCisjaWYgUExB
VEZPUk0oTUFDKQogdm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OnNldENvbXBsZXhUZXh0SW5w
dXRFbmFibGVkKGJvb2wgY29tcGxleFRleHRJbnB1dEVuYWJsZWQpCiB7CiAgICAgaWYgKG1faXND
b21wbGV4VGV4dElucHV0RW5hYmxlZCA9PSBjb21wbGV4VGV4dElucHV0RW5hYmxlZCkKQEAgLTI2
OCw2ICsyNjksNyBAQCBtYWNoX3BvcnRfdCBQbHVnaW5Db250cm9sbGVyUHJveHk6OmNvbXBvCiB7
CiAgICAgcmV0dXJuIFBsdWdpblByb2Nlc3M6OnNoYXJlZCgpLmNvbXBvc2l0aW5nUmVuZGVyU2Vy
dmVyUG9ydCgpOwogfQorI2VuZGlmCiAKIFN0cmluZyBQbHVnaW5Db250cm9sbGVyUHJveHk6OnBy
b3hpZXNGb3JVUkwoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiB7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQ
cm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gODEzNjQpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5
KQpAQCAtODYsMTAgKzg2LDEwIEBAIG1lc3NhZ2VzIC0+IFBsdWdpbkNvbnRyb2xsZXJQcm94eSB7
CiAgICAgIyBHZXQgYSByZWZlcmVuY2UgdG8gdGhlIHBsdWctaW4ncyBzY3JpcHRhYmxlIE5QT2Jq
ZWN0LgogICAgIEdldFBsdWdpblNjcmlwdGFibGVOUE9iamVjdCgpIC0+ICh1aW50NjRfdCBwbHVn
aW5TY3JpcHRhYmxlTlBPYmplY3RJRCkKIAorI2lmIFBMQVRGT1JNKE1BQykKICAgICAjIFNlbmQg
dGhlIGNvbXBsZXggdGV4dCBpbnB1dCB0byB0aGUgcGx1Zy1pbi4KICAgICBTZW5kQ29tcGxleFRl
eHRJbnB1dChXVEY6OlN0cmluZyB0ZXh0SW5wdXQpCiAKLSNpZiBQTEFURk9STShNQUMpCiAgICAg
IyBTZW50IHdoZW4gdGhlIGNvbnRhaW5pbmcgTlNXaW5kb3cncyBmb2N1cyBjaGFuZ2VzCiAgICAg
V2luZG93Rm9jdXNDaGFuZ2VkKGJvb2wgaGFzRm9jdXMpCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAkocmV2aXNpb24gODEzNjQpCisr
KyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBACiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogCiAj
aW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJNYWNoUG9ydC5oIgogI2luY2x1
ZGUgIk5ldHNjYXBlUGx1Z2luTW9kdWxlLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc1Byb3h5
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgi
CkBAIC0xMjUsMzUgKzEyNCw2IEBAIHZvaWQgUGx1Z2luUHJvY2Vzczo6aW5pdGlhbGl6ZVBsdWdp
blByb2MKICAgICBwbGF0Zm9ybUluaXRpYWxpemUocGFyYW1ldGVycyk7CiB9CiAKLXZvaWQgUGx1
Z2luUHJvY2Vzczo6Y3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQotewotICAgIC8vIEZJWE1F
OiBUaGlzIGlzIHBsYXRmb3JtIHNwZWNpZmljIQotCi0gICAgLy8gQ3JlYXRlIHRoZSBsaXN0ZW5p
bmcgcG9ydC4KLSAgICBtYWNoX3BvcnRfdCBsaXN0ZW5pbmdQb3J0OwotICAgIG1hY2hfcG9ydF9h
bGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBNQUNIX1BPUlRfUklHSFRfUkVDRUlWRSwgJmxpc3Rl
bmluZ1BvcnQpOwotCi0gICAgYm9vbCBkaWRIYXZlQW55V2ViUHJvY2Vzc0Nvbm5lY3Rpb25zID0g
IW1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmlzRW1wdHkoKTsKLQotICAgIC8vIENyZWF0ZSBhIGxp
c3RlbmluZyBjb25uZWN0aW9uLgotICAgIFJlZlB0cjxXZWJQcm9jZXNzQ29ubmVjdGlvbj4gY29u
bmVjdGlvbiA9IFdlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUobGlzdGVuaW5nUG9ydCk7Ci0g
ICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMuYXBwZW5kKGNvbm5lY3Rpb24ucmVsZWFzZSgpKTsK
LQotICAgIENvcmVJUEM6Ok1hY2hQb3J0IGNsaWVudFBvcnQobGlzdGVuaW5nUG9ydCwgTUFDSF9N
U0dfVFlQRV9NQUtFX1NFTkQpOwotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UGx1
Z2luUHJvY2Vzc1Byb3h5OjpEaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbihjbGllbnRQb3J0
KSwgMCk7Ci0KLSAgICBpZiAoTmV0c2NhcGVQbHVnaW5Nb2R1bGUqIG1vZHVsZSA9IG5ldHNjYXBl
UGx1Z2luTW9kdWxlKCkpIHsKLSAgICAgICAgaWYgKCFkaWRIYXZlQW55V2ViUHJvY2Vzc0Nvbm5l
Y3Rpb25zKSB7Ci0gICAgICAgICAgICAvLyBJbmNyZW1lbnQgdGhlIGxvYWQgY291bnQuIFRoaXMg
aXMgbWF0Y2hlZCBieSBhIGNhbGwgdG8gZGVjcmVtZW50TG9hZENvdW50IGluIHN0YXJ0U2h1dGRv
d25UaW1lcklmTmVjZXNzYXJ5LgotICAgICAgICAgICAgLy8gV2UgZG8gdGhpcyBzbyB0aGF0IHRo
ZSBwbHVnLWluIG1vZHVsZSdzIE5QX1NodXRkb3duIHdvbid0IGJlIGNhbGxlZCB1bnRpbCByaWdo
dCBiZWZvcmUgZXhpdGluZy4KLSAgICAgICAgICAgIG1vZHVsZS0+aW5jcmVtZW50TG9hZENvdW50
KCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyBTdG9wIHRoZSBzaHV0ZG93biB0aW1lci4K
LSAgICBtX3NodXRkb3duVGltZXIuc3RvcCgpOwotfQotCiB2b2lkIFBsdWdpblByb2Nlc3M6Omdl
dFNpdGVzV2l0aERhdGEodWludDY0X3QgY2FsbGJhY2tJRCkKIHsKICAgICBWZWN0b3I8U3RyaW5n
PiBzaXRlczsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3Mv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCShyZXZpc2lvbiA4MTM2NCkKKysrIFNvdXJjZS9XZWJL
aXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNjcsMTAgKzE2NywxMiBAQCB2b2lkIFdlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGVQ
bHVnaW4oCiAgICAgLy8gTm93IHRyeSB0byBpbml0aWFsaXplIHRoZSBwbHVnLWluLgogICAgIHJl
c3VsdCA9IHBsdWdpbkNvbnRyb2xsZXJQcm94eVB0ci0+aW5pdGlhbGl6ZShwYXJhbWV0ZXJzKTsK
IAorI2lmIFBMQVRGT1JNKE1BQykKICAgICBpZiAocmVzdWx0KSB7CiAgICAgICAgIHJlbW90ZUxh
eWVyQ2xpZW50SUQgPSBwbHVnaW5Db250cm9sbGVyUHJveHlQdHItPnJlbW90ZUxheWVyQ2xpZW50
SUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyNlbmRpZgogCiAgICAgLy8gV2UgZmFpbGVk
IHRvIGluaXRpYWxpemUsIHJlbW92ZSB0aGUgcGx1Zy1pbiBjb250cm9sbGVyLiBUaGlzIGNvdWxk
IGNhdXNlIHVzIHRvIGJlIGRlbGV0ZWQuCiAgICAgcmVtb3ZlUGx1Z2luQ29udHJvbGxlclByb3h5
KHBsdWdpbkNvbnRyb2xsZXJQcm94eVB0cik7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Q
cm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW0JKHJldmlzaW9uIDgxMzY0
KQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjUsMTIgKzI1LDE0IEBACiAKICNpbXBvcnQgImNvbmZpZy5o
IgogI2ltcG9ydCAiUGx1Z2luUHJvY2Vzcy5oIgorI2ltcG9ydCAiV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24uaCIKIAogI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKIAogLy8gRklYTUUgKFdlYktpdDIp
IDxyZGFyOi8vcHJvYmxlbS84NzI4ODYwPiBXZWJLaXQyIG5lZWRzIHRvIGJlIGxvY2FsaXplZAog
I2RlZmluZSBVSV9TVFJJTkcoX19zdHIsIF9fZGVzYykgW05TU3RyaW5nIHN0cmluZ1dpdGhVVEY4
U3RyaW5nOl9fc3RyXQogCisjaW1wb3J0ICJNYWNoUG9ydC5oIgogI2ltcG9ydCAiTmV0c2NhcGVQ
bHVnaW4uaCIKICNpbXBvcnQgIlBsdWdpblByb2Nlc3NTaGltLmgiCiAjaW1wb3J0ICJQbHVnaW5Q
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCkBAIC0xMDMsNiArMTA1LDMzIEBAIHZvaWQgUGx1
Z2luUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplKGMKICAgICBXS1NldFZpc2libGVBcHBsaWNh
dGlvbk5hbWUoKENGU3RyaW5nUmVmKWFwcGxpY2F0aW9uTmFtZSk7CiB9CiAKK3ZvaWQgUGx1Z2lu
UHJvY2Vzczo6Y3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQoreworICAgIC8vIENyZWF0ZSB0
aGUgbGlzdGVuaW5nIHBvcnQuCisgICAgbWFjaF9wb3J0X3QgbGlzdGVuaW5nUG9ydDsKKyAgICBt
YWNoX3BvcnRfYWxsb2NhdGUobWFjaF90YXNrX3NlbGYoKSwgTUFDSF9QT1JUX1JJR0hUX1JFQ0VJ
VkUsICZsaXN0ZW5pbmdQb3J0KTsKKworICAgIGJvb2wgZGlkSGF2ZUFueVdlYlByb2Nlc3NDb25u
ZWN0aW9ucyA9ICFtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5pc0VtcHR5KCk7CisKKyAgICAvLyBD
cmVhdGUgYSBsaXN0ZW5pbmcgY29ubmVjdGlvbi4KKyAgICBSZWZQdHI8V2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24+IGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGxpc3Rlbmlu
Z1BvcnQpOworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmFwcGVuZChjb25uZWN0aW9uLnJl
bGVhc2UoKSk7CisKKyAgICBDb3JlSVBDOjpNYWNoUG9ydCBjbGllbnRQb3J0KGxpc3RlbmluZ1Bv
cnQsIE1BQ0hfTVNHX1RZUEVfTUFLRV9TRU5EKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVz
c2FnZXM6OlBsdWdpblByb2Nlc3NQcm94eTo6RGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24o
Y2xpZW50UG9ydCksIDApOworCisgICAgaWYgKE5ldHNjYXBlUGx1Z2luTW9kdWxlKiBtb2R1bGUg
PSBuZXRzY2FwZVBsdWdpbk1vZHVsZSgpKSB7CisgICAgICAgIGlmICghZGlkSGF2ZUFueVdlYlBy
b2Nlc3NDb25uZWN0aW9ucykgeworICAgICAgICAgICAgLy8gSW5jcmVtZW50IHRoZSBsb2FkIGNv
dW50LiBUaGlzIGlzIG1hdGNoZWQgYnkgYSBjYWxsIHRvIGRlY3JlbWVudExvYWRDb3VudCBpbiBz
dGFydFNodXRkb3duVGltZXJJZk5lY2Vzc2FyeS4KKyAgICAgICAgICAgIC8vIFdlIGRvIHRoaXMg
c28gdGhhdCB0aGUgcGx1Zy1pbiBtb2R1bGUncyBOUF9TaHV0ZG93biB3b24ndCBiZSBjYWxsZWQg
dW50aWwgcmlnaHQgYmVmb3JlIGV4aXRpbmcuCisgICAgICAgICAgICBtb2R1bGUtPmluY3JlbWVu
dExvYWRDb3VudCgpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gU3RvcCB0aGUgc2h1dGRv
d24gdGltZXIuCisgICAgbV9zaHV0ZG93blRpbWVyLnN0b3AoKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoUExVR0lOX1BST0NFU1MpCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nlc3NRdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzUXQuY3Bw
CShyZXZpc2lvbiA4MTM2NCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1
Z2luUHJvY2Vzc1F0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksMTEgQEAgdm9pZCBQ
bHVnaW5Qcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUoYwogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CiAKK3ZvaWQgUGx1Z2luUHJvY2Vzczo6Y3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAj
ZW5kaWYgLy8gRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCShyZXZp
c2lvbiA4MTM2NCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b2Nlc3NQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDkgQEAKIAogI2lmIEVO
QUJMRShQTFVHSU5fUFJPQ0VTUykKIAorI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJNYWNo
UG9ydC5oIgorI2VuZGlmCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUGx1Z2lu
UHJvY2Vzc01lc3NhZ2VzLmgiCkBAIC0xMjAsOCArMTIyLDEyIEBAIHZvaWQgUGx1Z2luUHJvY2Vz
c1Byb3h5OjpwbHVnaW5Qcm9jZXNzQ3IKICAgICAgICAgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
KiByZXBseSA9IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmZpcnN0KCkuc2Vjb25kOwogICAg
ICAgICBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5yZW1vdmVGaXJzdCgpOwogCi0gICAgICAg
IC8vIEZJWE1FOiBUaGlzIGlzIE1hYyBzcGVjaWZpYy4KKyNpZiBQTEFURk9STShNQUMpCiAgICAg
ICAgIHJlcGx5LT5lbmNvZGUoQ29yZUlQQzo6TWFjaFBvcnQoMCwgTUFDSF9NU0dfVFlQRV9NT1ZF
X1NFTkQpKTsKKyNlbHNlCisgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCiAgICAgICAgIHJlcGx5V2ViUHJvY2Vzc1Byb3h5
LT5jb25uZWN0aW9uKCktPnNlbmRTeW5jUmVwbHkocmVwbHkpOwogICAgIH0KIApAQCAtMTg4LDYg
KzE5NCw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2gKICAgICBt
X251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHMgPSAwOwogfQogCisjaWYgUExBVEZPUk0oTUFD
KQogdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9u
KGNvbnN0IENvcmVJUEM6Ok1hY2hQb3J0JiBtYWNoUG9ydCkKIHsKICAgICBBU1NFUlQoIW1fcGVu
ZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmlzRW1wdHkoKSk7CkBAIC0xOTcsMTAgKzIwNCwxMCBAQCB2
b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlV2ViUHJvCiAgICAgQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyKiByZXBseSA9IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmZpcnN0KCku
c2Vjb25kOwogICAgIG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLnJlbW92ZUZpcnN0KCk7CiAK
LSAgICAvLyBGSVhNRTogVGhpcyBpcyBNYWMgc3BlY2lmaWMuCiAgICAgcmVwbHktPmVuY29kZShD
b3JlSVBDOjpNYWNoUG9ydChtYWNoUG9ydC5wb3J0KCksIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5E
KSk7CiAgICAgcmVwbHlXZWJQcm9jZXNzUHJveHktPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmNSZXBs
eShyZXBseSk7CiB9CisjZW5kaWYKIAogdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZEdldFNp
dGVzV2l0aERhdGEoY29uc3QgVmVjdG9yPFN0cmluZz4mIHNpdGVzLCB1aW50NjRfdCBjYWxsYmFj
a0lEKQogewpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJv
Y2Vzc1Byb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgJKHJldmlzaW9uIDgxMzY0KQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgJKHdvcmtpbmcgY29weSkK
QEAgLTgwLDcgKzgwLDkgQEAgcHJpdmF0ZToKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKICAg
ICB2b2lkIGRpZFJlY2VpdmVQbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwor
I2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIGRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9u
KGNvbnN0IENvcmVJUEM6Ok1hY2hQb3J0Jik7CisjZW5kaWYKICAgICB2b2lkIGRpZEdldFNpdGVz
V2l0aERhdGEoY29uc3QgVmVjdG9yPFN0cmluZz4mIHNpdGVzLCB1aW50NjRfdCBjYWxsYmFja0lE
KTsKICAgICB2b2lkIGRpZENsZWFyU2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCk7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDgxMzY0KQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2Vz
LmluCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw4ICsyMyw5IEBACiAjaWYgRU5BQkxFKFBMVUdJTl9Q
Uk9DRVNTKQogCiBtZXNzYWdlcyAtPiBQbHVnaW5Qcm9jZXNzUHJveHkgewotICAgICMgRklYTUU6
IFRoaXMgaXMgcGxhdGZvcm0gc3BlY2lmaWMKKyNpZiBQTEFURk9STShNQUMpCiAgICAgRGlkQ3Jl
YXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oQ29yZUlQQzo6TWFjaFBvcnQgY29ubmVjdGlvbklkZW50
aWZpZXIpCisjZW5kaWYKIAogICAgIERpZEdldFNpdGVzV2l0aERhdGEoVmVjdG9yPFdURjo6U3Ry
aW5nPiBzaXRlcywgdWludDY0X3QgY2FsbGJhY2tJRCkKICAgICBEaWRDbGVhclNpdGVEYXRhKHVp
bnQ2NF90IGNhbGxiYWNrSUQpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5h
Z2VyLmNwcAkocmV2aXNpb24gODEzNjQpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzAsNyArMzAsOSBAQAogCiAjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCiAjaW5jbHVk
ZSAiQXJndW1lbnRFbmNvZGVyLmgiCisjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIk1hY2hQ
b3J0LmgiCisjZW5kaWYKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIK
QEAgLTYxLDExICs2MywxNyBAQCBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbiogUGx1Z2luUHJvY2Vz
c0NvCiAgICAgfQogCiAgICAgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0
aW9uSWRlbnRpZmllcjsKKyNpZiBQTEFURk9STShNQUMpCiAgICAgQ29yZUlQQzo6TWFjaFBvcnQg
Y29ubmVjdGlvbk1hY2hQb3J0OwogICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVj
dGlvbigpLT5kZXByZWNhdGVkU2VuZFN5bmMoV2ViUHJvY2Vzc1Byb3h5TGVnYWN5TWVzc2FnZTo6
R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24sIDAsIENvcmVJUEM6OkluKHBsdWdpblBhdGgpLCBD
b3JlSVBDOjpPdXQoY29ubmVjdGlvbk1hY2hQb3J0KSkpCiAgICAgICAgIHJldHVybiAwOwogCiAg
ICAgY29ubmVjdGlvbklkZW50aWZpZXIgPSBjb25uZWN0aW9uTWFjaFBvcnQucG9ydCgpOworI2Vs
c2UKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAgIGNvbm5lY3Rpb25JZGVudGlmaWVyID0g
MDsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgogICAgIGlmICghY29ubmVjdGlv
bklkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiAwOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiA4MTM2NCkKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTEwLDkgKzExMCwxMCBAQAogI2VuZGlmCiAKICNpZiBFTkFCTEUoUExVR0lOX1BST0NF
U1MpCi0vLyBGSVhNRTogVGhpcyBpcyBjdXJyZW50bHkgTWFjLXNwZWNpZmljIQorI2lmIFBMQVRG
T1JNKE1BQykKICNpbmNsdWRlICJNYWNoUG9ydC5oIgogI2VuZGlmCisjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKFFUKQogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87734</attachid>
            <date>2011-03-31 08:53:47 -0700</date>
            <delta_ts>2011-04-08 17:20:01 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Qt-WK2-Make-Qt-port-compiling-with-ENABLE_PLUGIN_PRO.patch</filename>
            <type>text/plain</type>
            <size>16099</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">RnJvbSA5ZTVkMDBiOTIwMTQyMTlkMjlmNjcwNWM4YTczNjQ0ZDViZTAwZTc0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBCYWxhenMgS2VsZW1lbiA8a2JhbGF6c0B3ZWJraXQub3JnPgpE
YXRlOiBUaHUsIDMxIE1hciAyMDExIDE1OjUwOjU5ICswMDAwClN1YmplY3Q6IFtQQVRDSF0gW1F0
XVtXSzJdIE1ha2UgUXQgcG9ydCBjb21waWxpbmcgd2l0aCBFTkFCTEVfUExVR0lOX1BST0NFU1M9
MQogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1NzE5CgpSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KCkd1YXJkIGZ1bmN0aW9uYWxpdHkgcmVsYXRlZCB0byBjb21w
bGV4IHRleHQgYW5kIGltcGxlbWVudGF0aW9ucwp0aGF0IHJlbHkgb24gTWFjaFBvcnQgd2l0aCBQ
TEFURk9STShNQUMpLgpCYXNlZCBvbiBPbGVnIFJvbWFzaGluJ3MgcGF0Y2guCgoqIFBsdWdpblBy
b2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcDoKKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNv
bnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbjoKKiBQbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3Mu
Y3BwOgooV2ViS2l0OjpQbHVnaW5Qcm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbik6
CiogUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CihXZWJLaXQ6OldlYlBy
b2Nlc3NDb25uZWN0aW9uOjpjcmVhdGVQbHVnaW4pOgoqIFNoYXJlZC9QbHVnaW5zL1BsdWdpblBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgooV2ViS2l0OjpQbHVnaW5Qcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOjpkZWNvZGUpOiBGaXggYmFkIEMrKyB0aGF0CmRvZXMgbm90IGNvbXBpbGUg
d2l0aCBnY2MtbGludXguCiogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNw
cDoKKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpwbHVnaW5Qcm9jZXNzQ3Jhc2hlZE9yRmFp
bGVkVG9MYXVuY2gpOgooV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZENyZWF0ZVdlYlBy
b2Nlc3NDb25uZWN0aW9uKToKKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHku
aDoKKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW46Ciog
V2ViS2l0Mi5wcm86IE1vdmUgaW1wbGVtZW50YXRpb24gdGhhdCBkb2VzIG5vdCBuZWVkIGV4dGVy
bmFsCnZpc2liaWxpdHkgZnJvbSBXZWJLaXQyQVBJLnByaS4gQWRkaW5nIHRoZSBoZWFkZXJzIGFz
IHdlbGwuCiogV2ViS2l0MkFQSS5wcmk6CiogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWFuYWdlci5jcHA6CihXZWJLaXQ6OlBsdWdpblByb2Nlc3NDb25uZWN0aW9u
TWFuYWdlcjo6Z2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24pOgoqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKLS0tCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMzIgKysrKysrKysrKysrKysrKysrKysKIC4uLi9QbHVnaW5Qcm9j
ZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAgICAgICAgIHwgICAgMiArCiAuLi4vUGx1Z2lu
Q29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluICAgICAgICAgICAgICB8ICAgIDIgKy0KIFNvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAgICAgIHwgICAxNCArKysr
KystLQogLi4uL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAg
fCAgICAyICsKIC4uLi9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
ICAgIHwgICAgMiArLQogLi4uL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5j
cHAgICAgICAgfCAgIDE0ICsrKysrKystLQogLi4uL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJvY2Vzc1Byb3h5LmggfCAgICAyICsKIC4uLi9QbHVnaW5zL1BsdWdpblByb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbiAgICAgICAgIHwgICAgMyArLQogU291cmNlL1dlYktpdDIvV2ViS2l0
Mi5wcm8gICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA4ICsrKysrCiBTb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyQVBJLnByaSAgICAgICAgICAgICAgICAgICAgICB8ICAgIDUgLS0tCiAuLi4vUGx1
Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwICAgICB8ICAgMTEgKysrKysr
LQogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwICAgICAgfCAg
ICAzICstCiAxMyBmaWxlcyBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMo
LSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggNzAxYjAxMy4uZDdmMzYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsx
LDM3IEBACiAyMDExLTAzLTMxICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4K
IAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdW1dL
Ml0gTWFrZSBRdCBwb3J0IGNvbXBpbGluZyB3aXRoIEVOQUJMRV9QTFVHSU5fUFJPQ0VTUz0xCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTcxOQorCisg
ICAgICAgIEd1YXJkIGZ1bmN0aW9uYWxpdHkgcmVsYXRlZCB0byBjb21wbGV4IHRleHQgYW5kIGlt
cGxlbWVudGF0aW9ucworICAgICAgICB0aGF0IHJlbHkgb24gTWFjaFBvcnQgd2l0aCBQTEFURk9S
TShNQUMpLgorICAgICAgICBCYXNlZCBvbiBPbGVnIFJvbWFzaGluJ3MgcGF0Y2guCisKKyAgICAg
ICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHA6CisgICAgICAgICog
UGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAg
ICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1
Z2luUHJvY2Vzczo6Y3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFBsdWdp
blByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlUGx1Z2luKToKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKTogRml4IGJhZCBDKysgdGhh
dAorICAgICAgICBkb2VzIG5vdCBjb21waWxlIHdpdGggZ2NjLWxpbnV4LgorICAgICAgICAqIFVJ
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlBsdWdpblByb2Nlc3NQcm94eTo6cGx1Z2luUHJvY2Vzc0NyYXNoZWRPckZhaWxlZFRvTGF1bmNo
KToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVXZWJQcm9j
ZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vz
c1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdDIucHJvOiBNb3ZlIGltcGxlbWVudGF0aW9u
IHRoYXQgZG9lcyBub3QgbmVlZCBleHRlcm5hbAorICAgICAgICB2aXNpYmlsaXR5IGZyb20gV2Vi
S2l0MkFQSS5wcmkuIEFkZGluZyB0aGUgaGVhZGVycyBhcyB3ZWxsLgorICAgICAgICAqIFdlYktp
dDJBUEkucHJpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbk1hbmFnZXI6OmdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisKKzIwMTEtMDMtMzEgIEJhbGF6cyBLZWxlbWVu
ICA8a2JhbGF6c0B3ZWJraXQub3JnPgorCiAgICAgICAgIFJldmlld2VkIGJ5IENzYWJhIE9zenRy
b2dvbsOhYy4KIAogICAgICAgICBbV0syXSBJbnRyb2R1Y2UgYW4gb3B0aW9uIGZvciBubyBOUEFQ
SSBzdXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdp
bkNvbnRyb2xsZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdp
bkNvbnRyb2xsZXJQcm94eS5jcHAKaW5kZXggMDNhOGFlYy4uZWEyOWNlMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNw
cApAQCAtMjczLDYgKzI3Myw3IEBAIHZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5OjpwbHVnaW5Q
cm9jZXNzQ3Jhc2hlZCgpCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKKyNpZiBQTEFU
Rk9STShNQUMpCiB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6c2V0Q29tcGxleFRleHRJbnB1
dEVuYWJsZWQoYm9vbCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCkKIHsKICAgICBpZiAobV9pc0Nv
bXBsZXhUZXh0SW5wdXRFbmFibGVkID09IGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKQpAQCAtMjg3
LDYgKzI4OCw3IEBAIG1hY2hfcG9ydF90IFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6Y29tcG9zaXRp
bmdSZW5kZXJTZXJ2ZXJQb3J0KCkKIHsKICAgICByZXR1cm4gUGx1Z2luUHJvY2Vzczo6c2hhcmVk
KCkuY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCk7CiB9CisjZW5kaWYKIAogU3RyaW5nIFBs
dWdpbkNvbnRyb2xsZXJQcm94eTo6cHJveGllc0ZvclVSTChjb25zdCBTdHJpbmcmIHVybFN0cmlu
ZykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29u
dHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5Db250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNmUyN2IzNi4uMjJkNTk5NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVy
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVn
aW5Db250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTg2LDEwICs4NiwxMCBAQCBtZXNzYWdl
cyAtPiBQbHVnaW5Db250cm9sbGVyUHJveHkgewogICAgICMgR2V0IGEgcmVmZXJlbmNlIHRvIHRo
ZSBwbHVnLWluJ3Mgc2NyaXB0YWJsZSBOUE9iamVjdC4KICAgICBHZXRQbHVnaW5TY3JpcHRhYmxl
TlBPYmplY3QoKSAtPiAodWludDY0X3QgcGx1Z2luU2NyaXB0YWJsZU5QT2JqZWN0SUQpCiAKKyNp
ZiBQTEFURk9STShNQUMpCiAgICAgIyBTZW5kIHRoZSBjb21wbGV4IHRleHQgaW5wdXQgdG8gdGhl
IHBsdWctaW4uCiAgICAgU2VuZENvbXBsZXhUZXh0SW5wdXQoV1RGOjpTdHJpbmcgdGV4dElucHV0
KQogCi0jaWYgUExBVEZPUk0oTUFDKQogICAgICMgU2VudCB3aGVuIHRoZSBjb250YWluaW5nIE5T
V2luZG93J3MgZm9jdXMgY2hhbmdlcwogICAgIFdpbmRvd0ZvY3VzQ2hhbmdlZChib29sIGhhc0Zv
Y3VzKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNw
cAppbmRleCBlMzVkZTlkLi5iODgyNzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKQEAgLTI5LDEyICsyOSwxNSBAQAogI2lmIEVOQUJMRShQ
TFVHSU5fUFJPQ0VTUykKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAi
TWFjaFBvcnQuaCIKICNpbmNsdWRlICJOZXRzY2FwZVBsdWdpbk1vZHVsZS5oIgogI2luY2x1ZGUg
IlBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NDb25uZWN0aW9uLmgiCiAK
KyNpZiBQTEFURk9STShNQUMpCisjaW5jbHVkZSAiTWFjaFBvcnQuaCIKKyNlbmRpZgorCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIGNvbnN0IGRvdWJsZSBzaHV0ZG93blRpbWVvdXQgPSAx
NS4wOwpAQCAtMTMyLDIwICsxMzUsMjMgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzOjppbml0aWFsaXpl
UGx1Z2luUHJvY2Vzcyhjb25zdCBQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXIKIAogdm9p
ZCBQbHVnaW5Qcm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbigpCiB7Ci0gICAgLy8g
RklYTUU6IFRoaXMgaXMgcGxhdGZvcm0gc3BlY2lmaWMhCisgICAgYm9vbCBkaWRIYXZlQW55V2Vi
UHJvY2Vzc0Nvbm5lY3Rpb25zID0gIW1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmlzRW1wdHkoKTsK
IAorI2lmIFBMQVRGT1JNKE1BQykKICAgICAvLyBDcmVhdGUgdGhlIGxpc3RlbmluZyBwb3J0Lgog
ICAgIG1hY2hfcG9ydF90IGxpc3RlbmluZ1BvcnQ7CiAgICAgbWFjaF9wb3J0X2FsbG9jYXRlKG1h
Y2hfdGFza19zZWxmKCksIE1BQ0hfUE9SVF9SSUdIVF9SRUNFSVZFLCAmbGlzdGVuaW5nUG9ydCk7
CiAKLSAgICBib29sIGRpZEhhdmVBbnlXZWJQcm9jZXNzQ29ubmVjdGlvbnMgPSAhbV93ZWJQcm9j
ZXNzQ29ubmVjdGlvbnMuaXNFbXB0eSgpOwotCiAgICAgLy8gQ3JlYXRlIGEgbGlzdGVuaW5nIGNv
bm5lY3Rpb24uCiAgICAgUmVmUHRyPFdlYlByb2Nlc3NDb25uZWN0aW9uPiBjb25uZWN0aW9uID0g
V2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShsaXN0ZW5pbmdQb3J0KTsKICAgICBtX3dlYlBy
b2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQoY29ubmVjdGlvbi5yZWxlYXNlKCkpOwogCiAgICAgQ29y
ZUlQQzo6TWFjaFBvcnQgY2xpZW50UG9ydChsaXN0ZW5pbmdQb3J0LCBNQUNIX01TR19UWVBFX01B
S0VfU0VORCk7CiAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpQbHVnaW5Qcm9jZXNz
UHJveHk6OkRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKGNsaWVudFBvcnQpLCAwKTsKKyNl
bHNlCisgICAgLy8gRklYTUU6IEltcGxlbWVudC4KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyNlbmRpZgogCiAgICAgaWYgKE5ldHNjYXBlUGx1Z2luTW9kdWxlKiBtb2R1bGUgPSBuZXRzY2Fw
ZVBsdWdpbk1vZHVsZSgpKSB7CiAgICAgICAgIGlmICghZGlkSGF2ZUFueVdlYlByb2Nlc3NDb25u
ZWN0aW9ucykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQ
cm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlBy
b2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCA1NmZmYmI5Li44NTEyM2Y2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcApA
QCAtMTczLDcgKzE3Myw5IEBAIHZvaWQgV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZVBsdWdp
bih1aW50NjRfdCBwbHVnaW5JbnN0YW5jZUlELCBjb25zdCBQbHVnaW46CiAgICAgaWYgKCFyZXN1
bHQpCiAgICAgICAgIHJldHVybjsKIAorI2lmIFBMQVRGT1JNKE1BQykKICAgICByZW1vdGVMYXll
ckNsaWVudElEID0gcGx1Z2luQ29udHJvbGxlclByb3h5UHRyLT5yZW1vdGVMYXllckNsaWVudElE
KCk7CisjZW5kaWYKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwCmluZGV4IDA2MDE0YTkuLmM2Yzg3YTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCkBAIC00Niw3ICs0Niw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2Rl
cikKICNlbmRpZgogfQogCi1ib29sIFBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRl
Y29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFBsdWdpblByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM6OlBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHJlc3VsdCkK
K2Jvb2wgUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogZGVjb2RlciwgUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYg
cmVzdWx0KQogewogICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5wbHVnaW5QYXRoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAKaW5kZXggZjE2Nzc0Ny4uZTJhMGNi
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJv
Y2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzUHJveHkuY3BwCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpZiBFTkFCTEUoUExVR0lO
X1BST0NFU1MpCiAKLSNpbmNsdWRlICJNYWNoUG9ydC5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzTWFuYWdlci5o
IgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NNZXNzYWdlcy5oIgpAQCAtMzcsNiArMzYsMTAgQEAK
ICNpbmNsdWRlICJXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzUHJveHkuaCIKIAorI2lmIFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlICJNYWNoUG9ydC5oIgor
I2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBQYXNzT3duUHRyPFBsdWdpblByb2Nlc3NQ
cm94eT4gUGx1Z2luUHJvY2Vzc1Byb3h5OjpjcmVhdGUoUGx1Z2luUHJvY2Vzc01hbmFnZXIqIFBs
dWdpblByb2Nlc3NNYW5hZ2VyLCBjb25zdCBQbHVnaW5JbmZvU3RvcmU6OlBsdWdpbiYgcGx1Z2lu
SW5mbykKQEAgLTEyNCw4ICsxMjcsMTIgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OnBsdWdp
blByb2Nlc3NDcmFzaGVkT3JGYWlsZWRUb0xhdW5jaCgpCiAgICAgICAgIENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciogcmVwbHkgPSBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5maXJzdCgpLnNl
Y29uZDsKICAgICAgICAgbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMucmVtb3ZlRmlyc3QoKTsK
IAotICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBNYWMgc3BlY2lmaWMuCisjaWYgUExBVEZPUk0o
TUFDKQogICAgICAgICByZXBseS0+ZW5jb2RlKENvcmVJUEM6Ok1hY2hQb3J0KDAsIE1BQ0hfTVNH
X1RZUEVfTU9WRV9TRU5EKSk7CisjZWxzZQorICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50Lgor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgogICAgICAgICByZXBseVdlYlBy
b2Nlc3NQcm94eS0+Y29ubmVjdGlvbigpLT5zZW5kU3luY1JlcGx5KHJlcGx5KTsKICAgICB9CiAK
QEAgLTIwMCw2ICsyMDcsNyBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1
bmNoaW5nKFByb2Nlc3NMYXVuY2hlciosIENvcmVJUEM6OkNvbm5lY3RpbwogICAgIG1fbnVtUGVu
ZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0cyA9IDA7CiB9CiAKKyNpZiBQTEFURk9STShNQUMpCiB2b2lk
IFBsdWdpblByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY29uc3Qg
Q29yZUlQQzo6TWFjaFBvcnQmIG1hY2hQb3J0KQogewogICAgIEFTU0VSVCghbV9wZW5kaW5nQ29u
bmVjdGlvblJlcGxpZXMuaXNFbXB0eSgpKTsKQEAgLTIwOSwxMCArMjE3LDEwIEBAIHZvaWQgUGx1
Z2luUHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBDb3Jl
SVBDOjpNYWNoUG9ydCYKICAgICBDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIHJlcGx5ID0gbV9w
ZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMuZmlyc3QoKS5zZWNvbmQ7CiAgICAgbV9wZW5kaW5nQ29u
bmVjdGlvblJlcGxpZXMucmVtb3ZlRmlyc3QoKTsKIAotICAgIC8vIEZJWE1FOiBUaGlzIGlzIE1h
YyBzcGVjaWZpYy4KICAgICByZXBseS0+ZW5jb2RlKENvcmVJUEM6Ok1hY2hQb3J0KG1hY2hQb3J0
LnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpKTsKICAgICByZXBseVdlYlByb2Nlc3NQ
cm94eS0+Y29ubmVjdGlvbigpLT5zZW5kU3luY1JlcGx5KHJlcGx5KTsKIH0KKyNlbmRpZgogCiB2
b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6ZGlkR2V0U2l0ZXNXaXRoRGF0YShjb25zdCBWZWN0b3I8
U3RyaW5nPiYgc2l0ZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCmluZGV4IGUy
ODVkNjQuLjIxMjkyYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCkBAIC04Niw3ICs4Niw5IEBAIHByaXZhdGU6CiAK
ICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzCiAgICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJvY2Vz
c1Byb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyNpZiBQTEFURk9STShNQUMpCiAgICAgdm9pZCBk
aWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBDb3JlSVBDOjpNYWNoUG9ydCYpOwor
I2VuZGlmCiAgICAgdm9pZCBkaWRHZXRTaXRlc1dpdGhEYXRhKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBzaXRlcywgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkaWRDbGVhclNpdGVEYXRh
KHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5k
ZXggNWZjYmU3MS4uN2NhYWMxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAt
MjMsOCArMjMsOSBAQAogI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKIAogbWVzc2FnZXMgLT4g
UGx1Z2luUHJvY2Vzc1Byb3h5IHsKLSAgICAjIEZJWE1FOiBUaGlzIGlzIHBsYXRmb3JtIHNwZWNp
ZmljCisjaWYgUExBVEZPUk0oTUFDKQogICAgIERpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9u
KENvcmVJUEM6Ok1hY2hQb3J0IGNvbm5lY3Rpb25JZGVudGlmaWVyKQorI2VuZGlmCiAKICAgICBE
aWRHZXRTaXRlc1dpdGhEYXRhKFZlY3RvcjxXVEY6OlN0cmluZz4gc2l0ZXMsIHVpbnQ2NF90IGNh
bGxiYWNrSUQpCiAgICAgRGlkQ2xlYXJTaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnBybwppbmRleCA1OGI0NzcwLi4yNDZjYjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnBybworKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwpAQCAtMTA3LDYg
KzEwNyw5IEBAIEhFQURFUlMgKz0gXAogICAgIFBsYXRmb3JtL1NoYXJlZE1lbW9yeS5oIFwKICAg
ICBQbGF0Zm9ybS9Xb3JrSXRlbS5oIFwKICAgICBQbGF0Zm9ybS9Xb3JrUXVldWUuaCBcCisgICAg
UGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaCBcCisgICAgUGx1Z2luUHJvY2Vz
cy9QbHVnaW5Qcm9jZXNzLmggXAorICAgIFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24uaCBcCiAgICAgU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oIFwKICAgICBTaGFyZWQvQ2FjaGVN
b2RlbC5oIFwKICAgICBTaGFyZWQvQ2hpbGRQcm9jZXNzLmggXApAQCAtMzA3LDYgKzMxMCwxMSBA
QCBTT1VSQ0VTICs9IFwKICAgICBQbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3BwIFwKICAgICBQbGF0
Zm9ybS9xdC9TaGFyZWRNZW1vcnlRdC5jcHAgXAogICAgIFBsYXRmb3JtL3F0L1dvcmtRdWV1ZVF0
LmNwcCBcCisgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwIFwKKyAg
ICBQbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwIFwKKyAgICBQbHVnaW5Qcm9jZXNzL1dl
YlByb2Nlc3NDb25uZWN0aW9uLmNwcCBcCisgICAgUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Db250
cm9sbGVyUHJveHlRdC5jcHAgXAorICAgIFBsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc1F0
LmNwcCBcCiAgICAgU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5Nb2R1bGUu
Y3BwIFwKICAgICBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbk1vZHVsZU5v
bmUuY3BwIFwKICAgICBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS94MTEvTmV0c2NhcGVQbHVnaW5N
b2R1bGVYMTEuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJBUEkucHJp
IGIvU291cmNlL1dlYktpdDIvV2ViS2l0MkFQSS5wcmkKaW5kZXggN2IxODJhOS4uNjBkNjdkMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0MkFQSS5wcmkKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViS2l0MkFQSS5wcmkKQEAgLTYwLDEyICs2MCw3IEBAIFdFQktJVDJfQVBJX1NPVVJD
RVMgPSBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZVBhZ2VHcm91cC5jcHAgXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlT3ZlcmxheS5jcHAg
XAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5jcHAgXAotICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1Bs
dWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcCBcCi0gICAgJCRTT1VSQ0VfRElS
L1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcCBcCi0gICAgJCRTT1VSQ0Vf
RElSL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgXAotICAg
ICQkU09VUkNFX0RJUi9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luQ29udHJvbGxlclBy
b3h5UXQuY3BwIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1Bs
dWdpblByb2Nlc3NNYWluUXQuY3BwIFwKLSAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9QbHVnaW5Q
cm9jZXNzL3F0L1BsdWdpblByb2Nlc3NRdC5jcHAgXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQy
L1dlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc01haW5RdC5jcHAKIAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbk1hbmFnZXIuY3BwCmluZGV4IDEyOTAzOTEuLjNiYzhmM2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCkBAIC0zMCwxMyArMzAsMTYgQEAKIAogI2lu
Y2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgogI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgot
I2luY2x1ZGUgIk1hY2hQb3J0LmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24u
aCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZUtpbmRzLmgiCiAjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCisjaWYgUExBVEZPUk0oTUFDKQorI2luY2x1ZGUgIk1h
Y2hQb3J0LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uTWFuYWdlciYgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpzaGFyZWQo
KQpAQCAtNjEsMTEgKzY0LDE3IEBAIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKiBQbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbk1hbmFnZXI6OmdldFBsdWdpblByb2Nlc3NDb25uZWN0CiAgICAgfQogCiAg
ICAgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcjsK
KyNpZiBQTEFURk9STShNQUMpCiAgICAgQ29yZUlQQzo6TWFjaFBvcnQgY29ubmVjdGlvbk1hY2hQ
b3J0OwogICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5kZXByZWNh
dGVkU2VuZFN5bmMoV2ViUHJvY2Vzc1Byb3h5TGVnYWN5TWVzc2FnZTo6R2V0UGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb24sIDAsIENvcmVJUEM6OkluKHBsdWdpblBhdGgpLCBDb3JlSVBDOjpPdXQoY29u
bmVjdGlvbk1hY2hQb3J0KSkpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgY29ubmVjdGlvbklk
ZW50aWZpZXIgPSBjb25uZWN0aW9uTWFjaFBvcnQucG9ydCgpOworI2Vsc2UKKyAgICAvLyBGSVhN
RTogSW1wbGVtZW50LgorICAgIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gMDsKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyNlbmRpZgogICAgIGlmICghY29ubmVjdGlvbklkZW50aWZpZXIpCiAg
ICAgICAgIHJldHVybiAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKaW5kZXggMTE5NTgyOC4uZTMyMzQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTEwLDkgKzExMCwxMCBAQAogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCi0vLyBGSVhNRTogVGhpcyBpcyBjdXJy
ZW50bHkgTWFjLXNwZWNpZmljIQorI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJNYWNoUG9y
dC5oIgogI2VuZGlmCisjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFFUKQogI2luY2x1ZGUgIkhpdFRl
c3RSZXN1bHQuaCIKLS0gCjEuNy4zLjIKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88903</attachid>
            <date>2011-04-08 17:20:07 -0700</date>
            <delta_ts>2011-04-14 05:38:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55719-20110409002006.patch</filename>
            <type>text/plain</type>
            <size>14584</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODMzMDcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBhNDYzNzY2YzEwMzUzMTZl
OWI5NzQzNzY2YTZhMzAzYTVlOWQzMjEwLi5lMjBmYzQxOWJlNzE1ZWE2MGE5YmZmNGFiYWI2Mjdi
ZWVmZTU2NTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMDMtMzEgIEJhbGF6
cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF1bV0syXSBNYWtlIFF0IHBvcnQgY29tcGlsaW5n
IHdpdGggRU5BQkxFX1BMVUdJTl9QUk9DRVNTPTEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTU1NzE5CisKKyAgICAgICAgR3VhcmQgZnVuY3Rpb25hbGl0
eSByZWxhdGVkIHRvIGNvbXBsZXggdGV4dCBhbmQgaW1wbGVtZW50YXRpb25zCisgICAgICAgIHRo
YXQgcmVseSBvbiBNYWNoUG9ydCB3aXRoIFBMQVRGT1JNKE1BQykuCisgICAgICAgIEJhc2VkIG9u
IE9sZWcgUm9tYXNoaW4ncyBwYXRjaC4KKworICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2lu
Q29udHJvbGxlclByb3h5LmNwcDoKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRy
b2xsZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpblBy
b2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzOjpjcmVhdGVXZWJQcm9j
ZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGVQ
bHVnaW4pOgorICAgICAgICAqIFNoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzOjpkZWNvZGUpOiBGaXggYmFkIEMrKyB0aGF0CisgICAgICAgIGRvZXMgbm90IGNvbXBp
bGUgd2l0aCBnY2MtbGludXguCisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJv
Y2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpwbHVn
aW5Qcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9MYXVuY2gpOgorICAgICAgICAoV2ViS2l0OjpQbHVn
aW5Qcm9jZXNzUHJveHk6OmRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
V2ViS2l0Mi5wcm86IE1vdmUgaW1wbGVtZW50YXRpb24gdGhhdCBkb2VzIG5vdCBuZWVkIGV4dGVy
bmFsCisgICAgICAgIHZpc2liaWxpdHkgZnJvbSBXZWJLaXQyQVBJLnByaS4gQWRkaW5nIHRoZSBo
ZWFkZXJzIGFzIHdlbGwuCisgICAgICAgICogV2ViS2l0MkFQSS5wcmk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6Z2V0UGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cDoKKwogMjAxMS0wNC0wNyAgQmFsYXpzIEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5j
cHAKaW5kZXggMDNhOGFlYzFhMzY1ZTUyNWExMDNlNTdmZmNmMzY5ZWNiNGIzZjFlNi4uZWEyOWNl
MTJiNGI0NWUzMWVmYzc4MTk5ZWE5NDRlMzBlNmVlMzY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcApAQCAtMjcz
LDYgKzI3Myw3IEBAIHZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5OjpwbHVnaW5Qcm9jZXNzQ3Jh
c2hlZCgpCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKKyNpZiBQTEFURk9STShNQUMp
CiB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6c2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQo
Ym9vbCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCkKIHsKICAgICBpZiAobV9pc0NvbXBsZXhUZXh0
SW5wdXRFbmFibGVkID09IGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKQpAQCAtMjg3LDYgKzI4OCw3
IEBAIG1hY2hfcG9ydF90IFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6Y29tcG9zaXRpbmdSZW5kZXJT
ZXJ2ZXJQb3J0KCkKIHsKICAgICByZXR1cm4gUGx1Z2luUHJvY2Vzczo6c2hhcmVkKCkuY29tcG9z
aXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCk7CiB9CisjZW5kaWYKIAogU3RyaW5nIFBsdWdpbkNvbnRy
b2xsZXJQcm94eTo6cHJveGllc0ZvclVSTChjb25zdCBTdHJpbmcmIHVybFN0cmluZykKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclBy
b3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250
cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNmUyN2IzNmJiYWI0MzA0OWI3ZDQ2NGY0NzJk
ZDVlZTJkMTAzMmQ3Ny4uMjJkNTk5NmUwMGMyOTVlNzU5OWVjYTIwODllODE4YzMxZGQyMDg3OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVy
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVn
aW5Db250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTg2LDEwICs4NiwxMCBAQCBtZXNzYWdl
cyAtPiBQbHVnaW5Db250cm9sbGVyUHJveHkgewogICAgICMgR2V0IGEgcmVmZXJlbmNlIHRvIHRo
ZSBwbHVnLWluJ3Mgc2NyaXB0YWJsZSBOUE9iamVjdC4KICAgICBHZXRQbHVnaW5TY3JpcHRhYmxl
TlBPYmplY3QoKSAtPiAodWludDY0X3QgcGx1Z2luU2NyaXB0YWJsZU5QT2JqZWN0SUQpCiAKKyNp
ZiBQTEFURk9STShNQUMpCiAgICAgIyBTZW5kIHRoZSBjb21wbGV4IHRleHQgaW5wdXQgdG8gdGhl
IHBsdWctaW4uCiAgICAgU2VuZENvbXBsZXhUZXh0SW5wdXQoV1RGOjpTdHJpbmcgdGV4dElucHV0
KQogCi0jaWYgUExBVEZPUk0oTUFDKQogICAgICMgU2VudCB3aGVuIHRoZSBjb250YWluaW5nIE5T
V2luZG93J3MgZm9jdXMgY2hhbmdlcwogICAgIFdpbmRvd0ZvY3VzQ2hhbmdlZChib29sIGhhc0Zv
Y3VzKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNw
cAppbmRleCBlMzVkZTlkNzRlNzQ2MDgwYjYwMzkxNTliZWYzYjZmZWZiNjEwNzFjLi5iODgyNzc4
YjIyOWFjZTI5MjViODc4YzY0N2UyNmE5Y2U1Yjk5MzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKQEAgLTI5LDEyICsyOSwxNSBAQAogI2lm
IEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCi0j
aW5jbHVkZSAiTWFjaFBvcnQuaCIKICNpbmNsdWRlICJOZXRzY2FwZVBsdWdpbk1vZHVsZS5oIgog
I2luY2x1ZGUgIlBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUGx1Z2lu
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NDb25uZWN0
aW9uLmgiCiAKKyNpZiBQTEFURk9STShNQUMpCisjaW5jbHVkZSAiTWFjaFBvcnQuaCIKKyNlbmRp
ZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIGNvbnN0IGRvdWJsZSBzaHV0ZG93blRp
bWVvdXQgPSAxNS4wOwpAQCAtMTMyLDIwICsxMzUsMjMgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzOjpp
bml0aWFsaXplUGx1Z2luUHJvY2Vzcyhjb25zdCBQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXIKIAogdm9pZCBQbHVnaW5Qcm9jZXNzOjpjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbigpCiB7
Ci0gICAgLy8gRklYTUU6IFRoaXMgaXMgcGxhdGZvcm0gc3BlY2lmaWMhCisgICAgYm9vbCBkaWRI
YXZlQW55V2ViUHJvY2Vzc0Nvbm5lY3Rpb25zID0gIW1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmlz
RW1wdHkoKTsKIAorI2lmIFBMQVRGT1JNKE1BQykKICAgICAvLyBDcmVhdGUgdGhlIGxpc3Rlbmlu
ZyBwb3J0LgogICAgIG1hY2hfcG9ydF90IGxpc3RlbmluZ1BvcnQ7CiAgICAgbWFjaF9wb3J0X2Fs
bG9jYXRlKG1hY2hfdGFza19zZWxmKCksIE1BQ0hfUE9SVF9SSUdIVF9SRUNFSVZFLCAmbGlzdGVu
aW5nUG9ydCk7CiAKLSAgICBib29sIGRpZEhhdmVBbnlXZWJQcm9jZXNzQ29ubmVjdGlvbnMgPSAh
bV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMuaXNFbXB0eSgpOwotCiAgICAgLy8gQ3JlYXRlIGEgbGlz
dGVuaW5nIGNvbm5lY3Rpb24uCiAgICAgUmVmUHRyPFdlYlByb2Nlc3NDb25uZWN0aW9uPiBjb25u
ZWN0aW9uID0gV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShsaXN0ZW5pbmdQb3J0KTsKICAg
ICBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQoY29ubmVjdGlvbi5yZWxlYXNlKCkpOwog
CiAgICAgQ29yZUlQQzo6TWFjaFBvcnQgY2xpZW50UG9ydChsaXN0ZW5pbmdQb3J0LCBNQUNIX01T
R19UWVBFX01BS0VfU0VORCk7CiAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpQbHVn
aW5Qcm9jZXNzUHJveHk6OkRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKGNsaWVudFBvcnQp
LCAwKTsKKyNlbHNlCisgICAgLy8gRklYTUU6IEltcGxlbWVudC4KKyAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyNlbmRpZgogCiAgICAgaWYgKE5ldHNjYXBlUGx1Z2luTW9kdWxlKiBtb2R1bGUg
PSBuZXRzY2FwZVBsdWdpbk1vZHVsZSgpKSB7CiAgICAgICAgIGlmICghZGlkSGF2ZUFueVdlYlBy
b2Nlc3NDb25uZWN0aW9ucykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9j
ZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCA1NmZmYmI5M2Y2MzA0NWU5YjM0NWVk
NTNmNzU5MmM3YjU3OTFmMmMzLi44NTEyM2Y2OTNhNjkyYjg0ZGExMzllNjVjMjIxNGFhOWRhYTUz
MTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3ND
b25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nl
c3NDb25uZWN0aW9uLmNwcApAQCAtMTczLDcgKzE3Myw5IEBAIHZvaWQgV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb246OmNyZWF0ZVBsdWdpbih1aW50NjRfdCBwbHVnaW5JbnN0YW5jZUlELCBjb25zdCBQbHVn
aW46CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHJldHVybjsKIAorI2lmIFBMQVRGT1JNKE1B
QykKICAgICByZW1vdGVMYXllckNsaWVudElEID0gcGx1Z2luQ29udHJvbGxlclByb3h5UHRyLT5y
ZW1vdGVMYXllckNsaWVudElEKCk7CisjZW5kaWYKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL1Bs
dWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDA2MDE0YTkwNzc0ODg0NTE4
ODc2YzY1YzNiYWY0MDcxZTFlNzJlMDIuLmM2Yzg3YTYwOGFiYzNkN2Q0NzBlNDFmNDdmM2IzNTNl
NDZkODg4M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL1BsdWdp
blByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC00Niw3ICs0
Niw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikKICNlbmRpZgogfQogCi1ib29sIFBsdWdpblBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGRlY29kZXIsIFBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OlBsdWdpblByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmIHJlc3VsdCkKK2Jvb2wgUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVyczo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUGx1Z2lu
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcmVzdWx0KQogewogICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlKHJlc3VsdC5wbHVnaW5QYXRoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94
eS5jcHAKaW5kZXggNTg0ZmU2Yzg3MWFmNTBlNzMxOWI0ZmE0Yjc1NDUxMTI0MWIxMjUxZC4uZmNh
NGMwMDNkYWJlOWY5MTYxNTU3MjdiMmFiY2VlNjk5ZmMyMzY2NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCkBA
IC0yOCw3ICsyOCw2IEBACiAKICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAKLSNpbmNsdWRl
ICJNYWNoUG9ydC5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzTWFuYWdlci5oIgogI2luY2x1ZGUgIlBsdWdpblBy
b2Nlc3NNZXNzYWdlcy5oIgpAQCAtMzcsNiArMzYsMTAgQEAKICNpbmNsdWRlICJXZWJQbHVnaW5T
aXRlRGF0YU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKIAorI2lmIFBM
QVRGT1JNKE1BQykKKyNpbmNsdWRlICJNYWNoUG9ydC5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBQYXNzT3duUHRyPFBsdWdpblByb2Nlc3NQcm94eT4gUGx1Z2luUHJvY2Vzc1By
b3h5OjpjcmVhdGUoUGx1Z2luUHJvY2Vzc01hbmFnZXIqIFBsdWdpblByb2Nlc3NNYW5hZ2VyLCBj
b25zdCBQbHVnaW5JbmZvU3RvcmU6OlBsdWdpbiYgcGx1Z2luSW5mbykKQEAgLTEyNSw4ICsxMjgs
MTIgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OnBsdWdpblByb2Nlc3NDcmFzaGVkT3JGYWls
ZWRUb0xhdW5jaCgpCiAgICAgICAgIENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogcmVwbHkgPSBt
X3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5maXJzdCgpLnNlY29uZDsKICAgICAgICAgbV9wZW5k
aW5nQ29ubmVjdGlvblJlcGxpZXMucmVtb3ZlRmlyc3QoKTsKIAotICAgICAgICAvLyBGSVhNRTog
VGhpcyBpcyBNYWMgc3BlY2lmaWMuCisjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICByZXBseS0+
ZW5jb2RlKENvcmVJUEM6Ok1hY2hQb3J0KDAsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKSk7Cisj
ZWxzZQorICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyNlbmRpZgogICAgICAgICByZXBseVdlYlByb2Nlc3NQcm94eS0+Y29ubmVjdGlv
bigpLT5zZW5kU3luY1JlcGx5KHJlcGx5KTsKICAgICB9CiAKQEAgLTIwMSw2ICsyMDgsNyBAQCB2
b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hl
ciosIENvcmVJUEM6OkNvbm5lY3RpbwogICAgIG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0
cyA9IDA7CiB9CiAKKyNpZiBQTEFURk9STShNQUMpCiB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6
ZGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY29uc3QgQ29yZUlQQzo6TWFjaFBvcnQmIG1h
Y2hQb3J0KQogewogICAgIEFTU0VSVCghbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMuaXNFbXB0
eSgpKTsKQEAgLTIxMCwxMCArMjE4LDEwIEBAIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpkaWRD
cmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBDb3JlSVBDOjpNYWNoUG9ydCYKICAgICBD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIHJlcGx5ID0gbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxp
ZXMuZmlyc3QoKS5zZWNvbmQ7CiAgICAgbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMucmVtb3Zl
Rmlyc3QoKTsKIAotICAgIC8vIEZJWE1FOiBUaGlzIGlzIE1hYyBzcGVjaWZpYy4KICAgICByZXBs
eS0+ZW5jb2RlKENvcmVJUEM6Ok1hY2hQb3J0KG1hY2hQb3J0LnBvcnQoKSwgTUFDSF9NU0dfVFlQ
RV9NT1ZFX1NFTkQpKTsKICAgICByZXBseVdlYlByb2Nlc3NQcm94eS0+Y29ubmVjdGlvbigpLT5z
ZW5kU3luY1JlcGx5KHJlcGx5KTsKIH0KKyNlbmRpZgogCiB2b2lkIFBsdWdpblByb2Nlc3NQcm94
eTo6ZGlkR2V0U2l0ZXNXaXRoRGF0YShjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2l0ZXMsIHVpbnQ2
NF90IGNhbGxiYWNrSUQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCmluZGV4IDg0OGNhOWUxYjJhNmNjNjVhNGZkMWVj
ZDhkNDU0Mjk3MTcxNWFiZWMuLjBhOGUzNjZiZTY5ZDdmZTU5ZDhiZjdiMTY3MDE5ZjQ0OWU0MTk2
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb2Nlc3NQcm94eS5oCkBAIC04Niw3ICs4Niw5IEBAIHByaXZhdGU6CiAKICAgICAvLyBNZXNz
YWdlIGhhbmRsZXJzCiAgICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqKTsKKyNpZiBQTEFURk9STShNQUMpCiAgICAgdm9pZCBkaWRDcmVhdGVXZWJQ
cm9jZXNzQ29ubmVjdGlvbihjb25zdCBDb3JlSVBDOjpNYWNoUG9ydCYpOworI2VuZGlmCiAgICAg
dm9pZCBkaWRHZXRTaXRlc1dpdGhEYXRhKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzaXRlcywgdWlu
dDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkaWRDbGVhclNpdGVEYXRhKHVpbnQ2NF90IGNh
bGxiYWNrSUQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNWZjYmU3MWI1
OTA4OTVkOTU2M2I5MzRhNDc3NTRjMDA0MTFjMTJiNS4uN2NhYWMxMTQ0NmZkOWI4NzA4MjVmYTIw
ZmM4NGM1ZmQ4ZTc1ODRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjMs
OCArMjMsOSBAQAogI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKIAogbWVzc2FnZXMgLT4gUGx1
Z2luUHJvY2Vzc1Byb3h5IHsKLSAgICAjIEZJWE1FOiBUaGlzIGlzIHBsYXRmb3JtIHNwZWNpZmlj
CisjaWYgUExBVEZPUk0oTUFDKQogICAgIERpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKENv
cmVJUEM6Ok1hY2hQb3J0IGNvbm5lY3Rpb25JZGVudGlmaWVyKQorI2VuZGlmCiAKICAgICBEaWRH
ZXRTaXRlc1dpdGhEYXRhKFZlY3RvcjxXVEY6OlN0cmluZz4gc2l0ZXMsIHVpbnQ2NF90IGNhbGxi
YWNrSUQpCiAgICAgRGlkQ2xlYXJTaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
LnBybwppbmRleCBhMzA1YWE5MzFiNzY2ZjNhNDhhYjNiYzcwYzg3YzI5MTI2ZDAzMjUxLi44Yjcx
MmZmZTJmNmZkMjg4MTY3NjliNDcwODdkNTFlOWQ2MTc5YmU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnBybworKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwpAQCAt
MTA3LDYgKzEwNyw5IEBAIEhFQURFUlMgKz0gXAogICAgIFBsYXRmb3JtL1NoYXJlZE1lbW9yeS5o
IFwKICAgICBQbGF0Zm9ybS9Xb3JrSXRlbS5oIFwKICAgICBQbGF0Zm9ybS9Xb3JrUXVldWUuaCBc
CisgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaCBcCisgICAgUGx1Z2lu
UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmggXAorICAgIFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uaCBcCiAgICAgU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oIFwKICAgICBTaGFyZWQv
Q2FjaGVNb2RlbC5oIFwKICAgICBTaGFyZWQvQ2hpbGRQcm9jZXNzLmggXApAQCAtMzA4LDYgKzMx
MSwxMSBAQCBTT1VSQ0VTICs9IFwKICAgICBQbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3BwIFwKICAg
ICBQbGF0Zm9ybS9xdC9Xb3JrUXVldWVRdC5jcHAgXAogICAgIFBsYXRmb3JtL3VuaXgvU2hhcmVk
TWVtb3J5VW5peC5jcHAgXAorICAgIFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5
LmNwcCBcCisgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcCBcCisgICAgUGx1Z2lu
UHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgXAorICAgIFBsdWdpblByb2Nlc3MvcXQv
UGx1Z2luQ29udHJvbGxlclByb3h5UXQuY3BwIFwKKyAgICBQbHVnaW5Qcm9jZXNzL3F0L1BsdWdp
blByb2Nlc3NRdC5jcHAgXAogICAgIFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1
Z2luTW9kdWxlLmNwcCBcCiAgICAgU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVn
aW5Nb2R1bGVOb25lLmNwcCBcCiAgICAgU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUveDExL05ldHNj
YXBlUGx1Z2luTW9kdWxlWDExLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyQVBJLnByaSBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJBUEkucHJpCmluZGV4IDdiMTgyYTli
ZmQxM2I5NjBiOTg0ZTY0ZmJiMjQ4OTAxZDkxMWI1YTIuLjYwZDY3ZDBkOTIyNjI4ZTA2MjRmYzUy
ZGQ4YTIyZjRhMDI5YjlhNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJBUEku
cHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJBUEkucHJpCkBAIC02MCwxMiArNjAsNyBA
QCBXRUJLSVQyX0FQSV9TT1VSQ0VTID0gXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlR3JvdXAuY3BwIFwKICAgICAk
JFNPVVJDRV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZU92ZXJsYXkuY3BwIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlU2NyaXB0V29ybGQuY3BwIFwKLSAgICAkJFNP
VVJDRV9ESVIvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAg
XAotICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5j
cHAgXAotICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwIFwKLSAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0
L1BsdWdpbkNvbnRyb2xsZXJQcm94eVF0LmNwcCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzTWFpblF0LmNwcCBcCi0gICAgJCRTT1VSQ0Vf
RElSL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzUXQuY3BwIFwKICAgICAk
JFNPVVJDRV9ESVIvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NNYWluUXQuY3BwCiAK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcAppbmRleCAxMjkwMzkxY2Vk
YjMyYjZmZGE1YjA0YzE4OWIwNzdhZDgyYTFjOGQxLi4zYmM4ZjNiNmVkYmJmYjkwZGI0NzdlNGQ5
YjM0MDc2ZWQxMmUxOTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNw
cApAQCAtMzAsMTMgKzMwLDE2IEBACiAKICNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKICNp
bmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKLSNpbmNsdWRlICJNYWNoUG9ydC5oIgogI2luY2x1
ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQ
cm94eU1lc3NhZ2VLaW5kcy5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAorI2lm
IFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlICJNYWNoUG9ydC5oIgorI2VuZGlmCisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXImIFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWFuYWdlcjo6c2hhcmVkKCkKQEAgLTYxLDExICs2NCwxNyBAQCBQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbiogUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpnZXRQbHVn
aW5Qcm9jZXNzQ29ubmVjdAogICAgIH0KIAogICAgIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50
aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXI7CisjaWYgUExBVEZPUk0oTUFDKQogICAgIENvcmVJ
UEM6Ok1hY2hQb3J0IGNvbm5lY3Rpb25NYWNoUG9ydDsKICAgICBpZiAoIVdlYlByb2Nlc3M6OnNo
YXJlZCgpLmNvbm5lY3Rpb24oKS0+ZGVwcmVjYXRlZFNlbmRTeW5jKFdlYlByb2Nlc3NQcm94eUxl
Z2FjeU1lc3NhZ2U6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uLCAwLCBDb3JlSVBDOjpJbihw
bHVnaW5QYXRoKSwgQ29yZUlQQzo6T3V0KGNvbm5lY3Rpb25NYWNoUG9ydCkpKQogICAgICAgICBy
ZXR1cm4gMDsKIAogICAgIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gY29ubmVjdGlvbk1hY2hQb3J0
LnBvcnQoKTsKKyNlbHNlCisgICAgLy8gRklYTUU6IEltcGxlbWVudC4KKyAgICBjb25uZWN0aW9u
SWRlbnRpZmllciA9IDA7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisjZW5kaWYKICAgICBp
ZiAoIWNvbm5lY3Rpb25JZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gMDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDllM2E4NTQ2YTA4
YTNmOTY3NWNkOTU4YjExMzA4ZWY0MTFhNWM0YzcuLmVmZTk3NmYxYzc5MGEwNTRmNWM5NjQ1ZDFh
ZDZkYTIwMmJkOTQ3ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKQEAgLTExNSw5ICsxMTUsMTAgQEAKICNlbmRpZgogCiAjaWYgRU5BQkxFKFBM
VUdJTl9QUk9DRVNTKQotLy8gRklYTUU6IFRoaXMgaXMgY3VycmVudGx5IE1hYy1zcGVjaWZpYyEK
KyNpZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSAiTWFjaFBvcnQuaCIKICNlbmRpZgorI2VuZGlm
CiAKICNpZiBQTEFURk9STShRVCkKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>