<?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>92281</bug_id>
          
          <creation_ts>2012-07-25 12:52:22 -0700</creation_ts>
          <short_desc>Propagate gesture events to plugins.</short_desc>
          <delta_ts>2012-08-01 08:56:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>92431</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sadrul Habib Chowdhury">sadrul</reporter>
          <assigned_to name="Sadrul Habib Chowdhury">sadrul</assigned_to>
          <cc>abarth</cc>
    
    <cc>andersca</cc>
    
    <cc>fishd</cc>
    
    <cc>gmak</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>rakuco</cc>
    
    <cc>rjkroege</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tkent</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>678355</commentid>
    <comment_count>0</comment_count>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-07-25 12:52:22 -0700</bug_when>
    <thetext>Propagate gesture events to plugins.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678361</commentid>
    <comment_count>1</comment_count>
      <attachid>154420</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-07-25 12:58:18 -0700</bug_when>
    <thetext>Created attachment 154420
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678389</commentid>
    <comment_count>2</comment_count>
      <attachid>154420</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-25 13:20:41 -0700</bug_when>
    <thetext>Comment on attachment 154420
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        to Javascript, since there is no spec for that at the moment. Exposing gesture events

Javascript -&gt; JavaScript

&gt; Source/WebCore/ChangeLog:12
&gt; +        No new tests (OOPS!).

This line is going to prevent this patch from landing.  Can we add some tests for this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678414</commentid>
    <comment_count>3</comment_count>
      <attachid>154434</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-07-25 13:47:18 -0700</bug_when>
    <thetext>Created attachment 154434
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678415</commentid>
    <comment_count>4</comment_count>
      <attachid>154420</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-07-25 13:47:50 -0700</bug_when>
    <thetext>Comment on attachment 154420
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:9
&gt;&gt; +        to Javascript, since there is no spec for that at the moment. Exposing gesture events
&gt; 
&gt; Javascript -&gt; JavaScript

Done.

&gt;&gt; Source/WebCore/ChangeLog:12
&gt;&gt; +        No new tests (OOPS!).
&gt; 
&gt; This line is going to prevent this patch from landing.  Can we add some tests for this patch?

I could not think of a good way for testing this. EventSender has support for generating gesture-events, however, I am not sure how we can test that the gesture reached the plugin. Do you have suggestions? (once the gesture events reach chromium plugins, we will add a browser-test to verify that the gestures reach the plugin, but I am unsure how to test this in a layouttest)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678465</commentid>
    <comment_count>5</comment_count>
      <attachid>154420</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-07-25 14:17:58 -0700</bug_when>
    <thetext>Comment on attachment 154420
Patch

Attachment 154420 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13344398</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678493</commentid>
    <comment_count>6</comment_count>
      <attachid>154449</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-07-25 14:43:56 -0700</bug_when>
    <thetext>Created attachment 154449
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679503</commentid>
    <comment_count>7</comment_count>
      <attachid>154686</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-07-26 10:44:35 -0700</bug_when>
    <thetext>Created attachment 154686
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679505</commentid>
    <comment_count>8</comment_count>
      <attachid>154686</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-07-26 10:46:30 -0700</bug_when>
    <thetext>Comment on attachment 154686
Patch

Added an implementation for WebPluginContainerImpl::handleGestureEvent, updated TestWebPlugin to receive events and log the events it receives, and used that to add a new layout test. Please take another look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679591</commentid>
    <comment_count>9</comment_count>
      <attachid>154686</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-26 11:41:06 -0700</bug_when>
    <thetext>Comment on attachment 154686
Patch

This looks good on a first pass.  Someone (possibly me) will need to review it in more detail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679633</commentid>
    <comment_count>10</comment_count>
      <attachid>154686</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-26 12:15:35 -0700</bug_when>
    <thetext>Comment on attachment 154686
Patch

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

&gt; Source/WebCore/dom/GestureEvent.h:56
&gt; +    GestureEvent() { }

Should this constructor initialize m_deltaX and m_deltaY ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679646</commentid>
    <comment_count>11</comment_count>
      <attachid>154721</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-07-26 12:31:14 -0700</bug_when>
    <thetext>Created attachment 154721
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679647</commentid>
    <comment_count>12</comment_count>
      <attachid>154686</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-07-26 12:31:46 -0700</bug_when>
    <thetext>Comment on attachment 154686
Patch

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

&gt;&gt; Source/WebCore/dom/GestureEvent.h:56
&gt;&gt; +    GestureEvent() { }
&gt; 
&gt; Should this constructor initialize m_deltaX and m_deltaY ?

Indeed it should. Thanks for catching this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679810</commentid>
    <comment_count>13</comment_count>
      <attachid>154721</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-26 15:11:16 -0700</bug_when>
    <thetext>Comment on attachment 154721
Patch

Clearing flags on attachment: 154721

Committed r123799: &lt;http://trac.webkit.org/changeset/123799&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679811</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-26 15:11:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679817</commentid>
    <comment_count>15</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-07-26 15:14:36 -0700</bug_when>
    <thetext>Why were no Apple people cc&apos;d on this bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679823</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-26 15:18:19 -0700</bug_when>
    <thetext>&gt; Why were no Apple people cc&apos;d on this bug?

If you&apos;d like to be automatically CCed on patches, you might want to add yourself to one or more watchlists:

http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/watchlist</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679825</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-26 15:19:34 -0700</bug_when>
    <thetext>I guess I don&apos;t understand your question.  Can you explain more about who you think should be been CCed and why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679827</commentid>
    <comment_count>18</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-07-26 15:21:09 -0700</bug_when>
    <thetext>It seems like this patch is adding major functionality that people other than Chromium people would be interested in, especially the owners of plug-in code like Anders. His comment was &quot;that code is so broken&quot;, so you may benefit from his interest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679829</commentid>
    <comment_count>19</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-26 15:22:22 -0700</bug_when>
    <thetext>I certainly welcome any feedback that you or Anders have on this or any other patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679861</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-26 15:49:01 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 92431</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679961</commentid>
    <comment_count>21</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-26 17:52:03 -0700</bug_when>
    <thetext>@smfr: Did you have any constructive comments for sadrul?  He need to re-work the patch to compile on apple-mac, and it would be more efficient to incorporate any comments you have in the same iteration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679964</commentid>
    <comment_count>22</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-07-26 17:54:55 -0700</bug_when>
    <thetext>I&apos;ll defer to anders.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680778</commentid>
    <comment_count>23</comment_count>
      <attachid>154984</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-07-27 10:25:09 -0700</bug_when>
    <thetext>Created attachment 154984
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680806</commentid>
    <comment_count>24</comment_count>
      <attachid>154984</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-07-27 10:54:39 -0700</bug_when>
    <thetext>Comment on attachment 154984
Patch

andersca@ Hi! Do you have suggestions to make this patch better? Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680833</commentid>
    <comment_count>25</comment_count>
      <attachid>154984</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-27 11:12:29 -0700</bug_when>
    <thetext>Comment on attachment 154984
Patch

Attachment 154984 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13374624</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680908</commentid>
    <comment_count>26</comment_count>
      <attachid>155007</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-07-27 12:03:03 -0700</bug_when>
    <thetext>Created attachment 155007
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680933</commentid>
    <comment_count>27</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-07-27 12:14:05 -0700</bug_when>
    <thetext>Is GestureEvent a real HTML5 DOM event? If not, it&apos;s very weird that we&apos;re adding it to dom for the purpose of &quot;wrapping&quot; a PlatformGestureEvent. If it is, then it should really be added as a separate patch.

To expand on my &quot;this code is so broken&quot; comment - there&apos;s a serious layering violation in this code in that Widget::handleEvent takes a DOM event. (This has been the case ever since this code was added by me over 5 years ago).

What I&apos;d really like to see is a way for widgets to receive PlatformEvents directly and get rid of this mess where we convert back and forth between DOM events.

(In fact, in WebKit2&apos;s plug-in implementation we don&apos;t even look at the passed in event - we just keep track of the current PlatformEvent event being handled and send that directly to the plug-in).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680970</commentid>
    <comment_count>28</comment_count>
      <attachid>155007</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-27 12:38:44 -0700</bug_when>
    <thetext>Comment on attachment 155007
Patch

Attachment 155007 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13371623</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681062</commentid>
    <comment_count>29</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-27 14:02:17 -0700</bug_when>
    <thetext>&gt; Is GestureEvent a real HTML5 DOM event?

Not yet, but given that Microsoft has implemented gesture events (i.e., http://msdn.microsoft.com/en-us/library/ie/hh968249(v=vs.85).aspx) and strong interest from web developers, I would expect them to make their way in to DOM events in the near term.

&gt; To expand on my &quot;this code is so broken&quot; comment - there&apos;s a serious layering violation in this code in that Widget::handleEvent takes a DOM event. (This has been the case ever since this code was added by me over 5 years ago).
&gt; 
&gt; What I&apos;d really like to see is a way for widgets to receive PlatformEvents directly and get rid of this mess where we convert back and forth between DOM events.

That make sense.  I haven&apos;t looked at what&apos;s involved in that refactoring.  Do you think we should try to make that happen before adding this feature?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681073</commentid>
    <comment_count>30</comment_count>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-07-27 14:09:17 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; &gt; Is GestureEvent a real HTML5 DOM event?
&gt; 
&gt; Not yet, but given that Microsoft has implemented gesture events (i.e., http://msdn.microsoft.com/en-us/library/ie/hh968249(v=vs.85).aspx) and strong interest from web developers, I would expect them to make their way in to DOM events in the near term.
&gt; 
&gt; &gt; To expand on my &quot;this code is so broken&quot; comment - there&apos;s a serious layering violation in this code in that Widget::handleEvent takes a DOM event. (This has been the case ever since this code was added by me over 5 years ago).
&gt; &gt; 
&gt; &gt; What I&apos;d really like to see is a way for widgets to receive PlatformEvents directly and get rid of this mess where we convert back and forth between DOM events.

If I understand you correctly, you think this should happen for all kinds of platform-events, and not just gesture events?

&gt; 
&gt; That make sense.  I haven&apos;t looked at what&apos;s involved in that refactoring.  Do you think we should try to make that happen before adding this feature?

Right now, plugins can preventDefault() an event from the handleEvent callback. There is no corresponding notion for platform-events. So when this changes, I suspect there will need to be a way to notify the event was prevent-defaulted by the plugins? How does WebKit2 does this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681078</commentid>
    <comment_count>31</comment_count>
      <attachid>155046</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-07-27 14:13:15 -0700</bug_when>
    <thetext>Created attachment 155046
Patch

patch with build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682262</commentid>
    <comment_count>32</comment_count>
      <attachid>155046</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-30 12:02:14 -0700</bug_when>
    <thetext>Comment on attachment 155046
Patch

After the discussion above, my sense is that this is the right approach given that we expect to expose gesture events to JavaScript once we get a spec we&apos;re happy with.  As for refactoring plugins to use PlatformEvents directly, I don&apos;t have much of an opinion on that topic, but I don&apos;t think it&apos;s something that should block this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682442</commentid>
    <comment_count>33</comment_count>
      <attachid>155046</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-30 15:13:35 -0700</bug_when>
    <thetext>Comment on attachment 155046
Patch

Clearing flags on attachment: 155046

Committed r124098: &lt;http://trac.webkit.org/changeset/124098&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682443</commentid>
    <comment_count>34</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-30 15:13:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682652</commentid>
    <comment_count>35</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-30 19:47:38 -0700</bug_when>
    <thetext>This patch broke Qt Windows build:
http://build.webkit.org/builders/Qt%20Windows%2032-bit%20Debug/builds/47298
http://build.webkit.org/builders/Qt%20Windows%2032-bit%20Debug/builds/47298/steps/compile-webkit/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682653</commentid>
    <comment_count>36</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-30 19:47:55 -0700</bug_when>
    <thetext>Build fix attempt landed in http://trac.webkit.org/changeset/124155.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682664</commentid>
    <comment_count>37</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-30 20:08:28 -0700</bug_when>
    <thetext>Another build fix attempt landed in http://trac.webkit.org/changeset/124159.

&quot;interface&quot; is a keyword. Don&apos;t use it as a variable name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684208</commentid>
    <comment_count>38</comment_count>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-08-01 08:56:02 -0700</bug_when>
    <thetext>(In reply to comment #37)
&gt; Another build fix attempt landed in http://trac.webkit.org/changeset/124159.
&gt; 
&gt; &quot;interface&quot; is a keyword. Don&apos;t use it as a variable name.

Oops. My bad. Thank you very much for taking care of the build breakages.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154420</attachid>
            <date>2012-07-25 12:58:18 -0700</date>
            <delta_ts>2012-07-25 14:43:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92281-20120725155808.patch</filename>
            <type>text/plain</type>
            <size>20210</size>
            <attacher name="Sadrul Habib Chowdhury">sadrul</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGNmZWMzYjVmYzZkMzYw
M2NhNDliOTJmMjY3Y2NmYmNlODkwNzllNi4uZTEyYTA0MjdiYWMxMDM0NGYxMWMyNDU3NDRmNjEy
MzFhZTZlMWQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTA3LTI1ICBTYWRy
dWwgSGFiaWIgQ2hvd2RodXJ5ICA8c2FkcnVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBQcm9w
YWdhdGUgZ2VzdHVyZSBldmVudHMgdG8gcGx1Z2lucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvcGFnYXRlIGdlc3R1cmUgZXZlbnRzIHRvIHBsdWdp
bnMuIFRoaXMgY2hhbmdlIGRvZXMgbm90IGV4cG9zZSB0aGUgZ2VzdHVyZSBldmVudHMKKyAgICAg
ICAgdG8gSmF2YXNjcmlwdCwgc2luY2UgdGhlcmUgaXMgbm8gc3BlYyBmb3IgdGhhdCBhdCB0aGUg
bW9tZW50LiBFeHBvc2luZyBnZXN0dXJlIGV2ZW50cworICAgICAgICB0byBKYXZhc2NyaXB0IHdp
bGwgYmUgZG9uZSBzZXBhcmF0ZWx5LCBvbmNlIHRoZXJlIGlzIGEgc3BlYyBmb3IgaXQuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6Cisg
ICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnROYW1lczo6aXNHZXN0dXJlRXZlbnRUeXBlKToKKyAgICAgICAgKEV2ZW50
TmFtZXMpOgorICAgICAgICAqIGRvbS9HZXN0dXJlRXZlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2ZW50OjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2ZW50Ojppbml0R2VzdHVyZUV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6Okdlc3R1cmVFdmVudDo6aW50ZXJmYWNlTmFtZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHZXN0dXJlRXZlbnQ6Okdlc3R1cmVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJl
RXZlbnREaXNwYXRjaE1lZGlhdG9yOjpHZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlhdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6Okdlc3R1cmVFdmVudERpc3BhdGNoTWVkaWF0b3I6OmV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6Okdlc3R1cmVFdmVudERpc3BhdGNoTWVkaWF0b3I6OmRpc3BhdGNoRXZl
bnQpOgorICAgICAgICAqIGRvbS9HZXN0dXJlRXZlbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKEdlc3R1cmVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJl
RXZlbnQ6On5HZXN0dXJlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2ZW50OjpH
ZXN0dXJlRXZlbnQpOgorICAgICAgICAoR2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpjcmVhdGUpOgor
ICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Tm9kZTo6ZGlzcGF0Y2hHZXN0dXJlRXZlbnQpOgorICAgICAgICAqIGRvbS9Ob2RlLmg6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE5vZGUpOgorICAgICAgICAqIHBhZ2UvRXZl
bnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6Y2xlYXIpOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlRXZlbnQpOgorICAg
ICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisKIDIwMTItMDctMjQgIEt3YW5nIFl1bCBTZW8g
IDxza3l1bEBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBSZW1vdmUgYW4gaW52YWxpZCBhc3Nl
cnRpb24gaW50cm9kdWNlZCBpbiByMTIzNTM2LiBVbnJldmlld2VkLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwppbmRleCA0M2JlZDMwNDE0MWJiZWVkZTllYzcxYzUzN2Q5ZDM3NDU1MTg2MWI1Li5k
MDAwNTc5NWIwMmQ3Y2NhOTFjNTMwMjQyYTk1MzUyNmZiZTIzNzUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA3LTI1ICBTYWRydWwgSGFiaWIgQ2hv
d2RodXJ5ICA8c2FkcnVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBQcm9wYWdhdGUgZ2VzdHVy
ZSBldmVudHMgdG8gcGx1Z2lucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTkyMjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUHJvcGFnYXRlIGdlc3R1cmUgZXZlbnRzIHRvIHBsdWdpbnMuIFRoZSBhY3R1
YWwgaW1wbGVtZW50YXRpb24gZm9yIHNlbmRpbmcgdGhlIGdlc3R1cmUKKyAgICAgICAgZXZlbnRz
IHRvIHRoZSBwbHVnaW4gaXMgc3R1YmJlZCBvdXQgaW4gdGhpcyBjaGFuZ2VzZXQuCisKKyAgICAg
ICAgKiBzcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBsdWdpbkNvbnRhaW5lckltcGw6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBzcmMvV2ViUGx1
Z2luQ29udGFpbmVySW1wbC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJQbHVn
aW5Db250YWluZXJJbXBsKToKKwogMjAxMi0wNy0yNCAgSmlhbiBMaSAgPGppYW5saUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgQWRkIHBlci1jb250ZXh0IHNldHRpbmcgZm9yIGh0bWwgbm90aWZp
Y2F0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDJmOTRlNTU3MTk0NTFiOGJmMTA3NjJlOTRmZjQ3
YWMxOTRjZWM5NDQuLmI0YmMyMmFiYmVmOGQ3MjM3N2Y5ZTZiN2E5ZTg2OTc1MTlmYTA1NjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKQEAgLTUxOTEsNiArNTE5MSw4IEBACiAgICAgICAgICAgICAnZG9tL0V4
Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5jcHAnLAogICAgICAgICAgICAgJ2RvbS9HZW5lcmljRXZl
bnRRdWV1ZS5jcHAnLAogICAgICAgICAgICAgJ2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5oJywKKyAg
ICAgICAgICAgICdkb20vR2VzdHVyZUV2ZW50LmNwcCcsCisgICAgICAgICAgICAnZG9tL0dlc3R1
cmVFdmVudC5oJywKICAgICAgICAgICAgICdkb20vSGFzaENoYW5nZUV2ZW50LmgnLAogICAgICAg
ICAgICAgJ2RvbS9JZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlci5oJywKICAg
ICAgICAgICAgICdkb20vSWNvblVSTC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKaW5kZXgg
OTgzZGYyOWU4YmYyZWM3MDI3NmQ2Njg1NDUzNTljMDk0ZjZlOGRjMy4uODE4ZWQ0MDEwZTUwNGQ0
YzM4YTA5ZmVkZDFkOGJiNTI1N2U4YWI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCkBAIC03
MSw2ICs3MSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oZm9jdXMpIFwKICAg
ICBtYWNybyhmb2N1c2luKSBcCiAgICAgbWFjcm8oZm9jdXNvdXQpIFwKKyAgICBtYWNybyhnZXN0
dXJldGFwKSBcCisgICAgbWFjcm8oZ2VzdHVyZXRhcGRvd24pIFwKKyAgICBtYWNybyhnZXN0dXJl
c2Nyb2xsc3RhcnQpIFwKKyAgICBtYWNybyhnZXN0dXJlc2Nyb2xsZW5kKSBcCisgICAgbWFjcm8o
Z2VzdHVyZXNjcm9sbHVwZGF0ZSkgXAogICAgIG1hY3JvKGhhc2hjaGFuZ2UpIFwKICAgICBtYWNy
byhpbnB1dCkgXAogICAgIG1hY3JvKGludmFsaWQpIFwKQEAgLTI2MCw2ICsyNjUsMTUgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgICAgIHx8IGV2ZW50VHlwZSA9PSB0b3VjaGNh
bmNlbEV2ZW50OwogICAgICAgICB9CiAKKyAgICAgICAgaW5saW5lIGJvb2wgaXNHZXN0dXJlRXZl
bnRUeXBlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlKSBjb25zdAorICAgICAgICB7Cisg
ICAgICAgICAgICByZXR1cm4gZXZlbnRUeXBlID09IGdlc3R1cmV0YXBFdmVudAorICAgICAgICAg
ICAgICAgIHx8IGV2ZW50VHlwZSA9PSBnZXN0dXJldGFwZG93bkV2ZW50CisgICAgICAgICAgICAg
ICAgfHwgZXZlbnRUeXBlID09IGdlc3R1cmVzY3JvbGxzdGFydEV2ZW50CisgICAgICAgICAgICAg
ICAgfHwgZXZlbnRUeXBlID09IGdlc3R1cmVzY3JvbGxlbmRFdmVudAorICAgICAgICAgICAgICAg
IHx8IGV2ZW50VHlwZSA9PSBnZXN0dXJlc2Nyb2xsdXBkYXRlRXZlbnQ7CisgICAgICAgIH0KKwog
ICAgICAgICBWZWN0b3I8QXRvbWljU3RyaW5nPiB0b3VjaEV2ZW50TmFtZXMoKSBjb25zdAogICAg
ICAgICB7CiAgICAgICAgICAgICBWZWN0b3I8QXRvbWljU3RyaW5nPiBuYW1lczsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9HZXN0dXJlRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0dlc3R1cmVFdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTcyMTNjODM0N2FkZTc4YTcxODJlZTUz
NWVjMjc4YTEyMDY5NDU3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9H
ZXN0dXJlRXZlbnQuY3BwCkBAIC0wLDAgKzEsMTIyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKKworI2luY2x1ZGUgIkdlc3R1
cmVFdmVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8R2VzdHVyZUV2
ZW50PiBHZXN0dXJlRXZlbnQ6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBH
ZXN0dXJlRXZlbnQpOworfQorCitQYXNzUmVmUHRyPEdlc3R1cmVFdmVudD4gR2VzdHVyZUV2ZW50
OjpjcmVhdGUoUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+IHZpZXcsIGNvbnN0IFBsYXRmb3JtR2Vz
dHVyZUV2ZW50JiBldmVudCkKK3sKKyAgICBBdG9taWNTdHJpbmcgZXZlbnRUeXBlOworICAgIHN3
aXRjaCAoZXZlbnQudHlwZSgpKSB7CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlU2Ny
b2xsQmVnaW46CisgICAgICAgIGV2ZW50VHlwZSA9IGV2ZW50TmFtZXMoKS5nZXN0dXJlc2Nyb2xs
c3RhcnRFdmVudDsgYnJlYWs7CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlU2Nyb2xs
RW5kOgorICAgICAgICBldmVudFR5cGUgPSBldmVudE5hbWVzKCkuZ2VzdHVyZXNjcm9sbGVuZEV2
ZW50OyBicmVhazsKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVTY3JvbGxVcGRhdGU6
CisgICAgICAgIGV2ZW50VHlwZSA9IGV2ZW50TmFtZXMoKS5nZXN0dXJlc2Nyb2xsdXBkYXRlRXZl
bnQ7IGJyZWFrOworICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVRhcDoKKyAgICAgICAg
ZXZlbnRUeXBlID0gZXZlbnROYW1lcygpLmdlc3R1cmV0YXBFdmVudDsgYnJlYWs7CisgICAgY2Fz
ZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlVGFwRG93bjoKKyAgICAgICAgZXZlbnRUeXBlID0gZXZl
bnROYW1lcygpLmdlc3R1cmV0YXBkb3duRXZlbnQ7IGJyZWFrOworICAgIGNhc2UgUGxhdGZvcm1F
dmVudDo6R2VzdHVyZURvdWJsZVRhcDoKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVU
d29GaW5nZXJUYXA6CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlTG9uZ1ByZXNzOgor
ICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVBpbmNoQmVnaW46CisgICAgY2FzZSBQbGF0
Zm9ybUV2ZW50OjpHZXN0dXJlUGluY2hFbmQ6CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0
dXJlUGluY2hVcGRhdGU6CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgfQorICAgIHJldHVybiBhZG9wdFJlZihuZXcgR2VzdHVyZUV2ZW50KGV2ZW50VHlw
ZSwgdmlldywgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS54KCksIGV2ZW50Lmdsb2JhbFBvc2l0aW9u
KCkueSgpLCBldmVudC5wb3NpdGlvbigpLngoKSwgZXZlbnQucG9zaXRpb24oKS55KCksIGV2ZW50
LmN0cmxLZXkoKSwgZXZlbnQuYWx0S2V5KCksIGV2ZW50LnNoaWZ0S2V5KCksIGV2ZW50Lm1ldGFL
ZXkoKSwgZXZlbnQuZGVsdGFYKCksIGV2ZW50LmRlbHRhWSgpKSk7Cit9CisKK3ZvaWQgR2VzdHVy
ZUV2ZW50Ojppbml0R2VzdHVyZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgUGFzc1Jl
ZlB0cjxBYnN0cmFjdFZpZXc+IHZpZXcsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IGNs
aWVudFgsIGludCBjbGllbnRZLCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0
S2V5LCBib29sIG1ldGFLZXksIGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZKQoreworICAgIGlm
IChkaXNwYXRjaGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGluaXRVSUV2ZW50KHR5cGUs
IHRydWUsIHRydWUsIHZpZXcsIDApOworICAgIG1fc2NyZWVuTG9jYXRpb24gPSBJbnRQb2ludChz
Y3JlZW5YLCBzY3JlZW5ZKTsKKyAgICBtX2N0cmxLZXkgPSBjdHJsS2V5OworICAgIG1fYWx0S2V5
ID0gYWx0S2V5OworICAgIG1fc2hpZnRLZXkgPSBzaGlmdEtleTsKKyAgICBtX21ldGFLZXkgPSBt
ZXRhS2V5OworCisgICAgbV9kZWx0YVggPSBkZWx0YVg7CisgICAgbV9kZWx0YVkgPSBkZWx0YVk7
CisKKyAgICBpbml0Q29vcmRpbmF0ZXMoSW50UG9pbnQoY2xpZW50WCwgY2xpZW50WSkpOworfQor
Citjb25zdCBBdG9taWNTdHJpbmcmIEdlc3R1cmVFdmVudDo6aW50ZXJmYWNlTmFtZSgpIGNvbnN0
Cit7CisgICAgc3RhdGljIEF0b21pY1N0cmluZyBpbnRlcmZhY2UoIlRCREludGVyZmFjZSIpOwor
ICAgIHJldHVybiBpbnRlcmZhY2U7Cit9CisKK0dlc3R1cmVFdmVudDo6R2VzdHVyZUV2ZW50KGNv
bnN0IEF0b21pY1N0cmluZyYgdHlwZSwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+IHZpZXcsIGlu
dCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IGNsaWVudFgsIGludCBjbGllbnRZLCBib29sIGN0
cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIGZsb2F0IGRl
bHRhWCwgZmxvYXQgZGVsdGFZKQorICAgIDogTW91c2VSZWxhdGVkRXZlbnQodHlwZSwgdHJ1ZSwg
dHJ1ZSwgdmlldywgMCwgSW50UG9pbnQoc2NyZWVuWCwgc2NyZWVuWSksIEludFBvaW50KGNsaWVu
dFgsIGNsaWVudFkpLAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgICAgICAgICAgICAg
ICAgICAgICBJbnRQb2ludCgwLCAwKSwKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAg
Y3RybEtleSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0YUtleSkKKyAgICAsIG1fZGVsdGFYKGRlbHRh
WCkKKyAgICAsIG1fZGVsdGFZKGRlbHRhWSkKK3sKK30KKworR2VzdHVyZUV2ZW50RGlzcGF0Y2hN
ZWRpYXRvcjo6R2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNzUmVmUHRyPEdlc3R1cmVF
dmVudD4gZ2VzdHVyZUV2ZW50KQorICAgIDogRXZlbnREaXNwYXRjaE1lZGlhdG9yKGdlc3R1cmVF
dmVudCkKK3sKK30KKworR2VzdHVyZUV2ZW50KiBHZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlhdG9y
OjpldmVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdlc3R1cmVFdmVudCo+
KEV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6ZXZlbnQoKSk7Cit9CisKK2Jvb2wgR2VzdHVyZUV2ZW50
RGlzcGF0Y2hNZWRpYXRvcjo6ZGlzcGF0Y2hFdmVudChFdmVudERpc3BhdGNoZXIqIGRpc3BhdGNo
ZXIpIGNvbnN0Cit7CisgICAgaWYgKGRpc3BhdGNoZXItPm5vZGUoKS0+ZGlzYWJsZWQoKSkKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBkaXNwYXRjaGVyLT5kaXNwYXRjaEV2ZW50KGV2ZW50
KCkpOworICAgIEFTU0VSVCghZXZlbnQoKS0+ZGVmYXVsdFByZXZlbnRlZCgpKTsKKyAgICByZXR1
cm4gZXZlbnQoKS0+ZGVmYXVsdEhhbmRsZWQoKSB8fCBldmVudCgpLT5kZWZhdWx0UHJldmVudGVk
KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShHRVNU
VVJFX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9HZXN0dXJlRXZlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9HZXN0dXJlRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMWYxZjJi
MzkyOGZmZTkyYWJlNWQyNWJkYzA5OGM2NjE2MzA5Mjc4Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVFdmVudC5oCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBHZXN0dXJlRXZlbnRfaAorI2RlZmluZSBHZXN0dXJlRXZlbnRfaAorCisjaWYg
RU5BQkxFKEdFU1RVUkVfRVZFTlRTKQorCisjaW5jbHVkZSAiRXZlbnREaXNwYXRjaGVyLmgiCisj
aW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJh
bWVWaWV3LmgiCisjaW5jbHVkZSAiTW91c2VSZWxhdGVkRXZlbnQuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybUV2ZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1HZXN0dXJlRXZlbnQuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBHZXN0dXJlRXZlbnQgOiBwdWJsaWMgTW91c2VSZWxhdGVk
RXZlbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgfkdlc3R1cmVFdmVudCgpIHsgfQorCisgICAg
c3RhdGljIFBhc3NSZWZQdHI8R2VzdHVyZUV2ZW50PiBjcmVhdGUoKTsKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxHZXN0dXJlRXZlbnQ+IGNyZWF0ZShQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4sIGNv
bnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50Jik7CisKKyAgICB2b2lkIGluaXRHZXN0dXJlRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4sIGludCBz
Y3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IGNsaWVudFgsIGludCBjbGllbnRZLCBib29sIGN0cmxL
ZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIGZsb2F0IGRlbHRh
WCwgZmxvYXQgZGVsdGFZKTsKKworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbnRl
cmZhY2VOYW1lKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgR2VzdHVyZUV2ZW50KCkgeyB9Cisg
ICAgR2VzdHVyZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgUGFzc1JlZlB0cjxBYnN0
cmFjdFZpZXc+LCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBjbGllbnRYLCBpbnQgY2xp
ZW50WSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRh
S2V5LCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSk7CisKKyAgICBmbG9hdCBtX2RlbHRhWDsK
KyAgICBmbG9hdCBtX2RlbHRhWTsKK307CisKK2NsYXNzIEdlc3R1cmVFdmVudERpc3BhdGNoTWVk
aWF0b3IgOiBwdWJsaWMgRXZlbnREaXNwYXRjaE1lZGlhdG9yIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxHZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlhdG9yPiBjcmVhdGUoUGFzc1Jl
ZlB0cjxHZXN0dXJlRXZlbnQ+IGdlc3R1cmVFdmVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgR2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcihnZXN0dXJlRXZlbnQpKTsK
KyAgICB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgR2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRp
YXRvcihQYXNzUmVmUHRyPEdlc3R1cmVFdmVudD4pOworCisgICAgR2VzdHVyZUV2ZW50KiBldmVu
dCgpIGNvbnN0OworCisgICAgdmlydHVhbCBib29sIGRpc3BhdGNoRXZlbnQoRXZlbnREaXNwYXRj
aGVyKikgY29uc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoR0VTVFVSRV9FVkVOVFMpCisKKyNlbmRpZiAvLyBHZXN0dXJlRXZlbnRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCmluZGV4IDJlM2Y0MTM0MjRkZDZiMzUwNDNlZGI2OTBjMWYwZDkxMGNlZTZiZjguLmY3
ZTMzZWZkMjIzMjU4ZjU5NDA0NWNlMjljNWU3YzRiNzZjOTU1YzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
QEAgLTEwOSw2ICsxMDksMTAgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCisjaWYgRU5BQkxFKEdFU1RVUkVfRVZF
TlRTKQorI2luY2x1ZGUgIkdlc3R1cmVFdmVudC5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoSU5T
UEVDVE9SKQogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNlbmRpZgpAQCAtMjYz
Myw2ICsyNjM3LDEzIEBAIGJvb2wgTm9kZTo6ZGlzcGF0Y2hNb3VzZUV2ZW50KGNvbnN0IFBsYXRm
b3JtTW91c2VFdmVudCYgZXZlbnQsIGNvbnN0IEF0b21pY1N0cmluCiAgICAgcmV0dXJuIEV2ZW50
RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hFdmVudCh0aGlzLCBNb3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRv
cjo6Y3JlYXRlKE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudFR5cGUsIGRvY3VtZW50KCktPmRlZmF1
bHRWaWV3KCksIGV2ZW50LCBkZXRhaWwsIHJlbGF0ZWRUYXJnZXQpKSk7CiB9CiAKKyNpZiBFTkFC
TEUoR0VTVFVSRV9FVkVOVFMpCitib29sIE5vZGU6OmRpc3BhdGNoR2VzdHVyZUV2ZW50KGNvbnN0
IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiBldmVudCkKK3sKKyAgICByZXR1cm4gRXZlbnREaXNwYXRj
aGVyOjpkaXNwYXRjaEV2ZW50KHRoaXMsIEdlc3R1cmVFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNy
ZWF0ZShHZXN0dXJlRXZlbnQ6OmNyZWF0ZShkb2N1bWVudCgpLT5kZWZhdWx0VmlldygpLCBldmVu
dCkpKTsKK30KKyNlbmRpZgorCiB2b2lkIE5vZGU6OmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soUGFz
c1JlZlB0cjxFdmVudD4gZXZlbnQsIGJvb2wgc2VuZE1vdXNlRXZlbnRzLCBib29sIHNob3dQcmVz
c2VkTG9vaykKIHsKICAgICBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2so
dGhpcywgZXZlbnQsIHNlbmRNb3VzZUV2ZW50cywgc2hvd1ByZXNzZWRMb29rKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5o
CmluZGV4IDg2YTdkMzllZDU4YmRiYzlkNDJmMjQxZTQ3NmM5YTZiMzE2YmQ2ZDAuLmEzMjA0YmEx
YTdhM2U4MjZiNDU5MjNmNmEyMjU5ODUzNWU4YjQwM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtODgsNiAr
ODgsMTAgQEAgY2xhc3MgU2hhZG93Um9vdDsKIGNsYXNzIFRhZ05vZGVMaXN0OwogY2xhc3MgVHJl
ZVNjb3BlOwogCisjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQorY2xhc3MgUGxhdGZvcm1HZXN0
dXJlRXZlbnQ7CisjZW5kaWYKKwogI2lmIEVOQUJMRShNSUNST0RBVEEpCiBjbGFzcyBIVE1MUHJv
cGVydGllc0NvbGxlY3Rpb247CiBjbGFzcyBQcm9wZXJ0eU5vZGVMaXN0OwpAQCAtNjA5LDYgKzYx
Myw5IEBAIHB1YmxpYzoKICAgICBib29sIGRpc3BhdGNoS2V5RXZlbnQoY29uc3QgUGxhdGZvcm1L
ZXlib2FyZEV2ZW50Jik7CiAgICAgYm9vbCBkaXNwYXRjaFdoZWVsRXZlbnQoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50Jik7CiAgICAgYm9vbCBkaXNwYXRjaE1vdXNlRXZlbnQoY29uc3QgUGxhdGZv
cm1Nb3VzZUV2ZW50JiwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGludCBjbGlja0Nv
dW50ID0gMCwgTm9kZSogcmVsYXRlZFRhcmdldCA9IDApOworI2lmIEVOQUJMRShHRVNUVVJFX0VW
RU5UUykKKyAgICBib29sIGRpc3BhdGNoR2VzdHVyZUV2ZW50KGNvbnN0IFBsYXRmb3JtR2VzdHVy
ZUV2ZW50Jik7CisjZW5kaWYKICAgICB2b2lkIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soUGFzc1Jl
ZlB0cjxFdmVudD4gdW5kZXJseWluZ0V2ZW50LCBib29sIHNlbmRNb3VzZUV2ZW50cyA9IGZhbHNl
LCBib29sIHNob3dQcmVzc2VkTG9vayA9IHRydWUpOwogICAgIGJvb2wgZGlzcGF0Y2hCZWZvcmVM
b2FkRXZlbnQoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAKaW5kZXggOGVlYTNmYTY1OGI1OWZjYmNkY2NmOTIxM2JjNzhlMjhhYTY0Nzc3
Yi4uMDYxZDgzMzBmNTY3ZjliYjQwNzI2MWU5ZmJhNDlmMjE2MmMyNGNiOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzY3LDEwICszNjcsMTEgQEAgdm9pZCBFdmVudEhh
bmRsZXI6OmNsZWFyKCkKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIG1fb3JpZ2luYXRp
bmdUb3VjaFBvaW50VGFyZ2V0cy5jbGVhcigpOwogI2VuZGlmCi0gICAgbV9tYXhNb3VzZU1vdmVk
RHVyYXRpb24gPSAwOwogI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKLSAgICBtX2Jhc2VFdmVu
dFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpOb1R5cGU7CisgICAgbV9zY3JvbGxHZXN0dXJlSGFuZGxp
bmdOb2RlID0gMDsKICNlbmRpZgorICAgIG1fbWF4TW91c2VNb3ZlZER1cmF0aW9uID0gMDsKKyAg
ICBtX2Jhc2VFdmVudFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpOb1R5cGU7CiB9CiAKIHZvaWQgRXZl
bnRIYW5kbGVyOjpub2RlV2lsbEJlUmVtb3ZlZChOb2RlKiBub2RlVG9CZVJlbW92ZWQpCkBAIC0y
NDEzLDYgKzI0MTQsMjkgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVUYXBEb3du
KCkKIAogYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVFdmVudChjb25zdCBQbGF0Zm9y
bUdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50KQogeworICAgIE5vZGUqIGV2ZW50VGFyZ2V0ID0g
MDsKKyAgICBpZiAoZ2VzdHVyZUV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJl
U2Nyb2xsRW5kIHx8IGdlc3R1cmVFdmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6R2VzdHVy
ZVNjcm9sbFVwZGF0ZSkKKyAgICAgICAgZXZlbnRUYXJnZXQgPSBtX3Njcm9sbEdlc3R1cmVIYW5k
bGluZ05vZGUuZ2V0KCk7CisKKyAgICBpZiAoIWV2ZW50VGFyZ2V0KSB7CisgICAgICAgIEhpdFRl
c3RSZXN1bHQgcmVzdWx0ID0gaGl0VGVzdFJlc3VsdEF0UG9pbnQoZ2VzdHVyZUV2ZW50LnBvc2l0
aW9uKCksIGZhbHNlLCBmYWxzZSwgRG9udEhpdFRlc3RTY3JvbGxiYXJzLCBIaXRUZXN0UmVxdWVz
dDo6UmVhZE9ubHkgfCBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlKTsKKyAgICAgICAgZXZlbnRUYXJn
ZXQgPSB0YXJnZXROb2RlKHJlc3VsdCk7CisgICAgfQorCisgICAgaWYgKGV2ZW50VGFyZ2V0KSB7
CisgICAgICAgIGJvb2wgZXZlbnRTd2FsbG93ZWQgPSBldmVudFRhcmdldC0+ZGlzcGF0Y2hHZXN0
dXJlRXZlbnQoZ2VzdHVyZUV2ZW50KTsKKworICAgICAgICBpZiAoZ2VzdHVyZUV2ZW50LnR5cGUo
KSA9PSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlU2Nyb2xsQmVnaW4pIHsKKyAgICAgICAgICAgIGlm
IChldmVudFN3YWxsb3dlZCkKKyAgICAgICAgICAgICAgICBtX3Njcm9sbEdlc3R1cmVIYW5kbGlu
Z05vZGUgPSBldmVudFRhcmdldDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBt
X3Njcm9sbEdlc3R1cmVIYW5kbGluZ05vZGUgPSAwOworICAgICAgICB9CisKKyAgICAgICAgaWYg
KGV2ZW50U3dhbGxvd2VkKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCiAgICAg
Ly8gRklYTUU6IEEgbW9yZSBnZW5lcmFsIHNjcm9sbCBzeXN0ZW0gKGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDU5Nikgd2lsbAogICAgIC8vIGVsaW1pbmF0ZSB0aGUg
bmVlZCBmb3IgdGhpcy4KICAgICBUZW1wb3JhcnlDaGFuZ2U8UGxhdGZvcm1FdmVudDo6VHlwZT4g
YmFzZUV2ZW50VHlwZShtX2Jhc2VFdmVudFR5cGUsIGdlc3R1cmVFdmVudC50eXBlKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggMWQyZDM3NWMzOWJiNThiYTUzYTU4ZjU0MzA3
ZWIxNjI1ZWYwN2ZkMS4uZWUyNjk0NDMzZGIxYzI3OTlkNTA0YjJkNDg0ZjA0ZTM1NDcwMzBlMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC00NDYsNiArNDQ2LDExIEBAIHByaXZh
dGU6CiAgICAgVG91Y2hUYXJnZXRNYXAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRUYXJnZXRzOwog
ICAgIGJvb2wgbV90b3VjaFByZXNzZWQ7CiAjZW5kaWYKKworI2lmIEVOQUJMRShHRVNUVVJFX0VW
RU5UUykKKyAgICBSZWZQdHI8Tm9kZT4gbV9zY3JvbGxHZXN0dXJlSGFuZGxpbmdOb2RlOworI2Vu
ZGlmCisKICAgICBkb3VibGUgbV9tYXhNb3VzZU1vdmVkRHVyYXRpb247CiAgICAgUGxhdGZvcm1F
dmVudDo6VHlwZSBtX2Jhc2VFdmVudFR5cGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAppbmRleCAyOTQ4OWUyNWE1
NDRiMTM1NzI0NmQ3YTM5YWE0ZjlkZmE5Y2JmNzVmLi41YmU2MGUxZWExNzMyZjk2YzNmOGY0OTMy
MWM4ZjUyNTVhNjZhMTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcApAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUg
IkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1l
Vmlldy5oIgorI2luY2x1ZGUgIkdlc3R1cmVFdmVudC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29u
dGV4dC5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJIb3N0V2luZG93
LmgiCkBAIC0xODgsNiArMTg5LDggQEAgdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpoYW5k
bGVFdmVudChFdmVudCogZXZlbnQpCiAgICAgICAgIGhhbmRsZUtleWJvYXJkRXZlbnQoc3RhdGlj
X2Nhc3Q8S2V5Ym9hcmRFdmVudCo+KGV2ZW50KSk7CiAgICAgZWxzZSBpZiAoZXZlbnROYW1lcygp
LmlzVG91Y2hFdmVudFR5cGUoZXZlbnQtPnR5cGUoKSkpCiAgICAgICAgIGhhbmRsZVRvdWNoRXZl
bnQoc3RhdGljX2Nhc3Q8VG91Y2hFdmVudCo+KGV2ZW50KSk7CisgICAgZWxzZSBpZiAoZXZlbnRO
YW1lcygpLmlzR2VzdHVyZUV2ZW50VHlwZShldmVudC0+dHlwZSgpKSkKKyAgICAgICAgaGFuZGxl
R2VzdHVyZUV2ZW50KHN0YXRpY19jYXN0PEdlc3R1cmVFdmVudCo+KGV2ZW50KSk7CiAKICAgICAv
LyBGSVhNRTogaXQgd291bGQgYmUgY2xlYW5lciBpZiBXaWRnZXQ6OmhhbmRsZUV2ZW50IHJldHVy
bmVkIHRydWUvZmFsc2UgYW5kCiAgICAgLy8gSFRNTFBsdWdpbkVsZW1lbnQgY2FsbGVkIHNldERl
ZmF1bHRIYW5kbGVkIG9yIGRlZmF1bHRFdmVudEhhbmRsZXIuCkBAIC03MzYsNiArNzM5LDExIEBA
IHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6aGFuZGxlVG91Y2hFdmVudChUb3VjaEV2ZW50
KiBldmVudCkKICAgICAvLyBGSVhNRTogQ2FuIGEgcGx1Z2luIGNoYW5nZSB0aGUgY3Vyc29yIGZy
b20gYSB0b3VjaC1ldmVudCBjYWxsYmFjaz8KIH0KIAordm9pZCBXZWJQbHVnaW5Db250YWluZXJJ
bXBsOjpoYW5kbGVHZXN0dXJlRXZlbnQoR2VzdHVyZUV2ZW50KiBldmVudCkKK3sKKyAgICAvLyBG
SVhNRToKK30KKwogdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpjYWxjdWxhdGVHZW9tZXRy
eShjb25zdCBJbnRSZWN0JiBmcmFtZVJlY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEludFJlY3QmIHdpbmRvd1JlY3QsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludFJlY3QmIGNsaXBSZWN0LApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCmlu
ZGV4IDRjMmFhZWI0YTA0ODQzNDBhZjY2MWE1YWRjYjJjMjM5ODdhOGM0NzYuLjYxZjVjNWI3MTQ2
ZjI5OTU3ZGI4OTE4Zjk4ZGI0NWFmZDk0NTY5NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgKQEAgLTQ1LDYgKzQ1LDcgQEAK
IHN0cnVjdCBOUE9iamVjdDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgR2VzdHVyZUV2
ZW50OwogY2xhc3MgSFRNTFBsdWdJbkVsZW1lbnQ7CiBjbGFzcyBJbnRSZWN0OwogY2xhc3MgS2V5
Ym9hcmRFdmVudDsKQEAgLTE2Nyw2ICsxNjgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgaGFuZGxl
V2hlZWxFdmVudChXZWJDb3JlOjpXaGVlbEV2ZW50Kik7CiAgICAgdm9pZCBoYW5kbGVLZXlib2Fy
ZEV2ZW50KFdlYkNvcmU6OktleWJvYXJkRXZlbnQqKTsKICAgICB2b2lkIGhhbmRsZVRvdWNoRXZl
bnQoV2ViQ29yZTo6VG91Y2hFdmVudCopOworICAgIHZvaWQgaGFuZGxlR2VzdHVyZUV2ZW50KFdl
YkNvcmU6Okdlc3R1cmVFdmVudCopOwogCiAgICAgdm9pZCBjYWxjdWxhdGVHZW9tZXRyeShjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBmcmFtZVJlY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXZWJDb3JlOjpJbnRSZWN0JiB3aW5kb3dSZWN0LAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154434</attachid>
            <date>2012-07-25 13:47:18 -0700</date>
            <delta_ts>2012-07-25 14:43:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92281-20120725164707.patch</filename>
            <type>text/plain</type>
            <size>20210</size>
            <attacher name="Sadrul Habib Chowdhury">sadrul</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGNmZWMzYjVmYzZkMzYw
M2NhNDliOTJmMjY3Y2NmYmNlODkwNzllNi4uYmI2NDhhODE2OWI1YTJiYTBiNWQ3ODlkMWJiMDhh
ZmEzYzNhYjQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTA3LTI1ICBTYWRy
dWwgSGFiaWIgQ2hvd2RodXJ5ICA8c2FkcnVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBQcm9w
YWdhdGUgZ2VzdHVyZSBldmVudHMgdG8gcGx1Z2lucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvcGFnYXRlIGdlc3R1cmUgZXZlbnRzIHRvIHBsdWdp
bnMuIFRoaXMgY2hhbmdlIGRvZXMgbm90IGV4cG9zZSB0aGUgZ2VzdHVyZSBldmVudHMKKyAgICAg
ICAgdG8gSmF2YVNjcmlwdCwgc2luY2UgdGhlcmUgaXMgbm8gc3BlYyBmb3IgdGhhdCBhdCB0aGUg
bW9tZW50LiBFeHBvc2luZyBnZXN0dXJlIGV2ZW50cworICAgICAgICB0byBKYXZhU2NyaXB0IHdp
bGwgYmUgZG9uZSBzZXBhcmF0ZWx5LCBvbmNlIHRoZXJlIGlzIGEgc3BlYyBmb3IgaXQuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6Cisg
ICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnROYW1lczo6aXNHZXN0dXJlRXZlbnRUeXBlKToKKyAgICAgICAgKEV2ZW50
TmFtZXMpOgorICAgICAgICAqIGRvbS9HZXN0dXJlRXZlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2ZW50OjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2ZW50Ojppbml0R2VzdHVyZUV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6Okdlc3R1cmVFdmVudDo6aW50ZXJmYWNlTmFtZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHZXN0dXJlRXZlbnQ6Okdlc3R1cmVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJl
RXZlbnREaXNwYXRjaE1lZGlhdG9yOjpHZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlhdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6Okdlc3R1cmVFdmVudERpc3BhdGNoTWVkaWF0b3I6OmV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6Okdlc3R1cmVFdmVudERpc3BhdGNoTWVkaWF0b3I6OmRpc3BhdGNoRXZl
bnQpOgorICAgICAgICAqIGRvbS9HZXN0dXJlRXZlbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKEdlc3R1cmVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJl
RXZlbnQ6On5HZXN0dXJlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2ZW50OjpH
ZXN0dXJlRXZlbnQpOgorICAgICAgICAoR2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpjcmVhdGUpOgor
ICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Tm9kZTo6ZGlzcGF0Y2hHZXN0dXJlRXZlbnQpOgorICAgICAgICAqIGRvbS9Ob2RlLmg6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE5vZGUpOgorICAgICAgICAqIHBhZ2UvRXZl
bnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6Y2xlYXIpOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlRXZlbnQpOgorICAg
ICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisKIDIwMTItMDctMjQgIEt3YW5nIFl1bCBTZW8g
IDxza3l1bEBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBSZW1vdmUgYW4gaW52YWxpZCBhc3Nl
cnRpb24gaW50cm9kdWNlZCBpbiByMTIzNTM2LiBVbnJldmlld2VkLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwppbmRleCA0M2JlZDMwNDE0MWJiZWVkZTllYzcxYzUzN2Q5ZDM3NDU1MTg2MWI1Li5k
MDAwNTc5NWIwMmQ3Y2NhOTFjNTMwMjQyYTk1MzUyNmZiZTIzNzUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA3LTI1ICBTYWRydWwgSGFiaWIgQ2hv
d2RodXJ5ICA8c2FkcnVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBQcm9wYWdhdGUgZ2VzdHVy
ZSBldmVudHMgdG8gcGx1Z2lucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTkyMjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUHJvcGFnYXRlIGdlc3R1cmUgZXZlbnRzIHRvIHBsdWdpbnMuIFRoZSBhY3R1
YWwgaW1wbGVtZW50YXRpb24gZm9yIHNlbmRpbmcgdGhlIGdlc3R1cmUKKyAgICAgICAgZXZlbnRz
IHRvIHRoZSBwbHVnaW4gaXMgc3R1YmJlZCBvdXQgaW4gdGhpcyBjaGFuZ2VzZXQuCisKKyAgICAg
ICAgKiBzcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBsdWdpbkNvbnRhaW5lckltcGw6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBzcmMvV2ViUGx1
Z2luQ29udGFpbmVySW1wbC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJQbHVn
aW5Db250YWluZXJJbXBsKToKKwogMjAxMi0wNy0yNCAgSmlhbiBMaSAgPGppYW5saUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgQWRkIHBlci1jb250ZXh0IHNldHRpbmcgZm9yIGh0bWwgbm90aWZp
Y2F0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDJmOTRlNTU3MTk0NTFiOGJmMTA3NjJlOTRmZjQ3
YWMxOTRjZWM5NDQuLmI0YmMyMmFiYmVmOGQ3MjM3N2Y5ZTZiN2E5ZTg2OTc1MTlmYTA1NjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKQEAgLTUxOTEsNiArNTE5MSw4IEBACiAgICAgICAgICAgICAnZG9tL0V4
Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5jcHAnLAogICAgICAgICAgICAgJ2RvbS9HZW5lcmljRXZl
bnRRdWV1ZS5jcHAnLAogICAgICAgICAgICAgJ2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5oJywKKyAg
ICAgICAgICAgICdkb20vR2VzdHVyZUV2ZW50LmNwcCcsCisgICAgICAgICAgICAnZG9tL0dlc3R1
cmVFdmVudC5oJywKICAgICAgICAgICAgICdkb20vSGFzaENoYW5nZUV2ZW50LmgnLAogICAgICAg
ICAgICAgJ2RvbS9JZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlci5oJywKICAg
ICAgICAgICAgICdkb20vSWNvblVSTC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKaW5kZXgg
OTgzZGYyOWU4YmYyZWM3MDI3NmQ2Njg1NDUzNTljMDk0ZjZlOGRjMy4uODE4ZWQ0MDEwZTUwNGQ0
YzM4YTA5ZmVkZDFkOGJiNTI1N2U4YWI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCkBAIC03
MSw2ICs3MSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oZm9jdXMpIFwKICAg
ICBtYWNybyhmb2N1c2luKSBcCiAgICAgbWFjcm8oZm9jdXNvdXQpIFwKKyAgICBtYWNybyhnZXN0
dXJldGFwKSBcCisgICAgbWFjcm8oZ2VzdHVyZXRhcGRvd24pIFwKKyAgICBtYWNybyhnZXN0dXJl
c2Nyb2xsc3RhcnQpIFwKKyAgICBtYWNybyhnZXN0dXJlc2Nyb2xsZW5kKSBcCisgICAgbWFjcm8o
Z2VzdHVyZXNjcm9sbHVwZGF0ZSkgXAogICAgIG1hY3JvKGhhc2hjaGFuZ2UpIFwKICAgICBtYWNy
byhpbnB1dCkgXAogICAgIG1hY3JvKGludmFsaWQpIFwKQEAgLTI2MCw2ICsyNjUsMTUgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgICAgIHx8IGV2ZW50VHlwZSA9PSB0b3VjaGNh
bmNlbEV2ZW50OwogICAgICAgICB9CiAKKyAgICAgICAgaW5saW5lIGJvb2wgaXNHZXN0dXJlRXZl
bnRUeXBlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlKSBjb25zdAorICAgICAgICB7Cisg
ICAgICAgICAgICByZXR1cm4gZXZlbnRUeXBlID09IGdlc3R1cmV0YXBFdmVudAorICAgICAgICAg
ICAgICAgIHx8IGV2ZW50VHlwZSA9PSBnZXN0dXJldGFwZG93bkV2ZW50CisgICAgICAgICAgICAg
ICAgfHwgZXZlbnRUeXBlID09IGdlc3R1cmVzY3JvbGxzdGFydEV2ZW50CisgICAgICAgICAgICAg
ICAgfHwgZXZlbnRUeXBlID09IGdlc3R1cmVzY3JvbGxlbmRFdmVudAorICAgICAgICAgICAgICAg
IHx8IGV2ZW50VHlwZSA9PSBnZXN0dXJlc2Nyb2xsdXBkYXRlRXZlbnQ7CisgICAgICAgIH0KKwog
ICAgICAgICBWZWN0b3I8QXRvbWljU3RyaW5nPiB0b3VjaEV2ZW50TmFtZXMoKSBjb25zdAogICAg
ICAgICB7CiAgICAgICAgICAgICBWZWN0b3I8QXRvbWljU3RyaW5nPiBuYW1lczsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9HZXN0dXJlRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0dlc3R1cmVFdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTcyMTNjODM0N2FkZTc4YTcxODJlZTUz
NWVjMjc4YTEyMDY5NDU3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9H
ZXN0dXJlRXZlbnQuY3BwCkBAIC0wLDAgKzEsMTIyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKKworI2luY2x1ZGUgIkdlc3R1
cmVFdmVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8R2VzdHVyZUV2
ZW50PiBHZXN0dXJlRXZlbnQ6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBH
ZXN0dXJlRXZlbnQpOworfQorCitQYXNzUmVmUHRyPEdlc3R1cmVFdmVudD4gR2VzdHVyZUV2ZW50
OjpjcmVhdGUoUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+IHZpZXcsIGNvbnN0IFBsYXRmb3JtR2Vz
dHVyZUV2ZW50JiBldmVudCkKK3sKKyAgICBBdG9taWNTdHJpbmcgZXZlbnRUeXBlOworICAgIHN3
aXRjaCAoZXZlbnQudHlwZSgpKSB7CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlU2Ny
b2xsQmVnaW46CisgICAgICAgIGV2ZW50VHlwZSA9IGV2ZW50TmFtZXMoKS5nZXN0dXJlc2Nyb2xs
c3RhcnRFdmVudDsgYnJlYWs7CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlU2Nyb2xs
RW5kOgorICAgICAgICBldmVudFR5cGUgPSBldmVudE5hbWVzKCkuZ2VzdHVyZXNjcm9sbGVuZEV2
ZW50OyBicmVhazsKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVTY3JvbGxVcGRhdGU6
CisgICAgICAgIGV2ZW50VHlwZSA9IGV2ZW50TmFtZXMoKS5nZXN0dXJlc2Nyb2xsdXBkYXRlRXZl
bnQ7IGJyZWFrOworICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVRhcDoKKyAgICAgICAg
ZXZlbnRUeXBlID0gZXZlbnROYW1lcygpLmdlc3R1cmV0YXBFdmVudDsgYnJlYWs7CisgICAgY2Fz
ZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlVGFwRG93bjoKKyAgICAgICAgZXZlbnRUeXBlID0gZXZl
bnROYW1lcygpLmdlc3R1cmV0YXBkb3duRXZlbnQ7IGJyZWFrOworICAgIGNhc2UgUGxhdGZvcm1F
dmVudDo6R2VzdHVyZURvdWJsZVRhcDoKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVU
d29GaW5nZXJUYXA6CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlTG9uZ1ByZXNzOgor
ICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVBpbmNoQmVnaW46CisgICAgY2FzZSBQbGF0
Zm9ybUV2ZW50OjpHZXN0dXJlUGluY2hFbmQ6CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0
dXJlUGluY2hVcGRhdGU6CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgfQorICAgIHJldHVybiBhZG9wdFJlZihuZXcgR2VzdHVyZUV2ZW50KGV2ZW50VHlw
ZSwgdmlldywgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS54KCksIGV2ZW50Lmdsb2JhbFBvc2l0aW9u
KCkueSgpLCBldmVudC5wb3NpdGlvbigpLngoKSwgZXZlbnQucG9zaXRpb24oKS55KCksIGV2ZW50
LmN0cmxLZXkoKSwgZXZlbnQuYWx0S2V5KCksIGV2ZW50LnNoaWZ0S2V5KCksIGV2ZW50Lm1ldGFL
ZXkoKSwgZXZlbnQuZGVsdGFYKCksIGV2ZW50LmRlbHRhWSgpKSk7Cit9CisKK3ZvaWQgR2VzdHVy
ZUV2ZW50Ojppbml0R2VzdHVyZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgUGFzc1Jl
ZlB0cjxBYnN0cmFjdFZpZXc+IHZpZXcsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IGNs
aWVudFgsIGludCBjbGllbnRZLCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0
S2V5LCBib29sIG1ldGFLZXksIGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZKQoreworICAgIGlm
IChkaXNwYXRjaGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGluaXRVSUV2ZW50KHR5cGUs
IHRydWUsIHRydWUsIHZpZXcsIDApOworICAgIG1fc2NyZWVuTG9jYXRpb24gPSBJbnRQb2ludChz
Y3JlZW5YLCBzY3JlZW5ZKTsKKyAgICBtX2N0cmxLZXkgPSBjdHJsS2V5OworICAgIG1fYWx0S2V5
ID0gYWx0S2V5OworICAgIG1fc2hpZnRLZXkgPSBzaGlmdEtleTsKKyAgICBtX21ldGFLZXkgPSBt
ZXRhS2V5OworCisgICAgbV9kZWx0YVggPSBkZWx0YVg7CisgICAgbV9kZWx0YVkgPSBkZWx0YVk7
CisKKyAgICBpbml0Q29vcmRpbmF0ZXMoSW50UG9pbnQoY2xpZW50WCwgY2xpZW50WSkpOworfQor
Citjb25zdCBBdG9taWNTdHJpbmcmIEdlc3R1cmVFdmVudDo6aW50ZXJmYWNlTmFtZSgpIGNvbnN0
Cit7CisgICAgc3RhdGljIEF0b21pY1N0cmluZyBpbnRlcmZhY2UoIlRCREludGVyZmFjZSIpOwor
ICAgIHJldHVybiBpbnRlcmZhY2U7Cit9CisKK0dlc3R1cmVFdmVudDo6R2VzdHVyZUV2ZW50KGNv
bnN0IEF0b21pY1N0cmluZyYgdHlwZSwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+IHZpZXcsIGlu
dCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IGNsaWVudFgsIGludCBjbGllbnRZLCBib29sIGN0
cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIGZsb2F0IGRl
bHRhWCwgZmxvYXQgZGVsdGFZKQorICAgIDogTW91c2VSZWxhdGVkRXZlbnQodHlwZSwgdHJ1ZSwg
dHJ1ZSwgdmlldywgMCwgSW50UG9pbnQoc2NyZWVuWCwgc2NyZWVuWSksIEludFBvaW50KGNsaWVu
dFgsIGNsaWVudFkpLAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgICAgICAgICAgICAg
ICAgICAgICBJbnRQb2ludCgwLCAwKSwKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAg
Y3RybEtleSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0YUtleSkKKyAgICAsIG1fZGVsdGFYKGRlbHRh
WCkKKyAgICAsIG1fZGVsdGFZKGRlbHRhWSkKK3sKK30KKworR2VzdHVyZUV2ZW50RGlzcGF0Y2hN
ZWRpYXRvcjo6R2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNzUmVmUHRyPEdlc3R1cmVF
dmVudD4gZ2VzdHVyZUV2ZW50KQorICAgIDogRXZlbnREaXNwYXRjaE1lZGlhdG9yKGdlc3R1cmVF
dmVudCkKK3sKK30KKworR2VzdHVyZUV2ZW50KiBHZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlhdG9y
OjpldmVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdlc3R1cmVFdmVudCo+
KEV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6ZXZlbnQoKSk7Cit9CisKK2Jvb2wgR2VzdHVyZUV2ZW50
RGlzcGF0Y2hNZWRpYXRvcjo6ZGlzcGF0Y2hFdmVudChFdmVudERpc3BhdGNoZXIqIGRpc3BhdGNo
ZXIpIGNvbnN0Cit7CisgICAgaWYgKGRpc3BhdGNoZXItPm5vZGUoKS0+ZGlzYWJsZWQoKSkKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBkaXNwYXRjaGVyLT5kaXNwYXRjaEV2ZW50KGV2ZW50
KCkpOworICAgIEFTU0VSVCghZXZlbnQoKS0+ZGVmYXVsdFByZXZlbnRlZCgpKTsKKyAgICByZXR1
cm4gZXZlbnQoKS0+ZGVmYXVsdEhhbmRsZWQoKSB8fCBldmVudCgpLT5kZWZhdWx0UHJldmVudGVk
KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShHRVNU
VVJFX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9HZXN0dXJlRXZlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9HZXN0dXJlRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMWYxZjJi
MzkyOGZmZTkyYWJlNWQyNWJkYzA5OGM2NjE2MzA5Mjc4Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVFdmVudC5oCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBHZXN0dXJlRXZlbnRfaAorI2RlZmluZSBHZXN0dXJlRXZlbnRfaAorCisjaWYg
RU5BQkxFKEdFU1RVUkVfRVZFTlRTKQorCisjaW5jbHVkZSAiRXZlbnREaXNwYXRjaGVyLmgiCisj
aW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJh
bWVWaWV3LmgiCisjaW5jbHVkZSAiTW91c2VSZWxhdGVkRXZlbnQuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybUV2ZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1HZXN0dXJlRXZlbnQuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBHZXN0dXJlRXZlbnQgOiBwdWJsaWMgTW91c2VSZWxhdGVk
RXZlbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgfkdlc3R1cmVFdmVudCgpIHsgfQorCisgICAg
c3RhdGljIFBhc3NSZWZQdHI8R2VzdHVyZUV2ZW50PiBjcmVhdGUoKTsKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxHZXN0dXJlRXZlbnQ+IGNyZWF0ZShQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4sIGNv
bnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50Jik7CisKKyAgICB2b2lkIGluaXRHZXN0dXJlRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4sIGludCBz
Y3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IGNsaWVudFgsIGludCBjbGllbnRZLCBib29sIGN0cmxL
ZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIGZsb2F0IGRlbHRh
WCwgZmxvYXQgZGVsdGFZKTsKKworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbnRl
cmZhY2VOYW1lKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgR2VzdHVyZUV2ZW50KCkgeyB9Cisg
ICAgR2VzdHVyZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgUGFzc1JlZlB0cjxBYnN0
cmFjdFZpZXc+LCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBjbGllbnRYLCBpbnQgY2xp
ZW50WSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRh
S2V5LCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSk7CisKKyAgICBmbG9hdCBtX2RlbHRhWDsK
KyAgICBmbG9hdCBtX2RlbHRhWTsKK307CisKK2NsYXNzIEdlc3R1cmVFdmVudERpc3BhdGNoTWVk
aWF0b3IgOiBwdWJsaWMgRXZlbnREaXNwYXRjaE1lZGlhdG9yIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxHZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlhdG9yPiBjcmVhdGUoUGFzc1Jl
ZlB0cjxHZXN0dXJlRXZlbnQ+IGdlc3R1cmVFdmVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgR2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcihnZXN0dXJlRXZlbnQpKTsK
KyAgICB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgR2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRp
YXRvcihQYXNzUmVmUHRyPEdlc3R1cmVFdmVudD4pOworCisgICAgR2VzdHVyZUV2ZW50KiBldmVu
dCgpIGNvbnN0OworCisgICAgdmlydHVhbCBib29sIGRpc3BhdGNoRXZlbnQoRXZlbnREaXNwYXRj
aGVyKikgY29uc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoR0VTVFVSRV9FVkVOVFMpCisKKyNlbmRpZiAvLyBHZXN0dXJlRXZlbnRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCmluZGV4IDJlM2Y0MTM0MjRkZDZiMzUwNDNlZGI2OTBjMWYwZDkxMGNlZTZiZjguLmY3
ZTMzZWZkMjIzMjU4ZjU5NDA0NWNlMjljNWU3YzRiNzZjOTU1YzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
QEAgLTEwOSw2ICsxMDksMTAgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCisjaWYgRU5BQkxFKEdFU1RVUkVfRVZF
TlRTKQorI2luY2x1ZGUgIkdlc3R1cmVFdmVudC5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoSU5T
UEVDVE9SKQogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNlbmRpZgpAQCAtMjYz
Myw2ICsyNjM3LDEzIEBAIGJvb2wgTm9kZTo6ZGlzcGF0Y2hNb3VzZUV2ZW50KGNvbnN0IFBsYXRm
b3JtTW91c2VFdmVudCYgZXZlbnQsIGNvbnN0IEF0b21pY1N0cmluCiAgICAgcmV0dXJuIEV2ZW50
RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hFdmVudCh0aGlzLCBNb3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRv
cjo6Y3JlYXRlKE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudFR5cGUsIGRvY3VtZW50KCktPmRlZmF1
bHRWaWV3KCksIGV2ZW50LCBkZXRhaWwsIHJlbGF0ZWRUYXJnZXQpKSk7CiB9CiAKKyNpZiBFTkFC
TEUoR0VTVFVSRV9FVkVOVFMpCitib29sIE5vZGU6OmRpc3BhdGNoR2VzdHVyZUV2ZW50KGNvbnN0
IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiBldmVudCkKK3sKKyAgICByZXR1cm4gRXZlbnREaXNwYXRj
aGVyOjpkaXNwYXRjaEV2ZW50KHRoaXMsIEdlc3R1cmVFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNy
ZWF0ZShHZXN0dXJlRXZlbnQ6OmNyZWF0ZShkb2N1bWVudCgpLT5kZWZhdWx0VmlldygpLCBldmVu
dCkpKTsKK30KKyNlbmRpZgorCiB2b2lkIE5vZGU6OmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soUGFz
c1JlZlB0cjxFdmVudD4gZXZlbnQsIGJvb2wgc2VuZE1vdXNlRXZlbnRzLCBib29sIHNob3dQcmVz
c2VkTG9vaykKIHsKICAgICBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2so
dGhpcywgZXZlbnQsIHNlbmRNb3VzZUV2ZW50cywgc2hvd1ByZXNzZWRMb29rKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5o
CmluZGV4IDg2YTdkMzllZDU4YmRiYzlkNDJmMjQxZTQ3NmM5YTZiMzE2YmQ2ZDAuLmEzMjA0YmEx
YTdhM2U4MjZiNDU5MjNmNmEyMjU5ODUzNWU4YjQwM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtODgsNiAr
ODgsMTAgQEAgY2xhc3MgU2hhZG93Um9vdDsKIGNsYXNzIFRhZ05vZGVMaXN0OwogY2xhc3MgVHJl
ZVNjb3BlOwogCisjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQorY2xhc3MgUGxhdGZvcm1HZXN0
dXJlRXZlbnQ7CisjZW5kaWYKKwogI2lmIEVOQUJMRShNSUNST0RBVEEpCiBjbGFzcyBIVE1MUHJv
cGVydGllc0NvbGxlY3Rpb247CiBjbGFzcyBQcm9wZXJ0eU5vZGVMaXN0OwpAQCAtNjA5LDYgKzYx
Myw5IEBAIHB1YmxpYzoKICAgICBib29sIGRpc3BhdGNoS2V5RXZlbnQoY29uc3QgUGxhdGZvcm1L
ZXlib2FyZEV2ZW50Jik7CiAgICAgYm9vbCBkaXNwYXRjaFdoZWVsRXZlbnQoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50Jik7CiAgICAgYm9vbCBkaXNwYXRjaE1vdXNlRXZlbnQoY29uc3QgUGxhdGZv
cm1Nb3VzZUV2ZW50JiwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGludCBjbGlja0Nv
dW50ID0gMCwgTm9kZSogcmVsYXRlZFRhcmdldCA9IDApOworI2lmIEVOQUJMRShHRVNUVVJFX0VW
RU5UUykKKyAgICBib29sIGRpc3BhdGNoR2VzdHVyZUV2ZW50KGNvbnN0IFBsYXRmb3JtR2VzdHVy
ZUV2ZW50Jik7CisjZW5kaWYKICAgICB2b2lkIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soUGFzc1Jl
ZlB0cjxFdmVudD4gdW5kZXJseWluZ0V2ZW50LCBib29sIHNlbmRNb3VzZUV2ZW50cyA9IGZhbHNl
LCBib29sIHNob3dQcmVzc2VkTG9vayA9IHRydWUpOwogICAgIGJvb2wgZGlzcGF0Y2hCZWZvcmVM
b2FkRXZlbnQoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAKaW5kZXggOGVlYTNmYTY1OGI1OWZjYmNkY2NmOTIxM2JjNzhlMjhhYTY0Nzc3
Yi4uMDYxZDgzMzBmNTY3ZjliYjQwNzI2MWU5ZmJhNDlmMjE2MmMyNGNiOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzY3LDEwICszNjcsMTEgQEAgdm9pZCBFdmVudEhh
bmRsZXI6OmNsZWFyKCkKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIG1fb3JpZ2luYXRp
bmdUb3VjaFBvaW50VGFyZ2V0cy5jbGVhcigpOwogI2VuZGlmCi0gICAgbV9tYXhNb3VzZU1vdmVk
RHVyYXRpb24gPSAwOwogI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKLSAgICBtX2Jhc2VFdmVu
dFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpOb1R5cGU7CisgICAgbV9zY3JvbGxHZXN0dXJlSGFuZGxp
bmdOb2RlID0gMDsKICNlbmRpZgorICAgIG1fbWF4TW91c2VNb3ZlZER1cmF0aW9uID0gMDsKKyAg
ICBtX2Jhc2VFdmVudFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpOb1R5cGU7CiB9CiAKIHZvaWQgRXZl
bnRIYW5kbGVyOjpub2RlV2lsbEJlUmVtb3ZlZChOb2RlKiBub2RlVG9CZVJlbW92ZWQpCkBAIC0y
NDEzLDYgKzI0MTQsMjkgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVUYXBEb3du
KCkKIAogYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVFdmVudChjb25zdCBQbGF0Zm9y
bUdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50KQogeworICAgIE5vZGUqIGV2ZW50VGFyZ2V0ID0g
MDsKKyAgICBpZiAoZ2VzdHVyZUV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJl
U2Nyb2xsRW5kIHx8IGdlc3R1cmVFdmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6R2VzdHVy
ZVNjcm9sbFVwZGF0ZSkKKyAgICAgICAgZXZlbnRUYXJnZXQgPSBtX3Njcm9sbEdlc3R1cmVIYW5k
bGluZ05vZGUuZ2V0KCk7CisKKyAgICBpZiAoIWV2ZW50VGFyZ2V0KSB7CisgICAgICAgIEhpdFRl
c3RSZXN1bHQgcmVzdWx0ID0gaGl0VGVzdFJlc3VsdEF0UG9pbnQoZ2VzdHVyZUV2ZW50LnBvc2l0
aW9uKCksIGZhbHNlLCBmYWxzZSwgRG9udEhpdFRlc3RTY3JvbGxiYXJzLCBIaXRUZXN0UmVxdWVz
dDo6UmVhZE9ubHkgfCBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlKTsKKyAgICAgICAgZXZlbnRUYXJn
ZXQgPSB0YXJnZXROb2RlKHJlc3VsdCk7CisgICAgfQorCisgICAgaWYgKGV2ZW50VGFyZ2V0KSB7
CisgICAgICAgIGJvb2wgZXZlbnRTd2FsbG93ZWQgPSBldmVudFRhcmdldC0+ZGlzcGF0Y2hHZXN0
dXJlRXZlbnQoZ2VzdHVyZUV2ZW50KTsKKworICAgICAgICBpZiAoZ2VzdHVyZUV2ZW50LnR5cGUo
KSA9PSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlU2Nyb2xsQmVnaW4pIHsKKyAgICAgICAgICAgIGlm
IChldmVudFN3YWxsb3dlZCkKKyAgICAgICAgICAgICAgICBtX3Njcm9sbEdlc3R1cmVIYW5kbGlu
Z05vZGUgPSBldmVudFRhcmdldDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBt
X3Njcm9sbEdlc3R1cmVIYW5kbGluZ05vZGUgPSAwOworICAgICAgICB9CisKKyAgICAgICAgaWYg
KGV2ZW50U3dhbGxvd2VkKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCiAgICAg
Ly8gRklYTUU6IEEgbW9yZSBnZW5lcmFsIHNjcm9sbCBzeXN0ZW0gKGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDU5Nikgd2lsbAogICAgIC8vIGVsaW1pbmF0ZSB0aGUg
bmVlZCBmb3IgdGhpcy4KICAgICBUZW1wb3JhcnlDaGFuZ2U8UGxhdGZvcm1FdmVudDo6VHlwZT4g
YmFzZUV2ZW50VHlwZShtX2Jhc2VFdmVudFR5cGUsIGdlc3R1cmVFdmVudC50eXBlKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggMWQyZDM3NWMzOWJiNThiYTUzYTU4ZjU0MzA3
ZWIxNjI1ZWYwN2ZkMS4uZWUyNjk0NDMzZGIxYzI3OTlkNTA0YjJkNDg0ZjA0ZTM1NDcwMzBlMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC00NDYsNiArNDQ2LDExIEBAIHByaXZh
dGU6CiAgICAgVG91Y2hUYXJnZXRNYXAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRUYXJnZXRzOwog
ICAgIGJvb2wgbV90b3VjaFByZXNzZWQ7CiAjZW5kaWYKKworI2lmIEVOQUJMRShHRVNUVVJFX0VW
RU5UUykKKyAgICBSZWZQdHI8Tm9kZT4gbV9zY3JvbGxHZXN0dXJlSGFuZGxpbmdOb2RlOworI2Vu
ZGlmCisKICAgICBkb3VibGUgbV9tYXhNb3VzZU1vdmVkRHVyYXRpb247CiAgICAgUGxhdGZvcm1F
dmVudDo6VHlwZSBtX2Jhc2VFdmVudFR5cGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAppbmRleCAyOTQ4OWUyNWE1
NDRiMTM1NzI0NmQ3YTM5YWE0ZjlkZmE5Y2JmNzVmLi41YmU2MGUxZWExNzMyZjk2YzNmOGY0OTMy
MWM4ZjUyNTVhNjZhMTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcApAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUg
IkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1l
Vmlldy5oIgorI2luY2x1ZGUgIkdlc3R1cmVFdmVudC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29u
dGV4dC5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJIb3N0V2luZG93
LmgiCkBAIC0xODgsNiArMTg5LDggQEAgdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpoYW5k
bGVFdmVudChFdmVudCogZXZlbnQpCiAgICAgICAgIGhhbmRsZUtleWJvYXJkRXZlbnQoc3RhdGlj
X2Nhc3Q8S2V5Ym9hcmRFdmVudCo+KGV2ZW50KSk7CiAgICAgZWxzZSBpZiAoZXZlbnROYW1lcygp
LmlzVG91Y2hFdmVudFR5cGUoZXZlbnQtPnR5cGUoKSkpCiAgICAgICAgIGhhbmRsZVRvdWNoRXZl
bnQoc3RhdGljX2Nhc3Q8VG91Y2hFdmVudCo+KGV2ZW50KSk7CisgICAgZWxzZSBpZiAoZXZlbnRO
YW1lcygpLmlzR2VzdHVyZUV2ZW50VHlwZShldmVudC0+dHlwZSgpKSkKKyAgICAgICAgaGFuZGxl
R2VzdHVyZUV2ZW50KHN0YXRpY19jYXN0PEdlc3R1cmVFdmVudCo+KGV2ZW50KSk7CiAKICAgICAv
LyBGSVhNRTogaXQgd291bGQgYmUgY2xlYW5lciBpZiBXaWRnZXQ6OmhhbmRsZUV2ZW50IHJldHVy
bmVkIHRydWUvZmFsc2UgYW5kCiAgICAgLy8gSFRNTFBsdWdpbkVsZW1lbnQgY2FsbGVkIHNldERl
ZmF1bHRIYW5kbGVkIG9yIGRlZmF1bHRFdmVudEhhbmRsZXIuCkBAIC03MzYsNiArNzM5LDExIEBA
IHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6aGFuZGxlVG91Y2hFdmVudChUb3VjaEV2ZW50
KiBldmVudCkKICAgICAvLyBGSVhNRTogQ2FuIGEgcGx1Z2luIGNoYW5nZSB0aGUgY3Vyc29yIGZy
b20gYSB0b3VjaC1ldmVudCBjYWxsYmFjaz8KIH0KIAordm9pZCBXZWJQbHVnaW5Db250YWluZXJJ
bXBsOjpoYW5kbGVHZXN0dXJlRXZlbnQoR2VzdHVyZUV2ZW50KiBldmVudCkKK3sKKyAgICAvLyBG
SVhNRToKK30KKwogdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpjYWxjdWxhdGVHZW9tZXRy
eShjb25zdCBJbnRSZWN0JiBmcmFtZVJlY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEludFJlY3QmIHdpbmRvd1JlY3QsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludFJlY3QmIGNsaXBSZWN0LApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCmlu
ZGV4IDRjMmFhZWI0YTA0ODQzNDBhZjY2MWE1YWRjYjJjMjM5ODdhOGM0NzYuLjYxZjVjNWI3MTQ2
ZjI5OTU3ZGI4OTE4Zjk4ZGI0NWFmZDk0NTY5NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgKQEAgLTQ1LDYgKzQ1LDcgQEAK
IHN0cnVjdCBOUE9iamVjdDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgR2VzdHVyZUV2
ZW50OwogY2xhc3MgSFRNTFBsdWdJbkVsZW1lbnQ7CiBjbGFzcyBJbnRSZWN0OwogY2xhc3MgS2V5
Ym9hcmRFdmVudDsKQEAgLTE2Nyw2ICsxNjgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgaGFuZGxl
V2hlZWxFdmVudChXZWJDb3JlOjpXaGVlbEV2ZW50Kik7CiAgICAgdm9pZCBoYW5kbGVLZXlib2Fy
ZEV2ZW50KFdlYkNvcmU6OktleWJvYXJkRXZlbnQqKTsKICAgICB2b2lkIGhhbmRsZVRvdWNoRXZl
bnQoV2ViQ29yZTo6VG91Y2hFdmVudCopOworICAgIHZvaWQgaGFuZGxlR2VzdHVyZUV2ZW50KFdl
YkNvcmU6Okdlc3R1cmVFdmVudCopOwogCiAgICAgdm9pZCBjYWxjdWxhdGVHZW9tZXRyeShjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBmcmFtZVJlY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXZWJDb3JlOjpJbnRSZWN0JiB3aW5kb3dSZWN0LAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154449</attachid>
            <date>2012-07-25 14:43:56 -0700</date>
            <delta_ts>2012-07-26 10:44:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92281-20120725174346.patch</filename>
            <type>text/plain</type>
            <size>22140</size>
            <attacher name="Sadrul Habib Chowdhury">sadrul</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGNmZWMzYjVmYzZkMzYw
M2NhNDliOTJmMjY3Y2NmYmNlODkwNzllNi4uYmI2NDhhODE2OWI1YTJiYTBiNWQ3ODlkMWJiMDhh
ZmEzYzNhYjQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTA3LTI1ICBTYWRy
dWwgSGFiaWIgQ2hvd2RodXJ5ICA8c2FkcnVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBQcm9w
YWdhdGUgZ2VzdHVyZSBldmVudHMgdG8gcGx1Z2lucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvcGFnYXRlIGdlc3R1cmUgZXZlbnRzIHRvIHBsdWdp
bnMuIFRoaXMgY2hhbmdlIGRvZXMgbm90IGV4cG9zZSB0aGUgZ2VzdHVyZSBldmVudHMKKyAgICAg
ICAgdG8gSmF2YVNjcmlwdCwgc2luY2UgdGhlcmUgaXMgbm8gc3BlYyBmb3IgdGhhdCBhdCB0aGUg
bW9tZW50LiBFeHBvc2luZyBnZXN0dXJlIGV2ZW50cworICAgICAgICB0byBKYXZhU2NyaXB0IHdp
bGwgYmUgZG9uZSBzZXBhcmF0ZWx5LCBvbmNlIHRoZXJlIGlzIGEgc3BlYyBmb3IgaXQuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6Cisg
ICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnROYW1lczo6aXNHZXN0dXJlRXZlbnRUeXBlKToKKyAgICAgICAgKEV2ZW50
TmFtZXMpOgorICAgICAgICAqIGRvbS9HZXN0dXJlRXZlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2ZW50OjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2ZW50Ojppbml0R2VzdHVyZUV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6Okdlc3R1cmVFdmVudDo6aW50ZXJmYWNlTmFtZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHZXN0dXJlRXZlbnQ6Okdlc3R1cmVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJl
RXZlbnREaXNwYXRjaE1lZGlhdG9yOjpHZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlhdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6Okdlc3R1cmVFdmVudERpc3BhdGNoTWVkaWF0b3I6OmV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6Okdlc3R1cmVFdmVudERpc3BhdGNoTWVkaWF0b3I6OmRpc3BhdGNoRXZl
bnQpOgorICAgICAgICAqIGRvbS9HZXN0dXJlRXZlbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKEdlc3R1cmVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJl
RXZlbnQ6On5HZXN0dXJlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2ZW50OjpH
ZXN0dXJlRXZlbnQpOgorICAgICAgICAoR2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpjcmVhdGUpOgor
ICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Tm9kZTo6ZGlzcGF0Y2hHZXN0dXJlRXZlbnQpOgorICAgICAgICAqIGRvbS9Ob2RlLmg6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE5vZGUpOgorICAgICAgICAqIHBhZ2UvRXZl
bnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6Y2xlYXIpOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlRXZlbnQpOgorICAg
ICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisKIDIwMTItMDctMjQgIEt3YW5nIFl1bCBTZW8g
IDxza3l1bEBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBSZW1vdmUgYW4gaW52YWxpZCBhc3Nl
cnRpb24gaW50cm9kdWNlZCBpbiByMTIzNTM2LiBVbnJldmlld2VkLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwppbmRleCA0M2JlZDMwNDE0MWJiZWVkZTllYzcxYzUzN2Q5ZDM3NDU1MTg2MWI1Li5k
MDAwNTc5NWIwMmQ3Y2NhOTFjNTMwMjQyYTk1MzUyNmZiZTIzNzUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA3LTI1ICBTYWRydWwgSGFiaWIgQ2hv
d2RodXJ5ICA8c2FkcnVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBQcm9wYWdhdGUgZ2VzdHVy
ZSBldmVudHMgdG8gcGx1Z2lucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTkyMjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUHJvcGFnYXRlIGdlc3R1cmUgZXZlbnRzIHRvIHBsdWdpbnMuIFRoZSBhY3R1
YWwgaW1wbGVtZW50YXRpb24gZm9yIHNlbmRpbmcgdGhlIGdlc3R1cmUKKyAgICAgICAgZXZlbnRz
IHRvIHRoZSBwbHVnaW4gaXMgc3R1YmJlZCBvdXQgaW4gdGhpcyBjaGFuZ2VzZXQuCisKKyAgICAg
ICAgKiBzcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBsdWdpbkNvbnRhaW5lckltcGw6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBzcmMvV2ViUGx1
Z2luQ29udGFpbmVySW1wbC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJQbHVn
aW5Db250YWluZXJJbXBsKToKKwogMjAxMi0wNy0yNCAgSmlhbiBMaSAgPGppYW5saUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgQWRkIHBlci1jb250ZXh0IHNldHRpbmcgZm9yIGh0bWwgbm90aWZp
Y2F0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAyOGI2OWUzYTU0YTVmNTJmMTljNTI5NzE3
M2JlMGI3NGViOWYyNWQxLi4xMTRmYmMyMTBjNmI5N2IxNzRiMTY4NjE5ZTkwYTYyZjBhMjk5OTY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTEwMSw2ICsxMTAxLDcgQEAgU0VUKFdlYkNvcmVf
U09VUkNFUwogICAgIGRvbS9FeGNlcHRpb25CYXNlLmNwcAogICAgIGRvbS9FeGNlcHRpb25Db2Rl
UGxhY2Vob2xkZXIuY3BwCiAgICAgZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmNwcAorICAgIGRvbS9H
ZXN0dXJlRXZlbnQuY3BwCiAgICAgZG9tL0ljb25VUkwuY3BwCiAgICAgZG9tL0lkVGFyZ2V0T2Jz
ZXJ2ZXIuY3BwCiAgICAgZG9tL0lkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGM1MTc3YzAyZTRlMmQyM2FmMDc5MjE5NWVmYWNkYWI5
MTVmNjk5OTUuLjk3OWJhOThmMDY5MTY2MWUwODUyYjhhNTlhOTZlNzdiZmY2ODVjM2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTk1OCw2ICsxOTU4LDggQEAgd2ViY29yZV9z
b3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVy
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9kb20vRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggXAorCVNv
dXJjZS9XZWJDb3JlL2RvbS9HZXN0dXJlRXZlbnQuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20v
R2VzdHVyZUV2ZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9JZ25vcmVEZXN0cnVjdGl2ZVdy
aXRlQ291bnRJbmNyZW1lbnRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29k
ZVBsYWNlaG9sZGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKaW5kZXggZWJjM2I1OTdmMzIwYjE3ZWJjNTUyOGYyMGI0NmMyYmMyNzRi
NzA0Ni4uMmUwMDBjZjZhMzA0MGUxZGQwMGQyMDQ4ZGNmYzZmZjdkNGRmMDY3ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCkBAIC00MDgsNiArNDA4LDcgQEAgU09VUkNFUyArPSBcCiAgICAgZG9tL0V4Y2VwdGlvbkJh
c2UuY3BwIFwKICAgICBkb20vRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmNwcCBcCiAgICAgZG9t
L0dlbmVyaWNFdmVudFF1ZXVlLmNwcCBcCisgICAgZG9tL0dlc3R1cmVFdmVudC5jcHAgXAogICAg
IGRvbS9JY29uVVJMLmNwcCBcCiAgICAgZG9tL0lkVGFyZ2V0T2JzZXJ2ZXIuY3BwIFwKICAgICBk
b20vSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5LmNwcCBcCkBAIC0xNTM0LDYgKzE1MzUsNyBAQCBI
RUFERVJTICs9IFwKICAgICBkb20vRXhjZXB0aW9uQmFzZS5oIFwKICAgICBkb20vRXhjZXB0aW9u
Q29kZS5oIFwKICAgICBkb20vRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggXAorICAgIGRv
bS9HZXN0dXJlRXZlbnQuaCBcCiAgICAgZG9tL0lkVGFyZ2V0T2JzZXJ2ZXIuaCBcCiAgICAgZG9t
L0lkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5oIFwKICAgICBkb20vS2V5Ym9hcmRFdmVudC5oIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCAyZjk0ZTU1NzE5NDUxYjhiZjEwNzYyZTk0ZmY0N2FjMTk0Y2Vj
OTQ0Li5iNGJjMjJhYmJlZjhkNzIzNzdmOWU2YjdhOWU4Njk3NTE5ZmEwNTY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCkBAIC01MTkxLDYgKzUxOTEsOCBAQAogICAgICAgICAgICAgJ2RvbS9FeGNlcHRpb25D
b2RlUGxhY2Vob2xkZXIuY3BwJywKICAgICAgICAgICAgICdkb20vR2VuZXJpY0V2ZW50UXVldWUu
Y3BwJywKICAgICAgICAgICAgICdkb20vR2VuZXJpY0V2ZW50UXVldWUuaCcsCisgICAgICAgICAg
ICAnZG9tL0dlc3R1cmVFdmVudC5jcHAnLAorICAgICAgICAgICAgJ2RvbS9HZXN0dXJlRXZlbnQu
aCcsCiAgICAgICAgICAgICAnZG9tL0hhc2hDaGFuZ2VFdmVudC5oJywKICAgICAgICAgICAgICdk
b20vSWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXIuaCcsCiAgICAgICAgICAg
ICAnZG9tL0ljb25VUkwuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dE5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCmluZGV4IDk4M2RmMjll
OGJmMmVjNzAyNzZkNjY4NTQ1MzU5YzA5NGY2ZThkYzMuLjgxOGVkNDAxMGU1MDRkNGMzOGEwOWZl
ZGQxZDhiYjUyNTdlOGFiNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5h
bWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaApAQCAtNzEsNiArNzEs
MTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKGZvY3VzKSBcCiAgICAgbWFjcm8o
Zm9jdXNpbikgXAogICAgIG1hY3JvKGZvY3Vzb3V0KSBcCisgICAgbWFjcm8oZ2VzdHVyZXRhcCkg
XAorICAgIG1hY3JvKGdlc3R1cmV0YXBkb3duKSBcCisgICAgbWFjcm8oZ2VzdHVyZXNjcm9sbHN0
YXJ0KSBcCisgICAgbWFjcm8oZ2VzdHVyZXNjcm9sbGVuZCkgXAorICAgIG1hY3JvKGdlc3R1cmVz
Y3JvbGx1cGRhdGUpIFwKICAgICBtYWNybyhoYXNoY2hhbmdlKSBcCiAgICAgbWFjcm8oaW5wdXQp
IFwKICAgICBtYWNybyhpbnZhbGlkKSBcCkBAIC0yNjAsNiArMjY1LDE1IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgICAgICAgICB8fCBldmVudFR5cGUgPT0gdG91Y2hjYW5jZWxFdmVu
dDsKICAgICAgICAgfQogCisgICAgICAgIGlubGluZSBib29sIGlzR2VzdHVyZUV2ZW50VHlwZShj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSkgY29uc3QKKyAgICAgICAgeworICAgICAgICAg
ICAgcmV0dXJuIGV2ZW50VHlwZSA9PSBnZXN0dXJldGFwRXZlbnQKKyAgICAgICAgICAgICAgICB8
fCBldmVudFR5cGUgPT0gZ2VzdHVyZXRhcGRvd25FdmVudAorICAgICAgICAgICAgICAgIHx8IGV2
ZW50VHlwZSA9PSBnZXN0dXJlc2Nyb2xsc3RhcnRFdmVudAorICAgICAgICAgICAgICAgIHx8IGV2
ZW50VHlwZSA9PSBnZXN0dXJlc2Nyb2xsZW5kRXZlbnQKKyAgICAgICAgICAgICAgICB8fCBldmVu
dFR5cGUgPT0gZ2VzdHVyZXNjcm9sbHVwZGF0ZUV2ZW50OworICAgICAgICB9CisKICAgICAgICAg
VmVjdG9yPEF0b21pY1N0cmluZz4gdG91Y2hFdmVudE5hbWVzKCkgY29uc3QKICAgICAgICAgewog
ICAgICAgICAgICAgVmVjdG9yPEF0b21pY1N0cmluZz4gbmFtZXM7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vR2VzdHVyZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9HZXN0
dXJlRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3MjEzYzgzNDdhZGU3OGE3MTgyZWU1MzVlYzI3OGEx
MjA2OTQ1N2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vR2VzdHVyZUV2
ZW50LmNwcApAQCAtMCwwICsxLDEyMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisKKyNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCisKKyNpbmNsdWRlICJHZXN0dXJlRXZlbnQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPEdlc3R1cmVFdmVudD4gR2Vz
dHVyZUV2ZW50OjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgR2VzdHVyZUV2
ZW50KTsKK30KKworUGFzc1JlZlB0cjxHZXN0dXJlRXZlbnQ+IEdlc3R1cmVFdmVudDo6Y3JlYXRl
KFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LCBjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVu
dCYgZXZlbnQpCit7CisgICAgQXRvbWljU3RyaW5nIGV2ZW50VHlwZTsKKyAgICBzd2l0Y2ggKGV2
ZW50LnR5cGUoKSkgeworICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVNjcm9sbEJlZ2lu
OgorICAgICAgICBldmVudFR5cGUgPSBldmVudE5hbWVzKCkuZ2VzdHVyZXNjcm9sbHN0YXJ0RXZl
bnQ7IGJyZWFrOworICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVNjcm9sbEVuZDoKKyAg
ICAgICAgZXZlbnRUeXBlID0gZXZlbnROYW1lcygpLmdlc3R1cmVzY3JvbGxlbmRFdmVudDsgYnJl
YWs7CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlU2Nyb2xsVXBkYXRlOgorICAgICAg
ICBldmVudFR5cGUgPSBldmVudE5hbWVzKCkuZ2VzdHVyZXNjcm9sbHVwZGF0ZUV2ZW50OyBicmVh
azsKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVUYXA6CisgICAgICAgIGV2ZW50VHlw
ZSA9IGV2ZW50TmFtZXMoKS5nZXN0dXJldGFwRXZlbnQ7IGJyZWFrOworICAgIGNhc2UgUGxhdGZv
cm1FdmVudDo6R2VzdHVyZVRhcERvd246CisgICAgICAgIGV2ZW50VHlwZSA9IGV2ZW50TmFtZXMo
KS5nZXN0dXJldGFwZG93bkV2ZW50OyBicmVhazsKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdl
c3R1cmVEb3VibGVUYXA6CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlVHdvRmluZ2Vy
VGFwOgorICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZUxvbmdQcmVzczoKKyAgICBjYXNl
IFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVQaW5jaEJlZ2luOgorICAgIGNhc2UgUGxhdGZvcm1FdmVu
dDo6R2VzdHVyZVBpbmNoRW5kOgorICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVBpbmNo
VXBkYXRlOgorICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IH0KKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdlc3R1cmVFdmVudChldmVudFR5cGUsIHZpZXcs
IGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCkueCgpLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLnkoKSwg
ZXZlbnQucG9zaXRpb24oKS54KCksIGV2ZW50LnBvc2l0aW9uKCkueSgpLCBldmVudC5jdHJsS2V5
KCksIGV2ZW50LmFsdEtleSgpLCBldmVudC5zaGlmdEtleSgpLCBldmVudC5tZXRhS2V5KCksIGV2
ZW50LmRlbHRhWCgpLCBldmVudC5kZWx0YVkoKSkpOworfQorCit2b2lkIEdlc3R1cmVFdmVudDo6
aW5pdEdlc3R1cmVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIFBhc3NSZWZQdHI8QWJz
dHJhY3RWaWV3PiB2aWV3LCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBjbGllbnRYLCBp
bnQgY2xpZW50WSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9v
bCBtZXRhS2V5LCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSkKK3sKKyAgICBpZiAoZGlzcGF0
Y2hlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpbml0VUlFdmVudCh0eXBlLCB0cnVlLCB0
cnVlLCB2aWV3LCAwKTsKKyAgICBtX3NjcmVlbkxvY2F0aW9uID0gSW50UG9pbnQoc2NyZWVuWCwg
c2NyZWVuWSk7CisgICAgbV9jdHJsS2V5ID0gY3RybEtleTsKKyAgICBtX2FsdEtleSA9IGFsdEtl
eTsKKyAgICBtX3NoaWZ0S2V5ID0gc2hpZnRLZXk7CisgICAgbV9tZXRhS2V5ID0gbWV0YUtleTsK
KworICAgIG1fZGVsdGFYID0gZGVsdGFYOworICAgIG1fZGVsdGFZID0gZGVsdGFZOworCisgICAg
aW5pdENvb3JkaW5hdGVzKEludFBvaW50KGNsaWVudFgsIGNsaWVudFkpKTsKK30KKworY29uc3Qg
QXRvbWljU3RyaW5nJiBHZXN0dXJlRXZlbnQ6OmludGVyZmFjZU5hbWUoKSBjb25zdAoreworICAg
IHN0YXRpYyBBdG9taWNTdHJpbmcgaW50ZXJmYWNlKCJUQkRJbnRlcmZhY2UiKTsKKyAgICByZXR1
cm4gaW50ZXJmYWNlOworfQorCitHZXN0dXJlRXZlbnQ6Okdlc3R1cmVFdmVudChjb25zdCBBdG9t
aWNTdHJpbmcmIHR5cGUsIFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LCBpbnQgc2NyZWVu
WCwgaW50IHNjcmVlblksIGludCBjbGllbnRYLCBpbnQgY2xpZW50WSwgYm9vbCBjdHJsS2V5LCBi
b29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LCBmbG9hdCBkZWx0YVgsIGZs
b2F0IGRlbHRhWSkKKyAgICA6IE1vdXNlUmVsYXRlZEV2ZW50KHR5cGUsIHRydWUsIHRydWUsIHZp
ZXcsIDAsIEludFBvaW50KHNjcmVlblgsIHNjcmVlblkpLCBJbnRQb2ludChjbGllbnRYLCBjbGll
bnRZKSwKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgICAgICAgICAgICAgICAgICAgICAg
SW50UG9pbnQoMCwgMCksCisjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgICAgIGN0cmxLZXks
IGFsdEtleSwgc2hpZnRLZXksIG1ldGFLZXkpCisgICAgLCBtX2RlbHRhWChkZWx0YVgpCisgICAg
LCBtX2RlbHRhWShkZWx0YVkpCit7Cit9CisKK0dlc3R1cmVFdmVudERpc3BhdGNoTWVkaWF0b3I6
Okdlc3R1cmVFdmVudERpc3BhdGNoTWVkaWF0b3IoUGFzc1JlZlB0cjxHZXN0dXJlRXZlbnQ+IGdl
c3R1cmVFdmVudCkKKyAgICA6IEV2ZW50RGlzcGF0Y2hNZWRpYXRvcihnZXN0dXJlRXZlbnQpCit7
Cit9CisKK0dlc3R1cmVFdmVudCogR2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6ZXZlbnQo
KSBjb25zdAoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxHZXN0dXJlRXZlbnQqPihFdmVudERp
c3BhdGNoTWVkaWF0b3I6OmV2ZW50KCkpOworfQorCitib29sIEdlc3R1cmVFdmVudERpc3BhdGNo
TWVkaWF0b3I6OmRpc3BhdGNoRXZlbnQoRXZlbnREaXNwYXRjaGVyKiBkaXNwYXRjaGVyKSBjb25z
dAoreworICAgIGlmIChkaXNwYXRjaGVyLT5ub2RlKCktPmRpc2FibGVkKCkpCisgICAgICAgIHJl
dHVybiB0cnVlOworCisgICAgZGlzcGF0Y2hlci0+ZGlzcGF0Y2hFdmVudChldmVudCgpKTsKKyAg
ICBBU1NFUlQoIWV2ZW50KCktPmRlZmF1bHRQcmV2ZW50ZWQoKSk7CisgICAgcmV0dXJuIGV2ZW50
KCktPmRlZmF1bHRIYW5kbGVkKCkgfHwgZXZlbnQoKS0+ZGVmYXVsdFByZXZlbnRlZCgpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoR0VTVFVSRV9FVkVO
VFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vR2VzdHVyZUV2ZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vR2VzdHVyZUV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzFmMWYyYjM5MjhmZmU5
MmFiZTVkMjViZGMwOThjNjYxNjMwOTI3OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9HZXN0dXJlRXZlbnQuaApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgR2VzdHVyZUV2ZW50X2gKKyNkZWZpbmUgR2VzdHVyZUV2ZW50X2gKKworI2lmIEVOQUJMRShH
RVNUVVJFX0VWRU5UUykKKworI2luY2x1ZGUgIkV2ZW50RGlzcGF0Y2hlci5oIgorI2luY2x1ZGUg
IkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5o
IgorI2luY2x1ZGUgIk1vdXNlUmVsYXRlZEV2ZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1FdmVu
dC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtR2VzdHVyZUV2ZW50LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgR2VzdHVyZUV2ZW50IDogcHVibGljIE1vdXNlUmVsYXRlZEV2ZW50IHsK
K3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5HZXN0dXJlRXZlbnQoKSB7IH0KKworICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEdlc3R1cmVFdmVudD4gY3JlYXRlKCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
R2VzdHVyZUV2ZW50PiBjcmVhdGUoUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+LCBjb25zdCBQbGF0
Zm9ybUdlc3R1cmVFdmVudCYpOworCisgICAgdm9pZCBpbml0R2VzdHVyZUV2ZW50KGNvbnN0IEF0
b21pY1N0cmluZyYgdHlwZSwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+LCBpbnQgc2NyZWVuWCwg
aW50IHNjcmVlblksIGludCBjbGllbnRYLCBpbnQgY2xpZW50WSwgYm9vbCBjdHJsS2V5LCBib29s
IGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LCBmbG9hdCBkZWx0YVgsIGZsb2F0
IGRlbHRhWSk7CisKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgaW50ZXJmYWNlTmFt
ZSgpIGNvbnN0OworCitwcml2YXRlOgorICAgIEdlc3R1cmVFdmVudCgpIHsgfQorICAgIEdlc3R1
cmVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3
PiwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgY2xpZW50WCwgaW50IGNsaWVudFksIGJv
b2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgZmxv
YXQgZGVsdGFYLCBmbG9hdCBkZWx0YVkpOworCisgICAgZmxvYXQgbV9kZWx0YVg7CisgICAgZmxv
YXQgbV9kZWx0YVk7Cit9OworCitjbGFzcyBHZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlhdG9yIDog
cHVibGljIEV2ZW50RGlzcGF0Y2hNZWRpYXRvciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8R2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcj4gY3JlYXRlKFBhc3NSZWZQdHI8R2Vz
dHVyZUV2ZW50PiBnZXN0dXJlRXZlbnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEdlc3R1cmVFdmVudERpc3BhdGNoTWVkaWF0b3IoZ2VzdHVyZUV2ZW50KSk7CisgICAgfQor
Citwcml2YXRlOgorICAgIGV4cGxpY2l0IEdlc3R1cmVFdmVudERpc3BhdGNoTWVkaWF0b3IoUGFz
c1JlZlB0cjxHZXN0dXJlRXZlbnQ+KTsKKworICAgIEdlc3R1cmVFdmVudCogZXZlbnQoKSBjb25z
dDsKKworICAgIHZpcnR1YWwgYm9vbCBkaXNwYXRjaEV2ZW50KEV2ZW50RGlzcGF0Y2hlciopIGNv
bnN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEdF
U1RVUkVfRVZFTlRTKQorCisjZW5kaWYgLy8gR2VzdHVyZUV2ZW50X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApp
bmRleCAyZTNmNDEzNDI0ZGQ2YjM1MDQzZWRiNjkwYzFmMGQ5MTBjZWU2YmY4Li5mN2UzM2VmZDIy
MzI1OGY1OTQwNDVjZTI5YzVlN2M0Yjc2Yzk1NWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0xMDks
NiArMTA5LDEwIEBACiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAorI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKKyNp
bmNsdWRlICJHZXN0dXJlRXZlbnQuaCIKKyNlbmRpZgorCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikK
ICNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjZW5kaWYKQEAgLTI2MzMsNiArMjYz
NywxMyBAQCBib29sIE5vZGU6OmRpc3BhdGNoTW91c2VFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmIGV2ZW50LCBjb25zdCBBdG9taWNTdHJpbgogICAgIHJldHVybiBFdmVudERpc3BhdGNo
ZXI6OmRpc3BhdGNoRXZlbnQodGhpcywgTW91c2VFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0
ZShNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnRUeXBlLCBkb2N1bWVudCgpLT5kZWZhdWx0Vmlldygp
LCBldmVudCwgZGV0YWlsLCByZWxhdGVkVGFyZ2V0KSkpOwogfQogCisjaWYgRU5BQkxFKEdFU1RV
UkVfRVZFTlRTKQorYm9vbCBOb2RlOjpkaXNwYXRjaEdlc3R1cmVFdmVudChjb25zdCBQbGF0Zm9y
bUdlc3R1cmVFdmVudCYgZXZlbnQpCit7CisgICAgcmV0dXJuIEV2ZW50RGlzcGF0Y2hlcjo6ZGlz
cGF0Y2hFdmVudCh0aGlzLCBHZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpjcmVhdGUoR2Vz
dHVyZUV2ZW50OjpjcmVhdGUoZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwgZXZlbnQpKSk7Cit9
CisjZW5kaWYKKwogdm9pZCBOb2RlOjpkaXNwYXRjaFNpbXVsYXRlZENsaWNrKFBhc3NSZWZQdHI8
RXZlbnQ+IGV2ZW50LCBib29sIHNlbmRNb3VzZUV2ZW50cywgYm9vbCBzaG93UHJlc3NlZExvb2sp
CiB7CiAgICAgRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaFNpbXVsYXRlZENsaWNrKHRoaXMsIGV2
ZW50LCBzZW5kTW91c2VFdmVudHMsIHNob3dQcmVzc2VkTG9vayk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCA4
NmE3ZDM5ZWQ1OGJkYmM5ZDQyZjI0MWU0NzZjOWE2YjMxNmJkNmQwLi5hMzIwNGJhMWE3YTNlODI2
YjQ1OTIzZjZhMjI1OTg1MzVlOGI0MDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTg4LDYgKzg4LDEwIEBA
IGNsYXNzIFNoYWRvd1Jvb3Q7CiBjbGFzcyBUYWdOb2RlTGlzdDsKIGNsYXNzIFRyZWVTY29wZTsK
IAorI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKK2NsYXNzIFBsYXRmb3JtR2VzdHVyZUV2ZW50
OworI2VuZGlmCisKICNpZiBFTkFCTEUoTUlDUk9EQVRBKQogY2xhc3MgSFRNTFByb3BlcnRpZXND
b2xsZWN0aW9uOwogY2xhc3MgUHJvcGVydHlOb2RlTGlzdDsKQEAgLTYwOSw2ICs2MTMsOSBAQCBw
dWJsaWM6CiAgICAgYm9vbCBkaXNwYXRjaEtleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRF
dmVudCYpOwogICAgIGJvb2wgZGlzcGF0Y2hXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYpOwogICAgIGJvb2wgZGlzcGF0Y2hNb3VzZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VF
dmVudCYsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBpbnQgY2xpY2tDb3VudCA9IDAs
IE5vZGUqIHJlbGF0ZWRUYXJnZXQgPSAwKTsKKyNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCisg
ICAgYm9vbCBkaXNwYXRjaEdlc3R1cmVFdmVudChjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYp
OworI2VuZGlmCiAgICAgdm9pZCBkaXNwYXRjaFNpbXVsYXRlZENsaWNrKFBhc3NSZWZQdHI8RXZl
bnQ+IHVuZGVybHlpbmdFdmVudCwgYm9vbCBzZW5kTW91c2VFdmVudHMgPSBmYWxzZSwgYm9vbCBz
aG93UHJlc3NlZExvb2sgPSB0cnVlKTsKICAgICBib29sIGRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50
KGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwCmluZGV4IDhlZWEzZmE2NThiNTlmY2JjZGNjZjkyMTNiYzc4ZTI4YWE2NDc3N2IuLjA2MWQ4
MzMwZjU2N2Y5YmI0MDcyNjFlOWZiYTQ5ZjIxNjJjMjRjYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKQEAgLTM2NywxMCArMzY3LDExIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpj
bGVhcigpCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBtX29yaWdpbmF0aW5nVG91Y2hQ
b2ludFRhcmdldHMuY2xlYXIoKTsKICNlbmRpZgotICAgIG1fbWF4TW91c2VNb3ZlZER1cmF0aW9u
ID0gMDsKICNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCi0gICAgbV9iYXNlRXZlbnRUeXBlID0g
UGxhdGZvcm1FdmVudDo6Tm9UeXBlOworICAgIG1fc2Nyb2xsR2VzdHVyZUhhbmRsaW5nTm9kZSA9
IDA7CiAjZW5kaWYKKyAgICBtX21heE1vdXNlTW92ZWREdXJhdGlvbiA9IDA7CisgICAgbV9iYXNl
RXZlbnRUeXBlID0gUGxhdGZvcm1FdmVudDo6Tm9UeXBlOwogfQogCiB2b2lkIEV2ZW50SGFuZGxl
cjo6bm9kZVdpbGxCZVJlbW92ZWQoTm9kZSogbm9kZVRvQmVSZW1vdmVkKQpAQCAtMjQxMyw2ICsy
NDE0LDI5IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlVGFwRG93bigpCiAKIGJv
b2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgUGxhdGZvcm1HZXN0dXJl
RXZlbnQmIGdlc3R1cmVFdmVudCkKIHsKKyAgICBOb2RlKiBldmVudFRhcmdldCA9IDA7CisgICAg
aWYgKGdlc3R1cmVFdmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6R2VzdHVyZVNjcm9sbEVu
ZCB8fCBnZXN0dXJlRXZlbnQudHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVTY3JvbGxV
cGRhdGUpCisgICAgICAgIGV2ZW50VGFyZ2V0ID0gbV9zY3JvbGxHZXN0dXJlSGFuZGxpbmdOb2Rl
LmdldCgpOworCisgICAgaWYgKCFldmVudFRhcmdldCkgeworICAgICAgICBIaXRUZXN0UmVzdWx0
IHJlc3VsdCA9IGhpdFRlc3RSZXN1bHRBdFBvaW50KGdlc3R1cmVFdmVudC5wb3NpdGlvbigpLCBm
YWxzZSwgZmFsc2UsIERvbnRIaXRUZXN0U2Nyb2xsYmFycywgSGl0VGVzdFJlcXVlc3Q6OlJlYWRP
bmx5IHwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSk7CisgICAgICAgIGV2ZW50VGFyZ2V0ID0gdGFy
Z2V0Tm9kZShyZXN1bHQpOworICAgIH0KKworICAgIGlmIChldmVudFRhcmdldCkgeworICAgICAg
ICBib29sIGV2ZW50U3dhbGxvd2VkID0gZXZlbnRUYXJnZXQtPmRpc3BhdGNoR2VzdHVyZUV2ZW50
KGdlc3R1cmVFdmVudCk7CisKKyAgICAgICAgaWYgKGdlc3R1cmVFdmVudC50eXBlKCkgPT0gUGxh
dGZvcm1FdmVudDo6R2VzdHVyZVNjcm9sbEJlZ2luKSB7CisgICAgICAgICAgICBpZiAoZXZlbnRT
d2FsbG93ZWQpCisgICAgICAgICAgICAgICAgbV9zY3JvbGxHZXN0dXJlSGFuZGxpbmdOb2RlID0g
ZXZlbnRUYXJnZXQ7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbV9zY3JvbGxH
ZXN0dXJlSGFuZGxpbmdOb2RlID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChldmVudFN3
YWxsb3dlZCkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwogICAgIC8vIEZJWE1F
OiBBIG1vcmUgZ2VuZXJhbCBzY3JvbGwgc3lzdGVtIChodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODA1OTYpIHdpbGwKICAgICAvLyBlbGltaW5hdGUgdGhlIG5lZWQgZm9y
IHRoaXMuCiAgICAgVGVtcG9yYXJ5Q2hhbmdlPFBsYXRmb3JtRXZlbnQ6OlR5cGU+IGJhc2VFdmVu
dFR5cGUobV9iYXNlRXZlbnRUeXBlLCBnZXN0dXJlRXZlbnQudHlwZSgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5oCmluZGV4IDFkMmQzNzVjMzliYjU4YmE1M2E1OGY1NDMwN2ViMTYyNWVm
MDdmZDEuLmVlMjY5NDQzM2RiMWMyNzk5ZDUwNGIyZDQ4NGYwNGUzNTQ3MDMwZTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtNDQ2LDYgKzQ0NiwxMSBAQCBwcml2YXRlOgogICAg
IFRvdWNoVGFyZ2V0TWFwIG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50VGFyZ2V0czsKICAgICBib29s
IG1fdG91Y2hQcmVzc2VkOwogI2VuZGlmCisKKyNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCisg
ICAgUmVmUHRyPE5vZGU+IG1fc2Nyb2xsR2VzdHVyZUhhbmRsaW5nTm9kZTsKKyNlbmRpZgorCiAg
ICAgZG91YmxlIG1fbWF4TW91c2VNb3ZlZER1cmF0aW9uOwogICAgIFBsYXRmb3JtRXZlbnQ6OlR5
cGUgbV9iYXNlRXZlbnRUeXBlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAKaW5kZXggMjk0ODllMjVhNTQ0YjEzNTcy
NDZkN2EzOWFhNGY5ZGZhOWNiZjc1Zi4uNWJlNjBlMWVhMTczMmY5NmMzZjhmNDkzMjFjOGY1MjU1
YTY2YTEyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2lu
Q29udGFpbmVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1
Z2luQ29udGFpbmVySW1wbC5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIK
KyNpbmNsdWRlICJHZXN0dXJlRXZlbnQuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIK
ICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgpAQCAt
MTg4LDYgKzE4OSw4IEBAIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6aGFuZGxlRXZlbnQo
RXZlbnQqIGV2ZW50KQogICAgICAgICBoYW5kbGVLZXlib2FyZEV2ZW50KHN0YXRpY19jYXN0PEtl
eWJvYXJkRXZlbnQqPihldmVudCkpOwogICAgIGVsc2UgaWYgKGV2ZW50TmFtZXMoKS5pc1RvdWNo
RXZlbnRUeXBlKGV2ZW50LT50eXBlKCkpKQogICAgICAgICBoYW5kbGVUb3VjaEV2ZW50KHN0YXRp
Y19jYXN0PFRvdWNoRXZlbnQqPihldmVudCkpOworICAgIGVsc2UgaWYgKGV2ZW50TmFtZXMoKS5p
c0dlc3R1cmVFdmVudFR5cGUoZXZlbnQtPnR5cGUoKSkpCisgICAgICAgIGhhbmRsZUdlc3R1cmVF
dmVudChzdGF0aWNfY2FzdDxHZXN0dXJlRXZlbnQqPihldmVudCkpOwogCiAgICAgLy8gRklYTUU6
IGl0IHdvdWxkIGJlIGNsZWFuZXIgaWYgV2lkZ2V0OjpoYW5kbGVFdmVudCByZXR1cm5lZCB0cnVl
L2ZhbHNlIGFuZAogICAgIC8vIEhUTUxQbHVnaW5FbGVtZW50IGNhbGxlZCBzZXREZWZhdWx0SGFu
ZGxlZCBvciBkZWZhdWx0RXZlbnRIYW5kbGVyLgpAQCAtNzM2LDYgKzczOSwxMSBAQCB2b2lkIFdl
YlBsdWdpbkNvbnRhaW5lckltcGw6OmhhbmRsZVRvdWNoRXZlbnQoVG91Y2hFdmVudCogZXZlbnQp
CiAgICAgLy8gRklYTUU6IENhbiBhIHBsdWdpbiBjaGFuZ2UgdGhlIGN1cnNvciBmcm9tIGEgdG91
Y2gtZXZlbnQgY2FsbGJhY2s/CiB9CiAKK3ZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6aGFu
ZGxlR2VzdHVyZUV2ZW50KEdlc3R1cmVFdmVudCogZXZlbnQpCit7CisgICAgLy8gRklYTUU6Cit9
CisKIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6Y2FsY3VsYXRlR2VvbWV0cnkoY29uc3Qg
SW50UmVjdCYgZnJhbWVSZWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBJbnRSZWN0JiB3aW5kb3dSZWN0LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBJbnRSZWN0JiBjbGlwUmVjdCwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaAppbmRleCA0YzJh
YWViNGEwNDg0MzQwYWY2NjFhNWFkY2IyYzIzOTg3YThjNDc2Li42MWY1YzViNzE0NmYyOTk1N2Ri
ODkxOGY5OGRiNDVhZmQ5NDU2OTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCkBAIC00NSw2ICs0NSw3IEBACiBzdHJ1Y3Qg
TlBPYmplY3Q7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEdlc3R1cmVFdmVudDsKIGNs
YXNzIEhUTUxQbHVnSW5FbGVtZW50OwogY2xhc3MgSW50UmVjdDsKIGNsYXNzIEtleWJvYXJkRXZl
bnQ7CkBAIC0xNjcsNiArMTY4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGhhbmRsZVdoZWVsRXZl
bnQoV2ViQ29yZTo6V2hlZWxFdmVudCopOwogICAgIHZvaWQgaGFuZGxlS2V5Ym9hcmRFdmVudChX
ZWJDb3JlOjpLZXlib2FyZEV2ZW50Kik7CiAgICAgdm9pZCBoYW5kbGVUb3VjaEV2ZW50KFdlYkNv
cmU6OlRvdWNoRXZlbnQqKTsKKyAgICB2b2lkIGhhbmRsZUdlc3R1cmVFdmVudChXZWJDb3JlOjpH
ZXN0dXJlRXZlbnQqKTsKIAogICAgIHZvaWQgY2FsY3VsYXRlR2VvbWV0cnkoY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgZnJhbWVSZWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViQ29y
ZTo6SW50UmVjdCYgd2luZG93UmVjdCwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154686</attachid>
            <date>2012-07-26 10:44:35 -0700</date>
            <delta_ts>2012-07-26 12:31:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92281-20120726134423.patch</filename>
            <type>text/plain</type>
            <size>33591</size>
            <attacher name="Sadrul Habib Chowdhury">sadrul</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNjU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTNhNzVlZGZlN2ZlY2Fk
Y2FjOGU2YTYzOGZiYjEzMTQ5NjdkOWQzOC4uNmViYjQyMWMwOTQ4ODJiMDMwNDYyZTEyMDllYzUx
YmY1NTUwZDA0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTA3LTI2ICBTYWRy
dWwgSGFiaWIgQ2hvd2RodXJ5ICA8c2FkcnVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBQcm9w
YWdhdGUgZ2VzdHVyZSBldmVudHMgdG8gcGx1Z2lucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvcGFnYXRlIGdlc3R1cmUgZXZlbnRzIHRvIHBsdWdp
bnMuIFRoaXMgY2hhbmdlIGRvZXMgbm90IGV4cG9zZSB0aGUgZ2VzdHVyZSBldmVudHMKKyAgICAg
ICAgdG8gSmF2YVNjcmlwdCwgc2luY2UgdGhlcmUgaXMgbm8gc3BlYyBmb3IgdGhhdCBhdCB0aGUg
bW9tZW50LiBFeHBvc2luZyBnZXN0dXJlIGV2ZW50cworICAgICAgICB0byBKYXZhU2NyaXB0IHdp
bGwgYmUgZG9uZSBzZXBhcmF0ZWx5LCBvbmNlIHRoZXJlIGlzIGEgc3BlYyBmb3IgaXQuCisKKyAg
ICAgICAgVGVzdDogcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy9nZXN0dXJlLWV2ZW50cy5odG1s
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0
LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAg
ICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50TmFtZXM6OmlzR2VzdHVyZUV2ZW50VHlwZSk6CisgICAgICAgIChFdmVudE5h
bWVzKToKKyAgICAgICAgKiBkb20vR2VzdHVyZUV2ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okdlc3R1cmVFdmVudDo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okdlc3R1cmVFdmVudDo6aW5pdEdlc3R1cmVFdmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpHZXN0dXJlRXZlbnQ6OmludGVyZmFjZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6
R2VzdHVyZUV2ZW50OjpHZXN0dXJlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2
ZW50RGlzcGF0Y2hNZWRpYXRvcjo6R2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcik6CisgICAg
ICAgIChXZWJDb3JlOjpHZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpldmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpHZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpkaXNwYXRjaEV2ZW50
KToKKyAgICAgICAgKiBkb20vR2VzdHVyZUV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChHZXN0dXJlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2
ZW50Ojp+R2VzdHVyZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okdlc3R1cmVFdmVudDo6ZGVs
dGFYKToKKyAgICAgICAgKFdlYkNvcmU6Okdlc3R1cmVFdmVudDo6ZGVsdGFZKToKKyAgICAgICAg
KFdlYkNvcmU6Okdlc3R1cmVFdmVudDo6R2VzdHVyZUV2ZW50KToKKyAgICAgICAgKEdlc3R1cmVF
dmVudERpc3BhdGNoTWVkaWF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2ZW50RGlz
cGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmRpc3BhdGNoR2VzdHVyZUV2ZW50
KToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChO
b2RlKToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudEhhbmRsZXI6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6
aGFuZGxlR2VzdHVyZUV2ZW50KToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5oOgorCiAy
MDEyLTA3LTI0ICBTaGF3biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFtjaHJvbWl1bV0gUmVmYWN0b3IgQ0NMYXllclRyZWVIb3N0Q29tbW9uOiBtb3ZlIHJvb3Qg
bGF5ZXIgc3BlY2lhbCBjYXNlIGluaXRpYWxpemF0aW9uIGludG8gaW50ZXJuYWwgY29kZS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMjdiNTUyYmU0ZDgxYTJiM2E2Y2ZiYjBkYmMxNjYw
NTNhOGRkNDYzZS4uZjZmZDM0YTQyMGZhYWRhNmMwMWU3MTM5MTdmOGEyY2ZlZjI0M2EzZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0wNy0yNiAgU2Fk
cnVsIEhhYmliIENob3dkaHVyeSAgPHNhZHJ1bEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHJv
cGFnYXRlIGdlc3R1cmUgZXZlbnRzIHRvIHBsdWdpbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjI4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFByb3BhZ2F0ZSBnZXN0dXJlIGV2ZW50cyB0byBwbHVn
aW5zLgorCisgICAgICAgICogc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcDoKKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlc3R1cmVFdmVudEJ1aWxkZXI6Oldl
Ykdlc3R1cmVFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHNyYy9XZWJJbnB1dEV2ZW50Q29udmVy
c2lvbi5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAo
V2ViR2VzdHVyZUV2ZW50QnVpbGRlcik6CisgICAgICAgICogc3JjL1dlYlBsdWdpbkNvbnRhaW5l
ckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5Db250YWluZXJJbXBsOjpoYW5k
bGVFdmVudCk6CisgICAgICAgICogc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViUGx1Z2luQ29udGFpbmVySW1wbCk6CisKIDIwMTIt
MDctMjQgIFNoYXduIFNpbmdoICA8c2hhd25zaW5naEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
W2Nocm9taXVtXSBSZWZhY3RvciBDQ0xheWVyVHJlZUhvc3RDb21tb246IG1vdmUgcm9vdCBsYXll
ciBzcGVjaWFsIGNhc2UgaW5pdGlhbGl6YXRpb24gaW50byBpbnRlcm5hbCBjb2RlLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAppbmRleCAyOGI2OWUzYTU0YTVmNTJmMTljNTI5NzE3M2JlMGI3NGViOWYyNWQx
Li4xMTRmYmMyMTBjNmI5N2IxNzRiMTY4NjE5ZTkwYTYyZjBhMjk5OTY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dApAQCAtMTEwMSw2ICsxMTAxLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGRv
bS9FeGNlcHRpb25CYXNlLmNwcAogICAgIGRvbS9FeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuY3Bw
CiAgICAgZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmNwcAorICAgIGRvbS9HZXN0dXJlRXZlbnQuY3Bw
CiAgICAgZG9tL0ljb25VUkwuY3BwCiAgICAgZG9tL0lkVGFyZ2V0T2JzZXJ2ZXIuY3BwCiAgICAg
ZG9tL0lkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCmluZGV4IGRiNWY4NjQ0YmQ5ZjYwY2Y2MDc5ZWZkOTBlMDM1YjAyNDI0NGZiODcuLjc4YmVk
MzcyOTM2ZTExMGU5NDg1NTNlYWFkODNhMDdiZWFmMTgyZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQpAQCAtMTk1OCw2ICsxOTU4LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9kb20vRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggXAorCVNvdXJjZS9XZWJDb3JlL2Rv
bS9HZXN0dXJlRXZlbnQuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vR2VzdHVyZUV2ZW50Lmgg
XAogCVNvdXJjZS9XZWJDb3JlL2RvbS9JZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1l
bnRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgg
XAogCVNvdXJjZS9XZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5jcHAgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
aW5kZXggZWJjM2I1OTdmMzIwYjE3ZWJjNTUyOGYyMGI0NmMyYmMyNzRiNzA0Ni4uMmUwMDBjZjZh
MzA0MGUxZGQwMGQyMDQ4ZGNmYzZmZjdkNGRmMDY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC00MDgsNiAr
NDA4LDcgQEAgU09VUkNFUyArPSBcCiAgICAgZG9tL0V4Y2VwdGlvbkJhc2UuY3BwIFwKICAgICBk
b20vRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmNwcCBcCiAgICAgZG9tL0dlbmVyaWNFdmVudFF1
ZXVlLmNwcCBcCisgICAgZG9tL0dlc3R1cmVFdmVudC5jcHAgXAogICAgIGRvbS9JY29uVVJMLmNw
cCBcCiAgICAgZG9tL0lkVGFyZ2V0T2JzZXJ2ZXIuY3BwIFwKICAgICBkb20vSWRUYXJnZXRPYnNl
cnZlclJlZ2lzdHJ5LmNwcCBcCkBAIC0xNTM0LDYgKzE1MzUsNyBAQCBIRUFERVJTICs9IFwKICAg
ICBkb20vRXhjZXB0aW9uQmFzZS5oIFwKICAgICBkb20vRXhjZXB0aW9uQ29kZS5oIFwKICAgICBk
b20vRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggXAorICAgIGRvbS9HZXN0dXJlRXZlbnQu
aCBcCiAgICAgZG9tL0lkVGFyZ2V0T2JzZXJ2ZXIuaCBcCiAgICAgZG9tL0lkVGFyZ2V0T2JzZXJ2
ZXJSZWdpc3RyeS5oIFwKICAgICBkb20vS2V5Ym9hcmRFdmVudC5oIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpp
bmRleCBjOTFjNDE1MTcwODlhNWRlMDUyYTBkNjNmMTUwZjBiMzMxMTYxZmUwLi5jYTdhMGJlODMy
NDJmYzVkZjI4NmRjMTBjYjc0Yjk1MGQ1NTk3ZDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01MTkz
LDYgKzUxOTMsOCBAQAogICAgICAgICAgICAgJ2RvbS9FeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIu
Y3BwJywKICAgICAgICAgICAgICdkb20vR2VuZXJpY0V2ZW50UXVldWUuY3BwJywKICAgICAgICAg
ICAgICdkb20vR2VuZXJpY0V2ZW50UXVldWUuaCcsCisgICAgICAgICAgICAnZG9tL0dlc3R1cmVF
dmVudC5jcHAnLAorICAgICAgICAgICAgJ2RvbS9HZXN0dXJlRXZlbnQuaCcsCiAgICAgICAgICAg
ICAnZG9tL0hhc2hDaGFuZ2VFdmVudC5oJywKICAgICAgICAgICAgICdkb20vSWdub3JlRGVzdHJ1
Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXIuaCcsCiAgICAgICAgICAgICAnZG9tL0ljb25VUkwu
Y3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCmluZGV4IGIwZWZiZTc2NTA4YzhlYjI1NGRmMjk2
MmJiZTg5ZGM2MjcxNzE0MmQuLjg5OGRhOTYyMjNmZDA3MWFkMDBiZDFhOTI1NzRlMmFjMmZiNzVl
NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaApAQCAtNzEsNiArNzEsMTEgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIG1hY3JvKGZvY3VzKSBcCiAgICAgbWFjcm8oZm9jdXNpbikgXAogICAg
IG1hY3JvKGZvY3Vzb3V0KSBcCisgICAgbWFjcm8oZ2VzdHVyZXRhcCkgXAorICAgIG1hY3JvKGdl
c3R1cmV0YXBkb3duKSBcCisgICAgbWFjcm8oZ2VzdHVyZXNjcm9sbHN0YXJ0KSBcCisgICAgbWFj
cm8oZ2VzdHVyZXNjcm9sbGVuZCkgXAorICAgIG1hY3JvKGdlc3R1cmVzY3JvbGx1cGRhdGUpIFwK
ICAgICBtYWNybyhoYXNoY2hhbmdlKSBcCiAgICAgbWFjcm8oaW5wdXQpIFwKICAgICBtYWNybyhp
bnZhbGlkKSBcCkBAIC0yNjIsNiArMjY3LDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgICAgICAgICB8fCBldmVudFR5cGUgPT0gdG91Y2hjYW5jZWxFdmVudDsKICAgICAgICAgfQog
CisgICAgICAgIGlubGluZSBib29sIGlzR2VzdHVyZUV2ZW50VHlwZShjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGV2ZW50
VHlwZSA9PSBnZXN0dXJldGFwRXZlbnQKKyAgICAgICAgICAgICAgICB8fCBldmVudFR5cGUgPT0g
Z2VzdHVyZXRhcGRvd25FdmVudAorICAgICAgICAgICAgICAgIHx8IGV2ZW50VHlwZSA9PSBnZXN0
dXJlc2Nyb2xsc3RhcnRFdmVudAorICAgICAgICAgICAgICAgIHx8IGV2ZW50VHlwZSA9PSBnZXN0
dXJlc2Nyb2xsZW5kRXZlbnQKKyAgICAgICAgICAgICAgICB8fCBldmVudFR5cGUgPT0gZ2VzdHVy
ZXNjcm9sbHVwZGF0ZUV2ZW50OworICAgICAgICB9CisKICAgICAgICAgVmVjdG9yPEF0b21pY1N0
cmluZz4gdG91Y2hFdmVudE5hbWVzKCkgY29uc3QKICAgICAgICAgewogICAgICAgICAgICAgVmVj
dG9yPEF0b21pY1N0cmluZz4gbmFtZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
R2VzdHVyZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9HZXN0dXJlRXZlbnQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjk3MjEzYzgzNDdhZGU3OGE3MTgyZWU1MzVlYzI3OGExMjA2OTQ1N2YKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vR2VzdHVyZUV2ZW50LmNwcApAQCAtMCww
ICsxLDEyMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUo
R0VTVFVSRV9FVkVOVFMpCisKKyNpbmNsdWRlICJHZXN0dXJlRXZlbnQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitQYXNzUmVmUHRyPEdlc3R1cmVFdmVudD4gR2VzdHVyZUV2ZW50OjpjcmVh
dGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgR2VzdHVyZUV2ZW50KTsKK30KKworUGFz
c1JlZlB0cjxHZXN0dXJlRXZlbnQ+IEdlc3R1cmVFdmVudDo6Y3JlYXRlKFBhc3NSZWZQdHI8QWJz
dHJhY3RWaWV3PiB2aWV3LCBjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYgZXZlbnQpCit7Cisg
ICAgQXRvbWljU3RyaW5nIGV2ZW50VHlwZTsKKyAgICBzd2l0Y2ggKGV2ZW50LnR5cGUoKSkgewor
ICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVNjcm9sbEJlZ2luOgorICAgICAgICBldmVu
dFR5cGUgPSBldmVudE5hbWVzKCkuZ2VzdHVyZXNjcm9sbHN0YXJ0RXZlbnQ7IGJyZWFrOworICAg
IGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVNjcm9sbEVuZDoKKyAgICAgICAgZXZlbnRUeXBl
ID0gZXZlbnROYW1lcygpLmdlc3R1cmVzY3JvbGxlbmRFdmVudDsgYnJlYWs7CisgICAgY2FzZSBQ
bGF0Zm9ybUV2ZW50OjpHZXN0dXJlU2Nyb2xsVXBkYXRlOgorICAgICAgICBldmVudFR5cGUgPSBl
dmVudE5hbWVzKCkuZ2VzdHVyZXNjcm9sbHVwZGF0ZUV2ZW50OyBicmVhazsKKyAgICBjYXNlIFBs
YXRmb3JtRXZlbnQ6Okdlc3R1cmVUYXA6CisgICAgICAgIGV2ZW50VHlwZSA9IGV2ZW50TmFtZXMo
KS5nZXN0dXJldGFwRXZlbnQ7IGJyZWFrOworICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVy
ZVRhcERvd246CisgICAgICAgIGV2ZW50VHlwZSA9IGV2ZW50TmFtZXMoKS5nZXN0dXJldGFwZG93
bkV2ZW50OyBicmVhazsKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVEb3VibGVUYXA6
CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlVHdvRmluZ2VyVGFwOgorICAgIGNhc2Ug
UGxhdGZvcm1FdmVudDo6R2VzdHVyZUxvbmdQcmVzczoKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6
Okdlc3R1cmVQaW5jaEJlZ2luOgorICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVBpbmNo
RW5kOgorICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVBpbmNoVXBkYXRlOgorICAgIGRl
ZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEdlc3R1cmVFdmVudChldmVudFR5cGUsIHZpZXcsIGV2ZW50Lmdsb2JhbFBv
c2l0aW9uKCkueCgpLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLnkoKSwgZXZlbnQucG9zaXRpb24o
KS54KCksIGV2ZW50LnBvc2l0aW9uKCkueSgpLCBldmVudC5jdHJsS2V5KCksIGV2ZW50LmFsdEtl
eSgpLCBldmVudC5zaGlmdEtleSgpLCBldmVudC5tZXRhS2V5KCksIGV2ZW50LmRlbHRhWCgpLCBl
dmVudC5kZWx0YVkoKSkpOworfQorCit2b2lkIEdlc3R1cmVFdmVudDo6aW5pdEdlc3R1cmVFdmVu
dChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3
LCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBjbGllbnRYLCBpbnQgY2xpZW50WSwgYm9v
bCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LCBmbG9h
dCBkZWx0YVgsIGZsb2F0IGRlbHRhWSkKK3sKKyAgICBpZiAoZGlzcGF0Y2hlZCgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpbml0VUlFdmVudCh0eXBlLCB0cnVlLCB0cnVlLCB2aWV3LCAwKTsK
KyAgICBtX3NjcmVlbkxvY2F0aW9uID0gSW50UG9pbnQoc2NyZWVuWCwgc2NyZWVuWSk7CisgICAg
bV9jdHJsS2V5ID0gY3RybEtleTsKKyAgICBtX2FsdEtleSA9IGFsdEtleTsKKyAgICBtX3NoaWZ0
S2V5ID0gc2hpZnRLZXk7CisgICAgbV9tZXRhS2V5ID0gbWV0YUtleTsKKworICAgIG1fZGVsdGFY
ID0gZGVsdGFYOworICAgIG1fZGVsdGFZID0gZGVsdGFZOworCisgICAgaW5pdENvb3JkaW5hdGVz
KEludFBvaW50KGNsaWVudFgsIGNsaWVudFkpKTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBH
ZXN0dXJlRXZlbnQ6OmludGVyZmFjZU5hbWUoKSBjb25zdAoreworICAgIHN0YXRpYyBBdG9taWNT
dHJpbmcgaW50ZXJmYWNlKCJUQkRJbnRlcmZhY2UiKTsKKyAgICByZXR1cm4gaW50ZXJmYWNlOwor
fQorCitHZXN0dXJlRXZlbnQ6Okdlc3R1cmVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblks
IGludCBjbGllbnRYLCBpbnQgY2xpZW50WSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9v
bCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSkKKyAg
ICA6IE1vdXNlUmVsYXRlZEV2ZW50KHR5cGUsIHRydWUsIHRydWUsIHZpZXcsIDAsIEludFBvaW50
KHNjcmVlblgsIHNjcmVlblkpLCBJbnRQb2ludChjbGllbnRYLCBjbGllbnRZKSwKKyNpZiBFTkFC
TEUoUE9JTlRFUl9MT0NLKQorICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQoMCwgMCks
CisjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgICAgIGN0cmxLZXksIGFsdEtleSwgc2hpZnRL
ZXksIG1ldGFLZXkpCisgICAgLCBtX2RlbHRhWChkZWx0YVgpCisgICAgLCBtX2RlbHRhWShkZWx0
YVkpCit7Cit9CisKK0dlc3R1cmVFdmVudERpc3BhdGNoTWVkaWF0b3I6Okdlc3R1cmVFdmVudERp
c3BhdGNoTWVkaWF0b3IoUGFzc1JlZlB0cjxHZXN0dXJlRXZlbnQ+IGdlc3R1cmVFdmVudCkKKyAg
ICA6IEV2ZW50RGlzcGF0Y2hNZWRpYXRvcihnZXN0dXJlRXZlbnQpCit7Cit9CisKK0dlc3R1cmVF
dmVudCogR2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6ZXZlbnQoKSBjb25zdAoreworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxHZXN0dXJlRXZlbnQqPihFdmVudERpc3BhdGNoTWVkaWF0b3I6
OmV2ZW50KCkpOworfQorCitib29sIEdlc3R1cmVFdmVudERpc3BhdGNoTWVkaWF0b3I6OmRpc3Bh
dGNoRXZlbnQoRXZlbnREaXNwYXRjaGVyKiBkaXNwYXRjaGVyKSBjb25zdAoreworICAgIGlmIChk
aXNwYXRjaGVyLT5ub2RlKCktPmRpc2FibGVkKCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisg
ICAgZGlzcGF0Y2hlci0+ZGlzcGF0Y2hFdmVudChldmVudCgpKTsKKyAgICBBU1NFUlQoIWV2ZW50
KCktPmRlZmF1bHRQcmV2ZW50ZWQoKSk7CisgICAgcmV0dXJuIGV2ZW50KCktPmRlZmF1bHRIYW5k
bGVkKCkgfHwgZXZlbnQoKS0+ZGVmYXVsdFByZXZlbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vR2VzdHVyZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
R2VzdHVyZUV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTU0ZDBiOGYzOTQyMGMzNWQ3NDdjODI4NzAwNjVj
Y2Y0MzJmZjI2OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9HZXN0dXJl
RXZlbnQuaApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgR2VzdHVyZUV2ZW50
X2gKKyNkZWZpbmUgR2VzdHVyZUV2ZW50X2gKKworI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykK
KworI2luY2x1ZGUgIkV2ZW50RGlzcGF0Y2hlci5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIK
KyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIk1v
dXNlUmVsYXRlZEV2ZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1FdmVudC5oIgorI2luY2x1ZGUg
IlBsYXRmb3JtR2VzdHVyZUV2ZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
R2VzdHVyZUV2ZW50IDogcHVibGljIE1vdXNlUmVsYXRlZEV2ZW50IHsKK3B1YmxpYzoKKyAgICB2
aXJ0dWFsIH5HZXN0dXJlRXZlbnQoKSB7IH0KKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdlc3R1
cmVFdmVudD4gY3JlYXRlKCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8R2VzdHVyZUV2ZW50PiBj
cmVhdGUoUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+LCBjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVu
dCYpOworCisgICAgdm9pZCBpbml0R2VzdHVyZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+LCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGlu
dCBjbGllbnRYLCBpbnQgY2xpZW50WSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBz
aGlmdEtleSwgYm9vbCBtZXRhS2V5LCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSk7CisKKyAg
ICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgaW50ZXJmYWNlTmFtZSgpIGNvbnN0OworCisg
ICAgZmxvYXQgZGVsdGFYKCkgY29uc3QgeyByZXR1cm4gbV9kZWx0YVg7IH0KKyAgICBmbG9hdCBk
ZWx0YVkoKSBjb25zdCB7IHJldHVybiBtX2RlbHRhWTsgfQorCitwcml2YXRlOgorICAgIEdlc3R1
cmVFdmVudCgpIHsgfQorICAgIEdlc3R1cmVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQg
Y2xpZW50WCwgaW50IGNsaWVudFksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hp
ZnRLZXksIGJvb2wgbWV0YUtleSwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVkpOworCisgICAg
ZmxvYXQgbV9kZWx0YVg7CisgICAgZmxvYXQgbV9kZWx0YVk7Cit9OworCitjbGFzcyBHZXN0dXJl
RXZlbnREaXNwYXRjaE1lZGlhdG9yIDogcHVibGljIEV2ZW50RGlzcGF0Y2hNZWRpYXRvciB7Citw
dWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8R2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRv
cj4gY3JlYXRlKFBhc3NSZWZQdHI8R2VzdHVyZUV2ZW50PiBnZXN0dXJlRXZlbnQpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdlc3R1cmVFdmVudERpc3BhdGNoTWVkaWF0b3Io
Z2VzdHVyZUV2ZW50KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IEdlc3R1cmVF
dmVudERpc3BhdGNoTWVkaWF0b3IoUGFzc1JlZlB0cjxHZXN0dXJlRXZlbnQ+KTsKKworICAgIEdl
c3R1cmVFdmVudCogZXZlbnQoKSBjb25zdDsKKworICAgIHZpcnR1YWwgYm9vbCBkaXNwYXRjaEV2
ZW50KEV2ZW50RGlzcGF0Y2hlciopIGNvbnN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQorCisjZW5kaWYgLy8gR2VzdHVy
ZUV2ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCBmMzBjM2ZjYmZjZjg2MGFlMDM0MTdiNWRjZDAx
MTdiOTZjNWZmOWVkLi43NTI4Y2ZkMzExN2FiMzE0YTgyZDUyNWUwMGI1YzMwZjQwNzVhNTA4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwCkBAIC0xMDksNiArMTA5LDEwIEBACiAjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAorI2lmIEVO
QUJMRShHRVNUVVJFX0VWRU5UUykKKyNpbmNsdWRlICJHZXN0dXJlRXZlbnQuaCIKKyNlbmRpZgor
CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgi
CiAjZW5kaWYKQEAgLTI2MzMsNiArMjYzNywxMyBAQCBib29sIE5vZGU6OmRpc3BhdGNoTW91c2VF
dmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBjb25zdCBBdG9taWNTdHJpbgog
ICAgIHJldHVybiBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoRXZlbnQodGhpcywgTW91c2VFdmVu
dERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnRUeXBlLCBk
b2N1bWVudCgpLT5kZWZhdWx0VmlldygpLCBldmVudCwgZGV0YWlsLCByZWxhdGVkVGFyZ2V0KSkp
OwogfQogCisjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQorYm9vbCBOb2RlOjpkaXNwYXRjaEdl
c3R1cmVFdmVudChjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYgZXZlbnQpCit7CisgICAgcmV0
dXJuIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hFdmVudCh0aGlzLCBHZXN0dXJlRXZlbnREaXNw
YXRjaE1lZGlhdG9yOjpjcmVhdGUoR2VzdHVyZUV2ZW50OjpjcmVhdGUoZG9jdW1lbnQoKS0+ZGVm
YXVsdFZpZXcoKSwgZXZlbnQpKSk7Cit9CisjZW5kaWYKKwogdm9pZCBOb2RlOjpkaXNwYXRjaFNp
bXVsYXRlZENsaWNrKFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50LCBib29sIHNlbmRNb3VzZUV2ZW50
cywgYm9vbCBzaG93UHJlc3NlZExvb2spCiB7CiAgICAgRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRj
aFNpbXVsYXRlZENsaWNrKHRoaXMsIGV2ZW50LCBzZW5kTW91c2VFdmVudHMsIHNob3dQcmVzc2Vk
TG9vayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuaAppbmRleCA4NmE3ZDM5ZWQ1OGJkYmM5ZDQyZjI0MWU0NzZjOWE2YjMx
NmJkNmQwLi5hMzIwNGJhMWE3YTNlODI2YjQ1OTIzZjZhMjI1OTg1MzVlOGI0MDNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmgKQEAgLTg4LDYgKzg4LDEwIEBAIGNsYXNzIFNoYWRvd1Jvb3Q7CiBjbGFzcyBUYWdOb2Rl
TGlzdDsKIGNsYXNzIFRyZWVTY29wZTsKIAorI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKK2Ns
YXNzIFBsYXRmb3JtR2VzdHVyZUV2ZW50OworI2VuZGlmCisKICNpZiBFTkFCTEUoTUlDUk9EQVRB
KQogY2xhc3MgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOwogY2xhc3MgUHJvcGVydHlOb2RlTGlz
dDsKQEAgLTYwOSw2ICs2MTMsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBkaXNwYXRjaEtleUV2ZW50
KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYpOwogICAgIGJvb2wgZGlzcGF0Y2hXaGVlbEV2
ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOwogICAgIGJvb2wgZGlzcGF0Y2hNb3VzZUV2
ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRU
eXBlLCBpbnQgY2xpY2tDb3VudCA9IDAsIE5vZGUqIHJlbGF0ZWRUYXJnZXQgPSAwKTsKKyNpZiBF
TkFCTEUoR0VTVFVSRV9FVkVOVFMpCisgICAgYm9vbCBkaXNwYXRjaEdlc3R1cmVFdmVudChjb25z
dCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYpOworI2VuZGlmCiAgICAgdm9pZCBkaXNwYXRjaFNpbXVs
YXRlZENsaWNrKFBhc3NSZWZQdHI8RXZlbnQ+IHVuZGVybHlpbmdFdmVudCwgYm9vbCBzZW5kTW91
c2VFdmVudHMgPSBmYWxzZSwgYm9vbCBzaG93UHJlc3NlZExvb2sgPSB0cnVlKTsKICAgICBib29s
IGRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDhlZWEzZmE2NThiNTlmY2JjZGNjZjky
MTNiYzc4ZTI4YWE2NDc3N2IuLjA2MWQ4MzMwZjU2N2Y5YmI0MDcyNjFlOWZiYTQ5ZjIxNjJjMjRj
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTM2NywxMCArMzY3LDEx
IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjbGVhcigpCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykK
ICAgICBtX29yaWdpbmF0aW5nVG91Y2hQb2ludFRhcmdldHMuY2xlYXIoKTsKICNlbmRpZgotICAg
IG1fbWF4TW91c2VNb3ZlZER1cmF0aW9uID0gMDsKICNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMp
Ci0gICAgbV9iYXNlRXZlbnRUeXBlID0gUGxhdGZvcm1FdmVudDo6Tm9UeXBlOworICAgIG1fc2Ny
b2xsR2VzdHVyZUhhbmRsaW5nTm9kZSA9IDA7CiAjZW5kaWYKKyAgICBtX21heE1vdXNlTW92ZWRE
dXJhdGlvbiA9IDA7CisgICAgbV9iYXNlRXZlbnRUeXBlID0gUGxhdGZvcm1FdmVudDo6Tm9UeXBl
OwogfQogCiB2b2lkIEV2ZW50SGFuZGxlcjo6bm9kZVdpbGxCZVJlbW92ZWQoTm9kZSogbm9kZVRv
QmVSZW1vdmVkKQpAQCAtMjQxMyw2ICsyNDE0LDI5IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5k
bGVHZXN0dXJlVGFwRG93bigpCiAKIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlRXZl
bnQoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVudCkKIHsKKyAgICBOb2Rl
KiBldmVudFRhcmdldCA9IDA7CisgICAgaWYgKGdlc3R1cmVFdmVudC50eXBlKCkgPT0gUGxhdGZv
cm1FdmVudDo6R2VzdHVyZVNjcm9sbEVuZCB8fCBnZXN0dXJlRXZlbnQudHlwZSgpID09IFBsYXRm
b3JtRXZlbnQ6Okdlc3R1cmVTY3JvbGxVcGRhdGUpCisgICAgICAgIGV2ZW50VGFyZ2V0ID0gbV9z
Y3JvbGxHZXN0dXJlSGFuZGxpbmdOb2RlLmdldCgpOworCisgICAgaWYgKCFldmVudFRhcmdldCkg
eworICAgICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdCA9IGhpdFRlc3RSZXN1bHRBdFBvaW50KGdl
c3R1cmVFdmVudC5wb3NpdGlvbigpLCBmYWxzZSwgZmFsc2UsIERvbnRIaXRUZXN0U2Nyb2xsYmFy
cywgSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSk7Cisg
ICAgICAgIGV2ZW50VGFyZ2V0ID0gdGFyZ2V0Tm9kZShyZXN1bHQpOworICAgIH0KKworICAgIGlm
IChldmVudFRhcmdldCkgeworICAgICAgICBib29sIGV2ZW50U3dhbGxvd2VkID0gZXZlbnRUYXJn
ZXQtPmRpc3BhdGNoR2VzdHVyZUV2ZW50KGdlc3R1cmVFdmVudCk7CisKKyAgICAgICAgaWYgKGdl
c3R1cmVFdmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6R2VzdHVyZVNjcm9sbEJlZ2luKSB7
CisgICAgICAgICAgICBpZiAoZXZlbnRTd2FsbG93ZWQpCisgICAgICAgICAgICAgICAgbV9zY3Jv
bGxHZXN0dXJlSGFuZGxpbmdOb2RlID0gZXZlbnRUYXJnZXQ7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgbV9zY3JvbGxHZXN0dXJlSGFuZGxpbmdOb2RlID0gMDsKKyAgICAgICAg
fQorCisgICAgICAgIGlmIChldmVudFN3YWxsb3dlZCkKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKwogICAgIC8vIEZJWE1FOiBBIG1vcmUgZ2VuZXJhbCBzY3JvbGwgc3lzdGVtICho
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA1OTYpIHdpbGwKICAgICAv
LyBlbGltaW5hdGUgdGhlIG5lZWQgZm9yIHRoaXMuCiAgICAgVGVtcG9yYXJ5Q2hhbmdlPFBsYXRm
b3JtRXZlbnQ6OlR5cGU+IGJhc2VFdmVudFR5cGUobV9iYXNlRXZlbnRUeXBlLCBnZXN0dXJlRXZl
bnQudHlwZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IDFkMmQzNzVjMzli
YjU4YmE1M2E1OGY1NDMwN2ViMTYyNWVmMDdmZDEuLmVlMjY5NDQzM2RiMWMyNzk5ZDUwNGIyZDQ4
NGYwNGUzNTQ3MDMwZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtNDQ2LDYg
KzQ0NiwxMSBAQCBwcml2YXRlOgogICAgIFRvdWNoVGFyZ2V0TWFwIG1fb3JpZ2luYXRpbmdUb3Vj
aFBvaW50VGFyZ2V0czsKICAgICBib29sIG1fdG91Y2hQcmVzc2VkOwogI2VuZGlmCisKKyNpZiBF
TkFCTEUoR0VTVFVSRV9FVkVOVFMpCisgICAgUmVmUHRyPE5vZGU+IG1fc2Nyb2xsR2VzdHVyZUhh
bmRsaW5nTm9kZTsKKyNlbmRpZgorCiAgICAgZG91YmxlIG1fbWF4TW91c2VNb3ZlZER1cmF0aW9u
OwogICAgIFBsYXRmb3JtRXZlbnQ6OlR5cGUgbV9iYXNlRXZlbnRUeXBlOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNw
cAppbmRleCAyMDdkODFjYTM4NGQzNmM4M2E0ZDEwMWU0NzBkYTllMDkyMjIzNGQ4Li5jMDhlZGVh
YWE2YzU2NjYyOTFiNGRjYjNiYjE3NmJiZWVhMDdiOTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwCkBAIC0zMiw2
ICszMiw3IEBACiAjaW5jbHVkZSAiV2ViSW5wdXRFdmVudENvbnZlcnNpb24uaCIKIAogI2luY2x1
ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJHZXN0dXJlRXZlbnQuaCIKICNpbmNsdWRlICJL
ZXlib2FyZENvZGVzLmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIk1v
dXNlRXZlbnQuaCIKQEAgLTUxMiw0ICs1MTMsMzEgQEAgV2ViVG91Y2hFdmVudEJ1aWxkZXI6Oldl
YlRvdWNoRXZlbnRCdWlsZGVyKGNvbnN0IFdpZGdldCogd2lkZ2V0LCBjb25zdCBUb3VjaEV2ZW4K
IAogI2VuZGlmIC8vIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAKKyNpZiBFTkFCTEUoR0VTVFVSRV9F
VkVOVFMpCitXZWJHZXN0dXJlRXZlbnRCdWlsZGVyOjpXZWJHZXN0dXJlRXZlbnRCdWlsZGVyKGNv
bnN0IFdpZGdldCogd2lkZ2V0LCBjb25zdCBHZXN0dXJlRXZlbnQmIGV2ZW50KQoreworICAgIGlm
IChldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmdlc3R1cmV0YXBFdmVudCkKKyAgICAgICAg
dHlwZSA9IEdlc3R1cmVUYXA7CisgICAgZWxzZSBpZiAoZXZlbnQudHlwZSgpID09IGV2ZW50TmFt
ZXMoKS5nZXN0dXJldGFwZG93bkV2ZW50KQorICAgICAgICB0eXBlID0gR2VzdHVyZVRhcERvd247
CisgICAgZWxzZSBpZiAoZXZlbnQudHlwZSgpID09IGV2ZW50TmFtZXMoKS5nZXN0dXJlc2Nyb2xs
c3RhcnRFdmVudCkKKyAgICAgICAgdHlwZSA9IEdlc3R1cmVTY3JvbGxCZWdpbjsKKyAgICBlbHNl
IGlmIChldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmdlc3R1cmVzY3JvbGxlbmRFdmVudCkK
KyAgICAgICAgdHlwZSA9IEdlc3R1cmVTY3JvbGxFbmQ7CisgICAgZWxzZSBpZiAoZXZlbnQudHlw
ZSgpID09IGV2ZW50TmFtZXMoKS5nZXN0dXJlc2Nyb2xsdXBkYXRlRXZlbnQpCisgICAgICAgIHR5
cGUgPSBHZXN0dXJlU2Nyb2xsVXBkYXRlOworCisgICAgdGltZVN0YW1wU2Vjb25kcyA9IGV2ZW50
LnRpbWVTdGFtcCgpIC8gbWlsbGlzUGVyU2Vjb25kOworICAgIG1vZGlmaWVycyA9IGdldFdlYklu
cHV0TW9kaWZpZXJzKGV2ZW50KTsKKworICAgIGdsb2JhbFggPSBldmVudC5zY3JlZW5YKCk7Cisg
ICAgZ2xvYmFsWSA9IGV2ZW50LnNjcmVlblkoKTsKKyAgICB4ID0gZXZlbnQuYWJzb2x1dGVMb2Nh
dGlvbigpLngoKSAtIHdpZGdldC0+bG9jYXRpb24oKS54KCk7CisgICAgeSA9IGV2ZW50LmFic29s
dXRlTG9jYXRpb24oKS55KCkgLSB3aWRnZXQtPmxvY2F0aW9uKCkueSgpOworCisgICAgZGVsdGFY
ID0gZXZlbnQuZGVsdGFYKCk7CisgICAgZGVsdGFZID0gZXZlbnQuZGVsdGFZKCk7Cit9CisjZW5k
aWYgLy8gRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJz
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lv
bi5oCmluZGV4IGQ0N2JkYTgxNDkyZjFiMDE5MTk2ZWQ2Mzk4YjU3YTY5OWY4NDAzMTAuLjQ4OTc1
YTQwNDZiMjEyYjBmMmRiOTkyYmU2NGI4YzgzNDk3OTBlOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uaApAQCAtMzksNiAr
MzksNyBAQAogI2luY2x1ZGUgIldlYklucHV0RXZlbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
eworY2xhc3MgR2VzdHVyZUV2ZW50OwogY2xhc3MgS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE1vdXNl
RXZlbnQ7CiBjbGFzcyBTY3JvbGxWaWV3OwpAQCAtMTMxLDYgKzEzMiwxNSBAQCBwdWJsaWM6CiB9
OwogI2VuZGlmIC8vIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAKKyNpZiBFTkFCTEUoR0VTVFVSRV9F
VkVOVFMpCisvLyBDb252ZXJ0cyBXZWJDb3JlOjpHZXN0dXJlRXZlbnQgdG8gYSBjb3JyZXNwb25k
aW5nIFdlYkdlc3R1cmVFdmVudC4KKy8vIE5PVEU6IElmIGV2ZW50IG1hcHBpbmcgZmFpbHMsIHRo
ZSB0eXBlIHdpbGwgYmUgc2V0IHRvIFVuZGVmaW5lZC4KK2NsYXNzIFdlYkdlc3R1cmVFdmVudEJ1
aWxkZXIgOiBwdWJsaWMgV2ViR2VzdHVyZUV2ZW50IHsKK3B1YmxpYzoKKyAgICBXZWJHZXN0dXJl
RXZlbnRCdWlsZGVyKGNvbnN0IFdlYkNvcmU6OldpZGdldCosIGNvbnN0IFdlYkNvcmU6Okdlc3R1
cmVFdmVudCYpOworfTsKKyNlbmRpZiAvLyBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAKaW5kZXggMjk0ODllMjVhNTQ0YjEz
NTcyNDZkN2EzOWFhNGY5ZGZhOWNiZjc1Zi4uMWM1YzA1ZjY2ZDIyZTkwNWI4NDkwZDZlZTUzMWEz
ZWFlYmE2OTZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1
Z2luQ29udGFpbmVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
UGx1Z2luQ29udGFpbmVySW1wbC5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJGcmFt
ZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcu
aCIKKyNpbmNsdWRlICJHZXN0dXJlRXZlbnQuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQu
aCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgpA
QCAtMTg4LDYgKzE4OSw4IEBAIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6aGFuZGxlRXZl
bnQoRXZlbnQqIGV2ZW50KQogICAgICAgICBoYW5kbGVLZXlib2FyZEV2ZW50KHN0YXRpY19jYXN0
PEtleWJvYXJkRXZlbnQqPihldmVudCkpOwogICAgIGVsc2UgaWYgKGV2ZW50TmFtZXMoKS5pc1Rv
dWNoRXZlbnRUeXBlKGV2ZW50LT50eXBlKCkpKQogICAgICAgICBoYW5kbGVUb3VjaEV2ZW50KHN0
YXRpY19jYXN0PFRvdWNoRXZlbnQqPihldmVudCkpOworICAgIGVsc2UgaWYgKGV2ZW50TmFtZXMo
KS5pc0dlc3R1cmVFdmVudFR5cGUoZXZlbnQtPnR5cGUoKSkpCisgICAgICAgIGhhbmRsZUdlc3R1
cmVFdmVudChzdGF0aWNfY2FzdDxHZXN0dXJlRXZlbnQqPihldmVudCkpOwogCiAgICAgLy8gRklY
TUU6IGl0IHdvdWxkIGJlIGNsZWFuZXIgaWYgV2lkZ2V0OjpoYW5kbGVFdmVudCByZXR1cm5lZCB0
cnVlL2ZhbHNlIGFuZAogICAgIC8vIEhUTUxQbHVnaW5FbGVtZW50IGNhbGxlZCBzZXREZWZhdWx0
SGFuZGxlZCBvciBkZWZhdWx0RXZlbnRIYW5kbGVyLgpAQCAtNzM2LDYgKzczOSwxNyBAQCB2b2lk
IFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OmhhbmRsZVRvdWNoRXZlbnQoVG91Y2hFdmVudCogZXZl
bnQpCiAgICAgLy8gRklYTUU6IENhbiBhIHBsdWdpbiBjaGFuZ2UgdGhlIGN1cnNvciBmcm9tIGEg
dG91Y2gtZXZlbnQgY2FsbGJhY2s/CiB9CiAKK3ZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6
aGFuZGxlR2VzdHVyZUV2ZW50KEdlc3R1cmVFdmVudCogZXZlbnQpCit7CisgICAgV2ViR2VzdHVy
ZUV2ZW50QnVpbGRlciB3ZWJFdmVudCh0aGlzLCAqZXZlbnQpOworICAgIGlmICh3ZWJFdmVudC50
eXBlID09IFdlYklucHV0RXZlbnQ6OlVuZGVmaW5lZCkKKyAgICAgICAgcmV0dXJuOworICAgIFdl
YkN1cnNvckluZm8gY3Vyc29ySW5mbzsKKyAgICBpZiAobV93ZWJQbHVnaW4tPmhhbmRsZUlucHV0
RXZlbnQod2ViRXZlbnQsIGN1cnNvckluZm8pKQorICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhh
bmRsZWQoKTsKKyAgICAvLyBGSVhNRTogQ2FuIGEgcGx1Z2luIGNoYW5nZSB0aGUgY3Vyc29yIGZy
b20gYSB0b3VjaC1ldmVudCBjYWxsYmFjaz8KK30KKwogdm9pZCBXZWJQbHVnaW5Db250YWluZXJJ
bXBsOjpjYWxjdWxhdGVHZW9tZXRyeShjb25zdCBJbnRSZWN0JiBmcmFtZVJlY3QsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludFJlY3QmIHdpbmRvd1Jl
Y3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludFJl
Y3QmIGNsaXBSZWN0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
UGx1Z2luQ29udGFpbmVySW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1
Z2luQ29udGFpbmVySW1wbC5oCmluZGV4IDRjMmFhZWI0YTA0ODQzNDBhZjY2MWE1YWRjYjJjMjM5
ODdhOGM0NzYuLjYxZjVjNWI3MTQ2ZjI5OTU3ZGI4OTE4Zjk4ZGI0NWFmZDk0NTY5NzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBs
LmgKQEAgLTQ1LDYgKzQ1LDcgQEAKIHN0cnVjdCBOUE9iamVjdDsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgeworY2xhc3MgR2VzdHVyZUV2ZW50OwogY2xhc3MgSFRNTFBsdWdJbkVsZW1lbnQ7CiBjbGFz
cyBJbnRSZWN0OwogY2xhc3MgS2V5Ym9hcmRFdmVudDsKQEAgLTE2Nyw2ICsxNjgsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgaGFuZGxlV2hlZWxFdmVudChXZWJDb3JlOjpXaGVlbEV2ZW50Kik7CiAg
ICAgdm9pZCBoYW5kbGVLZXlib2FyZEV2ZW50KFdlYkNvcmU6OktleWJvYXJkRXZlbnQqKTsKICAg
ICB2b2lkIGhhbmRsZVRvdWNoRXZlbnQoV2ViQ29yZTo6VG91Y2hFdmVudCopOworICAgIHZvaWQg
aGFuZGxlR2VzdHVyZUV2ZW50KFdlYkNvcmU6Okdlc3R1cmVFdmVudCopOwogCiAgICAgdm9pZCBj
YWxjdWxhdGVHZW9tZXRyeShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBmcmFtZVJlY3QsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBXZWJDb3JlOjpJbnRSZWN0JiB3aW5kb3dSZWN0LApkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDdiNDA2Nzk4
MTY4NjE3YWUxZDQ5NzBiMDVmMjJiMmNlOTA2Y2MxODAuLmVjZTcyZWU4Zjk2NTRhZDg0YmRmNjU0
Njg3NzM1N2RlZjY3YzAxNGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wNy0yNiAgU2FkcnVsIEhhYmliIENo
b3dkaHVyeSAgPHNhZHJ1bEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHJvcGFnYXRlIGdlc3R1
cmUgZXZlbnRzIHRvIHBsdWdpbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05MjI4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVwZGF0ZSBUZXN0V2ViUGx1Z2luIHRvIHJlY2VpdmUgZXZlbnRzLCBhbmQg
b3V0cHV0IGxvZ3MgZm9yIHRoZSBldmVudHMuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0V2ViUGx1Z2luLmNwcDoKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmhhbmRs
ZUlucHV0RXZlbnQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQ
bHVnaW4uaDoKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmFjY2VwdHNJbnB1dEV2ZW50cyk6Cisg
ICAgICAgIChUZXN0V2ViUGx1Z2luKToKKwogMjAxMi0wNy0yNSAgQ2hyaXN0b3BoZSBEdW1leiAg
PGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgogCiAgICAgICAgIFtXSzJdW1dUUl0gTGF5b3V0
VGVzdENvbnRyb2xsZXIuc2VuZFdlYkludGVudFJlc3BvbnNlKCkgbmVlZHMgdG8gYmUgaW1wbGVt
ZW50ZWQKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQ
bHVnaW4uY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5j
cHAKaW5kZXggNTcwMTkyY2JiMTJjMzYyMDU3MzliODZmZTkwZThiOThlZTFhM2ZhMy4uYmJlYmE2
ZjliNzFkNmU5ZmFlYzgzZDBlOTBhOWExMWFkZWI4MTViZSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNp
bmNsdWRlICJUZXN0V2ViUGx1Z2luLmgiCiAKICNpbmNsdWRlICJXZWJGcmFtZS5oIgorI2luY2x1
ZGUgIldlYklucHV0RXZlbnQuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJHcmFwaGljc0NvbnRl
eHQzRC5oIgogI2luY2x1ZGUgIldlYktpdC5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYktpdFBs
YXRmb3JtU3VwcG9ydC5oIgpAQCAtMzY0LDMgKzM2NSw0NyBAQCB1bnNpZ25lZCBUZXN0V2ViUGx1
Z2luOjpsb2FkUHJvZ3JhbShjb25zdCBDU3RyaW5nJiB2ZXJ0ZXhTb3VyY2UsCiAgICAgcmV0dXJu
IHByb2dyYW07CiB9CiAKK2Jvb2wgVGVzdFdlYlBsdWdpbjo6aGFuZGxlSW5wdXRFdmVudChjb25z
dCBXZWJLaXQ6OldlYklucHV0RXZlbnQmIGV2ZW50LCBXZWJLaXQ6OldlYkN1cnNvckluZm8mIGlu
Zm8pCit7CisgICAgY29uc3QgY2hhciogZXZlbnROYW1lID0gMDsKKyAgICBzd2l0Y2ggKGV2ZW50
LnR5cGUpIHsKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6VW5kZWZpbmVkOiAgICAg
ICAgICAgZXZlbnROYW1lID0gInVua25vd24iOyBicmVhazsKKworICAgIGNhc2UgV2ViS2l0OjpX
ZWJJbnB1dEV2ZW50OjpNb3VzZURvd246ICAgICAgICAgICBldmVudE5hbWUgPSAiTW91c2VEb3du
IjsgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6Ok1vdXNlVXA6ICAgICAg
ICAgICAgIGV2ZW50TmFtZSA9ICJNb3VzZVVwIjsgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6Oldl
YklucHV0RXZlbnQ6Ok1vdXNlTW92ZTogICAgICAgICAgIGV2ZW50TmFtZSA9ICJNb3VzZU1vdmUi
OyBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6TW91c2VFbnRlcjogICAg
ICAgICAgZXZlbnROYW1lID0gIk1vdXNlRW50ZXIiOyBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6
V2ViSW5wdXRFdmVudDo6TW91c2VMZWF2ZTogICAgICAgICAgZXZlbnROYW1lID0gIk1vdXNlTGVh
dmUiOyBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6Q29udGV4dE1lbnU6
ICAgICAgICAgZXZlbnROYW1lID0gIkNvbnRleHRNZW51IjsgYnJlYWs7CisKKyAgICBjYXNlIFdl
YktpdDo6V2ViSW5wdXRFdmVudDo6TW91c2VXaGVlbDogICAgICAgICAgZXZlbnROYW1lID0gIk1v
dXNlV2hlZWwiOyBicmVhazsKKworICAgIGNhc2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpSYXdL
ZXlEb3duOiAgICAgICAgICBldmVudE5hbWUgPSAiUmF3S2V5RG93biI7IGJyZWFrOworICAgIGNh
c2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpLZXlEb3duOiAgICAgICAgICAgICBldmVudE5hbWUg
PSAiS2V5RG93biI7IGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpLZXlV
cDogICAgICAgICAgICAgICBldmVudE5hbWUgPSAiS2V5VXAiOyBicmVhazsKKyAgICBjYXNlIFdl
YktpdDo6V2ViSW5wdXRFdmVudDo6Q2hhcjogICAgICAgICAgICAgICAgZXZlbnROYW1lID0gIkNo
YXIiOyBicmVhazsKKworICAgIGNhc2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpHZXN0dXJlU2Ny
b2xsQmVnaW46ICBldmVudE5hbWUgPSAiR2VzdHVyZVNjcm9sbEJlZ2luIjsgYnJlYWs7CisgICAg
Y2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6Okdlc3R1cmVTY3JvbGxFbmQ6ICAgIGV2ZW50TmFt
ZSA9ICJHZXN0dXJlU2Nyb2xsRW5kIjsgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0
RXZlbnQ6Okdlc3R1cmVTY3JvbGxVcGRhdGU6IGV2ZW50TmFtZSA9ICJHZXN0dXJlU2Nyb2xsVXBk
YXRlIjsgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6Okdlc3R1cmVGbGlu
Z1N0YXJ0OiAgIGV2ZW50TmFtZSA9ICJHZXN0dXJlRmxpbmdTdGFydCI7IGJyZWFrOworICAgIGNh
c2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpHZXN0dXJlRmxpbmdDYW5jZWw6ICBldmVudE5hbWUg
PSAiR2VzdHVyZUZsaW5nQ2FuY2VsIjsgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0
RXZlbnQ6Okdlc3R1cmVUYXA6ICAgICAgICAgIGV2ZW50TmFtZSA9ICJHZXN0dXJlVGFwIjsgYnJl
YWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXBEb3duOiAgICAg
IGV2ZW50TmFtZSA9ICJHZXN0dXJlVGFwRG93biI7IGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpX
ZWJJbnB1dEV2ZW50OjpHZXN0dXJlRG91YmxlVGFwOiAgICBldmVudE5hbWUgPSAiR2VzdHVyZURv
dWJsZVRhcCI7IGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpHZXN0dXJl
VHdvRmluZ2VyVGFwOiBldmVudE5hbWUgPSAiR2VzdHVyZVR3b0ZpbmdlclRhcCI7IGJyZWFrOwor
ICAgIGNhc2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpHZXN0dXJlTG9uZ1ByZXNzOiAgICBldmVu
dE5hbWUgPSAiR2VzdHVyZUxvbmdQcmVzcyI7IGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJJ
bnB1dEV2ZW50OjpHZXN0dXJlUGluY2hCZWdpbjogICBldmVudE5hbWUgPSAiR2VzdHVyZVBpbmNo
QmVnaW4iOyBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6R2VzdHVyZVBp
bmNoRW5kOiAgICAgZXZlbnROYW1lID0gIkdlc3R1cmVQaW5jaEVuZCI7IGJyZWFrOworICAgIGNh
c2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpHZXN0dXJlUGluY2hVcGRhdGU6ICBldmVudE5hbWUg
PSAiR2VzdHVyZVBpbmNoVXBkYXRlIjsgYnJlYWs7CisKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5w
dXRFdmVudDo6VG91Y2hTdGFydDogICAgICAgICAgZXZlbnROYW1lID0gIlRvdWNoU3RhcnQiOyBi
cmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6VG91Y2hNb3ZlOiAgICAgICAg
ICAgZXZlbnROYW1lID0gIlRvdWNoTW92ZSI7IGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJJ
bnB1dEV2ZW50OjpUb3VjaEVuZDogICAgICAgICAgICBldmVudE5hbWUgPSAiVG91Y2hFbmQiOyBi
cmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6VG91Y2hDYW5jZWw6ICAgICAg
ICAgZXZlbnROYW1lID0gIlRvdWNoQ2FuY2VsIjsgYnJlYWs7CisgICAgfQorCisgICAgcHJpbnRm
KCJQbHVnaW4gcmVjZWl2ZWQgZXZlbnQ6ICVzXG4iLCBldmVudE5hbWUgPyBldmVudE5hbWUgOiAi
dW5rbm93biIpOworICAgIHJldHVybiBmYWxzZTsKK30KKwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5oIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5oCmluZGV4IDRjOWYyZjRkMjI4NTc5Y2NmNmExNjQ1
NmJmMGFkMzQ0Y2FkODlmNzAuLjAyNWIxMTA5NTU1YTJjMGE4YTIyMjIyZjNlZTRiODE1NmY2YjM0
ZTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVn
aW4uaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmgK
QEAgLTYwLDggKzYwLDggQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBib29sIGlzVmlzaWJsZSk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZvY3VzKGJvb2wpIHsg
fQogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaXNpYmlsaXR5KGJvb2wpIHsgfQotICAgIHZpcnR1
YWwgYm9vbCBhY2NlcHRzSW5wdXRFdmVudHMoKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1
YWwgYm9vbCBoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYktpdDo6V2ViSW5wdXRFdmVudCYsIFdl
YktpdDo6V2ViQ3Vyc29ySW5mbyYpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29s
IGFjY2VwdHNJbnB1dEV2ZW50cygpIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
aGFuZGxlSW5wdXRFdmVudChjb25zdCBXZWJLaXQ6OldlYklucHV0RXZlbnQmLCBXZWJLaXQ6Oldl
YkN1cnNvckluZm8mKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0
IFdlYktpdDo6V2ViVVJMUmVzcG9uc2UmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBkaWRGaW5pc2hMb2FkaW5nKCkgeyB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzQ4OWEwOWMwNThjOGYyNTEyYWZk
ODhlNTNhMTZmYTBkNzM2NDNhMC4uODU2MWE1NzFkYzc4ZWI1ZWNiNzk4YzBmMGIxYmYwM2IzNzMz
YWRiOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA3LTI2ICBTYWRydWwgSGFiaWIgQ2hv
d2RodXJ5ICA8c2FkcnVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBQcm9wYWdhdGUgZ2VzdHVy
ZSBldmVudHMgdG8gcGx1Z2lucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTkyMjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkZWQgYSBsYXlvdXQgdGVzdCB0byBzaG93IHRoYXQgdGhlIHBsdWdpbnMg
cmVjZWl2ZSB0aGUgZ2VzdHVyZSBldmVudHMgY29ycmVjdGx5LgorCisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vcGx1Z2lucy9nZXN0dXJlLWV2ZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3BsdWdpbnMvZ2VzdHVyZS1ldmVudHMuaHRtbDog
QWRkZWQuCisKIDIwMTItMDctMjUgIEFuZHJldyBXaWxzb24gIDxhdHdpbHNvbkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBjaHJvbWl1bSBleHBlY3RhdGlvbnMgY2hhbmdlLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy9nZXN0dXJl
LWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9wbHVn
aW5zL2dlc3R1cmUtZXZlbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZmRhNDI2YjE4Y2I3
ZDc3Mzg3MTYzOWU3YzAwNDRhZjY2N2UxZGMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy9nZXN0dXJlLWV2ZW50cy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMCBAQAorUGx1Z2luIHJlY2VpdmVkIGV2ZW50OiBHZXN0dXJlVGFwCitQbHVn
aW4gcmVjZWl2ZWQgZXZlbnQ6IE1vdXNlRW50ZXIKK1BsdWdpbiByZWNlaXZlZCBldmVudDogTW91
c2VNb3ZlCitQbHVnaW4gcmVjZWl2ZWQgZXZlbnQ6IE1vdXNlRG93bgorUGx1Z2luIHJlY2VpdmVk
IGV2ZW50OiBNb3VzZVVwCitQbHVnaW4gcmVjZWl2ZWQgZXZlbnQ6IEdlc3R1cmVTY3JvbGxCZWdp
bgorUGx1Z2luIHJlY2VpdmVkIGV2ZW50OiBHZXN0dXJlU2Nyb2xsVXBkYXRlCitQbHVnaW4gcmVj
ZWl2ZWQgZXZlbnQ6IE1vdXNlV2hlZWwKK1BsdWdpbiByZWNlaXZlZCBldmVudDogR2VzdHVyZVNj
cm9sbEVuZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9wbHVn
aW5zL2dlc3R1cmUtZXZlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9w
bHVnaW5zL2dlc3R1cmUtZXZlbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGRkMmIzNjc0ZTIyYmE0NTdh
MDVhNzczNGYxMWNjNDM3ZGNiYmM4OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL3BsdWdpbnMvZ2VzdHVyZS1ldmVudHMuaHRtbApAQCAtMCwwICsxLDMx
IEBACis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorICAjcGx1Z2luIHsKKyAgICB3aWR0aDogMTUw
cHg7CisgICAgaGVpZ2h0OiAxNTBweDsKKyAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHk+
Cis8ZW1iZWQgaWQ9InBsdWdpbiIgdHlwZT0iYXBwbGljYXRpb24veC13ZWJraXQtdGVzdC13ZWJw
bHVnaW4iIHByaW1pdGl2ZT0idHJpYW5nbGUiIGJhY2tncm91bmQtY29sb3I9ImdyZWVuIiBwcmlt
aXRpdmUtY29sb3I9ImJsdWUiPjwvZW1iZWQ+Cis8c2NyaXB0PgorCisgICAgaWYgKCF3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgICAgICBkb2N1bWVudC53cml0ZSgiVGhpcyB0ZXN0IGRvZXMgbm90
IHdvcmsgaW4gbWFudWFsIG1vZGUuIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CisKKyAgICAgICAgLy8gU2VuZCBzb21lIGdlc3R1cmUgZXZlbnRzIHRv
IHRoZSBwbHVnaW4uCisgICAgICAgIHZhciBwb3NpdGlvblggPSBwbHVnaW4ub2Zmc2V0TGVmdCAr
IDEwOworICAgICAgICB2YXIgcG9zaXRpb25ZID0gcGx1Z2luLm9mZnNldFRvcCArIDEwOworICAg
ICAgICBldmVudFNlbmRlci5nZXN0dXJlVGFwKHBvc2l0aW9uWCwgcG9zaXRpb25ZKTsKKyAgICAg
ICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVNjcm9sbEJlZ2luKHBvc2l0aW9uWCwgcG9zaXRpb25ZKTsK
KyAgICAgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVNjcm9sbFVwZGF0ZSgzMCwgMCk7CisgICAgICAg
IGV2ZW50U2VuZGVyLmdlc3R1cmVTY3JvbGxFbmQoMCwgMCk7CisgICAgfQorCis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154721</attachid>
            <date>2012-07-26 12:31:14 -0700</date>
            <delta_ts>2012-07-27 10:24:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92281-20120726153103.patch</filename>
            <type>text/plain</type>
            <size>33648</size>
            <attacher name="Sadrul Habib Chowdhury">sadrul</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNjU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTNhNzVlZGZlN2ZlY2Fk
Y2FjOGU2YTYzOGZiYjEzMTQ5NjdkOWQzOC4uMjU3NDZlZTQ3ZGNiMDQwMWNjZjkyNWZkMWZjNTFm
NWQ0MGIxZWFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTA3LTI2ICBTYWRy
dWwgSGFiaWIgQ2hvd2RodXJ5ICA8c2FkcnVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBQcm9w
YWdhdGUgZ2VzdHVyZSBldmVudHMgdG8gcGx1Z2lucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRh
bSBCYXJ0aC4KKworICAgICAgICBQcm9wYWdhdGUgZ2VzdHVyZSBldmVudHMgdG8gcGx1Z2lucy4g
VGhpcyBjaGFuZ2UgZG9lcyBub3QgZXhwb3NlIHRoZSBnZXN0dXJlIGV2ZW50cworICAgICAgICB0
byBKYXZhU2NyaXB0LCBzaW5jZSB0aGVyZSBpcyBubyBzcGVjIGZvciB0aGF0IGF0IHRoZSBtb21l
bnQuIEV4cG9zaW5nIGdlc3R1cmUgZXZlbnRzCisgICAgICAgIHRvIEphdmFTY3JpcHQgd2lsbCBi
ZSBkb25lIHNlcGFyYXRlbHksIG9uY2UgdGhlcmUgaXMgYSBzcGVjIGZvciBpdC4KKworICAgICAg
ICBUZXN0OiBwbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL2dlc3R1cmUtZXZlbnRzLmh0bWwKKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnROYW1lczo6aXNHZXN0dXJlRXZlbnRUeXBlKToKKyAgICAgICAgKEV2ZW50TmFtZXMp
OgorICAgICAgICAqIGRvbS9HZXN0dXJlRXZlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2ZW50OjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6R2VzdHVyZUV2ZW50Ojppbml0R2VzdHVyZUV2ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6Okdlc3R1cmVFdmVudDo6aW50ZXJmYWNlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpHZXN0
dXJlRXZlbnQ6Okdlc3R1cmVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJlRXZlbnRE
aXNwYXRjaE1lZGlhdG9yOjpHZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlhdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6Okdlc3R1cmVFdmVudERpc3BhdGNoTWVkaWF0b3I6OmV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6Okdlc3R1cmVFdmVudERpc3BhdGNoTWVkaWF0b3I6OmRpc3BhdGNoRXZlbnQpOgor
ICAgICAgICAqIGRvbS9HZXN0dXJlRXZlbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKEdlc3R1cmVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJlRXZlbnQ6
On5HZXN0dXJlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2ZW50OjpkZWx0YVgp
OgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2ZW50OjpkZWx0YVkpOgorICAgICAgICAoV2Vi
Q29yZTo6R2VzdHVyZUV2ZW50OjpHZXN0dXJlRXZlbnQpOgorICAgICAgICAoR2VzdHVyZUV2ZW50
RGlzcGF0Y2hNZWRpYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJlRXZlbnREaXNwYXRj
aE1lZGlhdG9yOjpjcmVhdGUpOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6ZGlzcGF0Y2hHZXN0dXJlRXZlbnQpOgor
ICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE5vZGUp
OgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5k
bGVHZXN0dXJlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisKIDIwMTIt
MDctMjQgIFNoYXduIFNpbmdoICA8c2hhd25zaW5naEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
W2Nocm9taXVtXSBSZWZhY3RvciBDQ0xheWVyVHJlZUhvc3RDb21tb246IG1vdmUgcm9vdCBsYXll
ciBzcGVjaWFsIGNhc2UgaW5pdGlhbGl6YXRpb24gaW50byBpbnRlcm5hbCBjb2RlLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwppbmRleCAyN2I1NTJiZTRkODFhMmIzYTZjZmJiMGRiYzE2NjA1M2E4
ZGQ0NjNlLi44N2ExODMyZjNkOGM4ZmMxMTllMzc2NWNmMDA0ZTc3MjY5Y2JlNDdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA3LTI2ICBTYWRydWwg
SGFiaWIgQ2hvd2RodXJ5ICA8c2FkcnVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBQcm9wYWdh
dGUgZ2VzdHVyZSBldmVudHMgdG8gcGx1Z2lucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBC
YXJ0aC4KKworICAgICAgICBQcm9wYWdhdGUgZ2VzdHVyZSBldmVudHMgdG8gcGx1Z2lucy4KKwor
ICAgICAgICAqIHNyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHA6CisgICAgICAgIChXZWJL
aXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZXN0dXJlRXZlbnRCdWlsZGVyOjpXZWJHZXN0dXJl
RXZlbnRCdWlsZGVyKToKKyAgICAgICAgKiBzcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uaDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYkdlc3R1
cmVFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHNyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luQ29udGFpbmVySW1wbDo6aGFuZGxlRXZlbnQp
OgorICAgICAgICAqIHNyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmg6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYlBsdWdpbkNvbnRhaW5lckltcGwpOgorCiAyMDEyLTA3LTI0ICBT
aGF3biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1
bV0gUmVmYWN0b3IgQ0NMYXllclRyZWVIb3N0Q29tbW9uOiBtb3ZlIHJvb3QgbGF5ZXIgc3BlY2lh
bCBjYXNlIGluaXRpYWxpemF0aW9uIGludG8gaW50ZXJuYWwgY29kZS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKaW5kZXggMjhiNjllM2E1NGE1ZjUyZjE5YzUyOTcxNzNiZTBiNzRlYjlmMjVkMS4uMTE0ZmJj
MjEwYzZiOTdiMTc0YjE2ODYxOWU5MGE2MmYwYTI5OTk2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
QEAgLTExMDEsNiArMTEwMSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vRXhjZXB0
aW9uQmFzZS5jcHAKICAgICBkb20vRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmNwcAogICAgIGRv
bS9HZW5lcmljRXZlbnRRdWV1ZS5jcHAKKyAgICBkb20vR2VzdHVyZUV2ZW50LmNwcAogICAgIGRv
bS9JY29uVVJMLmNwcAogICAgIGRvbS9JZFRhcmdldE9ic2VydmVyLmNwcAogICAgIGRvbS9JZFRh
cmdldE9ic2VydmVyUmVnaXN0cnkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRl
eCBkYjVmODY0NGJkOWY2MGNmNjA3OWVmZDkwZTAzNWIwMjQyNDRmYjg3Li43OGJlZDM3MjkzNmUx
MTBlOTQ4NTUzZWFhZDgzYTA3YmVhZjE4MmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KQEAgLTE5NTgsNiArMTk1OCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dl
YkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L2RvbS9FeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0Zy
YWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vR2VzdHVy
ZUV2ZW50LmNwcCBcCisJU291cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVFdmVudC5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9kb20vSWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXIuaCBc
CiAJU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVldWUuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGVi
YzNiNTk3ZjMyMGIxN2ViYzU1MjhmMjBiNDZjMmJjMjc0YjcwNDYuLjJlMDAwY2Y2YTMwNDBlMWRk
MDBkMjA0OGRjZmM2ZmY3ZDRkZjA2N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNDA4LDYgKzQwOCw3IEBA
IFNPVVJDRVMgKz0gXAogICAgIGRvbS9FeGNlcHRpb25CYXNlLmNwcCBcCiAgICAgZG9tL0V4Y2Vw
dGlvbkNvZGVQbGFjZWhvbGRlci5jcHAgXAogICAgIGRvbS9HZW5lcmljRXZlbnRRdWV1ZS5jcHAg
XAorICAgIGRvbS9HZXN0dXJlRXZlbnQuY3BwIFwKICAgICBkb20vSWNvblVSTC5jcHAgXAogICAg
IGRvbS9JZFRhcmdldE9ic2VydmVyLmNwcCBcCiAgICAgZG9tL0lkVGFyZ2V0T2JzZXJ2ZXJSZWdp
c3RyeS5jcHAgXApAQCAtMTUzNCw2ICsxNTM1LDcgQEAgSEVBREVSUyArPSBcCiAgICAgZG9tL0V4
Y2VwdGlvbkJhc2UuaCBcCiAgICAgZG9tL0V4Y2VwdGlvbkNvZGUuaCBcCiAgICAgZG9tL0ZyYWdt
ZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oIFwKKyAgICBkb20vR2VzdHVyZUV2ZW50LmggXAogICAg
IGRvbS9JZFRhcmdldE9ic2VydmVyLmggXAogICAgIGRvbS9JZFRhcmdldE9ic2VydmVyUmVnaXN0
cnkuaCBcCiAgICAgZG9tL0tleWJvYXJkRXZlbnQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYzkx
YzQxNTE3MDg5YTVkZTA1MmEwZDYzZjE1MGYwYjMzMTE2MWZlMC4uY2E3YTBiZTgzMjQyZmM1ZGYy
ODZkYzEwY2I3NGI5NTBkNTU5N2Q4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNTE5Myw2ICs1MTkz
LDggQEAKICAgICAgICAgICAgICdkb20vRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmNwcCcsCiAg
ICAgICAgICAgICAnZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmNwcCcsCiAgICAgICAgICAgICAnZG9t
L0dlbmVyaWNFdmVudFF1ZXVlLmgnLAorICAgICAgICAgICAgJ2RvbS9HZXN0dXJlRXZlbnQuY3Bw
JywKKyAgICAgICAgICAgICdkb20vR2VzdHVyZUV2ZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9I
YXNoQ2hhbmdlRXZlbnQuaCcsCiAgICAgICAgICAgICAnZG9tL0lnbm9yZURlc3RydWN0aXZlV3Jp
dGVDb3VudEluY3JlbWVudGVyLmgnLAogICAgICAgICAgICAgJ2RvbS9JY29uVVJMLmNwcCcsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCBiMGVmYmU3NjUwOGM4ZWIyNTRkZjI5NjJiYmU4OWRj
NjI3MTcxNDJkLi44OThkYTk2MjIzZmQwNzFhZDAwYmQxYTkyNTc0ZTJhYzJmYjc1ZTZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTcxLDYgKzcxLDExIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBtYWNybyhmb2N1cykgXAogICAgIG1hY3JvKGZvY3VzaW4pIFwKICAgICBtYWNybyhm
b2N1c291dCkgXAorICAgIG1hY3JvKGdlc3R1cmV0YXApIFwKKyAgICBtYWNybyhnZXN0dXJldGFw
ZG93bikgXAorICAgIG1hY3JvKGdlc3R1cmVzY3JvbGxzdGFydCkgXAorICAgIG1hY3JvKGdlc3R1
cmVzY3JvbGxlbmQpIFwKKyAgICBtYWNybyhnZXN0dXJlc2Nyb2xsdXBkYXRlKSBcCiAgICAgbWFj
cm8oaGFzaGNoYW5nZSkgXAogICAgIG1hY3JvKGlucHV0KSBcCiAgICAgbWFjcm8oaW52YWxpZCkg
XApAQCAtMjYyLDYgKzI2NywxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAg
ICAgfHwgZXZlbnRUeXBlID09IHRvdWNoY2FuY2VsRXZlbnQ7CiAgICAgICAgIH0KIAorICAgICAg
ICBpbmxpbmUgYm9vbCBpc0dlc3R1cmVFdmVudFR5cGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVu
dFR5cGUpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBldmVudFR5cGUgPT0g
Z2VzdHVyZXRhcEV2ZW50CisgICAgICAgICAgICAgICAgfHwgZXZlbnRUeXBlID09IGdlc3R1cmV0
YXBkb3duRXZlbnQKKyAgICAgICAgICAgICAgICB8fCBldmVudFR5cGUgPT0gZ2VzdHVyZXNjcm9s
bHN0YXJ0RXZlbnQKKyAgICAgICAgICAgICAgICB8fCBldmVudFR5cGUgPT0gZ2VzdHVyZXNjcm9s
bGVuZEV2ZW50CisgICAgICAgICAgICAgICAgfHwgZXZlbnRUeXBlID09IGdlc3R1cmVzY3JvbGx1
cGRhdGVFdmVudDsKKyAgICAgICAgfQorCiAgICAgICAgIFZlY3RvcjxBdG9taWNTdHJpbmc+IHRv
dWNoRXZlbnROYW1lcygpIGNvbnN0CiAgICAgICAgIHsKICAgICAgICAgICAgIFZlY3RvcjxBdG9t
aWNTdHJpbmc+IG5hbWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVF
dmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vR2VzdHVyZUV2ZW50LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lMjQ3YjJmYjgxYzFmNDNiYzBlNzI2YzRmZmViODc4ZDNhNWZiMDFjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVFdmVudC5jcHAKQEAgLTAsMCArMSwxMjgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKEdFU1RVUkVf
RVZFTlRTKQorCisjaW5jbHVkZSAiR2VzdHVyZUV2ZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworUGFzc1JlZlB0cjxHZXN0dXJlRXZlbnQ+IEdlc3R1cmVFdmVudDo6Y3JlYXRlKCkKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdlc3R1cmVFdmVudCk7Cit9CisKK1Bhc3NSZWZQdHI8
R2VzdHVyZUV2ZW50PiBHZXN0dXJlRXZlbnQ6OmNyZWF0ZShQYXNzUmVmUHRyPEFic3RyYWN0Vmll
dz4gdmlldywgY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGV2ZW50KQoreworICAgIEF0b21p
Y1N0cmluZyBldmVudFR5cGU7CisgICAgc3dpdGNoIChldmVudC50eXBlKCkpIHsKKyAgICBjYXNl
IFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVTY3JvbGxCZWdpbjoKKyAgICAgICAgZXZlbnRUeXBlID0g
ZXZlbnROYW1lcygpLmdlc3R1cmVzY3JvbGxzdGFydEV2ZW50OyBicmVhazsKKyAgICBjYXNlIFBs
YXRmb3JtRXZlbnQ6Okdlc3R1cmVTY3JvbGxFbmQ6CisgICAgICAgIGV2ZW50VHlwZSA9IGV2ZW50
TmFtZXMoKS5nZXN0dXJlc2Nyb2xsZW5kRXZlbnQ7IGJyZWFrOworICAgIGNhc2UgUGxhdGZvcm1F
dmVudDo6R2VzdHVyZVNjcm9sbFVwZGF0ZToKKyAgICAgICAgZXZlbnRUeXBlID0gZXZlbnROYW1l
cygpLmdlc3R1cmVzY3JvbGx1cGRhdGVFdmVudDsgYnJlYWs7CisgICAgY2FzZSBQbGF0Zm9ybUV2
ZW50OjpHZXN0dXJlVGFwOgorICAgICAgICBldmVudFR5cGUgPSBldmVudE5hbWVzKCkuZ2VzdHVy
ZXRhcEV2ZW50OyBicmVhazsKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVUYXBEb3du
OgorICAgICAgICBldmVudFR5cGUgPSBldmVudE5hbWVzKCkuZ2VzdHVyZXRhcGRvd25FdmVudDsg
YnJlYWs7CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlRG91YmxlVGFwOgorICAgIGNh
c2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVR3b0ZpbmdlclRhcDoKKyAgICBjYXNlIFBsYXRmb3Jt
RXZlbnQ6Okdlc3R1cmVMb25nUHJlc3M6CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJl
UGluY2hCZWdpbjoKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVQaW5jaEVuZDoKKyAg
ICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVQaW5jaFVwZGF0ZToKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBHZXN0dXJlRXZlbnQoZXZlbnRUeXBlLCB2aWV3LCBldmVudC5nbG9iYWxQb3NpdGlvbigp
LngoKSwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS55KCksIGV2ZW50LnBvc2l0aW9uKCkueCgpLCBl
dmVudC5wb3NpdGlvbigpLnkoKSwgZXZlbnQuY3RybEtleSgpLCBldmVudC5hbHRLZXkoKSwgZXZl
bnQuc2hpZnRLZXkoKSwgZXZlbnQubWV0YUtleSgpLCBldmVudC5kZWx0YVgoKSwgZXZlbnQuZGVs
dGFZKCkpKTsKK30KKwordm9pZCBHZXN0dXJlRXZlbnQ6OmluaXRHZXN0dXJlRXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiB0eXBlLCBQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4gdmlldywgaW50IHNj
cmVlblgsIGludCBzY3JlZW5ZLCBpbnQgY2xpZW50WCwgaW50IGNsaWVudFksIGJvb2wgY3RybEtl
eSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgZmxvYXQgZGVsdGFY
LCBmbG9hdCBkZWx0YVkpCit7CisgICAgaWYgKGRpc3BhdGNoZWQoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgaW5pdFVJRXZlbnQodHlwZSwgdHJ1ZSwgdHJ1ZSwgdmlldywgMCk7CisgICAgbV9z
Y3JlZW5Mb2NhdGlvbiA9IEludFBvaW50KHNjcmVlblgsIHNjcmVlblkpOworICAgIG1fY3RybEtl
eSA9IGN0cmxLZXk7CisgICAgbV9hbHRLZXkgPSBhbHRLZXk7CisgICAgbV9zaGlmdEtleSA9IHNo
aWZ0S2V5OworICAgIG1fbWV0YUtleSA9IG1ldGFLZXk7CisKKyAgICBtX2RlbHRhWCA9IGRlbHRh
WDsKKyAgICBtX2RlbHRhWSA9IGRlbHRhWTsKKworICAgIGluaXRDb29yZGluYXRlcyhJbnRQb2lu
dChjbGllbnRYLCBjbGllbnRZKSk7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgR2VzdHVyZUV2
ZW50OjppbnRlcmZhY2VOYW1lKCkgY29uc3QKK3sKKyAgICBzdGF0aWMgQXRvbWljU3RyaW5nIGlu
dGVyZmFjZSgiVEJESW50ZXJmYWNlIik7CisgICAgcmV0dXJuIGludGVyZmFjZTsKK30KKworR2Vz
dHVyZUV2ZW50OjpHZXN0dXJlRXZlbnQoKQorICAgIDogbV9kZWx0YVgoMCkKKyAgICAsIG1fZGVs
dGFZKDApCit7Cit9CisKK0dlc3R1cmVFdmVudDo6R2VzdHVyZUV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgdHlwZSwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+IHZpZXcsIGludCBzY3JlZW5YLCBp
bnQgc2NyZWVuWSwgaW50IGNsaWVudFgsIGludCBjbGllbnRZLCBib29sIGN0cmxLZXksIGJvb2wg
YWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIGZsb2F0IGRlbHRhWCwgZmxvYXQg
ZGVsdGFZKQorICAgIDogTW91c2VSZWxhdGVkRXZlbnQodHlwZSwgdHJ1ZSwgdHJ1ZSwgdmlldywg
MCwgSW50UG9pbnQoc2NyZWVuWCwgc2NyZWVuWSksIEludFBvaW50KGNsaWVudFgsIGNsaWVudFkp
LAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgICAgICAgICAgICAgICAgICAgICBJbnRQ
b2ludCgwLCAwKSwKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgY3RybEtleSwgYWx0
S2V5LCBzaGlmdEtleSwgbWV0YUtleSkKKyAgICAsIG1fZGVsdGFYKGRlbHRhWCkKKyAgICAsIG1f
ZGVsdGFZKGRlbHRhWSkKK3sKK30KKworR2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6R2Vz
dHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNzUmVmUHRyPEdlc3R1cmVFdmVudD4gZ2VzdHVy
ZUV2ZW50KQorICAgIDogRXZlbnREaXNwYXRjaE1lZGlhdG9yKGdlc3R1cmVFdmVudCkKK3sKK30K
KworR2VzdHVyZUV2ZW50KiBHZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpldmVudCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdlc3R1cmVFdmVudCo+KEV2ZW50RGlzcGF0
Y2hNZWRpYXRvcjo6ZXZlbnQoKSk7Cit9CisKK2Jvb2wgR2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRp
YXRvcjo6ZGlzcGF0Y2hFdmVudChFdmVudERpc3BhdGNoZXIqIGRpc3BhdGNoZXIpIGNvbnN0Cit7
CisgICAgaWYgKGRpc3BhdGNoZXItPm5vZGUoKS0+ZGlzYWJsZWQoKSkKKyAgICAgICAgcmV0dXJu
IHRydWU7CisKKyAgICBkaXNwYXRjaGVyLT5kaXNwYXRjaEV2ZW50KGV2ZW50KCkpOworICAgIEFT
U0VSVCghZXZlbnQoKS0+ZGVmYXVsdFByZXZlbnRlZCgpKTsKKyAgICByZXR1cm4gZXZlbnQoKS0+
ZGVmYXVsdEhhbmRsZWQoKSB8fCBldmVudCgpLT5kZWZhdWx0UHJldmVudGVkKCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShHRVNUVVJFX0VWRU5UUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9HZXN0dXJlRXZlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9HZXN0dXJlRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZjA4M2MzZjIyMDY5ODkwOGYz
ZWM5NDQ5ZTQzNmQ3Njc1MzYxNmMyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0dlc3R1cmVFdmVudC5oCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBH
ZXN0dXJlRXZlbnRfaAorI2RlZmluZSBHZXN0dXJlRXZlbnRfaAorCisjaWYgRU5BQkxFKEdFU1RV
UkVfRVZFTlRTKQorCisjaW5jbHVkZSAiRXZlbnREaXNwYXRjaGVyLmgiCisjaW5jbHVkZSAiRXZl
bnROYW1lcy5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisj
aW5jbHVkZSAiTW91c2VSZWxhdGVkRXZlbnQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUV2ZW50Lmgi
CisjaW5jbHVkZSAiUGxhdGZvcm1HZXN0dXJlRXZlbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBHZXN0dXJlRXZlbnQgOiBwdWJsaWMgTW91c2VSZWxhdGVkRXZlbnQgeworcHVi
bGljOgorICAgIHZpcnR1YWwgfkdlc3R1cmVFdmVudCgpIHsgfQorCisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8R2VzdHVyZUV2ZW50PiBjcmVhdGUoKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZXN0
dXJlRXZlbnQ+IGNyZWF0ZShQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4sIGNvbnN0IFBsYXRmb3Jt
R2VzdHVyZUV2ZW50Jik7CisKKyAgICB2b2lkIGluaXRHZXN0dXJlRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4sIGludCBzY3JlZW5YLCBpbnQg
c2NyZWVuWSwgaW50IGNsaWVudFgsIGludCBjbGllbnRZLCBib29sIGN0cmxLZXksIGJvb2wgYWx0
S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVs
dGFZKTsKKworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbnRlcmZhY2VOYW1lKCkg
Y29uc3Q7CisKKyAgICBmbG9hdCBkZWx0YVgoKSBjb25zdCB7IHJldHVybiBtX2RlbHRhWDsgfQor
ICAgIGZsb2F0IGRlbHRhWSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVsdGFZOyB9CisKK3ByaXZhdGU6
CisgICAgR2VzdHVyZUV2ZW50KCk7CisgICAgR2VzdHVyZUV2ZW50KGNvbnN0IEF0b21pY1N0cmlu
ZyYgdHlwZSwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+LCBpbnQgc2NyZWVuWCwgaW50IHNjcmVl
blksIGludCBjbGllbnRYLCBpbnQgY2xpZW50WSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwg
Ym9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSk7
CisKKyAgICBmbG9hdCBtX2RlbHRhWDsKKyAgICBmbG9hdCBtX2RlbHRhWTsKK307CisKK2NsYXNz
IEdlc3R1cmVFdmVudERpc3BhdGNoTWVkaWF0b3IgOiBwdWJsaWMgRXZlbnREaXNwYXRjaE1lZGlh
dG9yIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZXN0dXJlRXZlbnREaXNwYXRj
aE1lZGlhdG9yPiBjcmVhdGUoUGFzc1JlZlB0cjxHZXN0dXJlRXZlbnQ+IGdlc3R1cmVFdmVudCkK
KyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgR2VzdHVyZUV2ZW50RGlzcGF0Y2hN
ZWRpYXRvcihnZXN0dXJlRXZlbnQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQg
R2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNzUmVmUHRyPEdlc3R1cmVFdmVudD4pOwor
CisgICAgR2VzdHVyZUV2ZW50KiBldmVudCgpIGNvbnN0OworCisgICAgdmlydHVhbCBib29sIGRp
c3BhdGNoRXZlbnQoRXZlbnREaXNwYXRjaGVyKikgY29uc3Q7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCisKKyNlbmRpZiAv
LyBHZXN0dXJlRXZlbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGYzMGMzZmNiZmNmODYwYWUwMzQx
N2I1ZGNkMDExN2I5NmM1ZmY5ZWQuLjc1MjhjZmQzMTE3YWIzMTRhODJkNTI1ZTAwYjVjMzBmNDA3
NWE1MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTEwOSw2ICsxMDksMTAgQEAKICNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgog
CisjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQorI2luY2x1ZGUgIkdlc3R1cmVFdmVudC5oIgor
I2VuZGlmCisKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRy
b2xsZXIuaCIKICNlbmRpZgpAQCAtMjYzMyw2ICsyNjM3LDEzIEBAIGJvb2wgTm9kZTo6ZGlzcGF0
Y2hNb3VzZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIGNvbnN0IEF0b21p
Y1N0cmluCiAgICAgcmV0dXJuIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hFdmVudCh0aGlzLCBN
b3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVu
dFR5cGUsIGRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCksIGV2ZW50LCBkZXRhaWwsIHJlbGF0ZWRU
YXJnZXQpKSk7CiB9CiAKKyNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCitib29sIE5vZGU6OmRp
c3BhdGNoR2VzdHVyZUV2ZW50KGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiBldmVudCkKK3sK
KyAgICByZXR1cm4gRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaEV2ZW50KHRoaXMsIEdlc3R1cmVF
dmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShHZXN0dXJlRXZlbnQ6OmNyZWF0ZShkb2N1bWVu
dCgpLT5kZWZhdWx0VmlldygpLCBldmVudCkpKTsKK30KKyNlbmRpZgorCiB2b2lkIE5vZGU6OmRp
c3BhdGNoU2ltdWxhdGVkQ2xpY2soUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQsIGJvb2wgc2VuZE1v
dXNlRXZlbnRzLCBib29sIHNob3dQcmVzc2VkTG9vaykKIHsKICAgICBFdmVudERpc3BhdGNoZXI6
OmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2sodGhpcywgZXZlbnQsIHNlbmRNb3VzZUV2ZW50cywgc2hv
d1ByZXNzZWRMb29rKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDg2YTdkMzllZDU4YmRiYzlkNDJmMjQxZTQ3
NmM5YTZiMzE2YmQ2ZDAuLmEzMjA0YmExYTdhM2U4MjZiNDU5MjNmNmEyMjU5ODUzNWU4YjQwM2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuaApAQCAtODgsNiArODgsMTAgQEAgY2xhc3MgU2hhZG93Um9vdDsKIGNsYXNz
IFRhZ05vZGVMaXN0OwogY2xhc3MgVHJlZVNjb3BlOwogCisjaWYgRU5BQkxFKEdFU1RVUkVfRVZF
TlRTKQorY2xhc3MgUGxhdGZvcm1HZXN0dXJlRXZlbnQ7CisjZW5kaWYKKwogI2lmIEVOQUJMRShN
SUNST0RBVEEpCiBjbGFzcyBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb247CiBjbGFzcyBQcm9wZXJ0
eU5vZGVMaXN0OwpAQCAtNjA5LDYgKzYxMyw5IEBAIHB1YmxpYzoKICAgICBib29sIGRpc3BhdGNo
S2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50Jik7CiAgICAgYm9vbCBkaXNwYXRj
aFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7CiAgICAgYm9vbCBkaXNwYXRj
aE1vdXNlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUsIGludCBjbGlja0NvdW50ID0gMCwgTm9kZSogcmVsYXRlZFRhcmdldCA9IDAp
OworI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKKyAgICBib29sIGRpc3BhdGNoR2VzdHVyZUV2
ZW50KGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50Jik7CisjZW5kaWYKICAgICB2b2lkIGRpc3Bh
dGNoU2ltdWxhdGVkQ2xpY2soUGFzc1JlZlB0cjxFdmVudD4gdW5kZXJseWluZ0V2ZW50LCBib29s
IHNlbmRNb3VzZUV2ZW50cyA9IGZhbHNlLCBib29sIHNob3dQcmVzc2VkTG9vayA9IHRydWUpOwog
ICAgIGJvb2wgZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggOGVlYTNmYTY1OGI1OWZj
YmNkY2NmOTIxM2JjNzhlMjhhYTY0Nzc3Yi4uMDYxZDgzMzBmNTY3ZjliYjQwNzI2MWU5ZmJhNDlm
MjE2MmMyNGNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzY3LDEw
ICszNjcsMTEgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmNsZWFyKCkKICNpZiBFTkFCTEUoVE9VQ0hf
RVZFTlRTKQogICAgIG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50VGFyZ2V0cy5jbGVhcigpOwogI2Vu
ZGlmCi0gICAgbV9tYXhNb3VzZU1vdmVkRHVyYXRpb24gPSAwOwogI2lmIEVOQUJMRShHRVNUVVJF
X0VWRU5UUykKLSAgICBtX2Jhc2VFdmVudFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpOb1R5cGU7Cisg
ICAgbV9zY3JvbGxHZXN0dXJlSGFuZGxpbmdOb2RlID0gMDsKICNlbmRpZgorICAgIG1fbWF4TW91
c2VNb3ZlZER1cmF0aW9uID0gMDsKKyAgICBtX2Jhc2VFdmVudFR5cGUgPSBQbGF0Zm9ybUV2ZW50
OjpOb1R5cGU7CiB9CiAKIHZvaWQgRXZlbnRIYW5kbGVyOjpub2RlV2lsbEJlUmVtb3ZlZChOb2Rl
KiBub2RlVG9CZVJlbW92ZWQpCkBAIC0yNDEzLDYgKzI0MTQsMjkgQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OmhhbmRsZUdlc3R1cmVUYXBEb3duKCkKIAogYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZUdl
c3R1cmVFdmVudChjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50KQogewor
ICAgIE5vZGUqIGV2ZW50VGFyZ2V0ID0gMDsKKyAgICBpZiAoZ2VzdHVyZUV2ZW50LnR5cGUoKSA9
PSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlU2Nyb2xsRW5kIHx8IGdlc3R1cmVFdmVudC50eXBlKCkg
PT0gUGxhdGZvcm1FdmVudDo6R2VzdHVyZVNjcm9sbFVwZGF0ZSkKKyAgICAgICAgZXZlbnRUYXJn
ZXQgPSBtX3Njcm9sbEdlc3R1cmVIYW5kbGluZ05vZGUuZ2V0KCk7CisKKyAgICBpZiAoIWV2ZW50
VGFyZ2V0KSB7CisgICAgICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0ID0gaGl0VGVzdFJlc3VsdEF0
UG9pbnQoZ2VzdHVyZUV2ZW50LnBvc2l0aW9uKCksIGZhbHNlLCBmYWxzZSwgRG9udEhpdFRlc3RT
Y3JvbGxiYXJzLCBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkgfCBIaXRUZXN0UmVxdWVzdDo6QWN0
aXZlKTsKKyAgICAgICAgZXZlbnRUYXJnZXQgPSB0YXJnZXROb2RlKHJlc3VsdCk7CisgICAgfQor
CisgICAgaWYgKGV2ZW50VGFyZ2V0KSB7CisgICAgICAgIGJvb2wgZXZlbnRTd2FsbG93ZWQgPSBl
dmVudFRhcmdldC0+ZGlzcGF0Y2hHZXN0dXJlRXZlbnQoZ2VzdHVyZUV2ZW50KTsKKworICAgICAg
ICBpZiAoZ2VzdHVyZUV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlU2Nyb2xs
QmVnaW4pIHsKKyAgICAgICAgICAgIGlmIChldmVudFN3YWxsb3dlZCkKKyAgICAgICAgICAgICAg
ICBtX3Njcm9sbEdlc3R1cmVIYW5kbGluZ05vZGUgPSBldmVudFRhcmdldDsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICBtX3Njcm9sbEdlc3R1cmVIYW5kbGluZ05vZGUgPSAwOwor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKGV2ZW50U3dhbGxvd2VkKQorICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorCiAgICAgLy8gRklYTUU6IEEgbW9yZSBnZW5lcmFsIHNjcm9sbCBz
eXN0ZW0gKGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDU5Nikgd2ls
bAogICAgIC8vIGVsaW1pbmF0ZSB0aGUgbmVlZCBmb3IgdGhpcy4KICAgICBUZW1wb3JhcnlDaGFu
Z2U8UGxhdGZvcm1FdmVudDo6VHlwZT4gYmFzZUV2ZW50VHlwZShtX2Jhc2VFdmVudFR5cGUsIGdl
c3R1cmVFdmVudC50eXBlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggMWQy
ZDM3NWMzOWJiNThiYTUzYTU4ZjU0MzA3ZWIxNjI1ZWYwN2ZkMS4uZWUyNjk0NDMzZGIxYzI3OTlk
NTA0YjJkNDg0ZjA0ZTM1NDcwMzBlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBA
IC00NDYsNiArNDQ2LDExIEBAIHByaXZhdGU6CiAgICAgVG91Y2hUYXJnZXRNYXAgbV9vcmlnaW5h
dGluZ1RvdWNoUG9pbnRUYXJnZXRzOwogICAgIGJvb2wgbV90b3VjaFByZXNzZWQ7CiAjZW5kaWYK
KworI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKKyAgICBSZWZQdHI8Tm9kZT4gbV9zY3JvbGxH
ZXN0dXJlSGFuZGxpbmdOb2RlOworI2VuZGlmCisKICAgICBkb3VibGUgbV9tYXhNb3VzZU1vdmVk
RHVyYXRpb247CiAgICAgUGxhdGZvcm1FdmVudDo6VHlwZSBtX2Jhc2VFdmVudFR5cGU7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZl
cnNpb24uY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZl
cnNpb24uY3BwCmluZGV4IDIwN2Q4MWNhMzg0ZDM2YzgzYTRkMTAxZTQ3MGRhOWUwOTIyMjM0ZDgu
LmMwOGVkZWFhYTZjNTY2NjI5MWI0ZGNiM2JiMTc2YmJlZWEwN2I5NTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAK
QEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJXZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5oIgog
CiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkdlc3R1cmVFdmVudC5oIgogI2lu
Y2x1ZGUgIktleWJvYXJkQ29kZXMuaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5j
bHVkZSAiTW91c2VFdmVudC5oIgpAQCAtNTEyLDQgKzUxMywzMSBAQCBXZWJUb3VjaEV2ZW50QnVp
bGRlcjo6V2ViVG91Y2hFdmVudEJ1aWxkZXIoY29uc3QgV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IFRv
dWNoRXZlbgogCiAjZW5kaWYgLy8gRU5BQkxFKFRPVUNIX0VWRU5UUykKIAorI2lmIEVOQUJMRShH
RVNUVVJFX0VWRU5UUykKK1dlYkdlc3R1cmVFdmVudEJ1aWxkZXI6OldlYkdlc3R1cmVFdmVudEJ1
aWxkZXIoY29uc3QgV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IEdlc3R1cmVFdmVudCYgZXZlbnQpCit7
CisgICAgaWYgKGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCkuZ2VzdHVyZXRhcEV2ZW50KQor
ICAgICAgICB0eXBlID0gR2VzdHVyZVRhcDsKKyAgICBlbHNlIGlmIChldmVudC50eXBlKCkgPT0g
ZXZlbnROYW1lcygpLmdlc3R1cmV0YXBkb3duRXZlbnQpCisgICAgICAgIHR5cGUgPSBHZXN0dXJl
VGFwRG93bjsKKyAgICBlbHNlIGlmIChldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmdlc3R1
cmVzY3JvbGxzdGFydEV2ZW50KQorICAgICAgICB0eXBlID0gR2VzdHVyZVNjcm9sbEJlZ2luOwor
ICAgIGVsc2UgaWYgKGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCkuZ2VzdHVyZXNjcm9sbGVu
ZEV2ZW50KQorICAgICAgICB0eXBlID0gR2VzdHVyZVNjcm9sbEVuZDsKKyAgICBlbHNlIGlmIChl
dmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmdlc3R1cmVzY3JvbGx1cGRhdGVFdmVudCkKKyAg
ICAgICAgdHlwZSA9IEdlc3R1cmVTY3JvbGxVcGRhdGU7CisKKyAgICB0aW1lU3RhbXBTZWNvbmRz
ID0gZXZlbnQudGltZVN0YW1wKCkgLyBtaWxsaXNQZXJTZWNvbmQ7CisgICAgbW9kaWZpZXJzID0g
Z2V0V2ViSW5wdXRNb2RpZmllcnMoZXZlbnQpOworCisgICAgZ2xvYmFsWCA9IGV2ZW50LnNjcmVl
blgoKTsKKyAgICBnbG9iYWxZID0gZXZlbnQuc2NyZWVuWSgpOworICAgIHggPSBldmVudC5hYnNv
bHV0ZUxvY2F0aW9uKCkueCgpIC0gd2lkZ2V0LT5sb2NhdGlvbigpLngoKTsKKyAgICB5ID0gZXZl
bnQuYWJzb2x1dGVMb2NhdGlvbigpLnkoKSAtIHdpZGdldC0+bG9jYXRpb24oKS55KCk7CisKKyAg
ICBkZWx0YVggPSBldmVudC5kZWx0YVgoKTsKKyAgICBkZWx0YVkgPSBldmVudC5kZWx0YVkoKTsK
K30KKyNlbmRpZiAvLyBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVu
dENvbnZlcnNpb24uaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRD
b252ZXJzaW9uLmgKaW5kZXggZDQ3YmRhODE0OTJmMWIwMTkxOTZlZDYzOThiNTdhNjk5Zjg0MDMx
MC4uNDg5NzVhNDA0NmIyMTJiMGYyZGI5OTJiZTY0YjhjODM0OTc5MGU4YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5oCkBA
IC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiV2ViSW5wdXRFdmVudC5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CitjbGFzcyBHZXN0dXJlRXZlbnQ7CiBjbGFzcyBLZXlib2FyZEV2ZW50OwogY2xh
c3MgTW91c2VFdmVudDsKIGNsYXNzIFNjcm9sbFZpZXc7CkBAIC0xMzEsNiArMTMyLDE1IEBAIHB1
YmxpYzoKIH07CiAjZW5kaWYgLy8gRU5BQkxFKFRPVUNIX0VWRU5UUykKIAorI2lmIEVOQUJMRShH
RVNUVVJFX0VWRU5UUykKKy8vIENvbnZlcnRzIFdlYkNvcmU6Okdlc3R1cmVFdmVudCB0byBhIGNv
cnJlc3BvbmRpbmcgV2ViR2VzdHVyZUV2ZW50LgorLy8gTk9URTogSWYgZXZlbnQgbWFwcGluZyBm
YWlscywgdGhlIHR5cGUgd2lsbCBiZSBzZXQgdG8gVW5kZWZpbmVkLgorY2xhc3MgV2ViR2VzdHVy
ZUV2ZW50QnVpbGRlciA6IHB1YmxpYyBXZWJHZXN0dXJlRXZlbnQgeworcHVibGljOgorICAgIFdl
Ykdlc3R1cmVFdmVudEJ1aWxkZXIoY29uc3QgV2ViQ29yZTo6V2lkZ2V0KiwgY29uc3QgV2ViQ29y
ZTo6R2VzdHVyZUV2ZW50Jik7Cit9OworI2VuZGlmIC8vIEVOQUJMRShHRVNUVVJFX0VWRU5UUykK
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAppbmRleCAyOTQ4OWUy
NWE1NDRiMTM1NzI0NmQ3YTM5YWE0ZjlkZmE5Y2JmNzVmLi4xYzVjMDVmNjZkMjJlOTA1Yjg0OTBk
NmVlNTMxYTNlYWViYTY5NmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcApAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1
ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZy
YW1lVmlldy5oIgorI2luY2x1ZGUgIkdlc3R1cmVFdmVudC5oIgogI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dC5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJIb3N0V2lu
ZG93LmgiCkBAIC0xODgsNiArMTg5LDggQEAgdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpo
YW5kbGVFdmVudChFdmVudCogZXZlbnQpCiAgICAgICAgIGhhbmRsZUtleWJvYXJkRXZlbnQoc3Rh
dGljX2Nhc3Q8S2V5Ym9hcmRFdmVudCo+KGV2ZW50KSk7CiAgICAgZWxzZSBpZiAoZXZlbnROYW1l
cygpLmlzVG91Y2hFdmVudFR5cGUoZXZlbnQtPnR5cGUoKSkpCiAgICAgICAgIGhhbmRsZVRvdWNo
RXZlbnQoc3RhdGljX2Nhc3Q8VG91Y2hFdmVudCo+KGV2ZW50KSk7CisgICAgZWxzZSBpZiAoZXZl
bnROYW1lcygpLmlzR2VzdHVyZUV2ZW50VHlwZShldmVudC0+dHlwZSgpKSkKKyAgICAgICAgaGFu
ZGxlR2VzdHVyZUV2ZW50KHN0YXRpY19jYXN0PEdlc3R1cmVFdmVudCo+KGV2ZW50KSk7CiAKICAg
ICAvLyBGSVhNRTogaXQgd291bGQgYmUgY2xlYW5lciBpZiBXaWRnZXQ6OmhhbmRsZUV2ZW50IHJl
dHVybmVkIHRydWUvZmFsc2UgYW5kCiAgICAgLy8gSFRNTFBsdWdpbkVsZW1lbnQgY2FsbGVkIHNl
dERlZmF1bHRIYW5kbGVkIG9yIGRlZmF1bHRFdmVudEhhbmRsZXIuCkBAIC03MzYsNiArNzM5LDE3
IEBAIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6aGFuZGxlVG91Y2hFdmVudChUb3VjaEV2
ZW50KiBldmVudCkKICAgICAvLyBGSVhNRTogQ2FuIGEgcGx1Z2luIGNoYW5nZSB0aGUgY3Vyc29y
IGZyb20gYSB0b3VjaC1ldmVudCBjYWxsYmFjaz8KIH0KIAordm9pZCBXZWJQbHVnaW5Db250YWlu
ZXJJbXBsOjpoYW5kbGVHZXN0dXJlRXZlbnQoR2VzdHVyZUV2ZW50KiBldmVudCkKK3sKKyAgICBX
ZWJHZXN0dXJlRXZlbnRCdWlsZGVyIHdlYkV2ZW50KHRoaXMsICpldmVudCk7CisgICAgaWYgKHdl
YkV2ZW50LnR5cGUgPT0gV2ViSW5wdXRFdmVudDo6VW5kZWZpbmVkKQorICAgICAgICByZXR1cm47
CisgICAgV2ViQ3Vyc29ySW5mbyBjdXJzb3JJbmZvOworICAgIGlmIChtX3dlYlBsdWdpbi0+aGFu
ZGxlSW5wdXRFdmVudCh3ZWJFdmVudCwgY3Vyc29ySW5mbykpCisgICAgICAgIGV2ZW50LT5zZXRE
ZWZhdWx0SGFuZGxlZCgpOworICAgIC8vIEZJWE1FOiBDYW4gYSBwbHVnaW4gY2hhbmdlIHRoZSBj
dXJzb3IgZnJvbSBhIHRvdWNoLWV2ZW50IGNhbGxiYWNrPworfQorCiB2b2lkIFdlYlBsdWdpbkNv
bnRhaW5lckltcGw6OmNhbGN1bGF0ZUdlb21ldHJ5KGNvbnN0IEludFJlY3QmIGZyYW1lUmVjdCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50UmVjdCYg
d2luZG93UmVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgSW50UmVjdCYgY2xpcFJlY3QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgKaW5kZXggNGMyYWFlYjRhMDQ4NDM0MGFmNjYxYTVh
ZGNiMmMyMzk4N2E4YzQ3Ni4uNjFmNWM1YjcxNDZmMjk5NTdkYjg5MThmOThkYjQ1YWZkOTQ1Njk3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFp
bmVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRh
aW5lckltcGwuaApAQCAtNDUsNiArNDUsNyBAQAogc3RydWN0IE5QT2JqZWN0OwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CitjbGFzcyBHZXN0dXJlRXZlbnQ7CiBjbGFzcyBIVE1MUGx1Z0luRWxlbWVu
dDsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBLZXlib2FyZEV2ZW50OwpAQCAtMTY3LDYgKzE2OCw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBoYW5kbGVXaGVlbEV2ZW50KFdlYkNvcmU6OldoZWVsRXZl
bnQqKTsKICAgICB2b2lkIGhhbmRsZUtleWJvYXJkRXZlbnQoV2ViQ29yZTo6S2V5Ym9hcmRFdmVu
dCopOwogICAgIHZvaWQgaGFuZGxlVG91Y2hFdmVudChXZWJDb3JlOjpUb3VjaEV2ZW50Kik7Cisg
ICAgdm9pZCBoYW5kbGVHZXN0dXJlRXZlbnQoV2ViQ29yZTo6R2VzdHVyZUV2ZW50Kik7CiAKICAg
ICB2b2lkIGNhbGN1bGF0ZUdlb21ldHJ5KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGZyYW1lUmVj
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkNvcmU6OkludFJlY3QmIHdpbmRvd1Jl
Y3QsCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
N2I0MDY3OTgxNjg2MTdhZTFkNDk3MGIwNWYyMmIyY2U5MDZjYzE4MC4uN2ZmMmNhZGQzMDBmMDlj
MjZiZjM4NDUzZjM3NGFjODFlYzE4M2QwYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA3LTI2ICBTYWRydWwg
SGFiaWIgQ2hvd2RodXJ5ICA8c2FkcnVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBQcm9wYWdh
dGUgZ2VzdHVyZSBldmVudHMgdG8gcGx1Z2lucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBC
YXJ0aC4KKworICAgICAgICBVcGRhdGUgVGVzdFdlYlBsdWdpbiB0byByZWNlaXZlIGV2ZW50cywg
YW5kIG91dHB1dCBsb2dzIGZvciB0aGUgZXZlbnRzLgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5jcHA6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjpo
YW5kbGVJbnB1dEV2ZW50KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
V2ViUGx1Z2luLmg6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjphY2NlcHRzSW5wdXRFdmVudHMp
OgorICAgICAgICAoVGVzdFdlYlBsdWdpbik6CisKIDIwMTItMDctMjUgIENocmlzdG9waGUgRHVt
ZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KIAogICAgICAgICBbV0syXVtXVFJdIExh
eW91dFRlc3RDb250cm9sbGVyLnNlbmRXZWJJbnRlbnRSZXNwb25zZSgpIG5lZWRzIHRvIGJlIGlt
cGxlbWVudGVkCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
V2ViUGx1Z2luLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVn
aW4uY3BwCmluZGV4IDU3MDE5MmNiYjEyYzM2MjA1NzM5Yjg2ZmU5MGU4Yjk4ZWUxYTNmYTMuLmJi
ZWJhNmY5YjcxZDZlOWZhZWM4M2QwZTkwYTlhMTFhZGViODE1YmUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uY3BwCkBAIC0yNyw2ICsyNyw3IEBA
CiAjaW5jbHVkZSAiVGVzdFdlYlBsdWdpbi5oIgogCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKKyNp
bmNsdWRlICJXZWJJbnB1dEV2ZW50LmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViR3JhcGhpY3ND
b250ZXh0M0QuaCIKICNpbmNsdWRlICJXZWJLaXQuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJL
aXRQbGF0Zm9ybVN1cHBvcnQuaCIKQEAgLTM2NCwzICszNjUsNDcgQEAgdW5zaWduZWQgVGVzdFdl
YlBsdWdpbjo6bG9hZFByb2dyYW0oY29uc3QgQ1N0cmluZyYgdmVydGV4U291cmNlLAogICAgIHJl
dHVybiBwcm9ncmFtOwogfQogCitib29sIFRlc3RXZWJQbHVnaW46OmhhbmRsZUlucHV0RXZlbnQo
Y29uc3QgV2ViS2l0OjpXZWJJbnB1dEV2ZW50JiBldmVudCwgV2ViS2l0OjpXZWJDdXJzb3JJbmZv
JiBpbmZvKQoreworICAgIGNvbnN0IGNoYXIqIGV2ZW50TmFtZSA9IDA7CisgICAgc3dpdGNoIChl
dmVudC50eXBlKSB7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6OlVuZGVmaW5lZDog
ICAgICAgICAgIGV2ZW50TmFtZSA9ICJ1bmtub3duIjsgYnJlYWs7CisKKyAgICBjYXNlIFdlYktp
dDo6V2ViSW5wdXRFdmVudDo6TW91c2VEb3duOiAgICAgICAgICAgZXZlbnROYW1lID0gIk1vdXNl
RG93biI7IGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpNb3VzZVVwOiAg
ICAgICAgICAgICBldmVudE5hbWUgPSAiTW91c2VVcCI7IGJyZWFrOworICAgIGNhc2UgV2ViS2l0
OjpXZWJJbnB1dEV2ZW50OjpNb3VzZU1vdmU6ICAgICAgICAgICBldmVudE5hbWUgPSAiTW91c2VN
b3ZlIjsgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6Ok1vdXNlRW50ZXI6
ICAgICAgICAgIGV2ZW50TmFtZSA9ICJNb3VzZUVudGVyIjsgYnJlYWs7CisgICAgY2FzZSBXZWJL
aXQ6OldlYklucHV0RXZlbnQ6Ok1vdXNlTGVhdmU6ICAgICAgICAgIGV2ZW50TmFtZSA9ICJNb3Vz
ZUxlYXZlIjsgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6OkNvbnRleHRN
ZW51OiAgICAgICAgIGV2ZW50TmFtZSA9ICJDb250ZXh0TWVudSI7IGJyZWFrOworCisgICAgY2Fz
ZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6Ok1vdXNlV2hlZWw6ICAgICAgICAgIGV2ZW50TmFtZSA9
ICJNb3VzZVdoZWVsIjsgYnJlYWs7CisKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6
UmF3S2V5RG93bjogICAgICAgICAgZXZlbnROYW1lID0gIlJhd0tleURvd24iOyBicmVhazsKKyAg
ICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6S2V5RG93bjogICAgICAgICAgICAgZXZlbnRO
YW1lID0gIktleURvd24iOyBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6
S2V5VXA6ICAgICAgICAgICAgICAgZXZlbnROYW1lID0gIktleVVwIjsgYnJlYWs7CisgICAgY2Fz
ZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6OkNoYXI6ICAgICAgICAgICAgICAgIGV2ZW50TmFtZSA9
ICJDaGFyIjsgYnJlYWs7CisKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6R2VzdHVy
ZVNjcm9sbEJlZ2luOiAgZXZlbnROYW1lID0gIkdlc3R1cmVTY3JvbGxCZWdpbiI7IGJyZWFrOwor
ICAgIGNhc2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpHZXN0dXJlU2Nyb2xsRW5kOiAgICBldmVu
dE5hbWUgPSAiR2VzdHVyZVNjcm9sbEVuZCI7IGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJJ
bnB1dEV2ZW50OjpHZXN0dXJlU2Nyb2xsVXBkYXRlOiBldmVudE5hbWUgPSAiR2VzdHVyZVNjcm9s
bFVwZGF0ZSI7IGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpHZXN0dXJl
RmxpbmdTdGFydDogICBldmVudE5hbWUgPSAiR2VzdHVyZUZsaW5nU3RhcnQiOyBicmVhazsKKyAg
ICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6R2VzdHVyZUZsaW5nQ2FuY2VsOiAgZXZlbnRO
YW1lID0gIkdlc3R1cmVGbGluZ0NhbmNlbCI7IGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJJ
bnB1dEV2ZW50OjpHZXN0dXJlVGFwOiAgICAgICAgICBldmVudE5hbWUgPSAiR2VzdHVyZVRhcCI7
IGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwRG93bjog
ICAgICBldmVudE5hbWUgPSAiR2VzdHVyZVRhcERvd24iOyBicmVhazsKKyAgICBjYXNlIFdlYktp
dDo6V2ViSW5wdXRFdmVudDo6R2VzdHVyZURvdWJsZVRhcDogICAgZXZlbnROYW1lID0gIkdlc3R1
cmVEb3VibGVUYXAiOyBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6R2Vz
dHVyZVR3b0ZpbmdlclRhcDogZXZlbnROYW1lID0gIkdlc3R1cmVUd29GaW5nZXJUYXAiOyBicmVh
azsKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6R2VzdHVyZUxvbmdQcmVzczogICAg
ZXZlbnROYW1lID0gIkdlc3R1cmVMb25nUHJlc3MiOyBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6
V2ViSW5wdXRFdmVudDo6R2VzdHVyZVBpbmNoQmVnaW46ICAgZXZlbnROYW1lID0gIkdlc3R1cmVQ
aW5jaEJlZ2luIjsgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6Okdlc3R1
cmVQaW5jaEVuZDogICAgIGV2ZW50TmFtZSA9ICJHZXN0dXJlUGluY2hFbmQiOyBicmVhazsKKyAg
ICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6R2VzdHVyZVBpbmNoVXBkYXRlOiAgZXZlbnRO
YW1lID0gIkdlc3R1cmVQaW5jaFVwZGF0ZSI7IGJyZWFrOworCisgICAgY2FzZSBXZWJLaXQ6Oldl
YklucHV0RXZlbnQ6OlRvdWNoU3RhcnQ6ICAgICAgICAgIGV2ZW50TmFtZSA9ICJUb3VjaFN0YXJ0
IjsgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6OlRvdWNoTW92ZTogICAg
ICAgICAgIGV2ZW50TmFtZSA9ICJUb3VjaE1vdmUiOyBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6
V2ViSW5wdXRFdmVudDo6VG91Y2hFbmQ6ICAgICAgICAgICAgZXZlbnROYW1lID0gIlRvdWNoRW5k
IjsgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6OlRvdWNoQ2FuY2VsOiAg
ICAgICAgIGV2ZW50TmFtZSA9ICJUb3VjaENhbmNlbCI7IGJyZWFrOworICAgIH0KKworICAgIHBy
aW50ZigiUGx1Z2luIHJlY2VpdmVkIGV2ZW50OiAlc1xuIiwgZXZlbnROYW1lID8gZXZlbnROYW1l
IDogInVua25vd24iKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uaCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uaAppbmRleCA0YzlmMmY0ZDIyODU3OWNjZjZh
MTY0NTZiZjBhZDM0NGNhZDg5ZjcwLi4wMjViMTEwOTU1NWEyYzBhOGEyMjIyMmYzZWU0YjgxNTZm
NmIzNGUzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2Vi
UGx1Z2luLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdp
bi5oCkBAIC02MCw4ICs2MCw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYm9vbCBpc1Zpc2libGUpOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGb2N1cyhib29s
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVmlzaWJpbGl0eShib29sKSB7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgYWNjZXB0c0lucHV0RXZlbnRzKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgaGFuZGxlSW5wdXRFdmVudChjb25zdCBXZWJLaXQ6OldlYklucHV0RXZlbnQm
LCBXZWJLaXQ6OldlYkN1cnNvckluZm8mKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
Ym9vbCBhY2NlcHRzSW5wdXRFdmVudHMoKSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBi
b29sIGhhbmRsZUlucHV0RXZlbnQoY29uc3QgV2ViS2l0OjpXZWJJbnB1dEV2ZW50JiwgV2ViS2l0
OjpXZWJDdXJzb3JJbmZvJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShj
b25zdCBXZWJLaXQ6OldlYlVSTFJlc3BvbnNlJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZygpIHsgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDM0ODlhMDljMDU4YzhmMjUx
MmFmZDg4ZTUzYTE2ZmEwZDczNjQzYTAuLmEwNjllMjY5N2MxNDA1YjMwNWQ5ZWYzODM3ZGU3NWYy
NzVkYjliYzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNy0yNiAgU2FkcnVsIEhhYmli
IENob3dkaHVyeSAgPHNhZHJ1bEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHJvcGFnYXRlIGdl
c3R1cmUgZXZlbnRzIHRvIHBsdWdpbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05MjI4MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGgu
CisKKyAgICAgICAgQWRkZWQgYSBsYXlvdXQgdGVzdCB0byBzaG93IHRoYXQgdGhlIHBsdWdpbnMg
cmVjZWl2ZSB0aGUgZ2VzdHVyZSBldmVudHMgY29ycmVjdGx5LgorCisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vcGx1Z2lucy9nZXN0dXJlLWV2ZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3BsdWdpbnMvZ2VzdHVyZS1ldmVudHMuaHRtbDog
QWRkZWQuCisKIDIwMTItMDctMjUgIEFuZHJldyBXaWxzb24gIDxhdHdpbHNvbkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBjaHJvbWl1bSBleHBlY3RhdGlvbnMgY2hhbmdlLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy9nZXN0dXJl
LWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9wbHVn
aW5zL2dlc3R1cmUtZXZlbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZmRhNDI2YjE4Y2I3
ZDc3Mzg3MTYzOWU3YzAwNDRhZjY2N2UxZGMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy9nZXN0dXJlLWV2ZW50cy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMCBAQAorUGx1Z2luIHJlY2VpdmVkIGV2ZW50OiBHZXN0dXJlVGFwCitQbHVn
aW4gcmVjZWl2ZWQgZXZlbnQ6IE1vdXNlRW50ZXIKK1BsdWdpbiByZWNlaXZlZCBldmVudDogTW91
c2VNb3ZlCitQbHVnaW4gcmVjZWl2ZWQgZXZlbnQ6IE1vdXNlRG93bgorUGx1Z2luIHJlY2VpdmVk
IGV2ZW50OiBNb3VzZVVwCitQbHVnaW4gcmVjZWl2ZWQgZXZlbnQ6IEdlc3R1cmVTY3JvbGxCZWdp
bgorUGx1Z2luIHJlY2VpdmVkIGV2ZW50OiBHZXN0dXJlU2Nyb2xsVXBkYXRlCitQbHVnaW4gcmVj
ZWl2ZWQgZXZlbnQ6IE1vdXNlV2hlZWwKK1BsdWdpbiByZWNlaXZlZCBldmVudDogR2VzdHVyZVNj
cm9sbEVuZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9wbHVn
aW5zL2dlc3R1cmUtZXZlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9w
bHVnaW5zL2dlc3R1cmUtZXZlbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGRkMmIzNjc0ZTIyYmE0NTdh
MDVhNzczNGYxMWNjNDM3ZGNiYmM4OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL3BsdWdpbnMvZ2VzdHVyZS1ldmVudHMuaHRtbApAQCAtMCwwICsxLDMx
IEBACis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorICAjcGx1Z2luIHsKKyAgICB3aWR0aDogMTUw
cHg7CisgICAgaGVpZ2h0OiAxNTBweDsKKyAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHk+
Cis8ZW1iZWQgaWQ9InBsdWdpbiIgdHlwZT0iYXBwbGljYXRpb24veC13ZWJraXQtdGVzdC13ZWJw
bHVnaW4iIHByaW1pdGl2ZT0idHJpYW5nbGUiIGJhY2tncm91bmQtY29sb3I9ImdyZWVuIiBwcmlt
aXRpdmUtY29sb3I9ImJsdWUiPjwvZW1iZWQ+Cis8c2NyaXB0PgorCisgICAgaWYgKCF3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgICAgICBkb2N1bWVudC53cml0ZSgiVGhpcyB0ZXN0IGRvZXMgbm90
IHdvcmsgaW4gbWFudWFsIG1vZGUuIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CisKKyAgICAgICAgLy8gU2VuZCBzb21lIGdlc3R1cmUgZXZlbnRzIHRv
IHRoZSBwbHVnaW4uCisgICAgICAgIHZhciBwb3NpdGlvblggPSBwbHVnaW4ub2Zmc2V0TGVmdCAr
IDEwOworICAgICAgICB2YXIgcG9zaXRpb25ZID0gcGx1Z2luLm9mZnNldFRvcCArIDEwOworICAg
ICAgICBldmVudFNlbmRlci5nZXN0dXJlVGFwKHBvc2l0aW9uWCwgcG9zaXRpb25ZKTsKKyAgICAg
ICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVNjcm9sbEJlZ2luKHBvc2l0aW9uWCwgcG9zaXRpb25ZKTsK
KyAgICAgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVNjcm9sbFVwZGF0ZSgzMCwgMCk7CisgICAgICAg
IGV2ZW50U2VuZGVyLmdlc3R1cmVTY3JvbGxFbmQoMCwgMCk7CisgICAgfQorCis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154984</attachid>
            <date>2012-07-27 10:25:09 -0700</date>
            <delta_ts>2012-07-27 12:02:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92281-20120727132456.patch</filename>
            <type>text/plain</type>
            <size>38321</size>
            <attacher name="Sadrul Habib Chowdhury">sadrul</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmJlYmY2NGJmYThmNzU4
MTdjNmEyNjVmMjIxYWIzNWZkZjAyMTczYy4uMjJiNjhmNWE5MDZiYmJkOTU0NDUyYjk3N2RjNzI2
NmMyNzg4YTFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTA3LTI2ICBTYWRy
dWwgSGFiaWIgQ2hvd2RodXJ5ICA8c2FkcnVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBQcm9w
YWdhdGUgZ2VzdHVyZSBldmVudHMgdG8gcGx1Z2lucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRh
bSBCYXJ0aC4KKworICAgICAgICBQcm9wYWdhdGUgZ2VzdHVyZSBldmVudHMgdG8gcGx1Z2lucy4g
VGhpcyBjaGFuZ2UgZG9lcyBub3QgZXhwb3NlIHRoZSBnZXN0dXJlIGV2ZW50cworICAgICAgICB0
byBKYXZhU2NyaXB0LCBzaW5jZSB0aGVyZSBpcyBubyBzcGVjIGZvciB0aGF0IGF0IHRoZSBtb21l
bnQuIEV4cG9zaW5nIGdlc3R1cmUgZXZlbnRzCisgICAgICAgIHRvIEphdmFTY3JpcHQgd2lsbCBi
ZSBkb25lIHNlcGFyYXRlbHksIG9uY2UgdGhlcmUgaXMgYSBzcGVjIGZvciBpdC4KKworICAgICAg
ICBUZXN0OiBwbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL2dlc3R1cmUtZXZlbnRzLmh0bWwKKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9FdmVu
dE5hbWVzLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50TmFt
ZXM6OmlzR2VzdHVyZUV2ZW50VHlwZSk6CisgICAgICAgIChFdmVudE5hbWVzKToKKyAgICAgICAg
KiBkb20vR2VzdHVyZUV2ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okdlc3R1cmVFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okdl
c3R1cmVFdmVudDo6aW5pdEdlc3R1cmVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJl
RXZlbnQ6OmludGVyZmFjZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2ZW50OjpH
ZXN0dXJlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRp
YXRvcjo6R2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpH
ZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpldmVudCk6CisgICAgICAgIChXZWJDb3JlOjpH
ZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpkaXNwYXRjaEV2ZW50KToKKyAgICAgICAgKiBk
b20vR2VzdHVyZUV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChH
ZXN0dXJlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2ZW50Ojp+R2VzdHVyZUV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okdlc3R1cmVFdmVudDo6ZGVsdGFYKToKKyAgICAgICAg
KFdlYkNvcmU6Okdlc3R1cmVFdmVudDo6ZGVsdGFZKToKKyAgICAgICAgKFdlYkNvcmU6Okdlc3R1
cmVFdmVudDo6R2VzdHVyZUV2ZW50KToKKyAgICAgICAgKEdlc3R1cmVFdmVudERpc3BhdGNoTWVk
aWF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6
Y3JlYXRlKToKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vZGU6OmRpc3BhdGNoR2VzdHVyZUV2ZW50KToKKyAgICAgICAgKiBk
b20vTm9kZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChOb2RlKToKKyAgICAgICAg
KiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZUV2
ZW50KToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5oOgorCiAyMDEyLTA3LTI2ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEludHJvZHVjZSBnZW5lcmljIExpdmVMb2NhdGlvbiwgbWFrZSBTY3JpcHQuTG9jYXRpb24g
aW5oZXJpdCBpdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZGY2YmMzNWUxZGVlZWI0
MTM0N2YyMDk4ZWM5MWJkYWZlZjFjZWIxMS4uMjA5OGQwMDk2NWNlYjdkYjkzNjkxOWI0MzNiMTYw
M2IzNWIyOTlkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAor
MjAxMi0wNy0yNiAgU2FkcnVsIEhhYmliIENob3dkaHVyeSAgPHNhZHJ1bEBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUHJvcGFnYXRlIGdlc3R1cmUgZXZlbnRzIHRvIHBsdWdpbnMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjI4MQorCisgICAgICAg
IFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgUHJvcGFnYXRlIGdlc3R1cmUgZXZl
bnRzIHRvIHBsdWdpbnMuCisKKyAgICAgICAgKiBzcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24u
Y3BwOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VzdHVyZUV2ZW50
QnVpbGRlcjo6V2ViR2VzdHVyZUV2ZW50QnVpbGRlcik6CisgICAgICAgICogc3JjL1dlYklucHV0
RXZlbnRDb252ZXJzaW9uLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChXZWJHZXN0dXJlRXZlbnRCdWlsZGVyKToKKyAgICAgICAgKiBzcmMvV2ViUGx1
Z2luQ29udGFpbmVySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5l
ckltcGw6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBzcmMvV2ViUGx1Z2luQ29udGFpbmVySW1w
bC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJQbHVnaW5Db250YWluZXJJbXBs
KToKKwogMjAxMi0wNy0yNSAgRGF2aWQgR3JvZ2FuICA8ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgSW5kZXhlZERCOiBXZWJLaXQgQVBJIGludGVyZmFjZXMgZm9yICJ1cGdyYWRlbmVl
ZGVkIiBtZXRob2RzIGFuZCBldmVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMDg1NDE4Y2Rh
MTBmZmVkZDcxNjE0ZGJlZmZiMTU3NmJlNTU2NDk2Yi4uZGZlNDA0YjJlOGNlNGFiNTFjMTUzZmY4
ZmE4MTgzMWU5Y2M1MWQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEwOTksNiArMTA5OSw3
IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vRXhjZXB0aW9uQmFzZS5jcHAKICAgICBk
b20vRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmNwcAogICAgIGRvbS9HZW5lcmljRXZlbnRRdWV1
ZS5jcHAKKyAgICBkb20vR2VzdHVyZUV2ZW50LmNwcAogICAgIGRvbS9JY29uVVJMLmNwcAogICAg
IGRvbS9JZFRhcmdldE9ic2VydmVyLmNwcAogICAgIGRvbS9JZFRhcmdldE9ic2VydmVyUmVnaXN0
cnkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAyNTYzOWQyMWJiMjk0YzZi
OTU5MTliNzVjMDYyYjJiYjFkOGI2ZDEyLi5iMzU0ZjU1N2Y0NjAzNGEwNWFjMzczZjA3NWNkMjRj
MjlkMzYxNmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTE5NTEsNiArMTk1
MSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlv
bkNvZGVQbGFjZWhvbGRlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2Rl
UGxhY2Vob2xkZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50U2NyaXB0aW5nUGVy
bWlzc2lvbi5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vR2VzdHVyZUV2ZW50LmNwcCBcCisJU291
cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVFdmVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vSWdu
b3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUv
ZG9tL0V4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vR2Vu
ZXJpY0V2ZW50UXVldWUuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGViYzNiNTk3ZjMyMGIxN2ViYzU1
MjhmMjBiNDZjMmJjMjc0YjcwNDYuLjJlMDAwY2Y2YTMwNDBlMWRkMDBkMjA0OGRjZmM2ZmY3ZDRk
ZjA2N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNDA4LDYgKzQwOCw3IEBAIFNPVVJDRVMgKz0gXAogICAg
IGRvbS9FeGNlcHRpb25CYXNlLmNwcCBcCiAgICAgZG9tL0V4Y2VwdGlvbkNvZGVQbGFjZWhvbGRl
ci5jcHAgXAogICAgIGRvbS9HZW5lcmljRXZlbnRRdWV1ZS5jcHAgXAorICAgIGRvbS9HZXN0dXJl
RXZlbnQuY3BwIFwKICAgICBkb20vSWNvblVSTC5jcHAgXAogICAgIGRvbS9JZFRhcmdldE9ic2Vy
dmVyLmNwcCBcCiAgICAgZG9tL0lkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5jcHAgXApAQCAtMTUz
NCw2ICsxNTM1LDcgQEAgSEVBREVSUyArPSBcCiAgICAgZG9tL0V4Y2VwdGlvbkJhc2UuaCBcCiAg
ICAgZG9tL0V4Y2VwdGlvbkNvZGUuaCBcCiAgICAgZG9tL0ZyYWdtZW50U2NyaXB0aW5nUGVybWlz
c2lvbi5oIFwKKyAgICBkb20vR2VzdHVyZUV2ZW50LmggXAogICAgIGRvbS9JZFRhcmdldE9ic2Vy
dmVyLmggXAogICAgIGRvbS9JZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuaCBcCiAgICAgZG9tL0tl
eWJvYXJkRXZlbnQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNzVlNTQxYjc4YjMyYmQ0YWY3NThh
YzAxNGYyMmI4MDA5Y2Q1ZDc0YS4uMWU2ODNlYWU1MmQwZWM2MzIxYTJhOWU4ZmQxNzAxYzA3ZWIx
MGVhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNTE4NSw2ICs1MTg1LDggQEAKICAgICAgICAgICAg
ICdkb20vRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0dl
bmVyaWNFdmVudFF1ZXVlLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0dlbmVyaWNFdmVudFF1ZXVl
LmgnLAorICAgICAgICAgICAgJ2RvbS9HZXN0dXJlRXZlbnQuY3BwJywKKyAgICAgICAgICAgICdk
b20vR2VzdHVyZUV2ZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9IYXNoQ2hhbmdlRXZlbnQuaCcs
CiAgICAgICAgICAgICAnZG9tL0lnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVy
LmgnLAogICAgICAgICAgICAgJ2RvbS9JY29uVVJMLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjNjZjg0MTAwZGU3YzMz
OTY1MGU3MWE1MDJhYmUwYjUyYzkwNDRjNC4uYmYyMmEwYzg0ZDBmMDQ4ZjIxY2JkMTY3OTFmZjQ5
Y2JmM2UwMzY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTEyLDYgKzExMiw4IEBACiAJCTA3MDlGQzRFMTAyNURFRTMwMDU5
Q0RCQSAvKiBBY2Nlc3NpYmlsaXR5U2xpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA5RkM0RDEwMjVERUUzMDA1OUNEQkEgLyogQWNjZXNzaWJp
bGl0eVNsaWRlci5oICovOyB9OwogCQkwNzIwQjBBMDE0RDMzMjM1MDA2NDI5NTUgLyogR2VuZXJp
Y0V2ZW50UXVldWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDcyMEIwOUUxNEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmNwcCAq
LzsgfTsKIAkJMDcyMEIwQTExNEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzIwQjA5RjE0
RDMzMjM1MDA2NDI5NTUgLyogR2VuZXJpY0V2ZW50UXVldWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwNzIwQjBBMDE0RDMzMjM1MDA2NDI5NTYg
LyogR2VzdHVyZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3MjBCMDlGMTREMzMyMzUwMDY0Mjk1NiAvKiBHZXN0dXJlRXZlbnQuY3BwICov
OyB9OworCQkwNzIwQjBBMTE0RDMzMjM1MDA2NDI5NTcgLyogR2VzdHVyZUV2ZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzIwQjA5RjE0RDMzMjM1
MDA2NDI5NTcgLyogR2VzdHVyZUV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDcyQzhCMTExMzFDNTE4NjAwQTRGQ0U5IC8qIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzZGMEQwOTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uLmNwcCAqLzsgfTsKIAkJMDczNUVFNkEwRjQwQzVFNDAwNEEyNjA0
IC8qIE1lZGlhUGxheWVyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3MzVFRTY5MEY0MEM1RTQwMDRBMjYwNCAvKiBNZWRpYVBsYXllclByb3h5
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc1
Mzg2MDIxNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzUzODYwMDE0NDg5RTk4MDBCNzg0
NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmNwcCAqLzsgfTsKQEAgLTcwNjgsNiArNzA3MCw4IEBACiAJ
CTA3MEREOEY1MEYwMTg2ODAwMDcyN0RFQiAvKiBtZWRpYUNvbnRyb2xzLmNzcyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBtZWRpYUNvbnRyb2xzLmNzczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDcyMEIwOUUxNEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlbmVyaWNFdmVudFF1ZXVlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyMEIwOUYxNEQzMzIzNTAwNjQyOTU1
IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEdlbmVyaWNFdmVudFF1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MjBC
MDlGMTREMzMyMzUwMDY0Mjk1NiAvKiBHZXN0dXJlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gR2VzdHVyZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMDcyMEIwOUYxNEQzMzIzNTAwNjQyOTU3IC8qIEdlc3R1cmVFdmVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZXN0dXJlRXZlbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczNUVFNjkwRjQwQzVFNDAwNEEyNjA0IC8qIE1lZGlhUGxh
eWVyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJQ
cm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzUzODYwMDE0NDg5RTk4MDBC
Nzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENhY2hlZFRleHRUcmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3NTM4NjAxMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkVGV4dFRyYWNrLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yMTU0MCw2ICsyMTU0NCw4IEBACiAJCQkJQTg1MzEyM0MxMUQw
NDcxQjAwRDREMDc3IC8qIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oICovLAogCQkJCTA3
MjBCMDlFMTREMzMyMzUwMDY0Mjk1NSAvKiBHZW5lcmljRXZlbnRRdWV1ZS5jcHAgKi8sCiAJCQkJ
MDcyMEIwOUYxNEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmggKi8sCisJCQkJ
MDcyMEIwOUYxNEQzMzIzNTAwNjQyOTU2IC8qIEdlc3R1cmVFdmVudC5jcHAgKi8sCisJCQkJMDcy
MEIwOUYxNEQzMzIzNTAwNjQyOTU3IC8qIEdlc3R1cmVFdmVudC5oICovLAogCQkJCTI0NDJCQkY4
MTE5NEM5RDMwMEQ0OTQ2OSAvKiBIYXNoQ2hhbmdlRXZlbnQuaCAqLywKIAkJCQk4NDgyQjc0NDEx
OThDMzJFMDBCRkIwMDUgLyogSGFzaENoYW5nZUV2ZW50LmlkbCAqLywKIAkJCQk0NTA5OUM0MDEz
NzBBNzgwMDA1OEQ1MTMgLyogSWNvblVSTC5jcHAgKi8sCkBAIC0yMzI4Miw2ICsyMzI4OCw3IEBA
CiAJCQkJMkQ0ODFGMDQxNDZCNUM2QjAwQUE3ODM0IC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNjIyQThGRjEyMkM0NEE2MDBBNzg1QjMgLyogR2VuZXJp
Y0JpbmRpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3MjBCMEExMTREMzMyMzUwMDY0Mjk1NSAv
KiBHZW5lcmljRXZlbnRRdWV1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDcyMEIwOUYxNEQzMzIz
NTAwNjQyOTU3IC8qIEdlc3R1cmVFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc0NkFGMjQx
NEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzU2
Q0IyMzEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTA1MkJGQ0VCMTI4QUJGMjEwMEZEMzM4RCAvKiBHZW9sb2NhdGlvbkNsaWVudE1vY2su
aCBpbiBIZWFkZXJzICovLApAQCAtMjY0NzIsNiArMjY0NzksNyBAQAogCQkJCTE0MzJFODQ5MEM1
MTQ5M0YwMEIxNTAwRiAvKiBHQ0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ0
ODFGMDMxNDZCNUM2NTAwQUE3ODM0IC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTA3MjBCMEEwMTREMzMyMzUwMDY0Mjk1NSAvKiBHZW5lcmljRXZlbnRR
dWV1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwNzIwQjA5RjE0RDMzMjM1MDA2NDI5NTYgLyog
R2VzdHVyZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NDZBRjIzMTRGNERERTYwMDNF
N0E3MCAvKiBHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNTJCRkNFOTEyOEFC
RjE1MDBGRDMzOEQgLyogR2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk3NDZBRjI2MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1l
cy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCBiMGVmYmU3NjUwOGM4
ZWIyNTRkZjI5NjJiYmU4OWRjNjI3MTcxNDJkLi44OThkYTk2MjIzZmQwNzFhZDAwYmQxYTkyNTc0
ZTJhYzJmYjc1ZTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTcxLDYgKzcxLDExIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhmb2N1cykgXAogICAgIG1hY3JvKGZvY3Vz
aW4pIFwKICAgICBtYWNybyhmb2N1c291dCkgXAorICAgIG1hY3JvKGdlc3R1cmV0YXApIFwKKyAg
ICBtYWNybyhnZXN0dXJldGFwZG93bikgXAorICAgIG1hY3JvKGdlc3R1cmVzY3JvbGxzdGFydCkg
XAorICAgIG1hY3JvKGdlc3R1cmVzY3JvbGxlbmQpIFwKKyAgICBtYWNybyhnZXN0dXJlc2Nyb2xs
dXBkYXRlKSBcCiAgICAgbWFjcm8oaGFzaGNoYW5nZSkgXAogICAgIG1hY3JvKGlucHV0KSBcCiAg
ICAgbWFjcm8oaW52YWxpZCkgXApAQCAtMjYyLDYgKzI2NywxNSBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgICAgICAgICAgfHwgZXZlbnRUeXBlID09IHRvdWNoY2FuY2VsRXZlbnQ7CiAg
ICAgICAgIH0KIAorICAgICAgICBpbmxpbmUgYm9vbCBpc0dlc3R1cmVFdmVudFR5cGUoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJl
dHVybiBldmVudFR5cGUgPT0gZ2VzdHVyZXRhcEV2ZW50CisgICAgICAgICAgICAgICAgfHwgZXZl
bnRUeXBlID09IGdlc3R1cmV0YXBkb3duRXZlbnQKKyAgICAgICAgICAgICAgICB8fCBldmVudFR5
cGUgPT0gZ2VzdHVyZXNjcm9sbHN0YXJ0RXZlbnQKKyAgICAgICAgICAgICAgICB8fCBldmVudFR5
cGUgPT0gZ2VzdHVyZXNjcm9sbGVuZEV2ZW50CisgICAgICAgICAgICAgICAgfHwgZXZlbnRUeXBl
ID09IGdlc3R1cmVzY3JvbGx1cGRhdGVFdmVudDsKKyAgICAgICAgfQorCiAgICAgICAgIFZlY3Rv
cjxBdG9taWNTdHJpbmc+IHRvdWNoRXZlbnROYW1lcygpIGNvbnN0CiAgICAgICAgIHsKICAgICAg
ICAgICAgIFZlY3RvcjxBdG9taWNTdHJpbmc+IG5hbWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0dlc3R1cmVFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vR2VzdHVyZUV2
ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lMjQ3YjJmYjgxYzFmNDNiYzBlNzI2YzRmZmViODc4ZDNhNWZi
MDFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVFdmVudC5j
cHAKQEAgLTAsMCArMSwxMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQorCisjaW5jbHVkZSAiR2VzdHVyZUV2ZW50LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxHZXN0dXJlRXZlbnQ+IEdlc3R1cmVF
dmVudDo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdlc3R1cmVFdmVudCk7
Cit9CisKK1Bhc3NSZWZQdHI8R2VzdHVyZUV2ZW50PiBHZXN0dXJlRXZlbnQ6OmNyZWF0ZShQYXNz
UmVmUHRyPEFic3RyYWN0Vmlldz4gdmlldywgY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGV2
ZW50KQoreworICAgIEF0b21pY1N0cmluZyBldmVudFR5cGU7CisgICAgc3dpdGNoIChldmVudC50
eXBlKCkpIHsKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVTY3JvbGxCZWdpbjoKKyAg
ICAgICAgZXZlbnRUeXBlID0gZXZlbnROYW1lcygpLmdlc3R1cmVzY3JvbGxzdGFydEV2ZW50OyBi
cmVhazsKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVTY3JvbGxFbmQ6CisgICAgICAg
IGV2ZW50VHlwZSA9IGV2ZW50TmFtZXMoKS5nZXN0dXJlc2Nyb2xsZW5kRXZlbnQ7IGJyZWFrOwor
ICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVNjcm9sbFVwZGF0ZToKKyAgICAgICAgZXZl
bnRUeXBlID0gZXZlbnROYW1lcygpLmdlc3R1cmVzY3JvbGx1cGRhdGVFdmVudDsgYnJlYWs7Cisg
ICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlVGFwOgorICAgICAgICBldmVudFR5cGUgPSBl
dmVudE5hbWVzKCkuZ2VzdHVyZXRhcEV2ZW50OyBicmVhazsKKyAgICBjYXNlIFBsYXRmb3JtRXZl
bnQ6Okdlc3R1cmVUYXBEb3duOgorICAgICAgICBldmVudFR5cGUgPSBldmVudE5hbWVzKCkuZ2Vz
dHVyZXRhcGRvd25FdmVudDsgYnJlYWs7CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJl
RG91YmxlVGFwOgorICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVR3b0ZpbmdlclRhcDoK
KyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVMb25nUHJlc3M6CisgICAgY2FzZSBQbGF0
Zm9ybUV2ZW50OjpHZXN0dXJlUGluY2hCZWdpbjoKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdl
c3R1cmVQaW5jaEVuZDoKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVQaW5jaFVwZGF0
ZToKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZXN0dXJlRXZlbnQoZXZlbnRUeXBlLCB2aWV3LCBldmVu
dC5nbG9iYWxQb3NpdGlvbigpLngoKSwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS55KCksIGV2ZW50
LnBvc2l0aW9uKCkueCgpLCBldmVudC5wb3NpdGlvbigpLnkoKSwgZXZlbnQuY3RybEtleSgpLCBl
dmVudC5hbHRLZXkoKSwgZXZlbnQuc2hpZnRLZXkoKSwgZXZlbnQubWV0YUtleSgpLCBldmVudC5k
ZWx0YVgoKSwgZXZlbnQuZGVsdGFZKCkpKTsKK30KKwordm9pZCBHZXN0dXJlRXZlbnQ6OmluaXRH
ZXN0dXJlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBQYXNzUmVmUHRyPEFic3RyYWN0
Vmlldz4gdmlldywgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgY2xpZW50WCwgaW50IGNs
aWVudFksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0
YUtleSwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVkpCit7CisgICAgaWYgKGRpc3BhdGNoZWQo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW5pdFVJRXZlbnQodHlwZSwgdHJ1ZSwgdHJ1ZSwg
dmlldywgMCk7CisgICAgbV9zY3JlZW5Mb2NhdGlvbiA9IEludFBvaW50KHNjcmVlblgsIHNjcmVl
blkpOworICAgIG1fY3RybEtleSA9IGN0cmxLZXk7CisgICAgbV9hbHRLZXkgPSBhbHRLZXk7Cisg
ICAgbV9zaGlmdEtleSA9IHNoaWZ0S2V5OworICAgIG1fbWV0YUtleSA9IG1ldGFLZXk7CisKKyAg
ICBtX2RlbHRhWCA9IGRlbHRhWDsKKyAgICBtX2RlbHRhWSA9IGRlbHRhWTsKKworICAgIGluaXRD
b29yZGluYXRlcyhJbnRQb2ludChjbGllbnRYLCBjbGllbnRZKSk7Cit9CisKK2NvbnN0IEF0b21p
Y1N0cmluZyYgR2VzdHVyZUV2ZW50OjppbnRlcmZhY2VOYW1lKCkgY29uc3QKK3sKKyAgICBzdGF0
aWMgQXRvbWljU3RyaW5nIGludGVyZmFjZSgiVEJESW50ZXJmYWNlIik7CisgICAgcmV0dXJuIGlu
dGVyZmFjZTsKK30KKworR2VzdHVyZUV2ZW50OjpHZXN0dXJlRXZlbnQoKQorICAgIDogbV9kZWx0
YVgoMCkKKyAgICAsIG1fZGVsdGFZKDApCit7Cit9CisKK0dlc3R1cmVFdmVudDo6R2VzdHVyZUV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+IHZp
ZXcsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IGNsaWVudFgsIGludCBjbGllbnRZLCBi
b29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIGZs
b2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZKQorICAgIDogTW91c2VSZWxhdGVkRXZlbnQodHlwZSwg
dHJ1ZSwgdHJ1ZSwgdmlldywgMCwgSW50UG9pbnQoc2NyZWVuWCwgc2NyZWVuWSksIEludFBvaW50
KGNsaWVudFgsIGNsaWVudFkpLAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgICAgICAg
ICAgICAgICAgICAgICBJbnRQb2ludCgwLCAwKSwKKyNlbmRpZgorICAgICAgICAgICAgICAgICAg
ICAgICAgY3RybEtleSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0YUtleSkKKyAgICAsIG1fZGVsdGFY
KGRlbHRhWCkKKyAgICAsIG1fZGVsdGFZKGRlbHRhWSkKK3sKK30KKworR2VzdHVyZUV2ZW50RGlz
cGF0Y2hNZWRpYXRvcjo6R2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNzUmVmUHRyPEdl
c3R1cmVFdmVudD4gZ2VzdHVyZUV2ZW50KQorICAgIDogRXZlbnREaXNwYXRjaE1lZGlhdG9yKGdl
c3R1cmVFdmVudCkKK3sKK30KKworR2VzdHVyZUV2ZW50KiBHZXN0dXJlRXZlbnREaXNwYXRjaE1l
ZGlhdG9yOjpldmVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdlc3R1cmVF
dmVudCo+KEV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6ZXZlbnQoKSk7Cit9CisKK2Jvb2wgR2VzdHVy
ZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6ZGlzcGF0Y2hFdmVudChFdmVudERpc3BhdGNoZXIqIGRp
c3BhdGNoZXIpIGNvbnN0Cit7CisgICAgaWYgKGRpc3BhdGNoZXItPm5vZGUoKS0+ZGlzYWJsZWQo
KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBkaXNwYXRjaGVyLT5kaXNwYXRjaEV2ZW50
KGV2ZW50KCkpOworICAgIEFTU0VSVCghZXZlbnQoKS0+ZGVmYXVsdFByZXZlbnRlZCgpKTsKKyAg
ICByZXR1cm4gZXZlbnQoKS0+ZGVmYXVsdEhhbmRsZWQoKSB8fCBldmVudCgpLT5kZWZhdWx0UHJl
dmVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShHRVNUVVJFX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9HZXN0dXJl
RXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9HZXN0dXJlRXZlbnQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
ZjA4M2MzZjIyMDY5ODkwOGYzZWM5NDQ5ZTQzNmQ3Njc1MzYxNmMyCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVFdmVudC5oCkBAIC0wLDAgKzEsODIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBHZXN0dXJlRXZlbnRfaAorI2RlZmluZSBHZXN0dXJlRXZlbnRfaAor
CisjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQorCisjaW5jbHVkZSAiRXZlbnREaXNwYXRjaGVy
LmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiTW91c2VSZWxhdGVkRXZlbnQuaCIKKyNpbmNsdWRl
ICJQbGF0Zm9ybUV2ZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1HZXN0dXJlRXZlbnQuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHZXN0dXJlRXZlbnQgOiBwdWJsaWMgTW91c2VS
ZWxhdGVkRXZlbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgfkdlc3R1cmVFdmVudCgpIHsgfQor
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8R2VzdHVyZUV2ZW50PiBjcmVhdGUoKTsKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxHZXN0dXJlRXZlbnQ+IGNyZWF0ZShQYXNzUmVmUHRyPEFic3RyYWN0Vmll
dz4sIGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50Jik7CisKKyAgICB2b2lkIGluaXRHZXN0dXJl
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4s
IGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IGNsaWVudFgsIGludCBjbGllbnRZLCBib29s
IGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIGZsb2F0
IGRlbHRhWCwgZmxvYXQgZGVsdGFZKTsKKworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5n
JiBpbnRlcmZhY2VOYW1lKCkgY29uc3Q7CisKKyAgICBmbG9hdCBkZWx0YVgoKSBjb25zdCB7IHJl
dHVybiBtX2RlbHRhWDsgfQorICAgIGZsb2F0IGRlbHRhWSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVs
dGFZOyB9CisKK3ByaXZhdGU6CisgICAgR2VzdHVyZUV2ZW50KCk7CisgICAgR2VzdHVyZUV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+LCBpbnQg
c2NyZWVuWCwgaW50IHNjcmVlblksIGludCBjbGllbnRYLCBpbnQgY2xpZW50WSwgYm9vbCBjdHJs
S2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LCBmbG9hdCBkZWx0
YVgsIGZsb2F0IGRlbHRhWSk7CisKKyAgICBmbG9hdCBtX2RlbHRhWDsKKyAgICBmbG9hdCBtX2Rl
bHRhWTsKK307CisKK2NsYXNzIEdlc3R1cmVFdmVudERpc3BhdGNoTWVkaWF0b3IgOiBwdWJsaWMg
RXZlbnREaXNwYXRjaE1lZGlhdG9yIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxH
ZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlhdG9yPiBjcmVhdGUoUGFzc1JlZlB0cjxHZXN0dXJlRXZl
bnQ+IGdlc3R1cmVFdmVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgR2Vz
dHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcihnZXN0dXJlRXZlbnQpKTsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgZXhwbGljaXQgR2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNzUmVmUHRy
PEdlc3R1cmVFdmVudD4pOworCisgICAgR2VzdHVyZUV2ZW50KiBldmVudCgpIGNvbnN0OworCisg
ICAgdmlydHVhbCBib29sIGRpc3BhdGNoRXZlbnQoRXZlbnREaXNwYXRjaGVyKikgY29uc3Q7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoR0VTVFVSRV9F
VkVOVFMpCisKKyNlbmRpZiAvLyBHZXN0dXJlRXZlbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGYz
MGMzZmNiZmNmODYwYWUwMzQxN2I1ZGNkMDExN2I5NmM1ZmY5ZWQuLjc1MjhjZmQzMTE3YWIzMTRh
ODJkNTI1ZTAwYjVjMzBmNDA3NWE1MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTEwOSw2ICsxMDks
MTAgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nQnVpbGRlci5oPgogCisjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQorI2luY2x1ZGUg
Ikdlc3R1cmVFdmVudC5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogI2luY2x1
ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNlbmRpZgpAQCAtMjYzMyw2ICsyNjM3LDEzIEBA
IGJvb2wgTm9kZTo6ZGlzcGF0Y2hNb3VzZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYg
ZXZlbnQsIGNvbnN0IEF0b21pY1N0cmluCiAgICAgcmV0dXJuIEV2ZW50RGlzcGF0Y2hlcjo6ZGlz
cGF0Y2hFdmVudCh0aGlzLCBNb3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKE1vdXNl
RXZlbnQ6OmNyZWF0ZShldmVudFR5cGUsIGRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCksIGV2ZW50
LCBkZXRhaWwsIHJlbGF0ZWRUYXJnZXQpKSk7CiB9CiAKKyNpZiBFTkFCTEUoR0VTVFVSRV9FVkVO
VFMpCitib29sIE5vZGU6OmRpc3BhdGNoR2VzdHVyZUV2ZW50KGNvbnN0IFBsYXRmb3JtR2VzdHVy
ZUV2ZW50JiBldmVudCkKK3sKKyAgICByZXR1cm4gRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaEV2
ZW50KHRoaXMsIEdlc3R1cmVFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShHZXN0dXJlRXZl
bnQ6OmNyZWF0ZShkb2N1bWVudCgpLT5kZWZhdWx0VmlldygpLCBldmVudCkpKTsKK30KKyNlbmRp
ZgorCiB2b2lkIE5vZGU6OmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soUGFzc1JlZlB0cjxFdmVudD4g
ZXZlbnQsIGJvb2wgc2VuZE1vdXNlRXZlbnRzLCBib29sIHNob3dQcmVzc2VkTG9vaykKIHsKICAg
ICBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2sodGhpcywgZXZlbnQsIHNl
bmRNb3VzZUV2ZW50cywgc2hvd1ByZXNzZWRMb29rKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDg2YTdkMzll
ZDU4YmRiYzlkNDJmMjQxZTQ3NmM5YTZiMzE2YmQ2ZDAuLmEzMjA0YmExYTdhM2U4MjZiNDU5MjNm
NmEyMjU5ODUzNWU4YjQwM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtODgsNiArODgsMTAgQEAgY2xhc3Mg
U2hhZG93Um9vdDsKIGNsYXNzIFRhZ05vZGVMaXN0OwogY2xhc3MgVHJlZVNjb3BlOwogCisjaWYg
RU5BQkxFKEdFU1RVUkVfRVZFTlRTKQorY2xhc3MgUGxhdGZvcm1HZXN0dXJlRXZlbnQ7CisjZW5k
aWYKKwogI2lmIEVOQUJMRShNSUNST0RBVEEpCiBjbGFzcyBIVE1MUHJvcGVydGllc0NvbGxlY3Rp
b247CiBjbGFzcyBQcm9wZXJ0eU5vZGVMaXN0OwpAQCAtNjA5LDYgKzYxMyw5IEBAIHB1YmxpYzoK
ICAgICBib29sIGRpc3BhdGNoS2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50Jik7
CiAgICAgYm9vbCBkaXNwYXRjaFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7
CiAgICAgYm9vbCBkaXNwYXRjaE1vdXNlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50Jiwg
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGludCBjbGlja0NvdW50ID0gMCwgTm9kZSog
cmVsYXRlZFRhcmdldCA9IDApOworI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKKyAgICBib29s
IGRpc3BhdGNoR2VzdHVyZUV2ZW50KGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50Jik7CisjZW5k
aWYKICAgICB2b2lkIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soUGFzc1JlZlB0cjxFdmVudD4gdW5k
ZXJseWluZ0V2ZW50LCBib29sIHNlbmRNb3VzZUV2ZW50cyA9IGZhbHNlLCBib29sIHNob3dQcmVz
c2VkTG9vayA9IHRydWUpOwogICAgIGJvb2wgZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkwpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5k
ZXggOGVlYTNmYTY1OGI1OWZjYmNkY2NmOTIxM2JjNzhlMjhhYTY0Nzc3Yi4uMDYxZDgzMzBmNTY3
ZjliYjQwNzI2MWU5ZmJhNDlmMjE2MmMyNGNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcApAQCAtMzY3LDEwICszNjcsMTEgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmNsZWFyKCkK
ICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50VGFy
Z2V0cy5jbGVhcigpOwogI2VuZGlmCi0gICAgbV9tYXhNb3VzZU1vdmVkRHVyYXRpb24gPSAwOwog
I2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKLSAgICBtX2Jhc2VFdmVudFR5cGUgPSBQbGF0Zm9y
bUV2ZW50OjpOb1R5cGU7CisgICAgbV9zY3JvbGxHZXN0dXJlSGFuZGxpbmdOb2RlID0gMDsKICNl
bmRpZgorICAgIG1fbWF4TW91c2VNb3ZlZER1cmF0aW9uID0gMDsKKyAgICBtX2Jhc2VFdmVudFR5
cGUgPSBQbGF0Zm9ybUV2ZW50OjpOb1R5cGU7CiB9CiAKIHZvaWQgRXZlbnRIYW5kbGVyOjpub2Rl
V2lsbEJlUmVtb3ZlZChOb2RlKiBub2RlVG9CZVJlbW92ZWQpCkBAIC0yNDEzLDYgKzI0MTQsMjkg
QEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVUYXBEb3duKCkKIAogYm9vbCBFdmVu
dEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVFdmVudChjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYg
Z2VzdHVyZUV2ZW50KQogeworICAgIE5vZGUqIGV2ZW50VGFyZ2V0ID0gMDsKKyAgICBpZiAoZ2Vz
dHVyZUV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlU2Nyb2xsRW5kIHx8IGdl
c3R1cmVFdmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6R2VzdHVyZVNjcm9sbFVwZGF0ZSkK
KyAgICAgICAgZXZlbnRUYXJnZXQgPSBtX3Njcm9sbEdlc3R1cmVIYW5kbGluZ05vZGUuZ2V0KCk7
CisKKyAgICBpZiAoIWV2ZW50VGFyZ2V0KSB7CisgICAgICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0
ID0gaGl0VGVzdFJlc3VsdEF0UG9pbnQoZ2VzdHVyZUV2ZW50LnBvc2l0aW9uKCksIGZhbHNlLCBm
YWxzZSwgRG9udEhpdFRlc3RTY3JvbGxiYXJzLCBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkgfCBI
aXRUZXN0UmVxdWVzdDo6QWN0aXZlKTsKKyAgICAgICAgZXZlbnRUYXJnZXQgPSB0YXJnZXROb2Rl
KHJlc3VsdCk7CisgICAgfQorCisgICAgaWYgKGV2ZW50VGFyZ2V0KSB7CisgICAgICAgIGJvb2wg
ZXZlbnRTd2FsbG93ZWQgPSBldmVudFRhcmdldC0+ZGlzcGF0Y2hHZXN0dXJlRXZlbnQoZ2VzdHVy
ZUV2ZW50KTsKKworICAgICAgICBpZiAoZ2VzdHVyZUV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9ybUV2
ZW50OjpHZXN0dXJlU2Nyb2xsQmVnaW4pIHsKKyAgICAgICAgICAgIGlmIChldmVudFN3YWxsb3dl
ZCkKKyAgICAgICAgICAgICAgICBtX3Njcm9sbEdlc3R1cmVIYW5kbGluZ05vZGUgPSBldmVudFRh
cmdldDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBtX3Njcm9sbEdlc3R1cmVI
YW5kbGluZ05vZGUgPSAwOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGV2ZW50U3dhbGxvd2Vk
KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCiAgICAgLy8gRklYTUU6IEEgbW9y
ZSBnZW5lcmFsIHNjcm9sbCBzeXN0ZW0gKGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04MDU5Nikgd2lsbAogICAgIC8vIGVsaW1pbmF0ZSB0aGUgbmVlZCBmb3IgdGhpcy4K
ICAgICBUZW1wb3JhcnlDaGFuZ2U8UGxhdGZvcm1FdmVudDo6VHlwZT4gYmFzZUV2ZW50VHlwZSht
X2Jhc2VFdmVudFR5cGUsIGdlc3R1cmVFdmVudC50eXBlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmgKaW5kZXggMWQyZDM3NWMzOWJiNThiYTUzYTU4ZjU0MzA3ZWIxNjI1ZWYwN2ZkMS4u
ZWUyNjk0NDMzZGIxYzI3OTlkNTA0YjJkNDg0ZjA0ZTM1NDcwMzBlMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5oCkBAIC00NDYsNiArNDQ2LDExIEBAIHByaXZhdGU6CiAgICAgVG91Y2hU
YXJnZXRNYXAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRUYXJnZXRzOwogICAgIGJvb2wgbV90b3Vj
aFByZXNzZWQ7CiAjZW5kaWYKKworI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKKyAgICBSZWZQ
dHI8Tm9kZT4gbV9zY3JvbGxHZXN0dXJlSGFuZGxpbmdOb2RlOworI2VuZGlmCisKICAgICBkb3Vi
bGUgbV9tYXhNb3VzZU1vdmVkRHVyYXRpb247CiAgICAgUGxhdGZvcm1FdmVudDo6VHlwZSBtX2Jh
c2VFdmVudFR5cGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwCmluZGV4IDIwN2Q4MWNhMzg0ZDM2YzgzYTRkMTAx
ZTQ3MGRhOWUwOTIyMjM0ZDguLmMwOGVkZWFhYTZjNTY2NjI5MWI0ZGNiM2JiMTc2YmJlZWEwN2I5
NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRD
b252ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2
ZW50Q29udmVyc2lvbi5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJXZWJJbnB1dEV2
ZW50Q29udmVyc2lvbi5oIgogCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkdl
c3R1cmVFdmVudC5oIgogI2luY2x1ZGUgIktleWJvYXJkQ29kZXMuaCIKICNpbmNsdWRlICJLZXli
b2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgpAQCAtNTEyLDQgKzUxMywzMSBA
QCBXZWJUb3VjaEV2ZW50QnVpbGRlcjo6V2ViVG91Y2hFdmVudEJ1aWxkZXIoY29uc3QgV2lkZ2V0
KiB3aWRnZXQsIGNvbnN0IFRvdWNoRXZlbgogCiAjZW5kaWYgLy8gRU5BQkxFKFRPVUNIX0VWRU5U
UykKIAorI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKK1dlYkdlc3R1cmVFdmVudEJ1aWxkZXI6
OldlYkdlc3R1cmVFdmVudEJ1aWxkZXIoY29uc3QgV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IEdlc3R1
cmVFdmVudCYgZXZlbnQpCit7CisgICAgaWYgKGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCku
Z2VzdHVyZXRhcEV2ZW50KQorICAgICAgICB0eXBlID0gR2VzdHVyZVRhcDsKKyAgICBlbHNlIGlm
IChldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmdlc3R1cmV0YXBkb3duRXZlbnQpCisgICAg
ICAgIHR5cGUgPSBHZXN0dXJlVGFwRG93bjsKKyAgICBlbHNlIGlmIChldmVudC50eXBlKCkgPT0g
ZXZlbnROYW1lcygpLmdlc3R1cmVzY3JvbGxzdGFydEV2ZW50KQorICAgICAgICB0eXBlID0gR2Vz
dHVyZVNjcm9sbEJlZ2luOworICAgIGVsc2UgaWYgKGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVz
KCkuZ2VzdHVyZXNjcm9sbGVuZEV2ZW50KQorICAgICAgICB0eXBlID0gR2VzdHVyZVNjcm9sbEVu
ZDsKKyAgICBlbHNlIGlmIChldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmdlc3R1cmVzY3Jv
bGx1cGRhdGVFdmVudCkKKyAgICAgICAgdHlwZSA9IEdlc3R1cmVTY3JvbGxVcGRhdGU7CisKKyAg
ICB0aW1lU3RhbXBTZWNvbmRzID0gZXZlbnQudGltZVN0YW1wKCkgLyBtaWxsaXNQZXJTZWNvbmQ7
CisgICAgbW9kaWZpZXJzID0gZ2V0V2ViSW5wdXRNb2RpZmllcnMoZXZlbnQpOworCisgICAgZ2xv
YmFsWCA9IGV2ZW50LnNjcmVlblgoKTsKKyAgICBnbG9iYWxZID0gZXZlbnQuc2NyZWVuWSgpOwor
ICAgIHggPSBldmVudC5hYnNvbHV0ZUxvY2F0aW9uKCkueCgpIC0gd2lkZ2V0LT5sb2NhdGlvbigp
LngoKTsKKyAgICB5ID0gZXZlbnQuYWJzb2x1dGVMb2NhdGlvbigpLnkoKSAtIHdpZGdldC0+bG9j
YXRpb24oKS55KCk7CisKKyAgICBkZWx0YVggPSBldmVudC5kZWx0YVgoKTsKKyAgICBkZWx0YVkg
PSBldmVudC5kZWx0YVkoKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmgKaW5kZXggZDQ3YmRhODE0OTJmMWIwMTkxOTZl
ZDYzOThiNTdhNjk5Zjg0MDMxMC4uNDg5NzVhNDA0NmIyMTJiMGYyZGI5OTJiZTY0YjhjODM0OTc5
MGU4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVu
dENvbnZlcnNpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2
ZW50Q29udmVyc2lvbi5oCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiV2ViSW5wdXRFdmVu
dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBHZXN0dXJlRXZlbnQ7CiBjbGFzcyBL
ZXlib2FyZEV2ZW50OwogY2xhc3MgTW91c2VFdmVudDsKIGNsYXNzIFNjcm9sbFZpZXc7CkBAIC0x
MzEsNiArMTMyLDE1IEBAIHB1YmxpYzoKIH07CiAjZW5kaWYgLy8gRU5BQkxFKFRPVUNIX0VWRU5U
UykKIAorI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKKy8vIENvbnZlcnRzIFdlYkNvcmU6Okdl
c3R1cmVFdmVudCB0byBhIGNvcnJlc3BvbmRpbmcgV2ViR2VzdHVyZUV2ZW50LgorLy8gTk9URTog
SWYgZXZlbnQgbWFwcGluZyBmYWlscywgdGhlIHR5cGUgd2lsbCBiZSBzZXQgdG8gVW5kZWZpbmVk
LgorY2xhc3MgV2ViR2VzdHVyZUV2ZW50QnVpbGRlciA6IHB1YmxpYyBXZWJHZXN0dXJlRXZlbnQg
eworcHVibGljOgorICAgIFdlYkdlc3R1cmVFdmVudEJ1aWxkZXIoY29uc3QgV2ViQ29yZTo6V2lk
Z2V0KiwgY29uc3QgV2ViQ29yZTo6R2VzdHVyZUV2ZW50Jik7Cit9OworI2VuZGlmIC8vIEVOQUJM
RShHRVNUVVJFX0VWRU5UUykKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBs
LmNwcAppbmRleCAyOTQ4OWUyNWE1NDRiMTM1NzI0NmQ3YTM5YWE0ZjlkZmE5Y2JmNzVmLi4xYzVj
MDVmNjZkMjJlOTA1Yjg0OTBkNmVlNTMxYTNlYWViYTY5NmUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcApAQCAtNTYs
NiArNTYsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVz
dC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkdlc3R1cmVFdmVudC5oIgog
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIK
ICNpbmNsdWRlICJIb3N0V2luZG93LmgiCkBAIC0xODgsNiArMTg5LDggQEAgdm9pZCBXZWJQbHVn
aW5Db250YWluZXJJbXBsOjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQpCiAgICAgICAgIGhhbmRs
ZUtleWJvYXJkRXZlbnQoc3RhdGljX2Nhc3Q8S2V5Ym9hcmRFdmVudCo+KGV2ZW50KSk7CiAgICAg
ZWxzZSBpZiAoZXZlbnROYW1lcygpLmlzVG91Y2hFdmVudFR5cGUoZXZlbnQtPnR5cGUoKSkpCiAg
ICAgICAgIGhhbmRsZVRvdWNoRXZlbnQoc3RhdGljX2Nhc3Q8VG91Y2hFdmVudCo+KGV2ZW50KSk7
CisgICAgZWxzZSBpZiAoZXZlbnROYW1lcygpLmlzR2VzdHVyZUV2ZW50VHlwZShldmVudC0+dHlw
ZSgpKSkKKyAgICAgICAgaGFuZGxlR2VzdHVyZUV2ZW50KHN0YXRpY19jYXN0PEdlc3R1cmVFdmVu
dCo+KGV2ZW50KSk7CiAKICAgICAvLyBGSVhNRTogaXQgd291bGQgYmUgY2xlYW5lciBpZiBXaWRn
ZXQ6OmhhbmRsZUV2ZW50IHJldHVybmVkIHRydWUvZmFsc2UgYW5kCiAgICAgLy8gSFRNTFBsdWdp
bkVsZW1lbnQgY2FsbGVkIHNldERlZmF1bHRIYW5kbGVkIG9yIGRlZmF1bHRFdmVudEhhbmRsZXIu
CkBAIC03MzYsNiArNzM5LDE3IEBAIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6aGFuZGxl
VG91Y2hFdmVudChUb3VjaEV2ZW50KiBldmVudCkKICAgICAvLyBGSVhNRTogQ2FuIGEgcGx1Z2lu
IGNoYW5nZSB0aGUgY3Vyc29yIGZyb20gYSB0b3VjaC1ldmVudCBjYWxsYmFjaz8KIH0KIAordm9p
ZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpoYW5kbGVHZXN0dXJlRXZlbnQoR2VzdHVyZUV2ZW50
KiBldmVudCkKK3sKKyAgICBXZWJHZXN0dXJlRXZlbnRCdWlsZGVyIHdlYkV2ZW50KHRoaXMsICpl
dmVudCk7CisgICAgaWYgKHdlYkV2ZW50LnR5cGUgPT0gV2ViSW5wdXRFdmVudDo6VW5kZWZpbmVk
KQorICAgICAgICByZXR1cm47CisgICAgV2ViQ3Vyc29ySW5mbyBjdXJzb3JJbmZvOworICAgIGlm
IChtX3dlYlBsdWdpbi0+aGFuZGxlSW5wdXRFdmVudCh3ZWJFdmVudCwgY3Vyc29ySW5mbykpCisg
ICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgIC8vIEZJWE1FOiBDYW4gYSBw
bHVnaW4gY2hhbmdlIHRoZSBjdXJzb3IgZnJvbSBhIHRvdWNoLWV2ZW50IGNhbGxiYWNrPworfQor
CiB2b2lkIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OmNhbGN1bGF0ZUdlb21ldHJ5KGNvbnN0IElu
dFJlY3QmIGZyYW1lUmVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgSW50UmVjdCYgd2luZG93UmVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgSW50UmVjdCYgY2xpcFJlY3QsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgKaW5kZXggNGMyYWFl
YjRhMDQ4NDM0MGFmNjYxYTVhZGNiMmMyMzk4N2E4YzQ3Ni4uNjFmNWM1YjcxNDZmMjk5NTdkYjg5
MThmOThkYjQ1YWZkOTQ1Njk3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaApAQCAtNDUsNiArNDUsNyBAQAogc3RydWN0IE5Q
T2JqZWN0OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBHZXN0dXJlRXZlbnQ7CiBjbGFz
cyBIVE1MUGx1Z0luRWxlbWVudDsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBLZXlib2FyZEV2ZW50
OwpAQCAtMTY3LDYgKzE2OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBoYW5kbGVXaGVlbEV2ZW50
KFdlYkNvcmU6OldoZWVsRXZlbnQqKTsKICAgICB2b2lkIGhhbmRsZUtleWJvYXJkRXZlbnQoV2Vi
Q29yZTo6S2V5Ym9hcmRFdmVudCopOwogICAgIHZvaWQgaGFuZGxlVG91Y2hFdmVudChXZWJDb3Jl
OjpUb3VjaEV2ZW50Kik7CisgICAgdm9pZCBoYW5kbGVHZXN0dXJlRXZlbnQoV2ViQ29yZTo6R2Vz
dHVyZUV2ZW50Kik7CiAKICAgICB2b2lkIGNhbGN1bGF0ZUdlb21ldHJ5KGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIGZyYW1lUmVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkNvcmU6
OkludFJlY3QmIHdpbmRvd1JlY3QsCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggYjQ0ZDg5MGVlMzE5NGNlZWU3ZDFlOWE0OWZiZmVmNThkYmZjZTc4
NC4uYzA3ZTAzMTRjNDEwNDk5NmZmZGY1YjcxMTdkZjQ2YmJlYzYxY2YzNCAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisy
MDEyLTA3LTI2ICBTYWRydWwgSGFiaWIgQ2hvd2RodXJ5ICA8c2FkcnVsQGNocm9taXVtLm9yZz4K
KworICAgICAgICBQcm9wYWdhdGUgZ2VzdHVyZSBldmVudHMgdG8gcGx1Z2lucy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMjgxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBVcGRhdGUgVGVzdFdlYlBsdWdpbiB0
byByZWNlaXZlIGV2ZW50cywgYW5kIG91dHB1dCBsb2dzIGZvciB0aGUgZXZlbnRzLgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5jcHA6CisgICAgICAg
IChUZXN0V2ViUGx1Z2luOjpoYW5kbGVJbnB1dEV2ZW50KToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmg6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjph
Y2NlcHRzSW5wdXRFdmVudHMpOgorICAgICAgICAoVGVzdFdlYlBsdWdpbik6CisKIDIwMTItMDct
MjAgIEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyICA8aG9sZ2VyQG1vaWppLW1vYmlsZS5jb20+
CiAKICAgICAgICAgYnVpbGRib3Q6IFJlbW92ZSB0aGUgY29uZmlndXJhdGlvbiBvZiBoZnJleXRo
ZXIqCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1
Z2luLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uY3Bw
CmluZGV4IDU3MDE5MmNiYjEyYzM2MjA1NzM5Yjg2ZmU5MGU4Yjk4ZWUxYTNmYTMuLmJiZWJhNmY5
YjcxZDZlOWZhZWM4M2QwZTkwYTlhMTFhZGViODE1YmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5j
bHVkZSAiVGVzdFdlYlBsdWdpbi5oIgogCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKKyNpbmNsdWRl
ICJXZWJJbnB1dEV2ZW50LmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViR3JhcGhpY3NDb250ZXh0
M0QuaCIKICNpbmNsdWRlICJXZWJLaXQuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJLaXRQbGF0
Zm9ybVN1cHBvcnQuaCIKQEAgLTM2NCwzICszNjUsNDcgQEAgdW5zaWduZWQgVGVzdFdlYlBsdWdp
bjo6bG9hZFByb2dyYW0oY29uc3QgQ1N0cmluZyYgdmVydGV4U291cmNlLAogICAgIHJldHVybiBw
cm9ncmFtOwogfQogCitib29sIFRlc3RXZWJQbHVnaW46OmhhbmRsZUlucHV0RXZlbnQoY29uc3Qg
V2ViS2l0OjpXZWJJbnB1dEV2ZW50JiBldmVudCwgV2ViS2l0OjpXZWJDdXJzb3JJbmZvJiBpbmZv
KQoreworICAgIGNvbnN0IGNoYXIqIGV2ZW50TmFtZSA9IDA7CisgICAgc3dpdGNoIChldmVudC50
eXBlKSB7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6OlVuZGVmaW5lZDogICAgICAg
ICAgIGV2ZW50TmFtZSA9ICJ1bmtub3duIjsgYnJlYWs7CisKKyAgICBjYXNlIFdlYktpdDo6V2Vi
SW5wdXRFdmVudDo6TW91c2VEb3duOiAgICAgICAgICAgZXZlbnROYW1lID0gIk1vdXNlRG93biI7
IGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpNb3VzZVVwOiAgICAgICAg
ICAgICBldmVudE5hbWUgPSAiTW91c2VVcCI7IGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJJ
bnB1dEV2ZW50OjpNb3VzZU1vdmU6ICAgICAgICAgICBldmVudE5hbWUgPSAiTW91c2VNb3ZlIjsg
YnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6Ok1vdXNlRW50ZXI6ICAgICAg
ICAgIGV2ZW50TmFtZSA9ICJNb3VzZUVudGVyIjsgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6Oldl
YklucHV0RXZlbnQ6Ok1vdXNlTGVhdmU6ICAgICAgICAgIGV2ZW50TmFtZSA9ICJNb3VzZUxlYXZl
IjsgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6OkNvbnRleHRNZW51OiAg
ICAgICAgIGV2ZW50TmFtZSA9ICJDb250ZXh0TWVudSI7IGJyZWFrOworCisgICAgY2FzZSBXZWJL
aXQ6OldlYklucHV0RXZlbnQ6Ok1vdXNlV2hlZWw6ICAgICAgICAgIGV2ZW50TmFtZSA9ICJNb3Vz
ZVdoZWVsIjsgYnJlYWs7CisKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6UmF3S2V5
RG93bjogICAgICAgICAgZXZlbnROYW1lID0gIlJhd0tleURvd24iOyBicmVhazsKKyAgICBjYXNl
IFdlYktpdDo6V2ViSW5wdXRFdmVudDo6S2V5RG93bjogICAgICAgICAgICAgZXZlbnROYW1lID0g
IktleURvd24iOyBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6S2V5VXA6
ICAgICAgICAgICAgICAgZXZlbnROYW1lID0gIktleVVwIjsgYnJlYWs7CisgICAgY2FzZSBXZWJL
aXQ6OldlYklucHV0RXZlbnQ6OkNoYXI6ICAgICAgICAgICAgICAgIGV2ZW50TmFtZSA9ICJDaGFy
IjsgYnJlYWs7CisKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6R2VzdHVyZVNjcm9s
bEJlZ2luOiAgZXZlbnROYW1lID0gIkdlc3R1cmVTY3JvbGxCZWdpbiI7IGJyZWFrOworICAgIGNh
c2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpHZXN0dXJlU2Nyb2xsRW5kOiAgICBldmVudE5hbWUg
PSAiR2VzdHVyZVNjcm9sbEVuZCI7IGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJJbnB1dEV2
ZW50OjpHZXN0dXJlU2Nyb2xsVXBkYXRlOiBldmVudE5hbWUgPSAiR2VzdHVyZVNjcm9sbFVwZGF0
ZSI7IGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpHZXN0dXJlRmxpbmdT
dGFydDogICBldmVudE5hbWUgPSAiR2VzdHVyZUZsaW5nU3RhcnQiOyBicmVhazsKKyAgICBjYXNl
IFdlYktpdDo6V2ViSW5wdXRFdmVudDo6R2VzdHVyZUZsaW5nQ2FuY2VsOiAgZXZlbnROYW1lID0g
Ikdlc3R1cmVGbGluZ0NhbmNlbCI7IGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJJbnB1dEV2
ZW50OjpHZXN0dXJlVGFwOiAgICAgICAgICBldmVudE5hbWUgPSAiR2VzdHVyZVRhcCI7IGJyZWFr
OworICAgIGNhc2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwRG93bjogICAgICBl
dmVudE5hbWUgPSAiR2VzdHVyZVRhcERvd24iOyBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2Vi
SW5wdXRFdmVudDo6R2VzdHVyZURvdWJsZVRhcDogICAgZXZlbnROYW1lID0gIkdlc3R1cmVEb3Vi
bGVUYXAiOyBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6R2VzdHVyZVR3
b0ZpbmdlclRhcDogZXZlbnROYW1lID0gIkdlc3R1cmVUd29GaW5nZXJUYXAiOyBicmVhazsKKyAg
ICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6R2VzdHVyZUxvbmdQcmVzczogICAgZXZlbnRO
YW1lID0gIkdlc3R1cmVMb25nUHJlc3MiOyBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5w
dXRFdmVudDo6R2VzdHVyZVBpbmNoQmVnaW46ICAgZXZlbnROYW1lID0gIkdlc3R1cmVQaW5jaEJl
Z2luIjsgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6Okdlc3R1cmVQaW5j
aEVuZDogICAgIGV2ZW50TmFtZSA9ICJHZXN0dXJlUGluY2hFbmQiOyBicmVhazsKKyAgICBjYXNl
IFdlYktpdDo6V2ViSW5wdXRFdmVudDo6R2VzdHVyZVBpbmNoVXBkYXRlOiAgZXZlbnROYW1lID0g
Ikdlc3R1cmVQaW5jaFVwZGF0ZSI7IGJyZWFrOworCisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0
RXZlbnQ6OlRvdWNoU3RhcnQ6ICAgICAgICAgIGV2ZW50TmFtZSA9ICJUb3VjaFN0YXJ0IjsgYnJl
YWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6OlRvdWNoTW92ZTogICAgICAgICAg
IGV2ZW50TmFtZSA9ICJUb3VjaE1vdmUiOyBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5w
dXRFdmVudDo6VG91Y2hFbmQ6ICAgICAgICAgICAgZXZlbnROYW1lID0gIlRvdWNoRW5kIjsgYnJl
YWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6OlRvdWNoQ2FuY2VsOiAgICAgICAg
IGV2ZW50TmFtZSA9ICJUb3VjaENhbmNlbCI7IGJyZWFrOworICAgIH0KKworICAgIHByaW50Zigi
UGx1Z2luIHJlY2VpdmVkIGV2ZW50OiAlc1xuIiwgZXZlbnROYW1lID8gZXZlbnROYW1lIDogInVu
a25vd24iKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uaAppbmRleCA0YzlmMmY0ZDIyODU3OWNjZjZhMTY0NTZi
ZjBhZDM0NGNhZDg5ZjcwLi4wMjViMTEwOTU1NWEyYzBhOGEyMjIyMmYzZWU0YjgxNTZmNmIzNGUz
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2lu
LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5oCkBA
IC02MCw4ICs2MCw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ym9vbCBpc1Zpc2libGUpOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGb2N1cyhib29sKSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVmlzaWJpbGl0eShib29sKSB7IH0KLSAgICB2aXJ0dWFs
IGJvb2wgYWNjZXB0c0lucHV0RXZlbnRzKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFs
IGJvb2wgaGFuZGxlSW5wdXRFdmVudChjb25zdCBXZWJLaXQ6OldlYklucHV0RXZlbnQmLCBXZWJL
aXQ6OldlYkN1cnNvckluZm8mKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBh
Y2NlcHRzSW5wdXRFdmVudHMoKSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGhh
bmRsZUlucHV0RXZlbnQoY29uc3QgV2ViS2l0OjpXZWJJbnB1dEV2ZW50JiwgV2ViS2l0OjpXZWJD
dXJzb3JJbmZvJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBX
ZWJLaXQ6OldlYlVSTFJlc3BvbnNlJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVE
YXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgZGlkRmluaXNoTG9hZGluZygpIHsgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGI0Y2IxYzcyNGI2OGI2MzNhM2Y3MjE4
YTgyMTg2MWRlZjM1MWU1YjMuLjQ3YWVlNmM0ZGViZGJhODM2YTllNWI1OTU1MDNmM2FlNmJhYzAz
NTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNy0yNiAgU2FkcnVsIEhhYmliIENob3dk
aHVyeSAgPHNhZHJ1bEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHJvcGFnYXRlIGdlc3R1cmUg
ZXZlbnRzIHRvIHBsdWdpbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05MjI4MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAg
ICAgICAgQWRkZWQgYSBsYXlvdXQgdGVzdCB0byBzaG93IHRoYXQgdGhlIHBsdWdpbnMgcmVjZWl2
ZSB0aGUgZ2VzdHVyZSBldmVudHMgY29ycmVjdGx5LgorCisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0vcGx1Z2lucy9nZXN0dXJlLWV2ZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL3BsdWdpbnMvZ2VzdHVyZS1ldmVudHMuaHRtbDogQWRkZWQu
CisKIDIwMTItMDctMjYgIMOBZMOhbSBLYWxsYWkgIDxrYWRhbUBpbmYudS1zemVnZWQuaHU+CiAK
ICAgICAgICAgW1F0XSBVbnJldmlld2VkIGdhcmRlbmluZy4gRml4IGFmdGVyIHIxMjM3MzMuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL2dlc3R1cmUt
ZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3BsdWdp
bnMvZ2VzdHVyZS1ldmVudHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmZGE0MjZiMThjYjdk
NzczODcxNjM5ZTdjMDA0NGFmNjY3ZTFkYzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL2dlc3R1cmUtZXZlbnRzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDEwIEBACitQbHVnaW4gcmVjZWl2ZWQgZXZlbnQ6IEdlc3R1cmVUYXAKK1BsdWdp
biByZWNlaXZlZCBldmVudDogTW91c2VFbnRlcgorUGx1Z2luIHJlY2VpdmVkIGV2ZW50OiBNb3Vz
ZU1vdmUKK1BsdWdpbiByZWNlaXZlZCBldmVudDogTW91c2VEb3duCitQbHVnaW4gcmVjZWl2ZWQg
ZXZlbnQ6IE1vdXNlVXAKK1BsdWdpbiByZWNlaXZlZCBldmVudDogR2VzdHVyZVNjcm9sbEJlZ2lu
CitQbHVnaW4gcmVjZWl2ZWQgZXZlbnQ6IEdlc3R1cmVTY3JvbGxVcGRhdGUKK1BsdWdpbiByZWNl
aXZlZCBldmVudDogTW91c2VXaGVlbAorUGx1Z2luIHJlY2VpdmVkIGV2ZW50OiBHZXN0dXJlU2Ny
b2xsRW5kCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3BsdWdp
bnMvZ2VzdHVyZS1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Bs
dWdpbnMvZ2VzdHVyZS1ldmVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZGQyYjM2NzRlMjJiYTQ1N2Ew
NWE3NzM0ZjExY2M0MzdkY2JiYzg5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vcGx1Z2lucy9nZXN0dXJlLWV2ZW50cy5odG1sCkBAIC0wLDAgKzEsMzEg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisgICNwbHVnaW4geworICAgIHdpZHRoOiAxNTBw
eDsKKyAgICBoZWlnaHQ6IDE1MHB4OworICB9Cis8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keT4K
KzxlbWJlZCBpZD0icGx1Z2luIiB0eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LXdlYnBs
dWdpbiIgcHJpbWl0aXZlPSJ0cmlhbmdsZSIgYmFja2dyb3VuZC1jb2xvcj0iZ3JlZW4iIHByaW1p
dGl2ZS1jb2xvcj0iYmx1ZSI+PC9lbWJlZD4KKzxzY3JpcHQ+CisKKyAgICBpZiAoIXdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGlzIHRlc3QgZG9lcyBub3Qg
d29yayBpbiBtYW51YWwgbW9kZS4iKTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKworICAgICAgICAvLyBTZW5kIHNvbWUgZ2VzdHVyZSBldmVudHMgdG8g
dGhlIHBsdWdpbi4KKyAgICAgICAgdmFyIHBvc2l0aW9uWCA9IHBsdWdpbi5vZmZzZXRMZWZ0ICsg
MTA7CisgICAgICAgIHZhciBwb3NpdGlvblkgPSBwbHVnaW4ub2Zmc2V0VG9wICsgMTA7CisgICAg
ICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVUYXAocG9zaXRpb25YLCBwb3NpdGlvblkpOworICAgICAg
ICBldmVudFNlbmRlci5nZXN0dXJlU2Nyb2xsQmVnaW4ocG9zaXRpb25YLCBwb3NpdGlvblkpOwor
ICAgICAgICBldmVudFNlbmRlci5nZXN0dXJlU2Nyb2xsVXBkYXRlKDMwLCAwKTsKKyAgICAgICAg
ZXZlbnRTZW5kZXIuZ2VzdHVyZVNjcm9sbEVuZCgwLCAwKTsKKyAgICB9CisKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155007</attachid>
            <date>2012-07-27 12:03:03 -0700</date>
            <delta_ts>2012-07-27 14:13:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92281-20120727150251.patch</filename>
            <type>text/plain</type>
            <size>38321</size>
            <attacher name="Sadrul Habib Chowdhury">sadrul</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmJlYmY2NGJmYThmNzU4
MTdjNmEyNjVmMjIxYWIzNWZkZjAyMTczYy4uMjJiNjhmNWE5MDZiYmJkOTU0NDUyYjk3N2RjNzI2
NmMyNzg4YTFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTA3LTI2ICBTYWRy
dWwgSGFiaWIgQ2hvd2RodXJ5ICA8c2FkcnVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBQcm9w
YWdhdGUgZ2VzdHVyZSBldmVudHMgdG8gcGx1Z2lucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRh
bSBCYXJ0aC4KKworICAgICAgICBQcm9wYWdhdGUgZ2VzdHVyZSBldmVudHMgdG8gcGx1Z2lucy4g
VGhpcyBjaGFuZ2UgZG9lcyBub3QgZXhwb3NlIHRoZSBnZXN0dXJlIGV2ZW50cworICAgICAgICB0
byBKYXZhU2NyaXB0LCBzaW5jZSB0aGVyZSBpcyBubyBzcGVjIGZvciB0aGF0IGF0IHRoZSBtb21l
bnQuIEV4cG9zaW5nIGdlc3R1cmUgZXZlbnRzCisgICAgICAgIHRvIEphdmFTY3JpcHQgd2lsbCBi
ZSBkb25lIHNlcGFyYXRlbHksIG9uY2UgdGhlcmUgaXMgYSBzcGVjIGZvciBpdC4KKworICAgICAg
ICBUZXN0OiBwbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL2dlc3R1cmUtZXZlbnRzLmh0bWwKKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9FdmVu
dE5hbWVzLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50TmFt
ZXM6OmlzR2VzdHVyZUV2ZW50VHlwZSk6CisgICAgICAgIChFdmVudE5hbWVzKToKKyAgICAgICAg
KiBkb20vR2VzdHVyZUV2ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okdlc3R1cmVFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okdl
c3R1cmVFdmVudDo6aW5pdEdlc3R1cmVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJl
RXZlbnQ6OmludGVyZmFjZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2ZW50OjpH
ZXN0dXJlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRp
YXRvcjo6R2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpH
ZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpldmVudCk6CisgICAgICAgIChXZWJDb3JlOjpH
ZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpkaXNwYXRjaEV2ZW50KToKKyAgICAgICAgKiBk
b20vR2VzdHVyZUV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChH
ZXN0dXJlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2ZW50Ojp+R2VzdHVyZUV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okdlc3R1cmVFdmVudDo6ZGVsdGFYKToKKyAgICAgICAg
KFdlYkNvcmU6Okdlc3R1cmVFdmVudDo6ZGVsdGFZKToKKyAgICAgICAgKFdlYkNvcmU6Okdlc3R1
cmVFdmVudDo6R2VzdHVyZUV2ZW50KToKKyAgICAgICAgKEdlc3R1cmVFdmVudERpc3BhdGNoTWVk
aWF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6
Y3JlYXRlKToKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vZGU6OmRpc3BhdGNoR2VzdHVyZUV2ZW50KToKKyAgICAgICAgKiBk
b20vTm9kZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChOb2RlKToKKyAgICAgICAg
KiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZUV2
ZW50KToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5oOgorCiAyMDEyLTA3LTI2ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEludHJvZHVjZSBnZW5lcmljIExpdmVMb2NhdGlvbiwgbWFrZSBTY3JpcHQuTG9jYXRpb24g
aW5oZXJpdCBpdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZGY2YmMzNWUxZGVlZWI0
MTM0N2YyMDk4ZWM5MWJkYWZlZjFjZWIxMS4uMjA5OGQwMDk2NWNlYjdkYjkzNjkxOWI0MzNiMTYw
M2IzNWIyOTlkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAor
MjAxMi0wNy0yNiAgU2FkcnVsIEhhYmliIENob3dkaHVyeSAgPHNhZHJ1bEBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUHJvcGFnYXRlIGdlc3R1cmUgZXZlbnRzIHRvIHBsdWdpbnMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjI4MQorCisgICAgICAg
IFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgUHJvcGFnYXRlIGdlc3R1cmUgZXZl
bnRzIHRvIHBsdWdpbnMuCisKKyAgICAgICAgKiBzcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24u
Y3BwOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VzdHVyZUV2ZW50
QnVpbGRlcjo6V2ViR2VzdHVyZUV2ZW50QnVpbGRlcik6CisgICAgICAgICogc3JjL1dlYklucHV0
RXZlbnRDb252ZXJzaW9uLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChXZWJHZXN0dXJlRXZlbnRCdWlsZGVyKToKKyAgICAgICAgKiBzcmMvV2ViUGx1
Z2luQ29udGFpbmVySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5l
ckltcGw6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBzcmMvV2ViUGx1Z2luQ29udGFpbmVySW1w
bC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJQbHVnaW5Db250YWluZXJJbXBs
KToKKwogMjAxMi0wNy0yNSAgRGF2aWQgR3JvZ2FuICA8ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgSW5kZXhlZERCOiBXZWJLaXQgQVBJIGludGVyZmFjZXMgZm9yICJ1cGdyYWRlbmVl
ZGVkIiBtZXRob2RzIGFuZCBldmVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMDg1NDE4Y2Rh
MTBmZmVkZDcxNjE0ZGJlZmZiMTU3NmJlNTU2NDk2Yi4uZGZlNDA0YjJlOGNlNGFiNTFjMTUzZmY4
ZmE4MTgzMWU5Y2M1MWQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEwOTksNiArMTA5OSw3
IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vRXhjZXB0aW9uQmFzZS5jcHAKICAgICBk
b20vRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmNwcAogICAgIGRvbS9HZW5lcmljRXZlbnRRdWV1
ZS5jcHAKKyAgICBkb20vR2VzdHVyZUV2ZW50LmNwcAogICAgIGRvbS9JY29uVVJMLmNwcAogICAg
IGRvbS9JZFRhcmdldE9ic2VydmVyLmNwcAogICAgIGRvbS9JZFRhcmdldE9ic2VydmVyUmVnaXN0
cnkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAyNTYzOWQyMWJiMjk0YzZi
OTU5MTliNzVjMDYyYjJiYjFkOGI2ZDEyLi5iMzU0ZjU1N2Y0NjAzNGEwNWFjMzczZjA3NWNkMjRj
MjlkMzYxNmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTE5NTEsNiArMTk1
MSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlv
bkNvZGVQbGFjZWhvbGRlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2Rl
UGxhY2Vob2xkZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50U2NyaXB0aW5nUGVy
bWlzc2lvbi5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vR2VzdHVyZUV2ZW50LmNwcCBcCisJU291
cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVFdmVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vSWdu
b3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUv
ZG9tL0V4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vR2Vu
ZXJpY0V2ZW50UXVldWUuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGViYzNiNTk3ZjMyMGIxN2ViYzU1
MjhmMjBiNDZjMmJjMjc0YjcwNDYuLjJlMDAwY2Y2YTMwNDBlMWRkMDBkMjA0OGRjZmM2ZmY3ZDRk
ZjA2N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNDA4LDYgKzQwOCw3IEBAIFNPVVJDRVMgKz0gXAogICAg
IGRvbS9FeGNlcHRpb25CYXNlLmNwcCBcCiAgICAgZG9tL0V4Y2VwdGlvbkNvZGVQbGFjZWhvbGRl
ci5jcHAgXAogICAgIGRvbS9HZW5lcmljRXZlbnRRdWV1ZS5jcHAgXAorICAgIGRvbS9HZXN0dXJl
RXZlbnQuY3BwIFwKICAgICBkb20vSWNvblVSTC5jcHAgXAogICAgIGRvbS9JZFRhcmdldE9ic2Vy
dmVyLmNwcCBcCiAgICAgZG9tL0lkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5jcHAgXApAQCAtMTUz
NCw2ICsxNTM1LDcgQEAgSEVBREVSUyArPSBcCiAgICAgZG9tL0V4Y2VwdGlvbkJhc2UuaCBcCiAg
ICAgZG9tL0V4Y2VwdGlvbkNvZGUuaCBcCiAgICAgZG9tL0ZyYWdtZW50U2NyaXB0aW5nUGVybWlz
c2lvbi5oIFwKKyAgICBkb20vR2VzdHVyZUV2ZW50LmggXAogICAgIGRvbS9JZFRhcmdldE9ic2Vy
dmVyLmggXAogICAgIGRvbS9JZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuaCBcCiAgICAgZG9tL0tl
eWJvYXJkRXZlbnQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNzVlNTQxYjc4YjMyYmQ0YWY3NThh
YzAxNGYyMmI4MDA5Y2Q1ZDc0YS4uMWU2ODNlYWU1MmQwZWM2MzIxYTJhOWU4ZmQxNzAxYzA3ZWIx
MGVhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNTE4NSw2ICs1MTg1LDggQEAKICAgICAgICAgICAg
ICdkb20vRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0dl
bmVyaWNFdmVudFF1ZXVlLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0dlbmVyaWNFdmVudFF1ZXVl
LmgnLAorICAgICAgICAgICAgJ2RvbS9HZXN0dXJlRXZlbnQuY3BwJywKKyAgICAgICAgICAgICdk
b20vR2VzdHVyZUV2ZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9IYXNoQ2hhbmdlRXZlbnQuaCcs
CiAgICAgICAgICAgICAnZG9tL0lnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVy
LmgnLAogICAgICAgICAgICAgJ2RvbS9JY29uVVJMLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjNjZjg0MTAwZGU3YzMz
OTY1MGU3MWE1MDJhYmUwYjUyYzkwNDRjNC4uM2NiODliYTlhMzEzOWExZmRmODQwYjE2MThiMWQz
ZTAxM2UzMmQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTEyLDYgKzExMiw4IEBACiAJCTA3MDlGQzRFMTAyNURFRTMwMDU5
Q0RCQSAvKiBBY2Nlc3NpYmlsaXR5U2xpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA5RkM0RDEwMjVERUUzMDA1OUNEQkEgLyogQWNjZXNzaWJp
bGl0eVNsaWRlci5oICovOyB9OwogCQkwNzIwQjBBMDE0RDMzMjM1MDA2NDI5NTUgLyogR2VuZXJp
Y0V2ZW50UXVldWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDcyMEIwOUUxNEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmNwcCAq
LzsgfTsKIAkJMDcyMEIwQTExNEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzIwQjA5RjE0
RDMzMjM1MDA2NDI5NTUgLyogR2VuZXJpY0V2ZW50UXVldWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwNzIwQjBBMDE0RDMzMjM1MDA2NDI5NTYg
LyogR2VzdHVyZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3MjBCMDlGMTREMzMyMzUwMDY0Mjk1NiAvKiBHZXN0dXJlRXZlbnQuY3BwICov
OyB9OworCQkwNzIwQjBBMTE0RDMzMjM1MDA2NDI5NTcgLyogR2VzdHVyZUV2ZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzIwQjA5RjE0RDMzMjM1
MDA2NDI5NTcgLyogR2VzdHVyZUV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDcyQzhCMTExMzFDNTE4NjAwQTRGQ0U5IC8qIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzZGMEQwOTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uLmNwcCAqLzsgfTsKIAkJMDczNUVFNkEwRjQwQzVFNDAwNEEyNjA0
IC8qIE1lZGlhUGxheWVyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3MzVFRTY5MEY0MEM1RTQwMDRBMjYwNCAvKiBNZWRpYVBsYXllclByb3h5
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc1
Mzg2MDIxNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzUzODYwMDE0NDg5RTk4MDBCNzg0
NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmNwcCAqLzsgfTsKQEAgLTcwNjgsNiArNzA3MCw4IEBACiAJ
CTA3MEREOEY1MEYwMTg2ODAwMDcyN0RFQiAvKiBtZWRpYUNvbnRyb2xzLmNzcyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBtZWRpYUNvbnRyb2xzLmNzczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDcyMEIwOUUxNEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlbmVyaWNFdmVudFF1ZXVlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyMEIwOUYxNEQzMzIzNTAwNjQyOTU1
IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEdlbmVyaWNFdmVudFF1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MjBC
MDlGMTREMzMyMzUwMDY0Mjk1NiAvKiBHZXN0dXJlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gR2VzdHVyZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMDcyMEIwOUYxNEQzMzIzNTAwNjQyOTU3IC8qIEdlc3R1cmVFdmVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZXN0dXJlRXZlbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczNUVFNjkwRjQwQzVFNDAwNEEyNjA0IC8qIE1lZGlhUGxh
eWVyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJQ
cm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzUzODYwMDE0NDg5RTk4MDBC
Nzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENhY2hlZFRleHRUcmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3NTM4NjAxMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkVGV4dFRyYWNrLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yMTU0MCw2ICsyMTU0NCw4IEBACiAJCQkJQTg1MzEyM0MxMUQw
NDcxQjAwRDREMDc3IC8qIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oICovLAogCQkJCTA3
MjBCMDlFMTREMzMyMzUwMDY0Mjk1NSAvKiBHZW5lcmljRXZlbnRRdWV1ZS5jcHAgKi8sCiAJCQkJ
MDcyMEIwOUYxNEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmggKi8sCisJCQkJ
MDcyMEIwOUYxNEQzMzIzNTAwNjQyOTU2IC8qIEdlc3R1cmVFdmVudC5jcHAgKi8sCisJCQkJMDcy
MEIwOUYxNEQzMzIzNTAwNjQyOTU3IC8qIEdlc3R1cmVFdmVudC5oICovLAogCQkJCTI0NDJCQkY4
MTE5NEM5RDMwMEQ0OTQ2OSAvKiBIYXNoQ2hhbmdlRXZlbnQuaCAqLywKIAkJCQk4NDgyQjc0NDEx
OThDMzJFMDBCRkIwMDUgLyogSGFzaENoYW5nZUV2ZW50LmlkbCAqLywKIAkJCQk0NTA5OUM0MDEz
NzBBNzgwMDA1OEQ1MTMgLyogSWNvblVSTC5jcHAgKi8sCkBAIC0yMzI4Miw2ICsyMzI4OCw3IEBA
CiAJCQkJMkQ0ODFGMDQxNDZCNUM2QjAwQUE3ODM0IC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNjIyQThGRjEyMkM0NEE2MDBBNzg1QjMgLyogR2VuZXJp
Y0JpbmRpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3MjBCMEExMTREMzMyMzUwMDY0Mjk1NSAv
KiBHZW5lcmljRXZlbnRRdWV1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDcyMEIwQTExNEQzMzIz
NTAwNjQyOTU3IC8qIEdlc3R1cmVFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc0NkFGMjQx
NEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzU2
Q0IyMzEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTA1MkJGQ0VCMTI4QUJGMjEwMEZEMzM4RCAvKiBHZW9sb2NhdGlvbkNsaWVudE1vY2su
aCBpbiBIZWFkZXJzICovLApAQCAtMjY0NzIsNiArMjY0NzksNyBAQAogCQkJCTE0MzJFODQ5MEM1
MTQ5M0YwMEIxNTAwRiAvKiBHQ0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ0
ODFGMDMxNDZCNUM2NTAwQUE3ODM0IC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTA3MjBCMEEwMTREMzMyMzUwMDY0Mjk1NSAvKiBHZW5lcmljRXZlbnRR
dWV1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwNzIwQjBBMDE0RDMzMjM1MDA2NDI5NTYgLyog
R2VzdHVyZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NDZBRjIzMTRGNERERTYwMDNF
N0E3MCAvKiBHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNTJCRkNFOTEyOEFC
RjE1MDBGRDMzOEQgLyogR2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk3NDZBRjI2MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1l
cy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCBiMGVmYmU3NjUwOGM4
ZWIyNTRkZjI5NjJiYmU4OWRjNjI3MTcxNDJkLi44OThkYTk2MjIzZmQwNzFhZDAwYmQxYTkyNTc0
ZTJhYzJmYjc1ZTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTcxLDYgKzcxLDExIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhmb2N1cykgXAogICAgIG1hY3JvKGZvY3Vz
aW4pIFwKICAgICBtYWNybyhmb2N1c291dCkgXAorICAgIG1hY3JvKGdlc3R1cmV0YXApIFwKKyAg
ICBtYWNybyhnZXN0dXJldGFwZG93bikgXAorICAgIG1hY3JvKGdlc3R1cmVzY3JvbGxzdGFydCkg
XAorICAgIG1hY3JvKGdlc3R1cmVzY3JvbGxlbmQpIFwKKyAgICBtYWNybyhnZXN0dXJlc2Nyb2xs
dXBkYXRlKSBcCiAgICAgbWFjcm8oaGFzaGNoYW5nZSkgXAogICAgIG1hY3JvKGlucHV0KSBcCiAg
ICAgbWFjcm8oaW52YWxpZCkgXApAQCAtMjYyLDYgKzI2NywxNSBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgICAgICAgICAgfHwgZXZlbnRUeXBlID09IHRvdWNoY2FuY2VsRXZlbnQ7CiAg
ICAgICAgIH0KIAorICAgICAgICBpbmxpbmUgYm9vbCBpc0dlc3R1cmVFdmVudFR5cGUoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJl
dHVybiBldmVudFR5cGUgPT0gZ2VzdHVyZXRhcEV2ZW50CisgICAgICAgICAgICAgICAgfHwgZXZl
bnRUeXBlID09IGdlc3R1cmV0YXBkb3duRXZlbnQKKyAgICAgICAgICAgICAgICB8fCBldmVudFR5
cGUgPT0gZ2VzdHVyZXNjcm9sbHN0YXJ0RXZlbnQKKyAgICAgICAgICAgICAgICB8fCBldmVudFR5
cGUgPT0gZ2VzdHVyZXNjcm9sbGVuZEV2ZW50CisgICAgICAgICAgICAgICAgfHwgZXZlbnRUeXBl
ID09IGdlc3R1cmVzY3JvbGx1cGRhdGVFdmVudDsKKyAgICAgICAgfQorCiAgICAgICAgIFZlY3Rv
cjxBdG9taWNTdHJpbmc+IHRvdWNoRXZlbnROYW1lcygpIGNvbnN0CiAgICAgICAgIHsKICAgICAg
ICAgICAgIFZlY3RvcjxBdG9taWNTdHJpbmc+IG5hbWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0dlc3R1cmVFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vR2VzdHVyZUV2
ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lMjQ3YjJmYjgxYzFmNDNiYzBlNzI2YzRmZmViODc4ZDNhNWZi
MDFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVFdmVudC5j
cHAKQEAgLTAsMCArMSwxMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQorCisjaW5jbHVkZSAiR2VzdHVyZUV2ZW50LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxHZXN0dXJlRXZlbnQ+IEdlc3R1cmVF
dmVudDo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdlc3R1cmVFdmVudCk7
Cit9CisKK1Bhc3NSZWZQdHI8R2VzdHVyZUV2ZW50PiBHZXN0dXJlRXZlbnQ6OmNyZWF0ZShQYXNz
UmVmUHRyPEFic3RyYWN0Vmlldz4gdmlldywgY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGV2
ZW50KQoreworICAgIEF0b21pY1N0cmluZyBldmVudFR5cGU7CisgICAgc3dpdGNoIChldmVudC50
eXBlKCkpIHsKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVTY3JvbGxCZWdpbjoKKyAg
ICAgICAgZXZlbnRUeXBlID0gZXZlbnROYW1lcygpLmdlc3R1cmVzY3JvbGxzdGFydEV2ZW50OyBi
cmVhazsKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVTY3JvbGxFbmQ6CisgICAgICAg
IGV2ZW50VHlwZSA9IGV2ZW50TmFtZXMoKS5nZXN0dXJlc2Nyb2xsZW5kRXZlbnQ7IGJyZWFrOwor
ICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVNjcm9sbFVwZGF0ZToKKyAgICAgICAgZXZl
bnRUeXBlID0gZXZlbnROYW1lcygpLmdlc3R1cmVzY3JvbGx1cGRhdGVFdmVudDsgYnJlYWs7Cisg
ICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlVGFwOgorICAgICAgICBldmVudFR5cGUgPSBl
dmVudE5hbWVzKCkuZ2VzdHVyZXRhcEV2ZW50OyBicmVhazsKKyAgICBjYXNlIFBsYXRmb3JtRXZl
bnQ6Okdlc3R1cmVUYXBEb3duOgorICAgICAgICBldmVudFR5cGUgPSBldmVudE5hbWVzKCkuZ2Vz
dHVyZXRhcGRvd25FdmVudDsgYnJlYWs7CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJl
RG91YmxlVGFwOgorICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVR3b0ZpbmdlclRhcDoK
KyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVMb25nUHJlc3M6CisgICAgY2FzZSBQbGF0
Zm9ybUV2ZW50OjpHZXN0dXJlUGluY2hCZWdpbjoKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdl
c3R1cmVQaW5jaEVuZDoKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVQaW5jaFVwZGF0
ZToKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZXN0dXJlRXZlbnQoZXZlbnRUeXBlLCB2aWV3LCBldmVu
dC5nbG9iYWxQb3NpdGlvbigpLngoKSwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS55KCksIGV2ZW50
LnBvc2l0aW9uKCkueCgpLCBldmVudC5wb3NpdGlvbigpLnkoKSwgZXZlbnQuY3RybEtleSgpLCBl
dmVudC5hbHRLZXkoKSwgZXZlbnQuc2hpZnRLZXkoKSwgZXZlbnQubWV0YUtleSgpLCBldmVudC5k
ZWx0YVgoKSwgZXZlbnQuZGVsdGFZKCkpKTsKK30KKwordm9pZCBHZXN0dXJlRXZlbnQ6OmluaXRH
ZXN0dXJlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBQYXNzUmVmUHRyPEFic3RyYWN0
Vmlldz4gdmlldywgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgY2xpZW50WCwgaW50IGNs
aWVudFksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0
YUtleSwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVkpCit7CisgICAgaWYgKGRpc3BhdGNoZWQo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW5pdFVJRXZlbnQodHlwZSwgdHJ1ZSwgdHJ1ZSwg
dmlldywgMCk7CisgICAgbV9zY3JlZW5Mb2NhdGlvbiA9IEludFBvaW50KHNjcmVlblgsIHNjcmVl
blkpOworICAgIG1fY3RybEtleSA9IGN0cmxLZXk7CisgICAgbV9hbHRLZXkgPSBhbHRLZXk7Cisg
ICAgbV9zaGlmdEtleSA9IHNoaWZ0S2V5OworICAgIG1fbWV0YUtleSA9IG1ldGFLZXk7CisKKyAg
ICBtX2RlbHRhWCA9IGRlbHRhWDsKKyAgICBtX2RlbHRhWSA9IGRlbHRhWTsKKworICAgIGluaXRD
b29yZGluYXRlcyhJbnRQb2ludChjbGllbnRYLCBjbGllbnRZKSk7Cit9CisKK2NvbnN0IEF0b21p
Y1N0cmluZyYgR2VzdHVyZUV2ZW50OjppbnRlcmZhY2VOYW1lKCkgY29uc3QKK3sKKyAgICBzdGF0
aWMgQXRvbWljU3RyaW5nIGludGVyZmFjZSgiVEJESW50ZXJmYWNlIik7CisgICAgcmV0dXJuIGlu
dGVyZmFjZTsKK30KKworR2VzdHVyZUV2ZW50OjpHZXN0dXJlRXZlbnQoKQorICAgIDogbV9kZWx0
YVgoMCkKKyAgICAsIG1fZGVsdGFZKDApCit7Cit9CisKK0dlc3R1cmVFdmVudDo6R2VzdHVyZUV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+IHZp
ZXcsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IGNsaWVudFgsIGludCBjbGllbnRZLCBi
b29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIGZs
b2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZKQorICAgIDogTW91c2VSZWxhdGVkRXZlbnQodHlwZSwg
dHJ1ZSwgdHJ1ZSwgdmlldywgMCwgSW50UG9pbnQoc2NyZWVuWCwgc2NyZWVuWSksIEludFBvaW50
KGNsaWVudFgsIGNsaWVudFkpLAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgICAgICAg
ICAgICAgICAgICAgICBJbnRQb2ludCgwLCAwKSwKKyNlbmRpZgorICAgICAgICAgICAgICAgICAg
ICAgICAgY3RybEtleSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0YUtleSkKKyAgICAsIG1fZGVsdGFY
KGRlbHRhWCkKKyAgICAsIG1fZGVsdGFZKGRlbHRhWSkKK3sKK30KKworR2VzdHVyZUV2ZW50RGlz
cGF0Y2hNZWRpYXRvcjo6R2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNzUmVmUHRyPEdl
c3R1cmVFdmVudD4gZ2VzdHVyZUV2ZW50KQorICAgIDogRXZlbnREaXNwYXRjaE1lZGlhdG9yKGdl
c3R1cmVFdmVudCkKK3sKK30KKworR2VzdHVyZUV2ZW50KiBHZXN0dXJlRXZlbnREaXNwYXRjaE1l
ZGlhdG9yOjpldmVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdlc3R1cmVF
dmVudCo+KEV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6ZXZlbnQoKSk7Cit9CisKK2Jvb2wgR2VzdHVy
ZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6ZGlzcGF0Y2hFdmVudChFdmVudERpc3BhdGNoZXIqIGRp
c3BhdGNoZXIpIGNvbnN0Cit7CisgICAgaWYgKGRpc3BhdGNoZXItPm5vZGUoKS0+ZGlzYWJsZWQo
KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBkaXNwYXRjaGVyLT5kaXNwYXRjaEV2ZW50
KGV2ZW50KCkpOworICAgIEFTU0VSVCghZXZlbnQoKS0+ZGVmYXVsdFByZXZlbnRlZCgpKTsKKyAg
ICByZXR1cm4gZXZlbnQoKS0+ZGVmYXVsdEhhbmRsZWQoKSB8fCBldmVudCgpLT5kZWZhdWx0UHJl
dmVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShHRVNUVVJFX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9HZXN0dXJl
RXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9HZXN0dXJlRXZlbnQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
ZjA4M2MzZjIyMDY5ODkwOGYzZWM5NDQ5ZTQzNmQ3Njc1MzYxNmMyCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVFdmVudC5oCkBAIC0wLDAgKzEsODIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBHZXN0dXJlRXZlbnRfaAorI2RlZmluZSBHZXN0dXJlRXZlbnRfaAor
CisjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQorCisjaW5jbHVkZSAiRXZlbnREaXNwYXRjaGVy
LmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiTW91c2VSZWxhdGVkRXZlbnQuaCIKKyNpbmNsdWRl
ICJQbGF0Zm9ybUV2ZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1HZXN0dXJlRXZlbnQuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHZXN0dXJlRXZlbnQgOiBwdWJsaWMgTW91c2VS
ZWxhdGVkRXZlbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgfkdlc3R1cmVFdmVudCgpIHsgfQor
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8R2VzdHVyZUV2ZW50PiBjcmVhdGUoKTsKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxHZXN0dXJlRXZlbnQ+IGNyZWF0ZShQYXNzUmVmUHRyPEFic3RyYWN0Vmll
dz4sIGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50Jik7CisKKyAgICB2b2lkIGluaXRHZXN0dXJl
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4s
IGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IGNsaWVudFgsIGludCBjbGllbnRZLCBib29s
IGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIGZsb2F0
IGRlbHRhWCwgZmxvYXQgZGVsdGFZKTsKKworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5n
JiBpbnRlcmZhY2VOYW1lKCkgY29uc3Q7CisKKyAgICBmbG9hdCBkZWx0YVgoKSBjb25zdCB7IHJl
dHVybiBtX2RlbHRhWDsgfQorICAgIGZsb2F0IGRlbHRhWSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVs
dGFZOyB9CisKK3ByaXZhdGU6CisgICAgR2VzdHVyZUV2ZW50KCk7CisgICAgR2VzdHVyZUV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+LCBpbnQg
c2NyZWVuWCwgaW50IHNjcmVlblksIGludCBjbGllbnRYLCBpbnQgY2xpZW50WSwgYm9vbCBjdHJs
S2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LCBmbG9hdCBkZWx0
YVgsIGZsb2F0IGRlbHRhWSk7CisKKyAgICBmbG9hdCBtX2RlbHRhWDsKKyAgICBmbG9hdCBtX2Rl
bHRhWTsKK307CisKK2NsYXNzIEdlc3R1cmVFdmVudERpc3BhdGNoTWVkaWF0b3IgOiBwdWJsaWMg
RXZlbnREaXNwYXRjaE1lZGlhdG9yIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxH
ZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlhdG9yPiBjcmVhdGUoUGFzc1JlZlB0cjxHZXN0dXJlRXZl
bnQ+IGdlc3R1cmVFdmVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgR2Vz
dHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcihnZXN0dXJlRXZlbnQpKTsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgZXhwbGljaXQgR2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNzUmVmUHRy
PEdlc3R1cmVFdmVudD4pOworCisgICAgR2VzdHVyZUV2ZW50KiBldmVudCgpIGNvbnN0OworCisg
ICAgdmlydHVhbCBib29sIGRpc3BhdGNoRXZlbnQoRXZlbnREaXNwYXRjaGVyKikgY29uc3Q7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoR0VTVFVSRV9F
VkVOVFMpCisKKyNlbmRpZiAvLyBHZXN0dXJlRXZlbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGYz
MGMzZmNiZmNmODYwYWUwMzQxN2I1ZGNkMDExN2I5NmM1ZmY5ZWQuLjc1MjhjZmQzMTE3YWIzMTRh
ODJkNTI1ZTAwYjVjMzBmNDA3NWE1MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTEwOSw2ICsxMDks
MTAgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nQnVpbGRlci5oPgogCisjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQorI2luY2x1ZGUg
Ikdlc3R1cmVFdmVudC5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogI2luY2x1
ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNlbmRpZgpAQCAtMjYzMyw2ICsyNjM3LDEzIEBA
IGJvb2wgTm9kZTo6ZGlzcGF0Y2hNb3VzZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYg
ZXZlbnQsIGNvbnN0IEF0b21pY1N0cmluCiAgICAgcmV0dXJuIEV2ZW50RGlzcGF0Y2hlcjo6ZGlz
cGF0Y2hFdmVudCh0aGlzLCBNb3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKE1vdXNl
RXZlbnQ6OmNyZWF0ZShldmVudFR5cGUsIGRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCksIGV2ZW50
LCBkZXRhaWwsIHJlbGF0ZWRUYXJnZXQpKSk7CiB9CiAKKyNpZiBFTkFCTEUoR0VTVFVSRV9FVkVO
VFMpCitib29sIE5vZGU6OmRpc3BhdGNoR2VzdHVyZUV2ZW50KGNvbnN0IFBsYXRmb3JtR2VzdHVy
ZUV2ZW50JiBldmVudCkKK3sKKyAgICByZXR1cm4gRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaEV2
ZW50KHRoaXMsIEdlc3R1cmVFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShHZXN0dXJlRXZl
bnQ6OmNyZWF0ZShkb2N1bWVudCgpLT5kZWZhdWx0VmlldygpLCBldmVudCkpKTsKK30KKyNlbmRp
ZgorCiB2b2lkIE5vZGU6OmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soUGFzc1JlZlB0cjxFdmVudD4g
ZXZlbnQsIGJvb2wgc2VuZE1vdXNlRXZlbnRzLCBib29sIHNob3dQcmVzc2VkTG9vaykKIHsKICAg
ICBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2sodGhpcywgZXZlbnQsIHNl
bmRNb3VzZUV2ZW50cywgc2hvd1ByZXNzZWRMb29rKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDg2YTdkMzll
ZDU4YmRiYzlkNDJmMjQxZTQ3NmM5YTZiMzE2YmQ2ZDAuLmEzMjA0YmExYTdhM2U4MjZiNDU5MjNm
NmEyMjU5ODUzNWU4YjQwM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtODgsNiArODgsMTAgQEAgY2xhc3Mg
U2hhZG93Um9vdDsKIGNsYXNzIFRhZ05vZGVMaXN0OwogY2xhc3MgVHJlZVNjb3BlOwogCisjaWYg
RU5BQkxFKEdFU1RVUkVfRVZFTlRTKQorY2xhc3MgUGxhdGZvcm1HZXN0dXJlRXZlbnQ7CisjZW5k
aWYKKwogI2lmIEVOQUJMRShNSUNST0RBVEEpCiBjbGFzcyBIVE1MUHJvcGVydGllc0NvbGxlY3Rp
b247CiBjbGFzcyBQcm9wZXJ0eU5vZGVMaXN0OwpAQCAtNjA5LDYgKzYxMyw5IEBAIHB1YmxpYzoK
ICAgICBib29sIGRpc3BhdGNoS2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50Jik7
CiAgICAgYm9vbCBkaXNwYXRjaFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7
CiAgICAgYm9vbCBkaXNwYXRjaE1vdXNlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50Jiwg
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGludCBjbGlja0NvdW50ID0gMCwgTm9kZSog
cmVsYXRlZFRhcmdldCA9IDApOworI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKKyAgICBib29s
IGRpc3BhdGNoR2VzdHVyZUV2ZW50KGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50Jik7CisjZW5k
aWYKICAgICB2b2lkIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soUGFzc1JlZlB0cjxFdmVudD4gdW5k
ZXJseWluZ0V2ZW50LCBib29sIHNlbmRNb3VzZUV2ZW50cyA9IGZhbHNlLCBib29sIHNob3dQcmVz
c2VkTG9vayA9IHRydWUpOwogICAgIGJvb2wgZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkwpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5k
ZXggOGVlYTNmYTY1OGI1OWZjYmNkY2NmOTIxM2JjNzhlMjhhYTY0Nzc3Yi4uMDYxZDgzMzBmNTY3
ZjliYjQwNzI2MWU5ZmJhNDlmMjE2MmMyNGNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcApAQCAtMzY3LDEwICszNjcsMTEgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmNsZWFyKCkK
ICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50VGFy
Z2V0cy5jbGVhcigpOwogI2VuZGlmCi0gICAgbV9tYXhNb3VzZU1vdmVkRHVyYXRpb24gPSAwOwog
I2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKLSAgICBtX2Jhc2VFdmVudFR5cGUgPSBQbGF0Zm9y
bUV2ZW50OjpOb1R5cGU7CisgICAgbV9zY3JvbGxHZXN0dXJlSGFuZGxpbmdOb2RlID0gMDsKICNl
bmRpZgorICAgIG1fbWF4TW91c2VNb3ZlZER1cmF0aW9uID0gMDsKKyAgICBtX2Jhc2VFdmVudFR5
cGUgPSBQbGF0Zm9ybUV2ZW50OjpOb1R5cGU7CiB9CiAKIHZvaWQgRXZlbnRIYW5kbGVyOjpub2Rl
V2lsbEJlUmVtb3ZlZChOb2RlKiBub2RlVG9CZVJlbW92ZWQpCkBAIC0yNDEzLDYgKzI0MTQsMjkg
QEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVUYXBEb3duKCkKIAogYm9vbCBFdmVu
dEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVFdmVudChjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYg
Z2VzdHVyZUV2ZW50KQogeworICAgIE5vZGUqIGV2ZW50VGFyZ2V0ID0gMDsKKyAgICBpZiAoZ2Vz
dHVyZUV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlU2Nyb2xsRW5kIHx8IGdl
c3R1cmVFdmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6R2VzdHVyZVNjcm9sbFVwZGF0ZSkK
KyAgICAgICAgZXZlbnRUYXJnZXQgPSBtX3Njcm9sbEdlc3R1cmVIYW5kbGluZ05vZGUuZ2V0KCk7
CisKKyAgICBpZiAoIWV2ZW50VGFyZ2V0KSB7CisgICAgICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0
ID0gaGl0VGVzdFJlc3VsdEF0UG9pbnQoZ2VzdHVyZUV2ZW50LnBvc2l0aW9uKCksIGZhbHNlLCBm
YWxzZSwgRG9udEhpdFRlc3RTY3JvbGxiYXJzLCBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkgfCBI
aXRUZXN0UmVxdWVzdDo6QWN0aXZlKTsKKyAgICAgICAgZXZlbnRUYXJnZXQgPSB0YXJnZXROb2Rl
KHJlc3VsdCk7CisgICAgfQorCisgICAgaWYgKGV2ZW50VGFyZ2V0KSB7CisgICAgICAgIGJvb2wg
ZXZlbnRTd2FsbG93ZWQgPSBldmVudFRhcmdldC0+ZGlzcGF0Y2hHZXN0dXJlRXZlbnQoZ2VzdHVy
ZUV2ZW50KTsKKworICAgICAgICBpZiAoZ2VzdHVyZUV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9ybUV2
ZW50OjpHZXN0dXJlU2Nyb2xsQmVnaW4pIHsKKyAgICAgICAgICAgIGlmIChldmVudFN3YWxsb3dl
ZCkKKyAgICAgICAgICAgICAgICBtX3Njcm9sbEdlc3R1cmVIYW5kbGluZ05vZGUgPSBldmVudFRh
cmdldDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBtX3Njcm9sbEdlc3R1cmVI
YW5kbGluZ05vZGUgPSAwOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGV2ZW50U3dhbGxvd2Vk
KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCiAgICAgLy8gRklYTUU6IEEgbW9y
ZSBnZW5lcmFsIHNjcm9sbCBzeXN0ZW0gKGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04MDU5Nikgd2lsbAogICAgIC8vIGVsaW1pbmF0ZSB0aGUgbmVlZCBmb3IgdGhpcy4K
ICAgICBUZW1wb3JhcnlDaGFuZ2U8UGxhdGZvcm1FdmVudDo6VHlwZT4gYmFzZUV2ZW50VHlwZSht
X2Jhc2VFdmVudFR5cGUsIGdlc3R1cmVFdmVudC50eXBlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmgKaW5kZXggMWQyZDM3NWMzOWJiNThiYTUzYTU4ZjU0MzA3ZWIxNjI1ZWYwN2ZkMS4u
ZWUyNjk0NDMzZGIxYzI3OTlkNTA0YjJkNDg0ZjA0ZTM1NDcwMzBlMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5oCkBAIC00NDYsNiArNDQ2LDExIEBAIHByaXZhdGU6CiAgICAgVG91Y2hU
YXJnZXRNYXAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRUYXJnZXRzOwogICAgIGJvb2wgbV90b3Vj
aFByZXNzZWQ7CiAjZW5kaWYKKworI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKKyAgICBSZWZQ
dHI8Tm9kZT4gbV9zY3JvbGxHZXN0dXJlSGFuZGxpbmdOb2RlOworI2VuZGlmCisKICAgICBkb3Vi
bGUgbV9tYXhNb3VzZU1vdmVkRHVyYXRpb247CiAgICAgUGxhdGZvcm1FdmVudDo6VHlwZSBtX2Jh
c2VFdmVudFR5cGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwCmluZGV4IDIwN2Q4MWNhMzg0ZDM2YzgzYTRkMTAx
ZTQ3MGRhOWUwOTIyMjM0ZDguLmMwOGVkZWFhYTZjNTY2NjI5MWI0ZGNiM2JiMTc2YmJlZWEwN2I5
NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRD
b252ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2
ZW50Q29udmVyc2lvbi5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJXZWJJbnB1dEV2
ZW50Q29udmVyc2lvbi5oIgogCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkdl
c3R1cmVFdmVudC5oIgogI2luY2x1ZGUgIktleWJvYXJkQ29kZXMuaCIKICNpbmNsdWRlICJLZXli
b2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgpAQCAtNTEyLDQgKzUxMywzMSBA
QCBXZWJUb3VjaEV2ZW50QnVpbGRlcjo6V2ViVG91Y2hFdmVudEJ1aWxkZXIoY29uc3QgV2lkZ2V0
KiB3aWRnZXQsIGNvbnN0IFRvdWNoRXZlbgogCiAjZW5kaWYgLy8gRU5BQkxFKFRPVUNIX0VWRU5U
UykKIAorI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKK1dlYkdlc3R1cmVFdmVudEJ1aWxkZXI6
OldlYkdlc3R1cmVFdmVudEJ1aWxkZXIoY29uc3QgV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IEdlc3R1
cmVFdmVudCYgZXZlbnQpCit7CisgICAgaWYgKGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCku
Z2VzdHVyZXRhcEV2ZW50KQorICAgICAgICB0eXBlID0gR2VzdHVyZVRhcDsKKyAgICBlbHNlIGlm
IChldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmdlc3R1cmV0YXBkb3duRXZlbnQpCisgICAg
ICAgIHR5cGUgPSBHZXN0dXJlVGFwRG93bjsKKyAgICBlbHNlIGlmIChldmVudC50eXBlKCkgPT0g
ZXZlbnROYW1lcygpLmdlc3R1cmVzY3JvbGxzdGFydEV2ZW50KQorICAgICAgICB0eXBlID0gR2Vz
dHVyZVNjcm9sbEJlZ2luOworICAgIGVsc2UgaWYgKGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVz
KCkuZ2VzdHVyZXNjcm9sbGVuZEV2ZW50KQorICAgICAgICB0eXBlID0gR2VzdHVyZVNjcm9sbEVu
ZDsKKyAgICBlbHNlIGlmIChldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmdlc3R1cmVzY3Jv
bGx1cGRhdGVFdmVudCkKKyAgICAgICAgdHlwZSA9IEdlc3R1cmVTY3JvbGxVcGRhdGU7CisKKyAg
ICB0aW1lU3RhbXBTZWNvbmRzID0gZXZlbnQudGltZVN0YW1wKCkgLyBtaWxsaXNQZXJTZWNvbmQ7
CisgICAgbW9kaWZpZXJzID0gZ2V0V2ViSW5wdXRNb2RpZmllcnMoZXZlbnQpOworCisgICAgZ2xv
YmFsWCA9IGV2ZW50LnNjcmVlblgoKTsKKyAgICBnbG9iYWxZID0gZXZlbnQuc2NyZWVuWSgpOwor
ICAgIHggPSBldmVudC5hYnNvbHV0ZUxvY2F0aW9uKCkueCgpIC0gd2lkZ2V0LT5sb2NhdGlvbigp
LngoKTsKKyAgICB5ID0gZXZlbnQuYWJzb2x1dGVMb2NhdGlvbigpLnkoKSAtIHdpZGdldC0+bG9j
YXRpb24oKS55KCk7CisKKyAgICBkZWx0YVggPSBldmVudC5kZWx0YVgoKTsKKyAgICBkZWx0YVkg
PSBldmVudC5kZWx0YVkoKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmgKaW5kZXggZDQ3YmRhODE0OTJmMWIwMTkxOTZl
ZDYzOThiNTdhNjk5Zjg0MDMxMC4uNDg5NzVhNDA0NmIyMTJiMGYyZGI5OTJiZTY0YjhjODM0OTc5
MGU4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVu
dENvbnZlcnNpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2
ZW50Q29udmVyc2lvbi5oCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiV2ViSW5wdXRFdmVu
dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBHZXN0dXJlRXZlbnQ7CiBjbGFzcyBL
ZXlib2FyZEV2ZW50OwogY2xhc3MgTW91c2VFdmVudDsKIGNsYXNzIFNjcm9sbFZpZXc7CkBAIC0x
MzEsNiArMTMyLDE1IEBAIHB1YmxpYzoKIH07CiAjZW5kaWYgLy8gRU5BQkxFKFRPVUNIX0VWRU5U
UykKIAorI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKKy8vIENvbnZlcnRzIFdlYkNvcmU6Okdl
c3R1cmVFdmVudCB0byBhIGNvcnJlc3BvbmRpbmcgV2ViR2VzdHVyZUV2ZW50LgorLy8gTk9URTog
SWYgZXZlbnQgbWFwcGluZyBmYWlscywgdGhlIHR5cGUgd2lsbCBiZSBzZXQgdG8gVW5kZWZpbmVk
LgorY2xhc3MgV2ViR2VzdHVyZUV2ZW50QnVpbGRlciA6IHB1YmxpYyBXZWJHZXN0dXJlRXZlbnQg
eworcHVibGljOgorICAgIFdlYkdlc3R1cmVFdmVudEJ1aWxkZXIoY29uc3QgV2ViQ29yZTo6V2lk
Z2V0KiwgY29uc3QgV2ViQ29yZTo6R2VzdHVyZUV2ZW50Jik7Cit9OworI2VuZGlmIC8vIEVOQUJM
RShHRVNUVVJFX0VWRU5UUykKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBs
LmNwcAppbmRleCAyOTQ4OWUyNWE1NDRiMTM1NzI0NmQ3YTM5YWE0ZjlkZmE5Y2JmNzVmLi4xYzVj
MDVmNjZkMjJlOTA1Yjg0OTBkNmVlNTMxYTNlYWViYTY5NmUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcApAQCAtNTYs
NiArNTYsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVz
dC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkdlc3R1cmVFdmVudC5oIgog
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIK
ICNpbmNsdWRlICJIb3N0V2luZG93LmgiCkBAIC0xODgsNiArMTg5LDggQEAgdm9pZCBXZWJQbHVn
aW5Db250YWluZXJJbXBsOjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQpCiAgICAgICAgIGhhbmRs
ZUtleWJvYXJkRXZlbnQoc3RhdGljX2Nhc3Q8S2V5Ym9hcmRFdmVudCo+KGV2ZW50KSk7CiAgICAg
ZWxzZSBpZiAoZXZlbnROYW1lcygpLmlzVG91Y2hFdmVudFR5cGUoZXZlbnQtPnR5cGUoKSkpCiAg
ICAgICAgIGhhbmRsZVRvdWNoRXZlbnQoc3RhdGljX2Nhc3Q8VG91Y2hFdmVudCo+KGV2ZW50KSk7
CisgICAgZWxzZSBpZiAoZXZlbnROYW1lcygpLmlzR2VzdHVyZUV2ZW50VHlwZShldmVudC0+dHlw
ZSgpKSkKKyAgICAgICAgaGFuZGxlR2VzdHVyZUV2ZW50KHN0YXRpY19jYXN0PEdlc3R1cmVFdmVu
dCo+KGV2ZW50KSk7CiAKICAgICAvLyBGSVhNRTogaXQgd291bGQgYmUgY2xlYW5lciBpZiBXaWRn
ZXQ6OmhhbmRsZUV2ZW50IHJldHVybmVkIHRydWUvZmFsc2UgYW5kCiAgICAgLy8gSFRNTFBsdWdp
bkVsZW1lbnQgY2FsbGVkIHNldERlZmF1bHRIYW5kbGVkIG9yIGRlZmF1bHRFdmVudEhhbmRsZXIu
CkBAIC03MzYsNiArNzM5LDE3IEBAIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6aGFuZGxl
VG91Y2hFdmVudChUb3VjaEV2ZW50KiBldmVudCkKICAgICAvLyBGSVhNRTogQ2FuIGEgcGx1Z2lu
IGNoYW5nZSB0aGUgY3Vyc29yIGZyb20gYSB0b3VjaC1ldmVudCBjYWxsYmFjaz8KIH0KIAordm9p
ZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpoYW5kbGVHZXN0dXJlRXZlbnQoR2VzdHVyZUV2ZW50
KiBldmVudCkKK3sKKyAgICBXZWJHZXN0dXJlRXZlbnRCdWlsZGVyIHdlYkV2ZW50KHRoaXMsICpl
dmVudCk7CisgICAgaWYgKHdlYkV2ZW50LnR5cGUgPT0gV2ViSW5wdXRFdmVudDo6VW5kZWZpbmVk
KQorICAgICAgICByZXR1cm47CisgICAgV2ViQ3Vyc29ySW5mbyBjdXJzb3JJbmZvOworICAgIGlm
IChtX3dlYlBsdWdpbi0+aGFuZGxlSW5wdXRFdmVudCh3ZWJFdmVudCwgY3Vyc29ySW5mbykpCisg
ICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgIC8vIEZJWE1FOiBDYW4gYSBw
bHVnaW4gY2hhbmdlIHRoZSBjdXJzb3IgZnJvbSBhIHRvdWNoLWV2ZW50IGNhbGxiYWNrPworfQor
CiB2b2lkIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OmNhbGN1bGF0ZUdlb21ldHJ5KGNvbnN0IElu
dFJlY3QmIGZyYW1lUmVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgSW50UmVjdCYgd2luZG93UmVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgSW50UmVjdCYgY2xpcFJlY3QsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgKaW5kZXggNGMyYWFl
YjRhMDQ4NDM0MGFmNjYxYTVhZGNiMmMyMzk4N2E4YzQ3Ni4uNjFmNWM1YjcxNDZmMjk5NTdkYjg5
MThmOThkYjQ1YWZkOTQ1Njk3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaApAQCAtNDUsNiArNDUsNyBAQAogc3RydWN0IE5Q
T2JqZWN0OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBHZXN0dXJlRXZlbnQ7CiBjbGFz
cyBIVE1MUGx1Z0luRWxlbWVudDsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBLZXlib2FyZEV2ZW50
OwpAQCAtMTY3LDYgKzE2OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBoYW5kbGVXaGVlbEV2ZW50
KFdlYkNvcmU6OldoZWVsRXZlbnQqKTsKICAgICB2b2lkIGhhbmRsZUtleWJvYXJkRXZlbnQoV2Vi
Q29yZTo6S2V5Ym9hcmRFdmVudCopOwogICAgIHZvaWQgaGFuZGxlVG91Y2hFdmVudChXZWJDb3Jl
OjpUb3VjaEV2ZW50Kik7CisgICAgdm9pZCBoYW5kbGVHZXN0dXJlRXZlbnQoV2ViQ29yZTo6R2Vz
dHVyZUV2ZW50Kik7CiAKICAgICB2b2lkIGNhbGN1bGF0ZUdlb21ldHJ5KGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIGZyYW1lUmVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkNvcmU6
OkludFJlY3QmIHdpbmRvd1JlY3QsCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggYjQ0ZDg5MGVlMzE5NGNlZWU3ZDFlOWE0OWZiZmVmNThkYmZjZTc4
NC4uYzA3ZTAzMTRjNDEwNDk5NmZmZGY1YjcxMTdkZjQ2YmJlYzYxY2YzNCAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisy
MDEyLTA3LTI2ICBTYWRydWwgSGFiaWIgQ2hvd2RodXJ5ICA8c2FkcnVsQGNocm9taXVtLm9yZz4K
KworICAgICAgICBQcm9wYWdhdGUgZ2VzdHVyZSBldmVudHMgdG8gcGx1Z2lucy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMjgxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBVcGRhdGUgVGVzdFdlYlBsdWdpbiB0
byByZWNlaXZlIGV2ZW50cywgYW5kIG91dHB1dCBsb2dzIGZvciB0aGUgZXZlbnRzLgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5jcHA6CisgICAgICAg
IChUZXN0V2ViUGx1Z2luOjpoYW5kbGVJbnB1dEV2ZW50KToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmg6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjph
Y2NlcHRzSW5wdXRFdmVudHMpOgorICAgICAgICAoVGVzdFdlYlBsdWdpbik6CisKIDIwMTItMDct
MjAgIEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyICA8aG9sZ2VyQG1vaWppLW1vYmlsZS5jb20+
CiAKICAgICAgICAgYnVpbGRib3Q6IFJlbW92ZSB0aGUgY29uZmlndXJhdGlvbiBvZiBoZnJleXRo
ZXIqCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1
Z2luLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uY3Bw
CmluZGV4IDU3MDE5MmNiYjEyYzM2MjA1NzM5Yjg2ZmU5MGU4Yjk4ZWUxYTNmYTMuLmJiZWJhNmY5
YjcxZDZlOWZhZWM4M2QwZTkwYTlhMTFhZGViODE1YmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5j
bHVkZSAiVGVzdFdlYlBsdWdpbi5oIgogCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKKyNpbmNsdWRl
ICJXZWJJbnB1dEV2ZW50LmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViR3JhcGhpY3NDb250ZXh0
M0QuaCIKICNpbmNsdWRlICJXZWJLaXQuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJLaXRQbGF0
Zm9ybVN1cHBvcnQuaCIKQEAgLTM2NCwzICszNjUsNDcgQEAgdW5zaWduZWQgVGVzdFdlYlBsdWdp
bjo6bG9hZFByb2dyYW0oY29uc3QgQ1N0cmluZyYgdmVydGV4U291cmNlLAogICAgIHJldHVybiBw
cm9ncmFtOwogfQogCitib29sIFRlc3RXZWJQbHVnaW46OmhhbmRsZUlucHV0RXZlbnQoY29uc3Qg
V2ViS2l0OjpXZWJJbnB1dEV2ZW50JiBldmVudCwgV2ViS2l0OjpXZWJDdXJzb3JJbmZvJiBpbmZv
KQoreworICAgIGNvbnN0IGNoYXIqIGV2ZW50TmFtZSA9IDA7CisgICAgc3dpdGNoIChldmVudC50
eXBlKSB7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6OlVuZGVmaW5lZDogICAgICAg
ICAgIGV2ZW50TmFtZSA9ICJ1bmtub3duIjsgYnJlYWs7CisKKyAgICBjYXNlIFdlYktpdDo6V2Vi
SW5wdXRFdmVudDo6TW91c2VEb3duOiAgICAgICAgICAgZXZlbnROYW1lID0gIk1vdXNlRG93biI7
IGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpNb3VzZVVwOiAgICAgICAg
ICAgICBldmVudE5hbWUgPSAiTW91c2VVcCI7IGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJJ
bnB1dEV2ZW50OjpNb3VzZU1vdmU6ICAgICAgICAgICBldmVudE5hbWUgPSAiTW91c2VNb3ZlIjsg
YnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6Ok1vdXNlRW50ZXI6ICAgICAg
ICAgIGV2ZW50TmFtZSA9ICJNb3VzZUVudGVyIjsgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6Oldl
YklucHV0RXZlbnQ6Ok1vdXNlTGVhdmU6ICAgICAgICAgIGV2ZW50TmFtZSA9ICJNb3VzZUxlYXZl
IjsgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6OkNvbnRleHRNZW51OiAg
ICAgICAgIGV2ZW50TmFtZSA9ICJDb250ZXh0TWVudSI7IGJyZWFrOworCisgICAgY2FzZSBXZWJL
aXQ6OldlYklucHV0RXZlbnQ6Ok1vdXNlV2hlZWw6ICAgICAgICAgIGV2ZW50TmFtZSA9ICJNb3Vz
ZVdoZWVsIjsgYnJlYWs7CisKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6UmF3S2V5
RG93bjogICAgICAgICAgZXZlbnROYW1lID0gIlJhd0tleURvd24iOyBicmVhazsKKyAgICBjYXNl
IFdlYktpdDo6V2ViSW5wdXRFdmVudDo6S2V5RG93bjogICAgICAgICAgICAgZXZlbnROYW1lID0g
IktleURvd24iOyBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6S2V5VXA6
ICAgICAgICAgICAgICAgZXZlbnROYW1lID0gIktleVVwIjsgYnJlYWs7CisgICAgY2FzZSBXZWJL
aXQ6OldlYklucHV0RXZlbnQ6OkNoYXI6ICAgICAgICAgICAgICAgIGV2ZW50TmFtZSA9ICJDaGFy
IjsgYnJlYWs7CisKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6R2VzdHVyZVNjcm9s
bEJlZ2luOiAgZXZlbnROYW1lID0gIkdlc3R1cmVTY3JvbGxCZWdpbiI7IGJyZWFrOworICAgIGNh
c2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpHZXN0dXJlU2Nyb2xsRW5kOiAgICBldmVudE5hbWUg
PSAiR2VzdHVyZVNjcm9sbEVuZCI7IGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJJbnB1dEV2
ZW50OjpHZXN0dXJlU2Nyb2xsVXBkYXRlOiBldmVudE5hbWUgPSAiR2VzdHVyZVNjcm9sbFVwZGF0
ZSI7IGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpHZXN0dXJlRmxpbmdT
dGFydDogICBldmVudE5hbWUgPSAiR2VzdHVyZUZsaW5nU3RhcnQiOyBicmVhazsKKyAgICBjYXNl
IFdlYktpdDo6V2ViSW5wdXRFdmVudDo6R2VzdHVyZUZsaW5nQ2FuY2VsOiAgZXZlbnROYW1lID0g
Ikdlc3R1cmVGbGluZ0NhbmNlbCI7IGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJJbnB1dEV2
ZW50OjpHZXN0dXJlVGFwOiAgICAgICAgICBldmVudE5hbWUgPSAiR2VzdHVyZVRhcCI7IGJyZWFr
OworICAgIGNhc2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwRG93bjogICAgICBl
dmVudE5hbWUgPSAiR2VzdHVyZVRhcERvd24iOyBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2Vi
SW5wdXRFdmVudDo6R2VzdHVyZURvdWJsZVRhcDogICAgZXZlbnROYW1lID0gIkdlc3R1cmVEb3Vi
bGVUYXAiOyBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6R2VzdHVyZVR3
b0ZpbmdlclRhcDogZXZlbnROYW1lID0gIkdlc3R1cmVUd29GaW5nZXJUYXAiOyBicmVhazsKKyAg
ICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6R2VzdHVyZUxvbmdQcmVzczogICAgZXZlbnRO
YW1lID0gIkdlc3R1cmVMb25nUHJlc3MiOyBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5w
dXRFdmVudDo6R2VzdHVyZVBpbmNoQmVnaW46ICAgZXZlbnROYW1lID0gIkdlc3R1cmVQaW5jaEJl
Z2luIjsgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6Okdlc3R1cmVQaW5j
aEVuZDogICAgIGV2ZW50TmFtZSA9ICJHZXN0dXJlUGluY2hFbmQiOyBicmVhazsKKyAgICBjYXNl
IFdlYktpdDo6V2ViSW5wdXRFdmVudDo6R2VzdHVyZVBpbmNoVXBkYXRlOiAgZXZlbnROYW1lID0g
Ikdlc3R1cmVQaW5jaFVwZGF0ZSI7IGJyZWFrOworCisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0
RXZlbnQ6OlRvdWNoU3RhcnQ6ICAgICAgICAgIGV2ZW50TmFtZSA9ICJUb3VjaFN0YXJ0IjsgYnJl
YWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6OlRvdWNoTW92ZTogICAgICAgICAg
IGV2ZW50TmFtZSA9ICJUb3VjaE1vdmUiOyBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5w
dXRFdmVudDo6VG91Y2hFbmQ6ICAgICAgICAgICAgZXZlbnROYW1lID0gIlRvdWNoRW5kIjsgYnJl
YWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6OlRvdWNoQ2FuY2VsOiAgICAgICAg
IGV2ZW50TmFtZSA9ICJUb3VjaENhbmNlbCI7IGJyZWFrOworICAgIH0KKworICAgIHByaW50Zigi
UGx1Z2luIHJlY2VpdmVkIGV2ZW50OiAlc1xuIiwgZXZlbnROYW1lID8gZXZlbnROYW1lIDogInVu
a25vd24iKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uaAppbmRleCA0YzlmMmY0ZDIyODU3OWNjZjZhMTY0NTZi
ZjBhZDM0NGNhZDg5ZjcwLi4wMjViMTEwOTU1NWEyYzBhOGEyMjIyMmYzZWU0YjgxNTZmNmIzNGUz
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2lu
LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5oCkBA
IC02MCw4ICs2MCw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ym9vbCBpc1Zpc2libGUpOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGb2N1cyhib29sKSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVmlzaWJpbGl0eShib29sKSB7IH0KLSAgICB2aXJ0dWFs
IGJvb2wgYWNjZXB0c0lucHV0RXZlbnRzKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFs
IGJvb2wgaGFuZGxlSW5wdXRFdmVudChjb25zdCBXZWJLaXQ6OldlYklucHV0RXZlbnQmLCBXZWJL
aXQ6OldlYkN1cnNvckluZm8mKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBh
Y2NlcHRzSW5wdXRFdmVudHMoKSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGhh
bmRsZUlucHV0RXZlbnQoY29uc3QgV2ViS2l0OjpXZWJJbnB1dEV2ZW50JiwgV2ViS2l0OjpXZWJD
dXJzb3JJbmZvJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBX
ZWJLaXQ6OldlYlVSTFJlc3BvbnNlJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVE
YXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgZGlkRmluaXNoTG9hZGluZygpIHsgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGI0Y2IxYzcyNGI2OGI2MzNhM2Y3MjE4
YTgyMTg2MWRlZjM1MWU1YjMuLjQ3YWVlNmM0ZGViZGJhODM2YTllNWI1OTU1MDNmM2FlNmJhYzAz
NTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNy0yNiAgU2FkcnVsIEhhYmliIENob3dk
aHVyeSAgPHNhZHJ1bEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHJvcGFnYXRlIGdlc3R1cmUg
ZXZlbnRzIHRvIHBsdWdpbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05MjI4MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAg
ICAgICAgQWRkZWQgYSBsYXlvdXQgdGVzdCB0byBzaG93IHRoYXQgdGhlIHBsdWdpbnMgcmVjZWl2
ZSB0aGUgZ2VzdHVyZSBldmVudHMgY29ycmVjdGx5LgorCisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0vcGx1Z2lucy9nZXN0dXJlLWV2ZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL3BsdWdpbnMvZ2VzdHVyZS1ldmVudHMuaHRtbDogQWRkZWQu
CisKIDIwMTItMDctMjYgIMOBZMOhbSBLYWxsYWkgIDxrYWRhbUBpbmYudS1zemVnZWQuaHU+CiAK
ICAgICAgICAgW1F0XSBVbnJldmlld2VkIGdhcmRlbmluZy4gRml4IGFmdGVyIHIxMjM3MzMuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL2dlc3R1cmUt
ZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3BsdWdp
bnMvZ2VzdHVyZS1ldmVudHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmZGE0MjZiMThjYjdk
NzczODcxNjM5ZTdjMDA0NGFmNjY3ZTFkYzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL2dlc3R1cmUtZXZlbnRzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDEwIEBACitQbHVnaW4gcmVjZWl2ZWQgZXZlbnQ6IEdlc3R1cmVUYXAKK1BsdWdp
biByZWNlaXZlZCBldmVudDogTW91c2VFbnRlcgorUGx1Z2luIHJlY2VpdmVkIGV2ZW50OiBNb3Vz
ZU1vdmUKK1BsdWdpbiByZWNlaXZlZCBldmVudDogTW91c2VEb3duCitQbHVnaW4gcmVjZWl2ZWQg
ZXZlbnQ6IE1vdXNlVXAKK1BsdWdpbiByZWNlaXZlZCBldmVudDogR2VzdHVyZVNjcm9sbEJlZ2lu
CitQbHVnaW4gcmVjZWl2ZWQgZXZlbnQ6IEdlc3R1cmVTY3JvbGxVcGRhdGUKK1BsdWdpbiByZWNl
aXZlZCBldmVudDogTW91c2VXaGVlbAorUGx1Z2luIHJlY2VpdmVkIGV2ZW50OiBHZXN0dXJlU2Ny
b2xsRW5kCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3BsdWdp
bnMvZ2VzdHVyZS1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Bs
dWdpbnMvZ2VzdHVyZS1ldmVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZGQyYjM2NzRlMjJiYTQ1N2Ew
NWE3NzM0ZjExY2M0MzdkY2JiYzg5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vcGx1Z2lucy9nZXN0dXJlLWV2ZW50cy5odG1sCkBAIC0wLDAgKzEsMzEg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisgICNwbHVnaW4geworICAgIHdpZHRoOiAxNTBw
eDsKKyAgICBoZWlnaHQ6IDE1MHB4OworICB9Cis8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keT4K
KzxlbWJlZCBpZD0icGx1Z2luIiB0eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LXdlYnBs
dWdpbiIgcHJpbWl0aXZlPSJ0cmlhbmdsZSIgYmFja2dyb3VuZC1jb2xvcj0iZ3JlZW4iIHByaW1p
dGl2ZS1jb2xvcj0iYmx1ZSI+PC9lbWJlZD4KKzxzY3JpcHQ+CisKKyAgICBpZiAoIXdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGlzIHRlc3QgZG9lcyBub3Qg
d29yayBpbiBtYW51YWwgbW9kZS4iKTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKworICAgICAgICAvLyBTZW5kIHNvbWUgZ2VzdHVyZSBldmVudHMgdG8g
dGhlIHBsdWdpbi4KKyAgICAgICAgdmFyIHBvc2l0aW9uWCA9IHBsdWdpbi5vZmZzZXRMZWZ0ICsg
MTA7CisgICAgICAgIHZhciBwb3NpdGlvblkgPSBwbHVnaW4ub2Zmc2V0VG9wICsgMTA7CisgICAg
ICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVUYXAocG9zaXRpb25YLCBwb3NpdGlvblkpOworICAgICAg
ICBldmVudFNlbmRlci5nZXN0dXJlU2Nyb2xsQmVnaW4ocG9zaXRpb25YLCBwb3NpdGlvblkpOwor
ICAgICAgICBldmVudFNlbmRlci5nZXN0dXJlU2Nyb2xsVXBkYXRlKDMwLCAwKTsKKyAgICAgICAg
ZXZlbnRTZW5kZXIuZ2VzdHVyZVNjcm9sbEVuZCgwLCAwKTsKKyAgICB9CisKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155046</attachid>
            <date>2012-07-27 14:13:15 -0700</date>
            <delta_ts>2012-07-30 15:13:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92281-20120727171302.patch</filename>
            <type>text/plain</type>
            <size>38338</size>
            <attacher name="Sadrul Habib Chowdhury">sadrul</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmJlYmY2NGJmYThmNzU4
MTdjNmEyNjVmMjIxYWIzNWZkZjAyMTczYy4uMjJiNjhmNWE5MDZiYmJkOTU0NDUyYjk3N2RjNzI2
NmMyNzg4YTFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTA3LTI2ICBTYWRy
dWwgSGFiaWIgQ2hvd2RodXJ5ICA8c2FkcnVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBQcm9w
YWdhdGUgZ2VzdHVyZSBldmVudHMgdG8gcGx1Z2lucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRh
bSBCYXJ0aC4KKworICAgICAgICBQcm9wYWdhdGUgZ2VzdHVyZSBldmVudHMgdG8gcGx1Z2lucy4g
VGhpcyBjaGFuZ2UgZG9lcyBub3QgZXhwb3NlIHRoZSBnZXN0dXJlIGV2ZW50cworICAgICAgICB0
byBKYXZhU2NyaXB0LCBzaW5jZSB0aGVyZSBpcyBubyBzcGVjIGZvciB0aGF0IGF0IHRoZSBtb21l
bnQuIEV4cG9zaW5nIGdlc3R1cmUgZXZlbnRzCisgICAgICAgIHRvIEphdmFTY3JpcHQgd2lsbCBi
ZSBkb25lIHNlcGFyYXRlbHksIG9uY2UgdGhlcmUgaXMgYSBzcGVjIGZvciBpdC4KKworICAgICAg
ICBUZXN0OiBwbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL2dlc3R1cmUtZXZlbnRzLmh0bWwKKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9FdmVu
dE5hbWVzLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50TmFt
ZXM6OmlzR2VzdHVyZUV2ZW50VHlwZSk6CisgICAgICAgIChFdmVudE5hbWVzKToKKyAgICAgICAg
KiBkb20vR2VzdHVyZUV2ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okdlc3R1cmVFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okdl
c3R1cmVFdmVudDo6aW5pdEdlc3R1cmVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJl
RXZlbnQ6OmludGVyZmFjZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2ZW50OjpH
ZXN0dXJlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRp
YXRvcjo6R2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpH
ZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpldmVudCk6CisgICAgICAgIChXZWJDb3JlOjpH
ZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpkaXNwYXRjaEV2ZW50KToKKyAgICAgICAgKiBk
b20vR2VzdHVyZUV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChH
ZXN0dXJlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2ZW50Ojp+R2VzdHVyZUV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okdlc3R1cmVFdmVudDo6ZGVsdGFYKToKKyAgICAgICAg
KFdlYkNvcmU6Okdlc3R1cmVFdmVudDo6ZGVsdGFZKToKKyAgICAgICAgKFdlYkNvcmU6Okdlc3R1
cmVFdmVudDo6R2VzdHVyZUV2ZW50KToKKyAgICAgICAgKEdlc3R1cmVFdmVudERpc3BhdGNoTWVk
aWF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6
Y3JlYXRlKToKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vZGU6OmRpc3BhdGNoR2VzdHVyZUV2ZW50KToKKyAgICAgICAgKiBk
b20vTm9kZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChOb2RlKToKKyAgICAgICAg
KiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZUV2
ZW50KToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5oOgorCiAyMDEyLTA3LTI2ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEludHJvZHVjZSBnZW5lcmljIExpdmVMb2NhdGlvbiwgbWFrZSBTY3JpcHQuTG9jYXRpb24g
aW5oZXJpdCBpdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZGY2YmMzNWUxZGVlZWI0
MTM0N2YyMDk4ZWM5MWJkYWZlZjFjZWIxMS4uMjA5OGQwMDk2NWNlYjdkYjkzNjkxOWI0MzNiMTYw
M2IzNWIyOTlkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAor
MjAxMi0wNy0yNiAgU2FkcnVsIEhhYmliIENob3dkaHVyeSAgPHNhZHJ1bEBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUHJvcGFnYXRlIGdlc3R1cmUgZXZlbnRzIHRvIHBsdWdpbnMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjI4MQorCisgICAgICAg
IFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgUHJvcGFnYXRlIGdlc3R1cmUgZXZl
bnRzIHRvIHBsdWdpbnMuCisKKyAgICAgICAgKiBzcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24u
Y3BwOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VzdHVyZUV2ZW50
QnVpbGRlcjo6V2ViR2VzdHVyZUV2ZW50QnVpbGRlcik6CisgICAgICAgICogc3JjL1dlYklucHV0
RXZlbnRDb252ZXJzaW9uLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChXZWJHZXN0dXJlRXZlbnRCdWlsZGVyKToKKyAgICAgICAgKiBzcmMvV2ViUGx1
Z2luQ29udGFpbmVySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5l
ckltcGw6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBzcmMvV2ViUGx1Z2luQ29udGFpbmVySW1w
bC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJQbHVnaW5Db250YWluZXJJbXBs
KToKKwogMjAxMi0wNy0yNSAgRGF2aWQgR3JvZ2FuICA8ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgSW5kZXhlZERCOiBXZWJLaXQgQVBJIGludGVyZmFjZXMgZm9yICJ1cGdyYWRlbmVl
ZGVkIiBtZXRob2RzIGFuZCBldmVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMDg1NDE4Y2Rh
MTBmZmVkZDcxNjE0ZGJlZmZiMTU3NmJlNTU2NDk2Yi4uZGZlNDA0YjJlOGNlNGFiNTFjMTUzZmY4
ZmE4MTgzMWU5Y2M1MWQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEwOTksNiArMTA5OSw3
IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vRXhjZXB0aW9uQmFzZS5jcHAKICAgICBk
b20vRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmNwcAogICAgIGRvbS9HZW5lcmljRXZlbnRRdWV1
ZS5jcHAKKyAgICBkb20vR2VzdHVyZUV2ZW50LmNwcAogICAgIGRvbS9JY29uVVJMLmNwcAogICAg
IGRvbS9JZFRhcmdldE9ic2VydmVyLmNwcAogICAgIGRvbS9JZFRhcmdldE9ic2VydmVyUmVnaXN0
cnkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAyNTYzOWQyMWJiMjk0YzZi
OTU5MTliNzVjMDYyYjJiYjFkOGI2ZDEyLi5iMzU0ZjU1N2Y0NjAzNGEwNWFjMzczZjA3NWNkMjRj
MjlkMzYxNmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTE5NTEsNiArMTk1
MSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlv
bkNvZGVQbGFjZWhvbGRlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2Rl
UGxhY2Vob2xkZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50U2NyaXB0aW5nUGVy
bWlzc2lvbi5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vR2VzdHVyZUV2ZW50LmNwcCBcCisJU291
cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVFdmVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vSWdu
b3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUv
ZG9tL0V4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vR2Vu
ZXJpY0V2ZW50UXVldWUuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGViYzNiNTk3ZjMyMGIxN2ViYzU1
MjhmMjBiNDZjMmJjMjc0YjcwNDYuLjJlMDAwY2Y2YTMwNDBlMWRkMDBkMjA0OGRjZmM2ZmY3ZDRk
ZjA2N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNDA4LDYgKzQwOCw3IEBAIFNPVVJDRVMgKz0gXAogICAg
IGRvbS9FeGNlcHRpb25CYXNlLmNwcCBcCiAgICAgZG9tL0V4Y2VwdGlvbkNvZGVQbGFjZWhvbGRl
ci5jcHAgXAogICAgIGRvbS9HZW5lcmljRXZlbnRRdWV1ZS5jcHAgXAorICAgIGRvbS9HZXN0dXJl
RXZlbnQuY3BwIFwKICAgICBkb20vSWNvblVSTC5jcHAgXAogICAgIGRvbS9JZFRhcmdldE9ic2Vy
dmVyLmNwcCBcCiAgICAgZG9tL0lkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5jcHAgXApAQCAtMTUz
NCw2ICsxNTM1LDcgQEAgSEVBREVSUyArPSBcCiAgICAgZG9tL0V4Y2VwdGlvbkJhc2UuaCBcCiAg
ICAgZG9tL0V4Y2VwdGlvbkNvZGUuaCBcCiAgICAgZG9tL0ZyYWdtZW50U2NyaXB0aW5nUGVybWlz
c2lvbi5oIFwKKyAgICBkb20vR2VzdHVyZUV2ZW50LmggXAogICAgIGRvbS9JZFRhcmdldE9ic2Vy
dmVyLmggXAogICAgIGRvbS9JZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuaCBcCiAgICAgZG9tL0tl
eWJvYXJkRXZlbnQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNzVlNTQxYjc4YjMyYmQ0YWY3NThh
YzAxNGYyMmI4MDA5Y2Q1ZDc0YS4uMWU2ODNlYWU1MmQwZWM2MzIxYTJhOWU4ZmQxNzAxYzA3ZWIx
MGVhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNTE4NSw2ICs1MTg1LDggQEAKICAgICAgICAgICAg
ICdkb20vRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0dl
bmVyaWNFdmVudFF1ZXVlLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0dlbmVyaWNFdmVudFF1ZXVl
LmgnLAorICAgICAgICAgICAgJ2RvbS9HZXN0dXJlRXZlbnQuY3BwJywKKyAgICAgICAgICAgICdk
b20vR2VzdHVyZUV2ZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9IYXNoQ2hhbmdlRXZlbnQuaCcs
CiAgICAgICAgICAgICAnZG9tL0lnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVy
LmgnLAogICAgICAgICAgICAgJ2RvbS9JY29uVVJMLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjNjZjg0MTAwZGU3YzMz
OTY1MGU3MWE1MDJhYmUwYjUyYzkwNDRjNC4uM2NiODliYTlhMzEzOWExZmRmODQwYjE2MThiMWQz
ZTAxM2UzMmQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTEyLDYgKzExMiw4IEBACiAJCTA3MDlGQzRFMTAyNURFRTMwMDU5
Q0RCQSAvKiBBY2Nlc3NpYmlsaXR5U2xpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA5RkM0RDEwMjVERUUzMDA1OUNEQkEgLyogQWNjZXNzaWJp
bGl0eVNsaWRlci5oICovOyB9OwogCQkwNzIwQjBBMDE0RDMzMjM1MDA2NDI5NTUgLyogR2VuZXJp
Y0V2ZW50UXVldWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDcyMEIwOUUxNEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmNwcCAq
LzsgfTsKIAkJMDcyMEIwQTExNEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzIwQjA5RjE0
RDMzMjM1MDA2NDI5NTUgLyogR2VuZXJpY0V2ZW50UXVldWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwNzIwQjBBMDE0RDMzMjM1MDA2NDI5NTYg
LyogR2VzdHVyZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3MjBCMDlGMTREMzMyMzUwMDY0Mjk1NiAvKiBHZXN0dXJlRXZlbnQuY3BwICov
OyB9OworCQkwNzIwQjBBMTE0RDMzMjM1MDA2NDI5NTcgLyogR2VzdHVyZUV2ZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzIwQjA5RjE0RDMzMjM1
MDA2NDI5NTcgLyogR2VzdHVyZUV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDcyQzhCMTExMzFDNTE4NjAwQTRGQ0U5IC8qIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzZGMEQwOTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uLmNwcCAqLzsgfTsKIAkJMDczNUVFNkEwRjQwQzVFNDAwNEEyNjA0
IC8qIE1lZGlhUGxheWVyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3MzVFRTY5MEY0MEM1RTQwMDRBMjYwNCAvKiBNZWRpYVBsYXllclByb3h5
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc1
Mzg2MDIxNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzUzODYwMDE0NDg5RTk4MDBCNzg0
NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmNwcCAqLzsgfTsKQEAgLTcwNjgsNiArNzA3MCw4IEBACiAJ
CTA3MEREOEY1MEYwMTg2ODAwMDcyN0RFQiAvKiBtZWRpYUNvbnRyb2xzLmNzcyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBtZWRpYUNvbnRyb2xzLmNzczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDcyMEIwOUUxNEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlbmVyaWNFdmVudFF1ZXVlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyMEIwOUYxNEQzMzIzNTAwNjQyOTU1
IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEdlbmVyaWNFdmVudFF1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MjBC
MDlGMTREMzMyMzUwMDY0Mjk1NiAvKiBHZXN0dXJlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gR2VzdHVyZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMDcyMEIwOUYxNEQzMzIzNTAwNjQyOTU3IC8qIEdlc3R1cmVFdmVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZXN0dXJlRXZlbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczNUVFNjkwRjQwQzVFNDAwNEEyNjA0IC8qIE1lZGlhUGxh
eWVyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJQ
cm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzUzODYwMDE0NDg5RTk4MDBC
Nzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENhY2hlZFRleHRUcmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3NTM4NjAxMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkVGV4dFRyYWNrLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yMTU0MCw2ICsyMTU0NCw4IEBACiAJCQkJQTg1MzEyM0MxMUQw
NDcxQjAwRDREMDc3IC8qIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oICovLAogCQkJCTA3
MjBCMDlFMTREMzMyMzUwMDY0Mjk1NSAvKiBHZW5lcmljRXZlbnRRdWV1ZS5jcHAgKi8sCiAJCQkJ
MDcyMEIwOUYxNEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmggKi8sCisJCQkJ
MDcyMEIwOUYxNEQzMzIzNTAwNjQyOTU2IC8qIEdlc3R1cmVFdmVudC5jcHAgKi8sCisJCQkJMDcy
MEIwOUYxNEQzMzIzNTAwNjQyOTU3IC8qIEdlc3R1cmVFdmVudC5oICovLAogCQkJCTI0NDJCQkY4
MTE5NEM5RDMwMEQ0OTQ2OSAvKiBIYXNoQ2hhbmdlRXZlbnQuaCAqLywKIAkJCQk4NDgyQjc0NDEx
OThDMzJFMDBCRkIwMDUgLyogSGFzaENoYW5nZUV2ZW50LmlkbCAqLywKIAkJCQk0NTA5OUM0MDEz
NzBBNzgwMDA1OEQ1MTMgLyogSWNvblVSTC5jcHAgKi8sCkBAIC0yMzI4Miw2ICsyMzI4OCw3IEBA
CiAJCQkJMkQ0ODFGMDQxNDZCNUM2QjAwQUE3ODM0IC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNjIyQThGRjEyMkM0NEE2MDBBNzg1QjMgLyogR2VuZXJp
Y0JpbmRpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3MjBCMEExMTREMzMyMzUwMDY0Mjk1NSAv
KiBHZW5lcmljRXZlbnRRdWV1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDcyMEIwQTExNEQzMzIz
NTAwNjQyOTU3IC8qIEdlc3R1cmVFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc0NkFGMjQx
NEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzU2
Q0IyMzEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTA1MkJGQ0VCMTI4QUJGMjEwMEZEMzM4RCAvKiBHZW9sb2NhdGlvbkNsaWVudE1vY2su
aCBpbiBIZWFkZXJzICovLApAQCAtMjY0NzIsNiArMjY0NzksNyBAQAogCQkJCTE0MzJFODQ5MEM1
MTQ5M0YwMEIxNTAwRiAvKiBHQ0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ0
ODFGMDMxNDZCNUM2NTAwQUE3ODM0IC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTA3MjBCMEEwMTREMzMyMzUwMDY0Mjk1NSAvKiBHZW5lcmljRXZlbnRR
dWV1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwNzIwQjBBMDE0RDMzMjM1MDA2NDI5NTYgLyog
R2VzdHVyZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NDZBRjIzMTRGNERERTYwMDNF
N0E3MCAvKiBHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNTJCRkNFOTEyOEFC
RjE1MDBGRDMzOEQgLyogR2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk3NDZBRjI2MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1l
cy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCBiMGVmYmU3NjUwOGM4
ZWIyNTRkZjI5NjJiYmU4OWRjNjI3MTcxNDJkLi44OThkYTk2MjIzZmQwNzFhZDAwYmQxYTkyNTc0
ZTJhYzJmYjc1ZTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTcxLDYgKzcxLDExIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhmb2N1cykgXAogICAgIG1hY3JvKGZvY3Vz
aW4pIFwKICAgICBtYWNybyhmb2N1c291dCkgXAorICAgIG1hY3JvKGdlc3R1cmV0YXApIFwKKyAg
ICBtYWNybyhnZXN0dXJldGFwZG93bikgXAorICAgIG1hY3JvKGdlc3R1cmVzY3JvbGxzdGFydCkg
XAorICAgIG1hY3JvKGdlc3R1cmVzY3JvbGxlbmQpIFwKKyAgICBtYWNybyhnZXN0dXJlc2Nyb2xs
dXBkYXRlKSBcCiAgICAgbWFjcm8oaGFzaGNoYW5nZSkgXAogICAgIG1hY3JvKGlucHV0KSBcCiAg
ICAgbWFjcm8oaW52YWxpZCkgXApAQCAtMjYyLDYgKzI2NywxNSBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgICAgICAgICAgfHwgZXZlbnRUeXBlID09IHRvdWNoY2FuY2VsRXZlbnQ7CiAg
ICAgICAgIH0KIAorICAgICAgICBpbmxpbmUgYm9vbCBpc0dlc3R1cmVFdmVudFR5cGUoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJl
dHVybiBldmVudFR5cGUgPT0gZ2VzdHVyZXRhcEV2ZW50CisgICAgICAgICAgICAgICAgfHwgZXZl
bnRUeXBlID09IGdlc3R1cmV0YXBkb3duRXZlbnQKKyAgICAgICAgICAgICAgICB8fCBldmVudFR5
cGUgPT0gZ2VzdHVyZXNjcm9sbHN0YXJ0RXZlbnQKKyAgICAgICAgICAgICAgICB8fCBldmVudFR5
cGUgPT0gZ2VzdHVyZXNjcm9sbGVuZEV2ZW50CisgICAgICAgICAgICAgICAgfHwgZXZlbnRUeXBl
ID09IGdlc3R1cmVzY3JvbGx1cGRhdGVFdmVudDsKKyAgICAgICAgfQorCiAgICAgICAgIFZlY3Rv
cjxBdG9taWNTdHJpbmc+IHRvdWNoRXZlbnROYW1lcygpIGNvbnN0CiAgICAgICAgIHsKICAgICAg
ICAgICAgIFZlY3RvcjxBdG9taWNTdHJpbmc+IG5hbWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0dlc3R1cmVFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vR2VzdHVyZUV2
ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yMGYyYjQyNDVjZTU5ZTU4YzExOTVhZTNmNjVkYjE3NDIyNDY0
Y2FhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVFdmVudC5j
cHAKQEAgLTAsMCArMSwxMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQorCisjaW5jbHVkZSAiR2VzdHVyZUV2ZW50LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxHZXN0dXJlRXZlbnQ+IEdlc3R1cmVF
dmVudDo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdlc3R1cmVFdmVudCk7
Cit9CisKK1Bhc3NSZWZQdHI8R2VzdHVyZUV2ZW50PiBHZXN0dXJlRXZlbnQ6OmNyZWF0ZShQYXNz
UmVmUHRyPEFic3RyYWN0Vmlldz4gdmlldywgY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGV2
ZW50KQoreworICAgIEF0b21pY1N0cmluZyBldmVudFR5cGU7CisgICAgc3dpdGNoIChldmVudC50
eXBlKCkpIHsKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVTY3JvbGxCZWdpbjoKKyAg
ICAgICAgZXZlbnRUeXBlID0gZXZlbnROYW1lcygpLmdlc3R1cmVzY3JvbGxzdGFydEV2ZW50OyBi
cmVhazsKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVTY3JvbGxFbmQ6CisgICAgICAg
IGV2ZW50VHlwZSA9IGV2ZW50TmFtZXMoKS5nZXN0dXJlc2Nyb2xsZW5kRXZlbnQ7IGJyZWFrOwor
ICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVNjcm9sbFVwZGF0ZToKKyAgICAgICAgZXZl
bnRUeXBlID0gZXZlbnROYW1lcygpLmdlc3R1cmVzY3JvbGx1cGRhdGVFdmVudDsgYnJlYWs7Cisg
ICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlVGFwOgorICAgICAgICBldmVudFR5cGUgPSBl
dmVudE5hbWVzKCkuZ2VzdHVyZXRhcEV2ZW50OyBicmVhazsKKyAgICBjYXNlIFBsYXRmb3JtRXZl
bnQ6Okdlc3R1cmVUYXBEb3duOgorICAgICAgICBldmVudFR5cGUgPSBldmVudE5hbWVzKCkuZ2Vz
dHVyZXRhcGRvd25FdmVudDsgYnJlYWs7CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJl
RG91YmxlVGFwOgorICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVR3b0ZpbmdlclRhcDoK
KyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVMb25nUHJlc3M6CisgICAgY2FzZSBQbGF0
Zm9ybUV2ZW50OjpHZXN0dXJlUGluY2hCZWdpbjoKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdl
c3R1cmVQaW5jaEVuZDoKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVQaW5jaFVwZGF0
ZToKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZXN0dXJlRXZlbnQoZXZlbnRUeXBlLCB2aWV3LCBldmVu
dC5nbG9iYWxQb3NpdGlvbigpLngoKSwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS55KCksIGV2ZW50
LnBvc2l0aW9uKCkueCgpLCBldmVudC5wb3NpdGlvbigpLnkoKSwgZXZlbnQuY3RybEtleSgpLCBl
dmVudC5hbHRLZXkoKSwgZXZlbnQuc2hpZnRLZXkoKSwgZXZlbnQubWV0YUtleSgpLCBldmVudC5k
ZWx0YVgoKSwgZXZlbnQuZGVsdGFZKCkpKTsKK30KKwordm9pZCBHZXN0dXJlRXZlbnQ6OmluaXRH
ZXN0dXJlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBQYXNzUmVmUHRyPEFic3RyYWN0
Vmlldz4gdmlldywgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgY2xpZW50WCwgaW50IGNs
aWVudFksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0
YUtleSwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVkpCit7CisgICAgaWYgKGRpc3BhdGNoZWQo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW5pdFVJRXZlbnQodHlwZSwgdHJ1ZSwgdHJ1ZSwg
dmlldywgMCk7CisgICAgbV9zY3JlZW5Mb2NhdGlvbiA9IEludFBvaW50KHNjcmVlblgsIHNjcmVl
blkpOworICAgIG1fY3RybEtleSA9IGN0cmxLZXk7CisgICAgbV9hbHRLZXkgPSBhbHRLZXk7Cisg
ICAgbV9zaGlmdEtleSA9IHNoaWZ0S2V5OworICAgIG1fbWV0YUtleSA9IG1ldGFLZXk7CisKKyAg
ICBtX2RlbHRhWCA9IGRlbHRhWDsKKyAgICBtX2RlbHRhWSA9IGRlbHRhWTsKKworICAgIGluaXRD
b29yZGluYXRlcyhJbnRQb2ludChjbGllbnRYLCBjbGllbnRZKSk7Cit9CisKK2NvbnN0IEF0b21p
Y1N0cmluZyYgR2VzdHVyZUV2ZW50OjppbnRlcmZhY2VOYW1lKCkgY29uc3QKK3sKKyAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaW50ZXJmYWNlLCAoIlRCREludGVyZmFjZSIp
KTsKKyAgICByZXR1cm4gaW50ZXJmYWNlOworfQorCitHZXN0dXJlRXZlbnQ6Okdlc3R1cmVFdmVu
dCgpCisgICAgOiBtX2RlbHRhWCgwKQorICAgICwgbV9kZWx0YVkoMCkKK3sKK30KKworR2VzdHVy
ZUV2ZW50OjpHZXN0dXJlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBQYXNzUmVmUHRy
PEFic3RyYWN0Vmlldz4gdmlldywgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgY2xpZW50
WCwgaW50IGNsaWVudFksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXks
IGJvb2wgbWV0YUtleSwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVkpCisgICAgOiBNb3VzZVJl
bGF0ZWRFdmVudCh0eXBlLCB0cnVlLCB0cnVlLCB2aWV3LCAwLCBJbnRQb2ludChzY3JlZW5YLCBz
Y3JlZW5ZKSwgSW50UG9pbnQoY2xpZW50WCwgY2xpZW50WSksCisjaWYgRU5BQkxFKFBPSU5URVJf
TE9DSykKKyAgICAgICAgICAgICAgICAgICAgICAgIEludFBvaW50KDAsIDApLAorI2VuZGlmCisg
ICAgICAgICAgICAgICAgICAgICAgICBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRhS2V5
KQorICAgICwgbV9kZWx0YVgoZGVsdGFYKQorICAgICwgbV9kZWx0YVkoZGVsdGFZKQoreworfQor
CitHZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpHZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlh
dG9yKFBhc3NSZWZQdHI8R2VzdHVyZUV2ZW50PiBnZXN0dXJlRXZlbnQpCisgICAgOiBFdmVudERp
c3BhdGNoTWVkaWF0b3IoZ2VzdHVyZUV2ZW50KQoreworfQorCitHZXN0dXJlRXZlbnQqIEdlc3R1
cmVFdmVudERpc3BhdGNoTWVkaWF0b3I6OmV2ZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8R2VzdHVyZUV2ZW50Kj4oRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpldmVudCgpKTsK
K30KKworYm9vbCBHZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpkaXNwYXRjaEV2ZW50KEV2
ZW50RGlzcGF0Y2hlciogZGlzcGF0Y2hlcikgY29uc3QKK3sKKyAgICBpZiAoZGlzcGF0Y2hlci0+
bm9kZSgpLT5kaXNhYmxlZCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGRpc3BhdGNo
ZXItPmRpc3BhdGNoRXZlbnQoZXZlbnQoKSk7CisgICAgQVNTRVJUKCFldmVudCgpLT5kZWZhdWx0
UHJldmVudGVkKCkpOworICAgIHJldHVybiBldmVudCgpLT5kZWZhdWx0SGFuZGxlZCgpIHx8IGV2
ZW50KCktPmRlZmF1bHRQcmV2ZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0dlc3R1cmVFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlc3R1cmVFdmVu
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZmMDgzYzNmMjIwNjk4OTA4ZjNlYzk0NDllNDM2ZDc2NzUzNjE2YzIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vR2VzdHVyZUV2ZW50LmgKQEAg
LTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEdlc3R1cmVFdmVudF9oCisjZGVmaW5l
IEdlc3R1cmVFdmVudF9oCisKKyNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCisKKyNpbmNsdWRl
ICJFdmVudERpc3BhdGNoZXIuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAi
RnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJNb3VzZVJlbGF0ZWRF
dmVudC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtRXZlbnQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUdl
c3R1cmVFdmVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdlc3R1cmVFdmVu
dCA6IHB1YmxpYyBNb3VzZVJlbGF0ZWRFdmVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+R2Vz
dHVyZUV2ZW50KCkgeyB9CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZXN0dXJlRXZlbnQ+IGNy
ZWF0ZSgpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdlc3R1cmVFdmVudD4gY3JlYXRlKFBhc3NS
ZWZQdHI8QWJzdHJhY3RWaWV3PiwgY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmKTsKKworICAg
IHZvaWQgaW5pdEdlc3R1cmVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIFBhc3NSZWZQ
dHI8QWJzdHJhY3RWaWV3PiwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgY2xpZW50WCwg
aW50IGNsaWVudFksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJv
b2wgbWV0YUtleSwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVkpOworCisgICAgdmlydHVhbCBj
b25zdCBBdG9taWNTdHJpbmcmIGludGVyZmFjZU5hbWUoKSBjb25zdDsKKworICAgIGZsb2F0IGRl
bHRhWCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVsdGFYOyB9CisgICAgZmxvYXQgZGVsdGFZKCkgY29u
c3QgeyByZXR1cm4gbV9kZWx0YVk7IH0KKworcHJpdmF0ZToKKyAgICBHZXN0dXJlRXZlbnQoKTsK
KyAgICBHZXN0dXJlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBQYXNzUmVmUHRyPEFi
c3RyYWN0Vmlldz4sIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IGNsaWVudFgsIGludCBj
bGllbnRZLCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1l
dGFLZXksIGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZKTsKKworICAgIGZsb2F0IG1fZGVsdGFY
OworICAgIGZsb2F0IG1fZGVsdGFZOworfTsKKworY2xhc3MgR2VzdHVyZUV2ZW50RGlzcGF0Y2hN
ZWRpYXRvciA6IHB1YmxpYyBFdmVudERpc3BhdGNoTWVkaWF0b3IgeworcHVibGljOgorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEdlc3R1cmVFdmVudERpc3BhdGNoTWVkaWF0b3I+IGNyZWF0ZShQYXNz
UmVmUHRyPEdlc3R1cmVFdmVudD4gZ2VzdHVyZUV2ZW50KQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBHZXN0dXJlRXZlbnREaXNwYXRjaE1lZGlhdG9yKGdlc3R1cmVFdmVudCkp
OworICAgIH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBHZXN0dXJlRXZlbnREaXNwYXRjaE1l
ZGlhdG9yKFBhc3NSZWZQdHI8R2VzdHVyZUV2ZW50Pik7CisKKyAgICBHZXN0dXJlRXZlbnQqIGV2
ZW50KCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIGJvb2wgZGlzcGF0Y2hFdmVudChFdmVudERpc3Bh
dGNoZXIqKSBjb25zdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShHRVNUVVJFX0VWRU5UUykKKworI2VuZGlmIC8vIEdlc3R1cmVFdmVudF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAKaW5kZXggZjMwYzNmY2JmY2Y4NjBhZTAzNDE3YjVkY2QwMTE3Yjk2YzVmZjllZC4u
NzUyOGNmZDMxMTdhYjMxNGE4MmQ1MjVlMDBiNWMzMGY0MDc1YTUwOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cApAQCAtMTA5LDYgKzEwOSwxMCBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKKyNpZiBFTkFCTEUoR0VTVFVSRV9F
VkVOVFMpCisjaW5jbHVkZSAiR2VzdHVyZUV2ZW50LmgiCisjZW5kaWYKKwogI2lmIEVOQUJMRShJ
TlNQRUNUT1IpCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2VuZGlmCkBAIC0y
NjMzLDYgKzI2MzcsMTMgQEAgYm9vbCBOb2RlOjpkaXNwYXRjaE1vdXNlRXZlbnQoY29uc3QgUGxh
dGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgY29uc3QgQXRvbWljU3RyaW4KICAgICByZXR1cm4gRXZl
bnREaXNwYXRjaGVyOjpkaXNwYXRjaEV2ZW50KHRoaXMsIE1vdXNlRXZlbnREaXNwYXRjaE1lZGlh
dG9yOjpjcmVhdGUoTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50VHlwZSwgZG9jdW1lbnQoKS0+ZGVm
YXVsdFZpZXcoKSwgZXZlbnQsIGRldGFpbCwgcmVsYXRlZFRhcmdldCkpKTsKIH0KIAorI2lmIEVO
QUJMRShHRVNUVVJFX0VWRU5UUykKK2Jvb2wgTm9kZTo6ZGlzcGF0Y2hHZXN0dXJlRXZlbnQoY29u
c3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGV2ZW50KQoreworICAgIHJldHVybiBFdmVudERpc3Bh
dGNoZXI6OmRpc3BhdGNoRXZlbnQodGhpcywgR2VzdHVyZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6
Y3JlYXRlKEdlc3R1cmVFdmVudDo6Y3JlYXRlKGRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCksIGV2
ZW50KSkpOworfQorI2VuZGlmCisKIHZvaWQgTm9kZTo6ZGlzcGF0Y2hTaW11bGF0ZWRDbGljayhQ
YXNzUmVmUHRyPEV2ZW50PiBldmVudCwgYm9vbCBzZW5kTW91c2VFdmVudHMsIGJvb2wgc2hvd1By
ZXNzZWRMb29rKQogewogICAgIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hTaW11bGF0ZWRDbGlj
ayh0aGlzLCBldmVudCwgc2VuZE1vdXNlRXZlbnRzLCBzaG93UHJlc3NlZExvb2spOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmgKaW5kZXggODZhN2QzOWVkNThiZGJjOWQ0MmYyNDFlNDc2YzlhNmIzMTZiZDZkMC4uYTMyMDRi
YTFhN2EzZTgyNmI0NTkyM2Y2YTIyNTk4NTM1ZThiNDAzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC04OCw2
ICs4OCwxMCBAQCBjbGFzcyBTaGFkb3dSb290OwogY2xhc3MgVGFnTm9kZUxpc3Q7CiBjbGFzcyBU
cmVlU2NvcGU7CiAKKyNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCitjbGFzcyBQbGF0Zm9ybUdl
c3R1cmVFdmVudDsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkKIGNsYXNzIEhUTUxQ
cm9wZXJ0aWVzQ29sbGVjdGlvbjsKIGNsYXNzIFByb3BlcnR5Tm9kZUxpc3Q7CkBAIC02MDksNiAr
NjEzLDkgQEAgcHVibGljOgogICAgIGJvb2wgZGlzcGF0Y2hLZXlFdmVudChjb25zdCBQbGF0Zm9y
bUtleWJvYXJkRXZlbnQmKTsKICAgICBib29sIGRpc3BhdGNoV2hlZWxFdmVudChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmKTsKICAgICBib29sIGRpc3BhdGNoTW91c2VFdmVudChjb25zdCBQbGF0
Zm9ybU1vdXNlRXZlbnQmLCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgaW50IGNsaWNr
Q291bnQgPSAwLCBOb2RlKiByZWxhdGVkVGFyZ2V0ID0gMCk7CisjaWYgRU5BQkxFKEdFU1RVUkVf
RVZFTlRTKQorICAgIGJvb2wgZGlzcGF0Y2hHZXN0dXJlRXZlbnQoY29uc3QgUGxhdGZvcm1HZXN0
dXJlRXZlbnQmKTsKKyNlbmRpZgogICAgIHZvaWQgZGlzcGF0Y2hTaW11bGF0ZWRDbGljayhQYXNz
UmVmUHRyPEV2ZW50PiB1bmRlcmx5aW5nRXZlbnQsIGJvb2wgc2VuZE1vdXNlRXZlbnRzID0gZmFs
c2UsIGJvb2wgc2hvd1ByZXNzZWRMb29rID0gdHJ1ZSk7CiAgICAgYm9vbCBkaXNwYXRjaEJlZm9y
ZUxvYWRFdmVudChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcAppbmRleCA4ZWVhM2ZhNjU4YjU5ZmNiY2RjY2Y5MjEzYmM3OGUyOGFhNjQ3
NzdiLi4wNjFkODMzMGY1NjdmOWJiNDA3MjYxZTlmYmE0OWYyMTYyYzI0Y2I4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0zNjcsMTAgKzM2NywxMSBAQCB2b2lkIEV2ZW50
SGFuZGxlcjo6Y2xlYXIoKQogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgbV9vcmlnaW5h
dGluZ1RvdWNoUG9pbnRUYXJnZXRzLmNsZWFyKCk7CiAjZW5kaWYKLSAgICBtX21heE1vdXNlTW92
ZWREdXJhdGlvbiA9IDA7CiAjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQotICAgIG1fYmFzZUV2
ZW50VHlwZSA9IFBsYXRmb3JtRXZlbnQ6Ok5vVHlwZTsKKyAgICBtX3Njcm9sbEdlc3R1cmVIYW5k
bGluZ05vZGUgPSAwOwogI2VuZGlmCisgICAgbV9tYXhNb3VzZU1vdmVkRHVyYXRpb24gPSAwOwor
ICAgIG1fYmFzZUV2ZW50VHlwZSA9IFBsYXRmb3JtRXZlbnQ6Ok5vVHlwZTsKIH0KIAogdm9pZCBF
dmVudEhhbmRsZXI6Om5vZGVXaWxsQmVSZW1vdmVkKE5vZGUqIG5vZGVUb0JlUmVtb3ZlZCkKQEAg
LTI0MTMsNiArMjQxNCwyOSBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZVRhcERv
d24oKQogCiBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZUV2ZW50KGNvbnN0IFBsYXRm
b3JtR2VzdHVyZUV2ZW50JiBnZXN0dXJlRXZlbnQpCiB7CisgICAgTm9kZSogZXZlbnRUYXJnZXQg
PSAwOworICAgIGlmIChnZXN0dXJlRXZlbnQudHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6Okdlc3R1
cmVTY3JvbGxFbmQgfHwgZ2VzdHVyZUV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpHZXN0
dXJlU2Nyb2xsVXBkYXRlKQorICAgICAgICBldmVudFRhcmdldCA9IG1fc2Nyb2xsR2VzdHVyZUhh
bmRsaW5nTm9kZS5nZXQoKTsKKworICAgIGlmICghZXZlbnRUYXJnZXQpIHsKKyAgICAgICAgSGl0
VGVzdFJlc3VsdCByZXN1bHQgPSBoaXRUZXN0UmVzdWx0QXRQb2ludChnZXN0dXJlRXZlbnQucG9z
aXRpb24oKSwgZmFsc2UsIGZhbHNlLCBEb250SGl0VGVzdFNjcm9sbGJhcnMsIEhpdFRlc3RSZXF1
ZXN0OjpSZWFkT25seSB8IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUpOworICAgICAgICBldmVudFRh
cmdldCA9IHRhcmdldE5vZGUocmVzdWx0KTsKKyAgICB9CisKKyAgICBpZiAoZXZlbnRUYXJnZXQp
IHsKKyAgICAgICAgYm9vbCBldmVudFN3YWxsb3dlZCA9IGV2ZW50VGFyZ2V0LT5kaXNwYXRjaEdl
c3R1cmVFdmVudChnZXN0dXJlRXZlbnQpOworCisgICAgICAgIGlmIChnZXN0dXJlRXZlbnQudHlw
ZSgpID09IFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVTY3JvbGxCZWdpbikgeworICAgICAgICAgICAg
aWYgKGV2ZW50U3dhbGxvd2VkKQorICAgICAgICAgICAgICAgIG1fc2Nyb2xsR2VzdHVyZUhhbmRs
aW5nTm9kZSA9IGV2ZW50VGFyZ2V0OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IG1fc2Nyb2xsR2VzdHVyZUhhbmRsaW5nTm9kZSA9IDA7CisgICAgICAgIH0KKworICAgICAgICBp
ZiAoZXZlbnRTd2FsbG93ZWQpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAg
ICAvLyBGSVhNRTogQSBtb3JlIGdlbmVyYWwgc2Nyb2xsIHN5c3RlbSAoaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwNTk2KSB3aWxsCiAgICAgLy8gZWxpbWluYXRlIHRo
ZSBuZWVkIGZvciB0aGlzLgogICAgIFRlbXBvcmFyeUNoYW5nZTxQbGF0Zm9ybUV2ZW50OjpUeXBl
PiBiYXNlRXZlbnRUeXBlKG1fYmFzZUV2ZW50VHlwZSwgZ2VzdHVyZUV2ZW50LnR5cGUoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRleCAxZDJkMzc1YzM5YmI1OGJhNTNhNThmNTQz
MDdlYjE2MjVlZjA3ZmQxLi5lZTI2OTQ0MzNkYjFjMjc5OWQ1MDRiMmQ0ODRmMDRlMzU0NzAzMGUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKQEAgLTQ0Niw2ICs0NDYsMTEgQEAgcHJp
dmF0ZToKICAgICBUb3VjaFRhcmdldE1hcCBtX29yaWdpbmF0aW5nVG91Y2hQb2ludFRhcmdldHM7
CiAgICAgYm9vbCBtX3RvdWNoUHJlc3NlZDsKICNlbmRpZgorCisjaWYgRU5BQkxFKEdFU1RVUkVf
RVZFTlRTKQorICAgIFJlZlB0cjxOb2RlPiBtX3Njcm9sbEdlc3R1cmVIYW5kbGluZ05vZGU7Cisj
ZW5kaWYKKwogICAgIGRvdWJsZSBtX21heE1vdXNlTW92ZWREdXJhdGlvbjsKICAgICBQbGF0Zm9y
bUV2ZW50OjpUeXBlIG1fYmFzZUV2ZW50VHlwZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAKaW5kZXggMjA3ZDgx
Y2EzODRkMzZjODNhNGQxMDFlNDcwZGE5ZTA5MjIyMzRkOC4uYzA4ZWRlYWFhNmM1NjY2MjkxYjRk
Y2IzYmIxNzZiYmVlYTA3Yjk1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2lu
Y2x1ZGUgIldlYklucHV0RXZlbnRDb252ZXJzaW9uLmgiCiAKICNpbmNsdWRlICJFdmVudE5hbWVz
LmgiCisjaW5jbHVkZSAiR2VzdHVyZUV2ZW50LmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRDb2Rlcy5o
IgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCkBA
IC01MTIsNCArNTEzLDMxIEBAIFdlYlRvdWNoRXZlbnRCdWlsZGVyOjpXZWJUb3VjaEV2ZW50QnVp
bGRlcihjb25zdCBXaWRnZXQqIHdpZGdldCwgY29uc3QgVG91Y2hFdmVuCiAKICNlbmRpZiAvLyBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQogCisjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQorV2ViR2Vz
dHVyZUV2ZW50QnVpbGRlcjo6V2ViR2VzdHVyZUV2ZW50QnVpbGRlcihjb25zdCBXaWRnZXQqIHdp
ZGdldCwgY29uc3QgR2VzdHVyZUV2ZW50JiBldmVudCkKK3sKKyAgICBpZiAoZXZlbnQudHlwZSgp
ID09IGV2ZW50TmFtZXMoKS5nZXN0dXJldGFwRXZlbnQpCisgICAgICAgIHR5cGUgPSBHZXN0dXJl
VGFwOworICAgIGVsc2UgaWYgKGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCkuZ2VzdHVyZXRh
cGRvd25FdmVudCkKKyAgICAgICAgdHlwZSA9IEdlc3R1cmVUYXBEb3duOworICAgIGVsc2UgaWYg
KGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCkuZ2VzdHVyZXNjcm9sbHN0YXJ0RXZlbnQpCisg
ICAgICAgIHR5cGUgPSBHZXN0dXJlU2Nyb2xsQmVnaW47CisgICAgZWxzZSBpZiAoZXZlbnQudHlw
ZSgpID09IGV2ZW50TmFtZXMoKS5nZXN0dXJlc2Nyb2xsZW5kRXZlbnQpCisgICAgICAgIHR5cGUg
PSBHZXN0dXJlU2Nyb2xsRW5kOworICAgIGVsc2UgaWYgKGV2ZW50LnR5cGUoKSA9PSBldmVudE5h
bWVzKCkuZ2VzdHVyZXNjcm9sbHVwZGF0ZUV2ZW50KQorICAgICAgICB0eXBlID0gR2VzdHVyZVNj
cm9sbFVwZGF0ZTsKKworICAgIHRpbWVTdGFtcFNlY29uZHMgPSBldmVudC50aW1lU3RhbXAoKSAv
IG1pbGxpc1BlclNlY29uZDsKKyAgICBtb2RpZmllcnMgPSBnZXRXZWJJbnB1dE1vZGlmaWVycyhl
dmVudCk7CisKKyAgICBnbG9iYWxYID0gZXZlbnQuc2NyZWVuWCgpOworICAgIGdsb2JhbFkgPSBl
dmVudC5zY3JlZW5ZKCk7CisgICAgeCA9IGV2ZW50LmFic29sdXRlTG9jYXRpb24oKS54KCkgLSB3
aWRnZXQtPmxvY2F0aW9uKCkueCgpOworICAgIHkgPSBldmVudC5hYnNvbHV0ZUxvY2F0aW9uKCku
eSgpIC0gd2lkZ2V0LT5sb2NhdGlvbigpLnkoKTsKKworICAgIGRlbHRhWCA9IGV2ZW50LmRlbHRh
WCgpOworICAgIGRlbHRhWSA9IGV2ZW50LmRlbHRhWSgpOworfQorI2VuZGlmIC8vIEVOQUJMRShH
RVNUVVJFX0VWRU5UUykKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5oIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uaAppbmRleCBkNDdi
ZGE4MTQ5MmYxYjAxOTE5NmVkNjM5OGI1N2E2OTlmODQwMzEwLi40ODk3NWE0MDQ2YjIxMmIwZjJk
Yjk5MmJlNjRiOGM4MzQ5NzkwZThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNs
dWRlICJXZWJJbnB1dEV2ZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEdlc3R1
cmVFdmVudDsKIGNsYXNzIEtleWJvYXJkRXZlbnQ7CiBjbGFzcyBNb3VzZUV2ZW50OwogY2xhc3Mg
U2Nyb2xsVmlldzsKQEAgLTEzMSw2ICsxMzIsMTUgQEAgcHVibGljOgogfTsKICNlbmRpZiAvLyBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQogCisjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQorLy8gQ29u
dmVydHMgV2ViQ29yZTo6R2VzdHVyZUV2ZW50IHRvIGEgY29ycmVzcG9uZGluZyBXZWJHZXN0dXJl
RXZlbnQuCisvLyBOT1RFOiBJZiBldmVudCBtYXBwaW5nIGZhaWxzLCB0aGUgdHlwZSB3aWxsIGJl
IHNldCB0byBVbmRlZmluZWQuCitjbGFzcyBXZWJHZXN0dXJlRXZlbnRCdWlsZGVyIDogcHVibGlj
IFdlYkdlc3R1cmVFdmVudCB7CitwdWJsaWM6CisgICAgV2ViR2VzdHVyZUV2ZW50QnVpbGRlcihj
b25zdCBXZWJDb3JlOjpXaWRnZXQqLCBjb25zdCBXZWJDb3JlOjpHZXN0dXJlRXZlbnQmKTsKK307
CisjZW5kaWYgLy8gRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQ
bHVnaW5Db250YWluZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBs
dWdpbkNvbnRhaW5lckltcGwuY3BwCmluZGV4IDI5NDg5ZTI1YTU0NGIxMzU3MjQ2ZDdhMzlhYTRm
OWRmYTljYmY3NWYuLjFjNWMwNWY2NmQyMmU5MDViODQ5MGQ2ZWU1MzFhM2VhZWJhNjk2ZTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lcklt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5l
ckltcGwuY3BwCkBAIC01Niw2ICs1Niw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAi
R2VzdHVyZUV2ZW50LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAi
SGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKQEAgLTE4OCw2ICsxODks
OCBAQCB2b2lkIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OmhhbmRsZUV2ZW50KEV2ZW50KiBldmVu
dCkKICAgICAgICAgaGFuZGxlS2V5Ym9hcmRFdmVudChzdGF0aWNfY2FzdDxLZXlib2FyZEV2ZW50
Kj4oZXZlbnQpKTsKICAgICBlbHNlIGlmIChldmVudE5hbWVzKCkuaXNUb3VjaEV2ZW50VHlwZShl
dmVudC0+dHlwZSgpKSkKICAgICAgICAgaGFuZGxlVG91Y2hFdmVudChzdGF0aWNfY2FzdDxUb3Vj
aEV2ZW50Kj4oZXZlbnQpKTsKKyAgICBlbHNlIGlmIChldmVudE5hbWVzKCkuaXNHZXN0dXJlRXZl
bnRUeXBlKGV2ZW50LT50eXBlKCkpKQorICAgICAgICBoYW5kbGVHZXN0dXJlRXZlbnQoc3RhdGlj
X2Nhc3Q8R2VzdHVyZUV2ZW50Kj4oZXZlbnQpKTsKIAogICAgIC8vIEZJWE1FOiBpdCB3b3VsZCBi
ZSBjbGVhbmVyIGlmIFdpZGdldDo6aGFuZGxlRXZlbnQgcmV0dXJuZWQgdHJ1ZS9mYWxzZSBhbmQK
ICAgICAvLyBIVE1MUGx1Z2luRWxlbWVudCBjYWxsZWQgc2V0RGVmYXVsdEhhbmRsZWQgb3IgZGVm
YXVsdEV2ZW50SGFuZGxlci4KQEAgLTczNiw2ICs3MzksMTcgQEAgdm9pZCBXZWJQbHVnaW5Db250
YWluZXJJbXBsOjpoYW5kbGVUb3VjaEV2ZW50KFRvdWNoRXZlbnQqIGV2ZW50KQogICAgIC8vIEZJ
WE1FOiBDYW4gYSBwbHVnaW4gY2hhbmdlIHRoZSBjdXJzb3IgZnJvbSBhIHRvdWNoLWV2ZW50IGNh
bGxiYWNrPwogfQogCit2b2lkIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OmhhbmRsZUdlc3R1cmVF
dmVudChHZXN0dXJlRXZlbnQqIGV2ZW50KQoreworICAgIFdlYkdlc3R1cmVFdmVudEJ1aWxkZXIg
d2ViRXZlbnQodGhpcywgKmV2ZW50KTsKKyAgICBpZiAod2ViRXZlbnQudHlwZSA9PSBXZWJJbnB1
dEV2ZW50OjpVbmRlZmluZWQpCisgICAgICAgIHJldHVybjsKKyAgICBXZWJDdXJzb3JJbmZvIGN1
cnNvckluZm87CisgICAgaWYgKG1fd2ViUGx1Z2luLT5oYW5kbGVJbnB1dEV2ZW50KHdlYkV2ZW50
LCBjdXJzb3JJbmZvKSkKKyAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAg
Ly8gRklYTUU6IENhbiBhIHBsdWdpbiBjaGFuZ2UgdGhlIGN1cnNvciBmcm9tIGEgdG91Y2gtZXZl
bnQgY2FsbGJhY2s/Cit9CisKIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6Y2FsY3VsYXRl
R2VvbWV0cnkoY29uc3QgSW50UmVjdCYgZnJhbWVSZWN0LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRSZWN0JiB3aW5kb3dSZWN0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRSZWN0JiBjbGlwUmVjdCwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5l
ckltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lcklt
cGwuaAppbmRleCA0YzJhYWViNGEwNDg0MzQwYWY2NjFhNWFkY2IyYzIzOTg3YThjNDc2Li42MWY1
YzViNzE0NmYyOTk1N2RiODkxOGY5OGRiNDVhZmQ5NDU2OTc4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCkBAIC00NSw2ICs0
NSw3IEBACiBzdHJ1Y3QgTlBPYmplY3Q7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEdl
c3R1cmVFdmVudDsKIGNsYXNzIEhUTUxQbHVnSW5FbGVtZW50OwogY2xhc3MgSW50UmVjdDsKIGNs
YXNzIEtleWJvYXJkRXZlbnQ7CkBAIC0xNjcsNiArMTY4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGhhbmRsZVdoZWVsRXZlbnQoV2ViQ29yZTo6V2hlZWxFdmVudCopOwogICAgIHZvaWQgaGFuZGxl
S2V5Ym9hcmRFdmVudChXZWJDb3JlOjpLZXlib2FyZEV2ZW50Kik7CiAgICAgdm9pZCBoYW5kbGVU
b3VjaEV2ZW50KFdlYkNvcmU6OlRvdWNoRXZlbnQqKTsKKyAgICB2b2lkIGhhbmRsZUdlc3R1cmVF
dmVudChXZWJDb3JlOjpHZXN0dXJlRXZlbnQqKTsKIAogICAgIHZvaWQgY2FsY3VsYXRlR2VvbWV0
cnkoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZnJhbWVSZWN0LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgV2ViQ29yZTo6SW50UmVjdCYgd2luZG93UmVjdCwKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiNDRkODkwZWUzMTk0Y2VlZTdkMWU5
YTQ5ZmJmZWY1OGRiZmNlNzg0Li5jMDdlMDMxNGM0MTA0OTk2ZmZkZjViNzExN2RmNDZiYmVjNjFj
ZjM0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTItMDctMjYgIFNhZHJ1bCBIYWJpYiBDaG93ZGh1cnkgIDxzYWRy
dWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFByb3BhZ2F0ZSBnZXN0dXJlIGV2ZW50cyB0byBw
bHVnaW5zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTIyODEKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgIFVwZGF0
ZSBUZXN0V2ViUGx1Z2luIHRvIHJlY2VpdmUgZXZlbnRzLCBhbmQgb3V0cHV0IGxvZ3MgZm9yIHRo
ZSBldmVudHMuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1
Z2luLmNwcDoKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46OmhhbmRsZUlucHV0RXZlbnQpOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uaDoKKyAgICAgICAg
KFRlc3RXZWJQbHVnaW46OmFjY2VwdHNJbnB1dEV2ZW50cyk6CisgICAgICAgIChUZXN0V2ViUGx1
Z2luKToKKwogMjAxMi0wNy0yMCAgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIgIDxob2xnZXJA
bW9pamktbW9iaWxlLmNvbT4KIAogICAgICAgICBidWlsZGJvdDogUmVtb3ZlIHRoZSBjb25maWd1
cmF0aW9uIG9mIGhmcmV5dGhlcioKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RXZWJQbHVnaW4uY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFdlYlBsdWdpbi5jcHAKaW5kZXggNTcwMTkyY2JiMTJjMzYyMDU3MzliODZmZTkwZThiOThl
ZTFhM2ZhMy4uYmJlYmE2ZjliNzFkNmU5ZmFlYzgzZDBlOTBhOWExMWFkZWI4MTViZSAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5jcHAKQEAgLTI3
LDYgKzI3LDcgQEAKICNpbmNsdWRlICJUZXN0V2ViUGx1Z2luLmgiCiAKICNpbmNsdWRlICJXZWJG
cmFtZS5oIgorI2luY2x1ZGUgIldlYklucHV0RXZlbnQuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9X
ZWJHcmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIldlYktpdC5oIgogI2luY2x1ZGUgInBs
YXRmb3JtL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oIgpAQCAtMzY0LDMgKzM2NSw0NyBAQCB1bnNp
Z25lZCBUZXN0V2ViUGx1Z2luOjpsb2FkUHJvZ3JhbShjb25zdCBDU3RyaW5nJiB2ZXJ0ZXhTb3Vy
Y2UsCiAgICAgcmV0dXJuIHByb2dyYW07CiB9CiAKK2Jvb2wgVGVzdFdlYlBsdWdpbjo6aGFuZGxl
SW5wdXRFdmVudChjb25zdCBXZWJLaXQ6OldlYklucHV0RXZlbnQmIGV2ZW50LCBXZWJLaXQ6Oldl
YkN1cnNvckluZm8mIGluZm8pCit7CisgICAgY29uc3QgY2hhciogZXZlbnROYW1lID0gMDsKKyAg
ICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHsKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6
VW5kZWZpbmVkOiAgICAgICAgICAgZXZlbnROYW1lID0gInVua25vd24iOyBicmVhazsKKworICAg
IGNhc2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpNb3VzZURvd246ICAgICAgICAgICBldmVudE5h
bWUgPSAiTW91c2VEb3duIjsgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6
Ok1vdXNlVXA6ICAgICAgICAgICAgIGV2ZW50TmFtZSA9ICJNb3VzZVVwIjsgYnJlYWs7CisgICAg
Y2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6Ok1vdXNlTW92ZTogICAgICAgICAgIGV2ZW50TmFt
ZSA9ICJNb3VzZU1vdmUiOyBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6
TW91c2VFbnRlcjogICAgICAgICAgZXZlbnROYW1lID0gIk1vdXNlRW50ZXIiOyBicmVhazsKKyAg
ICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6TW91c2VMZWF2ZTogICAgICAgICAgZXZlbnRO
YW1lID0gIk1vdXNlTGVhdmUiOyBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVu
dDo6Q29udGV4dE1lbnU6ICAgICAgICAgZXZlbnROYW1lID0gIkNvbnRleHRNZW51IjsgYnJlYWs7
CisKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6TW91c2VXaGVlbDogICAgICAgICAg
ZXZlbnROYW1lID0gIk1vdXNlV2hlZWwiOyBicmVhazsKKworICAgIGNhc2UgV2ViS2l0OjpXZWJJ
bnB1dEV2ZW50OjpSYXdLZXlEb3duOiAgICAgICAgICBldmVudE5hbWUgPSAiUmF3S2V5RG93biI7
IGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpLZXlEb3duOiAgICAgICAg
ICAgICBldmVudE5hbWUgPSAiS2V5RG93biI7IGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJJ
bnB1dEV2ZW50OjpLZXlVcDogICAgICAgICAgICAgICBldmVudE5hbWUgPSAiS2V5VXAiOyBicmVh
azsKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6Q2hhcjogICAgICAgICAgICAgICAg
ZXZlbnROYW1lID0gIkNoYXIiOyBicmVhazsKKworICAgIGNhc2UgV2ViS2l0OjpXZWJJbnB1dEV2
ZW50OjpHZXN0dXJlU2Nyb2xsQmVnaW46ICBldmVudE5hbWUgPSAiR2VzdHVyZVNjcm9sbEJlZ2lu
IjsgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6Okdlc3R1cmVTY3JvbGxF
bmQ6ICAgIGV2ZW50TmFtZSA9ICJHZXN0dXJlU2Nyb2xsRW5kIjsgYnJlYWs7CisgICAgY2FzZSBX
ZWJLaXQ6OldlYklucHV0RXZlbnQ6Okdlc3R1cmVTY3JvbGxVcGRhdGU6IGV2ZW50TmFtZSA9ICJH
ZXN0dXJlU2Nyb2xsVXBkYXRlIjsgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZl
bnQ6Okdlc3R1cmVGbGluZ1N0YXJ0OiAgIGV2ZW50TmFtZSA9ICJHZXN0dXJlRmxpbmdTdGFydCI7
IGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpHZXN0dXJlRmxpbmdDYW5j
ZWw6ICBldmVudE5hbWUgPSAiR2VzdHVyZUZsaW5nQ2FuY2VsIjsgYnJlYWs7CisgICAgY2FzZSBX
ZWJLaXQ6OldlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXA6ICAgICAgICAgIGV2ZW50TmFtZSA9ICJH
ZXN0dXJlVGFwIjsgYnJlYWs7CisgICAgY2FzZSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6Okdlc3R1
cmVUYXBEb3duOiAgICAgIGV2ZW50TmFtZSA9ICJHZXN0dXJlVGFwRG93biI7IGJyZWFrOworICAg
IGNhc2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpHZXN0dXJlRG91YmxlVGFwOiAgICBldmVudE5h
bWUgPSAiR2VzdHVyZURvdWJsZVRhcCI7IGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJJbnB1
dEV2ZW50OjpHZXN0dXJlVHdvRmluZ2VyVGFwOiBldmVudE5hbWUgPSAiR2VzdHVyZVR3b0Zpbmdl
clRhcCI7IGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpHZXN0dXJlTG9u
Z1ByZXNzOiAgICBldmVudE5hbWUgPSAiR2VzdHVyZUxvbmdQcmVzcyI7IGJyZWFrOworICAgIGNh
c2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpHZXN0dXJlUGluY2hCZWdpbjogICBldmVudE5hbWUg
PSAiR2VzdHVyZVBpbmNoQmVnaW4iOyBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRF
dmVudDo6R2VzdHVyZVBpbmNoRW5kOiAgICAgZXZlbnROYW1lID0gIkdlc3R1cmVQaW5jaEVuZCI7
IGJyZWFrOworICAgIGNhc2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpHZXN0dXJlUGluY2hVcGRh
dGU6ICBldmVudE5hbWUgPSAiR2VzdHVyZVBpbmNoVXBkYXRlIjsgYnJlYWs7CisKKyAgICBjYXNl
IFdlYktpdDo6V2ViSW5wdXRFdmVudDo6VG91Y2hTdGFydDogICAgICAgICAgZXZlbnROYW1lID0g
IlRvdWNoU3RhcnQiOyBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6VG91
Y2hNb3ZlOiAgICAgICAgICAgZXZlbnROYW1lID0gIlRvdWNoTW92ZSI7IGJyZWFrOworICAgIGNh
c2UgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpUb3VjaEVuZDogICAgICAgICAgICBldmVudE5hbWUg
PSAiVG91Y2hFbmQiOyBicmVhazsKKyAgICBjYXNlIFdlYktpdDo6V2ViSW5wdXRFdmVudDo6VG91
Y2hDYW5jZWw6ICAgICAgICAgZXZlbnROYW1lID0gIlRvdWNoQ2FuY2VsIjsgYnJlYWs7CisgICAg
fQorCisgICAgcHJpbnRmKCJQbHVnaW4gcmVjZWl2ZWQgZXZlbnQ6ICVzXG4iLCBldmVudE5hbWUg
PyBldmVudE5hbWUgOiAidW5rbm93biIpOworICAgIHJldHVybiBmYWxzZTsKK30KKwpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5oIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5oCmluZGV4IDRjOWYyZjRk
MjI4NTc5Y2NmNmExNjQ1NmJmMGFkMzQ0Y2FkODlmNzAuLjAyNWIxMTA5NTU1YTJjMGE4YTIyMjIy
ZjNlZTRiODE1NmY2YjM0ZTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RXZWJQbHVnaW4uaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0V2ViUGx1Z2luLmgKQEAgLTYwLDggKzYwLDggQEAgcHVibGljOgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBib29sIGlzVmlzaWJsZSk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZUZvY3VzKGJvb2wpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaXNpYmlsaXR5KGJvb2wp
IHsgfQotICAgIHZpcnR1YWwgYm9vbCBhY2NlcHRzSW5wdXRFdmVudHMoKSB7IHJldHVybiBmYWxz
ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYktpdDo6V2Vi
SW5wdXRFdmVudCYsIFdlYktpdDo6V2ViQ3Vyc29ySW5mbyYpIHsgcmV0dXJuIGZhbHNlOyB9Cisg
ICAgdmlydHVhbCBib29sIGFjY2VwdHNJbnB1dEV2ZW50cygpIHsgcmV0dXJuIHRydWU7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgaGFuZGxlSW5wdXRFdmVudChjb25zdCBXZWJLaXQ6OldlYklucHV0RXZl
bnQmLCBXZWJLaXQ6OldlYkN1cnNvckluZm8mKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZVJlc3BvbnNlKGNvbnN0IFdlYktpdDo6V2ViVVJMUmVzcG9uc2UmKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgpIHsg
fQogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKCkgeyB9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjRjYjFj
NzI0YjY4YjYzM2EzZjcyMThhODIxODYxZGVmMzUxZTViMy4uNDdhZWU2YzRkZWJkYmE4MzZhOWU1
YjU5NTUwM2YzYWU2YmFjMDM1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA3LTI2ICBT
YWRydWwgSGFiaWIgQ2hvd2RodXJ5ICA8c2FkcnVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBQ
cm9wYWdhdGUgZ2VzdHVyZSBldmVudHMgdG8gcGx1Z2lucy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QWRhbSBCYXJ0aC4KKworICAgICAgICBBZGRlZCBhIGxheW91dCB0ZXN0IHRvIHNob3cgdGhhdCB0
aGUgcGx1Z2lucyByZWNlaXZlIHRoZSBnZXN0dXJlIGV2ZW50cyBjb3JyZWN0bHkuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL2dlc3R1cmUtZXZlbnRzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy9nZXN0dXJlLWV2
ZW50cy5odG1sOiBBZGRlZC4KKwogMjAxMi0wNy0yNiAgw4Fkw6FtIEthbGxhaSAgPGthZGFtQGlu
Zi51LXN6ZWdlZC5odT4KIAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLiBGaXgg
YWZ0ZXIgcjEyMzczMy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L3BsdWdpbnMvZ2VzdHVyZS1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vcGx1Z2lucy9nZXN0dXJlLWV2ZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMmZkYTQyNmIxOGNiN2Q3NzM4NzE2MzllN2MwMDQ0YWY2NjdlMWRjMgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3BsdWdpbnMvZ2VzdHVyZS1ldmVu
dHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1BsdWdpbiByZWNlaXZlZCBldmVudDog
R2VzdHVyZVRhcAorUGx1Z2luIHJlY2VpdmVkIGV2ZW50OiBNb3VzZUVudGVyCitQbHVnaW4gcmVj
ZWl2ZWQgZXZlbnQ6IE1vdXNlTW92ZQorUGx1Z2luIHJlY2VpdmVkIGV2ZW50OiBNb3VzZURvd24K
K1BsdWdpbiByZWNlaXZlZCBldmVudDogTW91c2VVcAorUGx1Z2luIHJlY2VpdmVkIGV2ZW50OiBH
ZXN0dXJlU2Nyb2xsQmVnaW4KK1BsdWdpbiByZWNlaXZlZCBldmVudDogR2VzdHVyZVNjcm9sbFVw
ZGF0ZQorUGx1Z2luIHJlY2VpdmVkIGV2ZW50OiBNb3VzZVdoZWVsCitQbHVnaW4gcmVjZWl2ZWQg
ZXZlbnQ6IEdlc3R1cmVTY3JvbGxFbmQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vcGx1Z2lucy9nZXN0dXJlLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vcGx1Z2lucy9nZXN0dXJlLWV2ZW50cy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRk
ZDJiMzY3NGUyMmJhNDU3YTA1YTc3MzRmMTFjYzQzN2RjYmJjODkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL2dlc3R1cmUtZXZlbnRzLmh0
bWwKQEAgLTAsMCArMSwzMSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyAgI3BsdWdpbiB7
CisgICAgd2lkdGg6IDE1MHB4OworICAgIGhlaWdodDogMTUwcHg7CisgIH0KKzwvc3R5bGU+Cis8
L2hlYWQ+CisKKzxib2R5PgorPGVtYmVkIGlkPSJwbHVnaW4iIHR5cGU9ImFwcGxpY2F0aW9uL3gt
d2Via2l0LXRlc3Qtd2VicGx1Z2luIiBwcmltaXRpdmU9InRyaWFuZ2xlIiBiYWNrZ3JvdW5kLWNv
bG9yPSJncmVlbiIgcHJpbWl0aXZlLWNvbG9yPSJibHVlIj48L2VtYmVkPgorPHNjcmlwdD4KKwor
ICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgZG9jdW1lbnQud3JpdGUoIlRo
aXMgdGVzdCBkb2VzIG5vdCB3b3JrIGluIG1hbnVhbCBtb2RlLiIpOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgIC8vIFNlbmQgc29tZSBn
ZXN0dXJlIGV2ZW50cyB0byB0aGUgcGx1Z2luLgorICAgICAgICB2YXIgcG9zaXRpb25YID0gcGx1
Z2luLm9mZnNldExlZnQgKyAxMDsKKyAgICAgICAgdmFyIHBvc2l0aW9uWSA9IHBsdWdpbi5vZmZz
ZXRUb3AgKyAxMDsKKyAgICAgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVRhcChwb3NpdGlvblgsIHBv
c2l0aW9uWSk7CisgICAgICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVTY3JvbGxCZWdpbihwb3NpdGlv
blgsIHBvc2l0aW9uWSk7CisgICAgICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVTY3JvbGxVcGRhdGUo
MzAsIDApOworICAgICAgICBldmVudFNlbmRlci5nZXN0dXJlU2Nyb2xsRW5kKDAsIDApOworICAg
IH0KKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>