<?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>45021</bug_id>
          
          <creation_ts>2010-09-01 00:44:03 -0700</creation_ts>
          <short_desc>[GTK] enhanced context menu for media elements</short_desc>
          <delta_ts>2014-02-25 21:31:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>39102</dependson>
    
    <dependson>45904</dependson>
          <blocked>37624</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ademar</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>272678</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-09-01 00:44:03 -0700</bug_when>
    <thetext>It&apos;d be nice to have entries for:

- copy media url to clipboard
- download media
- open in new window (?)
- controls display control
- switch to fullscreen
- loop playback control</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276396</commentid>
    <comment_count>1</comment_count>
      <attachid>67017</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-09-09 03:49:35 -0700</bug_when>
    <thetext>Created attachment 67017
proposed patch (test missing)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276434</commentid>
    <comment_count>2</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-09-09 06:40:32 -0700</bug_when>
    <thetext>The test doesn&apos;t seem very easy to write, I can send a contextClick() event on the media element but then, how do i know at which position to move the mouse to click on a specific item? :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276470</commentid>
    <comment_count>3</comment_count>
      <attachid>67035</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-09-09 08:12:51 -0700</bug_when>
    <thetext>Created attachment 67035
proposed patch (test missing)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276472</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-09 08:13:51 -0700</bug_when>
    <thetext>Attachment 67035 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/platform/gtk/ContextMenuItemGtk.cpp:108:  Use 0 instead of NULL.  [readability/null] [5]
WebCore/rendering/HitTestResult.cpp:297:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 2 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276473</commentid>
    <comment_count>5</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-09-09 08:17:34 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Attachment 67035 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
&gt; WebCore/platform/gtk/ContextMenuItemGtk.cpp:108:  Use 0 instead of NULL.  [readability/null] [5]
&gt; WebCore/rendering/HitTestResult.cpp:297:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
&gt; Total errors found: 2 in 16 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

This version sports play/pause mute/unmute too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279432</commentid>
    <comment_count>6</comment_count>
      <attachid>67650</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-09-15 00:27:05 -0700</bug_when>
    <thetext>Created attachment 67650
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279435</commentid>
    <comment_count>7</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-09-15 00:34:29 -0700</bug_when>
    <thetext>This patch is on top of the one in bug 39102 which hasn&apos;t landed yet. That&apos;s while the style-bot fails to check it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279511</commentid>
    <comment_count>8</comment_count>
      <attachid>67650</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-09-15 05:46:52 -0700</bug_when>
    <thetext>Comment on attachment 67650
proposed patch

&gt; +            function start()
&gt; +            {
&gt; +                findMediaElement();
&gt; +                waitForEvent(&apos;play&apos;, canplaythrough);
&gt; +                run(&quot;video.src = &apos;&quot; + findMediaFile(&quot;video&quot;, &quot;content/test&quot;) + &quot;&apos;&quot;);
&gt; +            }
&quot;canplaythrough&quot; is an odd name for a test that triggers on the &apos;play&apos; event ;-)

&gt; +            if (result.mediaSupportsFullscreen())
&gt; +                appendItem(EnterVideoFullscreen);
&gt; +
I wonder if it would make more sense to always append the fullcreen menu 
item for a &lt;video&gt; element and enable/disable it based on supportsFullscreen().
It will be somewhat confusing to some that the menu item isn&apos;t always enabled,
but it will also be consusing that the menu item is sometimes there and sometimes
not for the same element.

I am not positive which is the correct behavior for this menu item...


&gt; +        case ContextMenuItemTagMediaMute:
&gt; +            if (m_hitTestResult.mediaMuted())
&gt; +                item.setTitle(contextMenuItemTagMediaUnMute());
&gt; +            else
&gt; +                item.setTitle(contextMenuItemTagMediaMute());
You should disable the mute menu item and not toggle the title if the element does
not have an audio track:

    case ContextMenuItemTagMediaMute:
        shouldEnable = m_hitTestResult.mediaHasAudio();
        if (!shouldEnable || !m_hitTestResult.mediaMuted())
            item.setTitle(contextMenuItemTagMediaMute());
        else
            item.setTitle(contextMenuItemTagMediaUnMute());
        break;

&gt; +    HTMLMediaElement* mediaElt(mediaElement());
&gt; +    if (mediaElt)
&gt; +        return m_innerNonSharedNode-&gt;document()-&gt;completeURL(deprecatedParseURL(mediaElt-&gt;currentSrc()));
I think something like &quot;if (HTMLMediaElement* mediaElt = mediaElement())&quot; would be
more in keeping with the current C++ style for this type of test.

&gt; +    HTMLMediaElement* mediaElt(mediaElement());
&gt; +    if (mediaElt)
&gt; +        mediaElt-&gt;setControls(!mediaElt-&gt;controls());
Ditto.

&gt; +    HTMLMediaElement* mediaElt(mediaElement());
&gt; +    if (mediaElt)
&gt; +        mediaElt-&gt;setLoop(!mediaElt-&gt;loop());
Ditto.

&gt; +    HTMLMediaElement* mediaElt(mediaElement());
&gt; +    if (mediaElt)
&gt; +        return mediaElt-&gt;controls();
Ditto.

&gt; +    HTMLMediaElement* mediaElt(mediaElement());
&gt; +    if (mediaElt)
&gt; +        return mediaElt-&gt;loop();
Ditto.

&gt; +    HTMLMediaElement* mediaElt(mediaElement());
&gt; +    if (mediaElt)
&gt; +        return !mediaElt-&gt;paused();
Ditto.


&gt; +    HTMLMediaElement* mediaElt(mediaElement());
&gt; +    if (mediaElt)
&gt; +        mediaElt-&gt;togglePlayState();
Ditto.

&gt; +    HTMLMediaElement* mediaElt(mediaElement());
&gt; +    if (mediaElt)
&gt; +        return mediaElt-&gt;muted();
Ditto.

&gt; +    HTMLMediaElement* mediaElt(mediaElement());
&gt; +    if (mediaElt)
&gt; +        mediaElt-&gt;setMuted(!mediaElt-&gt;muted());
Ditto.

It would be nice to have a menu item for saving the movie file. HTMLMediaElement has a
supportsSave() method that should be used to enable/disable (or add/remove) the menu item
because not all movies will be savable. Please file a bug for this if you don&apos;t want to
add it to this patch.

Nice stuff, it will be great to finally have this feature!

r=me with these suggestions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279521</commentid>
    <comment_count>9</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-09-15 06:26:19 -0700</bug_when>
    <thetext>Thanks for the review Eric!

I applied the changes requested in my branch.

About the fullscreen/save menus I think it depends on the UI design guidelines of the platform.

For instance the GNOME HIG recommends to show the items but make them inactive: http://library.gnome.org/devel/hig-book/stable/menus-design.html.en#menu-item-type-command

I think this is what I&apos;ll do... On mac it would probably be different, I don&apos;t know.

I will open a separate bug report for supportsSave, this patch is already quite big.

Also I&apos;ll wait the bug 39102 gets reviewed to land this patch ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280134</commentid>
    <comment_count>10</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-09-16 09:22:32 -0700</bug_when>
    <thetext>Committed r67628: &lt;http://trac.webkit.org/changeset/67628&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280181</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-16 10:17:39 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/67628 might have broken Qt Linux Release minimal, Qt Linux ARMv5 Release, Qt Linux ARMv7 Release, Qt Windows 32-bit Release, Qt Windows 32-bit Debug, Chromium Win Release, Chromium Mac Release, and Chromium Linux Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/67626
http://trac.webkit.org/changeset/67627
http://trac.webkit.org/changeset/67628
http://trac.webkit.org/changeset/67629
http://trac.webkit.org/changeset/67630
http://trac.webkit.org/changeset/67631</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280199</commentid>
    <comment_count>12</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-09-16 10:43:58 -0700</bug_when>
    <thetext>the new ContextMenu::contextMenu* methods are not implemented in the mac, qt, chromium ports. Will send a fixed patch, sorry for the major breakage :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280566</commentid>
    <comment_count>13</comment_count>
      <attachid>67889</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-09-17 00:40:47 -0700</bug_when>
    <thetext>Created attachment 67889
updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280576</commentid>
    <comment_count>14</comment_count>
      <attachid>67892</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-09-17 02:03:24 -0700</bug_when>
    <thetext>Created attachment 67892
updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280579</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-17 02:15:32 -0700</bug_when>
    <thetext>Attachment 67892 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/platform/gtk/ContextMenuItemGtk.cpp:108:  Use 0 instead of NULL.  [readability/null] [5]
Total errors found: 1 in 36 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280581</commentid>
    <comment_count>16</comment_count>
      <attachid>67893</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-09-17 02:17:34 -0700</bug_when>
    <thetext>Created attachment 67893
updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280647</commentid>
    <comment_count>17</comment_count>
      <attachid>67893</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-09-17 08:16:29 -0700</bug_when>
    <thetext>Comment on attachment 67893
updated patch

This doesn&apos;t work on OS X and Windows because the localizable strings are missing. I will add them and update the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280649</commentid>
    <comment_count>18</comment_count>
      <attachid>67893</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-09-17 08:26:16 -0700</bug_when>
    <thetext>Comment on attachment 67893
updated patch

&gt;  WebKit/mac/WebCoreSupport/WebPlatformStrategies.h  |    9 ++
&gt;  WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm |   45 +++++++
&gt;  .../win/WebCoreSupport/WebPlatformStrategies.cpp   |   45 +++++++
&gt;  .../WebCoreSupport/WebPlatformStrategies.cpp       |   45 +++++++
&gt;  .../WebCoreSupport/WebPlatformStrategies.h         |    9 ++

So what are those? Did I miss something?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280718</commentid>
    <comment_count>19</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-09-17 10:25:03 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 67893 [details])
&gt; &gt;  WebKit/mac/WebCoreSupport/WebPlatformStrategies.h  |    9 ++
&gt; &gt;  WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm |   45 +++++++
&gt; &gt;  .../win/WebCoreSupport/WebPlatformStrategies.cpp   |   45 +++++++
&gt; &gt;  .../WebCoreSupport/WebPlatformStrategies.cpp       |   45 +++++++
&gt; &gt;  .../WebCoreSupport/WebPlatformStrategies.h         |    9 ++
&gt; 
&gt; So what are those? Did I miss something?

You didn&apos;t add the actual strings to Localizable.strings or WebLocalizableStrings.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280723</commentid>
    <comment_count>20</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-09-17 10:34:26 -0700</bug_when>
    <thetext>(In reply to comment #19)

&gt; You didn&apos;t add the actual strings to Localizable.strings or WebLocalizableStrings.cpp

No need to update WebLocalizableStrings.cpp as it doesn&apos;t exist any more ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280729</commentid>
    <comment_count>21</comment_count>
      <attachid>67917</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-09-17 10:44:58 -0700</bug_when>
    <thetext>Created attachment 67917
Patch

This adds the missing Mac strings and changes the behavior of the &quot;Mute&quot; menu item from changing the text to adding and removing a check mark.

I think the patch should use &quot;Audio&quot; or &quot;Video&quot; instead of &quot;Media&quot; (depending on the element type and movie contents) in &quot;Open Media in New Window&quot; and &quot;Copy Media Address&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281538</commentid>
    <comment_count>22</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2010-09-20 07:51:38 -0700</bug_when>
    <thetext>Just a heads up:

WebCore/platform/qt/Localizations.cpp is no more after r67787 &lt;http://trac.webkit.org/changeset/67787&gt;, so you&apos;ll have to update your patch again to update the respective platform strategies file instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281605</commentid>
    <comment_count>23</comment_count>
      <attachid>68097</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-09-20 09:33:27 -0700</bug_when>
    <thetext>Created attachment 68097
updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281623</commentid>
    <comment_count>24</comment_count>
      <attachid>68100</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-09-20 10:08:32 -0700</bug_when>
    <thetext>Created attachment 68100
updated patch probably more utf-16 friendly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281671</commentid>
    <comment_count>25</comment_count>
      <attachid>68100</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-09-20 11:07:34 -0700</bug_when>
    <thetext>Comment on attachment 68100
updated patch probably more utf-16 friendly

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282124</commentid>
    <comment_count>26</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-09-20 23:55:45 -0700</bug_when>
    <thetext>Committed r67928: &lt;http://trac.webkit.org/changeset/67928&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984623</commentid>
    <comment_count>27</comment_count>
      <attachid>68097</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-02-25 21:31:57 -0800</bug_when>
    <thetext>Comment on attachment 68097
updated patch

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

&gt; WebCore/rendering/HitTestResult.h:97
&gt; +    void toggleMediaControlsDisplay() const;
&gt; +    void toggleMediaLoopPlayback() const;
&gt; +    void enterFullscreenForVideo() const;
&gt; +    bool mediaControlsEnabled() const;
&gt; +    bool mediaLoopEnabled() const;
&gt; +    bool mediaPlaying() const;
&gt; +    bool mediaSupportsFullscreen() const;
&gt; +    void toggleMediaPlayState() const;
&gt; +    bool mediaHasAudio() const;
&gt; +    bool mediaIsVideo() const;
&gt; +    bool mediaMuted() const;
&gt; +    void toggleMediaMuteState() const;

This stuff doesn&apos;t belong on rendering/HitTestResult.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67017</attachid>
            <date>2010-09-09 03:49:35 -0700</date>
            <delta_ts>2010-09-09 08:12:51 -0700</delta_ts>
            <desc>proposed patch (test missing)</desc>
            <filename>proposed-patch-test-missing.patch</filename>
            <type>text/plain</type>
            <size>27692</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA0YjU3Y2E1OGI3ZDhjZjY4ZWYwYmM2NGJjNzM4NGI1MDk0NDBlZDc0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUaHUsIDkgU2VwIDIwMTAgMDk6MzY6MDUgKzAyMDAKU3ViamVjdDogW1BBVENIXSBw
cm9wb3NlZCBwYXRjaCAodGVzdCBtaXNzaW5nKQoKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNzcgKysrKysrKysrKysrKysrKysKIFdl
YkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwICAgICAgICAgICAgIHwgICAxNiAr
KysrCiBXZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmNwcCAgICAgICAgICAgICAgICAgICB8
ICAgNDAgKysrKysrKy0tCiBXZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oICAgICAg
ICAgICAgICAgICB8ICAgIDYgKysKIFdlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRl
Z3kuaCAgICAgICAgICAgIHwgICAgNiArKwogV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJp
bmdzLmNwcCAgICAgICAgICAgICAgfCAgIDI2ICsrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9Mb2Nh
bGl6ZWRTdHJpbmdzLmggICAgICAgICAgICAgICAgfCAgICA2ICsrCiAuLi4vcGxhdGZvcm0vYW5k
cm9pZC9Mb2NhbGl6ZWRTdHJpbmdzQW5kcm9pZC5jcHAgICB8ICAgMzAgKysrKysrKwogV2ViQ29y
ZS9wbGF0Zm9ybS9icmV3L0xvY2FsaXplZFN0cmluZ3NCcmV3LmNwcCAgICAgfCAgIDI1ICsrKysr
KwogV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5jcHAgICAgICAgfCAg
IDI1ICsrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29udGV4dE1lbnVJdGVtR3RrLmNwcCAg
ICAgICAgfCAgICA5ICsrCiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3Rr
LmNwcCAgICAgICB8ICAgMjYgKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvY2FsaXpl
ZFN0cmluZ3NIYWlrdS5jcHAgICB8ICAgMjUgKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL3d4L0xv
Y2FsaXplZFN0cmluZ3NXeC5jcHAgICAgICAgICB8ICAgMjUgKysrKysrCiBXZWJDb3JlL3JlbmRl
cmluZy9IaXRUZXN0UmVzdWx0LmNwcCAgICAgICAgICAgICAgICB8ICAgODkgKysrKysrKysrKysr
KysrKystLS0KIFdlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaCAgICAgICAgICAgICAg
ICAgIHwgICAxMyArKysKIDE2IGZpbGVzIGNoYW5nZWQsIDQyNiBpbnNlcnRpb25zKCspLCAxOCBk
ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDZmYTM2MzIuLjJhYzM2NWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODAgQEAKKzIwMTAtMDktMDkg
IFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIGVuaGFuY2VkIGNvbnRleHQg
bWVudSBmb3IgbWVkaWEgZWxlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ1MDIxCisKKyAgICAgICAgTmV3IGl0ZW1zIGluIHRoZSBtZWRpYSBF
bGVtZW50IGNvbnRleHQgbWVudToKKyAgICAgICAgLSBjb3B5IG1lZGlhIHVybCB0byBjbGlwYm9h
cmQKKyAgICAgICAgLSBvcGVuIGluIG5ldyB3aW5kb3cKKyAgICAgICAgLSBjb250cm9scyBkaXNw
bGF5IGNvbnRyb2wKKyAgICAgICAgLSBzd2l0Y2ggdG8gZnVsbHNjcmVlbiAoZm9yIHZpZGVvIG9u
bHkpCisgICAgICAgIC0gbG9vcCBwbGF5YmFjayBjb250cm9sCisKKyAgICAgICAgKiBwYWdlL0Nv
bnRleHRNZW51Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNv
bnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9D
b250ZXh0TWVudS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudTo6cG9wdWxhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnU6OmNoZWNrT3JFbmFibGVJZk5lZWRlZCk6
CisgICAgICAgICogcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmg6CisgICAgICAgICogcGxhdGZv
cm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRT
dHJpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRp
YUluTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlN
ZWRpYUxpbmtUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1U
YWdUb2dnbGVNZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ1RvZ2dsZU1lZGlhTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1U
YWdFbnRlclZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3Ry
aW5ncy5oOgorICAgICAgICAqIHBsYXRmb3JtL2FuZHJvaWQvTG9jYWxpemVkU3RyaW5nc0FuZHJv
aWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5O
ZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlh
TGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Rv
Z2dsZU1lZGlhQ29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFn
VG9nZ2xlTWVkaWFMb29wKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Vu
dGVyVmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9icmV3L0xvY2FsaXplZFN0
cmluZ3NCcmV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5N
ZWRpYUluTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Nv
cHlNZWRpYUxpbmtUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgICogcGxhdGZvcm0vZWZsL0xvY2Fs
aXplZFN0cmluZ3NFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFn
T3Blbk1lZGlhSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsv
Q29udGV4dE1lbnVJdGVtR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omd0a1N0b2NrSURGcm9t
Q29udGV4dE1lbnVBY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJp
bmdzR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRp
YUluTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlN
ZWRpYUxpbmtUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1U
YWdUb2dnbGVNZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ1RvZ2dsZU1lZGlhTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1U
YWdFbnRlclZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgICogcGxhdGZvcm0vaGFpa3UvTG9jYWxp
emVkU3RyaW5nc0hhaWt1LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z09wZW5NZWRpYUluTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgICogcGxhdGZvcm0vd3gv
TG9jYWxpemVkU3RyaW5nc1d4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ09wZW5NZWRpYUluTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgICogcmVuZGVyaW5n
L0hpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6YWJz
b2x1dGVNZWRpYVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0Ojppc1ZpZGVv
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjptZWRpYUVsZW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6dG9nZ2xlTWVkaWFDb250cm9sc0Rp
c3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6dG9nZ2xlTWVkaWFMb29w
UGxheWJhY2spOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6ZW50ZXJGdWxsc2Ny
ZWVuRm9yVmlkZW8pOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6bWVkaWFDb250
cm9sc0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6bWVkaWFMb29w
RW5hYmxlZCk6CisgICAgICAgICogcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaDoKKwogMjAxMC0w
OS0wOCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBUb255IENoYW5nLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29u
dHJvbGxlci5jcHAgYi9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAppbmRl
eCBkMzg0YjAyLi42YWZhODRlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVD
b250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNw
cApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBT
LkwKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTg2LDYgKzE4NywyMSBAQCB2
b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4
dE1lbnVJdGVtKiBpdGVtKQogICAgICAgICAvLyBGb3Igbm93LCBjYWxsIGludG8gdGhlIGNsaWVu
dC4gVGhpcyBpcyB0ZW1wb3JhcnkhCiAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS0+Y29weUltYWdl
KHJlc3VsdCk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnT3Bl
bk1lZGlhSW5OZXdXaW5kb3c6CisgICAgICAgIG9wZW5OZXdXaW5kb3cocmVzdWx0LmFic29sdXRl
TWVkaWFVUkwoKSwgZnJhbWUpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbnRleHRNZW51
SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZDoKKyAgICAgICAgZnJhbWUtPmVkaXRvcigp
LT5jb3B5VVJMKHJlc3VsdC5hYnNvbHV0ZU1lZGlhVVJMKCksIHJlc3VsdC50ZXh0Q29udGVudCgp
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRp
YUNvbnRyb2xzOgorICAgICAgICByZXN1bHQudG9nZ2xlTWVkaWFDb250cm9sc0Rpc3BsYXkoKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxv
b3A6CisgICAgICAgIHJlc3VsdC50b2dnbGVNZWRpYUxvb3BQbGF5YmFjaygpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuOgor
ICAgICAgICByZXN1bHQuZW50ZXJGdWxsc2NyZWVuRm9yVmlkZW8oKTsKKyAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdzogewogICAg
ICAgICBEb2N1bWVudExvYWRlciogbG9hZGVyID0gZnJhbWUtPmxvYWRlcigpLT5kb2N1bWVudExv
YWRlcigpOwogICAgICAgICBpZiAoIWxvYWRlci0+dW5yZWFjaGFibGVVUkwoKS5pc0VtcHR5KCkp
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vQ29udGV4dE1lbnUuY3BwCmluZGV4IDM3ZDRjMmIuLjc2MzM1NDUgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnUuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vQ29udGV4dE1lbnUuY3BwCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDggQ2hyaXN0aWFuIER5d2FuIDxjaHJpc3RpYW5AaW1lbmRpby5jb20+CisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTAogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0yODIsNiArMjgzLDE2IEBAIHZvaWQgQ29udGV4dE1lbnU6OnBvcHVsYXRlKCkKICAgICAg
ICAgY29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzaygpKTsKICAgICBDb250ZXh0
TWVudUl0ZW0gQ29weUltYWdlSXRlbShBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdDb3B5
SW1hZ2VUb0NsaXBib2FyZCwgCiAgICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRv
Q2xpcGJvYXJkKCkpOworICAgIENvbnRleHRNZW51SXRlbSBPcGVuTWVkaWFJbk5ld1dpbmRvd0l0
ZW0oQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3csIAor
ICAgICAgICBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdygpKTsKKyAgICBD
b250ZXh0TWVudUl0ZW0gQ29weU1lZGlhTGlua0l0ZW0oQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJ
dGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkLCAKKyAgICAgICAgY29udGV4dE1lbnVJdGVt
VGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKCkpOworICAgIENvbnRleHRNZW51SXRlbSBUb2dn
bGVNZWRpYUNvbnRyb2xzKENoZWNrYWJsZUFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ1Rv
Z2dsZU1lZGlhQ29udHJvbHMsIAorICAgICAgICBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRp
YUNvbnRyb2xzKCkpOworICAgIENvbnRleHRNZW51SXRlbSBUb2dnbGVNZWRpYUxvb3AoQ2hlY2th
YmxlQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wLCAKKyAgICAg
ICAgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkpOworICAgIENvbnRleHRNZW51
SXRlbSBFbnRlclZpZGVvRnVsbHNjcmVlbihBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdF
bnRlclZpZGVvRnVsbHNjcmVlbiwgCisgICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlk
ZW9GdWxsc2NyZWVuKCkpOwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBDb250ZXh0TWVudUl0ZW0g
U2VhcmNoU3BvdGxpZ2h0SXRlbShBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hJ
blNwb3RsaWdodCwgCiAgICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaEluU3BvdGxpZ2h0
KCkpOwpAQCAtMzQ5LDYgKzM2MCwxOSBAQCB2b2lkIENvbnRleHRNZW51Ojpwb3B1bGF0ZSgpCiAg
ICAgICAgICAgICAgICAgYXBwZW5kSXRlbShDb3B5SW1hZ2VJdGVtKTsKICAgICAgICAgfQogCisg
ICAgICAgIEtVUkwgbWVkaWFVUkwgPSByZXN1bHQuYWJzb2x1dGVNZWRpYVVSTCgpOworICAgICAg
ICBpZiAoIW1lZGlhVVJMLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgaWYgKCFsaW5rVVJMLmlz
RW1wdHkoKSB8fCAhaW1hZ2VVUkwuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGFwcGVuZEl0
ZW0oKnNlcGFyYXRvckl0ZW0oKSk7CisKKyAgICAgICAgICAgIGFwcGVuZEl0ZW0oT3Blbk1lZGlh
SW5OZXdXaW5kb3dJdGVtKTsKKyAgICAgICAgICAgIGFwcGVuZEl0ZW0oQ29weU1lZGlhTGlua0l0
ZW0pOworICAgICAgICAgICAgYXBwZW5kSXRlbShUb2dnbGVNZWRpYUNvbnRyb2xzKTsKKyAgICAg
ICAgICAgIGFwcGVuZEl0ZW0oVG9nZ2xlTWVkaWFMb29wKTsKKyAgICAgICAgICAgIGlmIChyZXN1
bHQuaXNWaWRlb0VsZW1lbnQoKSkKKyAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKEVudGVyVmlk
ZW9GdWxsc2NyZWVuKTsKKyAgICAgICAgfQorCiAgICAgICAgIGlmIChpbWFnZVVSTC5pc0VtcHR5
KCkgJiYgbGlua1VSTC5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIGlmIChyZXN1bHQuaXNTZWxl
Y3RlZCgpKSB7CiAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdGlvbkNvbnRhaW5zUG9zc2libGVX
b3JkKGZyYW1lKSkgewpAQCAtMzc1LDEyICszOTksNiBAQCB2b2lkIENvbnRleHRNZW51Ojpwb3B1
bGF0ZSgpCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAgICAgICAgICAgICBpZiAoIShmcmFt
ZS0+cGFnZSgpICYmIGZyYW1lLT5wYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+aGFzSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnQoKSkpIHsKICNlbmRpZgotI2lmIFBMQVRGT1JNKEdUSykKLSAg
ICAgICAgICAgICAgICBhcHBlbmRJdGVtKEJhY2tJdGVtKTsKLSAgICAgICAgICAgICAgICBhcHBl
bmRJdGVtKEZvcndhcmRJdGVtKTsKLSAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKFN0b3BJdGVt
KTsKLSAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKFJlbG9hZEl0ZW0pOwotI2Vsc2UKICAgICAg
ICAgICAgICAgICBpZiAoZnJhbWUtPnBhZ2UoKSAmJiBmcmFtZS0+cGFnZSgpLT5jYW5Hb0JhY2tP
ckZvcndhcmQoLTEpKQogICAgICAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKEJhY2tJdGVtKTsK
IApAQCAtMzkzLDcgKzQxMSw2IEBAIHZvaWQgQ29udGV4dE1lbnU6OnBvcHVsYXRlKCkKICAgICAg
ICAgICAgICAgICAgICAgYXBwZW5kSXRlbShTdG9wSXRlbSk7CiAgICAgICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKFJlbG9hZEl0ZW0pOwotI2VuZGlmCiAj
aWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAgICAgICAgICAgICB9CiAjZW5kaWYKQEAgLTc4OCw2
ICs4MDUsMTUgQEAgdm9pZCBDb250ZXh0TWVudTo6Y2hlY2tPckVuYWJsZUlmTmVlZGVkKENvbnRl
eHRNZW51SXRlbSYgaXRlbSkgY29uc3QKICAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdP
cGVuSW1hZ2VJbk5ld1dpbmRvdzoKICAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdEb3du
bG9hZEltYWdlVG9EaXNrOgogICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFn
ZVRvQ2xpcGJvYXJkOgorICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUlu
TmV3V2luZG93OgorICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtU
b0NsaXBib2FyZDoKKyAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNv
bnRyb2xzOgorICAgICAgICAgICAgc2hvdWxkQ2hlY2sgPSBtX2hpdFRlc3RSZXN1bHQubWVkaWFD
b250cm9sc0VuYWJsZWQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENvbnRl
eHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcDoKKyAgICAgICAgICAgIHNob3VsZENoZWNrID0g
bV9oaXRUZXN0UmVzdWx0Lm1lZGlhTG9vcEVuYWJsZWQoKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuOgogICAg
ICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93OgogICAgICAg
ICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nR3Vlc3M6CiAgICAgICAgIGNhc2UgQ29u
dGV4dE1lbnVJdGVtVGFnT3RoZXI6CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRl
eHRNZW51SXRlbS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaAppbmRleCAw
NThmNjQ0Li5lYjQwYjAxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51
SXRlbS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKQEAgLTEsNSAr
MSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwKICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTQzLDYgKzE0NCwxMSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIENvbnRleHRNZW51SXRlbVRhZ0NhcGl0YWxpemUsCiAgICAg
ICAgIENvbnRleHRNZW51SXRlbVRhZ0NoYW5nZUJhY2ssCiAjZW5kaWYKKyAgICAgICAgQ29udGV4
dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3csCisgICAgICAgIENvbnRleHRNZW51SXRl
bVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCwKKyAgICAgICAgQ29udGV4dE1lbnVJdGVtVGFn
VG9nZ2xlTWVkaWFDb250cm9scywKKyAgICAgICAgQ29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVk
aWFMb29wLAorICAgICAgICBDb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbiwK
ICAgICAgICAgQ29udGV4dE1lbnVJdGVtQmFzZUN1c3RvbVRhZyA9IDUwMDAsCiAgICAgICAgIENv
bnRleHRNZW51SXRlbUN1c3RvbVRhZ05vQWN0aW9uID0gNTk5OCwKICAgICAgICAgQ29udGV4dE1l
bnVJdGVtTGFzdEN1c3RvbVRhZyA9IDU5OTksCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L0xvY2FsaXphdGlvblN0cmF0ZWd5LmggYi9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXphdGlvblN0
cmF0ZWd5LmgKaW5kZXggMTc4Y2ZhMi4uMTVmZWVmMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9Mb2NhbGl6YXRpb25TdHJhdGVneS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxp
emF0aW9uU3RyYXRlZ3kuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEw
IElnYWxpYSBTLkwKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTEyLDYgKzEx
MywxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2Fw
aXRhbGl6ZSgpID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGFu
Z2VCYWNrKGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcpID0gMDsKICNlbmRpZgorICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KCkgPSAw
OworICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0Ns
aXBib2FyZCgpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dn
bGVNZWRpYUNvbnRyb2xzKCkgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1RvZ2dsZU1lZGlhTG9vcCgpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgpID0gMDsKICNlbmRpZiAvLyBFTkFCTEUo
Q09OVEVYVF9NRU5VUykKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRT
dHJpbmdzLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXgg
YTY5ZTBmYi4uMmJmODM1MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRT
dHJpbmdzLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCkBA
IC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwOSwgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
SWdhbGlhIFMuTAogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNjIsNiArMzYz
LDMxIEBAIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGFuZ2VCYWNrKGNvbnN0IFN0cmluZyYg
cmVwbGFjZWRTdHJpbmcpCiB9CiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCisKK1N0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuIHBs
YXRmb3JtU3RyYXRlZ2llcygpLT5sb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0
ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdygpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4gcGxhdGZvcm1TdHJh
dGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0NvcHlN
ZWRpYUxpbmtUb0NsaXBib2FyZCgpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9n
Z2xlTWVkaWFDb250cm9scygpCit7CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5s
b2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRy
b2xzKCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKQor
eworICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3ko
KS0+Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCk7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpCit7CisgICAgcmV0dXJuIHBsYXRm
b3JtU3RyYXRlZ2llcygpLT5sb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1U
YWdFbnRlclZpZGVvRnVsbHNjcmVlbigpOworfQogICAgIAogU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0luc3BlY3RFbGVtZW50KCkKIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vTG9j
YWxpemVkU3RyaW5ncy5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKaW5k
ZXggMDQwNDJiNi4uZDkwZDBjOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6
ZWRTdHJpbmdzLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKQEAg
LTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA5IEFwcGxl
IENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEwIElnYWxpYSBTLkwKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTA4LDYg
KzEwOSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0NhcGl0YWxpemUoKTsKICAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hhbmdlQmFj
ayhjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nKTsKICNlbmRpZgorICAgIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdygpOworICAgIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQoKTsKKyAgICBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpOworICAgIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKTsKKyAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
RW50ZXJWaWRlb0Z1bGxzY3JlZW4oKTsKICAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5z
cGVjdEVsZW1lbnQoKTsKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL0xvY2FsaXplZFN0cmluZ3NBbmRyb2lkLmNw
cCBiL1dlYkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9Mb2NhbGl6ZWRTdHJpbmdzQW5kcm9pZC5jcHAK
aW5kZXggMmZjODgwYi4uYzA0ZTlkYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9hbmRy
b2lkL0xvY2FsaXplZFN0cmluZ3NBbmRyb2lkLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Fu
ZHJvaWQvTG9jYWxpemVkU3RyaW5nc0FuZHJvaWQuY3BwCkBAIC04MSw2ICs4MSwzNiBAQCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKQogICAgIHJldHVybiBT
dHJpbmcoKTsKIH0KIAorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2lu
ZG93KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30K
KworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCgpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVv
RnVsbHNjcmVlbigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5n
KCk7Cit9CisKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygp
CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
YnJldy9Mb2NhbGl6ZWRTdHJpbmdzQnJldy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvTG9j
YWxpemVkU3RyaW5nc0JyZXcuY3BwCmluZGV4IDFiYzU5ODUuLjA4MzM0OGUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vYnJldy9Mb2NhbGl6ZWRTdHJpbmdzQnJldy5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9icmV3L0xvY2FsaXplZFN0cmluZ3NCcmV3LmNwcApAQCAtOTYsNiArOTYs
MzEgQEAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkKICAg
ICByZXR1cm4gIkNvcHkgaW1hZ2UgdG8gY2xpcGJvYXJkIjsKIH0KIAorU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gIk9wZW4gTWVk
aWEgaW4gTmV3IFdpbmRvdyI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVk
aWFMaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiAiQ29weSBNZWRpYSBMaW5rIExvY2F0
aW9uIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMo
KQoreworICAgIHJldHVybiAiVG9nZ2xlIE1lZGlhIENvbnRyb2xzIjsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCit7CisgICAgcmV0dXJuICJUb2dnbGUg
TWVkaWEgTG9vcCBQbGF5YmFjayI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRl
clZpZGVvRnVsbHNjcmVlbigpCit7CisgICAgcmV0dXJuICJTd2l0Y2ggVmlkZW8gdG8gRnVsbHNj
cmVlbiI7Cit9CisKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRv
dygpCiB7CiAgICAgcmV0dXJuICJPcGVuIGZyYW1lIGluIG5ldyB3aW5kb3ciOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcAppbmRleCA2MDIzMjA1Li4wZWZi
YTRhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZs
LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcApA
QCAtOTgsNiArOTgsMzEgQEAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xp
cGJvYXJkKCkKICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiQ29weSBJbWFnZSIpOwogfQog
CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3coKQoreworICAg
IHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJPcGVuIE1lZGlhIGluIE5ldyBXaW5kb3ciKTsKK30K
KworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCgpCit7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIkNvcHkgTWVkaWEgTGluayBMb2NhdGlvbiIp
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpCit7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIlRvZ2dsZSBNZWRpYSBDb250cm9scyIpOwor
fQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkKK3sKKyAgICBy
ZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiVG9nZ2xlIE1lZGlhIExvb3AgUGxheWJhY2siKTsKK30K
KworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCkKK3sKKyAg
ICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiU3dpdGNoIFZpZGVvIHRvIF9GdWxsc2NyZWVuIik7
Cit9CisKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpCiB7
CiAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIk9wZW4gRnJhbWUgaW4gTmV3IFdpbmRvdyIp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29udGV4dE1lbnVJdGVtR3RrLmNw
cCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0NvbnRleHRNZW51SXRlbUd0ay5jcHAKaW5kZXggZTJj
NWI4NC4uYmQyNWE0YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29udGV4dE1l
bnVJdGVtR3RrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Db250ZXh0TWVudUl0ZW1H
dGsuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2Vy
IEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTAog
ICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMzMsMTEgKzM0LDEzIEBAIHN0YXRpYyBjb25zdCBjaGFy
KiBndGtTdG9ja0lERnJvbUNvbnRleHRNZW51QWN0aW9uKGNvbnN0IENvbnRleHRNZW51QWN0aW9u
JiBhY3RpCiAgICAgc3dpdGNoIChhY3Rpb24pIHsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRh
Z0NvcHlMaW5rVG9DbGlwYm9hcmQ6CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1h
Z2VUb0NsaXBib2FyZDoKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtU
b0NsaXBib2FyZDoKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHk6CiAgICAgICAgIHJl
dHVybiBHVEtfU1RPQ0tfQ09QWTsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5r
SW5OZXdXaW5kb3c6CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dp
bmRvdzoKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93Ogor
ICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3c6CiAgICAgICAg
IHJldHVybiBHVEtfU1RPQ0tfT1BFTjsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0Rvd25s
b2FkTGlua1RvRGlzazoKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VU
b0Rpc2s6CkBAIC05OSw2ICsxMDIsMTIgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGd0a1N0b2NrSURG
cm9tQ29udGV4dE1lbnVBY3Rpb24oY29uc3QgQ29udGV4dE1lbnVBY3Rpb24mIGFjdGkKICAgICAg
ICAgcmV0dXJuIEdUS19TVE9DS19VTkRFUkxJTkU7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1U
YWdTaG93Q29sb3JzOgogICAgICAgICByZXR1cm4gR1RLX1NUT0NLX1NFTEVDVF9DT0xPUjsKKyAg
ICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHM6CisgICAgY2FzZSBD
b250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3A6CisgICAgICAgIC8vIE5vIGljb24gZm9y
IHRoaXMuCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFn
RW50ZXJWaWRlb0Z1bGxzY3JlZW46CisgICAgICAgIHJldHVybiBHVEtfU1RPQ0tfRlVMTFNDUkVF
TjsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwCmluZGV4IDQzMmM5MmYuLjU2NjY0
ZGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsu
Y3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwCkBA
IC00LDYgKzQsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZy
ZXl0aGVyCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ2hyaXN0aWFuIER5d2FuIDxjaHJpc3RpYW5A
aW1lbmRpby5jb20+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTnVhbnRpIEx0ZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTExMCw2ICsxMTEsMzEgQEAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRv
Q2xpcGJvYXJkKCkKICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJDb3BfeSBJbWFnZSIp
KTsKIH0KIAorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KCkK
K3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJPcGVuIF9NZWRpYSBpbiBOZXcgV2lu
ZG93IikpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xp
cGJvYXJkKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJDb3BfeSBNZWRpYSBM
aW5rIExvY2F0aW9uIikpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVk
aWFDb250cm9scygpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiX1RvZ2dsZSBN
ZWRpYSBDb250cm9scyIpKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1l
ZGlhTG9vcCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiVG9nZ2xlIE1lZGlh
IF9Mb29wIFBsYXliYWNrIikpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJW
aWRlb0Z1bGxzY3JlZW4oKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8oIlN3aXRj
aCBWaWRlbyB0byBfRnVsbHNjcmVlbiIpKTsKK30KKwogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z09wZW5GcmFtZUluTmV3V2luZG93KCkKIHsKICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChf
KCJPcGVuIF9GcmFtZSBpbiBOZXcgV2luZG93IikpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9oYWlrdS9Mb2NhbGl6ZWRTdHJpbmdzSGFpa3UuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9o
YWlrdS9Mb2NhbGl6ZWRTdHJpbmdzSGFpa3UuY3BwCmluZGV4IDUzMjE3OTIuLjE4MDE1YWYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvTG9jYWxpemVkU3RyaW5nc0hhaWt1LmNw
cAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0cmluZ3NIYWlrdS5jcHAK
QEAgLTk4LDYgKzk4LDMxIEBAIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0Ns
aXBib2FyZCgpCiAgICAgcmV0dXJuICJDb3B5IGltYWdlIHRvIGNsaXBib2FyZCI7CiB9CiAKK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdygpCit7CisgICAgcmV0
dXJuICJPcGVuIE1lZGlhIGluIE5ldyBXaW5kb3ciOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4gIkNvcHkgTWVk
aWEgTGluayBMb2NhdGlvbiI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVN
ZWRpYUNvbnRyb2xzKCkKK3sKKyAgICByZXR1cm4gIlRvZ2dsZSBNZWRpYSBDb250cm9scyI7Cit9
CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKQoreworICAgIHJl
dHVybiAiVG9nZ2xlIE1lZGlhIExvb3AgUGxheWJhY2siOworfQorCitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKQoreworICAgIHJldHVybiAiU3dpdGNoIFZp
ZGVvIHRvIEZ1bGxzY3JlZW4iOworfQorCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkZy
YW1lSW5OZXdXaW5kb3coKQogewogICAgIHJldHVybiAiT3BlbiBmcmFtZSBpbiBuZXcgd2luZG93
IjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNw
cCBiL1dlYkNvcmUvcGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNwcAppbmRleCA0MTEy
ZjY0Li5jYmJmZmUxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3d4L0xvY2FsaXplZFN0
cmluZ3NXeC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS93eC9Mb2NhbGl6ZWRTdHJpbmdzV3gu
Y3BwCkBAIC05Nyw2ICs5NywzMSBAQCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdl
VG9DbGlwYm9hcmQoKQogICAgIHJldHVybiBTdHJpbmcoIkNvcHkgSW1hZ2UgdG8gQ2xpcGJvYXJk
Iik7IAogfQogCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3co
KQoreworICAgIHJldHVybiBTdHJpbmcoIk9wZW4gTWVkaWEgaW4gTmV3IFdpbmRvdyIpOworfQor
CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKCkKK3sK
KyAgICByZXR1cm4gU3RyaW5nKCJDb3B5IE1lZGlhIExpbmsgTG9jYXRpb24iKTsKK30KKworU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKQoreworICAgIHJldHVy
biBTdHJpbmcoIlRvZ2dsZSBNZWRpYSBDb250cm9scyIpOworfQorCitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJUb2dnbGUg
TWVkaWEgTG9vcCBQbGF5YmFjayIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRW50
ZXJWaWRlb0Z1bGxzY3JlZW4oKQoreworICAgIHJldHVybiBTdHJpbmcoIlN3aXRjaCBWaWRlbyB0
byBGdWxsc2NyZWVuIik7Cit9CisKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJ
bk5ld1dpbmRvdygpIAogeyAKICAgICByZXR1cm4gU3RyaW5nKCJPcGVuIEZyYW1lIGluIE5ldyBX
aW5kb3ciKTsgCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNw
cCBiL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCmluZGV4IDQ5NmM0YmEuLjNm
ZjZlOGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCisr
KyBiL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCkBAIC0yNCw2ICsyNCw3IEBA
CiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJI
VE1MQW5jaG9yRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxWaWRlb0VsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKQEAgLTI5MiwyNSArMjkzLDkxIEBAIEtVUkwg
SGl0VGVzdFJlc3VsdDo6YWJzb2x1dGVJbWFnZVVSTCgpIGNvbnN0CiBLVVJMIEhpdFRlc3RSZXN1
bHQ6OmFic29sdXRlTWVkaWFVUkwoKSBjb25zdAogewogI2lmIEVOQUJMRShWSURFTykKLSAgICBp
ZiAoIShtX2lubmVyTm9uU2hhcmVkTm9kZSAmJiBtX2lubmVyTm9uU2hhcmVkTm9kZS0+ZG9jdW1l
bnQoKSkpCisgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbHQobWVkaWFFbGVtZW50KCkpOwor
ICAgIGlmIChtZWRpYUVsdCkKKyAgICAgICAgcmV0dXJuIG1faW5uZXJOb25TaGFyZWROb2RlLT5k
b2N1bWVudCgpLT5jb21wbGV0ZVVSTChkZXByZWNhdGVkUGFyc2VVUkwobWVkaWFFbHQtPmN1cnJl
bnRTcmMoKSkpOworICAgIGVsc2UKICAgICAgICAgcmV0dXJuIEtVUkwoKTsKKyNlbHNlCisgICAg
cmV0dXJuIEtVUkwoKTsKKyNlbmRpZgorfQorCitib29sIEhpdFRlc3RSZXN1bHQ6OmlzVmlkZW9F
bGVtZW50KCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgSFRNTE1lZGlhRWxlbWVu
dCogbWVkaWFFbHQobWVkaWFFbGVtZW50KCkpOworICAgIHJldHVybiAobWVkaWFFbHQgJiYgbWVk
aWFFbHQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykpOworI2Vsc2UKKyAgICByZXR1
cm4gZmFsc2U7CisjZW5kaWYKK30KKworI2lmIEVOQUJMRShWSURFTykKK0hUTUxNZWRpYUVsZW1l
bnQqIEhpdFRlc3RSZXN1bHQ6Om1lZGlhRWxlbWVudCgpIGNvbnN0Cit7CisgICAgaWYgKCEobV9p
bm5lck5vblNoYXJlZE5vZGUgJiYgbV9pbm5lck5vblNoYXJlZE5vZGUtPmRvY3VtZW50KCkpKQor
ICAgICAgICByZXR1cm4gMDsKIAogICAgIGlmICghKG1faW5uZXJOb25TaGFyZWROb2RlLT5yZW5k
ZXJlcigpICYmIG1faW5uZXJOb25TaGFyZWROb2RlLT5yZW5kZXJlcigpLT5pc01lZGlhKCkpKQot
ICAgICAgICByZXR1cm4gS1VSTCgpOworICAgICAgICByZXR1cm4gMDsKIAotICAgIEF0b21pY1N0
cmluZyB1cmxTdHJpbmc7Ci0gICAgaWYgKG1faW5uZXJOb25TaGFyZWROb2RlLT5oYXNUYWdOYW1l
KEhUTUxOYW1lczo6dmlkZW9UYWcpIHx8IG1faW5uZXJOb25TaGFyZWROb2RlLT5oYXNUYWdOYW1l
KEhUTUxOYW1lczo6YXVkaW9UYWcpKSB7Ci0gICAgICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlh
RWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxNZWRpYUVsZW1lbnQqPihtX2lubmVyTm9uU2hhcmVk
Tm9kZS5nZXQoKSk7Ci0gICAgICAgIHVybFN0cmluZyA9IG1lZGlhRWxlbWVudC0+Y3VycmVudFNy
YygpOwotICAgIH0gZWxzZQotICAgICAgICByZXR1cm4gS1VSTCgpOworICAgIGlmIChtX2lubmVy
Tm9uU2hhcmVkTm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKSB8fCBtX2lubmVy
Tm9uU2hhcmVkTm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmF1ZGlvVGFnKSkKKyAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PEhUTUxNZWRpYUVsZW1lbnQqPihtX2lubmVyTm9uU2hhcmVkTm9k
ZS5nZXQoKSk7CisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYKIAotICAgIHJldHVybiBtX2lubmVy
Tm9uU2hhcmVkTm9kZS0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoZGVwcmVjYXRlZFBhcnNlVVJM
KHVybFN0cmluZykpOwotI2Vsc2UKLSAgICByZXR1cm4gS1VSTCgpOwordm9pZCBIaXRUZXN0UmVz
dWx0Ojp0b2dnbGVNZWRpYUNvbnRyb2xzRGlzcGxheSgpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFZJ
REVPKQorICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWx0KG1lZGlhRWxlbWVudCgpKTsKKyAg
ICBpZiAobWVkaWFFbHQpCisgICAgICAgIG1lZGlhRWx0LT5zZXRDb250cm9scyghbWVkaWFFbHQt
PmNvbnRyb2xzKCkpOworI2VuZGlmCit9CisKK3ZvaWQgSGl0VGVzdFJlc3VsdDo6dG9nZ2xlTWVk
aWFMb29wUGxheWJhY2soKSBjb25zdAoreworI2lmIEVOQUJMRShWSURFTykKKyAgICBIVE1MTWVk
aWFFbGVtZW50KiBtZWRpYUVsdChtZWRpYUVsZW1lbnQoKSk7CisgICAgaWYgKG1lZGlhRWx0KQor
ICAgICAgICBtZWRpYUVsdC0+c2V0TG9vcCghbWVkaWFFbHQtPmxvb3AoKSk7CiAjZW5kaWYKIH0K
IAordm9pZCBIaXRUZXN0UmVzdWx0OjplbnRlckZ1bGxzY3JlZW5Gb3JWaWRlbygpIGNvbnN0Cit7
CisjaWYgRU5BQkxFKFZJREVPKQorICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWx0KG1lZGlh
RWxlbWVudCgpKTsKKyAgICBpZiAobWVkaWFFbHQgJiYgbWVkaWFFbHQtPmhhc1RhZ05hbWUoSFRN
TE5hbWVzOjp2aWRlb1RhZykpIHsKKyAgICAgICAgSFRNTFZpZGVvRWxlbWVudCogdmlkZW9FbHQg
PSBzdGF0aWNfY2FzdDxIVE1MVmlkZW9FbGVtZW50Kj4obWVkaWFFbHQpOworICAgICAgICBpZiAo
IXZpZGVvRWx0LT5pc0Z1bGxzY3JlZW4oKSAmJiBtZWRpYUVsdC0+c3VwcG9ydHNGdWxsc2NyZWVu
KCkpCisgICAgICAgICAgICB2aWRlb0VsdC0+ZW50ZXJGdWxsc2NyZWVuKCk7CisgICAgfQorI2Vu
ZGlmCit9CisKK2Jvb2wgSGl0VGVzdFJlc3VsdDo6bWVkaWFDb250cm9sc0VuYWJsZWQoKSBjb25z
dAoreworI2lmIEVOQUJMRShWSURFTykKKyAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsdCht
ZWRpYUVsZW1lbnQoKSk7CisgICAgaWYgKG1lZGlhRWx0KQorICAgICAgICByZXR1cm4gbWVkaWFF
bHQtPmNvbnRyb2xzKCk7CisjZW5kaWYKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgSGl0
VGVzdFJlc3VsdDo6bWVkaWFMb29wRW5hYmxlZCgpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFZJREVP
KQorICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWx0KG1lZGlhRWxlbWVudCgpKTsKKyAgICBp
ZiAobWVkaWFFbHQpCisgICAgICAgIHJldHVybiBtZWRpYUVsdC0+bG9vcCgpOworI2VuZGlmCisg
ICAgcmV0dXJuIGZhbHNlOworfQorCiBLVVJMIEhpdFRlc3RSZXN1bHQ6OmFic29sdXRlTGlua1VS
TCgpIGNvbnN0CiB7CiAgICAgaWYgKCEobV9pbm5lclVSTEVsZW1lbnQgJiYgbV9pbm5lclVSTEVs
ZW1lbnQtPmRvY3VtZW50KCkpKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVz
dFJlc3VsdC5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5oCmluZGV4IDNhNDI3
MTkuLjM1NDQ5ODYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQu
aAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmgKQEAgLTMyLDYgKzMyLDkg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRnJhbWU7Cisj
aWYgRU5BQkxFKFZJREVPKQorY2xhc3MgSFRNTE1lZGlhRWxlbWVudDsKKyNlbmRpZgogY2xhc3Mg
SW1hZ2U7CiBjbGFzcyBJbnRSZWN0OwogY2xhc3MgS1VSTDsKQEAgLTgwLDYgKzgzLDEyIEBAIHB1
YmxpYzoKICAgICBTdHJpbmcgdGV4dENvbnRlbnQoKSBjb25zdDsKICAgICBib29sIGlzTGl2ZUxp
bmsoKSBjb25zdDsKICAgICBib29sIGlzQ29udGVudEVkaXRhYmxlKCkgY29uc3Q7CisgICAgYm9v
bCBpc1ZpZGVvRWxlbWVudCgpIGNvbnN0OworICAgIHZvaWQgdG9nZ2xlTWVkaWFDb250cm9sc0Rp
c3BsYXkoKSBjb25zdDsKKyAgICB2b2lkIHRvZ2dsZU1lZGlhTG9vcFBsYXliYWNrKCkgY29uc3Q7
CisgICAgdm9pZCBlbnRlckZ1bGxzY3JlZW5Gb3JWaWRlbygpIGNvbnN0OworICAgIGJvb2wgbWVk
aWFDb250cm9sc0VuYWJsZWQoKSBjb25zdDsKKyAgICBib29sIG1lZGlhTG9vcEVuYWJsZWQoKSBj
b25zdDsKIAogICAgIC8vIFJlY3QtYmFzZWQgaGl0IHRlc3QgcmVsYXRlZCBtZXRob2RzLgogICAg
IGJvb2wgaXNSZWN0QmFzZWRUZXN0KCkgY29uc3QgeyByZXR1cm4gbV9pc1JlY3RCYXNlZDsgfQpA
QCAtOTYsNiArMTA1LDEwIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKIAorI2lmIEVOQUJMRShWSURF
TykKKyAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQoKSBjb25zdDsKKyNlbmRpZgor
CiAgICAgUmVmUHRyPE5vZGU+IG1faW5uZXJOb2RlOwogICAgIFJlZlB0cjxOb2RlPiBtX2lubmVy
Tm9uU2hhcmVkTm9kZTsKICAgICBJbnRQb2ludCBtX3BvaW50OwotLSAKMS43LjE=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67035</attachid>
            <date>2010-09-09 08:12:51 -0700</date>
            <delta_ts>2010-09-15 00:27:05 -0700</delta_ts>
            <desc>proposed patch (test missing)</desc>
            <filename>proposed-patch-test-missing.patch</filename>
            <type>text/plain</type>
            <size>34508</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA5Yzc3NzA0OWU2NDI4NmIzZjE4MTY5MmFhNDYwMmMxYjJjZjVjMGQwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUaHUsIDkgU2VwIDIwMTAgMDk6MzY6MDUgKzAyMDAKU3ViamVjdDogW1BBVENIXSBw
cm9wb3NlZCBwYXRjaCAodGVzdCBtaXNzaW5nKQoKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMTEgKysrKysrKysrKysrKysrKysKIFdl
YkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwICAgICAgICAgICAgIHwgICAyMiAr
KysrCiBXZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmNwcCAgICAgICAgICAgICAgICAgICB8
ICAgNjAgKysrKysrKystCiBXZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oICAgICAg
ICAgICAgICAgICB8ICAgIDggKysKIFdlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRl
Z3kuaCAgICAgICAgICAgIHwgICAxMCArKwogV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJp
bmdzLmNwcCAgICAgICAgICAgICAgfCAgIDQ2ICsrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0vTG9j
YWxpemVkU3RyaW5ncy5oICAgICAgICAgICAgICAgIHwgICAxMCArKwogLi4uL3BsYXRmb3JtL2Fu
ZHJvaWQvTG9jYWxpemVkU3RyaW5nc0FuZHJvaWQuY3BwICAgfCAgIDU0ICsrKysrKysrCiBXZWJD
b3JlL3BsYXRmb3JtL2JyZXcvTG9jYWxpemVkU3RyaW5nc0JyZXcuY3BwICAgICB8ICAgNDUgKysr
KysrKwogV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5jcHAgICAgICAg
fCAgIDQ1ICsrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0NvbnRleHRNZW51SXRlbUd0ay5j
cHAgICAgICAgIHwgICAgOSArKwogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5n
c0d0ay5jcHAgICAgICAgfCAgIDQ2ICsrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0vaGFpa3UvTG9j
YWxpemVkU3RyaW5nc0hhaWt1LmNwcCAgIHwgICA0NSArKysrKysrCiBXZWJDb3JlL3BsYXRmb3Jt
L3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHAgICAgICAgICB8ICAgNDUgKysrKysrKwogV2ViQ29y
ZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAgICAgICAgICAgICAgICAgfCAgMTI3ICsrKysr
KysrKysrKysrKysrKy0tCiBXZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmggICAgICAg
ICAgICAgICAgICB8ICAgMTcgKysrCiAxNiBmaWxlcyBjaGFuZ2VkLCA2ODIgaW5zZXJ0aW9ucygr
KSwgMTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCAzZDFmY2FiLi4xMTVjNDNkIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDExNiBAQAogMjAx
MC0wOS0wOSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gZW5oYW5jZWQg
Y29udGV4dCBtZW51IGZvciBtZWRpYSBlbGVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUwMjEKKworICAgICAgICBOZXcgaXRlbXMgaW4gdGhl
IG1lZGlhIEVsZW1lbnQgY29udGV4dCBtZW51OgorICAgICAgICAtIHBsYXkvcGF1c2UKKyAgICAg
ICAgLSBtdXRlL3VubXV0ZQorICAgICAgICAtIGNvbnRyb2xzIGRpc3BsYXkgY29udHJvbAorICAg
ICAgICAtIHN3aXRjaCB0byBmdWxsc2NyZWVuIChmb3IgdmlkZW8gb25seSkKKyAgICAgICAgLSBs
b29wIHBsYXliYWNrIGNvbnRyb2wKKyAgICAgICAgLSBjb3B5IG1lZGlhIHVybCB0byBjbGlwYm9h
cmQKKyAgICAgICAgLSBvcGVuIGluIG5ldyB3aW5kb3cKKworICAgICAgICAqIHBhZ2UvQ29udGV4
dE1lbnVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJv
bGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRl
eHRNZW51LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Ojpwb3B1bGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudTo6Y2hlY2tPckVuYWJsZUlmTmVlZGVkKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9M
b2NhbGl6YXRpb25TdHJhdGVneS5oOgorICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmlu
Z3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5O
ZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlh
TGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Rv
Z2dsZU1lZGlhQ29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFn
VG9nZ2xlTWVkaWFMb29wKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Vu
dGVyVmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z01lZGlhUGxheSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBh
dXNlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVVuTXV0ZSk6CisgICAgICAg
ICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oOgorICAgICAgICAqIHBsYXRmb3JtL2FuZHJv
aWQvTG9jYWxpemVkU3RyaW5nc0FuZHJvaWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMpOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSk6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ01lZGlhTXV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1U
YWdNZWRpYVVuTXV0ZSk6CisgICAgICAgICogcGxhdGZvcm0vYnJldy9Mb2NhbGl6ZWRTdHJpbmdz
QnJldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJ
bk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVk
aWFMaW5rVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFn
VG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1U
YWdUb2dnbGVNZWRpYUxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFn
RW50ZXJWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlh
UGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhVW5NdXRlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdyk6CisgICAgICAgIChX
ZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3ApOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ01lZGlhVW5NdXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvQ29udGV4
dE1lbnVJdGVtR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omd0a1N0b2NrSURGcm9tQ29udGV4
dE1lbnVBY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3Rr
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3
V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxp
bmtUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dn
bGVNZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Rv
Z2dsZU1lZGlhTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRl
clZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdN
ZWRpYVBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVz
ZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11dGUpOgorICAgICAgICAq
IHBsYXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0cmluZ3NIYWlrdS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdyk6CisgICAgICAgIChX
ZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3ApOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ01lZGlhVW5NdXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS93eC9Mb2NhbGl6
ZWRTdHJpbmdzV3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3Bl
bk1lZGlhSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFn
Q29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ01lZGlhUGxheSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1U
YWdNZWRpYVBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlh
TXV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVVuTXV0ZSk6
CisgICAgICAgICogcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SGl0VGVzdFJlc3VsdDo6YWJzb2x1dGVNZWRpYVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpI
aXRUZXN0UmVzdWx0Ojppc1ZpZGVvRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0
UmVzdWx0OjptZWRpYUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6
dG9nZ2xlTWVkaWFDb250cm9sc0Rpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJl
c3VsdDo6dG9nZ2xlTWVkaWFMb29wUGxheWJhY2spOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVz
dFJlc3VsdDo6ZW50ZXJGdWxsc2NyZWVuRm9yVmlkZW8pOgorICAgICAgICAoV2ViQ29yZTo6SGl0
VGVzdFJlc3VsdDo6bWVkaWFDb250cm9sc0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SGl0
VGVzdFJlc3VsdDo6bWVkaWFMb29wRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0
UmVzdWx0OjptZWRpYVBsYXlpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6
dG9nZ2xlTWVkaWFQbGF5U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6
bWVkaWFNdXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0Ojp0b2dnbGVNZWRp
YU11dGVTdGF0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaDoKKworMjAx
MC0wOS0wOSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKICAgICAg
ICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgogCiAgICAgICAgIFtHVEtdIHRlc3RtaW1l
aGFuZGxpbmcgZmFsc2VseSBzdWNjZWVkcyB0ZXN0aW5nIE9nZyBtaW1lIHR5cGUKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9wYWdl
L0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKaW5kZXggZDM4NGIwMi4uNmRlYzU2YSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29y
ZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTE4Niw2ICsxODcsMjcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6
OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51SXRlbSogaXRlbSkKICAgICAgICAg
Ly8gRm9yIG5vdywgY2FsbCBpbnRvIHRoZSBjbGllbnQuIFRoaXMgaXMgdGVtcG9yYXJ5IQogICAg
ICAgICBmcmFtZS0+ZWRpdG9yKCktPmNvcHlJbWFnZShyZXN1bHQpOwogICAgICAgICBicmVhazsK
KyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93OgorICAgICAg
ICBvcGVuTmV3V2luZG93KHJlc3VsdC5hYnNvbHV0ZU1lZGlhVVJMKCksIGZyYW1lKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlw
Ym9hcmQ6CisgICAgICAgIGZyYW1lLT5lZGl0b3IoKS0+Y29weVVSTChyZXN1bHQuYWJzb2x1dGVN
ZWRpYVVSTCgpLCByZXN1bHQudGV4dENvbnRlbnQoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9sczoKKyAgICAgICAgcmVzdWx0
LnRvZ2dsZU1lZGlhQ29udHJvbHNEaXNwbGF5KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
Q29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wOgorICAgICAgICByZXN1bHQudG9nZ2xl
TWVkaWFMb29wUGxheWJhY2soKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb250ZXh0TWVu
dUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbjoKKyAgICAgICAgcmVzdWx0LmVudGVyRnVsbHNj
cmVlbkZvclZpZGVvKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVt
VGFnTWVkaWFQbGF5UGF1c2U6CisgICAgICAgIHJlc3VsdC50b2dnbGVNZWRpYVBsYXlTdGF0ZSgp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZToK
KyAgICAgICAgcmVzdWx0LnRvZ2dsZU1lZGlhTXV0ZVN0YXRlKCk7CisgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3c6IHsKICAgICAg
ICAgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciA9IGZyYW1lLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2Fk
ZXIoKTsKICAgICAgICAgaWYgKCFsb2FkZXItPnVucmVhY2hhYmxlVVJMKCkuaXNFbXB0eSgpKQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL0NvbnRleHRNZW51LmNwcAppbmRleCAzN2Q0YzJiLi4xNTgxNmYzIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L0NvbnRleHRNZW51LmNwcApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChD
KSAyMDA4IENocmlzdGlhbiBEeXdhbiA8Y2hyaXN0aWFuQGltZW5kaW8uY29tPgorICogQ29weXJp
Z2h0IChDKSAyMDEwIElnYWxpYSBTLkwKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMjgyLDYgKzI4MywyMCBAQCB2b2lkIENvbnRleHRNZW51Ojpwb3B1bGF0ZSgpCiAgICAgICAg
IGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2soKSk7CiAgICAgQ29udGV4dE1l
bnVJdGVtIENvcHlJbWFnZUl0ZW0oQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnQ29weUlt
YWdlVG9DbGlwYm9hcmQsIAogICAgICAgICBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0Ns
aXBib2FyZCgpKTsKKyAgICBDb250ZXh0TWVudUl0ZW0gT3Blbk1lZGlhSW5OZXdXaW5kb3dJdGVt
KEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93LCAKKyAg
ICAgICAgY29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3coKSk7CisgICAgQ29u
dGV4dE1lbnVJdGVtIENvcHlNZWRpYUxpbmtJdGVtKEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRl
bVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCwgCisgICAgICAgIGNvbnRleHRNZW51SXRlbVRh
Z0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCgpKTsKKyAgICBDb250ZXh0TWVudUl0ZW0gTWVkaWFQ
bGF5UGF1c2UoQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5UGF1c2UsIAor
ICAgICAgICBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKSk7CisgICAgQ29udGV4dE1lbnVJ
dGVtIE1lZGlhTXV0ZShBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUsIAor
ICAgICAgICBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKSk7CisgICAgQ29udGV4dE1lbnVJ
dGVtIFRvZ2dsZU1lZGlhQ29udHJvbHMoQ2hlY2thYmxlQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJ
dGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scywgCisgICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ1Rv
Z2dsZU1lZGlhQ29udHJvbHMoKSk7CisgICAgQ29udGV4dE1lbnVJdGVtIFRvZ2dsZU1lZGlhTG9v
cChDaGVja2FibGVBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3As
IAorICAgICAgICBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKSk7CisgICAgQ29u
dGV4dE1lbnVJdGVtIEVudGVyVmlkZW9GdWxsc2NyZWVuKEFjdGlvblR5cGUsIENvbnRleHRNZW51
SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuLCAKKyAgICAgICAgY29udGV4dE1lbnVJdGVtVGFn
RW50ZXJWaWRlb0Z1bGxzY3JlZW4oKSk7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIENvbnRleHRN
ZW51SXRlbSBTZWFyY2hTcG90bGlnaHRJdGVtKEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRh
Z1NlYXJjaEluU3BvdGxpZ2h0LCAKICAgICAgICAgY29udGV4dE1lbnVJdGVtVGFnU2VhcmNoSW5T
cG90bGlnaHQoKSk7CkBAIC0zNDksNiArMzY0LDIzIEBAIHZvaWQgQ29udGV4dE1lbnU6OnBvcHVs
YXRlKCkKICAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKENvcHlJbWFnZUl0ZW0pOwogICAgICAg
ICB9CiAKKyAgICAgICAgS1VSTCBtZWRpYVVSTCA9IHJlc3VsdC5hYnNvbHV0ZU1lZGlhVVJMKCk7
CisgICAgICAgIGlmICghbWVkaWFVUkwuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBpZiAoIWxp
bmtVUkwuaXNFbXB0eSgpIHx8ICFpbWFnZVVSTC5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAg
YXBwZW5kSXRlbSgqc2VwYXJhdG9ySXRlbSgpKTsKKworICAgICAgICAgICAgYXBwZW5kSXRlbShN
ZWRpYVBsYXlQYXVzZSk7CisgICAgICAgICAgICBhcHBlbmRJdGVtKE1lZGlhTXV0ZSk7CisgICAg
ICAgICAgICBhcHBlbmRJdGVtKFRvZ2dsZU1lZGlhQ29udHJvbHMpOworICAgICAgICAgICAgYXBw
ZW5kSXRlbShUb2dnbGVNZWRpYUxvb3ApOworICAgICAgICAgICAgaWYgKHJlc3VsdC5pc1ZpZGVv
RWxlbWVudCgpKQorICAgICAgICAgICAgICAgIGFwcGVuZEl0ZW0oRW50ZXJWaWRlb0Z1bGxzY3Jl
ZW4pOworCisgICAgICAgICAgICBhcHBlbmRJdGVtKCpzZXBhcmF0b3JJdGVtKCkpOworICAgICAg
ICAgICAgYXBwZW5kSXRlbShDb3B5TWVkaWFMaW5rSXRlbSk7CisgICAgICAgICAgICBhcHBlbmRJ
dGVtKE9wZW5NZWRpYUluTmV3V2luZG93SXRlbSk7CisgICAgICAgIH0KKwogICAgICAgICBpZiAo
aW1hZ2VVUkwuaXNFbXB0eSgpICYmIGxpbmtVUkwuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBp
ZiAocmVzdWx0LmlzU2VsZWN0ZWQoKSkgewogICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rpb25D
b250YWluc1Bvc3NpYmxlV29yZChmcmFtZSkpIHsKQEAgLTM3NSwxMiArNDA3LDYgQEAgdm9pZCBD
b250ZXh0TWVudTo6cG9wdWxhdGUoKQogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgICAgICAg
ICAgICAgaWYgKCEoZnJhbWUtPnBhZ2UoKSAmJiBmcmFtZS0+cGFnZSgpLT5pbnNwZWN0b3JDb250
cm9sbGVyKCktPmhhc0luc3BlY3RvckZyb250ZW5kQ2xpZW50KCkpKSB7CiAjZW5kaWYKLSNpZiBQ
TEFURk9STShHVEspCi0gICAgICAgICAgICAgICAgYXBwZW5kSXRlbShCYWNrSXRlbSk7Ci0gICAg
ICAgICAgICAgICAgYXBwZW5kSXRlbShGb3J3YXJkSXRlbSk7Ci0gICAgICAgICAgICAgICAgYXBw
ZW5kSXRlbShTdG9wSXRlbSk7Ci0gICAgICAgICAgICAgICAgYXBwZW5kSXRlbShSZWxvYWRJdGVt
KTsKLSNlbHNlCiAgICAgICAgICAgICAgICAgaWYgKGZyYW1lLT5wYWdlKCkgJiYgZnJhbWUtPnBh
Z2UoKS0+Y2FuR29CYWNrT3JGb3J3YXJkKC0xKSkKICAgICAgICAgICAgICAgICAgICAgYXBwZW5k
SXRlbShCYWNrSXRlbSk7CiAKQEAgLTM5Myw3ICs0MTksNiBAQCB2b2lkIENvbnRleHRNZW51Ojpw
b3B1bGF0ZSgpCiAgICAgICAgICAgICAgICAgICAgIGFwcGVuZEl0ZW0oU3RvcEl0ZW0pOwogICAg
ICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgYXBwZW5kSXRlbShSZWxvYWRJ
dGVtKTsKLSNlbmRpZgogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgICAgICAgICAgICAgfQog
I2VuZGlmCkBAIC03ODgsNiArODEzLDE1IEBAIHZvaWQgQ29udGV4dE1lbnU6OmNoZWNrT3JFbmFi
bGVJZk5lZWRlZChDb250ZXh0TWVudUl0ZW0mIGl0ZW0pIGNvbnN0CiAgICAgICAgIGNhc2UgQ29u
dGV4dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3c6CiAgICAgICAgIGNhc2UgQ29udGV4
dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzazoKICAgICAgICAgY2FzZSBDb250ZXh0TWVu
dUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZDoKKyAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0
ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdzoKKyAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1U
YWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQ6CisgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVt
VGFnVG9nZ2xlTWVkaWFDb250cm9sczoKKyAgICAgICAgICAgIHNob3VsZENoZWNrID0gbV9oaXRU
ZXN0UmVzdWx0Lm1lZGlhQ29udHJvbHNFbmFibGVkKCk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3A6CisgICAgICAgICAg
ICBzaG91bGRDaGVjayA9IG1faGl0VGVzdFJlc3VsdC5tZWRpYUxvb3BFbmFibGVkKCk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVv
RnVsbHNjcmVlbjoKICAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5l
d1dpbmRvdzoKICAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ0d1ZXNzOgog
ICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ090aGVyOgpAQCAtODIzLDYgKzg1NywxOCBA
QCB2b2lkIENvbnRleHRNZW51OjpjaGVja09yRW5hYmxlSWZOZWVkZWQoQ29udGV4dE1lbnVJdGVt
JiBpdGVtKSBjb25zdAogICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbUxhc3RDdXN0b21UYWc6
CiAgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtQmFzZUFwcGxpY2F0aW9uVGFnOgogICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5UGF1
c2U6CisgICAgICAgICAgICBpZiAobV9oaXRUZXN0UmVzdWx0Lm1lZGlhUGxheWluZygpKQorICAg
ICAgICAgICAgICAgIGl0ZW0uc2V0VGl0bGUoY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgp
KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpdGVtLnNldFRpdGxlKGNvbnRl
eHRNZW51SXRlbVRhZ01lZGlhUGxheSgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIENvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZToKKyAgICAgICAgICAgIGlmIChtX2hpdFRl
c3RSZXN1bHQubWVkaWFNdXRlZCgpKQorICAgICAgICAgICAgICAgIGl0ZW0uc2V0VGl0bGUoY29u
dGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11dGUoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgaXRlbS5zZXRUaXRsZShjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKSk7Cisg
ICAgICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBpdGVtLnNldENoZWNrZWQoc2hvdWxkQ2hl
Y2spOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaCBiL1dl
YkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKaW5kZXggMDU4ZjY0NC4uZjdmYTVlNiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTE0Myw2ICsxNDQsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICBDb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplLAogICAgICAgICBDb250ZXh0TWVudUl0
ZW1UYWdDaGFuZ2VCYWNrLAogI2VuZGlmCisgICAgICAgIENvbnRleHRNZW51SXRlbVRhZ09wZW5N
ZWRpYUluTmV3V2luZG93LAorICAgICAgICBDb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5r
VG9DbGlwYm9hcmQsCisgICAgICAgIENvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJv
bHMsCisgICAgICAgIENvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCwKKyAgICAgICAg
Q29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4sCisgICAgICAgIENvbnRleHRN
ZW51SXRlbVRhZ01lZGlhUGxheVBhdXNlLAorICAgICAgICBDb250ZXh0TWVudUl0ZW1UYWdNZWRp
YU11dGUsCiAgICAgICAgIENvbnRleHRNZW51SXRlbUJhc2VDdXN0b21UYWcgPSA1MDAwLAogICAg
ICAgICBDb250ZXh0TWVudUl0ZW1DdXN0b21UYWdOb0FjdGlvbiA9IDU5OTgsCiAgICAgICAgIENv
bnRleHRNZW51SXRlbUxhc3RDdXN0b21UYWcgPSA1OTk5LApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9Mb2NhbGl6YXRpb25TdHJhdGVneS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6
YXRpb25TdHJhdGVneS5oCmluZGV4IDE3OGNmYTIuLjZjNGRiNmEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L0xvY2FsaXphdGlvblN0cmF0ZWd5LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0
IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMCBJZ2FsaWEgUy5MCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEx
Miw2ICsxMTMsMTUgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0NhcGl0YWxpemUoKSA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnQ2hhbmdlQmFjayhjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nKSA9IDA7CiAjZW5kaWYK
KyAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRv
dygpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFM
aW5rVG9DbGlwYm9hcmQoKSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnVG9nZ2xlTWVkaWFDb250cm9scygpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKSA9IDA7CisgICAgdmlydHVhbCBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkgPSAwOworICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKSA9IDA7CisgICAgdmlydHVhbCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkgPSAwOworICAgIHZpcnR1YWwgU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ01lZGlhVW5NdXRlKCkgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KCkgPSAwOwogI2VuZGlmIC8vIEVOQUJM
RShDT05URVhUX01FTlVTKQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXpl
ZFN0cmluZ3MuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAppbmRl
eCBhNjllMGZiLi5iMmU2YjUxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXpl
ZFN0cmluZ3MuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAK
QEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA5LCAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MCBJZ2FsaWEgUy5MCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM2Miw2ICsz
NjMsNTEgQEAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoYW5nZUJhY2soY29uc3QgU3RyaW5n
JiByZXBsYWNlZFN0cmluZykKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKKworU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4g
cGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51
SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBwbGF0Zm9ybVN0
cmF0ZWdpZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ29w
eU1lZGlhTGlua1RvQ2xpcGJvYXJkKCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdU
b2dnbGVNZWRpYUNvbnRyb2xzKCkKK3sKKyAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCkt
PmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29u
dHJvbHMoKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgp
Cit7CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2NhbGl6YXRpb25TdHJhdGVn
eSgpLT5jb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKTsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCkKK3sKKyAgICByZXR1cm4gcGxh
dGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRl
bVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdNZWRpYVBsYXkoKQoreworICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCk7Cit9CisKK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkKK3sKKyAgICByZXR1cm4gcGxhdGZv
cm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRh
Z01lZGlhUGF1c2UoKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgp
Cit7CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2NhbGl6YXRpb25TdHJhdGVn
eSgpLT5jb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKTsKK30KKworU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ01lZGlhVW5NdXRlKCkKK3sKKyAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVz
KCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ01lZGlhVW5NdXRl
KCk7Cit9CiAgICAgCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQoKQog
ewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmggYi9XZWJD
b3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAppbmRleCAwNDA0MmI2Li5lMTNhNDA3IDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDkgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTAogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMDgsNiArMTA5LDE1IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2FwaXRhbGl6ZSgpOwogICAg
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGFuZ2VCYWNrKGNvbnN0IFN0cmluZyYgcmVwbGFj
ZWRTdHJpbmcpOwogI2VuZGlmCisgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRp
YUluTmV3V2luZG93KCk7CisgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxp
bmtUb0NsaXBib2FyZCgpOworICAgIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRp
YUNvbnRyb2xzKCk7CisgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9v
cCgpOworICAgIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigp
OworICAgIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKTsKKyAgICBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpOworICAgIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdNZWRpYU11dGUoKTsKKyAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11
dGUoKTsKICAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQoKTsKICNl
bmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9hbmRyb2lkL0xvY2FsaXplZFN0cmluZ3NBbmRyb2lkLmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vYW5kcm9pZC9Mb2NhbGl6ZWRTdHJpbmdzQW5kcm9pZC5jcHAKaW5kZXggMmZjODgwYi4uOGQ5
MjUwYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL0xvY2FsaXplZFN0cmlu
Z3NBbmRyb2lkLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvTG9jYWxpemVkU3Ry
aW5nc0FuZHJvaWQuY3BwCkBAIC04MSw2ICs4MSw2MCBAQCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKQogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAorU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCgpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlh
TG9vcCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9
CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQ
YXVzZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9
CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnTWVkaWFVbk11dGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IFN0cmluZygpOworfQorCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdX
aW5kb3coKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL2JyZXcvTG9jYWxpemVkU3RyaW5nc0JyZXcuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9i
cmV3L0xvY2FsaXplZFN0cmluZ3NCcmV3LmNwcAppbmRleCAxYmM1OTg1Li5iNTI4OWMyIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvTG9jYWxpemVkU3RyaW5nc0JyZXcuY3BwCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9Mb2NhbGl6ZWRTdHJpbmdzQnJldy5jcHAKQEAgLTk2
LDYgKzk2LDUxIEBAIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2Fy
ZCgpCiAgICAgcmV0dXJuICJDb3B5IGltYWdlIHRvIGNsaXBib2FyZCI7CiB9CiAKK1N0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuICJP
cGVuIE1lZGlhIGluIE5ldyBXaW5kb3ciOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
Q29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4gIkNvcHkgTWVkaWEgTGlu
ayBMb2NhdGlvbiI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNv
bnRyb2xzKCkKK3sKKyAgICByZXR1cm4gIlRvZ2dsZSBNZWRpYSBDb250cm9scyI7Cit9CisKK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKQoreworICAgIHJldHVybiAi
VG9nZ2xlIE1lZGlhIExvb3AgUGxheWJhY2siOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKQoreworICAgIHJldHVybiAiU3dpdGNoIFZpZGVvIHRv
IEZ1bGxzY3JlZW4iOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkK
K3sKKyAgICByZXR1cm4gIlBsYXkiOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVk
aWFQYXVzZSgpCit7CisgICAgcmV0dXJuICJQYXVzZSI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdNZWRpYU11dGUoKQoreworICAgIHJldHVybiAiTXV0ZSI7Cit9CisKK1N0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdNZWRpYVVuTXV0ZSgpCit7CisgICAgcmV0dXJuICJVbk11dGUiOwor
fQorCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3coKQogewog
ICAgIHJldHVybiAiT3BlbiBmcmFtZSBpbiBuZXcgd2luZG93IjsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vZWZsL0xvY2FsaXplZFN0cmluZ3NFZmwuY3BwIGIvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5jcHAKaW5kZXggNjAyMzIwNS4uYzY0NWUwZCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5jcHAKQEAgLTk4LDYg
Kzk4LDUxIEBAIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgp
CiAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIkNvcHkgSW1hZ2UiKTsKIH0KIAorU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4g
U3RyaW5nOjpmcm9tVVRGOCgiT3BlbiBNZWRpYSBpbiBOZXcgV2luZG93Iik7Cit9CisKK1N0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJl
dHVybiBTdHJpbmc6OmZyb21VVEY4KCJDb3B5IE1lZGlhIExpbmsgTG9jYXRpb24iKTsKK30KKwor
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKQoreworICAgIHJl
dHVybiBTdHJpbmc6OmZyb21VVEY4KCJUb2dnbGUgTWVkaWEgQ29udHJvbHMiKTsKK30KKworU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCit7CisgICAgcmV0dXJuIFN0
cmluZzo6ZnJvbVVURjgoIlRvZ2dsZSBNZWRpYSBMb29wIFBsYXliYWNrIik7Cit9CisKK1N0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpCit7CisgICAgcmV0dXJu
IFN0cmluZzo6ZnJvbVVURjgoIlN3aXRjaCBWaWRlbyB0byBGdWxsc2NyZWVuIik7Cit9CisKK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQoreworICAgIHJldHVybiBTdHJpbmc6
OmZyb21VVEY4KCJQbGF5Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBh
dXNlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiUGF1c2UiKTsKK30KKworU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbVVURjgoIk11dGUiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhVW5N
dXRlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiVW5NdXRlIik7Cit9CisKIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpCiB7CiAgICAgcmV0
dXJuIFN0cmluZzo6ZnJvbVVURjgoIk9wZW4gRnJhbWUgaW4gTmV3IFdpbmRvdyIpOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29udGV4dE1lbnVJdGVtR3RrLmNwcCBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL0NvbnRleHRNZW51SXRlbUd0ay5jcHAKaW5kZXggZTJjNWI4NC4uYmQy
NWE0YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29udGV4dE1lbnVJdGVtR3Rr
LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Db250ZXh0TWVudUl0ZW1HdGsuY3BwCkBA
IC0xLDUgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0
ZXIgRnJleXRoZXIKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTAogICoKICAqICBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYwpAQCAtMzMsMTEgKzM0LDEzIEBAIHN0YXRpYyBjb25zdCBjaGFyKiBndGtTdG9j
a0lERnJvbUNvbnRleHRNZW51QWN0aW9uKGNvbnN0IENvbnRleHRNZW51QWN0aW9uJiBhY3RpCiAg
ICAgc3dpdGNoIChhY3Rpb24pIHsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHlMaW5r
VG9DbGlwYm9hcmQ6CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBi
b2FyZDoKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2Fy
ZDoKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHk6CiAgICAgICAgIHJldHVybiBHVEtf
U1RPQ0tfQ09QWTsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5OZXdXaW5k
b3c6CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvdzoKICAg
ICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93OgorICAgIGNhc2Ug
Q29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3c6CiAgICAgICAgIHJldHVybiBH
VEtfU1RPQ0tfT1BFTjsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1Rv
RGlzazoKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2s6CkBA
IC05OSw2ICsxMDIsMTIgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGd0a1N0b2NrSURGcm9tQ29udGV4
dE1lbnVBY3Rpb24oY29uc3QgQ29udGV4dE1lbnVBY3Rpb24mIGFjdGkKICAgICAgICAgcmV0dXJu
IEdUS19TVE9DS19VTkRFUkxJTkU7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTaG93Q29s
b3JzOgogICAgICAgICByZXR1cm4gR1RLX1NUT0NLX1NFTEVDVF9DT0xPUjsKKyAgICBjYXNlIENv
bnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHM6CisgICAgY2FzZSBDb250ZXh0TWVu
dUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3A6CisgICAgICAgIC8vIE5vIGljb24gZm9yIHRoaXMuCisg
ICAgICAgIHJldHVybiBOVUxMOworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRl
b0Z1bGxzY3JlZW46CisgICAgICAgIHJldHVybiBHVEtfU1RPQ0tfRlVMTFNDUkVFTjsKICAgICBk
ZWZhdWx0OgogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwCmluZGV4IDQzMmM5MmYuLjQ5OTEyM2IgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwCkBAIC00LDYgKzQs
NyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDggQ2hyaXN0aWFuIER5d2FuIDxjaHJpc3RpYW5AaW1lbmRpby5j
b20+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTnVhbnRpIEx0ZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMCBJZ2FsaWEgUy5MCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTExMCw2
ICsxMTEsNTEgQEAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJk
KCkKICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJDb3BfeSBJbWFnZSIpKTsKIH0KIAor
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KCkKK3sKKyAgICBy
ZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJPcGVuIF9NZWRpYSBpbiBOZXcgV2luZG93IikpOwor
fQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKCkK
K3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJDb3BfeSBNZWRpYSBMaW5rIExvY2F0
aW9uIikpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9s
cygpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiX1RvZ2dsZSBNZWRpYSBDb250
cm9scyIpKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgp
Cit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiVG9nZ2xlIE1lZGlhIF9Mb29wIFBs
YXliYWNrIikpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxz
Y3JlZW4oKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8oIlN3aXRjaCBWaWRlbyB0
byBfRnVsbHNjcmVlbiIpKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxh
eSgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiX1BsYXkiKSk7Cit9CisKK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5n
Ojpmcm9tVVRGOChfKCJfUGF1c2UiKSk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdN
ZWRpYU11dGUoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8oIl9NdXRlIikpOwor
fQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11dGUoKQoreworICAgIHJldHVy
biBTdHJpbmc6OmZyb21VVEY4KF8oIlVuX011dGUiKSk7Cit9CisKIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpCiB7CiAgICAgcmV0dXJuIFN0cmluZzo6ZnJv
bVVURjgoXygiT3BlbiBfRnJhbWUgaW4gTmV3IFdpbmRvdyIpKTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vaGFpa3UvTG9jYWxpemVkU3RyaW5nc0hhaWt1LmNwcCBiL1dlYkNvcmUvcGxh
dGZvcm0vaGFpa3UvTG9jYWxpemVkU3RyaW5nc0hhaWt1LmNwcAppbmRleCA1MzIxNzkyLi4yOGQ4
MjViIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0cmluZ3NI
YWlrdS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Mb2NhbGl6ZWRTdHJpbmdzSGFp
a3UuY3BwCkBAIC05OCw2ICs5OCw1MSBAQCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUlt
YWdlVG9DbGlwYm9hcmQoKQogICAgIHJldHVybiAiQ29weSBpbWFnZSB0byBjbGlwYm9hcmQiOwog
fQogCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3coKQorewor
ICAgIHJldHVybiAiT3BlbiBNZWRpYSBpbiBOZXcgV2luZG93IjsKK30KKworU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJuICJD
b3B5IE1lZGlhIExpbmsgTG9jYXRpb24iOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
VG9nZ2xlTWVkaWFDb250cm9scygpCit7CisgICAgcmV0dXJuICJUb2dnbGUgTWVkaWEgQ29udHJv
bHMiOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkKK3sK
KyAgICByZXR1cm4gIlRvZ2dsZSBNZWRpYSBMb29wIFBsYXliYWNrIjsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCkKK3sKKyAgICByZXR1cm4gIlN3
aXRjaCBWaWRlbyB0byBGdWxsc2NyZWVuIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z01lZGlhUGxheSgpCit7CisgICAgcmV0dXJuICJQbGF5IjsKK30KKworU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ01lZGlhUGF1c2UoKQoreworICAgIHJldHVybiAiUGF1c2UiOworfQorCitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkKK3sKKyAgICByZXR1cm4gIk11dGUiOwor
fQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11dGUoKQoreworICAgIHJldHVy
biAiVW5NdXRlIjsKK30KKwogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3
V2luZG93KCkKIHsKICAgICByZXR1cm4gIk9wZW4gZnJhbWUgaW4gbmV3IHdpbmRvdyI7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHAKaW5kZXggNDExMmY2NC4uYTVh
ZmNiNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS93eC9Mb2NhbGl6ZWRTdHJpbmdzV3gu
Y3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNwcApAQCAt
OTcsNiArOTcsNTEgQEAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJv
YXJkKCkKICAgICByZXR1cm4gU3RyaW5nKCJDb3B5IEltYWdlIHRvIENsaXBib2FyZCIpOyAKIH0K
IAorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KCkKK3sKKyAg
ICByZXR1cm4gU3RyaW5nKCJPcGVuIE1lZGlhIGluIE5ldyBXaW5kb3ciKTsKK30KKworU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCgpCit7CisgICAgcmV0
dXJuIFN0cmluZygiQ29weSBNZWRpYSBMaW5rIExvY2F0aW9uIik7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKK3sKKyAgICByZXR1cm4gU3RyaW5n
KCJUb2dnbGUgTWVkaWEgQ29udHJvbHMiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z1RvZ2dsZU1lZGlhTG9vcCgpCit7CisgICAgcmV0dXJuIFN0cmluZygiVG9nZ2xlIE1lZGlhIExv
b3AgUGxheWJhY2siKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9G
dWxsc2NyZWVuKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJTd2l0Y2ggVmlkZW8gdG8gRnVsbHNj
cmVlbiIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkKK3sKKyAg
ICByZXR1cm4gU3RyaW5nKCJQbGF5Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdN
ZWRpYVBhdXNlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJQYXVzZSIpOworfQorCitTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJNdXRl
Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVVuTXV0ZSgpCit7CisgICAg
cmV0dXJuIFN0cmluZygiVW5NdXRlIik7Cit9CisKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdP
cGVuRnJhbWVJbk5ld1dpbmRvdygpIAogeyAKICAgICByZXR1cm4gU3RyaW5nKCJPcGVuIEZyYW1l
IGluIE5ldyBXaW5kb3ciKTsgCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0
UmVzdWx0LmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCmluZGV4IDQ5
NmM0YmEuLjMzYWM3YzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1
bHQuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCkBAIC0yNCw2
ICsyNCw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNp
bmNsdWRlICJIVE1MQW5jaG9yRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxWaWRlb0VsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKQEAgLTI5MiwyMiArMjkzLDEy
NiBAQCBLVVJMIEhpdFRlc3RSZXN1bHQ6OmFic29sdXRlSW1hZ2VVUkwoKSBjb25zdAogS1VSTCBI
aXRUZXN0UmVzdWx0OjphYnNvbHV0ZU1lZGlhVVJMKCkgY29uc3QKIHsKICNpZiBFTkFCTEUoVklE
RU8pCi0gICAgaWYgKCEobV9pbm5lck5vblNoYXJlZE5vZGUgJiYgbV9pbm5lck5vblNoYXJlZE5v
ZGUtPmRvY3VtZW50KCkpKQorICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWx0KG1lZGlhRWxl
bWVudCgpKTsKKyAgICBpZiAobWVkaWFFbHQpCisgICAgICAgIHJldHVybiBtX2lubmVyTm9uU2hh
cmVkTm9kZS0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoZGVwcmVjYXRlZFBhcnNlVVJMKG1lZGlh
RWx0LT5jdXJyZW50U3JjKCkpKTsKKyAgICBlbHNlCiAgICAgICAgIHJldHVybiBLVVJMKCk7Cisj
ZWxzZQorICAgIHJldHVybiBLVVJMKCk7CisjZW5kaWYKK30KKworYm9vbCBIaXRUZXN0UmVzdWx0
Ojppc1ZpZGVvRWxlbWVudCgpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIEhUTUxN
ZWRpYUVsZW1lbnQqIG1lZGlhRWx0KG1lZGlhRWxlbWVudCgpKTsKKyAgICByZXR1cm4gKG1lZGlh
RWx0ICYmIG1lZGlhRWx0LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpKTsKKyNlbHNl
CisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKKyNpZiBFTkFCTEUoVklERU8pCitIVE1M
TWVkaWFFbGVtZW50KiBIaXRUZXN0UmVzdWx0OjptZWRpYUVsZW1lbnQoKSBjb25zdAoreworICAg
IGlmICghKG1faW5uZXJOb25TaGFyZWROb2RlICYmIG1faW5uZXJOb25TaGFyZWROb2RlLT5kb2N1
bWVudCgpKSkKKyAgICAgICAgcmV0dXJuIDA7CiAKICAgICBpZiAoIShtX2lubmVyTm9uU2hhcmVk
Tm9kZS0+cmVuZGVyZXIoKSAmJiBtX2lubmVyTm9uU2hhcmVkTm9kZS0+cmVuZGVyZXIoKS0+aXNN
ZWRpYSgpKSkKLSAgICAgICAgcmV0dXJuIEtVUkwoKTsKKyAgICAgICAgcmV0dXJuIDA7CiAKLSAg
ICBBdG9taWNTdHJpbmcgdXJsU3RyaW5nOwotICAgIGlmIChtX2lubmVyTm9uU2hhcmVkTm9kZS0+
aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKSB8fCBtX2lubmVyTm9uU2hhcmVkTm9kZS0+
aGFzVGFnTmFtZShIVE1MTmFtZXM6OmF1ZGlvVGFnKSkgewotICAgICAgICBIVE1MTWVkaWFFbGVt
ZW50KiBtZWRpYUVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVtZW50Kj4obV9pbm5l
ck5vblNoYXJlZE5vZGUuZ2V0KCkpOwotICAgICAgICB1cmxTdHJpbmcgPSBtZWRpYUVsZW1lbnQt
PmN1cnJlbnRTcmMoKTsKLSAgICB9IGVsc2UKLSAgICAgICAgcmV0dXJuIEtVUkwoKTsKKyAgICBp
ZiAobV9pbm5lck5vblNoYXJlZE5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykg
fHwgbV9pbm5lck5vblNoYXJlZE5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjphdWRpb1RhZykp
CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVtZW50Kj4obV9pbm5lck5v
blNoYXJlZE5vZGUuZ2V0KCkpOworICAgIHJldHVybiAwOworfQorI2VuZGlmCiAKLSAgICByZXR1
cm4gbV9pbm5lck5vblNoYXJlZE5vZGUtPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGRlcHJlY2F0
ZWRQYXJzZVVSTCh1cmxTdHJpbmcpKTsKLSNlbHNlCi0gICAgcmV0dXJuIEtVUkwoKTsKK3ZvaWQg
SGl0VGVzdFJlc3VsdDo6dG9nZ2xlTWVkaWFDb250cm9sc0Rpc3BsYXkoKSBjb25zdAoreworI2lm
IEVOQUJMRShWSURFTykKKyAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsdChtZWRpYUVsZW1l
bnQoKSk7CisgICAgaWYgKG1lZGlhRWx0KQorICAgICAgICBtZWRpYUVsdC0+c2V0Q29udHJvbHMo
IW1lZGlhRWx0LT5jb250cm9scygpKTsKKyNlbmRpZgorfQorCit2b2lkIEhpdFRlc3RSZXN1bHQ6
OnRvZ2dsZU1lZGlhTG9vcFBsYXliYWNrKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisg
ICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbHQobWVkaWFFbGVtZW50KCkpOworICAgIGlmICht
ZWRpYUVsdCkKKyAgICAgICAgbWVkaWFFbHQtPnNldExvb3AoIW1lZGlhRWx0LT5sb29wKCkpOwor
I2VuZGlmCit9CisKK3ZvaWQgSGl0VGVzdFJlc3VsdDo6ZW50ZXJGdWxsc2NyZWVuRm9yVmlkZW8o
KSBjb25zdAoreworI2lmIEVOQUJMRShWSURFTykKKyAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRp
YUVsdChtZWRpYUVsZW1lbnQoKSk7CisgICAgaWYgKG1lZGlhRWx0ICYmIG1lZGlhRWx0LT5oYXNU
YWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpKSB7CisgICAgICAgIEhUTUxWaWRlb0VsZW1lbnQq
IHZpZGVvRWx0ID0gc3RhdGljX2Nhc3Q8SFRNTFZpZGVvRWxlbWVudCo+KG1lZGlhRWx0KTsKKyAg
ICAgICAgaWYgKCF2aWRlb0VsdC0+aXNGdWxsc2NyZWVuKCkgJiYgbWVkaWFFbHQtPnN1cHBvcnRz
RnVsbHNjcmVlbigpKQorICAgICAgICAgICAgdmlkZW9FbHQtPmVudGVyRnVsbHNjcmVlbigpOwor
ICAgIH0KKyNlbmRpZgorfQorCitib29sIEhpdFRlc3RSZXN1bHQ6Om1lZGlhQ29udHJvbHNFbmFi
bGVkKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgSFRNTE1lZGlhRWxlbWVudCog
bWVkaWFFbHQobWVkaWFFbGVtZW50KCkpOworICAgIGlmIChtZWRpYUVsdCkKKyAgICAgICAgcmV0
dXJuIG1lZGlhRWx0LT5jb250cm9scygpOworI2VuZGlmCisgICAgcmV0dXJuIGZhbHNlOworfQor
Citib29sIEhpdFRlc3RSZXN1bHQ6Om1lZGlhTG9vcEVuYWJsZWQoKSBjb25zdAoreworI2lmIEVO
QUJMRShWSURFTykKKyAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsdChtZWRpYUVsZW1lbnQo
KSk7CisgICAgaWYgKG1lZGlhRWx0KQorICAgICAgICByZXR1cm4gbWVkaWFFbHQtPmxvb3AoKTsK
KyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBIaXRUZXN0UmVzdWx0OjptZWRp
YVBsYXlpbmcoKSBjb25zdAoreworI2lmIEVOQUJMRShWSURFTykKKyAgICBIVE1MTWVkaWFFbGVt
ZW50KiBtZWRpYUVsdChtZWRpYUVsZW1lbnQoKSk7CisgICAgaWYgKG1lZGlhRWx0KQorICAgICAg
ICByZXR1cm4gIW1lZGlhRWx0LT5wYXVzZWQoKTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsK
K30KKwordm9pZCBIaXRUZXN0UmVzdWx0Ojp0b2dnbGVNZWRpYVBsYXlTdGF0ZSgpIGNvbnN0Cit7
CisjaWYgRU5BQkxFKFZJREVPKQorICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWx0KG1lZGlh
RWxlbWVudCgpKTsKKyAgICBpZiAobWVkaWFFbHQpCisgICAgICAgIG1lZGlhRWx0LT50b2dnbGVQ
bGF5U3RhdGUoKTsKKyNlbmRpZgorfQorCitib29sIEhpdFRlc3RSZXN1bHQ6Om1lZGlhTXV0ZWQo
KSBjb25zdAoreworI2lmIEVOQUJMRShWSURFTykKKyAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRp
YUVsdChtZWRpYUVsZW1lbnQoKSk7CisgICAgaWYgKG1lZGlhRWx0KQorICAgICAgICByZXR1cm4g
bWVkaWFFbHQtPm11dGVkKCk7CisjZW5kaWYKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQg
SGl0VGVzdFJlc3VsdDo6dG9nZ2xlTWVkaWFNdXRlU3RhdGUoKSBjb25zdAoreworI2lmIEVOQUJM
RShWSURFTykKKyAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsdChtZWRpYUVsZW1lbnQoKSk7
CisgICAgaWYgKG1lZGlhRWx0KQorICAgICAgICBtZWRpYUVsdC0+c2V0TXV0ZWQoIW1lZGlhRWx0
LT5tdXRlZCgpKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9I
aXRUZXN0UmVzdWx0LmggYi9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmgKaW5kZXgg
M2E0MjcxOS4uZjRmOGViZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJl
c3VsdC5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaApAQCAtMzIsNiAr
MzIsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGcmFt
ZTsKKyNpZiBFTkFCTEUoVklERU8pCitjbGFzcyBIVE1MTWVkaWFFbGVtZW50OworI2VuZGlmCiBj
bGFzcyBJbWFnZTsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBLVVJMOwpAQCAtODAsNiArODMsMTYg
QEAgcHVibGljOgogICAgIFN0cmluZyB0ZXh0Q29udGVudCgpIGNvbnN0OwogICAgIGJvb2wgaXNM
aXZlTGluaygpIGNvbnN0OwogICAgIGJvb2wgaXNDb250ZW50RWRpdGFibGUoKSBjb25zdDsKKyAg
ICBib29sIGlzVmlkZW9FbGVtZW50KCkgY29uc3Q7CisgICAgdm9pZCB0b2dnbGVNZWRpYUNvbnRy
b2xzRGlzcGxheSgpIGNvbnN0OworICAgIHZvaWQgdG9nZ2xlTWVkaWFMb29wUGxheWJhY2soKSBj
b25zdDsKKyAgICB2b2lkIGVudGVyRnVsbHNjcmVlbkZvclZpZGVvKCkgY29uc3Q7CisgICAgYm9v
bCBtZWRpYUNvbnRyb2xzRW5hYmxlZCgpIGNvbnN0OworICAgIGJvb2wgbWVkaWFMb29wRW5hYmxl
ZCgpIGNvbnN0OworICAgIGJvb2wgbWVkaWFQbGF5aW5nKCkgY29uc3Q7CisgICAgdm9pZCB0b2dn
bGVNZWRpYVBsYXlTdGF0ZSgpIGNvbnN0OworICAgIGJvb2wgbWVkaWFNdXRlZCgpIGNvbnN0Owor
ICAgIHZvaWQgdG9nZ2xlTWVkaWFNdXRlU3RhdGUoKSBjb25zdDsKIAogICAgIC8vIFJlY3QtYmFz
ZWQgaGl0IHRlc3QgcmVsYXRlZCBtZXRob2RzLgogICAgIGJvb2wgaXNSZWN0QmFzZWRUZXN0KCkg
Y29uc3QgeyByZXR1cm4gbV9pc1JlY3RCYXNlZDsgfQpAQCAtOTYsNiArMTA5LDEwIEBAIHB1Ymxp
YzoKIAogcHJpdmF0ZToKIAorI2lmIEVOQUJMRShWSURFTykKKyAgICBIVE1MTWVkaWFFbGVtZW50
KiBtZWRpYUVsZW1lbnQoKSBjb25zdDsKKyNlbmRpZgorCiAgICAgUmVmUHRyPE5vZGU+IG1faW5u
ZXJOb2RlOwogICAgIFJlZlB0cjxOb2RlPiBtX2lubmVyTm9uU2hhcmVkTm9kZTsKICAgICBJbnRQ
b2ludCBtX3BvaW50OwotLSAKMS43LjE=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67650</attachid>
            <date>2010-09-15 00:27:05 -0700</date>
            <delta_ts>2010-09-17 00:40:47 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>proposed-patch.patch</filename>
            <type>text/plain</type>
            <size>45791</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBhZDIxYTYxOGE5MjFkNTNjZGNhMTcxYWRiYjZkOWM1MDcyOGE0YzY1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUaHUsIDkgU2VwIDIwMTAgMDk6MzY6MDUgKzAyMDAKU3ViamVjdDogW1BBVENIXSBw
cm9wb3NlZCBwYXRjaAoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMTUgKysrCiAuLi4vbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMt
ZXhwZWN0ZWQudHh0ICAgICAgICB8ICAgMjYgKysrKwogTGF5b3V0VGVzdHMvbWVkaWEvY29udGV4
dC1tZW51LWFjdGlvbnMuaHRtbCAgICAgICAgfCAgIDkxICsrKysrKysrKysrKysrCiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgICAgICAgICAgICAgICAgICAgfCAgICAyICsK
IFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEx
MyArKysrKysrKysrKysrKysrKysKIFdlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIu
Y3BwICAgICAgICAgICAgIHwgICAyMiArKysrCiBXZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51
LmNwcCAgICAgICAgICAgICAgICAgICB8ICAgNjAgKysrKysrKystCiBXZWJDb3JlL3BsYXRmb3Jt
L0NvbnRleHRNZW51SXRlbS5oICAgICAgICAgICAgICAgICB8ICAgIDggKysKIFdlYkNvcmUvcGxh
dGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCAgICAgICAgICAgIHwgICAxMCArKwogV2ViQ29y
ZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcCAgICAgICAgICAgICAgfCAgIDQ2ICsrKysr
KysKIFdlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oICAgICAgICAgICAgICAgIHwg
ICAxMCArKwogLi4uL3BsYXRmb3JtL2FuZHJvaWQvTG9jYWxpemVkU3RyaW5nc0FuZHJvaWQuY3Bw
ICAgfCAgIDU0ICsrKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9icmV3L0xvY2FsaXplZFN0cmlu
Z3NCcmV3LmNwcCAgICAgfCAgIDQ1ICsrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0vZWZsL0xvY2Fs
aXplZFN0cmluZ3NFZmwuY3BwICAgICAgIHwgICA0NSArKysrKysrCiBXZWJDb3JlL3BsYXRmb3Jt
L2d0ay9Db250ZXh0TWVudUl0ZW1HdGsuY3BwICAgICAgICB8ICAgIDkgKysKIFdlYkNvcmUvcGxh
dGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwICAgICAgIHwgICA0NiArKysrKysrCiBX
ZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0cmluZ3NIYWlrdS5jcHAgICB8ICAgNDUg
KysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS93eC9Mb2NhbGl6ZWRTdHJpbmdzV3guY3BwICAgICAg
ICAgfCAgIDQ1ICsrKysrKysKIFdlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwICAg
ICAgICAgICAgICAgIHwgIDEyNiArKysrKysrKysrKysrKysrKystLQogV2ViQ29yZS9yZW5kZXJp
bmcvSGl0VGVzdFJlc3VsdC5oICAgICAgICAgICAgICAgICAgfCAgIDE3ICsrKwogV2ViS2l0VG9v
bHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE3ICsrKwogV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0V2ZW50U2VuZGVyLmNwcCAgICAgfCAgIDYwICsr
KysrKysrLQogMjMgZmlsZXMgY2hhbmdlZCwgODg5IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9u
cygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL21lZGlhL2NvbnRleHQtbWVudS1h
Y3Rpb25zLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL21lZGlh
L2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDU5YjVhNC4uNzg2N2I5MyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTA5LTE1ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1h
bmRAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBbR1RLXSBlbmhhbmNlZCBjb250ZXh0IG1lbnUgZm9yIG1lZGlhIGVsZW1lbnRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTAyMQorCisg
ICAgICAgIE5ldyB0ZXN0IGNoZWNraW5nIHRoZSBhY3Rpb25zIHRoYXQgY2FuIGJlIHRyaWdnZXJl
ZCBieSBhY3RpdmF0aW5nCisgICAgICAgIHRoZSBjb250ZXgtbWVudSBvZiB0aGUgbWVkaWEgZWxl
bWVudC4gU2tpcHBlZCBvbiBxdCBhbmQgd2luLgorCisgICAgICAgICogbWVkaWEvY29udGV4dC1t
ZW51LWFjdGlvbnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9jb250ZXh0
LW1lbnUtYWN0aW9ucy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVk
OgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgorCiAyMDEwLTA5LTE0ICBQaGlsaXBw
ZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL2NvbnRleHQtbWVu
dS1hY3Rpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL2NvbnRleHQtbWVudS1h
Y3Rpb25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42
OTE4ZjNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvY29udGV4dC1tZW51
LWFjdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjYgQEAKK1Rlc3QgdGhlIHZhcmlvdXMg
YWN0aW9ucyBhdmFpbGFibGUgaW4gdGhlIEhUTUw1IG1lZGlhIGVsZW1lbnQgY29udGV4dC1tZW51
LgorCitSVU4odmlkZW8uc3JjID0gJ2NvbnRlbnQvdGVzdC5tcDQnKQorRVZFTlQocGxheSkKK0VY
UEVDVEVEICh2aWRlby5wYXVzZWQgPT0gJ2ZhbHNlJykgT0sKK1RvZ2dsaW5nIHBsYXkgc3RhdGUK
K0VYUEVDVEVEICh2aWRlby5wYXVzZWQgPT0gJ3RydWUnKSBPSworCitFWFBFQ1RFRCAodmlkZW8u
bXV0ZWQgPT0gJ2ZhbHNlJykgT0sKK1RvZ2dsaW5nIG11dGUgc3RhdGUKK0VYUEVDVEVEICh2aWRl
by5tdXRlZCA9PSAndHJ1ZScpIE9LCisKK0VYUEVDVEVEICh2aWRlby5jb250cm9scyA9PSAndHJ1
ZScpIE9LCitUb2dnbGluZyBtZWRpYSBjb250cm9scworRVhQRUNURUQgKHZpZGVvLmNvbnRyb2xz
ID09ICdmYWxzZScpIE9LCisKK0VYUEVDVEVEICh2aWRlby5sb29wID09ICdmYWxzZScpIE9LCitU
b2dnbGluZyBsb29wIHN0YXRlCitFWFBFQ1RFRCAodmlkZW8ubG9vcCA9PSAndHJ1ZScpIE9LCisK
K0VYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAnZmFsc2UnKSBP
SworVG9nZ2xpbmcgZnVsbHNjcmVlbiBzdGF0ZQorRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3Bs
YXlpbmdGdWxsc2NyZWVuID09ICd0cnVlJykgT0sKKworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMuaHRtbCBiL0xheW91dFRl
c3RzL21lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMWYzNTI5ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21l
ZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwKQEAgLTAsMCArMSw5MSBAQAorPGh0bWw+Cis8
aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhLWZpbGUuanMiPjwvc2NyaXB0PgorICAg
ICAgICA8c2NyaXB0IHNyYz12aWRlby10ZXN0LmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0
PgorCisgICAgICAgICAgICBmdW5jdGlvbiBjYW5wbGF5dGhyb3VnaCgpCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAg
ICAgICAgICAgICAgICAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAg
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAg
ICAgICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOwor
CisgICAgICAgICAgICAgICAgdmFyIHgsIHksIGl0ZW1zOworICAgICAgICAgICAgICAgIHggPSB2
aWRlby5vZmZzZXRQYXJlbnQub2Zmc2V0TGVmdCArIHZpZGVvLm9mZnNldExlZnQgKyB2aWRlby5v
ZmZzZXRXaWR0aCAvIDI7CisgICAgICAgICAgICAgICAgeSA9IHZpZGVvLm9mZnNldFBhcmVudC5v
ZmZzZXRUb3AgKyB2aWRlby5vZmZzZXRUb3AgKyB2aWRlby5vZmZzZXRIZWlnaHQgLyAyOworICAg
ICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOworICAgICAgICAgICAg
ICAgIGl0ZW1zID0gZXZlbnRTZW5kZXIuY29udGV4dENsaWNrKCk7CisKKworICAgICAgICAgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbXNbaV0udGl0bGUubWF0Y2goIkNvbnRy
b2xzIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5jb250
cm9scyIsIHRydWUsICc9PScpOworICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUo
IlRvZ2dsaW5nIG1lZGlhIGNvbnRyb2xzIik7CisgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1z
W2ldLmNsaWNrKCk7CisgICAgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8u
Y29udHJvbHMiLCBmYWxzZSwgJz09Jyk7CisgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVX
cml0ZSgiIik7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBp
ZiAoaXRlbXNbaV0udGl0bGUubWF0Y2goIlBhdXNlIikpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5wYXVzZWQiLCBmYWxzZSwgJz09Jyk7CisgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVG9nZ2xpbmcgcGxheSBzdGF0ZSIpOworICAgICAg
ICAgICAgICAgICAgICAgICBpdGVtc1tpXS5jbGljaygpOworICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnBhdXNlZCIsIHRydWUsICc9PScpOworICAgICAgICAgICAg
ICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLnRpdGxlLm1hdGNoKCJMb29wIikpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5sb29wIiwgZmFsc2UsICc9
PScpOworICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRvZ2dsaW5nIGxvb3Ag
c3RhdGUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNbaV0uY2xpY2soKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5sb29wIiwgdHJ1ZSwgJz09Jyk7
CisgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbXNbaV0udGl0bGUubWF0Y2go
Ik11dGUiKSkgeworICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLm11
dGVkIiwgZmFsc2UsICc9PScpOworICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUo
IlRvZ2dsaW5nIG11dGUgc3RhdGUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNbaV0u
Y2xpY2soKTsKKyAgICAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5tdXRl
ZCIsIHRydWUsICc9PScpOworICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIp
OworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1z
W2ldLnRpdGxlLm1hdGNoKCJGdWxsc2NyZWVuIikgJiYgdmlkZW8ud2Via2l0U3VwcG9ydHNGdWxs
c2NyZWVuKSB7CisgICAgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ud2Vi
a2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4iLCBmYWxzZSwgJz09Jyk7CisgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnNvbGVXcml0ZSgiVG9nZ2xpbmcgZnVsbHNjcmVlbiBzdGF0ZSIpOworICAgICAg
ICAgICAgICAgICAgICAgICBpdGVtc1tpXS5jbGljaygpOworICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIiwgdHJ1ZSwg
Jz09Jyk7CisgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiB0ZXN0IGNvcHkg
bGluayBsb2NhdGlvbiBhbmQgb3BlbiBpbiBuZXcgd2luZG93LgorICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICAgICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBm
dW5jdGlvbiBzdGFydCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZmluZE1lZGlh
RWxlbWVudCgpOworICAgICAgICAgICAgICAgIHdhaXRGb3JFdmVudCgncGxheScsIGNhbnBsYXl0
aHJvdWdoKTsKKyAgICAgICAgICAgICAgICBydW4oInZpZGVvLnNyYyA9ICciICsgZmluZE1lZGlh
RmlsZSgidmlkZW8iLCAiY29udGVudC90ZXN0IikgKyAiJyIpOworICAgICAgICAgICAgfQorCisg
ICAgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InN0YXJ0KCkiPgorICAgIDxw
PlRlc3QgdGhlIHZhcmlvdXMgYWN0aW9ucyBhdmFpbGFibGUgaW4gdGhlIEhUTUw1IG1lZGlhIGVs
ZW1lbnQgY29udGV4dC1tZW51LjwvcD4KKyAgICA8dmlkZW8gaWQ9InZpZGVvIiBhdXRvcGxheSBj
b250cm9scz48L3ZpZGVvPgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBl
ZAppbmRleCA2YzdlYmQ3Li4wMWFiMTM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTIy
NzIsNiArMjI3Miw4IEBAIGVkaXRpbmcvc2VsZWN0aW9uLzUxOTUxNjYtMS5odG1sCiAKICMgbWlz
c2luZyBEUlQgZmVhdHVyZSwgc2VlIGFsc28gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM5MTAyCiBlZGl0aW5nL3NlbGVjdGlvbi9jb250ZXh0LW1lbnUtb24tdGV4dC5o
dG1sCisjIGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUwMjEK
K21lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwKIAogIyA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PSAjCiAjIEZhaWxpbmcgZWRpdGluZy9zcGVsbGluZyB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tp
cHBlZAppbmRleCA4NDYwY2Y0Li45ZWY5Y2JkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApA
QCAtMjk3LDYgKzI5Nyw4IEBAIGh0dHAvdGVzdHMvY3NzL2Nzcy1pbWFnZS1sb2FkaW5nLmh0bWwK
IAogIyBtaXNzaW5nIERSVCBmZWF0dXJlLCBzZWUgYWxzbyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzkxMDIKIGVkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS1v
bi10ZXh0Lmh0bWwKKyMgYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00NTAyMQorbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMuaHRtbAogCiAjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgTm8gYnVncyBmaWxlZCBhYm91dCB0
aGUgYmVsb3cgeWV0IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2VkM2ZkZS4uNGJiNzNlZSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTYgQEAKKzIwMTAtMDktMTUgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFtHVEtdIGVuaGFuY2VkIGNvbnRleHQgbWVudSBmb3IgbWVkaWEgZWxlbWVudHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MDIxCisKKyAgICAgICAg
TmV3IGl0ZW1zIGluIHRoZSBtZWRpYSBFbGVtZW50IGNvbnRleHQgbWVudToKKyAgICAgICAgLSBw
bGF5L3BhdXNlCisgICAgICAgIC0gbXV0ZS91bm11dGUKKyAgICAgICAgLSBjb250cm9scyBkaXNw
bGF5IGNvbnRyb2wKKyAgICAgICAgLSBzd2l0Y2ggdG8gZnVsbHNjcmVlbiAoZm9yIHZpZGVvIG9u
bHkpCisgICAgICAgIC0gbG9vcCBwbGF5YmFjayBjb250cm9sCisgICAgICAgIC0gY29weSBtZWRp
YSB1cmwgdG8gY2xpcGJvYXJkCisgICAgICAgIC0gb3BlbiBpbiBuZXcgd2luZG93CisKKyAgICAg
ICAgVGVzdDogbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMuaHRtbAorCisgICAgICAgICogcGFn
ZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1l
bnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6CisgICAgICAgICogcGxhdGZv
cm0vQ29udGV4dE1lbnUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnU6OnBvcHVs
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51OjpjaGVja09yRW5hYmxlSWZOZWVk
ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oOgorICAgICAgICAqIHBs
YXRmb3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5Lmg6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxp
emVkU3RyaW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVu
TWVkaWFJbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdD
b3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVu
dUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z01lZGlhUGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFN
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhVW5NdXRlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmg6CisgICAgICAgICogcGxhdGZv
cm0vYW5kcm9pZC9Mb2NhbGl6ZWRTdHJpbmdzQW5kcm9pZC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3ApOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ01lZGlhVW5NdXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9icmV3L0xvY2FsaXpl
ZFN0cmluZ3NCcmV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09w
ZW5NZWRpYUluTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVu
dUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVu
dUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdNZWRpYVBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnTWVkaWFQYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRp
YU11dGUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11dGUp
OgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2Fy
ZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRy
b2xzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9v
cCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNj
cmVlbik6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkpOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11dGUpOgorICAgICAgICAqIHBsYXRmb3JtL2d0
ay9Db250ZXh0TWVudUl0ZW1HdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z3RrU3RvY2tJREZy
b21Db250ZXh0TWVudUFjdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0
cmluZ3NHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3Blbk1l
ZGlhSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29w
eU1lZGlhTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnVG9nZ2xlTWVkaWFMb29wKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ01lZGlhUGxheSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdN
ZWRpYVBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVVuTXV0ZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vaGFpa3UvTG9jYWxpemVkU3RyaW5nc0hhaWt1LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2Fy
ZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRy
b2xzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9v
cCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNj
cmVlbik6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkpOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11dGUpOgorICAgICAgICAqIHBsYXRmb3JtL3d4
L0xvY2FsaXplZFN0cmluZ3NXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVu
dUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnTWVkaWFNdXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlh
VW5NdXRlKToKKyAgICAgICAgKiByZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjphYnNvbHV0ZU1lZGlhVVJMKToKKyAgICAgICAgKFdl
YkNvcmU6OkhpdFRlc3RSZXN1bHQ6Om1lZGlhU3VwcG9ydHNGdWxsc2NyZWVuKToKKyAgICAgICAg
KFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQ6Om1lZGlhRWxlbWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpIaXRUZXN0UmVzdWx0Ojp0b2dnbGVNZWRpYUNvbnRyb2xzRGlzcGxheSk6CisgICAgICAgIChX
ZWJDb3JlOjpIaXRUZXN0UmVzdWx0Ojp0b2dnbGVNZWRpYUxvb3BQbGF5YmFjayk6CisgICAgICAg
IChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjplbnRlckZ1bGxzY3JlZW5Gb3JWaWRlbyk6CisgICAg
ICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjptZWRpYUNvbnRyb2xzRW5hYmxlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjptZWRpYUxvb3BFbmFibGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQ6Om1lZGlhUGxheWluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpIaXRUZXN0UmVzdWx0Ojp0b2dnbGVNZWRpYVBsYXlTdGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpIaXRUZXN0UmVzdWx0OjptZWRpYU11dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RS
ZXN1bHQ6OnRvZ2dsZU1lZGlhTXV0ZVN0YXRlKToKKyAgICAgICAgKiByZW5kZXJpbmcvSGl0VGVz
dFJlc3VsdC5oOgorCiAyMDEwLTA5LTE0ICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkOyBhbiBhdHRlbXB0IHRvIGZpeCBDaHJvbWl1bSBX
aW5kb3dzIGJ1aWxkLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJv
bGxlci5jcHAgYi9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAppbmRleCBk
MjMxN2QyLi5kZTY0OTg4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250
cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcApA
QCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwK
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTg2LDYgKzE4NywyNyBAQCB2b2lk
IENvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1l
bnVJdGVtKiBpdGVtKQogICAgICAgICAvLyBGb3Igbm93LCBjYWxsIGludG8gdGhlIGNsaWVudC4g
VGhpcyBpcyB0ZW1wb3JhcnkhCiAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS0+Y29weUltYWdlKHJl
c3VsdCk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnT3Blbk1l
ZGlhSW5OZXdXaW5kb3c6CisgICAgICAgIG9wZW5OZXdXaW5kb3cocmVzdWx0LmFic29sdXRlTWVk
aWFVUkwoKSwgZnJhbWUpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbnRleHRNZW51SXRl
bVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZDoKKyAgICAgICAgZnJhbWUtPmVkaXRvcigpLT5j
b3B5VVJMKHJlc3VsdC5hYnNvbHV0ZU1lZGlhVVJMKCksIHJlc3VsdC50ZXh0Q29udGVudCgpKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNv
bnRyb2xzOgorICAgICAgICByZXN1bHQudG9nZ2xlTWVkaWFDb250cm9sc0Rpc3BsYXkoKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3A6
CisgICAgICAgIHJlc3VsdC50b2dnbGVNZWRpYUxvb3BQbGF5YmFjaygpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuOgorICAg
ICAgICByZXN1bHQuZW50ZXJGdWxsc2NyZWVuRm9yVmlkZW8oKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXlQYXVzZToKKyAgICAgICAgcmVzdWx0
LnRvZ2dsZU1lZGlhUGxheVN0YXRlKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29udGV4
dE1lbnVJdGVtVGFnTWVkaWFNdXRlOgorICAgICAgICByZXN1bHQudG9nZ2xlTWVkaWFNdXRlU3Rh
dGUoKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJh
bWVJbk5ld1dpbmRvdzogewogICAgICAgICBEb2N1bWVudExvYWRlciogbG9hZGVyID0gZnJhbWUt
PmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpOwogICAgICAgICBpZiAoIWxvYWRlci0+dW5yZWFj
aGFibGVVUkwoKS5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRl
eHRNZW51LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnUuY3BwCmluZGV4IDM3ZDRj
MmIuLjMzYzJmMTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnUuY3Bw
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnUuY3BwCkBAIC0xLDYgKzEsNyBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ2hyaXN0aWFuIER5d2FuIDxjaHJpc3RpYW5A
aW1lbmRpby5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTAogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yODIsNiArMjgzLDIwIEBAIHZvaWQgQ29udGV4dE1l
bnU6OnBvcHVsYXRlKCkKICAgICAgICAgY29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRv
RGlzaygpKTsKICAgICBDb250ZXh0TWVudUl0ZW0gQ29weUltYWdlSXRlbShBY3Rpb25UeXBlLCBD
b250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCwgCiAgICAgICAgIGNvbnRleHRN
ZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkpOworICAgIENvbnRleHRNZW51SXRlbSBP
cGVuTWVkaWFJbk5ld1dpbmRvd0l0ZW0oQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnT3Bl
bk1lZGlhSW5OZXdXaW5kb3csIAorICAgICAgICBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJ
bk5ld1dpbmRvdygpKTsKKyAgICBDb250ZXh0TWVudUl0ZW0gQ29weU1lZGlhTGlua0l0ZW0oQWN0
aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkLCAKKyAg
ICAgICAgY29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKCkpOworICAg
IENvbnRleHRNZW51SXRlbSBNZWRpYVBsYXlQYXVzZShBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0
ZW1UYWdNZWRpYVBsYXlQYXVzZSwgCisgICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxh
eSgpKTsKKyAgICBDb250ZXh0TWVudUl0ZW0gTWVkaWFNdXRlKEFjdGlvblR5cGUsIENvbnRleHRN
ZW51SXRlbVRhZ01lZGlhTXV0ZSwgCisgICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0
ZSgpKTsKKyAgICBDb250ZXh0TWVudUl0ZW0gVG9nZ2xlTWVkaWFDb250cm9scyhDaGVja2FibGVB
Y3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzLCAKKyAgICAg
ICAgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpKTsKKyAgICBDb250ZXh0
TWVudUl0ZW0gVG9nZ2xlTWVkaWFMb29wKENoZWNrYWJsZUFjdGlvblR5cGUsIENvbnRleHRNZW51
SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCwgCisgICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2ds
ZU1lZGlhTG9vcCgpKTsKKyAgICBDb250ZXh0TWVudUl0ZW0gRW50ZXJWaWRlb0Z1bGxzY3JlZW4o
QWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4sIAorICAg
ICAgICBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpKTsKICNpZiBQTEFU
Rk9STShNQUMpCiAgICAgQ29udGV4dE1lbnVJdGVtIFNlYXJjaFNwb3RsaWdodEl0ZW0oQWN0aW9u
VHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90bGlnaHQsIAogICAgICAgICBjb250
ZXh0TWVudUl0ZW1UYWdTZWFyY2hJblNwb3RsaWdodCgpKTsKQEAgLTM0OSw2ICszNjQsMjMgQEAg
dm9pZCBDb250ZXh0TWVudTo6cG9wdWxhdGUoKQogICAgICAgICAgICAgICAgIGFwcGVuZEl0ZW0o
Q29weUltYWdlSXRlbSk7CiAgICAgICAgIH0KIAorICAgICAgICBLVVJMIG1lZGlhVVJMID0gcmVz
dWx0LmFic29sdXRlTWVkaWFVUkwoKTsKKyAgICAgICAgaWYgKCFtZWRpYVVSTC5pc0VtcHR5KCkp
IHsKKyAgICAgICAgICAgIGlmICghbGlua1VSTC5pc0VtcHR5KCkgfHwgIWltYWdlVVJMLmlzRW1w
dHkoKSkKKyAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKCpzZXBhcmF0b3JJdGVtKCkpOworCisg
ICAgICAgICAgICBhcHBlbmRJdGVtKE1lZGlhUGxheVBhdXNlKTsKKyAgICAgICAgICAgIGFwcGVu
ZEl0ZW0oTWVkaWFNdXRlKTsKKyAgICAgICAgICAgIGFwcGVuZEl0ZW0oVG9nZ2xlTWVkaWFDb250
cm9scyk7CisgICAgICAgICAgICBhcHBlbmRJdGVtKFRvZ2dsZU1lZGlhTG9vcCk7CisgICAgICAg
ICAgICBpZiAocmVzdWx0Lm1lZGlhU3VwcG9ydHNGdWxsc2NyZWVuKCkpCisgICAgICAgICAgICAg
ICAgYXBwZW5kSXRlbShFbnRlclZpZGVvRnVsbHNjcmVlbik7CisKKyAgICAgICAgICAgIGFwcGVu
ZEl0ZW0oKnNlcGFyYXRvckl0ZW0oKSk7CisgICAgICAgICAgICBhcHBlbmRJdGVtKENvcHlNZWRp
YUxpbmtJdGVtKTsKKyAgICAgICAgICAgIGFwcGVuZEl0ZW0oT3Blbk1lZGlhSW5OZXdXaW5kb3dJ
dGVtKTsKKyAgICAgICAgfQorCiAgICAgICAgIGlmIChpbWFnZVVSTC5pc0VtcHR5KCkgJiYgbGlu
a1VSTC5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIGlmIChyZXN1bHQuaXNTZWxlY3RlZCgpKSB7
CiAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdGlvbkNvbnRhaW5zUG9zc2libGVXb3JkKGZyYW1l
KSkgewpAQCAtMzc1LDEyICs0MDcsNiBAQCB2b2lkIENvbnRleHRNZW51Ojpwb3B1bGF0ZSgpCiAj
aWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAgICAgICAgICAgICBpZiAoIShmcmFtZS0+cGFnZSgp
ICYmIGZyYW1lLT5wYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+aGFzSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnQoKSkpIHsKICNlbmRpZgotI2lmIFBMQVRGT1JNKEdUSykKLSAgICAgICAgICAg
ICAgICBhcHBlbmRJdGVtKEJhY2tJdGVtKTsKLSAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKEZv
cndhcmRJdGVtKTsKLSAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKFN0b3BJdGVtKTsKLSAgICAg
ICAgICAgICAgICBhcHBlbmRJdGVtKFJlbG9hZEl0ZW0pOwotI2Vsc2UKICAgICAgICAgICAgICAg
ICBpZiAoZnJhbWUtPnBhZ2UoKSAmJiBmcmFtZS0+cGFnZSgpLT5jYW5Hb0JhY2tPckZvcndhcmQo
LTEpKQogICAgICAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKEJhY2tJdGVtKTsKIApAQCAtMzkz
LDcgKzQxOSw2IEBAIHZvaWQgQ29udGV4dE1lbnU6OnBvcHVsYXRlKCkKICAgICAgICAgICAgICAg
ICAgICAgYXBwZW5kSXRlbShTdG9wSXRlbSk7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgICAgICAgICBhcHBlbmRJdGVtKFJlbG9hZEl0ZW0pOwotI2VuZGlmCiAjaWYgRU5BQkxF
KElOU1BFQ1RPUikKICAgICAgICAgICAgICAgICB9CiAjZW5kaWYKQEAgLTc4OCw2ICs4MTMsMTUg
QEAgdm9pZCBDb250ZXh0TWVudTo6Y2hlY2tPckVuYWJsZUlmTmVlZGVkKENvbnRleHRNZW51SXRl
bSYgaXRlbSkgY29uc3QKICAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJ
bk5ld1dpbmRvdzoKICAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdl
VG9EaXNrOgogICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJv
YXJkOgorICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93
OgorICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2Fy
ZDoKKyAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzOgor
ICAgICAgICAgICAgc2hvdWxkQ2hlY2sgPSBtX2hpdFRlc3RSZXN1bHQubWVkaWFDb250cm9sc0Vu
YWJsZWQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENvbnRleHRNZW51SXRl
bVRhZ1RvZ2dsZU1lZGlhTG9vcDoKKyAgICAgICAgICAgIHNob3VsZENoZWNrID0gbV9oaXRUZXN0
UmVzdWx0Lm1lZGlhTG9vcEVuYWJsZWQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIENvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuOgogICAgICAgICBjYXNl
IENvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93OgogICAgICAgICBjYXNlIENv
bnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nR3Vlc3M6CiAgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJ
dGVtVGFnT3RoZXI6CkBAIC04MjMsNiArODU3LDE4IEBAIHZvaWQgQ29udGV4dE1lbnU6OmNoZWNr
T3JFbmFibGVJZk5lZWRlZChDb250ZXh0TWVudUl0ZW0mIGl0ZW0pIGNvbnN0CiAgICAgICAgIGNh
c2UgQ29udGV4dE1lbnVJdGVtTGFzdEN1c3RvbVRhZzoKICAgICAgICAgY2FzZSBDb250ZXh0TWVu
dUl0ZW1CYXNlQXBwbGljYXRpb25UYWc6CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBDb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXlQYXVzZToKKyAgICAgICAgICAgIGlmIChtX2hp
dFRlc3RSZXN1bHQubWVkaWFQbGF5aW5nKCkpCisgICAgICAgICAgICAgICAgaXRlbS5zZXRUaXRs
ZShjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkpOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIGl0ZW0uc2V0VGl0bGUoY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnTWVk
aWFNdXRlOgorICAgICAgICAgICAgaWYgKG1faGl0VGVzdFJlc3VsdC5tZWRpYU11dGVkKCkpCisg
ICAgICAgICAgICAgICAgaXRlbS5zZXRUaXRsZShjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVVuTXV0
ZSgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpdGVtLnNldFRpdGxlKGNv
bnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgIH0K
IAogICAgIGl0ZW0uc2V0Q2hlY2tlZChzaG91bGRDaGVjayk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVu
dUl0ZW0uaAppbmRleCAwNThmNjQ0Li5mN2ZhNWU2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL0NvbnRleHRNZW51SXRlbS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJ
dGVtLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENv
bXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEw
IElnYWxpYSBTLkwKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTQzLDYgKzE0
NCwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIENvbnRleHRNZW51SXRlbVRhZ0Nh
cGl0YWxpemUsCiAgICAgICAgIENvbnRleHRNZW51SXRlbVRhZ0NoYW5nZUJhY2ssCiAjZW5kaWYK
KyAgICAgICAgQ29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3csCisgICAgICAg
IENvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCwKKyAgICAgICAgQ29u
dGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scywKKyAgICAgICAgQ29udGV4dE1lbnVJ
dGVtVGFnVG9nZ2xlTWVkaWFMb29wLAorICAgICAgICBDb250ZXh0TWVudUl0ZW1UYWdFbnRlclZp
ZGVvRnVsbHNjcmVlbiwKKyAgICAgICAgQ29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5UGF1c2Us
CisgICAgICAgIENvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSwKICAgICAgICAgQ29udGV4dE1l
bnVJdGVtQmFzZUN1c3RvbVRhZyA9IDUwMDAsCiAgICAgICAgIENvbnRleHRNZW51SXRlbUN1c3Rv
bVRhZ05vQWN0aW9uID0gNTk5OCwKICAgICAgICAgQ29udGV4dE1lbnVJdGVtTGFzdEN1c3RvbVRh
ZyA9IDU5OTksCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXphdGlvblN0cmF0
ZWd5LmggYi9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5LmgKaW5kZXggMTc4
Y2ZhMi4uNmM0ZGI2YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6YXRpb25T
dHJhdGVneS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaApA
QCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwKICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTEyLDYgKzExMywxNSBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2FwaXRhbGl6ZSgpID0gMDsKICAg
ICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGFuZ2VCYWNrKGNvbnN0IFN0cmlu
ZyYgcmVwbGFjZWRTdHJpbmcpID0gMDsKICNlbmRpZgorICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KCkgPSAwOworICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCgpID0gMDsKKyAg
ICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkg
PSAwOworICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9v
cCgpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVv
RnVsbHNjcmVlbigpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdN
ZWRpYVBsYXkoKSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVk
aWFQYXVzZSgpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRp
YU11dGUoKSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFV
bk11dGUoKSA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5zcGVj
dEVsZW1lbnQoKSA9IDA7CiAjZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCmluZGV4IGE2OWUwZmIuLmIyZTZiNTEgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwKICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzYyLDYgKzM2Myw1MSBAQCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnQ2hhbmdlQmFjayhjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nKQogfQogCiAj
ZW5kaWYgLy8gUExBVEZPUk0oTUFDKQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Blbk1l
ZGlhSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9j
YWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5k
b3coKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBi
b2FyZCgpCit7CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2NhbGl6YXRpb25T
dHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQoKTsK
K30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKQorewor
ICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+
Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpOworfQorCitTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkKK3sKKyAgICByZXR1cm4gcGxhdGZvcm1T
dHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1Rv
Z2dsZU1lZGlhTG9vcCgpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRl
b0Z1bGxzY3JlZW4oKQoreworICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4o
KTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpCit7CisgICAgcmV0
dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0
TWVudUl0ZW1UYWdNZWRpYVBsYXkoKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01l
ZGlhUGF1c2UoKQoreworICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpOworfQorCitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkKK3sKKyAgICByZXR1cm4gcGxhdGZvcm1T
dHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ01l
ZGlhTXV0ZSgpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11dGUoKQor
eworICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3ko
KS0+Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11dGUoKTsKK30KICAgICAKIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgpCiB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaCBiL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3Ry
aW5ncy5oCmluZGV4IDA0MDQyYjYuLmUxM2E0MDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vTG9jYWxpemVkU3RyaW5ncy5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3Ry
aW5ncy5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwg
MjAwOSBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTEwOCw2ICsxMDksMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplKCk7CiAgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0NoYW5nZUJhY2soY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZyk7CiAjZW5kaWYKKyAgICBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3coKTsKKyAgICBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKCk7CisgICAgU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKTsKKyAgICBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCk7CisgICAgU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCk7CisgICAgU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ01lZGlhUGxheSgpOworICAgIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBh
dXNlKCk7CisgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpOworICAgIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVVuTXV0ZSgpOwogICAgIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgpOwogI2VuZGlmIC8vIEVOQUJMRShDT05URVhUX01F
TlVTKQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvTG9jYWxpemVkU3Ry
aW5nc0FuZHJvaWQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL0xvY2FsaXplZFN0cmlu
Z3NBbmRyb2lkLmNwcAppbmRleCAyZmM4ODBiLi44ZDkyNTBhIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL2FuZHJvaWQvTG9jYWxpemVkU3RyaW5nc0FuZHJvaWQuY3BwCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vYW5kcm9pZC9Mb2NhbGl6ZWRTdHJpbmdzQW5kcm9pZC5jcHAKQEAgLTgxLDYg
KzgxLDYwIEBAIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgp
CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Bl
bk1lZGlhSW5OZXdXaW5kb3coKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IFN0cmluZygpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1Rv
Q2xpcGJvYXJkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmco
KTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxh
eSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisK
K1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ01lZGlhTXV0ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3Ry
aW5nKCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVVuTXV0ZSgpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9Mb2NhbGl6ZWRTdHJp
bmdzQnJldy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvTG9jYWxpemVkU3RyaW5nc0JyZXcu
Y3BwCmluZGV4IDFiYzU5ODUuLmI1Mjg5YzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
YnJldy9Mb2NhbGl6ZWRTdHJpbmdzQnJldy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9icmV3
L0xvY2FsaXplZFN0cmluZ3NCcmV3LmNwcApAQCAtOTYsNiArOTYsNTEgQEAgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkKICAgICByZXR1cm4gIkNvcHkgaW1h
Z2UgdG8gY2xpcGJvYXJkIjsKIH0KIAorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRp
YUluTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gIk9wZW4gTWVkaWEgaW4gTmV3IFdpbmRvdyI7
Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQo
KQoreworICAgIHJldHVybiAiQ29weSBNZWRpYSBMaW5rIExvY2F0aW9uIjsKK30KKworU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKQoreworICAgIHJldHVybiAi
VG9nZ2xlIE1lZGlhIENvbnRyb2xzIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Rv
Z2dsZU1lZGlhTG9vcCgpCit7CisgICAgcmV0dXJuICJUb2dnbGUgTWVkaWEgTG9vcCBQbGF5YmFj
ayI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigp
Cit7CisgICAgcmV0dXJuICJTd2l0Y2ggVmlkZW8gdG8gRnVsbHNjcmVlbiI7Cit9CisKK1N0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQoreworICAgIHJldHVybiAiUGxheSI7Cit9
CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkKK3sKKyAgICByZXR1cm4g
IlBhdXNlIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpCit7Cisg
ICAgcmV0dXJuICJNdXRlIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhVW5N
dXRlKCkKK3sKKyAgICByZXR1cm4gIlVuTXV0ZSI7Cit9CisKIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpCiB7CiAgICAgcmV0dXJuICJPcGVuIGZyYW1lIGlu
IG5ldyB3aW5kb3ciOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9jYWxpemVk
U3RyaW5nc0VmbC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZs
LmNwcAppbmRleCA2MDIzMjA1Li5jNjQ1ZTBkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9M
b2NhbGl6ZWRTdHJpbmdzRWZsLmNwcApAQCAtOTgsNiArOTgsNTEgQEAgU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkKICAgICByZXR1cm4gU3RyaW5nOjpmcm9t
VVRGOCgiQ29weSBJbWFnZSIpOwogfQogCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Blbk1l
ZGlhSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJPcGVuIE1l
ZGlhIGluIE5ldyBXaW5kb3ciKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlN
ZWRpYUxpbmtUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIkNv
cHkgTWVkaWEgTGluayBMb2NhdGlvbiIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
VG9nZ2xlTWVkaWFDb250cm9scygpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIlRv
Z2dsZSBNZWRpYSBDb250cm9scyIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9n
Z2xlTWVkaWFMb29wKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiVG9nZ2xlIE1l
ZGlhIExvb3AgUGxheWJhY2siKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0VudGVy
VmlkZW9GdWxsc2NyZWVuKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiU3dpdGNo
IFZpZGVvIHRvIEZ1bGxzY3JlZW4iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01l
ZGlhUGxheSgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIlBsYXkiKTsKK30KKwor
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKQoreworICAgIHJldHVybiBTdHJp
bmc6OmZyb21VVEY4KCJQYXVzZSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVk
aWFNdXRlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiTXV0ZSIpOworfQorCitT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11dGUoKQoreworICAgIHJldHVybiBTdHJp
bmc6OmZyb21VVEY4KCJVbk11dGUiKTsKK30KKwogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09w
ZW5GcmFtZUluTmV3V2luZG93KCkKIHsKICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiT3Bl
biBGcmFtZSBpbiBOZXcgV2luZG93Iik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9Db250ZXh0TWVudUl0ZW1HdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29udGV4dE1l
bnVJdGVtR3RrLmNwcAppbmRleCBlMmM1Yjg0Li5iZDI1YTRhIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9Db250ZXh0TWVudUl0ZW1HdGsuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL0NvbnRleHRNZW51SXRlbUd0ay5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogIENv
cHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogIENvcHlyaWdo
dCAoQykgMjAxMCBJZ2FsaWEgUy5MCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0zMywxMSArMzQs
MTMgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGd0a1N0b2NrSURGcm9tQ29udGV4dE1lbnVBY3Rpb24o
Y29uc3QgQ29udGV4dE1lbnVBY3Rpb24mIGFjdGkKICAgICBzd2l0Y2ggKGFjdGlvbikgewogICAg
IGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZDoKICAgICBjYXNlIENv
bnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkOgorICAgIGNhc2UgQ29udGV4dE1l
bnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkOgogICAgIGNhc2UgQ29udGV4dE1lbnVJ
dGVtVGFnQ29weToKICAgICAgICAgcmV0dXJuIEdUS19TVE9DS19DT1BZOwogICAgIGNhc2UgQ29u
dGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdzoKICAgICBjYXNlIENvbnRleHRNZW51
SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93OgogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFn
T3BlbkZyYW1lSW5OZXdXaW5kb3c6CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVk
aWFJbk5ld1dpbmRvdzoKICAgICAgICAgcmV0dXJuIEdUS19TVE9DS19PUEVOOwogICAgIGNhc2Ug
Q29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrOgogICAgIGNhc2UgQ29udGV4dE1l
bnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzazoKQEAgLTk5LDYgKzEwMiwxMiBAQCBzdGF0aWMg
Y29uc3QgY2hhciogZ3RrU3RvY2tJREZyb21Db250ZXh0TWVudUFjdGlvbihjb25zdCBDb250ZXh0
TWVudUFjdGlvbiYgYWN0aQogICAgICAgICByZXR1cm4gR1RLX1NUT0NLX1VOREVSTElORTsKICAg
ICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1Nob3dDb2xvcnM6CiAgICAgICAgIHJldHVybiBHVEtf
U1RPQ0tfU0VMRUNUX0NPTE9SOworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVk
aWFDb250cm9sczoKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcDoK
KyAgICAgICAgLy8gTm8gaWNvbiBmb3IgdGhpcy4KKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAg
Y2FzZSBDb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbjoKKyAgICAgICAgcmV0
dXJuIEdUS19TVE9DS19GVUxMU0NSRUVOOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBO
VUxMOwogICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0
cmluZ3NHdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5nc0d0ay5j
cHAKaW5kZXggNDMyYzkyZi4uNDk5MTIzYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvTG9jYWxpemVkU3RyaW5nc0d0ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvTG9j
YWxpemVkU3RyaW5nc0d0ay5jcHAKQEAgLTQsNiArNCw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKICAqIENvcHlyaWdodCAoQykgMjAwOCBDaHJp
c3RpYW4gRHl3YW4gPGNocmlzdGlhbkBpbWVuZGlvLmNvbT4KICAqIENvcHlyaWdodCAoQykgMjAw
OCBOdWFudGkgTHRkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwKICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTEwLDYgKzExMSw1MSBAQCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKQogICAgIHJldHVybiBTdHJpbmc6OmZy
b21VVEY4KF8oIkNvcF95IEltYWdlIikpOwogfQogCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
T3Blbk1lZGlhSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8o
Ik9wZW4gX01lZGlhIGluIE5ldyBXaW5kb3ciKSk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZy
b21VVEY4KF8oIkNvcF95IE1lZGlhIExpbmsgTG9jYXRpb24iKSk7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKK3sKKyAgICByZXR1cm4gU3RyaW5n
Ojpmcm9tVVRGOChfKCJfVG9nZ2xlIE1lZGlhIENvbnRyb2xzIikpOworfQorCitTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpm
cm9tVVRGOChfKCJUb2dnbGUgTWVkaWEgX0xvb3AgUGxheWJhY2siKSk7Cit9CisKK1N0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpCit7CisgICAgcmV0dXJuIFN0
cmluZzo6ZnJvbVVURjgoXygiU3dpdGNoIFZpZGVvIHRvIF9GdWxsc2NyZWVuIikpOworfQorCitT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkKK3sKKyAgICByZXR1cm4gU3RyaW5n
Ojpmcm9tVVRGOChfKCJfUGxheSIpKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01l
ZGlhUGF1c2UoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8oIl9QYXVzZSIpKTsK
K30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpCit7CisgICAgcmV0dXJu
IFN0cmluZzo6ZnJvbVVURjgoXygiX011dGUiKSk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdNZWRpYVVuTXV0ZSgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiVW5f
TXV0ZSIpKTsKK30KKwogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2lu
ZG93KCkKIHsKICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJPcGVuIF9GcmFtZSBpbiBO
ZXcgV2luZG93IikpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Mb2NhbGl6
ZWRTdHJpbmdzSGFpa3UuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Mb2NhbGl6ZWRTdHJp
bmdzSGFpa3UuY3BwCmluZGV4IDUzMjE3OTIuLjI4ZDgyNWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vaGFpa3UvTG9jYWxpemVkU3RyaW5nc0hhaWt1LmNwcAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0cmluZ3NIYWlrdS5jcHAKQEAgLTk4LDYgKzk4LDUxIEBA
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpCiAgICAgcmV0
dXJuICJDb3B5IGltYWdlIHRvIGNsaXBib2FyZCI7CiB9CiAKK1N0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuICJPcGVuIE1lZGlhIGlu
IE5ldyBXaW5kb3ciOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlu
a1RvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4gIkNvcHkgTWVkaWEgTGluayBMb2NhdGlvbiI7
Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKK3sK
KyAgICByZXR1cm4gIlRvZ2dsZSBNZWRpYSBDb250cm9scyI7Cit9CisKK1N0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKQoreworICAgIHJldHVybiAiVG9nZ2xlIE1lZGlh
IExvb3AgUGxheWJhY2siOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRl
b0Z1bGxzY3JlZW4oKQoreworICAgIHJldHVybiAiU3dpdGNoIFZpZGVvIHRvIEZ1bGxzY3JlZW4i
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkKK3sKKyAgICByZXR1
cm4gIlBsYXkiOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpCit7
CisgICAgcmV0dXJuICJQYXVzZSI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRp
YU11dGUoKQoreworICAgIHJldHVybiAiTXV0ZSI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdNZWRpYVVuTXV0ZSgpCit7CisgICAgcmV0dXJuICJVbk11dGUiOworfQorCiBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3coKQogewogICAgIHJldHVybiAi
T3BlbiBmcmFtZSBpbiBuZXcgd2luZG93IjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
d3gvTG9jYWxpemVkU3RyaW5nc1d4LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vd3gvTG9jYWxpemVk
U3RyaW5nc1d4LmNwcAppbmRleCA0MTEyZjY0Li5hNWFmY2I3IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS93eC9Mb2NhbGl6ZWRTdHJpbmdzV3guY3BwCkBAIC05Nyw2ICs5Nyw1MSBAQCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKQogICAgIHJldHVybiBTdHJpbmco
IkNvcHkgSW1hZ2UgdG8gQ2xpcGJvYXJkIik7IAogfQogCitTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnT3Blbk1lZGlhSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiBTdHJpbmcoIk9wZW4gTWVk
aWEgaW4gTmV3IFdpbmRvdyIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weU1l
ZGlhTGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJDb3B5IE1lZGlhIExp
bmsgTG9jYXRpb24iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlh
Q29udHJvbHMoKQoreworICAgIHJldHVybiBTdHJpbmcoIlRvZ2dsZSBNZWRpYSBDb250cm9scyIp
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkKK3sKKyAg
ICByZXR1cm4gU3RyaW5nKCJUb2dnbGUgTWVkaWEgTG9vcCBQbGF5YmFjayIpOworfQorCitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKQoreworICAgIHJldHVy
biBTdHJpbmcoIlN3aXRjaCBWaWRlbyB0byBGdWxsc2NyZWVuIik7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQoreworICAgIHJldHVybiBTdHJpbmcoIlBsYXkiKTsK
K30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKQoreworICAgIHJldHVy
biBTdHJpbmcoIlBhdXNlIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11
dGUoKQoreworICAgIHJldHVybiBTdHJpbmcoIk11dGUiKTsKK30KKworU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ01lZGlhVW5NdXRlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJVbk11dGUiKTsK
K30KKwogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCkgCiB7
IAogICAgIHJldHVybiBTdHJpbmcoIk9wZW4gRnJhbWUgaW4gTmV3IFdpbmRvdyIpOyAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwIGIvV2ViQ29yZS9yZW5k
ZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKaW5kZXggNDk2YzRiYS4uYjI2MjgwMiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKKysrIGIvV2ViQ29yZS9yZW5k
ZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJGcmFt
ZS5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkhUTUxBbmNob3JFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTFZpZGVvRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbWFnZUVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE1l
ZGlhRWxlbWVudC5oIgpAQCAtMjkyLDIyICsyOTMsMTI1IEBAIEtVUkwgSGl0VGVzdFJlc3VsdDo6
YWJzb2x1dGVJbWFnZVVSTCgpIGNvbnN0CiBLVVJMIEhpdFRlc3RSZXN1bHQ6OmFic29sdXRlTWVk
aWFVUkwoKSBjb25zdAogewogI2lmIEVOQUJMRShWSURFTykKKyAgICBIVE1MTWVkaWFFbGVtZW50
KiBtZWRpYUVsdChtZWRpYUVsZW1lbnQoKSk7CisgICAgaWYgKG1lZGlhRWx0KQorICAgICAgICBy
ZXR1cm4gbV9pbm5lck5vblNoYXJlZE5vZGUtPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGRlcHJl
Y2F0ZWRQYXJzZVVSTChtZWRpYUVsdC0+Y3VycmVudFNyYygpKSk7CisgICAgcmV0dXJuIEtVUkwo
KTsKKyNlbHNlCisgICAgcmV0dXJuIEtVUkwoKTsKKyNlbmRpZgorfQorCitib29sIEhpdFRlc3RS
ZXN1bHQ6Om1lZGlhU3VwcG9ydHNGdWxsc2NyZWVuKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklE
RU8pCisgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbHQobWVkaWFFbGVtZW50KCkpOworICAg
IHJldHVybiAobWVkaWFFbHQgJiYgbWVkaWFFbHQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRl
b1RhZykgJiYgbWVkaWFFbHQtPnN1cHBvcnRzRnVsbHNjcmVlbigpKTsKKyNlbHNlCisgICAgcmV0
dXJuIGZhbHNlOworI2VuZGlmCit9CisKKyNpZiBFTkFCTEUoVklERU8pCitIVE1MTWVkaWFFbGVt
ZW50KiBIaXRUZXN0UmVzdWx0OjptZWRpYUVsZW1lbnQoKSBjb25zdAorewogICAgIGlmICghKG1f
aW5uZXJOb25TaGFyZWROb2RlICYmIG1faW5uZXJOb25TaGFyZWROb2RlLT5kb2N1bWVudCgpKSkK
LSAgICAgICAgcmV0dXJuIEtVUkwoKTsKKyAgICAgICAgcmV0dXJuIDA7CiAKICAgICBpZiAoISht
X2lubmVyTm9uU2hhcmVkTm9kZS0+cmVuZGVyZXIoKSAmJiBtX2lubmVyTm9uU2hhcmVkTm9kZS0+
cmVuZGVyZXIoKS0+aXNNZWRpYSgpKSkKLSAgICAgICAgcmV0dXJuIEtVUkwoKTsKKyAgICAgICAg
cmV0dXJuIDA7CiAKLSAgICBBdG9taWNTdHJpbmcgdXJsU3RyaW5nOwotICAgIGlmIChtX2lubmVy
Tm9uU2hhcmVkTm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKSB8fCBtX2lubmVy
Tm9uU2hhcmVkTm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmF1ZGlvVGFnKSkgewotICAgICAg
ICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MTWVkaWFF
bGVtZW50Kj4obV9pbm5lck5vblNoYXJlZE5vZGUuZ2V0KCkpOwotICAgICAgICB1cmxTdHJpbmcg
PSBtZWRpYUVsZW1lbnQtPmN1cnJlbnRTcmMoKTsKLSAgICB9IGVsc2UKLSAgICAgICAgcmV0dXJu
IEtVUkwoKTsKKyAgICBpZiAobV9pbm5lck5vblNoYXJlZE5vZGUtPmhhc1RhZ05hbWUoSFRNTE5h
bWVzOjp2aWRlb1RhZykgfHwgbV9pbm5lck5vblNoYXJlZE5vZGUtPmhhc1RhZ05hbWUoSFRNTE5h
bWVzOjphdWRpb1RhZykpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVt
ZW50Kj4obV9pbm5lck5vblNoYXJlZE5vZGUuZ2V0KCkpOworICAgIHJldHVybiAwOworfQorI2Vu
ZGlmCiAKLSAgICByZXR1cm4gbV9pbm5lck5vblNoYXJlZE5vZGUtPmRvY3VtZW50KCktPmNvbXBs
ZXRlVVJMKGRlcHJlY2F0ZWRQYXJzZVVSTCh1cmxTdHJpbmcpKTsKLSNlbHNlCi0gICAgcmV0dXJu
IEtVUkwoKTsKK3ZvaWQgSGl0VGVzdFJlc3VsdDo6dG9nZ2xlTWVkaWFDb250cm9sc0Rpc3BsYXko
KSBjb25zdAoreworI2lmIEVOQUJMRShWSURFTykKKyAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRp
YUVsdChtZWRpYUVsZW1lbnQoKSk7CisgICAgaWYgKG1lZGlhRWx0KQorICAgICAgICBtZWRpYUVs
dC0+c2V0Q29udHJvbHMoIW1lZGlhRWx0LT5jb250cm9scygpKTsKKyNlbmRpZgorfQorCit2b2lk
IEhpdFRlc3RSZXN1bHQ6OnRvZ2dsZU1lZGlhTG9vcFBsYXliYWNrKCkgY29uc3QKK3sKKyNpZiBF
TkFCTEUoVklERU8pCisgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbHQobWVkaWFFbGVtZW50
KCkpOworICAgIGlmIChtZWRpYUVsdCkKKyAgICAgICAgbWVkaWFFbHQtPnNldExvb3AoIW1lZGlh
RWx0LT5sb29wKCkpOworI2VuZGlmCit9CisKK3ZvaWQgSGl0VGVzdFJlc3VsdDo6ZW50ZXJGdWxs
c2NyZWVuRm9yVmlkZW8oKSBjb25zdAoreworI2lmIEVOQUJMRShWSURFTykKKyAgICBIVE1MTWVk
aWFFbGVtZW50KiBtZWRpYUVsdChtZWRpYUVsZW1lbnQoKSk7CisgICAgaWYgKG1lZGlhRWx0ICYm
IG1lZGlhRWx0LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpKSB7CisgICAgICAgIEhU
TUxWaWRlb0VsZW1lbnQqIHZpZGVvRWx0ID0gc3RhdGljX2Nhc3Q8SFRNTFZpZGVvRWxlbWVudCo+
KG1lZGlhRWx0KTsKKyAgICAgICAgaWYgKCF2aWRlb0VsdC0+aXNGdWxsc2NyZWVuKCkgJiYgbWVk
aWFFbHQtPnN1cHBvcnRzRnVsbHNjcmVlbigpKQorICAgICAgICAgICAgdmlkZW9FbHQtPmVudGVy
RnVsbHNjcmVlbigpOworICAgIH0KKyNlbmRpZgorfQorCitib29sIEhpdFRlc3RSZXN1bHQ6Om1l
ZGlhQ29udHJvbHNFbmFibGVkKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgSFRN
TE1lZGlhRWxlbWVudCogbWVkaWFFbHQobWVkaWFFbGVtZW50KCkpOworICAgIGlmIChtZWRpYUVs
dCkKKyAgICAgICAgcmV0dXJuIG1lZGlhRWx0LT5jb250cm9scygpOworI2VuZGlmCisgICAgcmV0
dXJuIGZhbHNlOworfQorCitib29sIEhpdFRlc3RSZXN1bHQ6Om1lZGlhTG9vcEVuYWJsZWQoKSBj
b25zdAoreworI2lmIEVOQUJMRShWSURFTykKKyAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVs
dChtZWRpYUVsZW1lbnQoKSk7CisgICAgaWYgKG1lZGlhRWx0KQorICAgICAgICByZXR1cm4gbWVk
aWFFbHQtPmxvb3AoKTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBIaXRU
ZXN0UmVzdWx0OjptZWRpYVBsYXlpbmcoKSBjb25zdAoreworI2lmIEVOQUJMRShWSURFTykKKyAg
ICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsdChtZWRpYUVsZW1lbnQoKSk7CisgICAgaWYgKG1l
ZGlhRWx0KQorICAgICAgICByZXR1cm4gIW1lZGlhRWx0LT5wYXVzZWQoKTsKKyNlbmRpZgorICAg
IHJldHVybiBmYWxzZTsKK30KKwordm9pZCBIaXRUZXN0UmVzdWx0Ojp0b2dnbGVNZWRpYVBsYXlT
dGF0ZSgpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIEhUTUxNZWRpYUVsZW1lbnQq
IG1lZGlhRWx0KG1lZGlhRWxlbWVudCgpKTsKKyAgICBpZiAobWVkaWFFbHQpCisgICAgICAgIG1l
ZGlhRWx0LT50b2dnbGVQbGF5U3RhdGUoKTsKKyNlbmRpZgorfQorCitib29sIEhpdFRlc3RSZXN1
bHQ6Om1lZGlhTXV0ZWQoKSBjb25zdAoreworI2lmIEVOQUJMRShWSURFTykKKyAgICBIVE1MTWVk
aWFFbGVtZW50KiBtZWRpYUVsdChtZWRpYUVsZW1lbnQoKSk7CisgICAgaWYgKG1lZGlhRWx0KQor
ICAgICAgICByZXR1cm4gbWVkaWFFbHQtPm11dGVkKCk7CisjZW5kaWYKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK3ZvaWQgSGl0VGVzdFJlc3VsdDo6dG9nZ2xlTWVkaWFNdXRlU3RhdGUoKSBjb25z
dAoreworI2lmIEVOQUJMRShWSURFTykKKyAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsdCht
ZWRpYUVsZW1lbnQoKSk7CisgICAgaWYgKG1lZGlhRWx0KQorICAgICAgICBtZWRpYUVsdC0+c2V0
TXV0ZWQoIW1lZGlhRWx0LT5tdXRlZCgpKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmggYi9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0
UmVzdWx0LmgKaW5kZXggM2E0MjcxOS4uNmM0MjFjYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5k
ZXJpbmcvSGl0VGVzdFJlc3VsdC5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1
bHQuaApAQCAtMzIsNiArMzIsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEVsZW1l
bnQ7CiBjbGFzcyBGcmFtZTsKKyNpZiBFTkFCTEUoVklERU8pCitjbGFzcyBIVE1MTWVkaWFFbGVt
ZW50OworI2VuZGlmCiBjbGFzcyBJbWFnZTsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBLVVJMOwpA
QCAtODAsNiArODMsMTYgQEAgcHVibGljOgogICAgIFN0cmluZyB0ZXh0Q29udGVudCgpIGNvbnN0
OwogICAgIGJvb2wgaXNMaXZlTGluaygpIGNvbnN0OwogICAgIGJvb2wgaXNDb250ZW50RWRpdGFi
bGUoKSBjb25zdDsKKyAgICB2b2lkIHRvZ2dsZU1lZGlhQ29udHJvbHNEaXNwbGF5KCkgY29uc3Q7
CisgICAgdm9pZCB0b2dnbGVNZWRpYUxvb3BQbGF5YmFjaygpIGNvbnN0OworICAgIHZvaWQgZW50
ZXJGdWxsc2NyZWVuRm9yVmlkZW8oKSBjb25zdDsKKyAgICBib29sIG1lZGlhQ29udHJvbHNFbmFi
bGVkKCkgY29uc3Q7CisgICAgYm9vbCBtZWRpYUxvb3BFbmFibGVkKCkgY29uc3Q7CisgICAgYm9v
bCBtZWRpYVBsYXlpbmcoKSBjb25zdDsKKyAgICBib29sIG1lZGlhU3VwcG9ydHNGdWxsc2NyZWVu
KCkgY29uc3Q7CisgICAgdm9pZCB0b2dnbGVNZWRpYVBsYXlTdGF0ZSgpIGNvbnN0OworICAgIGJv
b2wgbWVkaWFNdXRlZCgpIGNvbnN0OworICAgIHZvaWQgdG9nZ2xlTWVkaWFNdXRlU3RhdGUoKSBj
b25zdDsKIAogICAgIC8vIFJlY3QtYmFzZWQgaGl0IHRlc3QgcmVsYXRlZCBtZXRob2RzLgogICAg
IGJvb2wgaXNSZWN0QmFzZWRUZXN0KCkgY29uc3QgeyByZXR1cm4gbV9pc1JlY3RCYXNlZDsgfQpA
QCAtOTYsNiArMTA5LDEwIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKIAorI2lmIEVOQUJMRShWSURF
TykKKyAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQoKSBjb25zdDsKKyNlbmRpZgor
CiAgICAgUmVmUHRyPE5vZGU+IG1faW5uZXJOb2RlOwogICAgIFJlZlB0cjxOb2RlPiBtX2lubmVy
Tm9uU2hhcmVkTm9kZTsKICAgICBJbnRQb2ludCBtX3BvaW50OwpkaWZmIC0tZ2l0IGEvV2ViS2l0
VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGJmMTNlYmUuLmQ4
M2VmN2YgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wOS0xNSAgUGhpbGlwcGUgTm9ybWFu
ZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgW0dUS10gZW5oYW5jZWQgY29udGV4dCBtZW51IGZvciBtZWRpYSBl
bGVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDUwMjEKKworICAgICAgICBFdmVudFNlbmRlcjo6Y29udGV4dENsaWNrKCkgbm93IHJldHVybnMg
YW4gYXJyYXkgb2YganMKKyAgICAgICAgb2JqZWN0cy4gRWFjaCBvYmplY3QgaGFzIGEgdGl0bGUg
cHJvcGVydHkgYW5kIGEgY2xpY2soKSBtZXRob2QuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9ndGsvRXZlbnRTZW5kZXIuY3BwOgorICAgICAgICAoZ2V0TWVudUl0ZW1UaXRsZUNhbGxiYWNr
KToKKyAgICAgICAgKHNldE1lbnVJdGVtVGl0bGVDYWxsYmFjayk6CisgICAgICAgIChtZW51SXRl
bUNsaWNrQ2FsbGJhY2spOgorICAgICAgICAoZ2V0TWVudUl0ZW1DbGFzcyk6CisgICAgICAgIChj
b250ZXh0Q2xpY2tDYWxsYmFjayk6CisKIDIwMTAtMDktMTQgIFBoaWxpcHBlIE5vcm1hbmQgIDxw
bm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0V2ZW50U2VuZGVy
LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9FdmVudFNlbmRlci5jcHAKaW5k
ZXggMGQyMzJiNy4uOWE2ZTIzMCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvZ3RrL0V2ZW50U2VuZGVyLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9n
dGsvRXZlbnRTZW5kZXIuY3BwCkBAIC0xNDYsNiArMTQ2LDU4IEBAIGJvb2wgcHJlcGFyZU1vdXNl
QnV0dG9uRXZlbnQoR2RrRXZlbnQqIGV2ZW50LCBpbnQgZXZlbnRTZW5kZXJCdXR0b25OdW1iZXIs
IGd1aW50CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIGdldE1lbnVJ
dGVtVGl0bGVDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgb2JqZWN0
LCBKU1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAg
ICBHdGtXaWRnZXQqIHdpZGdldCA9IEdUS19XSURHRVQoSlNPYmplY3RHZXRQcml2YXRlKG9iamVj
dCkpOworICAgIGNvbnN0IGdjaGFyKiBsYWJlbDsKKworICAgIGlmIChHVEtfSVNfU0VQQVJBVE9S
X01FTlVfSVRFTSh3aWRnZXQpKQorICAgICAgICBsYWJlbCA9IGdfc3RyZHVwKCI8c2VwYXJhdG9y
PiIpOworICAgIGVsc2UKKyAgICAgICAgbGFiZWwgPSBnX3N0cmR1cChndGtfbWVudV9pdGVtX2dl
dF9sYWJlbChHVEtfTUVOVV9JVEVNKHdpZGdldCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VT
dHJpbmcoY29udGV4dCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcobGFiZWwpKTsKK30K
Kworc3RhdGljIGJvb2wgc2V0TWVudUl0ZW1UaXRsZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU09iamVjdFJlZiBvYmplY3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZVJlZiB2YWx1ZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIHJldHVybiB0cnVlOwor
fQorCitzdGF0aWMgSlNWYWx1ZVJlZiBtZW51SXRlbUNsaWNrQ2FsbGJhY2soSlNDb250ZXh0UmVm
IGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBz
aXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1
ZVJlZiogZXhjZXB0aW9uKQoreworICAgIEd0a01lbnVJdGVtKiBpdGVtID0gR1RLX01FTlVfSVRF
TShKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAgIGd0a19tZW51X2l0ZW1fYWN0
aXZhdGUoaXRlbSk7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwor
fQorCitzdGF0aWMgSlNTdGF0aWNGdW5jdGlvbiBzdGF0aWNNZW51SXRlbUZ1bmN0aW9uc1tdID0g
eworICAgIHsgImNsaWNrIiwgbWVudUl0ZW1DbGlja0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgeyAw
LCAwLCAwIH0KK307CisKK3N0YXRpYyBKU1N0YXRpY1ZhbHVlIHN0YXRpY01lbnVJdGVtVmFsdWVz
W10gPSB7CisgICAgeyAidGl0bGUiLCBnZXRNZW51SXRlbVRpdGxlQ2FsbGJhY2ssIHNldE1lbnVJ
dGVtVGl0bGVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVOb25lIH0sCisgICAgeyAwLCAw
LCAwLCAwIH0KK307CisKK3N0YXRpYyBKU0NsYXNzUmVmIGdldE1lbnVJdGVtQ2xhc3MoKQorewor
ICAgIHN0YXRpYyBKU0NsYXNzUmVmIG1lbnVJdGVtQ2xhc3MgPSAwOworCisgICAgaWYgKCFtZW51
SXRlbUNsYXNzKSB7CisgICAgICAgIEpTQ2xhc3NEZWZpbml0aW9uIGNsYXNzRGVmaW5pdGlvbiA9
IHsKKyAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLCAwLCAwLAorICAgICAgICAgICAgICAgIDAs
IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDB9OworICAgICAgICBjbGFzc0RlZmluaXRpb24u
c3RhdGljRnVuY3Rpb25zID0gc3RhdGljTWVudUl0ZW1GdW5jdGlvbnM7CisgICAgICAgIGNsYXNz
RGVmaW5pdGlvbi5zdGF0aWNWYWx1ZXMgPSBzdGF0aWNNZW51SXRlbVZhbHVlczsKKworICAgICAg
ICBtZW51SXRlbUNsYXNzID0gSlNDbGFzc0NyZWF0ZSgmY2xhc3NEZWZpbml0aW9uKTsKKyAgICB9
CisKKyAgICByZXR1cm4gbWVudUl0ZW1DbGFzczsKK30KKworCiBzdGF0aWMgSlNWYWx1ZVJlZiBj
b250ZXh0Q2xpY2tDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVu
Y3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25z
dCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAg
R2RrRXZlbnQqIHByZXNzRXZlbnQgPSBnZGtfZXZlbnRfbmV3KEdES19CVVRUT05fUFJFU1MpOwpA
QCAtMTY0LDEzICsyMTYsNyBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBjb250ZXh0Q2xpY2tDYWxsYmFj
ayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3RpbwogICAgICAgICBKU1Zh
bHVlUmVmIGFycmF5VmFsdWVzW2dfbGlzdF9sZW5ndGgoaXRlbXMpXTsKICAgICAgICAgaW50IGlu
ZGV4ID0gMDsKICAgICAgICAgZm9yIChHTGlzdCogaXRlbSA9IGdfbGlzdF9maXJzdChpdGVtcyk7
IGl0ZW07IGl0ZW0gPSBnX2xpc3RfbmV4dChpdGVtKSkgewotICAgICAgICAgICAgY29uc3QgZ2No
YXIqIGxhYmVsOwotICAgICAgICAgICAgaWYgKEdUS19JU19TRVBBUkFUT1JfTUVOVV9JVEVNKGl0
ZW0tPmRhdGEpKQotICAgICAgICAgICAgICAgIGxhYmVsID0gZ19zdHJkdXAoIjxzZXBhcmF0b3I+
Iik7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbGFiZWwgPSBnX3N0cmR1cChn
dGtfbWVudV9pdGVtX2dldF9sYWJlbChHVEtfTUVOVV9JVEVNKGl0ZW0tPmRhdGEpKSk7Ci0KLSAg
ICAgICAgICAgIGFycmF5VmFsdWVzW2luZGV4XSA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQs
IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGxhYmVsKSk7CisgICAgICAgICAgICBhcnJh
eVZhbHVlc1tpbmRleF0gPSBKU09iamVjdE1ha2UoY29udGV4dCwgZ2V0TWVudUl0ZW1DbGFzcygp
LCBpdGVtLT5kYXRhKTsKICAgICAgICAgICAgIGluZGV4Kys7CiAgICAgICAgIH0KICAgICAgICAg
aWYgKGluZGV4KQotLSAKMS43LjE=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67889</attachid>
            <date>2010-09-17 00:40:47 -0700</date>
            <delta_ts>2010-09-17 02:03:24 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>updated-patch.patch</filename>
            <type>text/plain</type>
            <size>60140</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAyOWY5ODNhZDZhNDA2MDJhOTNiN2M4Yjc2Nzk0YjViMzNlODQxZGQ3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBwaGlsbkB3ZWJraXQub3JnIDxwaGlsbkB3ZWJraXQub3JnPgpE
YXRlOiBUaHUsIDE2IFNlcCAyMDEwIDE2OjIxOjQ0ICswMDAwClN1YmplY3Q6IFtQQVRDSF0gdXBk
YXRlZCBwYXRjaAoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTcgKysrCiAuLi4vbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMtZXhw
ZWN0ZWQudHh0ICAgICAgICB8ICAgMjYgKysrKwogTGF5b3V0VGVzdHMvbWVkaWEvY29udGV4dC1t
ZW51LWFjdGlvbnMuaHRtbCAgICAgICAgfCAgIDkxICsrKysrKysrKysrKysrCiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAgIDQgKwogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIExh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkICAgICAgICAgICAgICAgICAgIHwgICAgMiAr
CiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAx
MjQgKysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxl
ci5jcHAgICAgICAgICAgICAgfCAgIDIyICsrKysKIFdlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1l
bnUuY3BwICAgICAgICAgICAgICAgICAgIHwgICA2MiArKysrKysrKystCiBXZWJDb3JlL3BsYXRm
b3JtL0NvbnRleHRNZW51SXRlbS5oICAgICAgICAgICAgICAgICB8ICAgIDggKysKIFdlYkNvcmUv
cGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCAgICAgICAgICAgIHwgICAxMCArKwogV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcCAgICAgICAgICAgICAgfCAgIDQ2ICsr
KysrKysKIFdlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oICAgICAgICAgICAgICAg
IHwgICAxMCArKwogLi4uL3BsYXRmb3JtL2FuZHJvaWQvTG9jYWxpemVkU3RyaW5nc0FuZHJvaWQu
Y3BwICAgfCAgIDU0ICsrKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9icmV3L0xvY2FsaXplZFN0
cmluZ3NCcmV3LmNwcCAgICAgfCAgIDQ1ICsrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0vZWZsL0xv
Y2FsaXplZFN0cmluZ3NFZmwuY3BwICAgICAgIHwgICA0NSArKysrKysrCiBXZWJDb3JlL3BsYXRm
b3JtL2d0ay9Db250ZXh0TWVudUl0ZW1HdGsuY3BwICAgICAgICB8ICAgIDkgKysKIFdlYkNvcmUv
cGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwICAgICAgIHwgICA0NiArKysrKysr
CiBXZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0cmluZ3NIYWlrdS5jcHAgICB8ICAg
NDUgKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9xdC9Mb2NhbGl6YXRpb25zLmNwcCAgICAgICAg
ICAgICAgfCAgIDQ1ICsrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5n
c1d4LmNwcCAgICAgICAgIHwgICA0NSArKysrKysrCiBXZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0
UmVzdWx0LmNwcCAgICAgICAgICAgICAgICB8ICAxMjYgKysrKysrKysrKysrKysrKysrLS0KIFdl
YkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaCAgICAgICAgICAgICAgICAgIHwgICAxOCAr
KysKIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAyMCArKysKIFdlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxpemVkU3RyaW5ncy5jcHAgICAgICAg
ICAgIHwgICAgOSArKwogV2ViS2l0L21hYy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDIxICsrKysKIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLmggIHwgICAgOSArKwogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMubW0gfCAgIDQ1ICsrKysrKysKIFdlYktpdC93aW4vQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMSArKysrCiAuLi4vd2luL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgICB8ICAgNDUgKysrKysrKwogV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAgfCAgICA5ICsr
CiBXZWJLaXRUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MTcgKysrCiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRXZlbnRTZW5kZXIuY3BwICAg
ICB8ICAgNjAgKysrKysrKystCiAzMyBmaWxlcyBjaGFuZ2VkLCAxMTMzIGluc2VydGlvbnMoKyks
IDI1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL21lZGlhL2Nv
bnRleHQtbWVudS1hY3Rpb25zLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL21lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwKCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmVmNmEyYS4u
NWZjYjhmNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEwLTA5LTE1ICBQaGlsaXBwZSBOb3Jt
YW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBbR1RLXSBlbmhhbmNlZCBjb250ZXh0IG1lbnUgZm9yIG1lZGlh
IGVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00NTAyMQorCisgICAgICAgIE5ldyB0ZXN0IGNoZWNraW5nIHRoZSBhY3Rpb25zIHRoYXQgY2Fu
IGJlIHRyaWdnZXJlZCBieSBhY3RpdmF0aW5nCisgICAgICAgIHRoZSBjb250ZXgtbWVudSBvZiB0
aGUgbWVkaWEgZWxlbWVudC4gU2tpcHBlZCBvbiBtYWMsIHF0IGFuZCB3aW4KKyAgICAgICAgYmVj
YXVzZSBvZiBsYWNrIG9mIERSVCBzdXBwb3J0LgorCisgICAgICAgICogbWVkaWEvY29udGV4dC1t
ZW51LWFjdGlvbnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9jb250ZXh0
LW1lbnUtYWN0aW9ucy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBl
ZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3dp
bi9Ta2lwcGVkOgorCiAyMDEwLTA5LTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5MThmM2QKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwyNiBAQAorVGVzdCB0aGUgdmFyaW91cyBhY3Rpb25zIGF2YWlsYWJsZSBpbiB0aGUg
SFRNTDUgbWVkaWEgZWxlbWVudCBjb250ZXh0LW1lbnUuCisKK1JVTih2aWRlby5zcmMgPSAnY29u
dGVudC90ZXN0Lm1wNCcpCitFVkVOVChwbGF5KQorRVhQRUNURUQgKHZpZGVvLnBhdXNlZCA9PSAn
ZmFsc2UnKSBPSworVG9nZ2xpbmcgcGxheSBzdGF0ZQorRVhQRUNURUQgKHZpZGVvLnBhdXNlZCA9
PSAndHJ1ZScpIE9LCisKK0VYUEVDVEVEICh2aWRlby5tdXRlZCA9PSAnZmFsc2UnKSBPSworVG9n
Z2xpbmcgbXV0ZSBzdGF0ZQorRVhQRUNURUQgKHZpZGVvLm11dGVkID09ICd0cnVlJykgT0sKKwor
RVhQRUNURUQgKHZpZGVvLmNvbnRyb2xzID09ICd0cnVlJykgT0sKK1RvZ2dsaW5nIG1lZGlhIGNv
bnRyb2xzCitFWFBFQ1RFRCAodmlkZW8uY29udHJvbHMgPT0gJ2ZhbHNlJykgT0sKKworRVhQRUNU
RUQgKHZpZGVvLmxvb3AgPT0gJ2ZhbHNlJykgT0sKK1RvZ2dsaW5nIGxvb3Agc3RhdGUKK0VYUEVD
VEVEICh2aWRlby5sb29wID09ICd0cnVlJykgT0sKKworRVhQRUNURUQgKHZpZGVvLndlYmtpdERp
c3BsYXlpbmdGdWxsc2NyZWVuID09ICdmYWxzZScpIE9LCitUb2dnbGluZyBmdWxsc2NyZWVuIHN0
YXRlCitFWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ3RydWUn
KSBPSworCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9jb250
ZXh0LW1lbnUtYWN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvY29udGV4dC1tZW51LWFj
dGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZTgwZjE0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMu
aHRtbApAQCAtMCwwICsxLDkxIEBACis8aHRtbD4KKzxoZWFkPgorICAgICAgICA8c2NyaXB0IHNy
Yz0ibWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPXZpZGVvLXRl
c3QuanM+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisKKyAgICAgICAgICAgIGZ1bmN0aW9u
IHBsYXlpbmcoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF3aW5kb3cuZXZl
bnRTZW5kZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKKworICAgICAgICAgICAgICAgIHZhciB4LCB5LCBpdGVt
czsKKyAgICAgICAgICAgICAgICB4ID0gdmlkZW8ub2Zmc2V0UGFyZW50Lm9mZnNldExlZnQgKyB2
aWRlby5vZmZzZXRMZWZ0ICsgdmlkZW8ub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAgICAgICAg
IHkgPSB2aWRlby5vZmZzZXRQYXJlbnQub2Zmc2V0VG9wICsgdmlkZW8ub2Zmc2V0VG9wICsgdmlk
ZW8ub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1v
dmVUbyh4LCB5KTsKKyAgICAgICAgICAgICAgICBpdGVtcyA9IGV2ZW50U2VuZGVyLmNvbnRleHRD
bGljaygpOworCisKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxl
bmd0aDsgaSsrKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGl0
ZW1zW2ldLnRpdGxlLm1hdGNoKCJDb250cm9scyIpKSB7CisgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RFeHBlY3RlZCgidmlkZW8uY29udHJvbHMiLCB0cnVlLCAnPT0nKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUb2dnbGluZyBtZWRpYSBjb250cm9scyIpOworICAg
ICAgICAgICAgICAgICAgICAgICBpdGVtc1tpXS5jbGljaygpOworICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmNvbnRyb2xzIiwgZmFsc2UsICc9PScpOworICAgICAg
ICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLnRpdGxlLm1hdGNoKCJQYXVzZSIp
KSB7CisgICAgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ucGF1c2VkIiwg
ZmFsc2UsICc9PScpOworICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRvZ2ds
aW5nIHBsYXkgc3RhdGUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNbaV0uY2xpY2so
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5wYXVzZWQiLCB0
cnVlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtc1tpXS50
aXRsZS5tYXRjaCgiTG9vcCIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3Rl
ZCgidmlkZW8ubG9vcCIsIGZhbHNlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgY29u
c29sZVdyaXRlKCJUb2dnbGluZyBsb29wIHN0YXRlIik7CisgICAgICAgICAgICAgICAgICAgICAg
IGl0ZW1zW2ldLmNsaWNrKCk7CisgICAgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgi
dmlkZW8ubG9vcCIsIHRydWUsICc9PScpOworICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xl
V3JpdGUoIiIpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGl0ZW1zW2ldLnRpdGxlLm1hdGNoKCJNdXRlIikpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5tdXRlZCIsIGZhbHNlLCAnPT0nKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUb2dnbGluZyBtdXRlIHN0YXRlIik7CisgICAgICAg
ICAgICAgICAgICAgICAgIGl0ZW1zW2ldLmNsaWNrKCk7CisgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RFeHBlY3RlZCgidmlkZW8ubXV0ZWQiLCB0cnVlLCAnPT0nKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgICAgICAgIGlmIChpdGVtc1tpXS50aXRsZS5tYXRjaCgiRnVsbHNjcmVlbiIpICYm
IHZpZGVvLndlYmtpdFN1cHBvcnRzRnVsbHNjcmVlbikgeworICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIiwgZmFsc2Us
ICc9PScpOworICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRvZ2dsaW5nIGZ1
bGxzY3JlZW4gc3RhdGUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNbaV0uY2xpY2so
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby53ZWJraXREaXNw
bGF5aW5nRnVsbHNjcmVlbiIsIHRydWUsICc9PScpOworICAgICAgICAgICAgICAgICAgICAgICBj
b25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg
ICAgICAgLy8gVE9ETzogdGVzdCBjb3B5IGxpbmsgbG9jYXRpb24gYW5kIG9wZW4gaW4gbmV3IHdp
bmRvdy4KKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gc3RhcnQoKQorICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICB3YWl0
Rm9yRXZlbnQoJ3BsYXknLCBwbGF5aW5nKTsKKyAgICAgICAgICAgICAgICBydW4oInZpZGVvLnNy
YyA9ICciICsgZmluZE1lZGlhRmlsZSgidmlkZW8iLCAiY29udGVudC90ZXN0IikgKyAiJyIpOwor
ICAgICAgICAgICAgfQorCisgICAgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InN0YXJ0KCkiPgorICAgIDxwPlRlc3QgdGhlIHZhcmlvdXMgYWN0aW9ucyBhdmFpbGFibGUgaW4g
dGhlIEhUTUw1IG1lZGlhIGVsZW1lbnQgY29udGV4dC1tZW51LjwvcD4KKyAgICA8dmlkZW8gaWQ9
InZpZGVvIiBhdXRvcGxheSBjb250cm9scz48L3ZpZGVvPgorPC9ib2R5PgorPC9odG1sPgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9Ta2lwcGVkCmluZGV4IGI4Y2E1MjguLmI0MTExYWUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9Ta2lwcGVkCkBAIC0zMTAsMyArMzEwLDcgQEAgZmFzdC9maWxlcy93b3JrZXJzCiAK
ICMgdmlld3BvcnQgbWV0YSB0YWcgc3VwcG9ydAogZmFzdC92aWV3cG9ydAorCisjIG5lZWRzIGVu
aGFuY2VkIGV2ZW50U2VuZGVyLmNvbnRleHRNZW51KCkgcmV0dXJuIHZhbHVlCisjIHNlZSBhbHNv
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTAyMQorbWVkaWEvY29u
dGV4dC1tZW51LWFjdGlvbnMuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKaW5kZXggZjhhYmVl
Ny4uMzY2NDAwMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC0yMjY5LDYgKzIyNjksOCBA
QCBlZGl0aW5nL3NlbGVjdGlvbi81MTk1MTY2LTEuaHRtbAogCiAjIG1pc3NpbmcgRFJUIGZlYXR1
cmUsIHNlZSBhbHNvIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTEw
MgogZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LW9uLXRleHQuaHRtbAorIyBhbmQgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MDIxCittZWRpYS9jb250ZXh0
LW1lbnUtYWN0aW9ucy5odG1sCiAKICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIwogIyBGYWlsaW5n
IGVkaXRpbmcvc3BlbGxpbmcgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggODQ2
MGNmNC4uOWVmOWNiZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBw
ZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTI5Nyw2ICsyOTcs
OCBAQCBodHRwL3Rlc3RzL2Nzcy9jc3MtaW1hZ2UtbG9hZGluZy5odG1sCiAKICMgbWlzc2luZyBE
UlQgZmVhdHVyZSwgc2VlIGFsc28gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM5MTAyCiBlZGl0aW5nL3NlbGVjdGlvbi9jb250ZXh0LW1lbnUtb24tdGV4dC5odG1sCisj
IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUwMjEKK21lZGlh
L2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIE5vIGJ1Z3MgZmlsZWQgYWJvdXQgdGhlIGJlbG93IHlldCMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IGUxMzgwN2QuLmU4NDJjZmEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTI3IEBACisy
MDEwLTA5LTE1ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBlbmhhbmNl
ZCBjb250ZXh0IG1lbnUgZm9yIG1lZGlhIGVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTAyMQorCisgICAgICAgIE5ldyBpdGVtcyBpbiB0
aGUgbWVkaWEgRWxlbWVudCBjb250ZXh0IG1lbnU6CisgICAgICAgIC0gcGxheS9wYXVzZQorICAg
ICAgICAtIG11dGUvdW5tdXRlCisgICAgICAgIC0gY29udHJvbHMgZGlzcGxheSBjb250cm9sCisg
ICAgICAgIC0gc3dpdGNoIHRvIGZ1bGxzY3JlZW4gKGZvciB2aWRlbyBvbmx5KQorICAgICAgICAt
IGxvb3AgcGxheWJhY2sgY29udHJvbAorICAgICAgICAtIGNvcHkgbWVkaWEgdXJsIHRvIGNsaXBi
b2FyZAorICAgICAgICAtIG9wZW4gaW4gbmV3IHdpbmRvdworCisgICAgICAgIFRlc3Q6IG1lZGlh
L2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwKKworICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6
Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Ojpwb3B1bGF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0TWVudTo6Y2hlY2tPckVuYWJsZUlmTmVlZGVkKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6
YXRpb25TdHJhdGVneS5oOgorICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5k
b3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1Rv
Q2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1l
ZGlhQ29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xl
TWVkaWFMb29wKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlk
ZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlh
UGxheSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVVuTXV0ZSk6CisgICAgICAgICogcGxh
dGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oOgorICAgICAgICAqIHBsYXRmb3JtL2FuZHJvaWQvTG9j
YWxpemVkU3RyaW5nc0FuZHJvaWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdNZWRpYVBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ01lZGlhTXV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRp
YVVuTXV0ZSk6CisgICAgICAgICogcGxhdGZvcm0vYnJldy9Mb2NhbGl6ZWRTdHJpbmdzQnJldy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dp
bmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5r
VG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xl
TWVkaWFDb250cm9scyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dn
bGVNZWRpYUxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJW
aWRlb0Z1bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVk
aWFQbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2Up
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhVW5NdXRlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3ApOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ01lZGlhVW5NdXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvQ29udGV4dE1lbnVJ
dGVtR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omd0a1N0b2NrSURGcm9tQ29udGV4dE1lbnVB
Y3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0Ns
aXBib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRp
YUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1l
ZGlhTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVv
RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBs
YXkpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11dGUpOgorICAgICAgICAqIHBsYXRm
b3JtL2hhaWt1L0xvY2FsaXplZFN0cmluZ3NIYWlrdS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3ApOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ01lZGlhVW5NdXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Mb2NhbGl6YXRpb25z
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3
V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxp
bmtUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dn
bGVNZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Rv
Z2dsZU1lZGlhTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRl
clZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdN
ZWRpYVBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVz
ZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11dGUpOgorICAgICAgICAq
IHBsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3ApOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ01lZGlhVW5NdXRlKToKKyAgICAgICAgKiByZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjphYnNvbHV0ZU1lZGlhVVJMKToK
KyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQ6Om1lZGlhU3VwcG9ydHNGdWxsc2NyZWVu
KToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQ6Om1lZGlhRWxlbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0Ojp0b2dnbGVNZWRpYUNvbnRyb2xzRGlzcGxheSk6
CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0Ojp0b2dnbGVNZWRpYUxvb3BQbGF5YmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjplbnRlckZ1bGxzY3JlZW5Gb3JW
aWRlbyk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjptZWRpYUNvbnRyb2xzRW5h
YmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjptZWRpYUxvb3BFbmFibGVk
KToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQ6Om1lZGlhUGxheWluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0Ojp0b2dnbGVNZWRpYVBsYXlTdGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjptZWRpYUhhc0F1ZGlvKToKKyAgICAgICAgKFdl
YkNvcmU6OkhpdFRlc3RSZXN1bHQ6Om1lZGlhTXV0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SGl0
VGVzdFJlc3VsdDo6dG9nZ2xlTWVkaWFNdXRlU3RhdGUpOgorICAgICAgICAqIHJlbmRlcmluZy9I
aXRUZXN0UmVzdWx0Lmg6CisKIDIwMTAtMDktMTYgIHRha2FubyB0YWt1bWkgIDx0YWthbm8xQGFz
aWEuYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAgYi9XZWJDb3JlL3Bh
Z2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAppbmRleCBkMjMxN2QyLi5kZTY0OTg4IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAorKysgYi9XZWJD
b3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwKICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMTg2LDYgKzE4NywyNyBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxl
cjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVJdGVtKiBpdGVtKQogICAgICAg
ICAvLyBGb3Igbm93LCBjYWxsIGludG8gdGhlIGNsaWVudC4gVGhpcyBpcyB0ZW1wb3JhcnkhCiAg
ICAgICAgIGZyYW1lLT5lZGl0b3IoKS0+Y29weUltYWdlKHJlc3VsdCk7CiAgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3c6CisgICAg
ICAgIG9wZW5OZXdXaW5kb3cocmVzdWx0LmFic29sdXRlTWVkaWFVUkwoKSwgZnJhbWUpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0Ns
aXBib2FyZDoKKyAgICAgICAgZnJhbWUtPmVkaXRvcigpLT5jb3B5VVJMKHJlc3VsdC5hYnNvbHV0
ZU1lZGlhVVJMKCksIHJlc3VsdC50ZXh0Q29udGVudCgpKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzOgorICAgICAgICByZXN1
bHQudG9nZ2xlTWVkaWFDb250cm9sc0Rpc3BsYXkoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3A6CisgICAgICAgIHJlc3VsdC50b2dn
bGVNZWRpYUxvb3BQbGF5YmFjaygpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbnRleHRN
ZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuOgorICAgICAgICByZXN1bHQuZW50ZXJGdWxs
c2NyZWVuRm9yVmlkZW8oKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb250ZXh0TWVudUl0
ZW1UYWdNZWRpYVBsYXlQYXVzZToKKyAgICAgICAgcmVzdWx0LnRvZ2dsZU1lZGlhUGxheVN0YXRl
KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRl
OgorICAgICAgICByZXN1bHQudG9nZ2xlTWVkaWFNdXRlU3RhdGUoKTsKKyAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdzogewogICAg
ICAgICBEb2N1bWVudExvYWRlciogbG9hZGVyID0gZnJhbWUtPmxvYWRlcigpLT5kb2N1bWVudExv
YWRlcigpOwogICAgICAgICBpZiAoIWxvYWRlci0+dW5yZWFjaGFibGVVUkwoKS5pc0VtcHR5KCkp
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vQ29udGV4dE1lbnUuY3BwCmluZGV4IDM3ZDRjMmIuLmZkY2QzYzkgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnUuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vQ29udGV4dE1lbnUuY3BwCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDggQ2hyaXN0aWFuIER5d2FuIDxjaHJpc3RpYW5AaW1lbmRpby5jb20+CisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTAogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0yODIsNiArMjgzLDIwIEBAIHZvaWQgQ29udGV4dE1lbnU6OnBvcHVsYXRlKCkKICAgICAg
ICAgY29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzaygpKTsKICAgICBDb250ZXh0
TWVudUl0ZW0gQ29weUltYWdlSXRlbShBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdDb3B5
SW1hZ2VUb0NsaXBib2FyZCwgCiAgICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRv
Q2xpcGJvYXJkKCkpOworICAgIENvbnRleHRNZW51SXRlbSBPcGVuTWVkaWFJbk5ld1dpbmRvd0l0
ZW0oQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3csIAor
ICAgICAgICBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdygpKTsKKyAgICBD
b250ZXh0TWVudUl0ZW0gQ29weU1lZGlhTGlua0l0ZW0oQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJ
dGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkLCAKKyAgICAgICAgY29udGV4dE1lbnVJdGVt
VGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKCkpOworICAgIENvbnRleHRNZW51SXRlbSBNZWRp
YVBsYXlQYXVzZShBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXlQYXVzZSwg
CisgICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpKTsKKyAgICBDb250ZXh0TWVu
dUl0ZW0gTWVkaWFNdXRlKEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSwg
CisgICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpKTsKKyAgICBDb250ZXh0TWVu
dUl0ZW0gVG9nZ2xlTWVkaWFDb250cm9scyhDaGVja2FibGVBY3Rpb25UeXBlLCBDb250ZXh0TWVu
dUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzLCAKKyAgICAgICAgY29udGV4dE1lbnVJdGVtVGFn
VG9nZ2xlTWVkaWFDb250cm9scygpKTsKKyAgICBDb250ZXh0TWVudUl0ZW0gVG9nZ2xlTWVkaWFM
b29wKENoZWNrYWJsZUFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9v
cCwgCisgICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpKTsKKyAgICBD
b250ZXh0TWVudUl0ZW0gRW50ZXJWaWRlb0Z1bGxzY3JlZW4oQWN0aW9uVHlwZSwgQ29udGV4dE1l
bnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4sIAorICAgICAgICBjb250ZXh0TWVudUl0ZW1U
YWdFbnRlclZpZGVvRnVsbHNjcmVlbigpKTsKICNpZiBQTEFURk9STShNQUMpCiAgICAgQ29udGV4
dE1lbnVJdGVtIFNlYXJjaFNwb3RsaWdodEl0ZW0oQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVt
VGFnU2VhcmNoSW5TcG90bGlnaHQsIAogICAgICAgICBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hJ
blNwb3RsaWdodCgpKTsKQEAgLTM0OSw2ICszNjQsMjIgQEAgdm9pZCBDb250ZXh0TWVudTo6cG9w
dWxhdGUoKQogICAgICAgICAgICAgICAgIGFwcGVuZEl0ZW0oQ29weUltYWdlSXRlbSk7CiAgICAg
ICAgIH0KIAorICAgICAgICBLVVJMIG1lZGlhVVJMID0gcmVzdWx0LmFic29sdXRlTWVkaWFVUkwo
KTsKKyAgICAgICAgaWYgKCFtZWRpYVVSTC5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIGlmICgh
bGlua1VSTC5pc0VtcHR5KCkgfHwgIWltYWdlVVJMLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAg
ICBhcHBlbmRJdGVtKCpzZXBhcmF0b3JJdGVtKCkpOworCisgICAgICAgICAgICBhcHBlbmRJdGVt
KE1lZGlhUGxheVBhdXNlKTsKKyAgICAgICAgICAgIGFwcGVuZEl0ZW0oTWVkaWFNdXRlKTsKKyAg
ICAgICAgICAgIGFwcGVuZEl0ZW0oVG9nZ2xlTWVkaWFDb250cm9scyk7CisgICAgICAgICAgICBh
cHBlbmRJdGVtKFRvZ2dsZU1lZGlhTG9vcCk7CisgICAgICAgICAgICBhcHBlbmRJdGVtKEVudGVy
VmlkZW9GdWxsc2NyZWVuKTsKKworICAgICAgICAgICAgYXBwZW5kSXRlbSgqc2VwYXJhdG9ySXRl
bSgpKTsKKyAgICAgICAgICAgIGFwcGVuZEl0ZW0oQ29weU1lZGlhTGlua0l0ZW0pOworICAgICAg
ICAgICAgYXBwZW5kSXRlbShPcGVuTWVkaWFJbk5ld1dpbmRvd0l0ZW0pOworICAgICAgICB9CisK
ICAgICAgICAgaWYgKGltYWdlVVJMLmlzRW1wdHkoKSAmJiBsaW5rVVJMLmlzRW1wdHkoKSkgewog
ICAgICAgICAgICAgaWYgKHJlc3VsdC5pc1NlbGVjdGVkKCkpIHsKICAgICAgICAgICAgICAgICBp
ZiAoc2VsZWN0aW9uQ29udGFpbnNQb3NzaWJsZVdvcmQoZnJhbWUpKSB7CkBAIC0zNzUsMTIgKzQw
Niw2IEBAIHZvaWQgQ29udGV4dE1lbnU6OnBvcHVsYXRlKCkKICNpZiBFTkFCTEUoSU5TUEVDVE9S
KQogICAgICAgICAgICAgICAgIGlmICghKGZyYW1lLT5wYWdlKCkgJiYgZnJhbWUtPnBhZ2UoKS0+
aW5zcGVjdG9yQ29udHJvbGxlcigpLT5oYXNJbnNwZWN0b3JGcm9udGVuZENsaWVudCgpKSkgewog
I2VuZGlmCi0jaWYgUExBVEZPUk0oR1RLKQotICAgICAgICAgICAgICAgIGFwcGVuZEl0ZW0oQmFj
a0l0ZW0pOwotICAgICAgICAgICAgICAgIGFwcGVuZEl0ZW0oRm9yd2FyZEl0ZW0pOwotICAgICAg
ICAgICAgICAgIGFwcGVuZEl0ZW0oU3RvcEl0ZW0pOwotICAgICAgICAgICAgICAgIGFwcGVuZEl0
ZW0oUmVsb2FkSXRlbSk7Ci0jZWxzZQogICAgICAgICAgICAgICAgIGlmIChmcmFtZS0+cGFnZSgp
ICYmIGZyYW1lLT5wYWdlKCktPmNhbkdvQmFja09yRm9yd2FyZCgtMSkpCiAgICAgICAgICAgICAg
ICAgICAgIGFwcGVuZEl0ZW0oQmFja0l0ZW0pOwogCkBAIC0zOTMsNyArNDE4LDYgQEAgdm9pZCBD
b250ZXh0TWVudTo6cG9wdWxhdGUoKQogICAgICAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKFN0
b3BJdGVtKTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIGFwcGVu
ZEl0ZW0oUmVsb2FkSXRlbSk7Ci0jZW5kaWYKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgICAg
ICAgICAgICAgIH0KICNlbmRpZgpAQCAtNzg4LDYgKzgxMiwxNyBAQCB2b2lkIENvbnRleHRNZW51
OjpjaGVja09yRW5hYmxlSWZOZWVkZWQoQ29udGV4dE1lbnVJdGVtJiBpdGVtKSBjb25zdAogICAg
ICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93OgogICAgICAg
ICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2s6CiAgICAgICAgIGNh
c2UgQ29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQ6CisgICAgICAgIGNhc2Ug
Q29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3c6CisgICAgICAgIGNhc2UgQ29u
dGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkOgorICAgICAgICBjYXNlIENv
bnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHM6CisgICAgICAgICAgICBzaG91bGRD
aGVjayA9IG1faGl0VGVzdFJlc3VsdC5tZWRpYUNvbnRyb2xzRW5hYmxlZCgpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29w
OgorICAgICAgICAgICAgc2hvdWxkQ2hlY2sgPSBtX2hpdFRlc3RSZXN1bHQubWVkaWFMb29wRW5h
YmxlZCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVt
VGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW46CisgICAgICAgICAgICBzaG91bGRFbmFibGUgPSBtX2hp
dFRlc3RSZXN1bHQubWVkaWFTdXBwb3J0c0Z1bGxzY3JlZW4oKTsKKyAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93Ogog
ICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nR3Vlc3M6CiAgICAgICAgIGNh
c2UgQ29udGV4dE1lbnVJdGVtVGFnT3RoZXI6CkBAIC04MjMsNiArODU4LDE5IEBAIHZvaWQgQ29u
dGV4dE1lbnU6OmNoZWNrT3JFbmFibGVJZk5lZWRlZChDb250ZXh0TWVudUl0ZW0mIGl0ZW0pIGNv
bnN0CiAgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtTGFzdEN1c3RvbVRhZzoKICAgICAgICAg
Y2FzZSBDb250ZXh0TWVudUl0ZW1CYXNlQXBwbGljYXRpb25UYWc6CiAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXlQYXVzZToKKyAgICAg
ICAgICAgIGlmIChtX2hpdFRlc3RSZXN1bHQubWVkaWFQbGF5aW5nKCkpCisgICAgICAgICAgICAg
ICAgaXRlbS5zZXRUaXRsZShjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkpOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGl0ZW0uc2V0VGl0bGUoY29udGV4dE1lbnVJdGVt
VGFnTWVkaWFQbGF5KCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ29udGV4
dE1lbnVJdGVtVGFnTWVkaWFNdXRlOgorICAgICAgICAgICAgc2hvdWxkRW5hYmxlID0gbV9oaXRU
ZXN0UmVzdWx0Lm1lZGlhSGFzQXVkaW8oKTsKKyAgICAgICAgICAgIGlmICghc2hvdWxkRW5hYmxl
IHx8ICFtX2hpdFRlc3RSZXN1bHQubWVkaWFNdXRlZCgpKQorICAgICAgICAgICAgICAgIGl0ZW0u
c2V0VGl0bGUoY29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkpOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIGl0ZW0uc2V0VGl0bGUoY29udGV4dE1lbnVJdGVtVGFnTWVkaWFV
bk11dGUoKSk7CisgICAgICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBpdGVtLnNldENoZWNr
ZWQoc2hvdWxkQ2hlY2spOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVu
dUl0ZW0uaCBiL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKaW5kZXggMDU4ZjY0
NC4uZjdmYTVlNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0u
aAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCkBAIC0xLDUgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE0Myw2ICsxNDQsMTMgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBDb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplLAogICAgICAgICBD
b250ZXh0TWVudUl0ZW1UYWdDaGFuZ2VCYWNrLAogI2VuZGlmCisgICAgICAgIENvbnRleHRNZW51
SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93LAorICAgICAgICBDb250ZXh0TWVudUl0ZW1UYWdD
b3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQsCisgICAgICAgIENvbnRleHRNZW51SXRlbVRhZ1RvZ2ds
ZU1lZGlhQ29udHJvbHMsCisgICAgICAgIENvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9v
cCwKKyAgICAgICAgQ29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4sCisgICAg
ICAgIENvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheVBhdXNlLAorICAgICAgICBDb250ZXh0TWVu
dUl0ZW1UYWdNZWRpYU11dGUsCiAgICAgICAgIENvbnRleHRNZW51SXRlbUJhc2VDdXN0b21UYWcg
PSA1MDAwLAogICAgICAgICBDb250ZXh0TWVudUl0ZW1DdXN0b21UYWdOb0FjdGlvbiA9IDU5OTgs
CiAgICAgICAgIENvbnRleHRNZW51SXRlbUxhc3RDdXN0b21UYWcgPSA1OTk5LApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6YXRpb25TdHJhdGVneS5oIGIvV2ViQ29yZS9wbGF0
Zm9ybS9Mb2NhbGl6YXRpb25TdHJhdGVneS5oCmluZGV4IDE3OGNmYTIuLjZjNGRiNmEgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5LmgKQEAgLTEsNSArMSw2IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTExMiw2ICsxMTMsMTUgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0NhcGl0YWxpemUoKSA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnQ2hhbmdlQmFjayhjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nKSA9
IDA7CiAjZW5kaWYKKyAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVk
aWFJbk5ld1dpbmRvdygpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQoKSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpID0gMDsKKyAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKSA9IDA7CisgICAgdmlydHVh
bCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKSA9IDA7Cisg
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkgPSAwOworICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKSA9IDA7CisgICAg
dmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkgPSAwOworICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhVW5NdXRlKCkgPSAwOwogICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KCkgPSAwOwogI2Vu
ZGlmIC8vIEVOQUJMRShDT05URVhUX01FTlVTKQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJp
bmdzLmNwcAppbmRleCBhNjllMGZiLi5iMmU2YjUxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVk
U3RyaW5ncy5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAzLCAy
MDA2LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTM2Miw2ICszNjMsNTEgQEAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoYW5nZUJhY2so
Y29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZykKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1B
QykKKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KCkKK3sK
KyAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCkt
PmNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KCk7Cit9CisKK1N0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVy
biBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1l
bnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKCk7Cit9CisKK1N0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKK3sKKyAgICByZXR1cm4gcGxhdGZvcm1T
dHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1Rv
Z2dsZU1lZGlhQ29udHJvbHMoKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2ds
ZU1lZGlhTG9vcCgpCit7CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2NhbGl6
YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKTsKK30K
KworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCkKK3sKKyAg
ICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNv
bnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCk7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQoreworICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdp
ZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5
KCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkKK3sKKyAgICBy
ZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRl
eHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z01lZGlhTXV0ZSgpCit7CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2NhbGl6
YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKTsKK30KKworU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhVW5NdXRlKCkKK3sKKyAgICByZXR1cm4gcGxhdGZv
cm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRh
Z01lZGlhVW5NdXRlKCk7Cit9CiAgICAgCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5zcGVj
dEVsZW1lbnQoKQogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJp
bmdzLmggYi9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAppbmRleCAwNDA0MmI2
Li5lMTNhNDA3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3Mu
aAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaApAQCAtMSw1ICsxLDYg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDkgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlh
IFMuTAogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMDgsNiArMTA5LDE1IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2FwaXRh
bGl6ZSgpOwogICAgIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGFuZ2VCYWNrKGNvbnN0IFN0
cmluZyYgcmVwbGFjZWRTdHJpbmcpOwogI2VuZGlmCisgICAgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ09wZW5NZWRpYUluTmV3V2luZG93KCk7CisgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCgpOworICAgIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdUb2dnbGVNZWRpYUNvbnRyb2xzKCk7CisgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Rv
Z2dsZU1lZGlhTG9vcCgpOworICAgIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVv
RnVsbHNjcmVlbigpOworICAgIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKTsK
KyAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpOworICAgIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKTsKKyAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnTWVkaWFVbk11dGUoKTsKICAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVs
ZW1lbnQoKTsKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKIApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL0xvY2FsaXplZFN0cmluZ3NBbmRyb2lkLmNwcCBiL1dl
YkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9Mb2NhbGl6ZWRTdHJpbmdzQW5kcm9pZC5jcHAKaW5kZXgg
MmZjODgwYi4uOGQ5MjUwYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL0xv
Y2FsaXplZFN0cmluZ3NBbmRyb2lkLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQv
TG9jYWxpemVkU3RyaW5nc0FuZHJvaWQuY3BwCkBAIC04MSw2ICs4MSw2MCBAQCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKQogICAgIHJldHVybiBTdHJpbmco
KTsKIH0KIAorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z1RvZ2dsZU1lZGlhTG9vcCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
U3RyaW5nKCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNj
cmVlbigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9
CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnTWVkaWFQYXVzZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
U3RyaW5nKCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11dGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Bl
bkZyYW1lSW5OZXdXaW5kb3coKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvTG9jYWxpemVkU3RyaW5nc0JyZXcuY3BwIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9icmV3L0xvY2FsaXplZFN0cmluZ3NCcmV3LmNwcAppbmRleCAxYmM1OTg1Li5i
NTI4OWMyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvTG9jYWxpemVkU3RyaW5n
c0JyZXcuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9Mb2NhbGl6ZWRTdHJpbmdzQnJl
dy5jcHAKQEAgLTk2LDYgKzk2LDUxIEBAIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1h
Z2VUb0NsaXBib2FyZCgpCiAgICAgcmV0dXJuICJDb3B5IGltYWdlIHRvIGNsaXBib2FyZCI7CiB9
CiAKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdygpCit7Cisg
ICAgcmV0dXJuICJPcGVuIE1lZGlhIGluIE5ldyBXaW5kb3ciOworfQorCitTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4gIkNv
cHkgTWVkaWEgTGluayBMb2NhdGlvbiI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdU
b2dnbGVNZWRpYUNvbnRyb2xzKCkKK3sKKyAgICByZXR1cm4gIlRvZ2dsZSBNZWRpYSBDb250cm9s
cyI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKQorewor
ICAgIHJldHVybiAiVG9nZ2xlIE1lZGlhIExvb3AgUGxheWJhY2siOworfQorCitTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKQoreworICAgIHJldHVybiAiU3dp
dGNoIFZpZGVvIHRvIEZ1bGxzY3JlZW4iOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
TWVkaWFQbGF5KCkKK3sKKyAgICByZXR1cm4gIlBsYXkiOworfQorCitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnTWVkaWFQYXVzZSgpCit7CisgICAgcmV0dXJuICJQYXVzZSI7Cit9CisKK1N0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKQoreworICAgIHJldHVybiAiTXV0ZSI7Cit9
CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVVuTXV0ZSgpCit7CisgICAgcmV0dXJu
ICJVbk11dGUiOworfQorCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdX
aW5kb3coKQogewogICAgIHJldHVybiAiT3BlbiBmcmFtZSBpbiBuZXcgd2luZG93IjsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0xvY2FsaXplZFN0cmluZ3NFZmwuY3BwIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5jcHAKaW5kZXggNjAyMzIwNS4u
YzY0NWUwZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5n
c0VmbC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5j
cHAKQEAgLTk4LDYgKzk4LDUxIEBAIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VU
b0NsaXBib2FyZCgpCiAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIkNvcHkgSW1hZ2UiKTsK
IH0KIAorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KCkKK3sK
KyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiT3BlbiBNZWRpYSBpbiBOZXcgV2luZG93Iik7
Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQo
KQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJDb3B5IE1lZGlhIExpbmsgTG9jYXRp
b24iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMo
KQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJUb2dnbGUgTWVkaWEgQ29udHJvbHMi
KTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCit7Cisg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIlRvZ2dsZSBNZWRpYSBMb29wIFBsYXliYWNrIik7
Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpCit7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIlN3aXRjaCBWaWRlbyB0byBGdWxsc2NyZWVu
Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQoreworICAgIHJl
dHVybiBTdHJpbmc6OmZyb21VVEY4KCJQbGF5Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdNZWRpYVBhdXNlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiUGF1c2Ui
KTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpCit7CisgICAgcmV0
dXJuIFN0cmluZzo6ZnJvbVVURjgoIk11dGUiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ01lZGlhVW5NdXRlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiVW5NdXRl
Iik7Cit9CisKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygp
CiB7CiAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIk9wZW4gRnJhbWUgaW4gTmV3IFdpbmRv
dyIpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29udGV4dE1lbnVJdGVtR3Rr
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0NvbnRleHRNZW51SXRlbUd0ay5jcHAKaW5kZXgg
ZTJjNWI4NC4uYmQyNWE0YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29udGV4
dE1lbnVJdGVtR3RrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Db250ZXh0TWVudUl0
ZW1HdGsuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDIwMDcgSG9s
Z2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMu
TAogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMzMsMTEgKzM0LDEzIEBAIHN0YXRpYyBjb25zdCBj
aGFyKiBndGtTdG9ja0lERnJvbUNvbnRleHRNZW51QWN0aW9uKGNvbnN0IENvbnRleHRNZW51QWN0
aW9uJiBhY3RpCiAgICAgc3dpdGNoIChhY3Rpb24pIHsKICAgICBjYXNlIENvbnRleHRNZW51SXRl
bVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQ6CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdDb3B5
SW1hZ2VUb0NsaXBib2FyZDoKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxp
bmtUb0NsaXBib2FyZDoKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHk6CiAgICAgICAg
IHJldHVybiBHVEtfU1RPQ0tfQ09QWTsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5M
aW5rSW5OZXdXaW5kb3c6CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5l
d1dpbmRvdzoKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93
OgorICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3c6CiAgICAg
ICAgIHJldHVybiBHVEtfU1RPQ0tfT1BFTjsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0Rv
d25sb2FkTGlua1RvRGlzazoKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1h
Z2VUb0Rpc2s6CkBAIC05OSw2ICsxMDIsMTIgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGd0a1N0b2Nr
SURGcm9tQ29udGV4dE1lbnVBY3Rpb24oY29uc3QgQ29udGV4dE1lbnVBY3Rpb24mIGFjdGkKICAg
ICAgICAgcmV0dXJuIEdUS19TVE9DS19VTkRFUkxJTkU7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0
ZW1UYWdTaG93Q29sb3JzOgogICAgICAgICByZXR1cm4gR1RLX1NUT0NLX1NFTEVDVF9DT0xPUjsK
KyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHM6CisgICAgY2Fz
ZSBDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3A6CisgICAgICAgIC8vIE5vIGljb24g
Zm9yIHRoaXMuCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVt
VGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW46CisgICAgICAgIHJldHVybiBHVEtfU1RPQ0tfRlVMTFND
UkVFTjsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcCBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwCmluZGV4IDQzMmM5MmYuLjQ5
OTEyM2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NH
dGsuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3Bw
CkBAIC00LDYgKzQsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVy
IEZyZXl0aGVyCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ2hyaXN0aWFuIER5d2FuIDxjaHJpc3Rp
YW5AaW1lbmRpby5jb20+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTnVhbnRpIEx0ZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTExMCw2ICsxMTEsNTEgQEAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFn
ZVRvQ2xpcGJvYXJkKCkKICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJDb3BfeSBJbWFn
ZSIpKTsKIH0KIAorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93
KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJPcGVuIF9NZWRpYSBpbiBOZXcg
V2luZG93IikpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1Rv
Q2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJDb3BfeSBNZWRp
YSBMaW5rIExvY2F0aW9uIikpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xl
TWVkaWFDb250cm9scygpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiX1RvZ2ds
ZSBNZWRpYSBDb250cm9scyIpKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2ds
ZU1lZGlhTG9vcCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiVG9nZ2xlIE1l
ZGlhIF9Mb29wIFBsYXliYWNrIikpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRW50
ZXJWaWRlb0Z1bGxzY3JlZW4oKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8oIlN3
aXRjaCBWaWRlbyB0byBfRnVsbHNjcmVlbiIpKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ01lZGlhUGxheSgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiX1BsYXki
KSk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkKK3sKKyAgICBy
ZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJfUGF1c2UiKSk7Cit9CisKK1N0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdNZWRpYU11dGUoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8o
Il9NdXRlIikpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11dGUoKQor
eworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8oIlVuX011dGUiKSk7Cit9CisKIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpCiB7CiAgICAgcmV0dXJu
IFN0cmluZzo6ZnJvbVVURjgoXygiT3BlbiBfRnJhbWUgaW4gTmV3IFdpbmRvdyIpKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvTG9jYWxpemVkU3RyaW5nc0hhaWt1LmNwcCBi
L1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvTG9jYWxpemVkU3RyaW5nc0hhaWt1LmNwcAppbmRleCA1
MzIxNzkyLi4yOGQ4MjViIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvY2Fs
aXplZFN0cmluZ3NIYWlrdS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Mb2NhbGl6
ZWRTdHJpbmdzSGFpa3UuY3BwCkBAIC05OCw2ICs5OCw1MSBAQCBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKQogICAgIHJldHVybiAiQ29weSBpbWFnZSB0byBj
bGlwYm9hcmQiOwogfQogCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdX
aW5kb3coKQoreworICAgIHJldHVybiAiT3BlbiBNZWRpYSBpbiBOZXcgV2luZG93IjsKK30KKwor
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCgpCit7Cisg
ICAgcmV0dXJuICJDb3B5IE1lZGlhIExpbmsgTG9jYXRpb24iOworfQorCitTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpCit7CisgICAgcmV0dXJuICJUb2dnbGUg
TWVkaWEgQ29udHJvbHMiOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVk
aWFMb29wKCkKK3sKKyAgICByZXR1cm4gIlRvZ2dsZSBNZWRpYSBMb29wIFBsYXliYWNrIjsKK30K
KworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCkKK3sKKyAg
ICByZXR1cm4gIlN3aXRjaCBWaWRlbyB0byBGdWxsc2NyZWVuIjsKK30KKworU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ01lZGlhUGxheSgpCit7CisgICAgcmV0dXJuICJQbGF5IjsKK30KKworU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKQoreworICAgIHJldHVybiAiUGF1c2Ui
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkKK3sKKyAgICByZXR1
cm4gIk11dGUiOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11dGUoKQor
eworICAgIHJldHVybiAiVW5NdXRlIjsKK30KKwogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09w
ZW5GcmFtZUluTmV3V2luZG93KCkKIHsKICAgICByZXR1cm4gIk9wZW4gZnJhbWUgaW4gbmV3IHdp
bmRvdyI7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3F0L0xvY2FsaXphdGlvbnMuY3Bw
IGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Mb2NhbGl6YXRpb25zLmNwcAppbmRleCA0NTQ4NzJhLi5i
OTI1MWUzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3F0L0xvY2FsaXphdGlvbnMuY3Bw
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvTG9jYWxpemF0aW9ucy5jcHAKQEAgLTEwNSw2ICsx
MDUsNTEgQEAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkK
ICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5
IEltYWdlIiwgIkNvcHkgTGluayBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCitTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk9wZW4gTWVkaWEiLCAiT3BlbiBN
ZWRpYSBpbiBOZXcgV2luZG93Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5
TWVkaWFMaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0
cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkgTWVkaWEiLCAiQ29weSBNZWRpYSBMaW5rIExvY2F0
aW9uIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xz
KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJUb2dnbGUgQ29udHJvbHMiLCAiVG9nZ2xlIE1lZGlhIENvbnRyb2xzIik7Cit9CisKK1N0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKQoreworICAgIHJldHVybiBRQ29y
ZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlRvZ2dsZSBMb29wIiwgIlRvZ2ds
ZSBNZWRpYSBMb29wIFBsYXliYWNrIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdF
bnRlclZpZGVvRnVsbHNjcmVlbigpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiRW50ZXIgRnVsbHNjcmVlbiIsICJTd2l0Y2ggVmlkZW8gdG8g
RnVsbHNjcmVlbiIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkK
K3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQ
bGF5IiwgIlBsYXkiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2Uo
KQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
IlBhdXNlIiwgIlBhdXNlIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11
dGUoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIk11dGUiLCAiTXV0ZSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFV
bk11dGUoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIlVuTXV0ZSIsICJVbk11dGUiKTsKK30KKwogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z09wZW5GcmFtZUluTmV3V2luZG93KCkKIHsKICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIEZyYW1lIiwgIk9wZW4gRnJhbWUgaW4gTmV3IFdp
bmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS93
eC9Mb2NhbGl6ZWRTdHJpbmdzV3guY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS93eC9Mb2NhbGl6ZWRT
dHJpbmdzV3guY3BwCmluZGV4IDQxMTJmNjQuLmE1YWZjYjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHAKQEAgLTk3LDYgKzk3LDUxIEBAIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpCiAgICAgcmV0dXJuIFN0cmluZygi
Q29weSBJbWFnZSB0byBDbGlwYm9hcmQiKTsgCiB9CiAKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdPcGVuTWVkaWFJbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuIFN0cmluZygiT3BlbiBNZWRp
YSBpbiBOZXcgV2luZG93Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVk
aWFMaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBTdHJpbmcoIkNvcHkgTWVkaWEgTGlu
ayBMb2NhdGlvbiIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFD
b250cm9scygpCit7CisgICAgcmV0dXJuIFN0cmluZygiVG9nZ2xlIE1lZGlhIENvbnRyb2xzIik7
Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKQoreworICAg
IHJldHVybiBTdHJpbmcoIlRvZ2dsZSBNZWRpYSBMb29wIFBsYXliYWNrIik7Cit9CisKK1N0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpCit7CisgICAgcmV0dXJu
IFN0cmluZygiU3dpdGNoIFZpZGVvIHRvIEZ1bGxzY3JlZW4iKTsKK30KKworU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ01lZGlhUGxheSgpCit7CisgICAgcmV0dXJuIFN0cmluZygiUGxheSIpOwor
fQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpCit7CisgICAgcmV0dXJu
IFN0cmluZygiUGF1c2UiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0
ZSgpCit7CisgICAgcmV0dXJuIFN0cmluZygiTXV0ZSIpOworfQorCitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnTWVkaWFVbk11dGUoKQoreworICAgIHJldHVybiBTdHJpbmcoIlVuTXV0ZSIpOwor
fQorCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3coKSAKIHsg
CiAgICAgcmV0dXJuIFN0cmluZygiT3BlbiBGcmFtZSBpbiBOZXcgV2luZG93Iik7IApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAgYi9XZWJDb3JlL3JlbmRl
cmluZy9IaXRUZXN0UmVzdWx0LmNwcAppbmRleCA0OTZjNGJhLi40YWU5OTkwIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAorKysgYi9XZWJDb3JlL3JlbmRl
cmluZy9IaXRUZXN0UmVzdWx0LmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgIkZyYW1l
LmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiSFRNTEFuY2hvckVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MVmlkZW9FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEltYWdlRWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTWVk
aWFFbGVtZW50LmgiCkBAIC0yOTIsMjIgKzI5MywxMjUgQEAgS1VSTCBIaXRUZXN0UmVzdWx0Ojph
YnNvbHV0ZUltYWdlVVJMKCkgY29uc3QKIEtVUkwgSGl0VGVzdFJlc3VsdDo6YWJzb2x1dGVNZWRp
YVVSTCgpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKFZJREVPKQorICAgIGlmIChIVE1MTWVkaWFFbGVt
ZW50KiBtZWRpYUVsdCA9IG1lZGlhRWxlbWVudCgpKQorICAgICAgICByZXR1cm4gbV9pbm5lck5v
blNoYXJlZE5vZGUtPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGRlcHJlY2F0ZWRQYXJzZVVSTCht
ZWRpYUVsdC0+Y3VycmVudFNyYygpKSk7CisgICAgcmV0dXJuIEtVUkwoKTsKKyNlbHNlCisgICAg
cmV0dXJuIEtVUkwoKTsKKyNlbmRpZgorfQorCitib29sIEhpdFRlc3RSZXN1bHQ6Om1lZGlhU3Vw
cG9ydHNGdWxsc2NyZWVuKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgSFRNTE1l
ZGlhRWxlbWVudCogbWVkaWFFbHQobWVkaWFFbGVtZW50KCkpOworICAgIHJldHVybiAobWVkaWFF
bHQgJiYgbWVkaWFFbHQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykgJiYgbWVkaWFF
bHQtPnN1cHBvcnRzRnVsbHNjcmVlbigpKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2Vu
ZGlmCit9CisKKyNpZiBFTkFCTEUoVklERU8pCitIVE1MTWVkaWFFbGVtZW50KiBIaXRUZXN0UmVz
dWx0OjptZWRpYUVsZW1lbnQoKSBjb25zdAorewogICAgIGlmICghKG1faW5uZXJOb25TaGFyZWRO
b2RlICYmIG1faW5uZXJOb25TaGFyZWROb2RlLT5kb2N1bWVudCgpKSkKLSAgICAgICAgcmV0dXJu
IEtVUkwoKTsKKyAgICAgICAgcmV0dXJuIDA7CiAKICAgICBpZiAoIShtX2lubmVyTm9uU2hhcmVk
Tm9kZS0+cmVuZGVyZXIoKSAmJiBtX2lubmVyTm9uU2hhcmVkTm9kZS0+cmVuZGVyZXIoKS0+aXNN
ZWRpYSgpKSkKLSAgICAgICAgcmV0dXJuIEtVUkwoKTsKKyAgICAgICAgcmV0dXJuIDA7CiAKLSAg
ICBBdG9taWNTdHJpbmcgdXJsU3RyaW5nOwotICAgIGlmIChtX2lubmVyTm9uU2hhcmVkTm9kZS0+
aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKSB8fCBtX2lubmVyTm9uU2hhcmVkTm9kZS0+
aGFzVGFnTmFtZShIVE1MTmFtZXM6OmF1ZGlvVGFnKSkgewotICAgICAgICBIVE1MTWVkaWFFbGVt
ZW50KiBtZWRpYUVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVtZW50Kj4obV9pbm5l
ck5vblNoYXJlZE5vZGUuZ2V0KCkpOwotICAgICAgICB1cmxTdHJpbmcgPSBtZWRpYUVsZW1lbnQt
PmN1cnJlbnRTcmMoKTsKLSAgICB9IGVsc2UKLSAgICAgICAgcmV0dXJuIEtVUkwoKTsKKyAgICBp
ZiAobV9pbm5lck5vblNoYXJlZE5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykg
fHwgbV9pbm5lck5vblNoYXJlZE5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjphdWRpb1RhZykp
CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVtZW50Kj4obV9pbm5lck5v
blNoYXJlZE5vZGUuZ2V0KCkpOworICAgIHJldHVybiAwOworfQorI2VuZGlmCiAKLSAgICByZXR1
cm4gbV9pbm5lck5vblNoYXJlZE5vZGUtPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGRlcHJlY2F0
ZWRQYXJzZVVSTCh1cmxTdHJpbmcpKTsKLSNlbHNlCi0gICAgcmV0dXJuIEtVUkwoKTsKK3ZvaWQg
SGl0VGVzdFJlc3VsdDo6dG9nZ2xlTWVkaWFDb250cm9sc0Rpc3BsYXkoKSBjb25zdAoreworI2lm
IEVOQUJMRShWSURFTykKKyAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbHQgPSBtZWRp
YUVsZW1lbnQoKSkKKyAgICAgICAgbWVkaWFFbHQtPnNldENvbnRyb2xzKCFtZWRpYUVsdC0+Y29u
dHJvbHMoKSk7CisjZW5kaWYKK30KKwordm9pZCBIaXRUZXN0UmVzdWx0Ojp0b2dnbGVNZWRpYUxv
b3BQbGF5YmFjaygpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIGlmIChIVE1MTWVk
aWFFbGVtZW50KiBtZWRpYUVsdCA9IG1lZGlhRWxlbWVudCgpKQorICAgICAgICBtZWRpYUVsdC0+
c2V0TG9vcCghbWVkaWFFbHQtPmxvb3AoKSk7CisjZW5kaWYKK30KKwordm9pZCBIaXRUZXN0UmVz
dWx0OjplbnRlckZ1bGxzY3JlZW5Gb3JWaWRlbygpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFZJREVP
KQorICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWx0KG1lZGlhRWxlbWVudCgpKTsKKyAgICBp
ZiAobWVkaWFFbHQgJiYgbWVkaWFFbHQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykp
IHsKKyAgICAgICAgSFRNTFZpZGVvRWxlbWVudCogdmlkZW9FbHQgPSBzdGF0aWNfY2FzdDxIVE1M
VmlkZW9FbGVtZW50Kj4obWVkaWFFbHQpOworICAgICAgICBpZiAoIXZpZGVvRWx0LT5pc0Z1bGxz
Y3JlZW4oKSAmJiBtZWRpYUVsdC0+c3VwcG9ydHNGdWxsc2NyZWVuKCkpCisgICAgICAgICAgICB2
aWRlb0VsdC0+ZW50ZXJGdWxsc2NyZWVuKCk7CisgICAgfQorI2VuZGlmCit9CisKK2Jvb2wgSGl0
VGVzdFJlc3VsdDo6bWVkaWFDb250cm9sc0VuYWJsZWQoKSBjb25zdAoreworI2lmIEVOQUJMRShW
SURFTykKKyAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbHQgPSBtZWRpYUVsZW1lbnQo
KSkKKyAgICAgICAgcmV0dXJuIG1lZGlhRWx0LT5jb250cm9scygpOworI2VuZGlmCisgICAgcmV0
dXJuIGZhbHNlOworfQorCitib29sIEhpdFRlc3RSZXN1bHQ6Om1lZGlhTG9vcEVuYWJsZWQoKSBj
b25zdAoreworI2lmIEVOQUJMRShWSURFTykKKyAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogbWVk
aWFFbHQgPSBtZWRpYUVsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIG1lZGlhRWx0LT5sb29wKCk7
CisjZW5kaWYKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgSGl0VGVzdFJlc3VsdDo6bWVk
aWFQbGF5aW5nKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgaWYgKEhUTUxNZWRp
YUVsZW1lbnQqIG1lZGlhRWx0ID0gbWVkaWFFbGVtZW50KCkpCisgICAgICAgIHJldHVybiAhbWVk
aWFFbHQtPnBhdXNlZCgpOworI2VuZGlmCisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEhp
dFRlc3RSZXN1bHQ6OnRvZ2dsZU1lZGlhUGxheVN0YXRlKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUo
VklERU8pCisgICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWx0ID0gbWVkaWFFbGVtZW50
KCkpCisgICAgICAgIG1lZGlhRWx0LT50b2dnbGVQbGF5U3RhdGUoKTsKKyNlbmRpZgorfQorCiti
b29sIEhpdFRlc3RSZXN1bHQ6Om1lZGlhSGFzQXVkaW8oKSBjb25zdAoreworI2lmIEVOQUJMRShW
SURFTykKKyAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbHQgPSBtZWRpYUVsZW1lbnQo
KSkKKyAgICAgICAgcmV0dXJuIG1lZGlhRWx0LT5oYXNBdWRpbygpOworI2VuZGlmCisgICAgcmV0
dXJuIGZhbHNlOworfQorCitib29sIEhpdFRlc3RSZXN1bHQ6Om1lZGlhTXV0ZWQoKSBjb25zdAor
eworI2lmIEVOQUJMRShWSURFTykKKyAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbHQg
PSBtZWRpYUVsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIG1lZGlhRWx0LT5tdXRlZCgpOworI2Vu
ZGlmCisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEhpdFRlc3RSZXN1bHQ6OnRvZ2dsZU1l
ZGlhTXV0ZVN0YXRlKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgaWYgKEhUTUxN
ZWRpYUVsZW1lbnQqIG1lZGlhRWx0ID0gbWVkaWFFbGVtZW50KCkpCisgICAgICAgIG1lZGlhRWx0
LT5zZXRNdXRlZCghbWVkaWFFbHQtPm11dGVkKCkpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL0hp
dFRlc3RSZXN1bHQuaAppbmRleCAzYTQyNzE5Li5lNjM1MDMzIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVz
dFJlc3VsdC5oCkBAIC0zMiw2ICszMiw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
RWxlbWVudDsKIGNsYXNzIEZyYW1lOworI2lmIEVOQUJMRShWSURFTykKK2NsYXNzIEhUTUxNZWRp
YUVsZW1lbnQ7CisjZW5kaWYKIGNsYXNzIEltYWdlOwogY2xhc3MgSW50UmVjdDsKIGNsYXNzIEtV
Ukw7CkBAIC04MCw2ICs4MywxNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIHRleHRDb250ZW50KCkg
Y29uc3Q7CiAgICAgYm9vbCBpc0xpdmVMaW5rKCkgY29uc3Q7CiAgICAgYm9vbCBpc0NvbnRlbnRF
ZGl0YWJsZSgpIGNvbnN0OworICAgIHZvaWQgdG9nZ2xlTWVkaWFDb250cm9sc0Rpc3BsYXkoKSBj
b25zdDsKKyAgICB2b2lkIHRvZ2dsZU1lZGlhTG9vcFBsYXliYWNrKCkgY29uc3Q7CisgICAgdm9p
ZCBlbnRlckZ1bGxzY3JlZW5Gb3JWaWRlbygpIGNvbnN0OworICAgIGJvb2wgbWVkaWFDb250cm9s
c0VuYWJsZWQoKSBjb25zdDsKKyAgICBib29sIG1lZGlhTG9vcEVuYWJsZWQoKSBjb25zdDsKKyAg
ICBib29sIG1lZGlhUGxheWluZygpIGNvbnN0OworICAgIGJvb2wgbWVkaWFTdXBwb3J0c0Z1bGxz
Y3JlZW4oKSBjb25zdDsKKyAgICB2b2lkIHRvZ2dsZU1lZGlhUGxheVN0YXRlKCkgY29uc3Q7Cisg
ICAgYm9vbCBtZWRpYUhhc0F1ZGlvKCkgY29uc3Q7CisgICAgYm9vbCBtZWRpYU11dGVkKCkgY29u
c3Q7CisgICAgdm9pZCB0b2dnbGVNZWRpYU11dGVTdGF0ZSgpIGNvbnN0OwogCiAgICAgLy8gUmVj
dC1iYXNlZCBoaXQgdGVzdCByZWxhdGVkIG1ldGhvZHMuCiAgICAgYm9vbCBpc1JlY3RCYXNlZFRl
c3QoKSBjb25zdCB7IHJldHVybiBtX2lzUmVjdEJhc2VkOyB9CkBAIC05Niw2ICsxMTAsMTAgQEAg
cHVibGljOgogCiBwcml2YXRlOgogCisjaWYgRU5BQkxFKFZJREVPKQorICAgIEhUTUxNZWRpYUVs
ZW1lbnQqIG1lZGlhRWxlbWVudCgpIGNvbnN0OworI2VuZGlmCisKICAgICBSZWZQdHI8Tm9kZT4g
bV9pbm5lck5vZGU7CiAgICAgUmVmUHRyPE5vZGU+IG1faW5uZXJOb25TaGFyZWROb2RlOwogICAg
IEludFBvaW50IG1fcG9pbnQ7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
IGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA1ZjczM2Q5Li4yOGQ5YWM3IDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0wOS0xNyAgUGhpbGlwcGUgTm9ybWFuZCAg
PHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgW0dUS10gZW5oYW5jZWQgY29udGV4dCBtZW51IGZvciBtZWRpYSBlbGVt
ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUw
MjEKKworICAgICAgICBOZXcgbG9jYWxpemVkIHN0cmluZ3MgZm9yIHRoZSBtZWRpYSBlbGVtZW50
IGNvbnRleHQtbWVudS4KKworICAgICAgICAqIHNyYy9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBi
b2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNv
bnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlh
TG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVs
bHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkp
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11dGUpOgorCiAyMDEwLTA5LTE2ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByNjc2OTMuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0xvY2FsaXplZFN0cmluZ3MuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2NhbGl6ZWRTdHJp
bmdzLmNwcAppbmRleCA3NGZmNjk5Li5jOTM4OTY5IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21p
dW0vc3JjL0xvY2FsaXplZFN0cmluZ3MuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvTG9j
YWxpemVkU3RyaW5ncy5jcHAKQEAgLTI2NSw2ICsyNjUsMTUgQEAgU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0luc3BlY3RFbGVtZW50KCkgeyByZXR1cm4gU3RyaW5nKCk7IH0KIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbChib29sIHNob3cpIHsgcmV0dXJuIFN0cmlu
ZygpOyB9CiBTdHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpIHsgcmV0
dXJuIFN0cmluZygpOyB9CiBTdHJpbmcgbWVkaWFFbGVtZW50TG9hZGluZ1N0YXRlVGV4dCgpIHsg
cmV0dXJuIFN0cmluZygpOyB9CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5O
ZXdXaW5kb3coKSB7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCgpIHsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpIHsgcmV0dXJuIFN0cmluZygp
OyB9CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkgeyByZXR1cm4g
U3RyaW5nKCk7IH0KK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVl
bigpIHsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQ
bGF5KCkgeyByZXR1cm4gU3RyaW5nKCk7IH0KK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRp
YVBhdXNlKCkgeyByZXR1cm4gU3RyaW5nKCk7IH0KK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdN
ZWRpYU11dGUoKSB7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z01lZGlhVW5NdXRlKCkgeyByZXR1cm4gU3RyaW5nKCk7IH0KIAogU3RyaW5nIGxvY2FsaXplZE1l
ZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5nJiAvKm5hbWUqLykKIHsKZGlmZiAt
LWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXgg
MDRkNzFlYy4uMzA5NWRiYyAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wOS0xNyAgUGhpbGlw
cGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gZW5oYW5jZWQgY29udGV4dCBtZW51IGZv
ciBtZWRpYSBlbGVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDUwMjEKKworICAgICAgICBOZXcgbG9jYWxpemVkIHN0cmluZ3MgZm9yIHRoZSBt
ZWRpYSBlbGVtZW50IGNvbnRleHQtbWVudS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5tbToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4
dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQpOgor
ICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVN
ZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1l
bnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAgICAoV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkpOgorICAgICAg
ICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKToK
KyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFN
dXRlKToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFn
TWVkaWFVbk11dGUpOgorCiAyMDEwLTA5LTE3ICBKaWEgUHUgIDxqcHVAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIGIvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAppbmRleCA1M2YzOWY4Li42ODBmOWFi
IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5oCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVn
aWVzLmgKQEAgLTExMyw2ICsxMTMsMTUgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFdURjo6U3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ0NhcGl0YWxpemUoKTsKICAgICB2aXJ0dWFsIFdURjo6U3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoYW5nZUJhY2soY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxh
Y2VkU3RyaW5nKTsKICAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lu
c3BlY3RFbGVtZW50KCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdPcGVuTWVkaWFJbk5ld1dpbmRvdygpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKCk7CisgICAgdmlydHVhbCBXVEY6
OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCk7CisgICAgdmly
dHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKTsKKyAg
ICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2Ny
ZWVuKCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBs
YXkoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1
c2UoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0
ZSgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11
dGUoKTsKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIHNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpOwogICAgIHZpcnR1YWwgV1RG
OjpTdHJpbmcgc2VhcmNoTWVudVJlY2VudFNlYXJjaGVzVGV4dCgpOwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0gYi9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQppbmRleCAyOTAwY2Nm
Li5jYmRjNzc2IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5tbQorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5tbQpAQCAtMTU2LDYgKzE1Niw1MSBAQCBTdHJpbmcgV2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpCiAgICAg
cmV0dXJuIFVJX1NUUklORygiQ29weSBJbWFnZSIsICJDb3B5IEltYWdlIGNvbnRleHQgbWVudSBp
dGVtIik7CiB9CiAKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRl
bVRhZ09wZW5NZWRpYUluTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJPcGVu
IE1lZGlhIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBNZWRpYSBpbiBOZXcgV2luZG93Iik7Cit9CisK
K1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRp
YUxpbmtUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiQ29weSBNZWRpYSBM
aW5rIiwgIkNvcHkgTWVkaWEgTGluayBMb2NhdGlvbiIpOworfQorCitTdHJpbmcgV2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKK3sK
KyAgICByZXR1cm4gVUlfU1RSSU5HKCJUb2dnbGUgQ29udHJvbHMiLCAiVG9nZ2xlIE1lZGlhIENv
bnRyb2xzIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51
SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiVG9nZ2xl
IExvb3AiLCAiVG9nZ2xlIE1lZGlhIExvb3AgUGxheWJhY2siKTsKK30KKworU3RyaW5nIFdlYlBs
YXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4o
KQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIkVudGVyIEZ1bGxzY3JlZW4iLCAiU3dpdGNoIFZp
ZGVvIHRvIEZ1bGxzY3JlZW4iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJQ
bGF5IiwgIlBsYXkiKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4
dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiUGF1c2Ui
LCAiUGF1c2UiKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1l
bnVJdGVtVGFnTWVkaWFNdXRlKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJNdXRlIiwgIk11
dGUiKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVt
VGFnTWVkaWFVbk11dGUoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIlVuTXV0ZSIsICJVbk11
dGUiKTsKK30KKwogU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVt
VGFnT3BlbkZyYW1lSW5OZXdXaW5kb3coKQogewogICAgIHJldHVybiBVSV9TVFJJTkcoIk9wZW4g
RnJhbWUgaW4gTmV3IFdpbmRvdyIsICJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3cgY29udGV4dCBt
ZW51IGl0ZW0iKTsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cKaW5kZXggNDFiNmZhOS4uNDA2MWU1YyAxMDA2NDQKLS0tIGEvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAor
MjAxMC0wOS0xNyAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gZW5oYW5j
ZWQgY29udGV4dCBtZW51IGZvciBtZWRpYSBlbGVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUwMjEKKworICAgICAgICBOZXcgbG9jYWxpemVk
IHN0cmluZ3MgZm9yIHRoZSBtZWRpYSBlbGVtZW50IGNvbnRleHQtbWVudS4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93
KToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnQ29w
eU1lZGlhTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAgICAgIChXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCk6CisgICAg
ICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9G
dWxsc2NyZWVuKToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJ
dGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4
dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6
OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhVW5NdXRlKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKwogMjAxMC0wOS0xNiAgRGFyaW4gQWRs
ZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGlu
Zy4KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcCBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVn
aWVzLmNwcAppbmRleCAwMGEyZWFiLi45ZmFkZTg1IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC0xNjMsNiArMTYzLDUx
IEBAIFN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlJ
bWFnZVRvQ2xpcGJvYXJkKCkKICAgICByZXR1cm4gVUlfU1RSSU5HKCJDb3B5IEltYWdlIiwgIkNv
cHkgSW1hZ2UgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAorU3RyaW5nIFdlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3coKQoreworICAg
IHJldHVybiBVSV9TVFJJTkcoIk9wZW4gTWVkaWEgaW4gTmV3IFdpbmRvdyIsICJPcGVuIE1lZGlh
IGluIE5ldyBXaW5kb3ciKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29u
dGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4g
VUlfU1RSSU5HKCJDb3B5IE1lZGlhIExpbmsiLCAiQ29weSBNZWRpYSBMaW5rIExvY2F0aW9uIik7
Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1Rv
Z2dsZU1lZGlhQ29udHJvbHMoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIlRvZ2dsZSBDb250
cm9scyIsICJUb2dnbGUgTWVkaWEgQ29udHJvbHMiKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3Jt
U3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkKK3sKKyAgICBy
ZXR1cm4gVUlfU1RSSU5HKCJUb2dnbGUgTG9vcCIsICJUb2dnbGUgTWVkaWEgTG9vcCBQbGF5YmFj
ayIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1U
YWdFbnRlclZpZGVvRnVsbHNjcmVlbigpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiRW50ZXIg
RnVsbHNjcmVlbiIsICJTd2l0Y2ggVmlkZW8gdG8gRnVsbHNjcmVlbiIpOworfQorCitTdHJpbmcg
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQorewor
ICAgIHJldHVybiBVSV9TVFJJTkcoIlBsYXkiLCAiUGxheSIpOworfQorCitTdHJpbmcgV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkKK3sKKyAgICBy
ZXR1cm4gVUlfU1RSSU5HKCJQYXVzZSIsICJQYXVzZSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKQoreworICAgIHJldHVy
biBVSV9TVFJJTkcoIk11dGUiLCAiTXV0ZSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVVuTXV0ZSgpCit7CisgICAgcmV0dXJuIFVJ
X1NUUklORygiVW5NdXRlIiwgIlVuTXV0ZSIpOworfQorCiBTdHJpbmcgV2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpCiB7CiAgICAg
cmV0dXJuIFVJX1NUUklORygiT3BlbiBGcmFtZSBpbiBOZXcgV2luZG93IiwgIk9wZW4gRnJhbWUg
aW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKaW5kZXggYzNjZmJiNC4uMDE1Y2Yw
ZCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMuaAorKysgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5oCkBAIC05Miw2ICs5MiwxNSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgV1RGOjpTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnTGVmdFRvUmlnaHQoKTsKICAgICB2aXJ0dWFsIFdURjo6U3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0KCk7CiAgICAgdmlydHVhbCBXVEY6OlN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgpOworICAgIHZpcnR1YWwgV1RG
OjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3coKTsKKyAgICB2
aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBi
b2FyZCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xl
TWVkaWFDb250cm9scygpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnVG9nZ2xlTWVkaWFMb29wKCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ01lZGlhVW5NdXRlKCk7CiAjZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRf
TUVOVVMpCiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBzZWFyY2hNZW51Tm9SZWNlbnRTZWFyY2hl
c1RleHQoKTsKICAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHNlYXJjaE1lbnVSZWNlbnRTZWFyY2hl
c1RleHQoKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xz
L0NoYW5nZUxvZwppbmRleCA1NTAyN2QyLi5lNWI4YTMxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTAtMDktMTUgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIGVuaGFu
Y2VkIGNvbnRleHQgbWVudSBmb3IgbWVkaWEgZWxlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MDIxCisKKyAgICAgICAgRXZlbnRTZW5kZXI6
OmNvbnRleHRDbGljaygpIG5vdyByZXR1cm5zIGFuIGFycmF5IG9mIGpzCisgICAgICAgIG9iamVj
dHMuIEVhY2ggb2JqZWN0IGhhcyBhIHRpdGxlIHByb3BlcnR5IGFuZCBhIGNsaWNrKCkgbWV0aG9k
LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0V2ZW50U2VuZGVyLmNwcDoKKyAgICAg
ICAgKGdldE1lbnVJdGVtVGl0bGVDYWxsYmFjayk6CisgICAgICAgIChzZXRNZW51SXRlbVRpdGxl
Q2FsbGJhY2spOgorICAgICAgICAobWVudUl0ZW1DbGlja0NhbGxiYWNrKToKKyAgICAgICAgKGdl
dE1lbnVJdGVtQ2xhc3MpOgorICAgICAgICAoY29udGV4dENsaWNrQ2FsbGJhY2spOgorCiAyMDEw
LTA5LTE2ICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBPamFuIFZhZmFpLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvZ3RrL0V2ZW50U2VuZGVyLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0
ay9FdmVudFNlbmRlci5jcHAKaW5kZXggMGUyZTQ2OS4uZmU3ZTkzYSAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0V2ZW50U2VuZGVyLmNwcAorKysgYi9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRXZlbnRTZW5kZXIuY3BwCkBAIC0xNDcsNiArMTQ3LDU4
IEBAIGJvb2wgcHJlcGFyZU1vdXNlQnV0dG9uRXZlbnQoR2RrRXZlbnQqIGV2ZW50LCBpbnQgZXZl
bnRTZW5kZXJCdXR0b25OdW1iZXIsIGd1aW50CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3N0YXRp
YyBKU1ZhbHVlUmVmIGdldE1lbnVJdGVtVGl0bGVDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4
dCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWVS
ZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBHdGtXaWRnZXQqIHdpZGdldCA9IEdUS19XSURHRVQoSlNP
YmplY3RHZXRQcml2YXRlKG9iamVjdCkpOworICAgIENTdHJpbmcgbGFiZWw7CisgICAgaWYgKEdU
S19JU19TRVBBUkFUT1JfTUVOVV9JVEVNKHdpZGdldCkpCisgICAgICAgIGxhYmVsID0gIjxzZXBh
cmF0b3I+IjsKKyAgICBlbHNlCisgICAgICAgIGxhYmVsID0gZ3RrX21lbnVfaXRlbV9nZXRfbGFi
ZWwoR1RLX01FTlVfSVRFTSh3aWRnZXQpKTsKKworICAgIHJldHVybiBKU1ZhbHVlTWFrZVN0cmlu
Zyhjb250ZXh0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhsYWJlbC5kYXRhKCkpKTsK
K30KKworc3RhdGljIGJvb2wgc2V0TWVudUl0ZW1UaXRsZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBj
b250ZXh0LCBKU09iamVjdFJlZiBvYmplY3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZVJlZiB2YWx1ZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIHJldHVybiB0cnVl
OworfQorCitzdGF0aWMgSlNWYWx1ZVJlZiBtZW51SXRlbUNsaWNrQ2FsbGJhY2soSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0
LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNW
YWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIEd0a01lbnVJdGVtKiBpdGVtID0gR1RLX01FTlVf
SVRFTShKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAgIGd0a19tZW51X2l0ZW1f
YWN0aXZhdGUoaXRlbSk7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQp
OworfQorCitzdGF0aWMgSlNTdGF0aWNGdW5jdGlvbiBzdGF0aWNNZW51SXRlbUZ1bmN0aW9uc1td
ID0geworICAgIHsgImNsaWNrIiwgbWVudUl0ZW1DbGlja0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAg
eyAwLCAwLCAwIH0KK307CisKK3N0YXRpYyBKU1N0YXRpY1ZhbHVlIHN0YXRpY01lbnVJdGVtVmFs
dWVzW10gPSB7CisgICAgeyAidGl0bGUiLCBnZXRNZW51SXRlbVRpdGxlQ2FsbGJhY2ssIHNldE1l
bnVJdGVtVGl0bGVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVOb25lIH0sCisgICAgeyAw
LCAwLCAwLCAwIH0KK307CisKK3N0YXRpYyBKU0NsYXNzUmVmIGdldE1lbnVJdGVtQ2xhc3MoKQor
eworICAgIHN0YXRpYyBKU0NsYXNzUmVmIG1lbnVJdGVtQ2xhc3MgPSAwOworCisgICAgaWYgKCFt
ZW51SXRlbUNsYXNzKSB7CisgICAgICAgIEpTQ2xhc3NEZWZpbml0aW9uIGNsYXNzRGVmaW5pdGlv
biA9IHsKKyAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLCAwLCAwLAorICAgICAgICAgICAgICAg
IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDB9OworICAgICAgICBjbGFzc0RlZmluaXRp
b24uc3RhdGljRnVuY3Rpb25zID0gc3RhdGljTWVudUl0ZW1GdW5jdGlvbnM7CisgICAgICAgIGNs
YXNzRGVmaW5pdGlvbi5zdGF0aWNWYWx1ZXMgPSBzdGF0aWNNZW51SXRlbVZhbHVlczsKKworICAg
ICAgICBtZW51SXRlbUNsYXNzID0gSlNDbGFzc0NyZWF0ZSgmY2xhc3NEZWZpbml0aW9uKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gbWVudUl0ZW1DbGFzczsKK30KKworCiBzdGF0aWMgSlNWYWx1ZVJl
ZiBjb250ZXh0Q2xpY2tDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYg
ZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBj
b25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAg
ICAgR2RrRXZlbnQqIHByZXNzRXZlbnQgPSBnZGtfZXZlbnRfbmV3KEdES19CVVRUT05fUFJFU1Mp
OwpAQCAtMTY1LDEzICsyMTcsNyBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBjb250ZXh0Q2xpY2tDYWxs
YmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3RpbwogICAgICAgICBK
U1ZhbHVlUmVmIGFycmF5VmFsdWVzW2dfbGlzdF9sZW5ndGgoaXRlbXMpXTsKICAgICAgICAgaW50
IGluZGV4ID0gMDsKICAgICAgICAgZm9yIChHTGlzdCogaXRlbSA9IGdfbGlzdF9maXJzdChpdGVt
cyk7IGl0ZW07IGl0ZW0gPSBnX2xpc3RfbmV4dChpdGVtKSkgewotICAgICAgICAgICAgQ1N0cmlu
ZyBsYWJlbDsKLSAgICAgICAgICAgIGlmIChHVEtfSVNfU0VQQVJBVE9SX01FTlVfSVRFTShpdGVt
LT5kYXRhKSkKLSAgICAgICAgICAgICAgICBsYWJlbCA9ICI8c2VwYXJhdG9yPiI7Ci0gICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbGFiZWwgPSBndGtfbWVudV9pdGVtX2dldF9sYWJl
bChHVEtfTUVOVV9JVEVNKGl0ZW0tPmRhdGEpKTsKLQotICAgICAgICAgICAgYXJyYXlWYWx1ZXNb
aW5kZXhdID0gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcobGFiZWwuZGF0YSgpKSk7CisgICAgICAgICAgICBhcnJheVZhbHVlc1tpbmRleF0g
PSBKU09iamVjdE1ha2UoY29udGV4dCwgZ2V0TWVudUl0ZW1DbGFzcygpLCBpdGVtLT5kYXRhKTsK
ICAgICAgICAgICAgIGluZGV4Kys7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGluZGV4KQotLSAK
MS43LjE=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67892</attachid>
            <date>2010-09-17 02:03:24 -0700</date>
            <delta_ts>2010-09-17 02:17:34 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>updated-patch.patch</filename>
            <type>text/plain</type>
            <size>64678</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBlMzRkYzhmZGRhOTlmN2I4OTA5MmM3MjBlNDMxMzIzNWQzYWIwNDNjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBwaGlsbkB3ZWJraXQub3JnIDxwaGlsbkB3ZWJraXQub3JnPgpE
YXRlOiBUaHUsIDE2IFNlcCAyMDEwIDE2OjIxOjQ0ICswMDAwClN1YmplY3Q6IFtQQVRDSF0gdXBk
YXRlZCBwYXRjaAoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTcgKysrCiAuLi4vbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMtZXhw
ZWN0ZWQudHh0ICAgICAgICB8ICAgMjYgKysrKwogTGF5b3V0VGVzdHMvbWVkaWEvY29udGV4dC1t
ZW51LWFjdGlvbnMuaHRtbCAgICAgICAgfCAgIDkxICsrKysrKysrKysrKysrCiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAgIDQgKwogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIExh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkICAgICAgICAgICAgICAgICAgIHwgICAgMiAr
CiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAx
MjQgKysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxl
ci5jcHAgICAgICAgICAgICAgfCAgIDIyICsrKysKIFdlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1l
bnUuY3BwICAgICAgICAgICAgICAgICAgIHwgICA2MiArKysrKysrKystCiBXZWJDb3JlL3BsYXRm
b3JtL0NvbnRleHRNZW51SXRlbS5oICAgICAgICAgICAgICAgICB8ICAgIDggKysKIFdlYkNvcmUv
cGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCAgICAgICAgICAgIHwgICAxMCArKwogV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcCAgICAgICAgICAgICAgfCAgIDQ2ICsr
KysrKysKIFdlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oICAgICAgICAgICAgICAg
IHwgICAxMCArKwogLi4uL3BsYXRmb3JtL2FuZHJvaWQvTG9jYWxpemVkU3RyaW5nc0FuZHJvaWQu
Y3BwICAgfCAgIDU0ICsrKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9icmV3L0xvY2FsaXplZFN0
cmluZ3NCcmV3LmNwcCAgICAgfCAgIDQ1ICsrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0vZWZsL0xv
Y2FsaXplZFN0cmluZ3NFZmwuY3BwICAgICAgIHwgICA0NSArKysrKysrCiBXZWJDb3JlL3BsYXRm
b3JtL2d0ay9Db250ZXh0TWVudUl0ZW1HdGsuY3BwICAgICAgICB8ICAgIDkgKysKIFdlYkNvcmUv
cGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwICAgICAgIHwgICA0NiArKysrKysr
CiBXZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0cmluZ3NIYWlrdS5jcHAgICB8ICAg
NDUgKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9xdC9Mb2NhbGl6YXRpb25zLmNwcCAgICAgICAg
ICAgICAgfCAgIDQ1ICsrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5n
c1d4LmNwcCAgICAgICAgIHwgICA0NSArKysrKysrCiBXZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0
UmVzdWx0LmNwcCAgICAgICAgICAgICAgICB8ICAxMjYgKysrKysrKysrKysrKysrKysrLS0KIFdl
YkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaCAgICAgICAgICAgICAgICAgIHwgICAxOCAr
KysKIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAyMCArKysKIFdlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxpemVkU3RyaW5ncy5jcHAgICAgICAg
ICAgIHwgICAgOSArKwogV2ViS2l0L21hYy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDIxICsrKysKIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLmggIHwgICAgOSArKwogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMubW0gfCAgIDQ1ICsrKysrKysKIFdlYktpdC93aW4vQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMSArKysrCiAuLi4vd2luL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgICB8ICAgNDUgKysrKysrKwogV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAgfCAgICA5ICsr
CiBXZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MjEgKysrKwogLi4uL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgICAg
ICAgfCAgIDQ1ICsrKysrKysKIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaCAgICAgICAgIHwgICAgOSArKwogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDE3ICsrKwogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
Z3RrL0V2ZW50U2VuZGVyLmNwcCAgICAgfCAgIDYwICsrKysrKysrLQogMzYgZmlsZXMgY2hhbmdl
ZCwgMTIwOCBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBMYXlvdXRUZXN0cy9tZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy1leHBlY3RlZC50eHQKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9tZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy5o
dG1sCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDJlZjZhMmEuLjVmY2I4ZjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAx
MC0wOS0xNSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gZW5oYW5jZWQg
Y29udGV4dCBtZW51IGZvciBtZWRpYSBlbGVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUwMjEKKworICAgICAgICBOZXcgdGVzdCBjaGVja2lu
ZyB0aGUgYWN0aW9ucyB0aGF0IGNhbiBiZSB0cmlnZ2VyZWQgYnkgYWN0aXZhdGluZworICAgICAg
ICB0aGUgY29udGV4LW1lbnUgb2YgdGhlIG1lZGlhIGVsZW1lbnQuIFNraXBwZWQgb24gbWFjLCBx
dCBhbmQgd2luCisgICAgICAgIGJlY2F1c2Ugb2YgbGFjayBvZiBEUlQgc3VwcG9ydC4KKworICAg
ICAgICAqIG1lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMuaHRtbDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoK
KyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMC0wOS0xNiAgU2ltb24gRnJh
c2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKYW1l
cyBSb2JpbnNvbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL2NvbnRleHQtbWVudS1h
Y3Rpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL2NvbnRleHQtbWVudS1hY3Rp
b25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTE4
ZjNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvY29udGV4dC1tZW51LWFj
dGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjYgQEAKK1Rlc3QgdGhlIHZhcmlvdXMgYWN0
aW9ucyBhdmFpbGFibGUgaW4gdGhlIEhUTUw1IG1lZGlhIGVsZW1lbnQgY29udGV4dC1tZW51Lgor
CitSVU4odmlkZW8uc3JjID0gJ2NvbnRlbnQvdGVzdC5tcDQnKQorRVZFTlQocGxheSkKK0VYUEVD
VEVEICh2aWRlby5wYXVzZWQgPT0gJ2ZhbHNlJykgT0sKK1RvZ2dsaW5nIHBsYXkgc3RhdGUKK0VY
UEVDVEVEICh2aWRlby5wYXVzZWQgPT0gJ3RydWUnKSBPSworCitFWFBFQ1RFRCAodmlkZW8ubXV0
ZWQgPT0gJ2ZhbHNlJykgT0sKK1RvZ2dsaW5nIG11dGUgc3RhdGUKK0VYUEVDVEVEICh2aWRlby5t
dXRlZCA9PSAndHJ1ZScpIE9LCisKK0VYUEVDVEVEICh2aWRlby5jb250cm9scyA9PSAndHJ1ZScp
IE9LCitUb2dnbGluZyBtZWRpYSBjb250cm9scworRVhQRUNURUQgKHZpZGVvLmNvbnRyb2xzID09
ICdmYWxzZScpIE9LCisKK0VYUEVDVEVEICh2aWRlby5sb29wID09ICdmYWxzZScpIE9LCitUb2dn
bGluZyBsb29wIHN0YXRlCitFWFBFQ1RFRCAodmlkZW8ubG9vcCA9PSAndHJ1ZScpIE9LCisKK0VY
UEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAnZmFsc2UnKSBPSwor
VG9nZ2xpbmcgZnVsbHNjcmVlbiBzdGF0ZQorRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlp
bmdGdWxsc2NyZWVuID09ICd0cnVlJykgT0sKKworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMuaHRtbCBiL0xheW91dFRlc3Rz
L21lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYWU4MGYxNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlh
L2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwKQEAgLTAsMCArMSw5MSBAQAorPGh0bWw+Cis8aGVh
ZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhLWZpbGUuanMiPjwvc2NyaXB0PgorICAgICAg
ICA8c2NyaXB0IHNyYz12aWRlby10ZXN0LmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0Pgor
CisgICAgICAgICAgICBmdW5jdGlvbiBwbGF5aW5nKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBlbmRUZXN0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
ICAgICBlbmRUZXN0KCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7CisKKyAgICAgICAg
ICAgICAgICB2YXIgeCwgeSwgaXRlbXM7CisgICAgICAgICAgICAgICAgeCA9IHZpZGVvLm9mZnNl
dFBhcmVudC5vZmZzZXRMZWZ0ICsgdmlkZW8ub2Zmc2V0TGVmdCArIHZpZGVvLm9mZnNldFdpZHRo
IC8gMjsKKyAgICAgICAgICAgICAgICB5ID0gdmlkZW8ub2Zmc2V0UGFyZW50Lm9mZnNldFRvcCAr
IHZpZGVvLm9mZnNldFRvcCArIHZpZGVvLm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CisgICAgICAgICAgICAgICAgaXRlbXMg
PSBldmVudFNlbmRlci5jb250ZXh0Q2xpY2soKTsKKworCisgICAgICAgICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChpdGVtc1tpXS50aXRsZS5tYXRjaCgiQ29udHJvbHMiKSkgewor
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmNvbnRyb2xzIiwgdHJ1
ZSwgJz09Jyk7CisgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVG9nZ2xpbmcg
bWVkaWEgY29udHJvbHMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNbaV0uY2xpY2so
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5jb250cm9scyIs
IGZhbHNlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtc1tp
XS50aXRsZS5tYXRjaCgiUGF1c2UiKSkgeworICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhw
ZWN0ZWQoInZpZGVvLnBhdXNlZCIsIGZhbHNlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgY29uc29sZVdyaXRlKCJUb2dnbGluZyBwbGF5IHN0YXRlIik7CisgICAgICAgICAgICAgICAg
ICAgICAgIGl0ZW1zW2ldLmNsaWNrKCk7CisgICAgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBl
Y3RlZCgidmlkZW8ucGF1c2VkIiwgdHJ1ZSwgJz09Jyk7CisgICAgICAgICAgICAgICAgICAgICAg
IGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ICAgICAgICBpZiAoaXRlbXNbaV0udGl0bGUubWF0Y2goIkxvb3AiKSkgeworICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmxvb3AiLCBmYWxzZSwgJz09Jyk7CisgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVG9nZ2xpbmcgbG9vcCBzdGF0ZSIpOwor
ICAgICAgICAgICAgICAgICAgICAgICBpdGVtc1tpXS5jbGljaygpOworICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmxvb3AiLCB0cnVlLCAnPT0nKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtc1tpXS50aXRsZS5tYXRjaCgiTXV0ZSIpKSB7
CisgICAgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ubXV0ZWQiLCBmYWxz
ZSwgJz09Jyk7CisgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVG9nZ2xpbmcg
bXV0ZSBzdGF0ZSIpOworICAgICAgICAgICAgICAgICAgICAgICBpdGVtc1tpXS5jbGljaygpOwor
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLm11dGVkIiwgdHJ1ZSwg
Jz09Jyk7CisgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbXNbaV0udGl0bGUu
bWF0Y2goIkZ1bGxzY3JlZW4iKSAmJiB2aWRlby53ZWJraXRTdXBwb3J0c0Z1bGxzY3JlZW4pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby53ZWJraXREaXNwbGF5
aW5nRnVsbHNjcmVlbiIsIGZhbHNlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgY29u
c29sZVdyaXRlKCJUb2dnbGluZyBmdWxsc2NyZWVuIHN0YXRlIik7CisgICAgICAgICAgICAgICAg
ICAgICAgIGl0ZW1zW2ldLmNsaWNrKCk7CisgICAgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBl
Y3RlZCgidmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4iLCB0cnVlLCAnPT0nKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IHRlc3QgY29weSBsaW5rIGxvY2F0
aW9uIGFuZCBvcGVuIGluIG5ldyB3aW5kb3cuCisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAg
ICAgICBlbmRUZXN0KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0
YXJ0KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7
CisgICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdwbGF5JywgcGxheWluZyk7CisgICAgICAg
ICAgICAgICAgcnVuKCJ2aWRlby5zcmMgPSAnIiArIGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgImNv
bnRlbnQvdGVzdCIpICsgIiciKTsKKyAgICAgICAgICAgIH0KKworICAgICAgIDwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJzdGFydCgpIj4KKyAgICA8cD5UZXN0IHRoZSB2YXJpb3Vz
IGFjdGlvbnMgYXZhaWxhYmxlIGluIHRoZSBIVE1MNSBtZWRpYSBlbGVtZW50IGNvbnRleHQtbWVu
dS48L3A+CisgICAgPHZpZGVvIGlkPSJ2aWRlbyIgYXV0b3BsYXkgY29udHJvbHM+PC92aWRlbz4K
KzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCBiOGNhNTI4
Li5iNDExMWFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtMzEwLDMgKzMxMCw3IEBA
IGZhc3QvZmlsZXMvd29ya2VycwogCiAjIHZpZXdwb3J0IG1ldGEgdGFnIHN1cHBvcnQKIGZhc3Qv
dmlld3BvcnQKKworIyBuZWVkcyBlbmhhbmNlZCBldmVudFNlbmRlci5jb250ZXh0TWVudSgpIHJl
dHVybiB2YWx1ZQorIyBzZWUgYWxzbyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDUwMjEKK21lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC9Ta2lwcGVkCmluZGV4IGY4YWJlZTcuLjM2NjQwMDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBl
ZApAQCAtMjI2OSw2ICsyMjY5LDggQEAgZWRpdGluZy9zZWxlY3Rpb24vNTE5NTE2Ni0xLmh0bWwK
IAogIyBtaXNzaW5nIERSVCBmZWF0dXJlLCBzZWUgYWxzbyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzkxMDIKIGVkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS1v
bi10ZXh0Lmh0bWwKKyMgYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00NTAyMQorbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMuaHRtbAogCiAjID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ICMKICMgRmFpbGluZyBlZGl0aW5nL3NwZWxsaW5nIHRlc3RzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9Ta2lwcGVkCmluZGV4IDg0NjBjZjQuLjllZjljYmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9T
a2lwcGVkCkBAIC0yOTcsNiArMjk3LDggQEAgaHR0cC90ZXN0cy9jc3MvY3NzLWltYWdlLWxvYWRp
bmcuaHRtbAogCiAjIG1pc3NpbmcgRFJUIGZlYXR1cmUsIHNlZSBhbHNvIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTEwMgogZWRpdGluZy9zZWxlY3Rpb24vY29udGV4
dC1tZW51LW9uLXRleHQuaHRtbAorIyBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ1MDIxCittZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy5odG1sCiAKICMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBObyBidWdzIGZpbGVk
IGFib3V0IHRoZSBiZWxvdyB5ZXQjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlMTM4MDdkLi5lODQy
Y2ZhIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEyNyBAQAorMjAxMC0wOS0xNSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3Jt
YW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgW0dUS10gZW5oYW5jZWQgY29udGV4dCBtZW51IGZvciBtZWRpYSBlbGVtZW50cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUwMjEKKwor
ICAgICAgICBOZXcgaXRlbXMgaW4gdGhlIG1lZGlhIEVsZW1lbnQgY29udGV4dCBtZW51OgorICAg
ICAgICAtIHBsYXkvcGF1c2UKKyAgICAgICAgLSBtdXRlL3VubXV0ZQorICAgICAgICAtIGNvbnRy
b2xzIGRpc3BsYXkgY29udHJvbAorICAgICAgICAtIHN3aXRjaCB0byBmdWxsc2NyZWVuIChmb3Ig
dmlkZW8gb25seSkKKyAgICAgICAgLSBsb29wIHBsYXliYWNrIGNvbnRyb2wKKyAgICAgICAgLSBj
b3B5IG1lZGlhIHVybCB0byBjbGlwYm9hcmQKKyAgICAgICAgLSBvcGVuIGluIG5ldyB3aW5kb3cK
KworICAgICAgICBUZXN0OiBtZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy5odG1sCisKKyAgICAg
ICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9Db250ZXh0TWVudS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVu
dTo6cG9wdWxhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnU6OmNoZWNrT3JFbmFi
bGVJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmg6CisgICAg
ICAgICogcGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ09wZW5NZWRpYUluTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnTWVkaWFQYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1U
YWdNZWRpYU11dGUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFV
bk11dGUpOgorICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9hbmRyb2lkL0xvY2FsaXplZFN0cmluZ3NBbmRyb2lkLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xz
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVl
bik6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSk6CisgICAgICAgIChX
ZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11dGUpOgorICAgICAgICAqIHBsYXRmb3JtL2JyZXcv
TG9jYWxpemVkU3RyaW5nc0JyZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdNZWRpYVBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ01lZGlhTXV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRp
YVVuTXV0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL0xvY2FsaXplZFN0cmluZ3NFZmwuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5k
b3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1Rv
Q2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1l
ZGlhQ29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xl
TWVkaWFMb29wKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlk
ZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlh
UGxheSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVVuTXV0ZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3RrL0NvbnRleHRNZW51SXRlbUd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpndGtT
dG9ja0lERnJvbUNvbnRleHRNZW51QWN0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvTG9j
YWxpemVkU3RyaW5nc0d0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1U
YWdPcGVuTWVkaWFJbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ01lZGlhUGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFn
TWVkaWFNdXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhVW5N
dXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9oYWlrdS9Mb2NhbGl6ZWRTdHJpbmdzSGFpa3UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5k
b3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1Rv
Q2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1l
ZGlhQ29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xl
TWVkaWFMb29wKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlk
ZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlh
UGxheSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVVuTXV0ZSk6CisgICAgICAgICogcGxh
dGZvcm0vcXQvTG9jYWxpemF0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVu
dUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnTWVkaWFNdXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01l
ZGlhVW5NdXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS93eC9Mb2NhbGl6ZWRTdHJpbmdzV3guY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5k
b3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1Rv
Q2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1l
ZGlhQ29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xl
TWVkaWFMb29wKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlk
ZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlh
UGxheSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVVuTXV0ZSk6CisgICAgICAgICogcmVu
ZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3Vs
dDo6YWJzb2x1dGVNZWRpYVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0Ojpt
ZWRpYVN1cHBvcnRzRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0
OjptZWRpYUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6dG9nZ2xl
TWVkaWFDb250cm9sc0Rpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6
dG9nZ2xlTWVkaWFMb29wUGxheWJhY2spOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3Vs
dDo6ZW50ZXJGdWxsc2NyZWVuRm9yVmlkZW8pOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJl
c3VsdDo6bWVkaWFDb250cm9sc0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJl
c3VsdDo6bWVkaWFMb29wRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0
OjptZWRpYVBsYXlpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6dG9nZ2xl
TWVkaWFQbGF5U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6bWVkaWFI
YXNBdWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjptZWRpYU11dGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQ6OnRvZ2dsZU1lZGlhTXV0ZVN0YXRlKToK
KyAgICAgICAgKiByZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5oOgorCiAyMDEwLTA5LTE2ICB0YWth
bm8gdGFrdW1pICA8dGFrYW5vMUBhc2lhLmFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBLZW50IFRhbXVyYS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRy
b2xsZXIuY3BwIGIvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKaW5kZXgg
ZDIzMTdkMi4uZGU2NDk4OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29u
dHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAK
QEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEgUy5M
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE4Niw2ICsxODcsMjcgQEAgdm9p
ZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRN
ZW51SXRlbSogaXRlbSkKICAgICAgICAgLy8gRm9yIG5vdywgY2FsbCBpbnRvIHRoZSBjbGllbnQu
IFRoaXMgaXMgdGVtcG9yYXJ5IQogICAgICAgICBmcmFtZS0+ZWRpdG9yKCktPmNvcHlJbWFnZShy
ZXN1bHQpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5N
ZWRpYUluTmV3V2luZG93OgorICAgICAgICBvcGVuTmV3V2luZG93KHJlc3VsdC5hYnNvbHV0ZU1l
ZGlhVVJMKCksIGZyYW1lKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb250ZXh0TWVudUl0
ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQ6CisgICAgICAgIGZyYW1lLT5lZGl0b3IoKS0+
Y29weVVSTChyZXN1bHQuYWJzb2x1dGVNZWRpYVVSTCgpLCByZXN1bHQudGV4dENvbnRlbnQoKSk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFD
b250cm9sczoKKyAgICAgICAgcmVzdWx0LnRvZ2dsZU1lZGlhQ29udHJvbHNEaXNwbGF5KCk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29w
OgorICAgICAgICByZXN1bHQudG9nZ2xlTWVkaWFMb29wUGxheWJhY2soKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbjoKKyAg
ICAgICAgcmVzdWx0LmVudGVyRnVsbHNjcmVlbkZvclZpZGVvKCk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5UGF1c2U6CisgICAgICAgIHJlc3Vs
dC50b2dnbGVNZWRpYVBsYXlTdGF0ZSgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbnRl
eHRNZW51SXRlbVRhZ01lZGlhTXV0ZToKKyAgICAgICAgcmVzdWx0LnRvZ2dsZU1lZGlhTXV0ZVN0
YXRlKCk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnT3BlbkZy
YW1lSW5OZXdXaW5kb3c6IHsKICAgICAgICAgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciA9IGZyYW1l
LT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKTsKICAgICAgICAgaWYgKCFsb2FkZXItPnVucmVh
Y2hhYmxlVVJMKCkuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Db250
ZXh0TWVudS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmNwcAppbmRleCAzN2Q0
YzJiLi5mZGNkM2M5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmNw
cAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmNwcApAQCAtMSw2ICsxLDcgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IENocmlzdGlhbiBEeXdhbiA8Y2hyaXN0aWFu
QGltZW5kaW8uY29tPgorICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwKICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgyLDYgKzI4MywyMCBAQCB2b2lkIENvbnRleHRN
ZW51Ojpwb3B1bGF0ZSgpCiAgICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VU
b0Rpc2soKSk7CiAgICAgQ29udGV4dE1lbnVJdGVtIENvcHlJbWFnZUl0ZW0oQWN0aW9uVHlwZSwg
Q29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQsIAogICAgICAgICBjb250ZXh0
TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpKTsKKyAgICBDb250ZXh0TWVudUl0ZW0g
T3Blbk1lZGlhSW5OZXdXaW5kb3dJdGVtKEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ09w
ZW5NZWRpYUluTmV3V2luZG93LCAKKyAgICAgICAgY29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlh
SW5OZXdXaW5kb3coKSk7CisgICAgQ29udGV4dE1lbnVJdGVtIENvcHlNZWRpYUxpbmtJdGVtKEFj
dGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCwgCisg
ICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCgpKTsKKyAg
ICBDb250ZXh0TWVudUl0ZW0gTWVkaWFQbGF5UGF1c2UoQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJ
dGVtVGFnTWVkaWFQbGF5UGF1c2UsIAorICAgICAgICBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBs
YXkoKSk7CisgICAgQ29udGV4dE1lbnVJdGVtIE1lZGlhTXV0ZShBY3Rpb25UeXBlLCBDb250ZXh0
TWVudUl0ZW1UYWdNZWRpYU11dGUsIAorICAgICAgICBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11
dGUoKSk7CisgICAgQ29udGV4dE1lbnVJdGVtIFRvZ2dsZU1lZGlhQ29udHJvbHMoQ2hlY2thYmxl
QWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scywgCisgICAg
ICAgIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKSk7CisgICAgQ29udGV4
dE1lbnVJdGVtIFRvZ2dsZU1lZGlhTG9vcChDaGVja2FibGVBY3Rpb25UeXBlLCBDb250ZXh0TWVu
dUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AsIAorICAgICAgICBjb250ZXh0TWVudUl0ZW1UYWdUb2dn
bGVNZWRpYUxvb3AoKSk7CisgICAgQ29udGV4dE1lbnVJdGVtIEVudGVyVmlkZW9GdWxsc2NyZWVu
KEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuLCAKKyAg
ICAgICAgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKSk7CiAjaWYgUExB
VEZPUk0oTUFDKQogICAgIENvbnRleHRNZW51SXRlbSBTZWFyY2hTcG90bGlnaHRJdGVtKEFjdGlv
blR5cGUsIENvbnRleHRNZW51SXRlbVRhZ1NlYXJjaEluU3BvdGxpZ2h0LCAKICAgICAgICAgY29u
dGV4dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90bGlnaHQoKSk7CkBAIC0zNDksNiArMzY0LDIyIEBA
IHZvaWQgQ29udGV4dE1lbnU6OnBvcHVsYXRlKCkKICAgICAgICAgICAgICAgICBhcHBlbmRJdGVt
KENvcHlJbWFnZUl0ZW0pOwogICAgICAgICB9CiAKKyAgICAgICAgS1VSTCBtZWRpYVVSTCA9IHJl
c3VsdC5hYnNvbHV0ZU1lZGlhVVJMKCk7CisgICAgICAgIGlmICghbWVkaWFVUkwuaXNFbXB0eSgp
KSB7CisgICAgICAgICAgICBpZiAoIWxpbmtVUkwuaXNFbXB0eSgpIHx8ICFpbWFnZVVSTC5pc0Vt
cHR5KCkpCisgICAgICAgICAgICAgICAgYXBwZW5kSXRlbSgqc2VwYXJhdG9ySXRlbSgpKTsKKwor
ICAgICAgICAgICAgYXBwZW5kSXRlbShNZWRpYVBsYXlQYXVzZSk7CisgICAgICAgICAgICBhcHBl
bmRJdGVtKE1lZGlhTXV0ZSk7CisgICAgICAgICAgICBhcHBlbmRJdGVtKFRvZ2dsZU1lZGlhQ29u
dHJvbHMpOworICAgICAgICAgICAgYXBwZW5kSXRlbShUb2dnbGVNZWRpYUxvb3ApOworICAgICAg
ICAgICAgYXBwZW5kSXRlbShFbnRlclZpZGVvRnVsbHNjcmVlbik7CisKKyAgICAgICAgICAgIGFw
cGVuZEl0ZW0oKnNlcGFyYXRvckl0ZW0oKSk7CisgICAgICAgICAgICBhcHBlbmRJdGVtKENvcHlN
ZWRpYUxpbmtJdGVtKTsKKyAgICAgICAgICAgIGFwcGVuZEl0ZW0oT3Blbk1lZGlhSW5OZXdXaW5k
b3dJdGVtKTsKKyAgICAgICAgfQorCiAgICAgICAgIGlmIChpbWFnZVVSTC5pc0VtcHR5KCkgJiYg
bGlua1VSTC5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIGlmIChyZXN1bHQuaXNTZWxlY3RlZCgp
KSB7CiAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdGlvbkNvbnRhaW5zUG9zc2libGVXb3JkKGZy
YW1lKSkgewpAQCAtMzc1LDEyICs0MDYsNiBAQCB2b2lkIENvbnRleHRNZW51Ojpwb3B1bGF0ZSgp
CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAgICAgICAgICAgICBpZiAoIShmcmFtZS0+cGFn
ZSgpICYmIGZyYW1lLT5wYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+aGFzSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnQoKSkpIHsKICNlbmRpZgotI2lmIFBMQVRGT1JNKEdUSykKLSAgICAgICAg
ICAgICAgICBhcHBlbmRJdGVtKEJhY2tJdGVtKTsKLSAgICAgICAgICAgICAgICBhcHBlbmRJdGVt
KEZvcndhcmRJdGVtKTsKLSAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKFN0b3BJdGVtKTsKLSAg
ICAgICAgICAgICAgICBhcHBlbmRJdGVtKFJlbG9hZEl0ZW0pOwotI2Vsc2UKICAgICAgICAgICAg
ICAgICBpZiAoZnJhbWUtPnBhZ2UoKSAmJiBmcmFtZS0+cGFnZSgpLT5jYW5Hb0JhY2tPckZvcndh
cmQoLTEpKQogICAgICAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKEJhY2tJdGVtKTsKIApAQCAt
MzkzLDcgKzQxOCw2IEBAIHZvaWQgQ29udGV4dE1lbnU6OnBvcHVsYXRlKCkKICAgICAgICAgICAg
ICAgICAgICAgYXBwZW5kSXRlbShTdG9wSXRlbSk7CiAgICAgICAgICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKFJlbG9hZEl0ZW0pOwotI2VuZGlmCiAjaWYgRU5B
QkxFKElOU1BFQ1RPUikKICAgICAgICAgICAgICAgICB9CiAjZW5kaWYKQEAgLTc4OCw2ICs4MTIs
MTcgQEAgdm9pZCBDb250ZXh0TWVudTo6Y2hlY2tPckVuYWJsZUlmTmVlZGVkKENvbnRleHRNZW51
SXRlbSYgaXRlbSkgY29uc3QKICAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1h
Z2VJbk5ld1dpbmRvdzoKICAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZElt
YWdlVG9EaXNrOgogICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xp
cGJvYXJkOgorICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2lu
ZG93OgorICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBi
b2FyZDoKKyAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xz
OgorICAgICAgICAgICAgc2hvdWxkQ2hlY2sgPSBtX2hpdFRlc3RSZXN1bHQubWVkaWFDb250cm9s
c0VuYWJsZWQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENvbnRleHRNZW51
SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcDoKKyAgICAgICAgICAgIHNob3VsZENoZWNrID0gbV9oaXRU
ZXN0UmVzdWx0Lm1lZGlhTG9vcEVuYWJsZWQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuOgorICAgICAgICAg
ICAgc2hvdWxkRW5hYmxlID0gbV9oaXRUZXN0UmVzdWx0Lm1lZGlhU3VwcG9ydHNGdWxsc2NyZWVu
KCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdP
cGVuRnJhbWVJbk5ld1dpbmRvdzoKICAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTcGVs
bGluZ0d1ZXNzOgogICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ090aGVyOgpAQCAtODIz
LDYgKzg1OCwxOSBAQCB2b2lkIENvbnRleHRNZW51OjpjaGVja09yRW5hYmxlSWZOZWVkZWQoQ29u
dGV4dE1lbnVJdGVtJiBpdGVtKSBjb25zdAogICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbUxh
c3RDdXN0b21UYWc6CiAgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtQmFzZUFwcGxpY2F0aW9u
VGFnOgogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFn
TWVkaWFQbGF5UGF1c2U6CisgICAgICAgICAgICBpZiAobV9oaXRUZXN0UmVzdWx0Lm1lZGlhUGxh
eWluZygpKQorICAgICAgICAgICAgICAgIGl0ZW0uc2V0VGl0bGUoY29udGV4dE1lbnVJdGVtVGFn
TWVkaWFQYXVzZSgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpdGVtLnNl
dFRpdGxlKGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZToKKyAgICAgICAgICAg
IHNob3VsZEVuYWJsZSA9IG1faGl0VGVzdFJlc3VsdC5tZWRpYUhhc0F1ZGlvKCk7CisgICAgICAg
ICAgICBpZiAoIXNob3VsZEVuYWJsZSB8fCAhbV9oaXRUZXN0UmVzdWx0Lm1lZGlhTXV0ZWQoKSkK
KyAgICAgICAgICAgICAgICBpdGVtLnNldFRpdGxlKGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0
ZSgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpdGVtLnNldFRpdGxlKGNv
bnRleHRNZW51SXRlbVRhZ01lZGlhVW5NdXRlKCkpOworICAgICAgICAgICAgYnJlYWs7CiAgICAg
fQogCiAgICAgaXRlbS5zZXRDaGVja2VkKHNob3VsZENoZWNrKTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmggYi9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRN
ZW51SXRlbS5oCmluZGV4IDA1OGY2NDQuLmY3ZmE1ZTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVu
dUl0ZW0uaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUg
Q29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgSWdhbGlhIFMuTAogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNDMsNiAr
MTQ0LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgQ29udGV4dE1lbnVJdGVtVGFn
Q2FwaXRhbGl6ZSwKICAgICAgICAgQ29udGV4dE1lbnVJdGVtVGFnQ2hhbmdlQmFjaywKICNlbmRp
ZgorICAgICAgICBDb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdywKKyAgICAg
ICAgQ29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkLAorICAgICAgICBD
b250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzLAorICAgICAgICBDb250ZXh0TWVu
dUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AsCisgICAgICAgIENvbnRleHRNZW51SXRlbVRhZ0VudGVy
VmlkZW9GdWxsc2NyZWVuLAorICAgICAgICBDb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXlQYXVz
ZSwKKyAgICAgICAgQ29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlLAogICAgICAgICBDb250ZXh0
TWVudUl0ZW1CYXNlQ3VzdG9tVGFnID0gNTAwMCwKICAgICAgICAgQ29udGV4dE1lbnVJdGVtQ3Vz
dG9tVGFnTm9BY3Rpb24gPSA1OTk4LAogICAgICAgICBDb250ZXh0TWVudUl0ZW1MYXN0Q3VzdG9t
VGFnID0gNTk5OSwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemF0aW9uU3Ry
YXRlZ3kuaCBiL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaAppbmRleCAx
NzhjZmEyLi42YzRkYjZhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXphdGlv
blN0cmF0ZWd5LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6YXRpb25TdHJhdGVneS5o
CkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTAogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMTIsNiArMTEzLDE1IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplKCkgPSAwOwog
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoYW5nZUJhY2soY29uc3QgU3Ry
aW5nJiByZXBsYWNlZFN0cmluZykgPSAwOwogI2VuZGlmCisgICAgdmlydHVhbCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3coKSA9IDA7CisgICAgdmlydHVhbCBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKCkgPSAwOwor
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMo
KSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFM
b29wKCkgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlk
ZW9GdWxsc2NyZWVuKCkgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z01lZGlhUGxheSgpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdN
ZWRpYVBhdXNlKCkgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01l
ZGlhTXV0ZSgpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRp
YVVuTXV0ZSgpID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJbnNw
ZWN0RWxlbWVudCgpID0gMDsKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKIApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggYTY5ZTBmYi4uYjJlNmI1MSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTAogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNjIsNiArMzYzLDUxIEBAIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdDaGFuZ2VCYWNrKGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcpCiB9CiAK
ICNlbmRpZiAvLyBQTEFURk9STShNQUMpCisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVu
TWVkaWFJbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5s
b2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dp
bmRvdygpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xp
cGJvYXJkKCkKK3sKKyAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCgp
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpCit7
CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2NhbGl6YXRpb25TdHJhdGVneSgp
LT5jb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCk7Cit9CisKK1N0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKQoreworICAgIHJldHVybiBwbGF0Zm9y
bVN0cmF0ZWdpZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFn
VG9nZ2xlTWVkaWFMb29wKCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZp
ZGVvRnVsbHNjcmVlbigpCit7CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2Nh
bGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVl
bigpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkKK3sKKyAgICBy
ZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRl
eHRNZW51SXRlbVRhZ01lZGlhUGxheSgpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
TWVkaWFQYXVzZSgpCit7CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2NhbGl6
YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCk7Cit9CisKK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKQoreworICAgIHJldHVybiBwbGF0Zm9y
bVN0cmF0ZWdpZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFn
TWVkaWFNdXRlKCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVVuTXV0ZSgp
Cit7CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2NhbGl6YXRpb25TdHJhdGVn
eSgpLT5jb250ZXh0TWVudUl0ZW1UYWdNZWRpYVVuTXV0ZSgpOworfQogICAgIAogU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KCkKIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRT
dHJpbmdzLmgKaW5kZXggMDQwNDJiNi4uZTEzYTQwNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRT
dHJpbmdzLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2
LCAyMDA5IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMTA4LDYgKzEwOSwxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0NhcGl0YWxpemUoKTsKICAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnQ2hhbmdlQmFjayhjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nKTsKICNlbmRpZgorICAg
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdygpOworICAgIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQoKTsKKyAgICBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpOworICAgIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKTsKKyAgICBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKTsKKyAgICBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnTWVkaWFQbGF5KCk7CisgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlh
UGF1c2UoKTsKKyAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCk7CisgICAg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhVW5NdXRlKCk7CiAgICAgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KCk7CiAjZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRf
TUVOVVMpCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9Mb2NhbGl6ZWRT
dHJpbmdzQW5kcm9pZC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvTG9jYWxpemVkU3Ry
aW5nc0FuZHJvaWQuY3BwCmluZGV4IDJmYzg4MGIuLjhkOTI1MGEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vYW5kcm9pZC9Mb2NhbGl6ZWRTdHJpbmdzQW5kcm9pZC5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9hbmRyb2lkL0xvY2FsaXplZFN0cmluZ3NBbmRyb2lkLmNwcApAQCAtODEs
NiArODEsNjAgQEAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJk
KCkKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdP
cGVuTWVkaWFJbk5ld1dpbmRvdygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5r
VG9DbGlwYm9hcmQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmlu
ZygpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQ
bGF5KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30K
KworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnTWVkaWFNdXRlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBT
dHJpbmcoKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhVW5NdXRlKCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwogU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCkKIHsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L0xvY2FsaXplZFN0
cmluZ3NCcmV3LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9Mb2NhbGl6ZWRTdHJpbmdzQnJl
dy5jcHAKaW5kZXggMWJjNTk4NS4uYjUyODljMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9icmV3L0xvY2FsaXplZFN0cmluZ3NCcmV3LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Jy
ZXcvTG9jYWxpemVkU3RyaW5nc0JyZXcuY3BwCkBAIC05Niw2ICs5Niw1MSBAQCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKQogICAgIHJldHVybiAiQ29weSBp
bWFnZSB0byBjbGlwYm9hcmQiOwogfQogCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Blbk1l
ZGlhSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiAiT3BlbiBNZWRpYSBpbiBOZXcgV2luZG93
IjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2Fy
ZCgpCit7CisgICAgcmV0dXJuICJDb3B5IE1lZGlhIExpbmsgTG9jYXRpb24iOworfQorCitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpCit7CisgICAgcmV0dXJu
ICJUb2dnbGUgTWVkaWEgQ29udHJvbHMiOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
VG9nZ2xlTWVkaWFMb29wKCkKK3sKKyAgICByZXR1cm4gIlRvZ2dsZSBNZWRpYSBMb29wIFBsYXli
YWNrIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVu
KCkKK3sKKyAgICByZXR1cm4gIlN3aXRjaCBWaWRlbyB0byBGdWxsc2NyZWVuIjsKK30KKworU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpCit7CisgICAgcmV0dXJuICJQbGF5IjsK
K30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKQoreworICAgIHJldHVy
biAiUGF1c2UiOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkKK3sK
KyAgICByZXR1cm4gIk11dGUiOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFV
bk11dGUoKQoreworICAgIHJldHVybiAiVW5NdXRlIjsKK30KKwogU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCkKIHsKICAgICByZXR1cm4gIk9wZW4gZnJhbWUg
aW4gbmV3IHdpbmRvdyI7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Mb2NhbGl6
ZWRTdHJpbmdzRWZsLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0xvY2FsaXplZFN0cmluZ3NF
ZmwuY3BwCmluZGV4IDYwMjMyMDUuLmM2NDVlMGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vZWZsL0xvY2FsaXplZFN0cmluZ3NFZmwuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L0xvY2FsaXplZFN0cmluZ3NFZmwuY3BwCkBAIC05OCw2ICs5OCw1MSBAQCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKQogICAgIHJldHVybiBTdHJpbmc6OmZy
b21VVEY4KCJDb3B5IEltYWdlIik7CiB9CiAKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVu
TWVkaWFJbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIk9wZW4g
TWVkaWEgaW4gTmV3IFdpbmRvdyIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29w
eU1lZGlhTGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgi
Q29weSBNZWRpYSBMaW5rIExvY2F0aW9uIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgi
VG9nZ2xlIE1lZGlhIENvbnRyb2xzIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdU
b2dnbGVNZWRpYUxvb3AoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJUb2dnbGUg
TWVkaWEgTG9vcCBQbGF5YmFjayIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRW50
ZXJWaWRlb0Z1bGxzY3JlZW4oKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJTd2l0
Y2ggVmlkZW8gdG8gRnVsbHNjcmVlbiIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
TWVkaWFQbGF5KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiUGxheSIpOworfQor
CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpCit7CisgICAgcmV0dXJuIFN0
cmluZzo6ZnJvbVVURjgoIlBhdXNlIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdN
ZWRpYU11dGUoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJNdXRlIik7Cit9CisK
K1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVVuTXV0ZSgpCit7CisgICAgcmV0dXJuIFN0
cmluZzo6ZnJvbVVURjgoIlVuTXV0ZSIpOworfQorCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
T3BlbkZyYW1lSW5OZXdXaW5kb3coKQogewogICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJP
cGVuIEZyYW1lIGluIE5ldyBXaW5kb3ciKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL0NvbnRleHRNZW51SXRlbUd0ay5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Db250ZXh0
TWVudUl0ZW1HdGsuY3BwCmluZGV4IGUyYzViODQuLmJkMjVhNGEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL0NvbnRleHRNZW51SXRlbUd0ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvQ29udGV4dE1lbnVJdGVtR3RrLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiAg
Q29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiAgQ29weXJp
Z2h0IChDKSAyMDEwIElnYWxpYSBTLkwKICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTMzLDExICsz
NCwxMyBAQCBzdGF0aWMgY29uc3QgY2hhciogZ3RrU3RvY2tJREZyb21Db250ZXh0TWVudUFjdGlv
bihjb25zdCBDb250ZXh0TWVudUFjdGlvbiYgYWN0aQogICAgIHN3aXRjaCAoYWN0aW9uKSB7CiAg
ICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJkOgogICAgIGNhc2Ug
Q29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQ6CisgICAgY2FzZSBDb250ZXh0
TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQ6CiAgICAgY2FzZSBDb250ZXh0TWVu
dUl0ZW1UYWdDb3B5OgogICAgICAgICByZXR1cm4gR1RLX1NUT0NLX0NPUFk7CiAgICAgY2FzZSBD
b250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93OgogICAgIGNhc2UgQ29udGV4dE1l
bnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3c6CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1U
YWdPcGVuRnJhbWVJbk5ld1dpbmRvdzoKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5N
ZWRpYUluTmV3V2luZG93OgogICAgICAgICByZXR1cm4gR1RLX1NUT0NLX09QRU47CiAgICAgY2Fz
ZSBDb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2s6CiAgICAgY2FzZSBDb250ZXh0
TWVudUl0ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrOgpAQCAtOTksNiArMTAyLDEyIEBAIHN0YXRp
YyBjb25zdCBjaGFyKiBndGtTdG9ja0lERnJvbUNvbnRleHRNZW51QWN0aW9uKGNvbnN0IENvbnRl
eHRNZW51QWN0aW9uJiBhY3RpCiAgICAgICAgIHJldHVybiBHVEtfU1RPQ0tfVU5ERVJMSU5FOwog
ICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnU2hvd0NvbG9yczoKICAgICAgICAgcmV0dXJuIEdU
S19TVE9DS19TRUxFQ1RfQ09MT1I7CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVN
ZWRpYUNvbnRyb2xzOgorICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29w
OgorICAgICAgICAvLyBObyBpY29uIGZvciB0aGlzLgorICAgICAgICByZXR1cm4gTlVMTDsKKyAg
ICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuOgorICAgICAgICBy
ZXR1cm4gR1RLX1NUT0NLX0ZVTExTQ1JFRU47CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJu
IE5VTEw7CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvTG9jYWxpemVk
U3RyaW5nc0d0ay5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3Rr
LmNwcAppbmRleCA0MzJjOTJmLi40OTkxMjNiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9M
b2NhbGl6ZWRTdHJpbmdzR3RrLmNwcApAQCAtNCw2ICs0LDcgQEAKICAqIENvcHlyaWdodCAoQykg
MjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgogICogQ29weXJpZ2h0IChDKSAyMDA4IENo
cmlzdGlhbiBEeXdhbiA8Y2hyaXN0aWFuQGltZW5kaW8uY29tPgogICogQ29weXJpZ2h0IChDKSAy
MDA4IE51YW50aSBMdGQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTAogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMTAsNiArMTExLDUxIEBAIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpCiAgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbVVURjgoXygiQ29wX3kgSW1hZ2UiKSk7CiB9CiAKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdPcGVuTWVkaWFJbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgo
XygiT3BlbiBfTWVkaWEgaW4gTmV3IFdpbmRvdyIpKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbVVURjgoXygiQ29wX3kgTWVkaWEgTGluayBMb2NhdGlvbiIpKTsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKQoreworICAgIHJldHVybiBTdHJp
bmc6OmZyb21VVEY4KF8oIl9Ub2dnbGUgTWVkaWEgQ29udHJvbHMiKSk7Cit9CisKK1N0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKQoreworICAgIHJldHVybiBTdHJpbmc6
OmZyb21VVEY4KF8oIlRvZ2dsZSBNZWRpYSBfTG9vcCBQbGF5YmFjayIpKTsKK30KKworU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCkKK3sKKyAgICByZXR1cm4g
U3RyaW5nOjpmcm9tVVRGOChfKCJTd2l0Y2ggVmlkZW8gdG8gX0Z1bGxzY3JlZW4iKSk7Cit9CisK
K1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQoreworICAgIHJldHVybiBTdHJp
bmc6OmZyb21VVEY4KF8oIl9QbGF5IikpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
TWVkaWFQYXVzZSgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiX1BhdXNlIikp
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkKK3sKKyAgICByZXR1
cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJfTXV0ZSIpKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ01lZGlhVW5NdXRlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJV
bl9NdXRlIikpOworfQorCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdX
aW5kb3coKQogewogICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8oIk9wZW4gX0ZyYW1lIGlu
IE5ldyBXaW5kb3ciKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvY2Fs
aXplZFN0cmluZ3NIYWlrdS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0
cmluZ3NIYWlrdS5jcHAKaW5kZXggNTMyMTc5Mi4uMjhkODI1YiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9oYWlrdS9Mb2NhbGl6ZWRTdHJpbmdzSGFpa3UuY3BwCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vaGFpa3UvTG9jYWxpemVkU3RyaW5nc0hhaWt1LmNwcApAQCAtOTgsNiArOTgsNTEg
QEAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkKICAgICBy
ZXR1cm4gIkNvcHkgaW1hZ2UgdG8gY2xpcGJvYXJkIjsKIH0KIAorU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gIk9wZW4gTWVkaWEg
aW4gTmV3IFdpbmRvdyI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFM
aW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiAiQ29weSBNZWRpYSBMaW5rIExvY2F0aW9u
IjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKQor
eworICAgIHJldHVybiAiVG9nZ2xlIE1lZGlhIENvbnRyb2xzIjsKK30KKworU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCit7CisgICAgcmV0dXJuICJUb2dnbGUgTWVk
aWEgTG9vcCBQbGF5YmFjayI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZp
ZGVvRnVsbHNjcmVlbigpCit7CisgICAgcmV0dXJuICJTd2l0Y2ggVmlkZW8gdG8gRnVsbHNjcmVl
biI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQoreworICAgIHJl
dHVybiAiUGxheSI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkK
K3sKKyAgICByZXR1cm4gIlBhdXNlIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01l
ZGlhTXV0ZSgpCit7CisgICAgcmV0dXJuICJNdXRlIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ01lZGlhVW5NdXRlKCkKK3sKKyAgICByZXR1cm4gIlVuTXV0ZSI7Cit9CisKIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpCiB7CiAgICAgcmV0dXJu
ICJPcGVuIGZyYW1lIGluIG5ldyB3aW5kb3ciOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9xdC9Mb2NhbGl6YXRpb25zLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvTG9jYWxpemF0aW9u
cy5jcHAKaW5kZXggNDU0ODcyYS4uYjkyNTFlMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9xdC9Mb2NhbGl6YXRpb25zLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L0xvY2FsaXph
dGlvbnMuY3BwCkBAIC0xMDUsNiArMTA1LDUxIEBAIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdD
b3B5SW1hZ2VUb0NsaXBib2FyZCgpCiAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiQ29weSBJbWFnZSIsICJDb3B5IExpbmsgY29udGV4dCBtZW51IGl0
ZW0iKTsKIH0KIAorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93
KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJPcGVuIE1lZGlhIiwgIk9wZW4gTWVkaWEgaW4gTmV3IFdpbmRvdyIpOworfQorCitTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5IE1lZGlhIiwg
IkNvcHkgTWVkaWEgTGluayBMb2NhdGlvbiIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnVG9nZ2xlTWVkaWFDb250cm9scygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVG9nZ2xlIENvbnRyb2xzIiwgIlRvZ2dsZSBNZWRpYSBD
b250cm9scyIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29w
KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJUb2dnbGUgTG9vcCIsICJUb2dnbGUgTWVkaWEgTG9vcCBQbGF5YmFjayIpOworfQorCitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKQoreworICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkVudGVyIEZ1bGxzY3Jl
ZW4iLCAiU3dpdGNoIFZpZGVvIHRvIEZ1bGxzY3JlZW4iKTsKK30KKworU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ01lZGlhUGxheSgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUGxheSIsICJQbGF5Iik7Cit9CisKK1N0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQYXVzZSIsICJQYXVzZSIpOworfQorCitTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNdXRlIiwgIk11dGUiKTsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ01lZGlhVW5NdXRlKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJVbk11dGUiLCAiVW5NdXRlIik7Cit9CisKIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpCiB7CiAgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBGcmFtZSIs
ICJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNwcAppbmRleCA0MTEyZjY0Li5hNWFmY2I3
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHAK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS93eC9Mb2NhbGl6ZWRTdHJpbmdzV3guY3BwCkBAIC05Nyw2
ICs5Nyw1MSBAQCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQo
KQogICAgIHJldHVybiBTdHJpbmcoIkNvcHkgSW1hZ2UgdG8gQ2xpcGJvYXJkIik7IAogfQogCitT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3coKQoreworICAgIHJl
dHVybiBTdHJpbmcoIk9wZW4gTWVkaWEgaW4gTmV3IFdpbmRvdyIpOworfQorCitTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4g
U3RyaW5nKCJDb3B5IE1lZGlhIExpbmsgTG9jYXRpb24iKTsKK30KKworU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKQoreworICAgIHJldHVybiBTdHJpbmcoIlRv
Z2dsZSBNZWRpYSBDb250cm9scyIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9n
Z2xlTWVkaWFMb29wKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJUb2dnbGUgTWVkaWEgTG9vcCBQ
bGF5YmFjayIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxz
Y3JlZW4oKQoreworICAgIHJldHVybiBTdHJpbmcoIlN3aXRjaCBWaWRlbyB0byBGdWxsc2NyZWVu
Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQoreworICAgIHJl
dHVybiBTdHJpbmcoIlBsYXkiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlh
UGF1c2UoKQoreworICAgIHJldHVybiBTdHJpbmcoIlBhdXNlIik7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKQoreworICAgIHJldHVybiBTdHJpbmcoIk11dGUiKTsK
K30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhVW5NdXRlKCkKK3sKKyAgICByZXR1
cm4gU3RyaW5nKCJVbk11dGUiKTsKK30KKwogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5G
cmFtZUluTmV3V2luZG93KCkgCiB7IAogICAgIHJldHVybiBTdHJpbmcoIk9wZW4gRnJhbWUgaW4g
TmV3IFdpbmRvdyIpOyAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1
bHQuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKaW5kZXggNDk2YzRi
YS4uNGFlOTk5MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5j
cHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKQEAgLTI0LDYgKzI0
LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1
ZGUgIkhUTUxBbmNob3JFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFZpZGVvRWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgpAQCAtMjkyLDIyICsyOTMsMTI1IEBA
IEtVUkwgSGl0VGVzdFJlc3VsdDo6YWJzb2x1dGVJbWFnZVVSTCgpIGNvbnN0CiBLVVJMIEhpdFRl
c3RSZXN1bHQ6OmFic29sdXRlTWVkaWFVUkwoKSBjb25zdAogewogI2lmIEVOQUJMRShWSURFTykK
KyAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbHQgPSBtZWRpYUVsZW1lbnQoKSkKKyAg
ICAgICAgcmV0dXJuIG1faW5uZXJOb25TaGFyZWROb2RlLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVS
TChkZXByZWNhdGVkUGFyc2VVUkwobWVkaWFFbHQtPmN1cnJlbnRTcmMoKSkpOworICAgIHJldHVy
biBLVVJMKCk7CisjZWxzZQorICAgIHJldHVybiBLVVJMKCk7CisjZW5kaWYKK30KKworYm9vbCBI
aXRUZXN0UmVzdWx0OjptZWRpYVN1cHBvcnRzRnVsbHNjcmVlbigpIGNvbnN0Cit7CisjaWYgRU5B
QkxFKFZJREVPKQorICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWx0KG1lZGlhRWxlbWVudCgp
KTsKKyAgICByZXR1cm4gKG1lZGlhRWx0ICYmIG1lZGlhRWx0LT5oYXNUYWdOYW1lKEhUTUxOYW1l
czo6dmlkZW9UYWcpICYmIG1lZGlhRWx0LT5zdXBwb3J0c0Z1bGxzY3JlZW4oKSk7CisjZWxzZQor
ICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCisjaWYgRU5BQkxFKFZJREVPKQorSFRNTE1l
ZGlhRWxlbWVudCogSGl0VGVzdFJlc3VsdDo6bWVkaWFFbGVtZW50KCkgY29uc3QKK3sKICAgICBp
ZiAoIShtX2lubmVyTm9uU2hhcmVkTm9kZSAmJiBtX2lubmVyTm9uU2hhcmVkTm9kZS0+ZG9jdW1l
bnQoKSkpCi0gICAgICAgIHJldHVybiBLVVJMKCk7CisgICAgICAgIHJldHVybiAwOwogCiAgICAg
aWYgKCEobV9pbm5lck5vblNoYXJlZE5vZGUtPnJlbmRlcmVyKCkgJiYgbV9pbm5lck5vblNoYXJl
ZE5vZGUtPnJlbmRlcmVyKCktPmlzTWVkaWEoKSkpCi0gICAgICAgIHJldHVybiBLVVJMKCk7Cisg
ICAgICAgIHJldHVybiAwOwogCi0gICAgQXRvbWljU3RyaW5nIHVybFN0cmluZzsKLSAgICBpZiAo
bV9pbm5lck5vblNoYXJlZE5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykgfHwg
bV9pbm5lck5vblNoYXJlZE5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjphdWRpb1RhZykpIHsK
LSAgICAgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRN
TE1lZGlhRWxlbWVudCo+KG1faW5uZXJOb25TaGFyZWROb2RlLmdldCgpKTsKLSAgICAgICAgdXJs
U3RyaW5nID0gbWVkaWFFbGVtZW50LT5jdXJyZW50U3JjKCk7Ci0gICAgfSBlbHNlCi0gICAgICAg
IHJldHVybiBLVVJMKCk7CisgICAgaWYgKG1faW5uZXJOb25TaGFyZWROb2RlLT5oYXNUYWdOYW1l
KEhUTUxOYW1lczo6dmlkZW9UYWcpIHx8IG1faW5uZXJOb25TaGFyZWROb2RlLT5oYXNUYWdOYW1l
KEhUTUxOYW1lczo6YXVkaW9UYWcpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTE1l
ZGlhRWxlbWVudCo+KG1faW5uZXJOb25TaGFyZWROb2RlLmdldCgpKTsKKyAgICByZXR1cm4gMDsK
K30KKyNlbmRpZgogCi0gICAgcmV0dXJuIG1faW5uZXJOb25TaGFyZWROb2RlLT5kb2N1bWVudCgp
LT5jb21wbGV0ZVVSTChkZXByZWNhdGVkUGFyc2VVUkwodXJsU3RyaW5nKSk7Ci0jZWxzZQotICAg
IHJldHVybiBLVVJMKCk7Cit2b2lkIEhpdFRlc3RSZXN1bHQ6OnRvZ2dsZU1lZGlhQ29udHJvbHNE
aXNwbGF5KCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgaWYgKEhUTUxNZWRpYUVs
ZW1lbnQqIG1lZGlhRWx0ID0gbWVkaWFFbGVtZW50KCkpCisgICAgICAgIG1lZGlhRWx0LT5zZXRD
b250cm9scyghbWVkaWFFbHQtPmNvbnRyb2xzKCkpOworI2VuZGlmCit9CisKK3ZvaWQgSGl0VGVz
dFJlc3VsdDo6dG9nZ2xlTWVkaWFMb29wUGxheWJhY2soKSBjb25zdAoreworI2lmIEVOQUJMRShW
SURFTykKKyAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbHQgPSBtZWRpYUVsZW1lbnQo
KSkKKyAgICAgICAgbWVkaWFFbHQtPnNldExvb3AoIW1lZGlhRWx0LT5sb29wKCkpOworI2VuZGlm
Cit9CisKK3ZvaWQgSGl0VGVzdFJlc3VsdDo6ZW50ZXJGdWxsc2NyZWVuRm9yVmlkZW8oKSBjb25z
dAoreworI2lmIEVOQUJMRShWSURFTykKKyAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsdCht
ZWRpYUVsZW1lbnQoKSk7CisgICAgaWYgKG1lZGlhRWx0ICYmIG1lZGlhRWx0LT5oYXNUYWdOYW1l
KEhUTUxOYW1lczo6dmlkZW9UYWcpKSB7CisgICAgICAgIEhUTUxWaWRlb0VsZW1lbnQqIHZpZGVv
RWx0ID0gc3RhdGljX2Nhc3Q8SFRNTFZpZGVvRWxlbWVudCo+KG1lZGlhRWx0KTsKKyAgICAgICAg
aWYgKCF2aWRlb0VsdC0+aXNGdWxsc2NyZWVuKCkgJiYgbWVkaWFFbHQtPnN1cHBvcnRzRnVsbHNj
cmVlbigpKQorICAgICAgICAgICAgdmlkZW9FbHQtPmVudGVyRnVsbHNjcmVlbigpOworICAgIH0K
KyNlbmRpZgorfQorCitib29sIEhpdFRlc3RSZXN1bHQ6Om1lZGlhQ29udHJvbHNFbmFibGVkKCkg
Y29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQqIG1l
ZGlhRWx0ID0gbWVkaWFFbGVtZW50KCkpCisgICAgICAgIHJldHVybiBtZWRpYUVsdC0+Y29udHJv
bHMoKTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBIaXRUZXN0UmVzdWx0
OjptZWRpYUxvb3BFbmFibGVkKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgaWYg
KEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWx0ID0gbWVkaWFFbGVtZW50KCkpCisgICAgICAgIHJl
dHVybiBtZWRpYUVsdC0+bG9vcCgpOworI2VuZGlmCisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIEhpdFRlc3RSZXN1bHQ6Om1lZGlhUGxheWluZygpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFZJ
REVPKQorICAgIGlmIChIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsdCA9IG1lZGlhRWxlbWVudCgp
KQorICAgICAgICByZXR1cm4gIW1lZGlhRWx0LT5wYXVzZWQoKTsKKyNlbmRpZgorICAgIHJldHVy
biBmYWxzZTsKK30KKwordm9pZCBIaXRUZXN0UmVzdWx0Ojp0b2dnbGVNZWRpYVBsYXlTdGF0ZSgp
IGNvbnN0Cit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIGlmIChIVE1MTWVkaWFFbGVtZW50KiBt
ZWRpYUVsdCA9IG1lZGlhRWxlbWVudCgpKQorICAgICAgICBtZWRpYUVsdC0+dG9nZ2xlUGxheVN0
YXRlKCk7CisjZW5kaWYKK30KKworYm9vbCBIaXRUZXN0UmVzdWx0OjptZWRpYUhhc0F1ZGlvKCkg
Y29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQqIG1l
ZGlhRWx0ID0gbWVkaWFFbGVtZW50KCkpCisgICAgICAgIHJldHVybiBtZWRpYUVsdC0+aGFzQXVk
aW8oKTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBIaXRUZXN0UmVzdWx0
OjptZWRpYU11dGVkKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgaWYgKEhUTUxN
ZWRpYUVsZW1lbnQqIG1lZGlhRWx0ID0gbWVkaWFFbGVtZW50KCkpCisgICAgICAgIHJldHVybiBt
ZWRpYUVsdC0+bXV0ZWQoKTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBI
aXRUZXN0UmVzdWx0Ojp0b2dnbGVNZWRpYU11dGVTdGF0ZSgpIGNvbnN0Cit7CisjaWYgRU5BQkxF
KFZJREVPKQorICAgIGlmIChIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsdCA9IG1lZGlhRWxlbWVu
dCgpKQorICAgICAgICBtZWRpYUVsdC0+c2V0TXV0ZWQoIW1lZGlhRWx0LT5tdXRlZCgpKTsKICNl
bmRpZgogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0Lmgg
Yi9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmgKaW5kZXggM2E0MjcxOS4uZTYzNTAz
MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5oCisrKyBiL1dl
YkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaApAQCAtMzIsNiArMzIsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGcmFtZTsKKyNpZiBFTkFCTEUo
VklERU8pCitjbGFzcyBIVE1MTWVkaWFFbGVtZW50OworI2VuZGlmCiBjbGFzcyBJbWFnZTsKIGNs
YXNzIEludFJlY3Q7CiBjbGFzcyBLVVJMOwpAQCAtODAsNiArODMsMTcgQEAgcHVibGljOgogICAg
IFN0cmluZyB0ZXh0Q29udGVudCgpIGNvbnN0OwogICAgIGJvb2wgaXNMaXZlTGluaygpIGNvbnN0
OwogICAgIGJvb2wgaXNDb250ZW50RWRpdGFibGUoKSBjb25zdDsKKyAgICB2b2lkIHRvZ2dsZU1l
ZGlhQ29udHJvbHNEaXNwbGF5KCkgY29uc3Q7CisgICAgdm9pZCB0b2dnbGVNZWRpYUxvb3BQbGF5
YmFjaygpIGNvbnN0OworICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuRm9yVmlkZW8oKSBjb25zdDsK
KyAgICBib29sIG1lZGlhQ29udHJvbHNFbmFibGVkKCkgY29uc3Q7CisgICAgYm9vbCBtZWRpYUxv
b3BFbmFibGVkKCkgY29uc3Q7CisgICAgYm9vbCBtZWRpYVBsYXlpbmcoKSBjb25zdDsKKyAgICBi
b29sIG1lZGlhU3VwcG9ydHNGdWxsc2NyZWVuKCkgY29uc3Q7CisgICAgdm9pZCB0b2dnbGVNZWRp
YVBsYXlTdGF0ZSgpIGNvbnN0OworICAgIGJvb2wgbWVkaWFIYXNBdWRpbygpIGNvbnN0OworICAg
IGJvb2wgbWVkaWFNdXRlZCgpIGNvbnN0OworICAgIHZvaWQgdG9nZ2xlTWVkaWFNdXRlU3RhdGUo
KSBjb25zdDsKIAogICAgIC8vIFJlY3QtYmFzZWQgaGl0IHRlc3QgcmVsYXRlZCBtZXRob2RzLgog
ICAgIGJvb2wgaXNSZWN0QmFzZWRUZXN0KCkgY29uc3QgeyByZXR1cm4gbV9pc1JlY3RCYXNlZDsg
fQpAQCAtOTYsNiArMTEwLDEwIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKIAorI2lmIEVOQUJMRShW
SURFTykKKyAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQoKSBjb25zdDsKKyNlbmRp
ZgorCiAgICAgUmVmUHRyPE5vZGU+IG1faW5uZXJOb2RlOwogICAgIFJlZlB0cjxOb2RlPiBtX2lu
bmVyTm9uU2hhcmVkTm9kZTsKICAgICBJbnRQb2ludCBtX3BvaW50OwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
NWY3MzNkOS4uMjhkOWFjNyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDkt
MTcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIGVuaGFuY2VkIGNvbnRl
eHQgbWVudSBmb3IgbWVkaWEgZWxlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ1MDIxCisKKyAgICAgICAgTmV3IGxvY2FsaXplZCBzdHJpbmdz
IGZvciB0aGUgbWVkaWEgZWxlbWVudCBjb250ZXh0LW1lbnUuCisKKyAgICAgICAgKiBzcmMvTG9j
YWxpemVkU3RyaW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdP
cGVuTWVkaWFJbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1U
YWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ01lZGlhUGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVk
aWFNdXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhVW5NdXRl
KToKKwogMjAxMC0wOS0xNiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjY3NjkzLgpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2NhbGl6ZWRTdHJpbmdzLmNwcCBiL1dlYktpdC9jaHJv
bWl1bS9zcmMvTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggNzRmZjY5OS4uYzkzODk2OSAxMDA2
NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAorKysgYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL0xvY2FsaXplZFN0cmluZ3MuY3BwCkBAIC0yNjUsNiArMjY1LDE1
IEBAIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgpIHsgcmV0dXJuIFN0
cmluZygpOyB9CiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwoYm9v
bCBzaG93KSB7IHJldHVybiBTdHJpbmcoKTsgfQogU3RyaW5nIG1lZGlhRWxlbWVudExpdmVCcm9h
ZGNhc3RTdGF0ZVRleHQoKSB7IHJldHVybiBTdHJpbmcoKTsgfQogU3RyaW5nIG1lZGlhRWxlbWVu
dExvYWRpbmdTdGF0ZVRleHQoKSB7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KCkgeyByZXR1cm4gU3RyaW5nKCk7IH0KK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQoKSB7IHJldHVy
biBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJv
bHMoKSB7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2ds
ZU1lZGlhTG9vcCgpIHsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKSB7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpIHsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpIHsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkgeyByZXR1cm4gU3RyaW5nKCk7IH0KK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVVuTXV0ZSgpIHsgcmV0dXJuIFN0cmluZygpOyB9
CiAKIFN0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmlu
ZyYgLypuYW1lKi8pCiB7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCmluZGV4IDA0ZDcxZWMuLjMwOTVkYmMgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTAtMDktMTcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIGVu
aGFuY2VkIGNvbnRleHQgbWVudSBmb3IgbWVkaWEgZWxlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MDIxCisKKyAgICAgICAgTmV3IGxvY2Fs
aXplZCBzdHJpbmdzIGZvciB0aGUgbWVkaWEgZWxlbWVudCBjb250ZXh0LW1lbnUuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW06CisgICAgICAgIChXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KToK
KyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnQ29weU1l
ZGlhTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29u
dGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAgICAgIChXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCk6CisgICAgICAg
IChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxs
c2NyZWVuKToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVt
VGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1l
bnVJdGVtVGFnTWVkaWFQYXVzZSk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNv
bnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhVW5NdXRlKToKKwogMjAxMC0wOS0xNyAgSmlhIFB1
ICA8anB1QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpk
aWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaCBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgK
aW5kZXggNTNmMzlmOC4uNjgwZjlhYiAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC0xMTMsNiArMTEzLDE1IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplKCk7
CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGFuZ2VCYWNrKGNv
bnN0IFdURjo6U3RyaW5nJiByZXBsYWNlZFN0cmluZyk7CiAgICAgdmlydHVhbCBXVEY6OlN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgpOworICAgIHZpcnR1YWwgV1RGOjpT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3coKTsKKyAgICB2aXJ0
dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2Fy
ZCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVk
aWFDb250cm9scygpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
VG9nZ2xlTWVkaWFMb29wKCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ01lZGlhVW5NdXRlKCk7CiAjZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVO
VVMpCiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBzZWFyY2hNZW51Tm9SZWNlbnRTZWFyY2hlc1Rl
eHQoKTsKICAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHNlYXJjaE1lbnVSZWNlbnRTZWFyY2hlc1Rl
eHQoKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLm1tIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMubW0KaW5kZXggMjkwMGNjZi4uY2JkYzc3NiAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KKysrIGIvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KQEAgLTE1Niw2ICsxNTYsNTEg
QEAgU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUlt
YWdlVG9DbGlwYm9hcmQoKQogICAgIHJldHVybiBVSV9TVFJJTkcoIkNvcHkgSW1hZ2UiLCAiQ29w
eSBJbWFnZSBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdygpCit7CisgICAg
cmV0dXJuIFVJX1NUUklORygiT3BlbiBNZWRpYSBpbiBOZXcgV2luZG93IiwgIk9wZW4gTWVkaWEg
aW4gTmV3IFdpbmRvdyIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250
ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBV
SV9TVFJJTkcoIkNvcHkgTWVkaWEgTGluayIsICJDb3B5IE1lZGlhIExpbmsgTG9jYXRpb24iKTsK
K30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnVG9n
Z2xlTWVkaWFDb250cm9scygpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiVG9nZ2xlIENvbnRy
b2xzIiwgIlRvZ2dsZSBNZWRpYSBDb250cm9scyIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKQoreworICAgIHJl
dHVybiBVSV9TVFJJTkcoIlRvZ2dsZSBMb29wIiwgIlRvZ2dsZSBNZWRpYSBMb29wIFBsYXliYWNr
Iik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRh
Z0VudGVyVmlkZW9GdWxsc2NyZWVuKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJFbnRlciBG
dWxsc2NyZWVuIiwgIlN3aXRjaCBWaWRlbyB0byBGdWxsc2NyZWVuIik7Cit9CisKK1N0cmluZyBX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpCit7Cisg
ICAgcmV0dXJuIFVJX1NUUklORygiUGxheSIsICJQbGF5Iik7Cit9CisKK1N0cmluZyBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKQoreworICAgIHJl
dHVybiBVSV9TVFJJTkcoIlBhdXNlIiwgIlBhdXNlIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpCit7CisgICAgcmV0dXJu
IFVJX1NUUklORygiTXV0ZSIsICJNdXRlIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhVW5NdXRlKCkKK3sKKyAgICByZXR1cm4gVUlf
U1RSSU5HKCJVbk11dGUiLCAiVW5NdXRlIik7Cit9CisKIFN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCkKIHsKICAgICBy
ZXR1cm4gVUlfU1RSSU5HKCJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBGcmFtZSBp
biBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7CmRpZmYgLS1naXQgYS9XZWJLaXQvd2lu
L0NoYW5nZUxvZyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDQxYjZmYTkuLjQwNjFlNWMg
MTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC93aW4vQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDktMTcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9y
bWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFtHVEtdIGVuaGFuY2VkIGNvbnRleHQgbWVudSBmb3IgbWVkaWEgZWxlbWVudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MDIxCisK
KyAgICAgICAgTmV3IGxvY2FsaXplZCBzdHJpbmdzIGZvciB0aGUgbWVkaWEgZWxlbWVudCBjb250
ZXh0LW1lbnUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1U
YWdPcGVuTWVkaWFJbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6
OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCk6CisgICAgICAgIChX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJv
bHMpOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdU
b2dnbGVNZWRpYUxvb3ApOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0
TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSk6CisgICAgICAgIChXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAgICAgICAo
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUpOgorICAg
ICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVVuTXV0
ZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmg6CisK
IDIwMTAtMDktMTYgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggMDBhMmVhYi4uOWZhZGU4NSAxMDA2
NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
Y3BwCisrKyBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcApAQCAtMTYzLDYgKzE2Myw1MSBAQCBTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpj
b250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpCiAgICAgcmV0dXJuIFVJX1NU
UklORygiQ29weSBJbWFnZSIsICJDb3B5IEltYWdlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAK
K1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRp
YUluTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJPcGVuIE1lZGlhIGluIE5l
dyBXaW5kb3ciLCAiT3BlbiBNZWRpYSBpbiBOZXcgV2luZG93Iik7Cit9CisKK1N0cmluZyBXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBi
b2FyZCgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiQ29weSBNZWRpYSBMaW5rIiwgIkNvcHkg
TWVkaWEgTGluayBMb2NhdGlvbiIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVz
Ojpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKK3sKKyAgICByZXR1cm4g
VUlfU1RSSU5HKCJUb2dnbGUgQ29udHJvbHMiLCAiVG9nZ2xlIE1lZGlhIENvbnRyb2xzIik7Cit9
CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2ds
ZU1lZGlhTG9vcCgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiVG9nZ2xlIExvb3AiLCAiVG9n
Z2xlIE1lZGlhIExvb3AgUGxheWJhY2siKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKQoreworICAgIHJl
dHVybiBVSV9TVFJJTkcoIkVudGVyIEZ1bGxzY3JlZW4iLCAiU3dpdGNoIFZpZGVvIHRvIEZ1bGxz
Y3JlZW4iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJ
dGVtVGFnTWVkaWFQbGF5KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJQbGF5IiwgIlBsYXki
KTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFn
TWVkaWFQYXVzZSgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiUGF1c2UiLCAiUGF1c2UiKTsK
K30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVk
aWFNdXRlKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJNdXRlIiwgIk11dGUiKTsKK30KKwor
U3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11
dGUoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIlVuTXV0ZSIsICJVbk11dGUiKTsKK30KKwog
U3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1l
SW5OZXdXaW5kb3coKQogewogICAgIHJldHVybiBVSV9TVFJJTkcoIk9wZW4gRnJhbWUgaW4gTmV3
IFdpbmRvdyIsICJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsK
ZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVn
aWVzLmggYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5o
CmluZGV4IGMzY2ZiYjQuLjAxNWNmMGQgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysrIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaApAQCAtOTIsNiArOTIsMTUgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCk7
CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdCgp
OwogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1l
bnQoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRp
YUluTmV3V2luZG93KCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKTsKKyAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpOworICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKTsKKyAg
ICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpOworICAg
IHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpOworICAg
IHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCk7CisgICAg
dmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVVuTXV0ZSgpOwogI2Vu
ZGlmIC8vIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgc2Vh
cmNoTWVudU5vUmVjZW50U2VhcmNoZXNUZXh0KCk7CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBz
ZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KCk7CmRpZmYgLS1naXQgYS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGJjMDk0MTkuLjk1YThkNzIgMTAwNjQ0Ci0t
LSBhL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjQgQEAKKzIwMTAtMDktMTcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtd
IGVuaGFuY2VkIGNvbnRleHQgbWVudSBmb3IgbWVkaWEgZWxlbWVudHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MDIxCisKKyAgICAgICAgTmV3IGxv
Y2FsaXplZCBzdHJpbmdzIGZvciB0aGUgbWVkaWEgZWxlbWVudCBjb250ZXh0LW1lbnUuCisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJ
dGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVt
VGFnVG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVv
RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29u
dGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRh
Z01lZGlhVW5NdXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5oOgorCiAyMDEwLTA5LTE2ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpkaWZmIC0tZ2l0
IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5jcHAgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcAppbmRleCBhMTk4NmFmLi4zNzAxN2Q5IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cApAQCAtMTgwLDYgKzE4MCw1MSBAQCBTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250
ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpCiAgICAgcmV0dXJuIFVJX1NUUklO
RygiQ29weSBJbWFnZSIsICJDb3B5IEltYWdlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKK1N0
cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUlu
TmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJPcGVuIE1lZGlhIGluIE5ldyBX
aW5kb3ciLCAiT3BlbiBNZWRpYSBpbiBOZXcgV2luZG93Iik7Cit9CisKK1N0cmluZyBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2Fy
ZCgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiQ29weSBNZWRpYSBMaW5rIiwgIkNvcHkgTWVk
aWEgTGluayBMb2NhdGlvbiIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpj
b250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKK3sKKyAgICByZXR1cm4gVUlf
U1RSSU5HKCJUb2dnbGUgQ29udHJvbHMiLCAiVG9nZ2xlIE1lZGlhIENvbnRyb2xzIik7Cit9CisK
K1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1l
ZGlhTG9vcCgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiVG9nZ2xlIExvb3AiLCAiVG9nZ2xl
IE1lZGlhIExvb3AgUGxheWJhY2siKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKQoreworICAgIHJldHVy
biBVSV9TVFJJTkcoIkVudGVyIEZ1bGxzY3JlZW4iLCAiU3dpdGNoIFZpZGVvIHRvIEZ1bGxzY3Jl
ZW4iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVt
VGFnTWVkaWFQbGF5KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJQbGF5IiwgIlBsYXkiKTsK
K30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVk
aWFQYXVzZSgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiUGF1c2UiLCAiUGF1c2UiKTsKK30K
KworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFN
dXRlKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJNdXRlIiwgIk11dGUiKTsKK30KKworU3Ry
aW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11dGUo
KQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIlVuTXV0ZSIsICJVbk11dGUiKTsKK30KKwogU3Ry
aW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5O
ZXdXaW5kb3coKQogewogICAgIHJldHVybiBVSV9TVFJJTkcoIk9wZW4gRnJhbWUgaW4gTmV3IFdp
bmRvdyIsICJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKZGlm
ZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuaCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuaAppbmRleCA2NDJiOWZjLi45OThiMjczIDEwMDY0NAotLS0gYS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysrIGIv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5o
CkBAIC0xMjcsNiArMTI3LDE1IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdDaGFuZ2VCYWNrKGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNlZFN0
cmluZyk7CiAjZW5kaWYKICAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0luc3BlY3RFbGVtZW50KCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdygpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKCk7CisgICAgdmlydHVhbCBX
VEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCk7CisgICAg
dmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKTsK
KyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxs
c2NyZWVuKCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRp
YVBsYXkoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlh
UGF1c2UoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlh
TXV0ZSgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFV
bk11dGUoKTsKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICB2aXJ0dWFsIFdU
Rjo6U3RyaW5nIHNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpOwogICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgc2VhcmNoTWVudVJlY2VudFNlYXJjaGVzVGV4dCgpOwpkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDU1MDI3
ZDIuLmU1YjhhMzEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJL
aXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wOS0xNSAgUGhpbGlwcGUg
Tm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gZW5oYW5jZWQgY29udGV4dCBtZW51IGZvciBt
ZWRpYSBlbGVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDUwMjEKKworICAgICAgICBFdmVudFNlbmRlcjo6Y29udGV4dENsaWNrKCkgbm93IHJl
dHVybnMgYW4gYXJyYXkgb2YganMKKyAgICAgICAgb2JqZWN0cy4gRWFjaCBvYmplY3QgaGFzIGEg
dGl0bGUgcHJvcGVydHkgYW5kIGEgY2xpY2soKSBtZXRob2QuCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9ndGsvRXZlbnRTZW5kZXIuY3BwOgorICAgICAgICAoZ2V0TWVudUl0ZW1UaXRsZUNh
bGxiYWNrKToKKyAgICAgICAgKHNldE1lbnVJdGVtVGl0bGVDYWxsYmFjayk6CisgICAgICAgICht
ZW51SXRlbUNsaWNrQ2FsbGJhY2spOgorICAgICAgICAoZ2V0TWVudUl0ZW1DbGFzcyk6CisgICAg
ICAgIChjb250ZXh0Q2xpY2tDYWxsYmFjayk6CisKIDIwMTAtMDktMTYgIEtpbnVrbyBZYXN1ZGEg
IDxraW51a29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9qYW4gVmFmYWku
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRXZlbnRTZW5kZXIu
Y3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0V2ZW50U2VuZGVyLmNwcAppbmRl
eCAwZTJlNDY5Li5mZTdlOTNhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9ndGsvRXZlbnRTZW5kZXIuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0
ay9FdmVudFNlbmRlci5jcHAKQEAgLTE0Nyw2ICsxNDcsNTggQEAgYm9vbCBwcmVwYXJlTW91c2VC
dXR0b25FdmVudChHZGtFdmVudCogZXZlbnQsIGludCBldmVudFNlbmRlckJ1dHRvbk51bWJlciwg
Z3VpbnQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIEpTVmFsdWVSZWYgZ2V0TWVudUl0
ZW1UaXRsZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBvYmplY3Qs
IEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAg
IEd0a1dpZGdldCogd2lkZ2V0ID0gR1RLX1dJREdFVChKU09iamVjdEdldFByaXZhdGUob2JqZWN0
KSk7CisgICAgQ1N0cmluZyBsYWJlbDsKKyAgICBpZiAoR1RLX0lTX1NFUEFSQVRPUl9NRU5VX0lU
RU0od2lkZ2V0KSkKKyAgICAgICAgbGFiZWwgPSAiPHNlcGFyYXRvcj4iOworICAgIGVsc2UKKyAg
ICAgICAgbGFiZWwgPSBndGtfbWVudV9pdGVtX2dldF9sYWJlbChHVEtfTUVOVV9JVEVNKHdpZGdl
dCkpOworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIEpTU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKGxhYmVsLmRhdGEoKSkpOworfQorCitzdGF0aWMgYm9vbCBzZXRN
ZW51SXRlbVRpdGxlQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIG9i
amVjdCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1ZhbHVl
UmVmKiBleGNlcHRpb24pCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBKU1ZhbHVl
UmVmIG1lbnVJdGVtQ2xpY2tDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RS
ZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50
LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7
CisgICAgR3RrTWVudUl0ZW0qIGl0ZW0gPSBHVEtfTUVOVV9JVEVNKEpTT2JqZWN0R2V0UHJpdmF0
ZSh0aGlzT2JqZWN0KSk7CisgICAgZ3RrX21lbnVfaXRlbV9hY3RpdmF0ZShpdGVtKTsKKyAgICBy
ZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Cit9CisKK3N0YXRpYyBKU1N0YXRp
Y0Z1bmN0aW9uIHN0YXRpY01lbnVJdGVtRnVuY3Rpb25zW10gPSB7CisgICAgeyAiY2xpY2siLCBt
ZW51SXRlbUNsaWNrQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICB7IDAsIDAsIDAgfQorfTsKKworc3Rh
dGljIEpTU3RhdGljVmFsdWUgc3RhdGljTWVudUl0ZW1WYWx1ZXNbXSA9IHsKKyAgICB7ICJ0aXRs
ZSIsIGdldE1lbnVJdGVtVGl0bGVDYWxsYmFjaywgc2V0TWVudUl0ZW1UaXRsZUNhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZU5vbmUgfSwKKyAgICB7IDAsIDAsIDAsIDAgfQorfTsKKworc3Rh
dGljIEpTQ2xhc3NSZWYgZ2V0TWVudUl0ZW1DbGFzcygpCit7CisgICAgc3RhdGljIEpTQ2xhc3NS
ZWYgbWVudUl0ZW1DbGFzcyA9IDA7CisKKyAgICBpZiAoIW1lbnVJdGVtQ2xhc3MpIHsKKyAgICAg
ICAgSlNDbGFzc0RlZmluaXRpb24gY2xhc3NEZWZpbml0aW9uID0geworICAgICAgICAgICAgICAg
IDAsIDAsIDAsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwg
MCwgMCwgMCwgMH07CisgICAgICAgIGNsYXNzRGVmaW5pdGlvbi5zdGF0aWNGdW5jdGlvbnMgPSBz
dGF0aWNNZW51SXRlbUZ1bmN0aW9uczsKKyAgICAgICAgY2xhc3NEZWZpbml0aW9uLnN0YXRpY1Zh
bHVlcyA9IHN0YXRpY01lbnVJdGVtVmFsdWVzOworCisgICAgICAgIG1lbnVJdGVtQ2xhc3MgPSBK
U0NsYXNzQ3JlYXRlKCZjbGFzc0RlZmluaXRpb24pOworICAgIH0KKworICAgIHJldHVybiBtZW51
SXRlbUNsYXNzOworfQorCisKIHN0YXRpYyBKU1ZhbHVlUmVmIGNvbnRleHRDbGlja0NhbGxiYWNr
KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYg
dGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1l
bnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICBHZGtFdmVudCogcHJlc3NFdmVu
dCA9IGdka19ldmVudF9uZXcoR0RLX0JVVFRPTl9QUkVTUyk7CkBAIC0xNjUsMTMgKzIxNyw3IEBA
IHN0YXRpYyBKU1ZhbHVlUmVmIGNvbnRleHRDbGlja0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvCiAgICAgICAgIEpTVmFsdWVSZWYgYXJyYXlWYWx1ZXNb
Z19saXN0X2xlbmd0aChpdGVtcyldOwogICAgICAgICBpbnQgaW5kZXggPSAwOwogICAgICAgICBm
b3IgKEdMaXN0KiBpdGVtID0gZ19saXN0X2ZpcnN0KGl0ZW1zKTsgaXRlbTsgaXRlbSA9IGdfbGlz
dF9uZXh0KGl0ZW0pKSB7Ci0gICAgICAgICAgICBDU3RyaW5nIGxhYmVsOwotICAgICAgICAgICAg
aWYgKEdUS19JU19TRVBBUkFUT1JfTUVOVV9JVEVNKGl0ZW0tPmRhdGEpKQotICAgICAgICAgICAg
ICAgIGxhYmVsID0gIjxzZXBhcmF0b3I+IjsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICBsYWJlbCA9IGd0a19tZW51X2l0ZW1fZ2V0X2xhYmVsKEdUS19NRU5VX0lURU0oaXRlbS0+
ZGF0YSkpOwotCi0gICAgICAgICAgICBhcnJheVZhbHVlc1tpbmRleF0gPSBKU1ZhbHVlTWFrZVN0
cmluZyhjb250ZXh0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhsYWJlbC5kYXRhKCkp
KTsKKyAgICAgICAgICAgIGFycmF5VmFsdWVzW2luZGV4XSA9IEpTT2JqZWN0TWFrZShjb250ZXh0
LCBnZXRNZW51SXRlbUNsYXNzKCksIGl0ZW0tPmRhdGEpOwogICAgICAgICAgICAgaW5kZXgrKzsK
ICAgICAgICAgfQogICAgICAgICBpZiAoaW5kZXgpCi0tIAoxLjcuMQ==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67893</attachid>
            <date>2010-09-17 02:17:34 -0700</date>
            <delta_ts>2010-09-17 10:44:58 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>updated-patch.patch</filename>
            <type>text/plain</type>
            <size>65077</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBmZTRlMmJkM2YyYmJlMzRlM2I0YTlhYjI0OWFjMGIzZDRhNmNhZjQ5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBwaGlsbkB3ZWJraXQub3JnIDxwaGlsbkB3ZWJraXQub3JnPgpE
YXRlOiBUaHUsIDE2IFNlcCAyMDEwIDE2OjIxOjQ0ICswMDAwClN1YmplY3Q6IFtQQVRDSF0gdXBk
YXRlZCBwYXRjaAoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTcgKysrCiAuLi4vbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMtZXhw
ZWN0ZWQudHh0ICAgICAgICB8ICAgMjYgKysrKwogTGF5b3V0VGVzdHMvbWVkaWEvY29udGV4dC1t
ZW51LWFjdGlvbnMuaHRtbCAgICAgICAgfCAgIDkxICsrKysrKysrKysrKysrCiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAgIDQgKwogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIExh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkICAgICAgICAgICAgICAgICAgIHwgICAgMiAr
CiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAx
MjQgKysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxl
ci5jcHAgICAgICAgICAgICAgfCAgIDIyICsrKysKIFdlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1l
bnUuY3BwICAgICAgICAgICAgICAgICAgIHwgICA2MiArKysrKysrKystCiBXZWJDb3JlL3BsYXRm
b3JtL0NvbnRleHRNZW51SXRlbS5oICAgICAgICAgICAgICAgICB8ICAgIDggKysKIFdlYkNvcmUv
cGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCAgICAgICAgICAgIHwgICAxMCArKwogV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcCAgICAgICAgICAgICAgfCAgIDQ2ICsr
KysrKysKIFdlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oICAgICAgICAgICAgICAg
IHwgICAxMCArKwogLi4uL3BsYXRmb3JtL2FuZHJvaWQvTG9jYWxpemVkU3RyaW5nc0FuZHJvaWQu
Y3BwICAgfCAgIDU0ICsrKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9icmV3L0xvY2FsaXplZFN0
cmluZ3NCcmV3LmNwcCAgICAgfCAgIDQ1ICsrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0vZWZsL0xv
Y2FsaXplZFN0cmluZ3NFZmwuY3BwICAgICAgIHwgICA0NSArKysrKysrCiBXZWJDb3JlL3BsYXRm
b3JtL2d0ay9Db250ZXh0TWVudUl0ZW1HdGsuY3BwICAgICAgICB8ICAgMTMgKystCiBXZWJDb3Jl
L3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcCAgICAgICB8ICAgNDYgKysrKysr
KwogV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Mb2NhbGl6ZWRTdHJpbmdzSGFpa3UuY3BwICAgfCAg
IDQ1ICsrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0vcXQvTG9jYWxpemF0aW9ucy5jcHAgICAgICAg
ICAgICAgIHwgICA0NSArKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmlu
Z3NXeC5jcHAgICAgICAgICB8ICAgNDUgKysrKysrKwogV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVz
dFJlc3VsdC5jcHAgICAgICAgICAgICAgICAgfCAgMTI2ICsrKysrKysrKysrKysrKysrKy0tCiBX
ZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmggICAgICAgICAgICAgICAgICB8ICAgMTgg
KysrCiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgMjAgKysrCiBXZWJLaXQvY2hyb21pdW0vc3JjL0xvY2FsaXplZFN0cmluZ3MuY3BwICAgICAg
ICAgICB8ICAgIDkgKysKIFdlYktpdC9tYWMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAyMSArKysrCiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5oICB8ICAgIDkgKysKIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLm1tIHwgICA0NSArKysrKysrCiBXZWJLaXQvd2luL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjEgKysrKwogLi4uL3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwICAgfCAgIDQ1ICsrKysrKysKIFdl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggIHwgICAgOSAr
KwogV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDIxICsrKysKIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwICAg
ICAgIHwgICA0NSArKysrKysrCiAuLi4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVn
aWVzLmggICAgICAgICB8ICAgIDkgKysKIFdlYktpdFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAxNyArKysKIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L2d0ay9FdmVudFNlbmRlci5jcHAgICAgIHwgICA2MCArKysrKysrKy0KIDM2IGZpbGVzIGNoYW5n
ZWQsIDEyMTAgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2
NDQgTGF5b3V0VGVzdHMvbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMtZXhwZWN0ZWQudHh0CiBj
cmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMu
aHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCAyZWY2YTJhLi41ZmNiOGY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTAtMDktMTUgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIGVuaGFuY2Vk
IGNvbnRleHQgbWVudSBmb3IgbWVkaWEgZWxlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MDIxCisKKyAgICAgICAgTmV3IHRlc3QgY2hlY2tp
bmcgdGhlIGFjdGlvbnMgdGhhdCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IGFjdGl2YXRpbmcKKyAgICAg
ICAgdGhlIGNvbnRleC1tZW51IG9mIHRoZSBtZWRpYSBlbGVtZW50LiBTa2lwcGVkIG9uIG1hYywg
cXQgYW5kIHdpbgorICAgICAgICBiZWNhdXNlIG9mIGxhY2sgb2YgRFJUIHN1cHBvcnQuCisKKyAg
ICAgICAgKiBtZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIG1lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6
CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6CisKIDIwMTAtMDktMTYgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSmFt
ZXMgUm9iaW5zb24uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9jb250ZXh0LW1lbnUt
YWN0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9jb250ZXh0LW1lbnUtYWN0
aW9ucy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjkx
OGYzZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL2NvbnRleHQtbWVudS1h
Y3Rpb25zLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI2IEBACitUZXN0IHRoZSB2YXJpb3VzIGFj
dGlvbnMgYXZhaWxhYmxlIGluIHRoZSBIVE1MNSBtZWRpYSBlbGVtZW50IGNvbnRleHQtbWVudS4K
KworUlVOKHZpZGVvLnNyYyA9ICdjb250ZW50L3Rlc3QubXA0JykKK0VWRU5UKHBsYXkpCitFWFBF
Q1RFRCAodmlkZW8ucGF1c2VkID09ICdmYWxzZScpIE9LCitUb2dnbGluZyBwbGF5IHN0YXRlCitF
WFBFQ1RFRCAodmlkZW8ucGF1c2VkID09ICd0cnVlJykgT0sKKworRVhQRUNURUQgKHZpZGVvLm11
dGVkID09ICdmYWxzZScpIE9LCitUb2dnbGluZyBtdXRlIHN0YXRlCitFWFBFQ1RFRCAodmlkZW8u
bXV0ZWQgPT0gJ3RydWUnKSBPSworCitFWFBFQ1RFRCAodmlkZW8uY29udHJvbHMgPT0gJ3RydWUn
KSBPSworVG9nZ2xpbmcgbWVkaWEgY29udHJvbHMKK0VYUEVDVEVEICh2aWRlby5jb250cm9scyA9
PSAnZmFsc2UnKSBPSworCitFWFBFQ1RFRCAodmlkZW8ubG9vcCA9PSAnZmFsc2UnKSBPSworVG9n
Z2xpbmcgbG9vcCBzdGF0ZQorRVhQRUNURUQgKHZpZGVvLmxvb3AgPT0gJ3RydWUnKSBPSworCitF
WFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ2ZhbHNlJykgT0sK
K1RvZ2dsaW5nIGZ1bGxzY3JlZW4gc3RhdGUKK0VYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5
aW5nRnVsbHNjcmVlbiA9PSAndHJ1ZScpIE9LCisKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwgYi9MYXlvdXRUZXN0
cy9tZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmFlODBmMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRp
YS9jb250ZXh0LW1lbnUtYWN0aW9ucy5odG1sCkBAIC0wLDAgKzEsOTEgQEAKKzxodG1sPgorPGhl
YWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYS1maWxlLmpzIj48L3NjcmlwdD4KKyAgICAg
ICAgPHNjcmlwdCBzcmM9dmlkZW8tdGVzdC5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4K
KworICAgICAgICAgICAgZnVuY3Rpb24gcGxheWluZygpCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAgICAgICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOworCisgICAgICAg
ICAgICAgICAgdmFyIHgsIHksIGl0ZW1zOworICAgICAgICAgICAgICAgIHggPSB2aWRlby5vZmZz
ZXRQYXJlbnQub2Zmc2V0TGVmdCArIHZpZGVvLm9mZnNldExlZnQgKyB2aWRlby5vZmZzZXRXaWR0
aCAvIDI7CisgICAgICAgICAgICAgICAgeSA9IHZpZGVvLm9mZnNldFBhcmVudC5vZmZzZXRUb3Ag
KyB2aWRlby5vZmZzZXRUb3AgKyB2aWRlby5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOworICAgICAgICAgICAgICAgIGl0ZW1z
ID0gZXZlbnRTZW5kZXIuY29udGV4dENsaWNrKCk7CisKKworICAgICAgICAgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICBpZiAoaXRlbXNbaV0udGl0bGUubWF0Y2goIkNvbnRyb2xzIikpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5jb250cm9scyIsIHRy
dWUsICc9PScpOworICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRvZ2dsaW5n
IG1lZGlhIGNvbnRyb2xzIik7CisgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zW2ldLmNsaWNr
KCk7CisgICAgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8uY29udHJvbHMi
LCBmYWxzZSwgJz09Jyk7CisgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7
CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbXNb
aV0udGl0bGUubWF0Y2goIlBhdXNlIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgdGVzdEV4
cGVjdGVkKCJ2aWRlby5wYXVzZWQiLCBmYWxzZSwgJz09Jyk7CisgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnNvbGVXcml0ZSgiVG9nZ2xpbmcgcGxheSBzdGF0ZSIpOworICAgICAgICAgICAgICAg
ICAgICAgICBpdGVtc1tpXS5jbGljaygpOworICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhw
ZWN0ZWQoInZpZGVvLnBhdXNlZCIsIHRydWUsICc9PScpOworICAgICAgICAgICAgICAgICAgICAg
ICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKGl0ZW1zW2ldLnRpdGxlLm1hdGNoKCJMb29wIikpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5sb29wIiwgZmFsc2UsICc9PScpOworICAg
ICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRvZ2dsaW5nIGxvb3Agc3RhdGUiKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNbaV0uY2xpY2soKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5sb29wIiwgdHJ1ZSwgJz09Jyk7CisgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbXNbaV0udGl0bGUubWF0Y2goIk11dGUiKSkg
eworICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLm11dGVkIiwgZmFs
c2UsICc9PScpOworICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRvZ2dsaW5n
IG11dGUgc3RhdGUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNbaV0uY2xpY2soKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5tdXRlZCIsIHRydWUs
ICc9PScpOworICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAg
ICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLnRpdGxl
Lm1hdGNoKCJGdWxsc2NyZWVuIikgJiYgdmlkZW8ud2Via2l0U3VwcG9ydHNGdWxsc2NyZWVuKSB7
CisgICAgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ud2Via2l0RGlzcGxh
eWluZ0Z1bGxzY3JlZW4iLCBmYWxzZSwgJz09Jyk7CisgICAgICAgICAgICAgICAgICAgICAgIGNv
bnNvbGVXcml0ZSgiVG9nZ2xpbmcgZnVsbHNjcmVlbiBzdGF0ZSIpOworICAgICAgICAgICAgICAg
ICAgICAgICBpdGVtc1tpXS5jbGljaygpOworICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhw
ZWN0ZWQoInZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIiwgdHJ1ZSwgJz09Jyk7Cisg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiB0ZXN0IGNvcHkgbGluayBsb2Nh
dGlvbiBhbmQgb3BlbiBpbiBuZXcgd2luZG93LgorICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAg
ICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBz
dGFydCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgp
OworICAgICAgICAgICAgICAgIHdhaXRGb3JFdmVudCgncGxheScsIHBsYXlpbmcpOworICAgICAg
ICAgICAgICAgIHJ1bigidmlkZW8uc3JjID0gJyIgKyBmaW5kTWVkaWFGaWxlKCJ2aWRlbyIsICJj
b250ZW50L3Rlc3QiKSArICInIik7CisgICAgICAgICAgICB9CisKKyAgICAgICA8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic3RhcnQoKSI+CisgICAgPHA+VGVzdCB0aGUgdmFyaW91
cyBhY3Rpb25zIGF2YWlsYWJsZSBpbiB0aGUgSFRNTDUgbWVkaWEgZWxlbWVudCBjb250ZXh0LW1l
bnUuPC9wPgorICAgIDx2aWRlbyBpZD0idmlkZW8iIGF1dG9wbGF5IGNvbnRyb2xzPjwvdmlkZW8+
Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKaW5kZXggYjhjYTUy
OC4uYjQxMTFhZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKQEAgLTMxMCwzICszMTAsNyBA
QCBmYXN0L2ZpbGVzL3dvcmtlcnMKIAogIyB2aWV3cG9ydCBtZXRhIHRhZyBzdXBwb3J0CiBmYXN0
L3ZpZXdwb3J0CisKKyMgbmVlZHMgZW5oYW5jZWQgZXZlbnRTZW5kZXIuY29udGV4dE1lbnUoKSBy
ZXR1cm4gdmFsdWUKKyMgc2VlIGFsc28gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ1MDIxCittZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy5odG1sCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZAppbmRleCBmOGFiZWU3Li4zNjY0MDAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBw
ZWQKQEAgLTIyNjksNiArMjI2OSw4IEBAIGVkaXRpbmcvc2VsZWN0aW9uLzUxOTUxNjYtMS5odG1s
CiAKICMgbWlzc2luZyBEUlQgZmVhdHVyZSwgc2VlIGFsc28gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM5MTAyCiBlZGl0aW5nL3NlbGVjdGlvbi9jb250ZXh0LW1lbnUt
b24tdGV4dC5odG1sCisjIGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDUwMjEKK21lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwKIAogIyA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSAjCiAjIEZhaWxpbmcgZWRpdGluZy9zcGVsbGluZyB0ZXN0cwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vU2tpcHBlZAppbmRleCA4NDYwY2Y0Li45ZWY5Y2JkIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
U2tpcHBlZApAQCAtMjk3LDYgKzI5Nyw4IEBAIGh0dHAvdGVzdHMvY3NzL2Nzcy1pbWFnZS1sb2Fk
aW5nLmh0bWwKIAogIyBtaXNzaW5nIERSVCBmZWF0dXJlLCBzZWUgYWxzbyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzkxMDIKIGVkaXRpbmcvc2VsZWN0aW9uL2NvbnRl
eHQtbWVudS1vbi10ZXh0Lmh0bWwKKyMgYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00NTAyMQorbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMuaHRtbAogCiAjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgTm8gYnVncyBmaWxl
ZCBhYm91dCB0aGUgYmVsb3cgeWV0IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTEzODA3ZC4uZTg0
MmNmYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMjcgQEAKKzIwMTAtMDktMTUgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9y
bWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFtHVEtdIGVuaGFuY2VkIGNvbnRleHQgbWVudSBmb3IgbWVkaWEgZWxlbWVudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MDIxCisK
KyAgICAgICAgTmV3IGl0ZW1zIGluIHRoZSBtZWRpYSBFbGVtZW50IGNvbnRleHQgbWVudToKKyAg
ICAgICAgLSBwbGF5L3BhdXNlCisgICAgICAgIC0gbXV0ZS91bm11dGUKKyAgICAgICAgLSBjb250
cm9scyBkaXNwbGF5IGNvbnRyb2wKKyAgICAgICAgLSBzd2l0Y2ggdG8gZnVsbHNjcmVlbiAoZm9y
IHZpZGVvIG9ubHkpCisgICAgICAgIC0gbG9vcCBwbGF5YmFjayBjb250cm9sCisgICAgICAgIC0g
Y29weSBtZWRpYSB1cmwgdG8gY2xpcGJvYXJkCisgICAgICAgIC0gb3BlbiBpbiBuZXcgd2luZG93
CisKKyAgICAgICAgVGVzdDogbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMuaHRtbAorCisgICAg
ICAgICogcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6CisgICAgICAg
ICogcGxhdGZvcm0vQ29udGV4dE1lbnUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1l
bnU6OnBvcHVsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51OjpjaGVja09yRW5h
YmxlSWZOZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5Lmg6CisgICAgICAgICogcGxhdGZv
cm0vTG9jYWxpemVkU3RyaW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVu
dUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnTWVkaWFNdXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlh
VW5NdXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmg6CisgICAgICAg
ICogcGxhdGZvcm0vYW5kcm9pZC9Mb2NhbGl6ZWRTdHJpbmdzQW5kcm9pZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQp
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9s
cyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3Ap
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3Jl
ZW4pOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhVW5NdXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9icmV3
L0xvY2FsaXplZFN0cmluZ3NCcmV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdNZWRpYU11dGUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVk
aWFVbk11dGUpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2lu
ZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtU
b0NsaXBib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVN
ZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2ds
ZU1lZGlhTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZp
ZGVvRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRp
YVBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11dGUpOgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay9Db250ZXh0TWVudUl0ZW1HdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z3Rr
U3RvY2tJREZyb21Db250ZXh0TWVudUFjdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0xv
Y2FsaXplZFN0cmluZ3NHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnT3Blbk1lZGlhSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVu
dUl0ZW1UYWdNZWRpYVBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z01lZGlhTXV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVVu
TXV0ZSk6CisgICAgICAgICogcGxhdGZvcm0vaGFpa3UvTG9jYWxpemVkU3RyaW5nc0hhaWt1LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2lu
ZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtU
b0NsaXBib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVN
ZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2ds
ZU1lZGlhTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZp
ZGVvRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRp
YVBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11dGUpOgorICAgICAgICAqIHBs
YXRmb3JtL3F0L0xvY2FsaXphdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ01lZGlhTXV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdN
ZWRpYVVuTXV0ZSk6CisgICAgICAgICogcGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2lu
ZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtU
b0NsaXBib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVN
ZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2ds
ZU1lZGlhTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZp
ZGVvRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRp
YVBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11dGUpOgorICAgICAgICAqIHJl
bmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXN1
bHQ6OmFic29sdXRlTWVkaWFVUkwpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6
bWVkaWFTdXBwb3J0c0Z1bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3Vs
dDo6bWVkaWFFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQ6OnRvZ2ds
ZU1lZGlhQ29udHJvbHNEaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQ6
OnRvZ2dsZU1lZGlhTG9vcFBsYXliYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXN1
bHQ6OmVudGVyRnVsbHNjcmVlbkZvclZpZGVvKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RS
ZXN1bHQ6Om1lZGlhQ29udHJvbHNFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RS
ZXN1bHQ6Om1lZGlhTG9vcEVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3Vs
dDo6bWVkaWFQbGF5aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQ6OnRvZ2ds
ZU1lZGlhUGxheVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQ6Om1lZGlh
SGFzQXVkaW8pOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6bWVkaWFNdXRlZCk6
CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0Ojp0b2dnbGVNZWRpYU11dGVTdGF0ZSk6
CisgICAgICAgICogcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaDoKKwogMjAxMC0wOS0xNiAgdGFr
YW5vIHRha3VtaSAgPHRha2FubzFAYXNpYS5hcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgS2VudCBUYW11cmEuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250
cm9sbGVyLmNwcCBiL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCmluZGV4
IGQyMzE3ZDIuLmRlNjQ5ODggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNv
bnRyb2xsZXIuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3Bw
CkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMu
TAogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xODYsNiArMTg3LDI3IEBAIHZv
aWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0
TWVudUl0ZW0qIGl0ZW0pCiAgICAgICAgIC8vIEZvciBub3csIGNhbGwgaW50byB0aGUgY2xpZW50
LiBUaGlzIGlzIHRlbXBvcmFyeSEKICAgICAgICAgZnJhbWUtPmVkaXRvcigpLT5jb3B5SW1hZ2Uo
cmVzdWx0KTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVu
TWVkaWFJbk5ld1dpbmRvdzoKKyAgICAgICAgb3Blbk5ld1dpbmRvdyhyZXN1bHQuYWJzb2x1dGVN
ZWRpYVVSTCgpLCBmcmFtZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29udGV4dE1lbnVJ
dGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkOgorICAgICAgICBmcmFtZS0+ZWRpdG9yKCkt
PmNvcHlVUkwocmVzdWx0LmFic29sdXRlTWVkaWFVUkwoKSwgcmVzdWx0LnRleHRDb250ZW50KCkp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlh
Q29udHJvbHM6CisgICAgICAgIHJlc3VsdC50b2dnbGVNZWRpYUNvbnRyb2xzRGlzcGxheSgpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9v
cDoKKyAgICAgICAgcmVzdWx0LnRvZ2dsZU1lZGlhTG9vcFBsYXliYWNrKCk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW46Cisg
ICAgICAgIHJlc3VsdC5lbnRlckZ1bGxzY3JlZW5Gb3JWaWRlbygpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheVBhdXNlOgorICAgICAgICByZXN1
bHQudG9nZ2xlTWVkaWFQbGF5U3RhdGUoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb250
ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGU6CisgICAgICAgIHJlc3VsdC50b2dnbGVNZWRpYU11dGVT
dGF0ZSgpOworICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5G
cmFtZUluTmV3V2luZG93OiB7CiAgICAgICAgIERvY3VtZW50TG9hZGVyKiBsb2FkZXIgPSBmcmFt
ZS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCk7CiAgICAgICAgIGlmICghbG9hZGVyLT51bnJl
YWNoYWJsZVVSTCgpLmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vQ29u
dGV4dE1lbnUuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5jcHAKaW5kZXggMzdk
NGMyYi4uZmRjZDNjOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5j
cHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5jcHAKQEAgLTEsNiArMSw3IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBDaHJpc3RpYW4gRHl3YW4gPGNocmlzdGlh
bkBpbWVuZGlvLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4Miw2ICsyODMsMjAgQEAgdm9pZCBDb250ZXh0
TWVudTo6cG9wdWxhdGUoKQogICAgICAgICBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdl
VG9EaXNrKCkpOwogICAgIENvbnRleHRNZW51SXRlbSBDb3B5SW1hZ2VJdGVtKEFjdGlvblR5cGUs
IENvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkLCAKICAgICAgICAgY29udGV4
dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKSk7CisgICAgQ29udGV4dE1lbnVJdGVt
IE9wZW5NZWRpYUluTmV3V2luZG93SXRlbShBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdP
cGVuTWVkaWFJbk5ld1dpbmRvdywgCisgICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRp
YUluTmV3V2luZG93KCkpOworICAgIENvbnRleHRNZW51SXRlbSBDb3B5TWVkaWFMaW5rSXRlbShB
Y3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQsIAor
ICAgICAgICBjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQoKSk7Cisg
ICAgQ29udGV4dE1lbnVJdGVtIE1lZGlhUGxheVBhdXNlKEFjdGlvblR5cGUsIENvbnRleHRNZW51
SXRlbVRhZ01lZGlhUGxheVBhdXNlLCAKKyAgICAgICAgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQ
bGF5KCkpOworICAgIENvbnRleHRNZW51SXRlbSBNZWRpYU11dGUoQWN0aW9uVHlwZSwgQ29udGV4
dE1lbnVJdGVtVGFnTWVkaWFNdXRlLCAKKyAgICAgICAgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFN
dXRlKCkpOworICAgIENvbnRleHRNZW51SXRlbSBUb2dnbGVNZWRpYUNvbnRyb2xzKENoZWNrYWJs
ZUFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMsIAorICAg
ICAgICBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkpOworICAgIENvbnRl
eHRNZW51SXRlbSBUb2dnbGVNZWRpYUxvb3AoQ2hlY2thYmxlQWN0aW9uVHlwZSwgQ29udGV4dE1l
bnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wLCAKKyAgICAgICAgY29udGV4dE1lbnVJdGVtVGFnVG9n
Z2xlTWVkaWFMb29wKCkpOworICAgIENvbnRleHRNZW51SXRlbSBFbnRlclZpZGVvRnVsbHNjcmVl
bihBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbiwgCisg
ICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCkpOwogI2lmIFBM
QVRGT1JNKE1BQykKICAgICBDb250ZXh0TWVudUl0ZW0gU2VhcmNoU3BvdGxpZ2h0SXRlbShBY3Rp
b25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hJblNwb3RsaWdodCwgCiAgICAgICAgIGNv
bnRleHRNZW51SXRlbVRhZ1NlYXJjaEluU3BvdGxpZ2h0KCkpOwpAQCAtMzQ5LDYgKzM2NCwyMiBA
QCB2b2lkIENvbnRleHRNZW51Ojpwb3B1bGF0ZSgpCiAgICAgICAgICAgICAgICAgYXBwZW5kSXRl
bShDb3B5SW1hZ2VJdGVtKTsKICAgICAgICAgfQogCisgICAgICAgIEtVUkwgbWVkaWFVUkwgPSBy
ZXN1bHQuYWJzb2x1dGVNZWRpYVVSTCgpOworICAgICAgICBpZiAoIW1lZGlhVVJMLmlzRW1wdHko
KSkgeworICAgICAgICAgICAgaWYgKCFsaW5rVVJMLmlzRW1wdHkoKSB8fCAhaW1hZ2VVUkwuaXNF
bXB0eSgpKQorICAgICAgICAgICAgICAgIGFwcGVuZEl0ZW0oKnNlcGFyYXRvckl0ZW0oKSk7CisK
KyAgICAgICAgICAgIGFwcGVuZEl0ZW0oTWVkaWFQbGF5UGF1c2UpOworICAgICAgICAgICAgYXBw
ZW5kSXRlbShNZWRpYU11dGUpOworICAgICAgICAgICAgYXBwZW5kSXRlbShUb2dnbGVNZWRpYUNv
bnRyb2xzKTsKKyAgICAgICAgICAgIGFwcGVuZEl0ZW0oVG9nZ2xlTWVkaWFMb29wKTsKKyAgICAg
ICAgICAgIGFwcGVuZEl0ZW0oRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOworCisgICAgICAgICAgICBh
cHBlbmRJdGVtKCpzZXBhcmF0b3JJdGVtKCkpOworICAgICAgICAgICAgYXBwZW5kSXRlbShDb3B5
TWVkaWFMaW5rSXRlbSk7CisgICAgICAgICAgICBhcHBlbmRJdGVtKE9wZW5NZWRpYUluTmV3V2lu
ZG93SXRlbSk7CisgICAgICAgIH0KKwogICAgICAgICBpZiAoaW1hZ2VVUkwuaXNFbXB0eSgpICYm
IGxpbmtVUkwuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBpZiAocmVzdWx0LmlzU2VsZWN0ZWQo
KSkgewogICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rpb25Db250YWluc1Bvc3NpYmxlV29yZChm
cmFtZSkpIHsKQEAgLTM3NSwxMiArNDA2LDYgQEAgdm9pZCBDb250ZXh0TWVudTo6cG9wdWxhdGUo
KQogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgICAgICAgICAgICAgaWYgKCEoZnJhbWUtPnBh
Z2UoKSAmJiBmcmFtZS0+cGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmhhc0luc3BlY3Rv
ckZyb250ZW5kQ2xpZW50KCkpKSB7CiAjZW5kaWYKLSNpZiBQTEFURk9STShHVEspCi0gICAgICAg
ICAgICAgICAgYXBwZW5kSXRlbShCYWNrSXRlbSk7Ci0gICAgICAgICAgICAgICAgYXBwZW5kSXRl
bShGb3J3YXJkSXRlbSk7Ci0gICAgICAgICAgICAgICAgYXBwZW5kSXRlbShTdG9wSXRlbSk7Ci0g
ICAgICAgICAgICAgICAgYXBwZW5kSXRlbShSZWxvYWRJdGVtKTsKLSNlbHNlCiAgICAgICAgICAg
ICAgICAgaWYgKGZyYW1lLT5wYWdlKCkgJiYgZnJhbWUtPnBhZ2UoKS0+Y2FuR29CYWNrT3JGb3J3
YXJkKC0xKSkKICAgICAgICAgICAgICAgICAgICAgYXBwZW5kSXRlbShCYWNrSXRlbSk7CiAKQEAg
LTM5Myw3ICs0MTgsNiBAQCB2b2lkIENvbnRleHRNZW51Ojpwb3B1bGF0ZSgpCiAgICAgICAgICAg
ICAgICAgICAgIGFwcGVuZEl0ZW0oU3RvcEl0ZW0pOwogICAgICAgICAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgICAgICAgICAgYXBwZW5kSXRlbShSZWxvYWRJdGVtKTsKLSNlbmRpZgogI2lmIEVO
QUJMRShJTlNQRUNUT1IpCiAgICAgICAgICAgICAgICAgfQogI2VuZGlmCkBAIC03ODgsNiArODEy
LDE3IEBAIHZvaWQgQ29udGV4dE1lbnU6OmNoZWNrT3JFbmFibGVJZk5lZWRlZChDb250ZXh0TWVu
dUl0ZW0mIGl0ZW0pIGNvbnN0CiAgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnT3Blbklt
YWdlSW5OZXdXaW5kb3c6CiAgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJ
bWFnZVRvRGlzazoKICAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0Ns
aXBib2FyZDoKKyAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dp
bmRvdzoKKyAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlw
Ym9hcmQ6CisgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9s
czoKKyAgICAgICAgICAgIHNob3VsZENoZWNrID0gbV9oaXRUZXN0UmVzdWx0Lm1lZGlhQ29udHJv
bHNFbmFibGVkKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDb250ZXh0TWVu
dUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3A6CisgICAgICAgICAgICBzaG91bGRDaGVjayA9IG1faGl0
VGVzdFJlc3VsdC5tZWRpYUxvb3BFbmFibGVkKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbjoKKyAgICAgICAg
ICAgIHNob3VsZEVuYWJsZSA9IG1faGl0VGVzdFJlc3VsdC5tZWRpYVN1cHBvcnRzRnVsbHNjcmVl
bigpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFn
T3BlbkZyYW1lSW5OZXdXaW5kb3c6CiAgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnU3Bl
bGxpbmdHdWVzczoKICAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPdGhlcjoKQEAgLTgy
Myw2ICs4NTgsMTkgQEAgdm9pZCBDb250ZXh0TWVudTo6Y2hlY2tPckVuYWJsZUlmTmVlZGVkKENv
bnRleHRNZW51SXRlbSYgaXRlbSkgY29uc3QKICAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1M
YXN0Q3VzdG9tVGFnOgogICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbUJhc2VBcHBsaWNhdGlv
blRhZzoKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRh
Z01lZGlhUGxheVBhdXNlOgorICAgICAgICAgICAgaWYgKG1faGl0VGVzdFJlc3VsdC5tZWRpYVBs
YXlpbmcoKSkKKyAgICAgICAgICAgICAgICBpdGVtLnNldFRpdGxlKGNvbnRleHRNZW51SXRlbVRh
Z01lZGlhUGF1c2UoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgaXRlbS5z
ZXRUaXRsZShjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGU6CisgICAgICAgICAg
ICBzaG91bGRFbmFibGUgPSBtX2hpdFRlc3RSZXN1bHQubWVkaWFIYXNBdWRpbygpOworICAgICAg
ICAgICAgaWYgKCFzaG91bGRFbmFibGUgfHwgIW1faGl0VGVzdFJlc3VsdC5tZWRpYU11dGVkKCkp
CisgICAgICAgICAgICAgICAgaXRlbS5zZXRUaXRsZShjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11
dGUoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgaXRlbS5zZXRUaXRsZShj
b250ZXh0TWVudUl0ZW1UYWdNZWRpYVVuTXV0ZSgpKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAg
IH0KIAogICAgIGl0ZW0uc2V0Q2hlY2tlZChzaG91bGRDaGVjayk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0
TWVudUl0ZW0uaAppbmRleCAwNThmNjQ0Li5mN2ZhNWU2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1l
bnVJdGVtLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxl
IENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEwIElnYWxpYSBTLkwKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTQzLDYg
KzE0NCwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIENvbnRleHRNZW51SXRlbVRh
Z0NhcGl0YWxpemUsCiAgICAgICAgIENvbnRleHRNZW51SXRlbVRhZ0NoYW5nZUJhY2ssCiAjZW5k
aWYKKyAgICAgICAgQ29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3csCisgICAg
ICAgIENvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCwKKyAgICAgICAg
Q29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scywKKyAgICAgICAgQ29udGV4dE1l
bnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wLAorICAgICAgICBDb250ZXh0TWVudUl0ZW1UYWdFbnRl
clZpZGVvRnVsbHNjcmVlbiwKKyAgICAgICAgQ29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5UGF1
c2UsCisgICAgICAgIENvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSwKICAgICAgICAgQ29udGV4
dE1lbnVJdGVtQmFzZUN1c3RvbVRhZyA9IDUwMDAsCiAgICAgICAgIENvbnRleHRNZW51SXRlbUN1
c3RvbVRhZ05vQWN0aW9uID0gNTk5OCwKICAgICAgICAgQ29udGV4dE1lbnVJdGVtTGFzdEN1c3Rv
bVRhZyA9IDU5OTksCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXphdGlvblN0
cmF0ZWd5LmggYi9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5LmgKaW5kZXgg
MTc4Y2ZhMi4uNmM0ZGI2YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6YXRp
b25TdHJhdGVneS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3ku
aApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwKICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTEyLDYgKzExMywxNSBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2FwaXRhbGl6ZSgpID0gMDsK
ICAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGFuZ2VCYWNrKGNvbnN0IFN0
cmluZyYgcmVwbGFjZWRTdHJpbmcpID0gMDsKICNlbmRpZgorICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KCkgPSAwOworICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCgpID0gMDsK
KyAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xz
KCkgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlh
TG9vcCgpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZp
ZGVvRnVsbHNjcmVlbigpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdNZWRpYVBsYXkoKSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
TWVkaWFQYXVzZSgpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdN
ZWRpYU11dGUoKSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVk
aWFVbk11dGUoKSA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5z
cGVjdEVsZW1lbnQoKSA9IDA7CiAjZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCmluZGV4IGE2OWUwZmIuLmIyZTZiNTEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwKICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzYyLDYgKzM2Myw1MSBAQCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnQ2hhbmdlQmFjayhjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nKQogfQog
CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Bl
bk1lZGlhSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdX
aW5kb3coKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0Ns
aXBib2FyZCgpCit7CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2NhbGl6YXRp
b25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQo
KTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKQor
eworICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3ko
KS0+Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpOworfQorCitTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkKK3sKKyAgICByZXR1cm4gcGxhdGZv
cm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRh
Z1RvZ2dsZU1lZGlhTG9vcCgpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJW
aWRlb0Z1bGxzY3JlZW4oKQoreworICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9j
YWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3Jl
ZW4oKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpCit7CisgICAg
cmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250
ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z01lZGlhUGF1c2UoKQoreworICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpOworfQorCitT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkKK3sKKyAgICByZXR1cm4gcGxhdGZv
cm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRh
Z01lZGlhTXV0ZSgpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11dGUo
KQoreworICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRl
Z3koKS0+Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11dGUoKTsKK30KICAgICAKIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgpCiB7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaCBiL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVk
U3RyaW5ncy5oCmluZGV4IDA0MDQyYjYuLmUxM2E0MDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVk
U3RyaW5ncy5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwMywgMjAw
NiwgMjAwOSBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTEwOCw2ICsxMDksMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplKCk7CiAgICAgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0NoYW5nZUJhY2soY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZyk7CiAjZW5kaWYKKyAg
ICBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3coKTsKKyAgICBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKCk7CisgICAg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKTsKKyAgICBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCk7CisgICAgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCk7CisgICAgU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ01lZGlhUGxheSgpOworICAgIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRp
YVBhdXNlKCk7CisgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpOworICAg
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVVuTXV0ZSgpOwogICAgIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgpOwogI2VuZGlmIC8vIEVOQUJMRShDT05URVhU
X01FTlVTKQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvTG9jYWxpemVk
U3RyaW5nc0FuZHJvaWQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL0xvY2FsaXplZFN0
cmluZ3NBbmRyb2lkLmNwcAppbmRleCAyZmM4ODBiLi44ZDkyNTBhIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL2FuZHJvaWQvTG9jYWxpemVkU3RyaW5nc0FuZHJvaWQuY3BwCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9Mb2NhbGl6ZWRTdHJpbmdzQW5kcm9pZC5jcHAKQEAgLTgx
LDYgKzgxLDYwIEBAIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2Fy
ZCgpCiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
T3Blbk1lZGlhSW5OZXdXaW5kb3coKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlu
a1RvQ2xpcGJvYXJkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJp
bmcoKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlh
UGxheSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9
CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ01lZGlhTXV0ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
U3RyaW5nKCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVVuTXV0ZSgpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpCiB7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9Mb2NhbGl6ZWRT
dHJpbmdzQnJldy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvTG9jYWxpemVkU3RyaW5nc0Jy
ZXcuY3BwCmluZGV4IDFiYzU5ODUuLmI1Mjg5YzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vYnJldy9Mb2NhbGl6ZWRTdHJpbmdzQnJldy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9i
cmV3L0xvY2FsaXplZFN0cmluZ3NCcmV3LmNwcApAQCAtOTYsNiArOTYsNTEgQEAgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkKICAgICByZXR1cm4gIkNvcHkg
aW1hZ2UgdG8gY2xpcGJvYXJkIjsKIH0KIAorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5N
ZWRpYUluTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gIk9wZW4gTWVkaWEgaW4gTmV3IFdpbmRv
dyI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9h
cmQoKQoreworICAgIHJldHVybiAiQ29weSBNZWRpYSBMaW5rIExvY2F0aW9uIjsKK30KKworU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKQoreworICAgIHJldHVy
biAiVG9nZ2xlIE1lZGlhIENvbnRyb2xzIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z1RvZ2dsZU1lZGlhTG9vcCgpCit7CisgICAgcmV0dXJuICJUb2dnbGUgTWVkaWEgTG9vcCBQbGF5
YmFjayI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVl
bigpCit7CisgICAgcmV0dXJuICJTd2l0Y2ggVmlkZW8gdG8gRnVsbHNjcmVlbiI7Cit9CisKK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQoreworICAgIHJldHVybiAiUGxheSI7
Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkKK3sKKyAgICByZXR1
cm4gIlBhdXNlIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpCit7
CisgICAgcmV0dXJuICJNdXRlIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlh
VW5NdXRlKCkKK3sKKyAgICByZXR1cm4gIlVuTXV0ZSI7Cit9CisKIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpCiB7CiAgICAgcmV0dXJuICJPcGVuIGZyYW1l
IGluIG5ldyB3aW5kb3ciOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9jYWxp
emVkU3RyaW5nc0VmbC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Mb2NhbGl6ZWRTdHJpbmdz
RWZsLmNwcAppbmRleCA2MDIzMjA1Li5jNjQ1ZTBkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcApAQCAtOTgsNiArOTgsNTEgQEAgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkKICAgICByZXR1cm4gU3RyaW5nOjpm
cm9tVVRGOCgiQ29weSBJbWFnZSIpOwogfQogCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Bl
bk1lZGlhSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJPcGVu
IE1lZGlhIGluIE5ldyBXaW5kb3ciKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Nv
cHlNZWRpYUxpbmtUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgo
IkNvcHkgTWVkaWEgTGluayBMb2NhdGlvbiIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnVG9nZ2xlTWVkaWFDb250cm9scygpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgo
IlRvZ2dsZSBNZWRpYSBDb250cm9scyIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
VG9nZ2xlTWVkaWFMb29wKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiVG9nZ2xl
IE1lZGlhIExvb3AgUGxheWJhY2siKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Vu
dGVyVmlkZW9GdWxsc2NyZWVuKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiU3dp
dGNoIFZpZGVvIHRvIEZ1bGxzY3JlZW4iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z01lZGlhUGxheSgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIlBsYXkiKTsKK30K
KworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKQoreworICAgIHJldHVybiBT
dHJpbmc6OmZyb21VVEY4KCJQYXVzZSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
TWVkaWFNdXRlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiTXV0ZSIpOworfQor
CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11dGUoKQoreworICAgIHJldHVybiBT
dHJpbmc6OmZyb21VVEY4KCJVbk11dGUiKTsKK30KKwogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z09wZW5GcmFtZUluTmV3V2luZG93KCkKIHsKICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgi
T3BlbiBGcmFtZSBpbiBOZXcgV2luZG93Iik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9Db250ZXh0TWVudUl0ZW1HdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29udGV4
dE1lbnVJdGVtR3RrLmNwcAppbmRleCBlMmM1Yjg0Li42OGQwYTlhIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9Db250ZXh0TWVudUl0ZW1HdGsuY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL0NvbnRleHRNZW51SXRlbUd0ay5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICog
IENvcHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogIENvcHly
aWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0zMywxMSAr
MzQsMTMgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGd0a1N0b2NrSURGcm9tQ29udGV4dE1lbnVBY3Rp
b24oY29uc3QgQ29udGV4dE1lbnVBY3Rpb24mIGFjdGkKICAgICBzd2l0Y2ggKGFjdGlvbikgewog
ICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZDoKICAgICBjYXNl
IENvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkOgorICAgIGNhc2UgQ29udGV4
dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkOgogICAgIGNhc2UgQ29udGV4dE1l
bnVJdGVtVGFnQ29weToKICAgICAgICAgcmV0dXJuIEdUS19TVE9DS19DT1BZOwogICAgIGNhc2Ug
Q29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdzoKICAgICBjYXNlIENvbnRleHRN
ZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93OgogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVt
VGFnT3BlbkZyYW1lSW5OZXdXaW5kb3c6CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVu
TWVkaWFJbk5ld1dpbmRvdzoKICAgICAgICAgcmV0dXJuIEdUS19TVE9DS19PUEVOOwogICAgIGNh
c2UgQ29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrOgogICAgIGNhc2UgQ29udGV4
dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzazoKQEAgLTU5LDcgKzYyLDcgQEAgc3RhdGlj
IGNvbnN0IGNoYXIqIGd0a1N0b2NrSURGcm9tQ29udGV4dE1lbnVBY3Rpb24oY29uc3QgQ29udGV4
dE1lbnVBY3Rpb24mIGFjdGkKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1NlbGVjdEFsbDoK
ICAgICAgICAgcmV0dXJuIEdUS19TVE9DS19TRUxFQ1RfQUxMOwogICAgIGNhc2UgQ29udGV4dE1l
bnVJdGVtVGFnU3BlbGxpbmdHdWVzczoKLSAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIHJl
dHVybiAwOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmc6CiAgICAg
ICAgIHJldHVybiBHVEtfU1RPQ0tfTk87CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdMZWFy
blNwZWxsaW5nOgpAQCAtOTksOCArMTAyLDE0IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBndGtTdG9j
a0lERnJvbUNvbnRleHRNZW51QWN0aW9uKGNvbnN0IENvbnRleHRNZW51QWN0aW9uJiBhY3RpCiAg
ICAgICAgIHJldHVybiBHVEtfU1RPQ0tfVU5ERVJMSU5FOwogICAgIGNhc2UgQ29udGV4dE1lbnVJ
dGVtVGFnU2hvd0NvbG9yczoKICAgICAgICAgcmV0dXJuIEdUS19TVE9DS19TRUxFQ1RfQ09MT1I7
CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzOgorICAgIGNh
c2UgQ29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wOgorICAgICAgICAvLyBObyBpY29u
IGZvciB0aGlzLgorICAgICAgICByZXR1cm4gMDsKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRh
Z0VudGVyVmlkZW9GdWxsc2NyZWVuOgorICAgICAgICByZXR1cm4gR1RLX1NUT0NLX0ZVTExTQ1JF
RU47CiAgICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIHJldHVybiAw
OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvTG9jYWxpemVk
U3RyaW5nc0d0ay5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3Rr
LmNwcAppbmRleCA0MzJjOTJmLi40OTkxMjNiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9M
b2NhbGl6ZWRTdHJpbmdzR3RrLmNwcApAQCAtNCw2ICs0LDcgQEAKICAqIENvcHlyaWdodCAoQykg
MjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgogICogQ29weXJpZ2h0IChDKSAyMDA4IENo
cmlzdGlhbiBEeXdhbiA8Y2hyaXN0aWFuQGltZW5kaW8uY29tPgogICogQ29weXJpZ2h0IChDKSAy
MDA4IE51YW50aSBMdGQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTAogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMTAsNiArMTExLDUxIEBAIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpCiAgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbVVURjgoXygiQ29wX3kgSW1hZ2UiKSk7CiB9CiAKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdPcGVuTWVkaWFJbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgo
XygiT3BlbiBfTWVkaWEgaW4gTmV3IFdpbmRvdyIpKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbVVURjgoXygiQ29wX3kgTWVkaWEgTGluayBMb2NhdGlvbiIpKTsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKQoreworICAgIHJldHVybiBTdHJp
bmc6OmZyb21VVEY4KF8oIl9Ub2dnbGUgTWVkaWEgQ29udHJvbHMiKSk7Cit9CisKK1N0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKQoreworICAgIHJldHVybiBTdHJpbmc6
OmZyb21VVEY4KF8oIlRvZ2dsZSBNZWRpYSBfTG9vcCBQbGF5YmFjayIpKTsKK30KKworU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCkKK3sKKyAgICByZXR1cm4g
U3RyaW5nOjpmcm9tVVRGOChfKCJTd2l0Y2ggVmlkZW8gdG8gX0Z1bGxzY3JlZW4iKSk7Cit9CisK
K1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQoreworICAgIHJldHVybiBTdHJp
bmc6OmZyb21VVEY4KF8oIl9QbGF5IikpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
TWVkaWFQYXVzZSgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiX1BhdXNlIikp
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkKK3sKKyAgICByZXR1
cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJfTXV0ZSIpKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ01lZGlhVW5NdXRlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJV
bl9NdXRlIikpOworfQorCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdX
aW5kb3coKQogewogICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8oIk9wZW4gX0ZyYW1lIGlu
IE5ldyBXaW5kb3ciKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvY2Fs
aXplZFN0cmluZ3NIYWlrdS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0
cmluZ3NIYWlrdS5jcHAKaW5kZXggNTMyMTc5Mi4uMjhkODI1YiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9oYWlrdS9Mb2NhbGl6ZWRTdHJpbmdzSGFpa3UuY3BwCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vaGFpa3UvTG9jYWxpemVkU3RyaW5nc0hhaWt1LmNwcApAQCAtOTgsNiArOTgsNTEg
QEAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkKICAgICBy
ZXR1cm4gIkNvcHkgaW1hZ2UgdG8gY2xpcGJvYXJkIjsKIH0KIAorU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gIk9wZW4gTWVkaWEg
aW4gTmV3IFdpbmRvdyI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFM
aW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiAiQ29weSBNZWRpYSBMaW5rIExvY2F0aW9u
IjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKQor
eworICAgIHJldHVybiAiVG9nZ2xlIE1lZGlhIENvbnRyb2xzIjsKK30KKworU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCit7CisgICAgcmV0dXJuICJUb2dnbGUgTWVk
aWEgTG9vcCBQbGF5YmFjayI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZp
ZGVvRnVsbHNjcmVlbigpCit7CisgICAgcmV0dXJuICJTd2l0Y2ggVmlkZW8gdG8gRnVsbHNjcmVl
biI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQoreworICAgIHJl
dHVybiAiUGxheSI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkK
K3sKKyAgICByZXR1cm4gIlBhdXNlIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01l
ZGlhTXV0ZSgpCit7CisgICAgcmV0dXJuICJNdXRlIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ01lZGlhVW5NdXRlKCkKK3sKKyAgICByZXR1cm4gIlVuTXV0ZSI7Cit9CisKIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpCiB7CiAgICAgcmV0dXJu
ICJPcGVuIGZyYW1lIGluIG5ldyB3aW5kb3ciOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9xdC9Mb2NhbGl6YXRpb25zLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvTG9jYWxpemF0aW9u
cy5jcHAKaW5kZXggNDU0ODcyYS4uYjkyNTFlMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9xdC9Mb2NhbGl6YXRpb25zLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L0xvY2FsaXph
dGlvbnMuY3BwCkBAIC0xMDUsNiArMTA1LDUxIEBAIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdD
b3B5SW1hZ2VUb0NsaXBib2FyZCgpCiAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5z
bGF0ZSgiUVdlYlBhZ2UiLCAiQ29weSBJbWFnZSIsICJDb3B5IExpbmsgY29udGV4dCBtZW51IGl0
ZW0iKTsKIH0KIAorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93
KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJPcGVuIE1lZGlhIiwgIk9wZW4gTWVkaWEgaW4gTmV3IFdpbmRvdyIpOworfQorCitTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5IE1lZGlhIiwg
IkNvcHkgTWVkaWEgTGluayBMb2NhdGlvbiIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnVG9nZ2xlTWVkaWFDb250cm9scygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246
OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVG9nZ2xlIENvbnRyb2xzIiwgIlRvZ2dsZSBNZWRpYSBD
b250cm9scyIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29w
KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIs
ICJUb2dnbGUgTG9vcCIsICJUb2dnbGUgTWVkaWEgTG9vcCBQbGF5YmFjayIpOworfQorCitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKQoreworICAgIHJldHVy
biBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkVudGVyIEZ1bGxzY3Jl
ZW4iLCAiU3dpdGNoIFZpZGVvIHRvIEZ1bGxzY3JlZW4iKTsKK30KKworU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ01lZGlhUGxheSgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiUGxheSIsICJQbGF5Iik7Cit9CisKK1N0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQYXVzZSIsICJQYXVzZSIpOworfQorCitTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNdXRlIiwgIk11dGUiKTsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ01lZGlhVW5NdXRlKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJVbk11dGUiLCAiVW5NdXRlIik7Cit9CisKIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpCiB7CiAgICAgcmV0
dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBGcmFtZSIs
ICJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNwcAppbmRleCA0MTEyZjY0Li5hNWFmY2I3
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHAK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS93eC9Mb2NhbGl6ZWRTdHJpbmdzV3guY3BwCkBAIC05Nyw2
ICs5Nyw1MSBAQCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQo
KQogICAgIHJldHVybiBTdHJpbmcoIkNvcHkgSW1hZ2UgdG8gQ2xpcGJvYXJkIik7IAogfQogCitT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3coKQoreworICAgIHJl
dHVybiBTdHJpbmcoIk9wZW4gTWVkaWEgaW4gTmV3IFdpbmRvdyIpOworfQorCitTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4g
U3RyaW5nKCJDb3B5IE1lZGlhIExpbmsgTG9jYXRpb24iKTsKK30KKworU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKQoreworICAgIHJldHVybiBTdHJpbmcoIlRv
Z2dsZSBNZWRpYSBDb250cm9scyIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9n
Z2xlTWVkaWFMb29wKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJUb2dnbGUgTWVkaWEgTG9vcCBQ
bGF5YmFjayIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxz
Y3JlZW4oKQoreworICAgIHJldHVybiBTdHJpbmcoIlN3aXRjaCBWaWRlbyB0byBGdWxsc2NyZWVu
Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQoreworICAgIHJl
dHVybiBTdHJpbmcoIlBsYXkiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlh
UGF1c2UoKQoreworICAgIHJldHVybiBTdHJpbmcoIlBhdXNlIik7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKQoreworICAgIHJldHVybiBTdHJpbmcoIk11dGUiKTsK
K30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhVW5NdXRlKCkKK3sKKyAgICByZXR1
cm4gU3RyaW5nKCJVbk11dGUiKTsKK30KKwogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5G
cmFtZUluTmV3V2luZG93KCkgCiB7IAogICAgIHJldHVybiBTdHJpbmcoIk9wZW4gRnJhbWUgaW4g
TmV3IFdpbmRvdyIpOyAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1
bHQuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKaW5kZXggNDk2YzRi
YS4uNGFlOTk5MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5j
cHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKQEAgLTI0LDYgKzI0
LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1
ZGUgIkhUTUxBbmNob3JFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFZpZGVvRWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgpAQCAtMjkyLDIyICsyOTMsMTI1IEBA
IEtVUkwgSGl0VGVzdFJlc3VsdDo6YWJzb2x1dGVJbWFnZVVSTCgpIGNvbnN0CiBLVVJMIEhpdFRl
c3RSZXN1bHQ6OmFic29sdXRlTWVkaWFVUkwoKSBjb25zdAogewogI2lmIEVOQUJMRShWSURFTykK
KyAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbHQgPSBtZWRpYUVsZW1lbnQoKSkKKyAg
ICAgICAgcmV0dXJuIG1faW5uZXJOb25TaGFyZWROb2RlLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVS
TChkZXByZWNhdGVkUGFyc2VVUkwobWVkaWFFbHQtPmN1cnJlbnRTcmMoKSkpOworICAgIHJldHVy
biBLVVJMKCk7CisjZWxzZQorICAgIHJldHVybiBLVVJMKCk7CisjZW5kaWYKK30KKworYm9vbCBI
aXRUZXN0UmVzdWx0OjptZWRpYVN1cHBvcnRzRnVsbHNjcmVlbigpIGNvbnN0Cit7CisjaWYgRU5B
QkxFKFZJREVPKQorICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWx0KG1lZGlhRWxlbWVudCgp
KTsKKyAgICByZXR1cm4gKG1lZGlhRWx0ICYmIG1lZGlhRWx0LT5oYXNUYWdOYW1lKEhUTUxOYW1l
czo6dmlkZW9UYWcpICYmIG1lZGlhRWx0LT5zdXBwb3J0c0Z1bGxzY3JlZW4oKSk7CisjZWxzZQor
ICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCisjaWYgRU5BQkxFKFZJREVPKQorSFRNTE1l
ZGlhRWxlbWVudCogSGl0VGVzdFJlc3VsdDo6bWVkaWFFbGVtZW50KCkgY29uc3QKK3sKICAgICBp
ZiAoIShtX2lubmVyTm9uU2hhcmVkTm9kZSAmJiBtX2lubmVyTm9uU2hhcmVkTm9kZS0+ZG9jdW1l
bnQoKSkpCi0gICAgICAgIHJldHVybiBLVVJMKCk7CisgICAgICAgIHJldHVybiAwOwogCiAgICAg
aWYgKCEobV9pbm5lck5vblNoYXJlZE5vZGUtPnJlbmRlcmVyKCkgJiYgbV9pbm5lck5vblNoYXJl
ZE5vZGUtPnJlbmRlcmVyKCktPmlzTWVkaWEoKSkpCi0gICAgICAgIHJldHVybiBLVVJMKCk7Cisg
ICAgICAgIHJldHVybiAwOwogCi0gICAgQXRvbWljU3RyaW5nIHVybFN0cmluZzsKLSAgICBpZiAo
bV9pbm5lck5vblNoYXJlZE5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykgfHwg
bV9pbm5lck5vblNoYXJlZE5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjphdWRpb1RhZykpIHsK
LSAgICAgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRN
TE1lZGlhRWxlbWVudCo+KG1faW5uZXJOb25TaGFyZWROb2RlLmdldCgpKTsKLSAgICAgICAgdXJs
U3RyaW5nID0gbWVkaWFFbGVtZW50LT5jdXJyZW50U3JjKCk7Ci0gICAgfSBlbHNlCi0gICAgICAg
IHJldHVybiBLVVJMKCk7CisgICAgaWYgKG1faW5uZXJOb25TaGFyZWROb2RlLT5oYXNUYWdOYW1l
KEhUTUxOYW1lczo6dmlkZW9UYWcpIHx8IG1faW5uZXJOb25TaGFyZWROb2RlLT5oYXNUYWdOYW1l
KEhUTUxOYW1lczo6YXVkaW9UYWcpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTE1l
ZGlhRWxlbWVudCo+KG1faW5uZXJOb25TaGFyZWROb2RlLmdldCgpKTsKKyAgICByZXR1cm4gMDsK
K30KKyNlbmRpZgogCi0gICAgcmV0dXJuIG1faW5uZXJOb25TaGFyZWROb2RlLT5kb2N1bWVudCgp
LT5jb21wbGV0ZVVSTChkZXByZWNhdGVkUGFyc2VVUkwodXJsU3RyaW5nKSk7Ci0jZWxzZQotICAg
IHJldHVybiBLVVJMKCk7Cit2b2lkIEhpdFRlc3RSZXN1bHQ6OnRvZ2dsZU1lZGlhQ29udHJvbHNE
aXNwbGF5KCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgaWYgKEhUTUxNZWRpYUVs
ZW1lbnQqIG1lZGlhRWx0ID0gbWVkaWFFbGVtZW50KCkpCisgICAgICAgIG1lZGlhRWx0LT5zZXRD
b250cm9scyghbWVkaWFFbHQtPmNvbnRyb2xzKCkpOworI2VuZGlmCit9CisKK3ZvaWQgSGl0VGVz
dFJlc3VsdDo6dG9nZ2xlTWVkaWFMb29wUGxheWJhY2soKSBjb25zdAoreworI2lmIEVOQUJMRShW
SURFTykKKyAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbHQgPSBtZWRpYUVsZW1lbnQo
KSkKKyAgICAgICAgbWVkaWFFbHQtPnNldExvb3AoIW1lZGlhRWx0LT5sb29wKCkpOworI2VuZGlm
Cit9CisKK3ZvaWQgSGl0VGVzdFJlc3VsdDo6ZW50ZXJGdWxsc2NyZWVuRm9yVmlkZW8oKSBjb25z
dAoreworI2lmIEVOQUJMRShWSURFTykKKyAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsdCht
ZWRpYUVsZW1lbnQoKSk7CisgICAgaWYgKG1lZGlhRWx0ICYmIG1lZGlhRWx0LT5oYXNUYWdOYW1l
KEhUTUxOYW1lczo6dmlkZW9UYWcpKSB7CisgICAgICAgIEhUTUxWaWRlb0VsZW1lbnQqIHZpZGVv
RWx0ID0gc3RhdGljX2Nhc3Q8SFRNTFZpZGVvRWxlbWVudCo+KG1lZGlhRWx0KTsKKyAgICAgICAg
aWYgKCF2aWRlb0VsdC0+aXNGdWxsc2NyZWVuKCkgJiYgbWVkaWFFbHQtPnN1cHBvcnRzRnVsbHNj
cmVlbigpKQorICAgICAgICAgICAgdmlkZW9FbHQtPmVudGVyRnVsbHNjcmVlbigpOworICAgIH0K
KyNlbmRpZgorfQorCitib29sIEhpdFRlc3RSZXN1bHQ6Om1lZGlhQ29udHJvbHNFbmFibGVkKCkg
Y29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQqIG1l
ZGlhRWx0ID0gbWVkaWFFbGVtZW50KCkpCisgICAgICAgIHJldHVybiBtZWRpYUVsdC0+Y29udHJv
bHMoKTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBIaXRUZXN0UmVzdWx0
OjptZWRpYUxvb3BFbmFibGVkKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgaWYg
KEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWx0ID0gbWVkaWFFbGVtZW50KCkpCisgICAgICAgIHJl
dHVybiBtZWRpYUVsdC0+bG9vcCgpOworI2VuZGlmCisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIEhpdFRlc3RSZXN1bHQ6Om1lZGlhUGxheWluZygpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFZJ
REVPKQorICAgIGlmIChIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsdCA9IG1lZGlhRWxlbWVudCgp
KQorICAgICAgICByZXR1cm4gIW1lZGlhRWx0LT5wYXVzZWQoKTsKKyNlbmRpZgorICAgIHJldHVy
biBmYWxzZTsKK30KKwordm9pZCBIaXRUZXN0UmVzdWx0Ojp0b2dnbGVNZWRpYVBsYXlTdGF0ZSgp
IGNvbnN0Cit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIGlmIChIVE1MTWVkaWFFbGVtZW50KiBt
ZWRpYUVsdCA9IG1lZGlhRWxlbWVudCgpKQorICAgICAgICBtZWRpYUVsdC0+dG9nZ2xlUGxheVN0
YXRlKCk7CisjZW5kaWYKK30KKworYm9vbCBIaXRUZXN0UmVzdWx0OjptZWRpYUhhc0F1ZGlvKCkg
Y29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQqIG1l
ZGlhRWx0ID0gbWVkaWFFbGVtZW50KCkpCisgICAgICAgIHJldHVybiBtZWRpYUVsdC0+aGFzQXVk
aW8oKTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBIaXRUZXN0UmVzdWx0
OjptZWRpYU11dGVkKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgaWYgKEhUTUxN
ZWRpYUVsZW1lbnQqIG1lZGlhRWx0ID0gbWVkaWFFbGVtZW50KCkpCisgICAgICAgIHJldHVybiBt
ZWRpYUVsdC0+bXV0ZWQoKTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBI
aXRUZXN0UmVzdWx0Ojp0b2dnbGVNZWRpYU11dGVTdGF0ZSgpIGNvbnN0Cit7CisjaWYgRU5BQkxF
KFZJREVPKQorICAgIGlmIChIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsdCA9IG1lZGlhRWxlbWVu
dCgpKQorICAgICAgICBtZWRpYUVsdC0+c2V0TXV0ZWQoIW1lZGlhRWx0LT5tdXRlZCgpKTsKICNl
bmRpZgogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0Lmgg
Yi9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmgKaW5kZXggM2E0MjcxOS4uZTYzNTAz
MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5oCisrKyBiL1dl
YkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaApAQCAtMzIsNiArMzIsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGcmFtZTsKKyNpZiBFTkFCTEUo
VklERU8pCitjbGFzcyBIVE1MTWVkaWFFbGVtZW50OworI2VuZGlmCiBjbGFzcyBJbWFnZTsKIGNs
YXNzIEludFJlY3Q7CiBjbGFzcyBLVVJMOwpAQCAtODAsNiArODMsMTcgQEAgcHVibGljOgogICAg
IFN0cmluZyB0ZXh0Q29udGVudCgpIGNvbnN0OwogICAgIGJvb2wgaXNMaXZlTGluaygpIGNvbnN0
OwogICAgIGJvb2wgaXNDb250ZW50RWRpdGFibGUoKSBjb25zdDsKKyAgICB2b2lkIHRvZ2dsZU1l
ZGlhQ29udHJvbHNEaXNwbGF5KCkgY29uc3Q7CisgICAgdm9pZCB0b2dnbGVNZWRpYUxvb3BQbGF5
YmFjaygpIGNvbnN0OworICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuRm9yVmlkZW8oKSBjb25zdDsK
KyAgICBib29sIG1lZGlhQ29udHJvbHNFbmFibGVkKCkgY29uc3Q7CisgICAgYm9vbCBtZWRpYUxv
b3BFbmFibGVkKCkgY29uc3Q7CisgICAgYm9vbCBtZWRpYVBsYXlpbmcoKSBjb25zdDsKKyAgICBi
b29sIG1lZGlhU3VwcG9ydHNGdWxsc2NyZWVuKCkgY29uc3Q7CisgICAgdm9pZCB0b2dnbGVNZWRp
YVBsYXlTdGF0ZSgpIGNvbnN0OworICAgIGJvb2wgbWVkaWFIYXNBdWRpbygpIGNvbnN0OworICAg
IGJvb2wgbWVkaWFNdXRlZCgpIGNvbnN0OworICAgIHZvaWQgdG9nZ2xlTWVkaWFNdXRlU3RhdGUo
KSBjb25zdDsKIAogICAgIC8vIFJlY3QtYmFzZWQgaGl0IHRlc3QgcmVsYXRlZCBtZXRob2RzLgog
ICAgIGJvb2wgaXNSZWN0QmFzZWRUZXN0KCkgY29uc3QgeyByZXR1cm4gbV9pc1JlY3RCYXNlZDsg
fQpAQCAtOTYsNiArMTEwLDEwIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKIAorI2lmIEVOQUJMRShW
SURFTykKKyAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQoKSBjb25zdDsKKyNlbmRp
ZgorCiAgICAgUmVmUHRyPE5vZGU+IG1faW5uZXJOb2RlOwogICAgIFJlZlB0cjxOb2RlPiBtX2lu
bmVyTm9uU2hhcmVkTm9kZTsKICAgICBJbnRQb2ludCBtX3BvaW50OwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
NWY3MzNkOS4uMjhkOWFjNyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDkt
MTcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIGVuaGFuY2VkIGNvbnRl
eHQgbWVudSBmb3IgbWVkaWEgZWxlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ1MDIxCisKKyAgICAgICAgTmV3IGxvY2FsaXplZCBzdHJpbmdz
IGZvciB0aGUgbWVkaWEgZWxlbWVudCBjb250ZXh0LW1lbnUuCisKKyAgICAgICAgKiBzcmMvTG9j
YWxpemVkU3RyaW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdP
cGVuTWVkaWFJbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1U
YWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ01lZGlhUGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVk
aWFNdXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhVW5NdXRl
KToKKwogMjAxMC0wOS0xNiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjY3NjkzLgpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2NhbGl6ZWRTdHJpbmdzLmNwcCBiL1dlYktpdC9jaHJv
bWl1bS9zcmMvTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggNzRmZjY5OS4uYzkzODk2OSAxMDA2
NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAorKysgYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL0xvY2FsaXplZFN0cmluZ3MuY3BwCkBAIC0yNjUsNiArMjY1LDE1
IEBAIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgpIHsgcmV0dXJuIFN0
cmluZygpOyB9CiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwoYm9v
bCBzaG93KSB7IHJldHVybiBTdHJpbmcoKTsgfQogU3RyaW5nIG1lZGlhRWxlbWVudExpdmVCcm9h
ZGNhc3RTdGF0ZVRleHQoKSB7IHJldHVybiBTdHJpbmcoKTsgfQogU3RyaW5nIG1lZGlhRWxlbWVu
dExvYWRpbmdTdGF0ZVRleHQoKSB7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KCkgeyByZXR1cm4gU3RyaW5nKCk7IH0KK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQoKSB7IHJldHVy
biBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJv
bHMoKSB7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2ds
ZU1lZGlhTG9vcCgpIHsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKSB7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpIHsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpIHsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkgeyByZXR1cm4gU3RyaW5nKCk7IH0KK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVVuTXV0ZSgpIHsgcmV0dXJuIFN0cmluZygpOyB9
CiAKIFN0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmlu
ZyYgLypuYW1lKi8pCiB7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCmluZGV4IDA0ZDcxZWMuLjMwOTVkYmMgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTAtMDktMTcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIGVu
aGFuY2VkIGNvbnRleHQgbWVudSBmb3IgbWVkaWEgZWxlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MDIxCisKKyAgICAgICAgTmV3IGxvY2Fs
aXplZCBzdHJpbmdzIGZvciB0aGUgbWVkaWEgZWxlbWVudCBjb250ZXh0LW1lbnUuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW06CisgICAgICAgIChXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KToK
KyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnQ29weU1l
ZGlhTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29u
dGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAgICAgIChXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCk6CisgICAgICAg
IChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxs
c2NyZWVuKToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVt
VGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1l
bnVJdGVtVGFnTWVkaWFQYXVzZSk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNv
bnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhVW5NdXRlKToKKwogMjAxMC0wOS0xNyAgSmlhIFB1
ICA8anB1QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpk
aWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaCBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgK
aW5kZXggNTNmMzlmOC4uNjgwZjlhYiAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC0xMTMsNiArMTEzLDE1IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplKCk7
CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGFuZ2VCYWNrKGNv
bnN0IFdURjo6U3RyaW5nJiByZXBsYWNlZFN0cmluZyk7CiAgICAgdmlydHVhbCBXVEY6OlN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgpOworICAgIHZpcnR1YWwgV1RGOjpT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3coKTsKKyAgICB2aXJ0
dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2Fy
ZCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVk
aWFDb250cm9scygpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
VG9nZ2xlTWVkaWFMb29wKCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ01lZGlhVW5NdXRlKCk7CiAjZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVO
VVMpCiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBzZWFyY2hNZW51Tm9SZWNlbnRTZWFyY2hlc1Rl
eHQoKTsKICAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHNlYXJjaE1lbnVSZWNlbnRTZWFyY2hlc1Rl
eHQoKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLm1tIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMubW0KaW5kZXggMjkwMGNjZi4uY2JkYzc3NiAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KKysrIGIvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KQEAgLTE1Niw2ICsxNTYsNTEg
QEAgU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUlt
YWdlVG9DbGlwYm9hcmQoKQogICAgIHJldHVybiBVSV9TVFJJTkcoIkNvcHkgSW1hZ2UiLCAiQ29w
eSBJbWFnZSBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdygpCit7CisgICAg
cmV0dXJuIFVJX1NUUklORygiT3BlbiBNZWRpYSBpbiBOZXcgV2luZG93IiwgIk9wZW4gTWVkaWEg
aW4gTmV3IFdpbmRvdyIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250
ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBV
SV9TVFJJTkcoIkNvcHkgTWVkaWEgTGluayIsICJDb3B5IE1lZGlhIExpbmsgTG9jYXRpb24iKTsK
K30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnVG9n
Z2xlTWVkaWFDb250cm9scygpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiVG9nZ2xlIENvbnRy
b2xzIiwgIlRvZ2dsZSBNZWRpYSBDb250cm9scyIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKQoreworICAgIHJl
dHVybiBVSV9TVFJJTkcoIlRvZ2dsZSBMb29wIiwgIlRvZ2dsZSBNZWRpYSBMb29wIFBsYXliYWNr
Iik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRh
Z0VudGVyVmlkZW9GdWxsc2NyZWVuKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJFbnRlciBG
dWxsc2NyZWVuIiwgIlN3aXRjaCBWaWRlbyB0byBGdWxsc2NyZWVuIik7Cit9CisKK1N0cmluZyBX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpCit7Cisg
ICAgcmV0dXJuIFVJX1NUUklORygiUGxheSIsICJQbGF5Iik7Cit9CisKK1N0cmluZyBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKQoreworICAgIHJl
dHVybiBVSV9TVFJJTkcoIlBhdXNlIiwgIlBhdXNlIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpCit7CisgICAgcmV0dXJu
IFVJX1NUUklORygiTXV0ZSIsICJNdXRlIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhVW5NdXRlKCkKK3sKKyAgICByZXR1cm4gVUlf
U1RSSU5HKCJVbk11dGUiLCAiVW5NdXRlIik7Cit9CisKIFN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCkKIHsKICAgICBy
ZXR1cm4gVUlfU1RSSU5HKCJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBGcmFtZSBp
biBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7CmRpZmYgLS1naXQgYS9XZWJLaXQvd2lu
L0NoYW5nZUxvZyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDQxYjZmYTkuLjQwNjFlNWMg
MTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC93aW4vQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDktMTcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9y
bWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFtHVEtdIGVuaGFuY2VkIGNvbnRleHQgbWVudSBmb3IgbWVkaWEgZWxlbWVudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MDIxCisK
KyAgICAgICAgTmV3IGxvY2FsaXplZCBzdHJpbmdzIGZvciB0aGUgbWVkaWEgZWxlbWVudCBjb250
ZXh0LW1lbnUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1U
YWdPcGVuTWVkaWFJbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6
OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCk6CisgICAgICAgIChX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJv
bHMpOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdU
b2dnbGVNZWRpYUxvb3ApOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0
TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSk6CisgICAgICAgIChXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAgICAgICAo
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUpOgorICAg
ICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVVuTXV0
ZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmg6CisK
IDIwMTAtMDktMTYgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggMDBhMmVhYi4uOWZhZGU4NSAxMDA2
NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
Y3BwCisrKyBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcApAQCAtMTYzLDYgKzE2Myw1MSBAQCBTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpj
b250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpCiAgICAgcmV0dXJuIFVJX1NU
UklORygiQ29weSBJbWFnZSIsICJDb3B5IEltYWdlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAK
K1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRp
YUluTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJPcGVuIE1lZGlhIGluIE5l
dyBXaW5kb3ciLCAiT3BlbiBNZWRpYSBpbiBOZXcgV2luZG93Iik7Cit9CisKK1N0cmluZyBXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBi
b2FyZCgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiQ29weSBNZWRpYSBMaW5rIiwgIkNvcHkg
TWVkaWEgTGluayBMb2NhdGlvbiIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVz
Ojpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKK3sKKyAgICByZXR1cm4g
VUlfU1RSSU5HKCJUb2dnbGUgQ29udHJvbHMiLCAiVG9nZ2xlIE1lZGlhIENvbnRyb2xzIik7Cit9
CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2ds
ZU1lZGlhTG9vcCgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiVG9nZ2xlIExvb3AiLCAiVG9n
Z2xlIE1lZGlhIExvb3AgUGxheWJhY2siKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKQoreworICAgIHJl
dHVybiBVSV9TVFJJTkcoIkVudGVyIEZ1bGxzY3JlZW4iLCAiU3dpdGNoIFZpZGVvIHRvIEZ1bGxz
Y3JlZW4iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJ
dGVtVGFnTWVkaWFQbGF5KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJQbGF5IiwgIlBsYXki
KTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFn
TWVkaWFQYXVzZSgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiUGF1c2UiLCAiUGF1c2UiKTsK
K30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVk
aWFNdXRlKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJNdXRlIiwgIk11dGUiKTsKK30KKwor
U3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11
dGUoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIlVuTXV0ZSIsICJVbk11dGUiKTsKK30KKwog
U3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1l
SW5OZXdXaW5kb3coKQogewogICAgIHJldHVybiBVSV9TVFJJTkcoIk9wZW4gRnJhbWUgaW4gTmV3
IFdpbmRvdyIsICJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsK
ZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVn
aWVzLmggYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5o
CmluZGV4IGMzY2ZiYjQuLjAxNWNmMGQgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysrIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaApAQCAtOTIsNiArOTIsMTUgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCk7
CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdCgp
OwogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1l
bnQoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRp
YUluTmV3V2luZG93KCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKTsKKyAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpOworICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKTsKKyAg
ICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpOworICAg
IHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpOworICAg
IHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCk7CisgICAg
dmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVVuTXV0ZSgpOwogI2Vu
ZGlmIC8vIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgc2Vh
cmNoTWVudU5vUmVjZW50U2VhcmNoZXNUZXh0KCk7CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBz
ZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KCk7CmRpZmYgLS1naXQgYS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGJjMDk0MTkuLjk1YThkNzIgMTAwNjQ0Ci0t
LSBhL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjQgQEAKKzIwMTAtMDktMTcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtd
IGVuaGFuY2VkIGNvbnRleHQgbWVudSBmb3IgbWVkaWEgZWxlbWVudHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MDIxCisKKyAgICAgICAgTmV3IGxv
Y2FsaXplZCBzdHJpbmdzIGZvciB0aGUgbWVkaWEgZWxlbWVudCBjb250ZXh0LW1lbnUuCisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJ
dGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVt
VGFnVG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVv
RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29u
dGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRh
Z01lZGlhVW5NdXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5oOgorCiAyMDEwLTA5LTE2ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpkaWZmIC0tZ2l0
IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5jcHAgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcAppbmRleCBhMTk4NmFmLi4zNzAxN2Q5IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cApAQCAtMTgwLDYgKzE4MCw1MSBAQCBTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250
ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpCiAgICAgcmV0dXJuIFVJX1NUUklO
RygiQ29weSBJbWFnZSIsICJDb3B5IEltYWdlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKK1N0
cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUlu
TmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJPcGVuIE1lZGlhIGluIE5ldyBX
aW5kb3ciLCAiT3BlbiBNZWRpYSBpbiBOZXcgV2luZG93Iik7Cit9CisKK1N0cmluZyBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2Fy
ZCgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiQ29weSBNZWRpYSBMaW5rIiwgIkNvcHkgTWVk
aWEgTGluayBMb2NhdGlvbiIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpj
b250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKK3sKKyAgICByZXR1cm4gVUlf
U1RSSU5HKCJUb2dnbGUgQ29udHJvbHMiLCAiVG9nZ2xlIE1lZGlhIENvbnRyb2xzIik7Cit9CisK
K1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1l
ZGlhTG9vcCgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiVG9nZ2xlIExvb3AiLCAiVG9nZ2xl
IE1lZGlhIExvb3AgUGxheWJhY2siKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKQoreworICAgIHJldHVy
biBVSV9TVFJJTkcoIkVudGVyIEZ1bGxzY3JlZW4iLCAiU3dpdGNoIFZpZGVvIHRvIEZ1bGxzY3Jl
ZW4iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVt
VGFnTWVkaWFQbGF5KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJQbGF5IiwgIlBsYXkiKTsK
K30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVk
aWFQYXVzZSgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiUGF1c2UiLCAiUGF1c2UiKTsKK30K
KworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFN
dXRlKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJNdXRlIiwgIk11dGUiKTsKK30KKworU3Ry
aW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11dGUo
KQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIlVuTXV0ZSIsICJVbk11dGUiKTsKK30KKwogU3Ry
aW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5O
ZXdXaW5kb3coKQogewogICAgIHJldHVybiBVSV9TVFJJTkcoIk9wZW4gRnJhbWUgaW4gTmV3IFdp
bmRvdyIsICJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKZGlm
ZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuaCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuaAppbmRleCA2NDJiOWZjLi45OThiMjczIDEwMDY0NAotLS0gYS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysrIGIv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5o
CkBAIC0xMjcsNiArMTI3LDE1IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdDaGFuZ2VCYWNrKGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNlZFN0
cmluZyk7CiAjZW5kaWYKICAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0luc3BlY3RFbGVtZW50KCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdygpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKCk7CisgICAgdmlydHVhbCBX
VEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCk7CisgICAg
dmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKTsK
KyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxs
c2NyZWVuKCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRp
YVBsYXkoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlh
UGF1c2UoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlh
TXV0ZSgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFV
bk11dGUoKTsKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICB2aXJ0dWFsIFdU
Rjo6U3RyaW5nIHNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpOwogICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgc2VhcmNoTWVudVJlY2VudFNlYXJjaGVzVGV4dCgpOwpkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDU1MDI3
ZDIuLmU1YjhhMzEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJL
aXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wOS0xNSAgUGhpbGlwcGUg
Tm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gZW5oYW5jZWQgY29udGV4dCBtZW51IGZvciBt
ZWRpYSBlbGVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDUwMjEKKworICAgICAgICBFdmVudFNlbmRlcjo6Y29udGV4dENsaWNrKCkgbm93IHJl
dHVybnMgYW4gYXJyYXkgb2YganMKKyAgICAgICAgb2JqZWN0cy4gRWFjaCBvYmplY3QgaGFzIGEg
dGl0bGUgcHJvcGVydHkgYW5kIGEgY2xpY2soKSBtZXRob2QuCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9ndGsvRXZlbnRTZW5kZXIuY3BwOgorICAgICAgICAoZ2V0TWVudUl0ZW1UaXRsZUNh
bGxiYWNrKToKKyAgICAgICAgKHNldE1lbnVJdGVtVGl0bGVDYWxsYmFjayk6CisgICAgICAgICht
ZW51SXRlbUNsaWNrQ2FsbGJhY2spOgorICAgICAgICAoZ2V0TWVudUl0ZW1DbGFzcyk6CisgICAg
ICAgIChjb250ZXh0Q2xpY2tDYWxsYmFjayk6CisKIDIwMTAtMDktMTYgIEtpbnVrbyBZYXN1ZGEg
IDxraW51a29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9qYW4gVmFmYWku
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRXZlbnRTZW5kZXIu
Y3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0V2ZW50U2VuZGVyLmNwcAppbmRl
eCAwZTJlNDY5Li5mZTdlOTNhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9ndGsvRXZlbnRTZW5kZXIuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0
ay9FdmVudFNlbmRlci5jcHAKQEAgLTE0Nyw2ICsxNDcsNTggQEAgYm9vbCBwcmVwYXJlTW91c2VC
dXR0b25FdmVudChHZGtFdmVudCogZXZlbnQsIGludCBldmVudFNlbmRlckJ1dHRvbk51bWJlciwg
Z3VpbnQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIEpTVmFsdWVSZWYgZ2V0TWVudUl0
ZW1UaXRsZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBvYmplY3Qs
IEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAg
IEd0a1dpZGdldCogd2lkZ2V0ID0gR1RLX1dJREdFVChKU09iamVjdEdldFByaXZhdGUob2JqZWN0
KSk7CisgICAgQ1N0cmluZyBsYWJlbDsKKyAgICBpZiAoR1RLX0lTX1NFUEFSQVRPUl9NRU5VX0lU
RU0od2lkZ2V0KSkKKyAgICAgICAgbGFiZWwgPSAiPHNlcGFyYXRvcj4iOworICAgIGVsc2UKKyAg
ICAgICAgbGFiZWwgPSBndGtfbWVudV9pdGVtX2dldF9sYWJlbChHVEtfTUVOVV9JVEVNKHdpZGdl
dCkpOworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIEpTU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKGxhYmVsLmRhdGEoKSkpOworfQorCitzdGF0aWMgYm9vbCBzZXRN
ZW51SXRlbVRpdGxlQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIG9i
amVjdCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1ZhbHVl
UmVmKiBleGNlcHRpb24pCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBKU1ZhbHVl
UmVmIG1lbnVJdGVtQ2xpY2tDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RS
ZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50
LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7
CisgICAgR3RrTWVudUl0ZW0qIGl0ZW0gPSBHVEtfTUVOVV9JVEVNKEpTT2JqZWN0R2V0UHJpdmF0
ZSh0aGlzT2JqZWN0KSk7CisgICAgZ3RrX21lbnVfaXRlbV9hY3RpdmF0ZShpdGVtKTsKKyAgICBy
ZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Cit9CisKK3N0YXRpYyBKU1N0YXRp
Y0Z1bmN0aW9uIHN0YXRpY01lbnVJdGVtRnVuY3Rpb25zW10gPSB7CisgICAgeyAiY2xpY2siLCBt
ZW51SXRlbUNsaWNrQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICB7IDAsIDAsIDAgfQorfTsKKworc3Rh
dGljIEpTU3RhdGljVmFsdWUgc3RhdGljTWVudUl0ZW1WYWx1ZXNbXSA9IHsKKyAgICB7ICJ0aXRs
ZSIsIGdldE1lbnVJdGVtVGl0bGVDYWxsYmFjaywgc2V0TWVudUl0ZW1UaXRsZUNhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZU5vbmUgfSwKKyAgICB7IDAsIDAsIDAsIDAgfQorfTsKKworc3Rh
dGljIEpTQ2xhc3NSZWYgZ2V0TWVudUl0ZW1DbGFzcygpCit7CisgICAgc3RhdGljIEpTQ2xhc3NS
ZWYgbWVudUl0ZW1DbGFzcyA9IDA7CisKKyAgICBpZiAoIW1lbnVJdGVtQ2xhc3MpIHsKKyAgICAg
ICAgSlNDbGFzc0RlZmluaXRpb24gY2xhc3NEZWZpbml0aW9uID0geworICAgICAgICAgICAgICAg
IDAsIDAsIDAsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwg
MCwgMCwgMCwgMH07CisgICAgICAgIGNsYXNzRGVmaW5pdGlvbi5zdGF0aWNGdW5jdGlvbnMgPSBz
dGF0aWNNZW51SXRlbUZ1bmN0aW9uczsKKyAgICAgICAgY2xhc3NEZWZpbml0aW9uLnN0YXRpY1Zh
bHVlcyA9IHN0YXRpY01lbnVJdGVtVmFsdWVzOworCisgICAgICAgIG1lbnVJdGVtQ2xhc3MgPSBK
U0NsYXNzQ3JlYXRlKCZjbGFzc0RlZmluaXRpb24pOworICAgIH0KKworICAgIHJldHVybiBtZW51
SXRlbUNsYXNzOworfQorCisKIHN0YXRpYyBKU1ZhbHVlUmVmIGNvbnRleHRDbGlja0NhbGxiYWNr
KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYg
dGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1l
bnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICBHZGtFdmVudCogcHJlc3NFdmVu
dCA9IGdka19ldmVudF9uZXcoR0RLX0JVVFRPTl9QUkVTUyk7CkBAIC0xNjUsMTMgKzIxNyw3IEBA
IHN0YXRpYyBKU1ZhbHVlUmVmIGNvbnRleHRDbGlja0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvCiAgICAgICAgIEpTVmFsdWVSZWYgYXJyYXlWYWx1ZXNb
Z19saXN0X2xlbmd0aChpdGVtcyldOwogICAgICAgICBpbnQgaW5kZXggPSAwOwogICAgICAgICBm
b3IgKEdMaXN0KiBpdGVtID0gZ19saXN0X2ZpcnN0KGl0ZW1zKTsgaXRlbTsgaXRlbSA9IGdfbGlz
dF9uZXh0KGl0ZW0pKSB7Ci0gICAgICAgICAgICBDU3RyaW5nIGxhYmVsOwotICAgICAgICAgICAg
aWYgKEdUS19JU19TRVBBUkFUT1JfTUVOVV9JVEVNKGl0ZW0tPmRhdGEpKQotICAgICAgICAgICAg
ICAgIGxhYmVsID0gIjxzZXBhcmF0b3I+IjsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICBsYWJlbCA9IGd0a19tZW51X2l0ZW1fZ2V0X2xhYmVsKEdUS19NRU5VX0lURU0oaXRlbS0+
ZGF0YSkpOwotCi0gICAgICAgICAgICBhcnJheVZhbHVlc1tpbmRleF0gPSBKU1ZhbHVlTWFrZVN0
cmluZyhjb250ZXh0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhsYWJlbC5kYXRhKCkp
KTsKKyAgICAgICAgICAgIGFycmF5VmFsdWVzW2luZGV4XSA9IEpTT2JqZWN0TWFrZShjb250ZXh0
LCBnZXRNZW51SXRlbUNsYXNzKCksIGl0ZW0tPmRhdGEpOwogICAgICAgICAgICAgaW5kZXgrKzsK
ICAgICAgICAgfQogICAgICAgICBpZiAoaW5kZXgpCi0tIAoxLjcuMQ==
</data>
<flag name="review"
          id="57320"
          type_id="1"
          status="-"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67917</attachid>
            <date>2010-09-17 10:44:58 -0700</date>
            <delta_ts>2010-09-20 09:33:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch_4.txt</filename>
            <type>text/plain</type>
            <size>63437</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NzcyMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTE5IEBACisyMDEwLTA5LTE3ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRA
aWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBbR1RLXSBlbmhhbmNlZCBjb250ZXh0IG1lbnUgZm9yIG1lZGlhIGVsZW1lbnRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTAyMQorCisgICAg
ICAgIE5ldyBpdGVtcyBpbiB0aGUgbWVkaWEgRWxlbWVudCBjb250ZXh0IG1lbnU6CisgICAgICAg
IC0gcGxheS9wYXVzZQorICAgICAgICAtIG11dGUvdW5tdXRlCisgICAgICAgIC0gY29udHJvbHMg
ZGlzcGxheSBjb250cm9sCisgICAgICAgIC0gc3dpdGNoIHRvIGZ1bGxzY3JlZW4gKGZvciB2aWRl
byBvbmx5KQorICAgICAgICAtIGxvb3AgcGxheWJhY2sgY29udHJvbAorICAgICAgICAtIGNvcHkg
bWVkaWEgdXJsIHRvIGNsaXBib2FyZAorICAgICAgICAtIG9wZW4gaW4gbmV3IHdpbmRvdworCisg
ICAgICAgIFRlc3Q6IG1lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwKKworICAgICAgICAq
IHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
eHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQpOgorICAgICAgICAqIHBs
YXRmb3JtL0NvbnRleHRNZW51LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Ojpw
b3B1bGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudTo6Y2hlY2tPckVuYWJsZUlm
TmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9Mb2NhbGl6YXRpb25TdHJhdGVneS5oOgorICAgICAgICAqIHBsYXRmb3JtL0xv
Y2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFn
T3Blbk1lZGlhSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ01lZGlhUGxheSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdNZWRpYVBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01l
ZGlhTXV0ZSk6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2FuZHJvaWQvTG9jYWxpemVkU3RyaW5nc0FuZHJvaWQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3cpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJk
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJv
bHMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29w
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2Ny
ZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKToKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSk6CisgICAgICAgICogcGxhdGZv
cm0vYnJldy9Mb2NhbGl6ZWRTdHJpbmdzQnJldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAgICAgIChX
ZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3ApOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnTWVkaWFNdXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvTG9jYWxpemVk
U3RyaW5nc0VmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVu
TWVkaWFJbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdD
b3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVu
dUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z01lZGlhUGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFN
dXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvQ29udGV4dE1lbnVJdGVtR3RrLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Omd0a1N0b2NrSURGcm9tQ29udGV4dE1lbnVBY3Rpb24pOgorICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbik6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUpOgorICAgICAgICAqIHBsYXRmb3JtL2hhaWt1
L0xvY2FsaXplZFN0cmluZ3NIYWlrdS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVu
dUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnTWVkaWFNdXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Mb2NhbGl6YXRpb25zLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2lu
ZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtU
b0NsaXBib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVN
ZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2ds
ZU1lZGlhTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZp
ZGVvRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRp
YVBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3ApOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKToKKyAgICAgICAgKiByZW5kZXJpbmcvSGl0VGVz
dFJlc3VsdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjphYnNvbHV0ZU1l
ZGlhVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQ6Om1lZGlhU3VwcG9ydHNG
dWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQ6Om1lZGlhRWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0Ojp0b2dnbGVNZWRpYUNvbnRyb2xz
RGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0Ojp0b2dnbGVNZWRpYUxv
b3BQbGF5YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjplbnRlckZ1bGxz
Y3JlZW5Gb3JWaWRlbyk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjptZWRpYUNv
bnRyb2xzRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjptZWRpYUxv
b3BFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQ6Om1lZGlhUGxheWlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0Ojp0b2dnbGVNZWRpYVBsYXlTdGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjptZWRpYUhhc0F1ZGlvKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQ6Om1lZGlhTXV0ZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6SGl0VGVzdFJlc3VsdDo6dG9nZ2xlTWVkaWFNdXRlU3RhdGUpOgorICAgICAgICAqIHJl
bmRlcmluZy9IaXRUZXN0UmVzdWx0Lmg6CisKIDIwMTAtMDktMTcgIEpvaG5ueSBEaW5nICA8am5k
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpJbmRleDog
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDY3NzAz
KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTIwNjIxLDYgKzIwNjIxLDcgQEAKIAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQli
dWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI4NDMwODkwMkIxMTAwOEE5RUZDIC8qIEJ1aWxk
IGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV2ViQ29yZSIgKi87CiAJCQljb21w
YXRpYmlsaXR5VmVyc2lvbiA9ICJYY29kZSAyLjQiOworCQkJZGV2ZWxvcG1lbnRSZWdpb24gPSBF
bmdsaXNoOwogCQkJaGFzU2Nhbm5lZEZvckVuY29kaW5ncyA9IDE7CiAJCQlrbm93blJlZ2lvbnMg
PSAoCiAJCQkJRW5nbGlzaCwKSW5kZXg6IFdlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xs
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIu
Y3BwCShyZXZpc2lvbiA2NzcwMykKKysrIFdlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xs
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgSWdhbGlhIFMuTAogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0xODYsNiArMTg3LDI3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVu
dUkKICAgICAgICAgLy8gRm9yIG5vdywgY2FsbCBpbnRvIHRoZSBjbGllbnQuIFRoaXMgaXMgdGVt
cG9yYXJ5IQogICAgICAgICBmcmFtZS0+ZWRpdG9yKCktPmNvcHlJbWFnZShyZXN1bHQpOwogICAg
ICAgICBicmVhazsKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2lu
ZG93OgorICAgICAgICBvcGVuTmV3V2luZG93KHJlc3VsdC5hYnNvbHV0ZU1lZGlhVVJMKCksIGZy
YW1lKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVk
aWFMaW5rVG9DbGlwYm9hcmQ6CisgICAgICAgIGZyYW1lLT5lZGl0b3IoKS0+Y29weVVSTChyZXN1
bHQuYWJzb2x1dGVNZWRpYVVSTCgpLCByZXN1bHQudGV4dENvbnRlbnQoKSk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9sczoKKyAg
ICAgICAgcmVzdWx0LnRvZ2dsZU1lZGlhQ29udHJvbHNEaXNwbGF5KCk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wOgorICAgICAgICBy
ZXN1bHQudG9nZ2xlTWVkaWFMb29wUGxheWJhY2soKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBDb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbjoKKyAgICAgICAgcmVzdWx0
LmVudGVyRnVsbHNjcmVlbkZvclZpZGVvKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29u
dGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5UGF1c2U6CisgICAgICAgIHJlc3VsdC50b2dnbGVNZWRp
YVBsYXlTdGF0ZSgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRh
Z01lZGlhTXV0ZToKKyAgICAgICAgcmVzdWx0LnRvZ2dsZU1lZGlhTXV0ZVN0YXRlKCk7CisgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5k
b3c6IHsKICAgICAgICAgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciA9IGZyYW1lLT5sb2FkZXIoKS0+
ZG9jdW1lbnRMb2FkZXIoKTsKICAgICAgICAgaWYgKCFsb2FkZXItPnVucmVhY2hhYmxlVVJMKCku
aXNFbXB0eSgpKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5jcHAJKHJldmlzaW9uIDY3NzAz
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBDaHJpc3RpYW4gRHl3
YW4gPGNocmlzdGlhbkBpbWVuZGlvLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEg
Uy5MCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4Miw2ICsyODMsMjAgQEAg
dm9pZCBDb250ZXh0TWVudTo6cG9wdWxhdGUoKQogICAgICAgICBjb250ZXh0TWVudUl0ZW1UYWdE
b3dubG9hZEltYWdlVG9EaXNrKCkpOwogICAgIENvbnRleHRNZW51SXRlbSBDb3B5SW1hZ2VJdGVt
KEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkLCAKICAg
ICAgICAgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKSk7CisgICAgQ29u
dGV4dE1lbnVJdGVtIE9wZW5NZWRpYUluTmV3V2luZG93SXRlbShBY3Rpb25UeXBlLCBDb250ZXh0
TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdywgCisgICAgICAgIGNvbnRleHRNZW51SXRl
bVRhZ09wZW5NZWRpYUluTmV3V2luZG93KCkpOworICAgIENvbnRleHRNZW51SXRlbSBDb3B5TWVk
aWFMaW5rSXRlbShBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9D
bGlwYm9hcmQsIAorICAgICAgICBjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlw
Ym9hcmQoKSk7CisgICAgQ29udGV4dE1lbnVJdGVtIE1lZGlhUGxheVBhdXNlKEFjdGlvblR5cGUs
IENvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheVBhdXNlLCAKKyAgICAgICAgY29udGV4dE1lbnVJ
dGVtVGFnTWVkaWFQbGF5KCkpOworICAgIENvbnRleHRNZW51SXRlbSBNZWRpYU11dGUoQWN0aW9u
VHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlLCAKKyAgICAgICAgY29udGV4dE1lbnVJ
dGVtVGFnTWVkaWFNdXRlKCkpOworICAgIENvbnRleHRNZW51SXRlbSBUb2dnbGVNZWRpYUNvbnRy
b2xzKENoZWNrYWJsZUFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29u
dHJvbHMsIAorICAgICAgICBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkp
OworICAgIENvbnRleHRNZW51SXRlbSBUb2dnbGVNZWRpYUxvb3AoQ2hlY2thYmxlQWN0aW9uVHlw
ZSwgQ29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wLCAKKyAgICAgICAgY29udGV4dE1l
bnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkpOworICAgIENvbnRleHRNZW51SXRlbSBFbnRlclZp
ZGVvRnVsbHNjcmVlbihBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVs
bHNjcmVlbiwgCisgICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVu
KCkpOwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBDb250ZXh0TWVudUl0ZW0gU2VhcmNoU3BvdGxp
Z2h0SXRlbShBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hJblNwb3RsaWdodCwg
CiAgICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaEluU3BvdGxpZ2h0KCkpOwpAQCAtMzQ5
LDYgKzM2NCwyMiBAQCB2b2lkIENvbnRleHRNZW51Ojpwb3B1bGF0ZSgpCiAgICAgICAgICAgICAg
ICAgYXBwZW5kSXRlbShDb3B5SW1hZ2VJdGVtKTsKICAgICAgICAgfQogCisgICAgICAgIEtVUkwg
bWVkaWFVUkwgPSByZXN1bHQuYWJzb2x1dGVNZWRpYVVSTCgpOworICAgICAgICBpZiAoIW1lZGlh
VVJMLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgaWYgKCFsaW5rVVJMLmlzRW1wdHkoKSB8fCAh
aW1hZ2VVUkwuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGFwcGVuZEl0ZW0oKnNlcGFyYXRv
ckl0ZW0oKSk7CisKKyAgICAgICAgICAgIGFwcGVuZEl0ZW0oTWVkaWFQbGF5UGF1c2UpOworICAg
ICAgICAgICAgYXBwZW5kSXRlbShNZWRpYU11dGUpOworICAgICAgICAgICAgYXBwZW5kSXRlbShU
b2dnbGVNZWRpYUNvbnRyb2xzKTsKKyAgICAgICAgICAgIGFwcGVuZEl0ZW0oVG9nZ2xlTWVkaWFM
b29wKTsKKyAgICAgICAgICAgIGFwcGVuZEl0ZW0oRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOworCisg
ICAgICAgICAgICBhcHBlbmRJdGVtKCpzZXBhcmF0b3JJdGVtKCkpOworICAgICAgICAgICAgYXBw
ZW5kSXRlbShDb3B5TWVkaWFMaW5rSXRlbSk7CisgICAgICAgICAgICBhcHBlbmRJdGVtKE9wZW5N
ZWRpYUluTmV3V2luZG93SXRlbSk7CisgICAgICAgIH0KKwogICAgICAgICBpZiAoaW1hZ2VVUkwu
aXNFbXB0eSgpICYmIGxpbmtVUkwuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBpZiAocmVzdWx0
LmlzU2VsZWN0ZWQoKSkgewogICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rpb25Db250YWluc1Bv
c3NpYmxlV29yZChmcmFtZSkpIHsKQEAgLTM3NSwxMiArNDA2LDYgQEAgdm9pZCBDb250ZXh0TWVu
dTo6cG9wdWxhdGUoKQogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgICAgICAgICAgICAgaWYg
KCEoZnJhbWUtPnBhZ2UoKSAmJiBmcmFtZS0+cGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkt
Pmhhc0luc3BlY3RvckZyb250ZW5kQ2xpZW50KCkpKSB7CiAjZW5kaWYKLSNpZiBQTEFURk9STShH
VEspCi0gICAgICAgICAgICAgICAgYXBwZW5kSXRlbShCYWNrSXRlbSk7Ci0gICAgICAgICAgICAg
ICAgYXBwZW5kSXRlbShGb3J3YXJkSXRlbSk7Ci0gICAgICAgICAgICAgICAgYXBwZW5kSXRlbShT
dG9wSXRlbSk7Ci0gICAgICAgICAgICAgICAgYXBwZW5kSXRlbShSZWxvYWRJdGVtKTsKLSNlbHNl
CiAgICAgICAgICAgICAgICAgaWYgKGZyYW1lLT5wYWdlKCkgJiYgZnJhbWUtPnBhZ2UoKS0+Y2Fu
R29CYWNrT3JGb3J3YXJkKC0xKSkKICAgICAgICAgICAgICAgICAgICAgYXBwZW5kSXRlbShCYWNr
SXRlbSk7CiAKQEAgLTM5Myw3ICs0MTgsNiBAQCB2b2lkIENvbnRleHRNZW51Ojpwb3B1bGF0ZSgp
CiAgICAgICAgICAgICAgICAgICAgIGFwcGVuZEl0ZW0oU3RvcEl0ZW0pOwogICAgICAgICAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgYXBwZW5kSXRlbShSZWxvYWRJdGVtKTsKLSNl
bmRpZgogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgICAgICAgICAgICAgfQogI2VuZGlmCkBA
IC04MjMsNiArODQ3LDI3IEBAIHZvaWQgQ29udGV4dE1lbnU6OmNoZWNrT3JFbmFibGVJZk5lZWRl
ZCgKICAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1MYXN0Q3VzdG9tVGFnOgogICAgICAgICBj
YXNlIENvbnRleHRNZW51SXRlbUJhc2VBcHBsaWNhdGlvblRhZzoKICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93Ogor
ICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZDoK
KyAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXlQYXVzZToKKyAgICAgICAg
ICAgIGlmIChtX2hpdFRlc3RSZXN1bHQubWVkaWFQbGF5aW5nKCkpCisgICAgICAgICAgICAgICAg
aXRlbS5zZXRUaXRsZShjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIGl0ZW0uc2V0VGl0bGUoY29udGV4dE1lbnVJdGVtVGFn
TWVkaWFQbGF5KCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ29udGV4dE1l
bnVJdGVtVGFnTWVkaWFNdXRlOgorICAgICAgICAgICAgc2hvdWxkRW5hYmxlID0gbV9oaXRUZXN0
UmVzdWx0Lm1lZGlhSGFzQXVkaW8oKTsKKyAgICAgICAgICAgIHNob3VsZENoZWNrID0gc2hvdWxk
RW5hYmxlICYmICBtX2hpdFRlc3RSZXN1bHQubWVkaWFNdXRlZCgpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9sczoK
KyAgICAgICAgICAgIHNob3VsZENoZWNrID0gbV9oaXRUZXN0UmVzdWx0Lm1lZGlhQ29udHJvbHNF
bmFibGVkKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0
ZW1UYWdUb2dnbGVNZWRpYUxvb3A6CisgICAgICAgICAgICBzaG91bGRDaGVjayA9IG1faGl0VGVz
dFJlc3VsdC5tZWRpYUxvb3BFbmFibGVkKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBDb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbjoKKyAgICAgICAgICAg
IHNob3VsZEVuYWJsZSA9IG1faGl0VGVzdFJlc3VsdC5tZWRpYVN1cHBvcnRzRnVsbHNjcmVlbigp
OworICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgaXRlbS5zZXRDaGVja2VkKHNob3Vs
ZENoZWNrKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaAkocmV2aXNpb24gNjc3
MDMpCisrKyBXZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRl
ciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBJZ2Fs
aWEgUy5MCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE0Myw2ICsxNDQsMTMg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBDb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFs
aXplLAogICAgICAgICBDb250ZXh0TWVudUl0ZW1UYWdDaGFuZ2VCYWNrLAogI2VuZGlmCisgICAg
ICAgIENvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93LAorICAgICAgICBDb250
ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQsCisgICAgICAgIENvbnRleHRN
ZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMsCisgICAgICAgIENvbnRleHRNZW51SXRlbVRh
Z1RvZ2dsZU1lZGlhTG9vcCwKKyAgICAgICAgQ29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1
bGxzY3JlZW4sCisgICAgICAgIENvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheVBhdXNlLAorICAg
ICAgICBDb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUsCiAgICAgICAgIENvbnRleHRNZW51SXRl
bUJhc2VDdXN0b21UYWcgPSA1MDAwLAogICAgICAgICBDb250ZXh0TWVudUl0ZW1DdXN0b21UYWdO
b0FjdGlvbiA9IDU5OTgsCiAgICAgICAgIENvbnRleHRNZW51SXRlbUxhc3RDdXN0b21UYWcgPSA1
OTk5LApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6YXRpb25TdHJhdGVneS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaAkocmV2aXNp
b24gNjc3MDMpCisrKyBXZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5LmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBJZ2Fs
aWEgUy5MCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTExMiw2ICsxMTMsMTQg
QEAgcHVibGljOiAgICAKICAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDYXBp
dGFsaXplKCkgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoYW5n
ZUJhY2soY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZykgPSAwOwogI2VuZGlmCisgICAgdmly
dHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3coKSA9IDA7
CisgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xp
cGJvYXJkKCkgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2ds
ZU1lZGlhQ29udHJvbHMoKSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnVG9nZ2xlTWVkaWFMb29wKCkgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCkgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgpID0gMDsKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVY
VF9NRU5VUykKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCShyZXZp
c2lvbiA2NzcwMykKKysrIFdlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAzLCAy
MDA2LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTM2Miw3ICszNjMsNDcgQEAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoYW5nZUJhY2so
Y29ucwogfQogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQotICAgIAorCitTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiBwbGF0Zm9y
bVN0cmF0ZWdpZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFn
T3Blbk1lZGlhSW5OZXdXaW5kb3coKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Nv
cHlNZWRpYUxpbmtUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2ll
cygpLT5sb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFM
aW5rVG9DbGlwYm9hcmQoKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1l
ZGlhQ29udHJvbHMoKQoreworICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9jYWxp
emF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygp
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkKK3sKKyAg
ICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNv
bnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpOworfQorCitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKQoreworICAgIHJldHVybiBwbGF0Zm9ybVN0
cmF0ZWdpZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnRW50
ZXJWaWRlb0Z1bGxzY3JlZW4oKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlh
UGxheSgpCit7CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2NhbGl6YXRpb25T
dHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKTsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKQoreworICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0
ZWdpZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQ
YXVzZSgpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkKK3sKKyAg
ICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNv
bnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpOworfQorCiBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnSW5zcGVjdEVsZW1lbnQoKQogewogICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+
bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQo
KTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCShyZXZpc2lvbiA2NzcwMykK
KysrIFdlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwOSBBcHBs
ZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMCBJZ2FsaWEgUy5MCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwOCw2
ICsxMDksMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdDYXBpdGFsaXplKCk7CiAgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoYW5nZUJh
Y2soY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZyk7CiAjZW5kaWYKKyAgICBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3coKTsKKyAgICBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKCk7CisgICAgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKTsKKyAgICBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCk7CisgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0VudGVyVmlkZW9GdWxsc2NyZWVuKCk7CisgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01l
ZGlhUGxheSgpOworICAgIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCk7Cisg
ICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpOwogICAgIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgpOwogI2VuZGlmIC8vIEVOQUJMRShDT05URVhU
X01FTlVTKQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvTG9jYWxpemVkU3RyaW5n
c0FuZHJvaWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9Mb2Nh
bGl6ZWRTdHJpbmdzQW5kcm9pZC5jcHAJKHJldmlzaW9uIDY3NzAzKQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9hbmRyb2lkL0xvY2FsaXplZFN0cmluZ3NBbmRyb2lkLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtODEsNiArODEsNTQgQEAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xp
cAogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09w
ZW5NZWRpYUluTmV3V2luZG93KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBTdHJpbmcoKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtU
b0NsaXBib2FyZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5n
KCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBs
YXkoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQor
CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdNZWRpYU11dGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0
cmluZygpOworfQorCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5k
b3coKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2Jy
ZXcvTG9jYWxpemVkU3RyaW5nc0JyZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vYnJldy9Mb2NhbGl6ZWRTdHJpbmdzQnJldy5jcHAJKHJldmlzaW9uIDY3NzAzKQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9icmV3L0xvY2FsaXplZFN0cmluZ3NCcmV3LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtOTYsNiArOTYsNDYgQEAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRv
Q2xpcAogICAgIHJldHVybiAiQ29weSBpbWFnZSB0byBjbGlwYm9hcmQiOwogfQogCitTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiAi
T3BlbiBNZWRpYSBpbiBOZXcgV2luZG93IjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJuICJDb3B5IE1lZGlhIExp
bmsgTG9jYXRpb24iOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFD
b250cm9scygpCit7CisgICAgcmV0dXJuICJUb2dnbGUgTWVkaWEgQ29udHJvbHMiOworfQorCitT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkKK3sKKyAgICByZXR1cm4g
IlRvZ2dsZSBNZWRpYSBMb29wIFBsYXliYWNrIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCkKK3sKKyAgICByZXR1cm4gIlN3aXRjaCBWaWRlbyB0
byBGdWxsc2NyZWVuIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgp
Cit7CisgICAgcmV0dXJuICJQbGF5IjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01l
ZGlhUGF1c2UoKQoreworICAgIHJldHVybiAiUGF1c2UiOworfQorCitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnTWVkaWFNdXRlKCkKK3sKKyAgICByZXR1cm4gIk11dGUiOworfQorCiBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3coKQogewogICAgIHJldHVybiAi
T3BlbiBmcmFtZSBpbiBuZXcgd2luZG93IjsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZWZsL0xv
Y2FsaXplZFN0cmluZ3NFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZWZs
L0xvY2FsaXplZFN0cmluZ3NFZmwuY3BwCShyZXZpc2lvbiA2NzcwMykKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZWZsL0xvY2FsaXplZFN0cmluZ3NFZmwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OCw2
ICs5OCw0NiBAQCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwCiAgICAg
cmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIkNvcHkgSW1hZ2UiKTsKIH0KIAorU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gU3RyaW5n
Ojpmcm9tVVRGOCgiT3BlbiBNZWRpYSBpbiBOZXcgV2luZG93Iik7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBT
dHJpbmc6OmZyb21VVEY4KCJDb3B5IE1lZGlhIExpbmsgTG9jYXRpb24iKTsKK30KKworU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKQoreworICAgIHJldHVybiBT
dHJpbmc6OmZyb21VVEY4KCJUb2dnbGUgTWVkaWEgQ29udHJvbHMiKTsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbVVURjgoIlRvZ2dsZSBNZWRpYSBMb29wIFBsYXliYWNrIik7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpCit7CisgICAgcmV0dXJuIFN0cmlu
Zzo6ZnJvbVVURjgoIlN3aXRjaCBWaWRlbyB0byBGdWxsc2NyZWVuIik7Cit9CisKK1N0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21V
VEY4KCJQbGF5Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkK
K3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiUGF1c2UiKTsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVU
RjgoIk11dGUiKTsKK30KKwogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3
V2luZG93KCkKIHsKICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiT3BlbiBGcmFtZSBpbiBO
ZXcgV2luZG93Iik7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9Db250ZXh0TWVudUl0ZW1H
dGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0NvbnRleHRNZW51SXRl
bUd0ay5jcHAJKHJldmlzaW9uIDY3NzAzKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29udGV4
dE1lbnVJdGVtR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiAg
Q29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiAgQ29weXJp
Z2h0IChDKSAyMDEwIElnYWxpYSBTLkwKICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTMzLDExICsz
NCwxMyBAQCBzdGF0aWMgY29uc3QgY2hhciogZ3RrU3RvY2tJREZyb21Db250ZXh0CiAgICAgc3dp
dGNoIChhY3Rpb24pIHsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHlMaW5rVG9DbGlw
Ym9hcmQ6CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZDoK
KyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZDoKICAg
ICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHk6CiAgICAgICAgIHJldHVybiBHVEtfU1RPQ0tf
Q09QWTsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5OZXdXaW5kb3c6CiAg
ICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvdzoKICAgICBjYXNl
IENvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93OgorICAgIGNhc2UgQ29udGV4
dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3c6CiAgICAgICAgIHJldHVybiBHVEtfU1RP
Q0tfT1BFTjsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlzazoK
ICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2s6CkBAIC01OSw3
ICs2Miw3IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBndGtTdG9ja0lERnJvbUNvbnRleHQKICAgICBj
YXNlIENvbnRleHRNZW51SXRlbVRhZ1NlbGVjdEFsbDoKICAgICAgICAgcmV0dXJuIEdUS19TVE9D
S19TRUxFQ1RfQUxMOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdHdWVzczoK
LSAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIHJldHVybiAwOwogICAgIGNhc2UgQ29udGV4
dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmc6CiAgICAgICAgIHJldHVybiBHVEtfU1RPQ0tfTk87
CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nOgpAQCAtOTksOCArMTAy
LDE0IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBndGtTdG9ja0lERnJvbUNvbnRleHQKICAgICAgICAg
cmV0dXJuIEdUS19TVE9DS19VTkRFUkxJTkU7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdT
aG93Q29sb3JzOgogICAgICAgICByZXR1cm4gR1RLX1NUT0NLX1NFTEVDVF9DT0xPUjsKKyAgICBj
YXNlIENvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHM6CisgICAgY2FzZSBDb250
ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3A6CisgICAgICAgIC8vIE5vIGljb24gZm9yIHRo
aXMuCisgICAgICAgIHJldHVybiAwOworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRW50ZXJW
aWRlb0Z1bGxzY3JlZW46CisgICAgICAgIHJldHVybiBHVEtfU1RPQ0tfRlVMTFNDUkVFTjsKICAg
ICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgcmV0dXJuIDA7CiAgICAg
fQogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3Rr
LmNwcAkocmV2aXNpb24gNjc3MDMpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRT
dHJpbmdzR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNCw2ICs0LDcgQEAKICAqIENvcHlyaWdo
dCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgogICogQ29weXJpZ2h0IChDKSAy
MDA4IENocmlzdGlhbiBEeXdhbiA8Y2hyaXN0aWFuQGltZW5kaW8uY29tPgogICogQ29weXJpZ2h0
IChDKSAyMDA4IE51YW50aSBMdGQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTAog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMTAsNiArMTExLDQ2IEBAIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXAKICAgICByZXR1cm4gU3RyaW5nOjpm
cm9tVVRGOChfKCJDb3BfeSBJbWFnZSIpKTsKIH0KIAorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z09wZW5NZWRpYUluTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChf
KCJPcGVuIF9NZWRpYSBpbiBOZXcgV2luZG93IikpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpm
cm9tVVRGOChfKCJDb3BfeSBNZWRpYSBMaW5rIExvY2F0aW9uIikpOworfQorCitTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpCit7CisgICAgcmV0dXJuIFN0cmlu
Zzo6ZnJvbVVURjgoXygiX1RvZ2dsZSBNZWRpYSBDb250cm9scyIpKTsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbVVURjgoXygiVG9nZ2xlIE1lZGlhIF9Mb29wIFBsYXliYWNrIikpOworfQorCitTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKQoreworICAgIHJldHVybiBT
dHJpbmc6OmZyb21VVEY4KF8oIlN3aXRjaCBWaWRlbyB0byBfRnVsbHNjcmVlbiIpKTsKK30KKwor
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpCit7CisgICAgcmV0dXJuIFN0cmlu
Zzo6ZnJvbVVURjgoXygiX1BsYXkiKSk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdN
ZWRpYVBhdXNlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJfUGF1c2UiKSk7
Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKQoreworICAgIHJldHVy
biBTdHJpbmc6OmZyb21VVEY4KF8oIl9NdXRlIikpOworfQorCiBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3coKQogewogICAgIHJldHVybiBTdHJpbmc6OmZyb21V
VEY4KF8oIk9wZW4gX0ZyYW1lIGluIE5ldyBXaW5kb3ciKSk7CkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2hhaWt1L0xvY2FsaXplZFN0cmluZ3NIYWlrdS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9oYWlrdS9Mb2NhbGl6ZWRTdHJpbmdzSGFpa3UuY3BwCShyZXZpc2lvbiA2Nzcw
MykKKysrIFdlYkNvcmUvcGxhdGZvcm0vaGFpa3UvTG9jYWxpemVkU3RyaW5nc0hhaWt1LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtOTgsNiArOTgsNDYgQEAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0NvcHlJbWFnZVRvQ2xpcAogICAgIHJldHVybiAiQ29weSBpbWFnZSB0byBjbGlwYm9hcmQiOwog
fQogCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3coKQorewor
ICAgIHJldHVybiAiT3BlbiBNZWRpYSBpbiBOZXcgV2luZG93IjsKK30KKworU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJuICJD
b3B5IE1lZGlhIExpbmsgTG9jYXRpb24iOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
VG9nZ2xlTWVkaWFDb250cm9scygpCit7CisgICAgcmV0dXJuICJUb2dnbGUgTWVkaWEgQ29udHJv
bHMiOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkKK3sK
KyAgICByZXR1cm4gIlRvZ2dsZSBNZWRpYSBMb29wIFBsYXliYWNrIjsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCkKK3sKKyAgICByZXR1cm4gIlN3
aXRjaCBWaWRlbyB0byBGdWxsc2NyZWVuIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z01lZGlhUGxheSgpCit7CisgICAgcmV0dXJuICJQbGF5IjsKK30KKworU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ01lZGlhUGF1c2UoKQoreworICAgIHJldHVybiAiUGF1c2UiOworfQorCitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkKK3sKKyAgICByZXR1cm4gIk11dGUiOwor
fQorCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3coKQogewog
ICAgIHJldHVybiAiT3BlbiBmcmFtZSBpbiBuZXcgd2luZG93IjsKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vcXQvTG9jYWxpemF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9xdC9Mb2NhbGl6YXRpb25zLmNwcAkocmV2aXNpb24gNjc3MDMpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL3F0L0xvY2FsaXphdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsNiArMTA1LDQ2
IEBAIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXAKICAgICByZXR1cm4g
UUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5IEltYWdlIiwgIkNv
cHkgTGluayBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCitTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnT3Blbk1lZGlhSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk9wZW4gTWVkaWEiLCAiT3BlbiBNZWRpYSBpbiBOZXcg
V2luZG93Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9D
bGlwYm9hcmQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFX
ZWJQYWdlIiwgIkNvcHkgTWVkaWEiLCAiQ29weSBNZWRpYSBMaW5rIExvY2F0aW9uIik7Cit9CisK
K1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKK3sKKyAgICBy
ZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJUb2dnbGUgQ29u
dHJvbHMiLCAiVG9nZ2xlIE1lZGlhIENvbnRyb2xzIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9u
Ojp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlRvZ2dsZSBMb29wIiwgIlRvZ2dsZSBNZWRpYSBMb29w
IFBsYXliYWNrIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVs
bHNjcmVlbigpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdl
YlBhZ2UiLCAiRW50ZXIgRnVsbHNjcmVlbiIsICJTd2l0Y2ggVmlkZW8gdG8gRnVsbHNjcmVlbiIp
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkKK3sKKyAgICByZXR1
cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQbGF5IiwgIlBsYXki
KTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKQoreworICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlBhdXNlIiwgIlBh
dXNlIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKQoreworICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk11dGUiLCAi
TXV0ZSIpOworfQorCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5k
b3coKQogewogICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdl
IiwgIk9wZW4gRnJhbWUiLCAiT3BlbiBGcmFtZSBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBp
dGVtIik7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS93eC9Mb2NhbGl6ZWRTdHJpbmdzV3guY3Bw
CShyZXZpc2lvbiA2NzcwMykKKysrIFdlYkNvcmUvcGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5n
c1d4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTcsNiArOTcsNDYgQEAgU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcAogICAgIHJldHVybiBTdHJpbmcoIkNvcHkgSW1hZ2Ug
dG8gQ2xpcGJvYXJkIik7IAogfQogCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlh
SW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiBTdHJpbmcoIk9wZW4gTWVkaWEgaW4gTmV3IFdp
bmRvdyIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xp
cGJvYXJkKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJDb3B5IE1lZGlhIExpbmsgTG9jYXRpb24i
KTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKQor
eworICAgIHJldHVybiBTdHJpbmcoIlRvZ2dsZSBNZWRpYSBDb250cm9scyIpOworfQorCitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkKK3sKKyAgICByZXR1cm4gU3Ry
aW5nKCJUb2dnbGUgTWVkaWEgTG9vcCBQbGF5YmFjayIpOworfQorCitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKQoreworICAgIHJldHVybiBTdHJpbmcoIlN3
aXRjaCBWaWRlbyB0byBGdWxsc2NyZWVuIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdNZWRpYVBsYXkoKQoreworICAgIHJldHVybiBTdHJpbmcoIlBsYXkiKTsKK30KKworU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKQoreworICAgIHJldHVybiBTdHJpbmcoIlBh
dXNlIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKQoreworICAg
IHJldHVybiBTdHJpbmcoIk11dGUiKTsKK30KKwogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09w
ZW5GcmFtZUluTmV3V2luZG93KCkgCiB7IAogICAgIHJldHVybiBTdHJpbmcoIk9wZW4gRnJhbWUg
aW4gTmV3IFdpbmRvdyIpOyAKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCShy
ZXZpc2lvbiA2NzcwMykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNs
dWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJIVE1MQW5jaG9yRWxlbWVudC5oIgorI2luY2x1
ZGUgIkhUTUxWaWRlb0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAj
aW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQu
aCIKQEAgLTI5MiwyMiArMjkzLDEyNSBAQCBLVVJMIEhpdFRlc3RSZXN1bHQ6OmFic29sdXRlSW1h
Z2VVUkwoKSBjCiBLVVJMIEhpdFRlc3RSZXN1bHQ6OmFic29sdXRlTWVkaWFVUkwoKSBjb25zdAog
ewogI2lmIEVOQUJMRShWSURFTykKKyAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbHQg
PSBtZWRpYUVsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIG1faW5uZXJOb25TaGFyZWROb2RlLT5k
b2N1bWVudCgpLT5jb21wbGV0ZVVSTChkZXByZWNhdGVkUGFyc2VVUkwobWVkaWFFbHQtPmN1cnJl
bnRTcmMoKSkpOworICAgIHJldHVybiBLVVJMKCk7CisjZWxzZQorICAgIHJldHVybiBLVVJMKCk7
CisjZW5kaWYKK30KKworYm9vbCBIaXRUZXN0UmVzdWx0OjptZWRpYVN1cHBvcnRzRnVsbHNjcmVl
bigpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1l
ZGlhRWx0KG1lZGlhRWxlbWVudCgpKTsKKyAgICByZXR1cm4gKG1lZGlhRWx0ICYmIG1lZGlhRWx0
LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpICYmIG1lZGlhRWx0LT5zdXBwb3J0c0Z1
bGxzY3JlZW4oKSk7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCisjaWYg
RU5BQkxFKFZJREVPKQorSFRNTE1lZGlhRWxlbWVudCogSGl0VGVzdFJlc3VsdDo6bWVkaWFFbGVt
ZW50KCkgY29uc3QKK3sKICAgICBpZiAoIShtX2lubmVyTm9uU2hhcmVkTm9kZSAmJiBtX2lubmVy
Tm9uU2hhcmVkTm9kZS0+ZG9jdW1lbnQoKSkpCi0gICAgICAgIHJldHVybiBLVVJMKCk7CisgICAg
ICAgIHJldHVybiAwOwogCiAgICAgaWYgKCEobV9pbm5lck5vblNoYXJlZE5vZGUtPnJlbmRlcmVy
KCkgJiYgbV9pbm5lck5vblNoYXJlZE5vZGUtPnJlbmRlcmVyKCktPmlzTWVkaWEoKSkpCi0gICAg
ICAgIHJldHVybiBLVVJMKCk7CisgICAgICAgIHJldHVybiAwOwogCi0gICAgQXRvbWljU3RyaW5n
IHVybFN0cmluZzsKLSAgICBpZiAobV9pbm5lck5vblNoYXJlZE5vZGUtPmhhc1RhZ05hbWUoSFRN
TE5hbWVzOjp2aWRlb1RhZykgfHwgbV9pbm5lck5vblNoYXJlZE5vZGUtPmhhc1RhZ05hbWUoSFRN
TE5hbWVzOjphdWRpb1RhZykpIHsKLSAgICAgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVt
ZW50ID0gc3RhdGljX2Nhc3Q8SFRNTE1lZGlhRWxlbWVudCo+KG1faW5uZXJOb25TaGFyZWROb2Rl
LmdldCgpKTsKLSAgICAgICAgdXJsU3RyaW5nID0gbWVkaWFFbGVtZW50LT5jdXJyZW50U3JjKCk7
Ci0gICAgfSBlbHNlCi0gICAgICAgIHJldHVybiBLVVJMKCk7CisgICAgaWYgKG1faW5uZXJOb25T
aGFyZWROb2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpIHx8IG1faW5uZXJOb25T
aGFyZWROb2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6YXVkaW9UYWcpKQorICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8SFRNTE1lZGlhRWxlbWVudCo+KG1faW5uZXJOb25TaGFyZWROb2RlLmdl
dCgpKTsKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZgogCi0gICAgcmV0dXJuIG1faW5uZXJOb25T
aGFyZWROb2RlLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChkZXByZWNhdGVkUGFyc2VVUkwodXJs
U3RyaW5nKSk7Ci0jZWxzZQotICAgIHJldHVybiBLVVJMKCk7Cit2b2lkIEhpdFRlc3RSZXN1bHQ6
OnRvZ2dsZU1lZGlhQ29udHJvbHNEaXNwbGF5KCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8p
CisgICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWx0ID0gbWVkaWFFbGVtZW50KCkpCisg
ICAgICAgIG1lZGlhRWx0LT5zZXRDb250cm9scyghbWVkaWFFbHQtPmNvbnRyb2xzKCkpOworI2Vu
ZGlmCit9CisKK3ZvaWQgSGl0VGVzdFJlc3VsdDo6dG9nZ2xlTWVkaWFMb29wUGxheWJhY2soKSBj
b25zdAoreworI2lmIEVOQUJMRShWSURFTykKKyAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogbWVk
aWFFbHQgPSBtZWRpYUVsZW1lbnQoKSkKKyAgICAgICAgbWVkaWFFbHQtPnNldExvb3AoIW1lZGlh
RWx0LT5sb29wKCkpOworI2VuZGlmCit9CisKK3ZvaWQgSGl0VGVzdFJlc3VsdDo6ZW50ZXJGdWxs
c2NyZWVuRm9yVmlkZW8oKSBjb25zdAoreworI2lmIEVOQUJMRShWSURFTykKKyAgICBIVE1MTWVk
aWFFbGVtZW50KiBtZWRpYUVsdChtZWRpYUVsZW1lbnQoKSk7CisgICAgaWYgKG1lZGlhRWx0ICYm
IG1lZGlhRWx0LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpKSB7CisgICAgICAgIEhU
TUxWaWRlb0VsZW1lbnQqIHZpZGVvRWx0ID0gc3RhdGljX2Nhc3Q8SFRNTFZpZGVvRWxlbWVudCo+
KG1lZGlhRWx0KTsKKyAgICAgICAgaWYgKCF2aWRlb0VsdC0+aXNGdWxsc2NyZWVuKCkgJiYgbWVk
aWFFbHQtPnN1cHBvcnRzRnVsbHNjcmVlbigpKQorICAgICAgICAgICAgdmlkZW9FbHQtPmVudGVy
RnVsbHNjcmVlbigpOworICAgIH0KKyNlbmRpZgorfQorCitib29sIEhpdFRlc3RSZXN1bHQ6Om1l
ZGlhQ29udHJvbHNFbmFibGVkKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgaWYg
KEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWx0ID0gbWVkaWFFbGVtZW50KCkpCisgICAgICAgIHJl
dHVybiBtZWRpYUVsdC0+Y29udHJvbHMoKTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30K
KworYm9vbCBIaXRUZXN0UmVzdWx0OjptZWRpYUxvb3BFbmFibGVkKCkgY29uc3QKK3sKKyNpZiBF
TkFCTEUoVklERU8pCisgICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWx0ID0gbWVkaWFF
bGVtZW50KCkpCisgICAgICAgIHJldHVybiBtZWRpYUVsdC0+bG9vcCgpOworI2VuZGlmCisgICAg
cmV0dXJuIGZhbHNlOworfQorCitib29sIEhpdFRlc3RSZXN1bHQ6Om1lZGlhUGxheWluZygpIGNv
bnN0Cit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIGlmIChIVE1MTWVkaWFFbGVtZW50KiBtZWRp
YUVsdCA9IG1lZGlhRWxlbWVudCgpKQorICAgICAgICByZXR1cm4gIW1lZGlhRWx0LT5wYXVzZWQo
KTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBIaXRUZXN0UmVzdWx0Ojp0
b2dnbGVNZWRpYVBsYXlTdGF0ZSgpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIGlm
IChIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsdCA9IG1lZGlhRWxlbWVudCgpKQorICAgICAgICBt
ZWRpYUVsdC0+dG9nZ2xlUGxheVN0YXRlKCk7CisjZW5kaWYKK30KKworYm9vbCBIaXRUZXN0UmVz
dWx0OjptZWRpYUhhc0F1ZGlvKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgaWYg
KEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWx0ID0gbWVkaWFFbGVtZW50KCkpCisgICAgICAgIHJl
dHVybiBtZWRpYUVsdC0+aGFzQXVkaW8oKTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30K
KworYm9vbCBIaXRUZXN0UmVzdWx0OjptZWRpYU11dGVkKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUo
VklERU8pCisgICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWx0ID0gbWVkaWFFbGVtZW50
KCkpCisgICAgICAgIHJldHVybiBtZWRpYUVsdC0+bXV0ZWQoKTsKKyNlbmRpZgorICAgIHJldHVy
biBmYWxzZTsKK30KKwordm9pZCBIaXRUZXN0UmVzdWx0Ojp0b2dnbGVNZWRpYU11dGVTdGF0ZSgp
IGNvbnN0Cit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIGlmIChIVE1MTWVkaWFFbGVtZW50KiBt
ZWRpYUVsdCA9IG1lZGlhRWxlbWVudCgpKQorICAgICAgICBtZWRpYUVsdC0+c2V0TXV0ZWQoIW1l
ZGlhRWx0LT5tdXRlZCgpKTsKICNlbmRpZgogfQogCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9I
aXRUZXN0UmVzdWx0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJl
c3VsdC5oCShyZXZpc2lvbiA2NzcwMykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1
bHQuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGcmFtZTsKKyNpZiBFTkFCTEUoVklERU8pCitjbGFz
cyBIVE1MTWVkaWFFbGVtZW50OworI2VuZGlmCiBjbGFzcyBJbWFnZTsKIGNsYXNzIEludFJlY3Q7
CiBjbGFzcyBLVVJMOwpAQCAtODAsNiArODMsMTcgQEAgcHVibGljOgogICAgIFN0cmluZyB0ZXh0
Q29udGVudCgpIGNvbnN0OwogICAgIGJvb2wgaXNMaXZlTGluaygpIGNvbnN0OwogICAgIGJvb2wg
aXNDb250ZW50RWRpdGFibGUoKSBjb25zdDsKKyAgICB2b2lkIHRvZ2dsZU1lZGlhQ29udHJvbHNE
aXNwbGF5KCkgY29uc3Q7CisgICAgdm9pZCB0b2dnbGVNZWRpYUxvb3BQbGF5YmFjaygpIGNvbnN0
OworICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuRm9yVmlkZW8oKSBjb25zdDsKKyAgICBib29sIG1l
ZGlhQ29udHJvbHNFbmFibGVkKCkgY29uc3Q7CisgICAgYm9vbCBtZWRpYUxvb3BFbmFibGVkKCkg
Y29uc3Q7CisgICAgYm9vbCBtZWRpYVBsYXlpbmcoKSBjb25zdDsKKyAgICBib29sIG1lZGlhU3Vw
cG9ydHNGdWxsc2NyZWVuKCkgY29uc3Q7CisgICAgdm9pZCB0b2dnbGVNZWRpYVBsYXlTdGF0ZSgp
IGNvbnN0OworICAgIGJvb2wgbWVkaWFIYXNBdWRpbygpIGNvbnN0OworICAgIGJvb2wgbWVkaWFN
dXRlZCgpIGNvbnN0OworICAgIHZvaWQgdG9nZ2xlTWVkaWFNdXRlU3RhdGUoKSBjb25zdDsKIAog
ICAgIC8vIFJlY3QtYmFzZWQgaGl0IHRlc3QgcmVsYXRlZCBtZXRob2RzLgogICAgIGJvb2wgaXNS
ZWN0QmFzZWRUZXN0KCkgY29uc3QgeyByZXR1cm4gbV9pc1JlY3RCYXNlZDsgfQpAQCAtOTYsNiAr
MTEwLDEwIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKIAorI2lmIEVOQUJMRShWSURFTykKKyAgICBI
VE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQoKSBjb25zdDsKKyNlbmRpZgorCiAgICAgUmVm
UHRyPE5vZGU+IG1faW5uZXJOb2RlOwogICAgIFJlZlB0cjxOb2RlPiBtX2lubmVyTm9uU2hhcmVk
Tm9kZTsKICAgICBJbnRQb2ludCBtX3BvaW50OwpJbmRleDogV2ViS2l0Mi9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDY3NzAzKQorKysgV2ViS2l0
Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0wOS0xNyAg
UGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gZW5oYW5jZWQgY29udGV4dCBt
ZW51IGZvciBtZWRpYSBlbGVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDUwMjEKKworICAgICAgICBOZXcgbG9jYWxpemVkIHN0cmluZ3MgZm9y
IHRoZSBtZWRpYSBlbGVtZW50IGNvbnRleHQtbWVudS4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5l
d1dpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4
dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRy
b2xzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVu
dUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3ApOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRp
YVBsYXkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRN
ZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKwogMjAxMC0wOS0xNiAg
U2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVy
cyBDYXJsc3Nvbi4KSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCShyZXZpc2lvbiA2NzcwMykK
KysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODAsNiArMTgwLDQ2IEBAIFN0cmluZyBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW4KICAgICByZXR1cm4gVUlfU1RSSU5HKCJDb3B5IElt
YWdlIiwgIkNvcHkgSW1hZ2UgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAorU3RyaW5nIFdlYlBs
YXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3co
KQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIk9wZW4gTWVkaWEgaW4gTmV3IFdpbmRvdyIsICJP
cGVuIE1lZGlhIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5n
IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1Rv
Q2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJDb3B5IE1lZGlhIEFkZHJlc3Mi
LCAiQ29weSBNZWRpYSBBZGRyZXNzIExvY2F0aW9uIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisK
K1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1l
ZGlhQ29udHJvbHMoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIkNvbnRyb2xzIiwgIk1lZGlh
IENvbnRyb2xzIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCit7CisgICAgcmV0
dXJuIFVJX1NUUklORygiTG9vcCIsICJNZWRpYSBMb29wIGNvbnRleHQgbWVudSBpdGVtIik7Cit9
CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0VudGVy
VmlkZW9GdWxsc2NyZWVuKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJFbnRlciBGdWxsc2Ny
ZWVuIiwgIlZpZGVvIEVudGVyIEZ1bGxzY3JlZW4gY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKwor
U3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5
KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJQbGF5IiwgIk1lZGlhIFBsYXkgY29udGV4dCBt
ZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1l
bnVJdGVtVGFnTWVkaWFQYXVzZSgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiUGF1c2UiLCAi
TWVkaWEgUGF1c2UgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3Jt
U3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkKK3sKKyAgICByZXR1cm4g
VUlfU1RSSU5HKCJNdXRlIiwgIk1lZGlhIE11dGUgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKwog
U3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1l
SW5OZXdXaW5kb3coKQogewogICAgIHJldHVybiBVSV9TVFJJTkcoIk9wZW4gRnJhbWUgaW4gTmV3
IFdpbmRvdyIsICJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsK
SW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHJldmlzaW9uIDY3NzAzKQorKysgV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMjcsNiArMTI3LDE0IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBXVEY6OlN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdDaGFuZ2VCYWNrKGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNl
ZFN0cmluZyk7CiAjZW5kaWYKICAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0luc3BlY3RFbGVtZW50KCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdygpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKCk7CisgICAgdmlydHVh
bCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCk7Cisg
ICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3Ao
KTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9G
dWxsc2NyZWVuKCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdN
ZWRpYVBsYXkoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01l
ZGlhUGF1c2UoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01l
ZGlhTXV0ZSgpOwogI2VuZGlmIC8vIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgc2VhcmNoTWVudU5vUmVjZW50U2VhcmNoZXNUZXh0KCk7CiAgICAgdmlydHVh
bCBXVEY6OlN0cmluZyBzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KCk7CkluZGV4OiBXZWJL
aXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDY3
NzAzKQorKysgV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDkgQEAK
KzIwMTAtMDktMTcgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgVXBkYXRlZCBsb2NhbGl6YWJsZSBzdHJpbmdzLgorCisgICAgICAgICogRW5nbGlzaC5s
cHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzOgorCiAyMDEwLTA5LTE2ICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2ZXJ0ZWQgdGhlIHByZXZpb3VzIGNoYW5nZSBi
ZWNhdXNlIHI2NzYyOCBoYXMgYmVlbiByZXZlcnRlZC4KSW5kZXg6IFdlYktpdC9FbmdsaXNoLmxw
cm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L0VuZ2xpc2gubHBy
b2ovTG9jYWxpemFibGUuc3RyaW5ncwkocmV2aXNpb24gNjc3MDMpCisrKyBXZWJLaXQvRW5nbGlz
aC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCSh3b3JraW5nIGNvcHkpCkBAIC04MzgsMyArODM4
LDI2IEBACiAALwAqACAAYQBjAGMAZQBzAHMAaQBiAGkAbABpAHQAeQAgAHIAbwBsAGUAIABkAGUA
cwBjAHIAaQBwAHQAaQBvAG4AIABmAG8AcgAgAHcAZQBiACAAYQByAGUAYQAgACoALwAKIAAiAHcA
ZQBiACAAYQByAGUAYQAiACAAPQAgACIAdwBlAGIAIABhAHIAZQBhACIAOwAKIAAKKwAvACoAIABP
AHAAZQBuACAAYQB1AGQAaQBvAC8AdgBpAGQAZQBvACAAYwBvAG4AdABlAHgAdAAgAG0AZQBuAHUA
IABpAHQAZQBtACAAKgAvAAorACIATwBwAGUAbgAgAE0AZQBkAGkAYQAgAGkAbgAgAE4AZQB3ACAA
VwBpAG4AZABvAHcAIgAgAD0AIAAiAE8AcABlAG4AIABNAGUAZABpAGEAIABpAG4AIABOAGUAdwAg
AFcAaQBuAGQAbwB3ACIAOwAKKwAKKwAvACoAIABDAG8AcAB5ACAAYQB1AGQAaQBvAC8AdgBpAGQA
ZQBvACAAYQBkAGQAcgBlAHMAcwAgAGMAbwBuAHQAZQB4AHQAIABtAGUAbgB1ACAAaQB0AGUAbQAg
ACoALwAKKwAiAEMAbwBwAHkAIABNAGUAZABpAGEAIABBAGQAZAByAGUAcwBzACIAIAA9ACAAIgBD
AG8AcAB5ACAATQBlAGQAaQBhACAAQQBkAGQAcgBlAHMAcwAiADsACisACisALwAqACAAQwBvAG4A
dAByAG8AbABzACAAYwBvAG4AdABlAHgAdAAgAG0AZQBuAHUAIABpAHQAZQBtACAAKgAvAAorACIA
QwBvAG4AdAByAG8AbABzACIAIAA9ACAAIgBDAG8AbgB0AHIAbwBsAHMAIgA7AAorAAorAC8AKgAg
AEwAbwBvAHAAIABjAG8AbgB0AGUAeAB0ACAAbQBlAG4AdQAgAGkAdABlAG0AIAAqAC8ACisAIgBM
AG8AbwBwACIAIAA9ACAAIgBMAG8AbwBwACIAOwAKKwAKKwAvACoAIABGAHUAbABsAHMAYwByAGUA
ZQBuACAAYwBvAG4AdABlAHgAdAAgAG0AZQBuAHUAIABpAHQAZQBtACAAKgAvAAorACIARQBuAHQA
ZQByACAARgB1AGwAbABzAGMAcgBlAGUAbgAiACAAPQAgACIARQBuAHQAZQByACAARgB1AGwAbABz
AGMAcgBlAGUAbgAiADsACisACisALwAqACAAUABsAGEAeQAgAGMAbwBuAHQAZQB4AHQAIABtAGUA
bgB1ACAAaQB0AGUAbQAgACoALwAKKwAiAFAAbABhAHkAIgAgAD0AIAAiAFAAbABhAHkAIgA7AAor
AAorAC8AKgAgAFAAYQB1AHMAZQAgAGMAbwBuAHQAZQB4AHQAIABtAGUAbgB1ACAAaQB0AGUAbQAg
ACoALwAKKwAiAFAAYQB1AHMAZQAiACAAPQAgACIAUABhAHUAcwBlACIAOwAKKwAKKwAvACoAIABN
AHUAdABlACAAYwBvAG4AdABlAHgAdAAgAG0AZQBuAHUAIABpAHQAZQBtACAAKgAvAAorACIATQB1
AHQAZQAiACAAPQAgACIATQB1AHQAZQAiADsACkluZGV4OiBXZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA2NzcwMykKKysrIFdlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTY3MCw2ICsxNjcwLDcgQEAK
IAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI4
MzIwODkwMkIwRjAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJv
amVjdCAiV2ViS2l0IiAqLzsKIAkJCWNvbXBhdGliaWxpdHlWZXJzaW9uID0gIlhjb2RlIDIuNCI7
CisJCQlkZXZlbG9wbWVudFJlZ2lvbiA9IEVuZ2xpc2g7CiAJCQloYXNTY2FubmVkRm9yRW5jb2Rp
bmdzID0gMTsKIAkJCWtub3duUmVnaW9ucyA9ICgKIAkJCQlFbmdsaXNoLApJbmRleDogV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCShyZXZpc2lvbiA2NzcwMykKKysrIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wOS0xNyAgUGhpbGlwcGUgTm9ybWFuZCAg
PHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgW0dUS10gZW5oYW5jZWQgY29udGV4dCBtZW51IGZvciBtZWRpYSBlbGVt
ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUw
MjEKKworICAgICAgICBOZXcgbG9jYWxpemVkIHN0cmluZ3MgZm9yIHRoZSBtZWRpYSBlbGVtZW50
IGNvbnRleHQtbWVudS4KKworICAgICAgICAqIHNyYy9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBi
b2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNv
bnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlh
TG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVs
bHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkp
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUpOgorCiAyMDEwLTA5LTE2
ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByNjc2OTMuCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3Jj
L0xvY2FsaXplZFN0cmluZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMv
TG9jYWxpemVkU3RyaW5ncy5jcHAJKHJldmlzaW9uIDY3NzAzKQorKysgV2ViS2l0L2Nocm9taXVt
L3NyYy9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjY1LDYgKzI2NSwx
NCBAQCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQoCiBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwoYm9vbCBzaG93KSB7IHJldHVybiBTdHJp
bmcoKTsgfQogU3RyaW5nIG1lZGlhRWxlbWVudExpdmVCcm9hZGNhc3RTdGF0ZVRleHQoKSB7IHJl
dHVybiBTdHJpbmcoKTsgfQogU3RyaW5nIG1lZGlhRWxlbWVudExvYWRpbmdTdGF0ZVRleHQoKSB7
IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUlu
TmV3V2luZG93KCkgeyByZXR1cm4gU3RyaW5nKCk7IH0KK1N0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQoKSB7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKSB7IHJldHVybiBTdHJpbmco
KTsgfQorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpIHsgcmV0dXJu
IFN0cmluZygpOyB9CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3Jl
ZW4oKSB7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlh
UGxheSgpIHsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVk
aWFQYXVzZSgpIHsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
TWVkaWFNdXRlKCkgeyByZXR1cm4gU3RyaW5nKCk7IH0KIAogU3RyaW5nIGxvY2FsaXplZE1lZGlh
Q29udHJvbEVsZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5nJiAvKm5hbWUqLykKIHsKSW5kZXg6IFdl
YktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiA2NzcwMykKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTAtMDktMTcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBp
Z2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFtHVEtdIGVuaGFuY2VkIGNvbnRleHQgbWVudSBmb3IgbWVkaWEgZWxlbWVudHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MDIxCisKKyAgICAg
ICAgTmV3IGxvY2FsaXplZCBzdHJpbmdzIGZvciB0aGUgbWVkaWEgZWxlbWVudCBjb250ZXh0LW1l
bnUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW06CisgICAg
ICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUlu
TmV3V2luZG93KToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJ
dGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAgICAg
IChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9v
cCk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0Vu
dGVyVmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29u
dGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSk6CisKIDIwMTAtMDktMTcgIEpp
YSBQdSAgPGpwdUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVp
bi4KSW5kZXg6IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuaAkocmV2aXNpb24gNjc3MDMpCisrKyBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTMsNiArMTEzLDE0
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdD
YXBpdGFsaXplKCk7CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdD
aGFuZ2VCYWNrKGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNlZFN0cmluZyk7CiAgICAgdmlydHVh
bCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgpOworICAgIHZp
cnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3co
KTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxp
bmtUb0NsaXBib2FyZCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnVG9nZ2xlTWVkaWFDb250cm9scygpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpOworICAgIHZpcnR1YWwgV1RG
OjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCk7CisgICAgdmlydHVhbCBXVEY6
OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCk7CisgICAgdmlydHVhbCBXVEY6
OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKTsKICNlbmRpZiAvLyBFTkFCTEUo
Q09OVEVYVF9NRU5VUykKICAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHNlYXJjaE1lbnVOb1JlY2Vu
dFNlYXJjaGVzVGV4dCgpOwogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgc2VhcmNoTWVudVJlY2Vu
dFNlYXJjaGVzVGV4dCgpOwpJbmRleDogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0JKHJldmlzaW9uIDY3NzAzKQorKysgV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0JKHdvcmtpbmcgY29weSkK
QEAgLTE1Niw2ICsxNTYsNDYgQEAgU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4
dE1lbgogICAgIHJldHVybiBVSV9TVFJJTkcoIkNvcHkgSW1hZ2UiLCAiQ29weSBJbWFnZSBjb250
ZXh0IG1lbnUgaXRlbSIpOwogfQogCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250
ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuIFVJX1NU
UklORygiT3BlbiBNZWRpYSBpbiBOZXcgV2luZG93IiwgIk9wZW4gTWVkaWEgaW4gTmV3IFdpbmRv
dyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVz
Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJl
dHVybiBVSV9TVFJJTkcoIkNvcHkgTWVkaWEgQWRkcmVzcyIsICJDb3B5IE1lZGlhIEFkZHJlc3Mg
TG9jYXRpb24gY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpCit7CisgICAg
cmV0dXJuIFVJX1NUUklORygiQ29udHJvbHMiLCAiTWVkaWEgQ29udHJvbHMgY29udGV4dCBtZW51
IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJ
dGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJMb29wIiwg
Ik1lZGlhIExvb3AgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3Jt
U3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKQorewor
ICAgIHJldHVybiBVSV9TVFJJTkcoIkVudGVyIEZ1bGxzY3JlZW4iLCAiVmlkZW8gRW50ZXIgRnVs
bHNjcmVlbiBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQoreworICAgIHJldHVybiBVSV9T
VFJJTkcoIlBsYXkiLCAiTWVkaWEgUGxheSBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJp
bmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkK
K3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJQYXVzZSIsICJNZWRpYSBQYXVzZSBjb250ZXh0IG1l
bnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVu
dUl0ZW1UYWdNZWRpYU11dGUoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIk11dGUiLCAiTWVk
aWEgTXV0ZSBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCiBTdHJpbmcgV2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpCiB7CiAgICAg
cmV0dXJuIFVJX1NUUklORygiT3BlbiBGcmFtZSBpbiBOZXcgV2luZG93IiwgIk9wZW4gRnJhbWUg
aW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwpJbmRleDogV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDY3NzAz
KQorKysgV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMyBA
QAorMjAxMC0wOS0xNyAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gZW5o
YW5jZWQgY29udGV4dCBtZW51IGZvciBtZWRpYSBlbGVtZW50cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUwMjEKKworICAgICAgICBOZXcgbG9jYWxp
emVkIHN0cmluZ3MgZm9yIHRoZSBtZWRpYSBlbGVtZW50IGNvbnRleHQtbWVudS4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2lu
ZG93KToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFn
Q29weU1lZGlhTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAgICAgIChXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCk6Cisg
ICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlk
ZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1l
bnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29u
dGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmg6CisKIDIwMTAtMDktMTYgIERhcmluIEFkbGVyICA8
ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCklu
ZGV4OiBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMuY3BwCShyZXZpc2lvbiA2NzcwMykKKysrIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYzLDYgKzE2Myw0
NiBAQCBTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVuCiAgICAgcmV0dXJu
IFVJX1NUUklORygiQ29weSBJbWFnZSIsICJDb3B5IEltYWdlIGNvbnRleHQgbWVudSBpdGVtIik7
CiB9CiAKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ09w
ZW5NZWRpYUluTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJPcGVuIE1lZGlh
IGluIE5ldyBXaW5kb3ciLCAiT3BlbiBNZWRpYSBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBp
dGVtIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRl
bVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygi
Q29weSBNZWRpYSBBZGRyZXNzIiwgIkNvcHkgTWVkaWEgQWRkcmVzcyBMb2NhdGlvbiBjb250ZXh0
IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0
TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5H
KCJDb250cm9scyIsICJNZWRpYSBDb250cm9scyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitT
dHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRp
YUxvb3AoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIkxvb3AiLCAiTWVkaWEgTG9vcCBjb250
ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250
ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpCit7CisgICAgcmV0dXJuIFVJX1NU
UklORygiRW50ZXIgRnVsbHNjcmVlbiIsICJWaWRlbyBFbnRlciBGdWxsc2NyZWVuIGNvbnRleHQg
bWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRN
ZW51SXRlbVRhZ01lZGlhUGxheSgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiUGxheSIsICJN
ZWRpYSBQbGF5IGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKQoreworICAgIHJldHVybiBV
SV9TVFJJTkcoIlBhdXNlIiwgIk1lZGlhIFBhdXNlIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisK
K1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0
ZSgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiTXV0ZSIsICJNZWRpYSBNdXRlIGNvbnRleHQg
bWVudSBpdGVtIik7Cit9CisKIFN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRN
ZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCkKIHsKICAgICByZXR1cm4gVUlfU1RSSU5H
KCJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBGcmFtZSBpbiBOZXcgV2luZG93IGNv
bnRleHQgbWVudSBpdGVtIik7CkluZGV4OiBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHJldmlzaW9uIDY3NzAzKQorKysgV2ViS2l0L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkod29ya2luZyBjb3B5KQpA
QCAtOTIsNiArOTIsMTQgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCk7CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdCgpOwogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93KCk7CisgICAgdmlydHVhbCBX
VEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQoKTsK
KyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29u
dHJvbHMoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2ds
ZU1lZGlhTG9vcCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
RW50ZXJWaWRlb0Z1bGxzY3JlZW4oKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ01lZGlhUGxheSgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnTWVkaWFQYXVzZSgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnTWVkaWFNdXRlKCk7CiAjZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAg
ICAgdmlydHVhbCBXVEY6OlN0cmluZyBzZWFyY2hNZW51Tm9SZWNlbnRTZWFyY2hlc1RleHQoKTsK
ICAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHNlYXJjaE1lbnVSZWNlbnRTZWFyY2hlc1RleHQoKTsK
SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDY3NzAzKQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDktMTcgIFBoaWxpcHBlIE5vcm1hbmQg
IDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFtHVEtdIGVuaGFuY2VkIGNvbnRleHQgbWVudSBmb3IgbWVkaWEgZWxl
bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1
MDIxCisKKyAgICAgICAgRXZlbnRTZW5kZXI6OmNvbnRleHRDbGljaygpIG5vdyByZXR1cm5zIGFu
IGFycmF5IG9mIGpzCisgICAgICAgIG9iamVjdHMuIEVhY2ggb2JqZWN0IGhhcyBhIHRpdGxlIHBy
b3BlcnR5IGFuZCBhIGNsaWNrKCkgbWV0aG9kLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Z3RrL0V2ZW50U2VuZGVyLmNwcDoKKyAgICAgICAgKGdldE1lbnVJdGVtVGl0bGVDYWxsYmFjayk6
CisgICAgICAgIChzZXRNZW51SXRlbVRpdGxlQ2FsbGJhY2spOgorICAgICAgICAobWVudUl0ZW1D
bGlja0NhbGxiYWNrKToKKyAgICAgICAgKGdldE1lbnVJdGVtQ2xhc3MpOgorICAgICAgICAoY29u
dGV4dENsaWNrQ2FsbGJhY2spOgorCiAyMDEwLTA5LTE2ICBLaW51a28gWWFzdWRhICA8a2ludWtv
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBPamFuIFZhZmFpLgpJbmRleDog
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0V2ZW50U2VuZGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRXZlbnRTZW5kZXIuY3BwCShyZXZp
c2lvbiA2NzcwMykKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9FdmVudFNlbmRl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Nyw2ICsxNDcsNTggQEAgYm9vbCBwcmVwYXJlTW91
c2VCdXR0b25FdmVudChHZGtFdmVudCogZQogICAgIHJldHVybiB0cnVlOwogfQogCitzdGF0aWMg
SlNWYWx1ZVJlZiBnZXRNZW51SXRlbVRpdGxlQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pCit7CisgICAgR3RrV2lkZ2V0KiB3aWRnZXQgPSBHVEtfV0lER0VUKEpTT2Jq
ZWN0R2V0UHJpdmF0ZShvYmplY3QpKTsKKyAgICBDU3RyaW5nIGxhYmVsOworICAgIGlmIChHVEtf
SVNfU0VQQVJBVE9SX01FTlVfSVRFTSh3aWRnZXQpKQorICAgICAgICBsYWJlbCA9ICI8c2VwYXJh
dG9yPiI7CisgICAgZWxzZQorICAgICAgICBsYWJlbCA9IGd0a19tZW51X2l0ZW1fZ2V0X2xhYmVs
KEdUS19NRU5VX0lURU0od2lkZ2V0KSk7CisKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VTdHJpbmco
Y29udGV4dCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcobGFiZWwuZGF0YSgpKSk7Cit9
CisKK3N0YXRpYyBib29sIHNldE1lbnVJdGVtVGl0bGVDYWxsYmFjayhKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWVSZWYgdmFsdWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworc3RhdGljIEpTVmFsdWVSZWYgbWVudUl0ZW1DbGlja0NhbGxiYWNrKEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwg
c2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBHdGtNZW51SXRlbSogaXRlbSA9IEdUS19NRU5VX0lU
RU0oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKKyAgICBndGtfbWVudV9pdGVtX2Fj
dGl2YXRlKGl0ZW0pOworICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsK
K30KKworc3RhdGljIEpTU3RhdGljRnVuY3Rpb24gc3RhdGljTWVudUl0ZW1GdW5jdGlvbnNbXSA9
IHsKKyAgICB7ICJjbGljayIsIG1lbnVJdGVtQ2xpY2tDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgIHsg
MCwgMCwgMCB9Cit9OworCitzdGF0aWMgSlNTdGF0aWNWYWx1ZSBzdGF0aWNNZW51SXRlbVZhbHVl
c1tdID0geworICAgIHsgInRpdGxlIiwgZ2V0TWVudUl0ZW1UaXRsZUNhbGxiYWNrLCBzZXRNZW51
SXRlbVRpdGxlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlTm9uZSB9LAorICAgIHsgMCwg
MCwgMCwgMCB9Cit9OworCitzdGF0aWMgSlNDbGFzc1JlZiBnZXRNZW51SXRlbUNsYXNzKCkKK3sK
KyAgICBzdGF0aWMgSlNDbGFzc1JlZiBtZW51SXRlbUNsYXNzID0gMDsKKworICAgIGlmICghbWVu
dUl0ZW1DbGFzcykgeworICAgICAgICBKU0NsYXNzRGVmaW5pdGlvbiBjbGFzc0RlZmluaXRpb24g
PSB7CisgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwKKyAgICAgICAgICAgICAgICAw
LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwfTsKKyAgICAgICAgY2xhc3NEZWZpbml0aW9u
LnN0YXRpY0Z1bmN0aW9ucyA9IHN0YXRpY01lbnVJdGVtRnVuY3Rpb25zOworICAgICAgICBjbGFz
c0RlZmluaXRpb24uc3RhdGljVmFsdWVzID0gc3RhdGljTWVudUl0ZW1WYWx1ZXM7CisKKyAgICAg
ICAgbWVudUl0ZW1DbGFzcyA9IEpTQ2xhc3NDcmVhdGUoJmNsYXNzRGVmaW5pdGlvbik7CisgICAg
fQorCisgICAgcmV0dXJuIG1lbnVJdGVtQ2xhc3M7Cit9CisKKwogc3RhdGljIEpTVmFsdWVSZWYg
Y29udGV4dENsaWNrQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1
bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29u
c3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAg
IEdka0V2ZW50KiBwcmVzc0V2ZW50ID0gZ2RrX2V2ZW50X25ldyhHREtfQlVUVE9OX1BSRVNTKTsK
QEAgLTE2NSwxMyArMjE3LDcgQEAgc3RhdGljIEpTVmFsdWVSZWYgY29udGV4dENsaWNrQ2FsbGJh
Y2soSgogICAgICAgICBKU1ZhbHVlUmVmIGFycmF5VmFsdWVzW2dfbGlzdF9sZW5ndGgoaXRlbXMp
XTsKICAgICAgICAgaW50IGluZGV4ID0gMDsKICAgICAgICAgZm9yIChHTGlzdCogaXRlbSA9IGdf
bGlzdF9maXJzdChpdGVtcyk7IGl0ZW07IGl0ZW0gPSBnX2xpc3RfbmV4dChpdGVtKSkgewotICAg
ICAgICAgICAgQ1N0cmluZyBsYWJlbDsKLSAgICAgICAgICAgIGlmIChHVEtfSVNfU0VQQVJBVE9S
X01FTlVfSVRFTShpdGVtLT5kYXRhKSkKLSAgICAgICAgICAgICAgICBsYWJlbCA9ICI8c2VwYXJh
dG9yPiI7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbGFiZWwgPSBndGtfbWVu
dV9pdGVtX2dldF9sYWJlbChHVEtfTUVOVV9JVEVNKGl0ZW0tPmRhdGEpKTsKLQotICAgICAgICAg
ICAgYXJyYXlWYWx1ZXNbaW5kZXhdID0gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwgSlNTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcobGFiZWwuZGF0YSgpKSk7CisgICAgICAgICAgICBhcnJh
eVZhbHVlc1tpbmRleF0gPSBKU09iamVjdE1ha2UoY29udGV4dCwgZ2V0TWVudUl0ZW1DbGFzcygp
LCBpdGVtLT5kYXRhKTsKICAgICAgICAgICAgIGluZGV4Kys7CiAgICAgICAgIH0KICAgICAgICAg
aWYgKGluZGV4KQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNjc3MDMpCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wOS0xNyAgUGhpbGlw
cGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gZW5oYW5jZWQgY29udGV4dCBtZW51IGZv
ciBtZWRpYSBlbGVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDUwMjEKKworICAgICAgICBOZXcgdGVzdCBjaGVja2luZyB0aGUgYWN0aW9ucyB0
aGF0IGNhbiBiZSB0cmlnZ2VyZWQgYnkgYWN0aXZhdGluZworICAgICAgICB0aGUgY29udGV4LW1l
bnUgb2YgdGhlIG1lZGlhIGVsZW1lbnQuIFNraXBwZWQgb24gbWFjLCBxdCBhbmQgd2luCisgICAg
ICAgIGJlY2F1c2Ugb2YgbGFjayBvZiBEUlQgc3VwcG9ydC4KKworICAgICAgICAqIG1lZGlhL2Nv
bnRleHQtbWVudS1hY3Rpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEv
Y29udGV4dC1tZW51LWFjdGlvbnMuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFj
L1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0
Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMC0wOS0xNyAgQWxlamFuZHJvIEcuIENhc3RybyAgPGFs
ZXhAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBHVEsrIHJlYmFzZWxpbmVzLgpJ
bmRleDogTGF5b3V0VGVzdHMvbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL21lZGlhL2NvbnRleHQtbWVu
dS1hY3Rpb25zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNiBAQAorVGVz
dCB0aGUgdmFyaW91cyBhY3Rpb25zIGF2YWlsYWJsZSBpbiB0aGUgSFRNTDUgbWVkaWEgZWxlbWVu
dCBjb250ZXh0LW1lbnUuCisKK1JVTih2aWRlby5zcmMgPSAnY29udGVudC90ZXN0Lm1wNCcpCitF
VkVOVChwbGF5KQorRVhQRUNURUQgKHZpZGVvLnBhdXNlZCA9PSAnZmFsc2UnKSBPSworVG9nZ2xp
bmcgcGxheSBzdGF0ZQorRVhQRUNURUQgKHZpZGVvLnBhdXNlZCA9PSAndHJ1ZScpIE9LCisKK0VY
UEVDVEVEICh2aWRlby5tdXRlZCA9PSAnZmFsc2UnKSBPSworVG9nZ2xpbmcgbXV0ZSBzdGF0ZQor
RVhQRUNURUQgKHZpZGVvLm11dGVkID09ICd0cnVlJykgT0sKKworRVhQRUNURUQgKHZpZGVvLmNv
bnRyb2xzID09ICd0cnVlJykgT0sKK1RvZ2dsaW5nIG1lZGlhIGNvbnRyb2xzCitFWFBFQ1RFRCAo
dmlkZW8uY29udHJvbHMgPT0gJ2ZhbHNlJykgT0sKKworRVhQRUNURUQgKHZpZGVvLmxvb3AgPT0g
J2ZhbHNlJykgT0sKK1RvZ2dsaW5nIGxvb3Agc3RhdGUKK0VYUEVDVEVEICh2aWRlby5sb29wID09
ICd0cnVlJykgT0sKKworRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVu
ID09ICdmYWxzZScpIE9LCitUb2dnbGluZyBmdWxsc2NyZWVuIHN0YXRlCitFWFBFQ1RFRCAodmlk
ZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ3RydWUnKSBPSworCitFTkQgT0YgVEVT
VAorCkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9tZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkxIEBACis8aHRtbD4KKzxoZWFkPgorICAgICAg
ICA8c2NyaXB0IHNyYz0ibWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQg
c3JjPXZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisKKyAgICAgICAg
ICAgIGZ1bmN0aW9uIHBsYXlpbmcoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KCF3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVuZFRl
c3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGVuZFRl
c3QoKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKKworICAgICAgICAgICAgICAgIHZh
ciB4LCB5LCBpdGVtczsKKyAgICAgICAgICAgICAgICB4ID0gdmlkZW8ub2Zmc2V0UGFyZW50Lm9m
ZnNldExlZnQgKyB2aWRlby5vZmZzZXRMZWZ0ICsgdmlkZW8ub2Zmc2V0V2lkdGggLyAyOworICAg
ICAgICAgICAgICAgIHkgPSB2aWRlby5vZmZzZXRQYXJlbnQub2Zmc2V0VG9wICsgdmlkZW8ub2Zm
c2V0VG9wICsgdmlkZW8ub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgICAgICAgICBldmVudFNl
bmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAgICAgICAgICAgICAgICBpdGVtcyA9IGV2ZW50U2Vu
ZGVyLmNvbnRleHRDbGljaygpOworCisKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGl0ZW1zLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKGl0ZW1zW2ldLnRpdGxlLm1hdGNoKCJDb250cm9scyIpKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8uY29udHJvbHMiLCB0cnVlLCAnPT0nKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUb2dnbGluZyBtZWRpYSBjb250
cm9scyIpOworICAgICAgICAgICAgICAgICAgICAgICBpdGVtc1tpXS5jbGljaygpOworICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmNvbnRyb2xzIiwgZmFsc2UsICc9
PScpOworICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLnRpdGxlLm1h
dGNoKCJQYXVzZSIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlk
ZW8ucGF1c2VkIiwgZmFsc2UsICc9PScpOworICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xl
V3JpdGUoIlRvZ2dsaW5nIHBsYXkgc3RhdGUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgaXRl
bXNbaV0uY2xpY2soKTsKKyAgICAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRl
by5wYXVzZWQiLCB0cnVlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZVdy
aXRlKCIiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGlm
IChpdGVtc1tpXS50aXRsZS5tYXRjaCgiTG9vcCIpKSB7CisgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RFeHBlY3RlZCgidmlkZW8ubG9vcCIsIGZhbHNlLCAnPT0nKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgY29uc29sZVdyaXRlKCJUb2dnbGluZyBsb29wIHN0YXRlIik7CisgICAgICAgICAg
ICAgICAgICAgICAgIGl0ZW1zW2ldLmNsaWNrKCk7CisgICAgICAgICAgICAgICAgICAgICAgIHRl
c3RFeHBlY3RlZCgidmlkZW8ubG9vcCIsIHRydWUsICc9PScpOworICAgICAgICAgICAgICAgICAg
ICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLnRpdGxlLm1hdGNoKCJNdXRlIikpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5tdXRlZCIsIGZhbHNlLCAnPT0nKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUb2dnbGluZyBtdXRlIHN0YXRl
Iik7CisgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zW2ldLmNsaWNrKCk7CisgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ubXV0ZWQiLCB0cnVlLCAnPT0nKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtc1tpXS50aXRsZS5tYXRjaCgiRnVs
bHNjcmVlbiIpICYmIHZpZGVvLndlYmtpdFN1cHBvcnRzRnVsbHNjcmVlbikgeworICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2Ny
ZWVuIiwgZmFsc2UsICc9PScpOworICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUo
IlRvZ2dsaW5nIGZ1bGxzY3JlZW4gc3RhdGUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgaXRl
bXNbaV0uY2xpY2soKTsKKyAgICAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRl
by53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiIsIHRydWUsICc9PScpOworICAgICAgICAgICAg
ICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgICAgICAgLy8gVE9ETzogdGVzdCBjb3B5IGxpbmsgbG9jYXRpb24gYW5kIG9w
ZW4gaW4gbmV3IHdpbmRvdy4KKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgIGVuZFRl
c3QoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gc3RhcnQoKQorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKKyAgICAgICAg
ICAgICAgICB3YWl0Rm9yRXZlbnQoJ3BsYXknLCBwbGF5aW5nKTsKKyAgICAgICAgICAgICAgICBy
dW4oInZpZGVvLnNyYyA9ICciICsgZmluZE1lZGlhRmlsZSgidmlkZW8iLCAiY29udGVudC90ZXN0
IikgKyAiJyIpOworICAgICAgICAgICAgfQorCisgICAgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InN0YXJ0KCkiPgorICAgIDxwPlRlc3QgdGhlIHZhcmlvdXMgYWN0aW9ucyBh
dmFpbGFibGUgaW4gdGhlIEhUTUw1IG1lZGlhIGVsZW1lbnQgY29udGV4dC1tZW51LjwvcD4KKyAg
ICA8dmlkZW8gaWQ9InZpZGVvIiBhdXRvcGxheSBjb250cm9scz48L3ZpZGVvPgorPC9ib2R5Pgor
PC9odG1sPgorCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAkocmV2aXNpb24gNjc3MDMp
CisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAt
MzEwLDMgKzMxMCw3IEBAIGZhc3QvZmlsZXMvd29ya2VycwogCiAjIHZpZXdwb3J0IG1ldGEgdGFn
IHN1cHBvcnQKIGZhc3Qvdmlld3BvcnQKKworIyBuZWVkcyBlbmhhbmNlZCBldmVudFNlbmRlci5j
b250ZXh0TWVudSgpIHJldHVybiB2YWx1ZQorIyBzZWUgYWxzbyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUwMjEKK21lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0
bWwKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAkocmV2aXNpb24gNjc3MDMpCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0yMjY5LDYgKzIy
NjksOCBAQCBlZGl0aW5nL3NlbGVjdGlvbi81MTk1MTY2LTEuaHRtbAogCiAjIG1pc3NpbmcgRFJU
IGZlYXR1cmUsIHNlZSBhbHNvIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zOTEwMgogZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LW9uLXRleHQuaHRtbAorIyBh
bmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MDIxCittZWRpYS9j
b250ZXh0LW1lbnUtYWN0aW9ucy5odG1sCiAKICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIwogIyBG
YWlsaW5nIGVkaXRpbmcvc3BlbGxpbmcgdGVzdHMKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lw
cGVkCShyZXZpc2lvbiA2NzcwMykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVk
CSh3b3JraW5nIGNvcHkpCkBAIC0yOTcsNiArMjk3LDggQEAgaHR0cC90ZXN0cy9jc3MvY3NzLWlt
YWdlLWxvYWRpbmcuaHRtbAogCiAjIG1pc3NpbmcgRFJUIGZlYXR1cmUsIHNlZSBhbHNvIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTEwMgogZWRpdGluZy9zZWxlY3Rp
b24vY29udGV4dC1tZW51LW9uLXRleHQuaHRtbAorIyBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ1MDIxCittZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy5odG1s
CiAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBObyBi
dWdzIGZpbGVkIGFib3V0IHRoZSBiZWxvdyB5ZXQjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68097</attachid>
            <date>2010-09-20 09:33:27 -0700</date>
            <delta_ts>2014-02-25 21:31:57 -0800</delta_ts>
            <desc>updated patch</desc>
            <filename>updated-patch.patch</filename>
            <type>text/plain</type>
            <size>73089</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA4ZjhiZWFmM2E1YzM2OTVjYzMyNWU2Zjc1NDE3Y2RhNDlmODU2OWM5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBwaGlsbkB3ZWJraXQub3JnIDxwaGlsbkB3ZWJraXQub3JnPgpE
YXRlOiBNb24sIDIwIFNlcCAyMDEwIDExOjMyOjExICswMjAwClN1YmplY3Q6IFtQQVRDSF0gdXBk
YXRlZCBwYXRjaAoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTcgKysrCiAuLi4vbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMtZXhw
ZWN0ZWQudHh0ICAgICAgICB8ICAgMjYgKysrKwogTGF5b3V0VGVzdHMvbWVkaWEvY29udGV4dC1t
ZW51LWFjdGlvbnMuaHRtbCAgICAgICAgfCAgIDkxICsrKysrKysrKysrKysKIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9Ta2lwcGVkICAgICAgICAgICAgICAgICAgIHwgICAgNCArCiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgICAgICAgICAgICAgICAgICAgfCAgICAyICsK
IFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEy
MSArKysrKysrKysrKysrKysrKysKIFdlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIu
Y3BwICAgICAgICAgICAgIHwgICAyMiArKysKIFdlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnUu
Y3BwICAgICAgICAgICAgICAgICAgIHwgICA3MSArKysrKysrKystCiBXZWJDb3JlL3BsYXRmb3Jt
L0NvbnRleHRNZW51SXRlbS5oICAgICAgICAgICAgICAgICB8ICAgIDggKwogV2ViQ29yZS9wbGF0
Zm9ybS9Mb2NhbGl6YXRpb25TdHJhdGVneS5oICAgICAgICAgICAgfCAgIDExICsrCiBXZWJDb3Jl
L3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwICAgICAgICAgICAgICB8ICAgNTEgKysrKysr
KysKIFdlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oICAgICAgICAgICAgICAgIHwg
ICAxMSArKwogLi4uL3BsYXRmb3JtL2FuZHJvaWQvTG9jYWxpemVkU3RyaW5nc0FuZHJvaWQuY3Bw
ICAgfCAgIDYwICsrKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9icmV3L0xvY2FsaXplZFN0cmlu
Z3NCcmV3LmNwcCAgICAgfCAgIDUwICsrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0vZWZsL0xvY2Fs
aXplZFN0cmluZ3NFZmwuY3BwICAgICAgIHwgICA1MCArKysrKysrCiBXZWJDb3JlL3BsYXRmb3Jt
L2d0ay9Db250ZXh0TWVudUl0ZW1HdGsuY3BwICAgICAgICB8ICAgMTMgKystCiBXZWJDb3JlL3Bs
YXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcCAgICAgICB8ICAgNTEgKysrKysrKysK
IFdlYkNvcmUvcGxhdGZvcm0vaGFpa3UvTG9jYWxpemVkU3RyaW5nc0hhaWt1LmNwcCAgIHwgICA1
MCArKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHAgICAg
ICAgICB8ICAgNTAgKysrKysrKwogV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAg
ICAgICAgICAgICAgICAgfCAgMTM1ICsrKysrKysrKysrKysrKysrKy0tCiBXZWJDb3JlL3JlbmRl
cmluZy9IaXRUZXN0UmVzdWx0LmggICAgICAgICAgICAgICAgICB8ICAgMTkgKysrCiBXZWJLaXQv
Q2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKysKIFdl
YktpdC9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MgICAgICAgICAgIHwgIEJpbiA1
MjAyNiAtPiA1MzQwNiBieXRlcwogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDIxICsrKwogV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2NhbGl6ZWRT
dHJpbmdzLmNwcCAgICAgICAgICAgfCAgIDEwICsrCiBXZWJLaXQvbWFjL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjIgKysrCiBXZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oICB8ICAgMTAgKysKIFdlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tIHwgICA1MCArKysrKysrCiBXZWJL
aXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjAgKysr
CiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCB8ICAg
NTAgKysrKysrKwogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5oICAgfCAgIDEwICsrCiBXZWJLaXQvd2luL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMjIgKysrCiAuLi4vd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5jcHAgICB8ICAgNTAgKysrKysrKwogV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAgfCAgIDEwICsrCiBXZWJLaXQyL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjMgKysrKwogLi4uL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgICAgICAgfCAgIDUwICsrKysrKysKIC4u
Li9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAgICAgICAgIHwgICAxMCAr
KwogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDE3ICsrKwogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0V2ZW50U2VuZGVyLmNwcCAg
ICAgfCAgIDYwICsrKysrKysrLQogNDAgZmlsZXMgY2hhbmdlZCwgMTMzMyBpbnNlcnRpb25zKCsp
LCAyOCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9tZWRpYS9j
b250ZXh0LW1lbnUtYWN0aW9ucy1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy9tZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy5odG1sCgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQ0NTMwMjMu
LmNlZjQyZmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wOS0xNSAgUGhpbGlwcGUgTm9y
bWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgW0dUS10gZW5oYW5jZWQgY29udGV4dCBtZW51IGZvciBtZWRp
YSBlbGVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDUwMjEKKworICAgICAgICBOZXcgdGVzdCBjaGVja2luZyB0aGUgYWN0aW9ucyB0aGF0IGNh
biBiZSB0cmlnZ2VyZWQgYnkgYWN0aXZhdGluZworICAgICAgICB0aGUgY29udGV4LW1lbnUgb2Yg
dGhlIG1lZGlhIGVsZW1lbnQuIFNraXBwZWQgb24gbWFjLCBxdCBhbmQgd2luCisgICAgICAgIGJl
Y2F1c2Ugb2YgbGFjayBvZiBEUlQgc3VwcG9ydC4KKworICAgICAgICAqIG1lZGlhL2NvbnRleHQt
bWVudS1hY3Rpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvY29udGV4
dC1tZW51LWFjdGlvbnMuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBw
ZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93
aW4vU2tpcHBlZDoKKwogMjAxMC0wOS0yMCAgSmFtZXMgS296aWFuc2tpICA8a296QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBPamFuIFZhZmFpLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5MThmM2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9tZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwyNiBAQAorVGVzdCB0aGUgdmFyaW91cyBhY3Rpb25zIGF2YWlsYWJsZSBpbiB0aGUgSFRNTDUg
bWVkaWEgZWxlbWVudCBjb250ZXh0LW1lbnUuCisKK1JVTih2aWRlby5zcmMgPSAnY29udGVudC90
ZXN0Lm1wNCcpCitFVkVOVChwbGF5KQorRVhQRUNURUQgKHZpZGVvLnBhdXNlZCA9PSAnZmFsc2Un
KSBPSworVG9nZ2xpbmcgcGxheSBzdGF0ZQorRVhQRUNURUQgKHZpZGVvLnBhdXNlZCA9PSAndHJ1
ZScpIE9LCisKK0VYUEVDVEVEICh2aWRlby5tdXRlZCA9PSAnZmFsc2UnKSBPSworVG9nZ2xpbmcg
bXV0ZSBzdGF0ZQorRVhQRUNURUQgKHZpZGVvLm11dGVkID09ICd0cnVlJykgT0sKKworRVhQRUNU
RUQgKHZpZGVvLmNvbnRyb2xzID09ICd0cnVlJykgT0sKK1RvZ2dsaW5nIG1lZGlhIGNvbnRyb2xz
CitFWFBFQ1RFRCAodmlkZW8uY29udHJvbHMgPT0gJ2ZhbHNlJykgT0sKKworRVhQRUNURUQgKHZp
ZGVvLmxvb3AgPT0gJ2ZhbHNlJykgT0sKK1RvZ2dsaW5nIGxvb3Agc3RhdGUKK0VYUEVDVEVEICh2
aWRlby5sb29wID09ICd0cnVlJykgT0sKKworRVhQRUNURUQgKHZpZGVvLndlYmtpdERpc3BsYXlp
bmdGdWxsc2NyZWVuID09ICdmYWxzZScpIE9LCitUb2dnbGluZyBmdWxsc2NyZWVuIHN0YXRlCitF
WFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ3RydWUnKSBPSwor
CitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9jb250ZXh0LW1l
bnUtYWN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZTgwZjE0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMuaHRtbApA
QCAtMCwwICsxLDkxIEBACis8aHRtbD4KKzxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVk
aWEtZmlsZS5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPXZpZGVvLXRlc3QuanM+
PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHBsYXlp
bmcoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5k
ZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZp
bmRNZWRpYUVsZW1lbnQoKTsKKworICAgICAgICAgICAgICAgIHZhciB4LCB5LCBpdGVtczsKKyAg
ICAgICAgICAgICAgICB4ID0gdmlkZW8ub2Zmc2V0UGFyZW50Lm9mZnNldExlZnQgKyB2aWRlby5v
ZmZzZXRMZWZ0ICsgdmlkZW8ub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAgICAgICAgIHkgPSB2
aWRlby5vZmZzZXRQYXJlbnQub2Zmc2V0VG9wICsgdmlkZW8ub2Zmc2V0VG9wICsgdmlkZW8ub2Zm
c2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4
LCB5KTsKKyAgICAgICAgICAgICAgICBpdGVtcyA9IGV2ZW50U2VuZGVyLmNvbnRleHRDbGljaygp
OworCisKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsg
aSsrKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1zW2ld
LnRpdGxlLm1hdGNoKCJDb250cm9scyIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgIHRlc3RF
eHBlY3RlZCgidmlkZW8uY29udHJvbHMiLCB0cnVlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgY29uc29sZVdyaXRlKCJUb2dnbGluZyBtZWRpYSBjb250cm9scyIpOworICAgICAgICAg
ICAgICAgICAgICAgICBpdGVtc1tpXS5jbGljaygpOworICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoInZpZGVvLmNvbnRyb2xzIiwgZmFsc2UsICc9PScpOworICAgICAgICAgICAg
ICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLnRpdGxlLm1hdGNoKCJQYXVzZSIpKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ucGF1c2VkIiwgZmFsc2Us
ICc9PScpOworICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRvZ2dsaW5nIHBs
YXkgc3RhdGUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNbaV0uY2xpY2soKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5wYXVzZWQiLCB0cnVlLCAn
PT0nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtc1tpXS50aXRsZS5t
YXRjaCgiTG9vcCIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlk
ZW8ubG9vcCIsIGZhbHNlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZVdy
aXRlKCJUb2dnbGluZyBsb29wIHN0YXRlIik7CisgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1z
W2ldLmNsaWNrKCk7CisgICAgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8u
bG9vcCIsIHRydWUsICc9PScpOworICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUo
IiIpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGl0
ZW1zW2ldLnRpdGxlLm1hdGNoKCJNdXRlIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgdGVz
dEV4cGVjdGVkKCJ2aWRlby5tdXRlZCIsIGZhbHNlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgY29uc29sZVdyaXRlKCJUb2dnbGluZyBtdXRlIHN0YXRlIik7CisgICAgICAgICAgICAg
ICAgICAgICAgIGl0ZW1zW2ldLmNsaWNrKCk7CisgICAgICAgICAgICAgICAgICAgICAgIHRlc3RF
eHBlY3RlZCgidmlkZW8ubXV0ZWQiLCB0cnVlLCAnPT0nKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICAgICAgICAgIGlmIChpdGVtc1tpXS50aXRsZS5tYXRjaCgiRnVsbHNjcmVlbiIpICYmIHZpZGVv
LndlYmtpdFN1cHBvcnRzRnVsbHNjcmVlbikgeworICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
RXhwZWN0ZWQoInZpZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIiwgZmFsc2UsICc9PScp
OworICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRvZ2dsaW5nIGZ1bGxzY3Jl
ZW4gc3RhdGUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNbaV0uY2xpY2soKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby53ZWJraXREaXNwbGF5aW5n
RnVsbHNjcmVlbiIsIHRydWUsICc9PScpOworICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xl
V3JpdGUoIiIpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAg
Ly8gVE9ETzogdGVzdCBjb3B5IGxpbmsgbG9jYXRpb24gYW5kIG9wZW4gaW4gbmV3IHdpbmRvdy4K
KyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgZnVuY3Rpb24gc3RhcnQoKQorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICB3YWl0Rm9yRXZl
bnQoJ3BsYXknLCBwbGF5aW5nKTsKKyAgICAgICAgICAgICAgICBydW4oInZpZGVvLnNyYyA9ICci
ICsgZmluZE1lZGlhRmlsZSgidmlkZW8iLCAiY29udGVudC90ZXN0IikgKyAiJyIpOworICAgICAg
ICAgICAgfQorCisgICAgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InN0YXJ0
KCkiPgorICAgIDxwPlRlc3QgdGhlIHZhcmlvdXMgYWN0aW9ucyBhdmFpbGFibGUgaW4gdGhlIEhU
TUw1IG1lZGlhIGVsZW1lbnQgY29udGV4dC1tZW51LjwvcD4KKyAgICA8dmlkZW8gaWQ9InZpZGVv
IiBhdXRvcGxheSBjb250cm9scz48L3ZpZGVvPgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9Ta2lwcGVkCmluZGV4IGI4Y2E1MjguLmI0MTExYWUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9Ta2lwcGVkCkBAIC0zMTAsMyArMzEwLDcgQEAgZmFzdC9maWxlcy93b3JrZXJzCiAKICMgdmll
d3BvcnQgbWV0YSB0YWcgc3VwcG9ydAogZmFzdC92aWV3cG9ydAorCisjIG5lZWRzIGVuaGFuY2Vk
IGV2ZW50U2VuZGVyLmNvbnRleHRNZW51KCkgcmV0dXJuIHZhbHVlCisjIHNlZSBhbHNvIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTAyMQorbWVkaWEvY29udGV4dC1t
ZW51LWFjdGlvbnMuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tp
cHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKaW5kZXggNjQxNzI0Ny4uMDI0
MTk0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC0yMjcwLDYgKzIyNzAsOCBAQCBlZGl0
aW5nL3NlbGVjdGlvbi81MTk1MTY2LTEuaHRtbAogCiAjIG1pc3NpbmcgRFJUIGZlYXR1cmUsIHNl
ZSBhbHNvIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTEwMgogZWRp
dGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LW9uLXRleHQuaHRtbAorIyBhbmQgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MDIxCittZWRpYS9jb250ZXh0LW1lbnUt
YWN0aW9ucy5odG1sCiAKICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIwogIyBGYWlsaW5nIGVkaXRp
bmcvc3BlbGxpbmcgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9T
a2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggNjJjZWFkOC4u
MTBlNzY4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTI5OCw2ICsyOTgsOCBAQCBo
dHRwL3Rlc3RzL2Nzcy9jc3MtaW1hZ2UtbG9hZGluZy5odG1sCiAKICMgbWlzc2luZyBEUlQgZmVh
dHVyZSwgc2VlIGFsc28gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5
MTAyCiBlZGl0aW5nL3NlbGVjdGlvbi9jb250ZXh0LW1lbnUtb24tdGV4dC5odG1sCisjIGFuZCBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUwMjEKK21lZGlhL2NvbnRl
eHQtbWVudS1hY3Rpb25zLmh0bWwKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIE5vIGJ1Z3MgZmlsZWQgYWJvdXQgdGhlIGJlbG93IHlldCMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGFjZmY2NzUuLjIyOTg0ODggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTI0IEBACisyMDEwLTA5
LTIwICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBlbmhhbmNlZCBjb250
ZXh0IG1lbnUgZm9yIG1lZGlhIGVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00NTAyMQorCisgICAgICAgIE5ldyBpdGVtcyBpbiB0aGUgbWVk
aWEgRWxlbWVudCBjb250ZXh0IG1lbnU6CisgICAgICAgIC0gcGxheS9wYXVzZQorICAgICAgICAt
IG11dGUvdW5tdXRlCisgICAgICAgIC0gY29udHJvbHMgZGlzcGxheSBjb250cm9sCisgICAgICAg
IC0gc3dpdGNoIHRvIGZ1bGxzY3JlZW4gKGZvciB2aWRlbyBvbmx5KQorICAgICAgICAtIGxvb3Ag
cGxheWJhY2sgY29udHJvbAorICAgICAgICAtIGNvcHkgbWVkaWEgdXJsIHRvIGNsaXBib2FyZAor
ICAgICAgICAtIG9wZW4gaW4gbmV3IHdpbmRvdworCisgICAgICAgIFRlc3Q6IG1lZGlhL2NvbnRl
eHQtbWVudS1hY3Rpb25zLmh0bWwKKworICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4
dE1lbnVJdGVtU2VsZWN0ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Ojpwb3B1bGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZXh0TWVudTo6Y2hlY2tPckVuYWJsZUlmTmVlZGVkKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9Db250ZXh0TWVudUl0ZW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6YXRpb25T
dHJhdGVneS5oOgorICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3cpOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3cp
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xp
cGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xp
bmtUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dn
bGVNZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Rv
Z2dsZU1lZGlhTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRl
clZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdN
ZWRpYVBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVz
ZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9h
bmRyb2lkL0xvY2FsaXplZFN0cmluZ3NBbmRyb2lkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQpOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3ApOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4p
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9i
cmV3L0xvY2FsaXplZFN0cmluZ3NCcmV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3ApOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvTG9j
YWxpemVkU3RyaW5nc0VmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1U
YWdPcGVuVmlkZW9Jbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVu
dUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMpOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSk6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ01lZGlhTXV0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0NvbnRleHRNZW51
SXRlbUd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpndGtTdG9ja0lERnJvbUNvbnRleHRNZW51
QWN0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5nc0d0ay5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRv
dyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dp
bmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5r
VG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUF1
ZGlvTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z1RvZ2dsZU1lZGlhQ29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnVG9nZ2xlTWVkaWFMb29wKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z0VudGVyVmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ01lZGlhUGxheSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRp
YVBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSk6
CisgICAgICAgICogcGxhdGZvcm0vaGFpa3UvTG9jYWxpemVkU3RyaW5nc0hhaWt1LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0Ns
aXBib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9M
aW5rVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9n
Z2xlTWVkaWFDb250cm9scyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdU
b2dnbGVNZWRpYUxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRW50
ZXJWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFn
TWVkaWFQbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1
c2UpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS93eC9Mb2NhbGl6ZWRTdHJpbmdzV3guY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3cpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3cpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJkKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBi
b2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNv
bnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlh
TG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVs
bHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkp
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUpOgorICAgICAgICAqIHJl
bmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXN1
bHQ6OmFic29sdXRlTWVkaWFVUkwpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6
bWVkaWFTdXBwb3J0c0Z1bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3Vs
dDo6bWVkaWFFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQ6OnRvZ2ds
ZU1lZGlhQ29udHJvbHNEaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQ6
OnRvZ2dsZU1lZGlhTG9vcFBsYXliYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXN1
bHQ6OmVudGVyRnVsbHNjcmVlbkZvclZpZGVvKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RS
ZXN1bHQ6Om1lZGlhQ29udHJvbHNFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RS
ZXN1bHQ6Om1lZGlhTG9vcEVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3Vs
dDo6bWVkaWFQbGF5aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQ6OnRvZ2ds
ZU1lZGlhUGxheVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQ6Om1lZGlh
SGFzQXVkaW8pOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6bWVkaWFNdXRlZCk6
CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0Ojp0b2dnbGVNZWRpYU11dGVTdGF0ZSk6
CisgICAgICAgICogcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaDoKKwogMjAxMC0wOS0xOSAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjY3NzQ5LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0NvbnRl
eHRNZW51Q29udHJvbGxlci5jcHAgYi9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVy
LmNwcAppbmRleCBkMjMxN2QyLi5kZTY0OTg4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvQ29u
dGV4dE1lbnVDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250
cm9sbGVyLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEw
IElnYWxpYSBTLkwKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTg2LDYgKzE4
NywyNyBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0
ZWQoQ29udGV4dE1lbnVJdGVtKiBpdGVtKQogICAgICAgICAvLyBGb3Igbm93LCBjYWxsIGludG8g
dGhlIGNsaWVudC4gVGhpcyBpcyB0ZW1wb3JhcnkhCiAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS0+
Y29weUltYWdlKHJlc3VsdCk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29udGV4dE1lbnVJ
dGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3c6CisgICAgICAgIG9wZW5OZXdXaW5kb3cocmVzdWx0
LmFic29sdXRlTWVkaWFVUkwoKSwgZnJhbWUpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENv
bnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZDoKKyAgICAgICAgZnJhbWUt
PmVkaXRvcigpLT5jb3B5VVJMKHJlc3VsdC5hYnNvbHV0ZU1lZGlhVVJMKCksIHJlc3VsdC50ZXh0
Q29udGVudCgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdU
b2dnbGVNZWRpYUNvbnRyb2xzOgorICAgICAgICByZXN1bHQudG9nZ2xlTWVkaWFDb250cm9sc0Rp
c3BsYXkoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUb2dn
bGVNZWRpYUxvb3A6CisgICAgICAgIHJlc3VsdC50b2dnbGVNZWRpYUxvb3BQbGF5YmFjaygpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxs
c2NyZWVuOgorICAgICAgICByZXN1bHQuZW50ZXJGdWxsc2NyZWVuRm9yVmlkZW8oKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXlQYXVzZToKKyAg
ICAgICAgcmVzdWx0LnRvZ2dsZU1lZGlhUGxheVN0YXRlKCk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlOgorICAgICAgICByZXN1bHQudG9nZ2xl
TWVkaWFNdXRlU3RhdGUoKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0
ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdzogewogICAgICAgICBEb2N1bWVudExvYWRlciogbG9h
ZGVyID0gZnJhbWUtPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpOwogICAgICAgICBpZiAoIWxv
YWRlci0+dW5yZWFjaGFibGVVUkwoKS5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL0NvbnRleHRNZW51LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnUuY3Bw
CmluZGV4IDM3ZDRjMmIuLmNhMWY3MTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vQ29u
dGV4dE1lbnUuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnUuY3BwCkBAIC0x
LDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ2hyaXN0aWFuIER5d2Fu
IDxjaHJpc3RpYW5AaW1lbmRpby5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMu
TAogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yODIsNiArMjgzLDE5IEBAIHZv
aWQgQ29udGV4dE1lbnU6OnBvcHVsYXRlKCkKICAgICAgICAgY29udGV4dE1lbnVJdGVtVGFnRG93
bmxvYWRJbWFnZVRvRGlzaygpKTsKICAgICBDb250ZXh0TWVudUl0ZW0gQ29weUltYWdlSXRlbShB
Y3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCwgCiAgICAg
ICAgIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkpOworICAgIENvbnRl
eHRNZW51SXRlbSBPcGVuTWVkaWFJbk5ld1dpbmRvd0l0ZW0oQWN0aW9uVHlwZSwgQ29udGV4dE1l
bnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3csIFN0cmluZygpKTsKKyAgICBDb250ZXh0TWVu
dUl0ZW0gQ29weU1lZGlhTGlua0l0ZW0oQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnQ29w
eU1lZGlhTGlua1RvQ2xpcGJvYXJkLCAKKyAgICAgICAgU3RyaW5nKCkpOworICAgIENvbnRleHRN
ZW51SXRlbSBNZWRpYVBsYXlQYXVzZShBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdNZWRp
YVBsYXlQYXVzZSwgCisgICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpKTsKKyAg
ICBDb250ZXh0TWVudUl0ZW0gTWVkaWFNdXRlKEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRh
Z01lZGlhTXV0ZSwgCisgICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpKTsKKyAg
ICBDb250ZXh0TWVudUl0ZW0gVG9nZ2xlTWVkaWFDb250cm9scyhDaGVja2FibGVBY3Rpb25UeXBl
LCBDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzLCAKKyAgICAgICAgY29udGV4
dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpKTsKKyAgICBDb250ZXh0TWVudUl0ZW0g
VG9nZ2xlTWVkaWFMb29wKENoZWNrYWJsZUFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ1Rv
Z2dsZU1lZGlhTG9vcCwgCisgICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9v
cCgpKTsKKyAgICBDb250ZXh0TWVudUl0ZW0gRW50ZXJWaWRlb0Z1bGxzY3JlZW4oQWN0aW9uVHlw
ZSwgQ29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4sIAorICAgICAgICBjb250
ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpKTsKICNpZiBQTEFURk9STShNQUMp
CiAgICAgQ29udGV4dE1lbnVJdGVtIFNlYXJjaFNwb3RsaWdodEl0ZW0oQWN0aW9uVHlwZSwgQ29u
dGV4dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90bGlnaHQsIAogICAgICAgICBjb250ZXh0TWVudUl0
ZW1UYWdTZWFyY2hJblNwb3RsaWdodCgpKTsKQEAgLTM0OSw3ICszNjMsMjMgQEAgdm9pZCBDb250
ZXh0TWVudTo6cG9wdWxhdGUoKQogICAgICAgICAgICAgICAgIGFwcGVuZEl0ZW0oQ29weUltYWdl
SXRlbSk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoaW1hZ2VVUkwuaXNFbXB0eSgpICYmIGxp
bmtVUkwuaXNFbXB0eSgpKSB7CisgICAgICAgIEtVUkwgbWVkaWFVUkwgPSByZXN1bHQuYWJzb2x1
dGVNZWRpYVVSTCgpOworICAgICAgICBpZiAoIW1lZGlhVVJMLmlzRW1wdHkoKSkgeworICAgICAg
ICAgICAgaWYgKCFsaW5rVVJMLmlzRW1wdHkoKSB8fCAhaW1hZ2VVUkwuaXNFbXB0eSgpKQorICAg
ICAgICAgICAgICAgIGFwcGVuZEl0ZW0oKnNlcGFyYXRvckl0ZW0oKSk7CisKKyAgICAgICAgICAg
IGFwcGVuZEl0ZW0oTWVkaWFQbGF5UGF1c2UpOworICAgICAgICAgICAgYXBwZW5kSXRlbShNZWRp
YU11dGUpOworICAgICAgICAgICAgYXBwZW5kSXRlbShUb2dnbGVNZWRpYUNvbnRyb2xzKTsKKyAg
ICAgICAgICAgIGFwcGVuZEl0ZW0oVG9nZ2xlTWVkaWFMb29wKTsKKyAgICAgICAgICAgIGFwcGVu
ZEl0ZW0oRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOworCisgICAgICAgICAgICBhcHBlbmRJdGVtKCpz
ZXBhcmF0b3JJdGVtKCkpOworICAgICAgICAgICAgYXBwZW5kSXRlbShDb3B5TWVkaWFMaW5rSXRl
bSk7CisgICAgICAgICAgICBhcHBlbmRJdGVtKE9wZW5NZWRpYUluTmV3V2luZG93SXRlbSk7Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAoaW1hZ2VVUkwuaXNFbXB0eSgpICYmIGxpbmtVUkwuaXNF
bXB0eSgpICYmIG1lZGlhVVJMLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgaWYgKHJlc3VsdC5p
c1NlbGVjdGVkKCkpIHsKICAgICAgICAgICAgICAgICBpZiAoc2VsZWN0aW9uQ29udGFpbnNQb3Nz
aWJsZVdvcmQoZnJhbWUpKSB7CiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMzc1LDEyICs0MDUsNiBA
QCB2b2lkIENvbnRleHRNZW51Ojpwb3B1bGF0ZSgpCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAg
ICAgICAgICAgICAgICBpZiAoIShmcmFtZS0+cGFnZSgpICYmIGZyYW1lLT5wYWdlKCktPmluc3Bl
Y3RvckNvbnRyb2xsZXIoKS0+aGFzSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQoKSkpIHsKICNlbmRp
ZgotI2lmIFBMQVRGT1JNKEdUSykKLSAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKEJhY2tJdGVt
KTsKLSAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKEZvcndhcmRJdGVtKTsKLSAgICAgICAgICAg
ICAgICBhcHBlbmRJdGVtKFN0b3BJdGVtKTsKLSAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKFJl
bG9hZEl0ZW0pOwotI2Vsc2UKICAgICAgICAgICAgICAgICBpZiAoZnJhbWUtPnBhZ2UoKSAmJiBm
cmFtZS0+cGFnZSgpLT5jYW5Hb0JhY2tPckZvcndhcmQoLTEpKQogICAgICAgICAgICAgICAgICAg
ICBhcHBlbmRJdGVtKEJhY2tJdGVtKTsKIApAQCAtMzkzLDcgKzQxNyw2IEBAIHZvaWQgQ29udGV4
dE1lbnU6OnBvcHVsYXRlKCkKICAgICAgICAgICAgICAgICAgICAgYXBwZW5kSXRlbShTdG9wSXRl
bSk7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBhcHBlbmRJdGVt
KFJlbG9hZEl0ZW0pOwotI2VuZGlmCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAgICAgICAg
ICAgICB9CiAjZW5kaWYKQEAgLTc4OCw2ICs4MTEsMjggQEAgdm9pZCBDb250ZXh0TWVudTo6Y2hl
Y2tPckVuYWJsZUlmTmVlZGVkKENvbnRleHRNZW51SXRlbSYgaXRlbSkgY29uc3QKICAgICAgICAg
Y2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvdzoKICAgICAgICAgY2Fz
ZSBDb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrOgogICAgICAgICBjYXNlIENv
bnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkOgorICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3c6Cisg
ICAgICAgICAgICBpZiAobV9oaXRUZXN0UmVzdWx0Lm1lZGlhSXNWaWRlbygpKQorICAgICAgICAg
ICAgICAgIGl0ZW0uc2V0VGl0bGUoY29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5k
b3coKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgaXRlbS5zZXRUaXRsZShj
b250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdygpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBi
b2FyZDoKKyAgICAgICAgICAgIGlmIChtX2hpdFRlc3RSZXN1bHQubWVkaWFJc1ZpZGVvKCkpCisg
ICAgICAgICAgICAgICAgaXRlbS5zZXRUaXRsZShjb250ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9M
aW5rVG9DbGlwYm9hcmQoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgaXRl
bS5zZXRUaXRsZShjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQoKSk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUb2dn
bGVNZWRpYUNvbnRyb2xzOgorICAgICAgICAgICAgc2hvdWxkQ2hlY2sgPSBtX2hpdFRlc3RSZXN1
bHQubWVkaWFDb250cm9sc0VuYWJsZWQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIENvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcDoKKyAgICAgICAgICAgIHNob3Vs
ZENoZWNrID0gbV9oaXRUZXN0UmVzdWx0Lm1lZGlhTG9vcEVuYWJsZWQoKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2Ny
ZWVuOgorICAgICAgICAgICAgc2hvdWxkRW5hYmxlID0gbV9oaXRUZXN0UmVzdWx0Lm1lZGlhU3Vw
cG9ydHNGdWxsc2NyZWVuKCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDb250
ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdzoKICAgICAgICAgY2FzZSBDb250ZXh0
TWVudUl0ZW1UYWdTcGVsbGluZ0d1ZXNzOgogICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRh
Z090aGVyOgpAQCAtODIzLDYgKzg2OCwxNiBAQCB2b2lkIENvbnRleHRNZW51OjpjaGVja09yRW5h
YmxlSWZOZWVkZWQoQ29udGV4dE1lbnVJdGVtJiBpdGVtKSBjb25zdAogICAgICAgICBjYXNlIENv
bnRleHRNZW51SXRlbUxhc3RDdXN0b21UYWc6CiAgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVt
QmFzZUFwcGxpY2F0aW9uVGFnOgogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ29u
dGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5UGF1c2U6CisgICAgICAgICAgICBpZiAobV9oaXRUZXN0
UmVzdWx0Lm1lZGlhUGxheWluZygpKQorICAgICAgICAgICAgICAgIGl0ZW0uc2V0VGl0bGUoY29u
dGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICBpdGVtLnNldFRpdGxlKGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0
ZToKKyAgICAgICAgICAgIHNob3VsZEVuYWJsZSA9IG1faGl0VGVzdFJlc3VsdC5tZWRpYUhhc0F1
ZGlvKCk7CisgICAgICAgICAgICBzaG91bGRDaGVjayA9IHNob3VsZEVuYWJsZSAmJiAgbV9oaXRU
ZXN0UmVzdWx0Lm1lZGlhTXV0ZWQoKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAg
IGl0ZW0uc2V0Q2hlY2tlZChzaG91bGRDaGVjayk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL0NvbnRleHRNZW51SXRlbS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0u
aAppbmRleCAwNThmNjQ0Li5mN2ZhNWU2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0Nv
bnRleHRNZW51SXRlbS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgK
QEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVy
LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxp
YSBTLkwKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTQzLDYgKzE0NCwxMyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIENvbnRleHRNZW51SXRlbVRhZ0NhcGl0YWxp
emUsCiAgICAgICAgIENvbnRleHRNZW51SXRlbVRhZ0NoYW5nZUJhY2ssCiAjZW5kaWYKKyAgICAg
ICAgQ29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3csCisgICAgICAgIENvbnRl
eHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCwKKyAgICAgICAgQ29udGV4dE1l
bnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scywKKyAgICAgICAgQ29udGV4dE1lbnVJdGVtVGFn
VG9nZ2xlTWVkaWFMb29wLAorICAgICAgICBDb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVs
bHNjcmVlbiwKKyAgICAgICAgQ29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5UGF1c2UsCisgICAg
ICAgIENvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSwKICAgICAgICAgQ29udGV4dE1lbnVJdGVt
QmFzZUN1c3RvbVRhZyA9IDUwMDAsCiAgICAgICAgIENvbnRleHRNZW51SXRlbUN1c3RvbVRhZ05v
QWN0aW9uID0gNTk5OCwKICAgICAgICAgQ29udGV4dE1lbnVJdGVtTGFzdEN1c3RvbVRhZyA9IDU5
OTksCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5Lmgg
Yi9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5LmgKaW5kZXggMTc4Y2ZhMi4u
MWZlMTM4YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6YXRpb25TdHJhdGVn
eS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaApAQCAtMSw1
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwKICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTEyLDYgKzExMywxNiBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2FwaXRhbGl6ZSgpID0gMDsKICAgICB2aXJ0
dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGFuZ2VCYWNrKGNvbnN0IFN0cmluZyYgcmVw
bGFjZWRTdHJpbmcpID0gMDsKICNlbmRpZgorICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KCkgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KCkgPSAwOworICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCgpID0gMDsK
KyAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlw
Ym9hcmQoKSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xl
TWVkaWFDb250cm9scygpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdUb2dnbGVNZWRpYUxvb3AoKSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KCkgPSAwOwogI2VuZGlmIC8vIEVOQUJMRShDT05URVhU
X01FTlVTKQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3Mu
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAppbmRleCBhNjllMGZi
Li4wMTJkOTBlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3Mu
Y3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKQEAgLTEsNSAr
MSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA5LCAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEg
Uy5MCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM2Miw2ICszNjMsNTYgQEAg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoYW5nZUJhY2soY29uc3QgU3RyaW5nJiByZXBsYWNl
ZFN0cmluZykKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKKworU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gcGxhdGZvcm1T
dHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ09w
ZW5WaWRlb0luTmV3V2luZG93KCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVu
QXVkaW9Jbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5s
b2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dp
bmRvdygpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xp
cGJvYXJkKCkKK3sKKyAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCgp
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJk
KCkKK3sKKyAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0
ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpOworfQor
CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpCit7CisgICAg
cmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250
ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCk7Cit9CisKK1N0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKQoreworICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0
ZWdpZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xl
TWVkaWFMb29wKCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVs
bHNjcmVlbigpCit7CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2NhbGl6YXRp
b25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpOwor
fQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkKK3sKKyAgICByZXR1cm4g
cGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51
SXRlbVRhZ01lZGlhUGxheSgpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQ
YXVzZSgpCit7CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2NhbGl6YXRpb25T
dHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCk7Cit9CisKK1N0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKQoreworICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0
ZWdpZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFN
dXRlKCk7Cit9CiAgICAgCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQo
KQogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmggYi9X
ZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAppbmRleCAwNDA0MmI2Li5hNzJlYjhh
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDkgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTAogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMDgsNiArMTA5LDE2IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2FwaXRhbGl6ZSgpOwog
ICAgIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGFuZ2VCYWNrKGNvbnN0IFN0cmluZyYgcmVw
bGFjZWRTdHJpbmcpOwogI2VuZGlmCisgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5W
aWRlb0luTmV3V2luZG93KCk7CisgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRp
b0luTmV3V2luZG93KCk7CisgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xp
bmtUb0NsaXBib2FyZCgpOworICAgIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9M
aW5rVG9DbGlwYm9hcmQoKTsKKyAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVk
aWFDb250cm9scygpOworICAgIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxv
b3AoKTsKKyAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4o
KTsKKyAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCk7CisgICAgU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKTsKKyAgICBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnTWVkaWFNdXRlKCk7CiAgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RF
bGVtZW50KCk7CiAjZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9Mb2NhbGl6ZWRTdHJpbmdzQW5kcm9pZC5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvTG9jYWxpemVkU3RyaW5nc0FuZHJvaWQuY3BwCmluZGV4
IDJmYzg4MGIuLmZhNGY4NmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9M
b2NhbGl6ZWRTdHJpbmdzQW5kcm9pZC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lk
L0xvY2FsaXplZFN0cmluZ3NBbmRyb2lkLmNwcApAQCAtODEsNiArODEsNjYgQEAgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkKICAgICByZXR1cm4gU3RyaW5n
KCk7CiB9CiAKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdygp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdygpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2ds
ZU1lZGlhQ29udHJvbHMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0
cmluZygpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ01lZGlhUGxheSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdP
cGVuRnJhbWVJbk5ld1dpbmRvdygpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9Mb2NhbGl6ZWRTdHJpbmdzQnJldy5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL2JyZXcvTG9jYWxpemVkU3RyaW5nc0JyZXcuY3BwCmluZGV4IDFiYzU5ODUu
LjJkZmQxMmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9Mb2NhbGl6ZWRTdHJp
bmdzQnJldy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L0xvY2FsaXplZFN0cmluZ3NC
cmV3LmNwcApAQCAtOTYsNiArOTYsNTYgQEAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJ
bWFnZVRvQ2xpcGJvYXJkKCkKICAgICByZXR1cm4gIkNvcHkgaW1hZ2UgdG8gY2xpcGJvYXJkIjsK
IH0KIAorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KCkKK3sK
KyAgICByZXR1cm4gIk9wZW4gdmlkZW8gaW4gbmV3IHdpbmRvdyI7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuICJPcGVu
IGF1ZGlvIGluIG5ldyB3aW5kb3ciOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29w
eVZpZGVvTGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4gIkNvcHkgVmlkZW8gbGluayBs
b2NhdGlvbiI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9D
bGlwYm9hcmQoKQoreworICAgIHJldHVybiAiQ29weSBhdWRpbyBsaW5rIGxvY2F0aW9uIjsKK30K
KworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKQoreworICAg
IHJldHVybiAiVG9nZ2xlIG1lZGlhIGNvbnRyb2xzIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCit7CisgICAgcmV0dXJuICJUb2dnbGUgbWVkaWEgbG9v
cCBwbGF5YmFjayI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVs
bHNjcmVlbigpCit7CisgICAgcmV0dXJuICJTd2l0Y2ggdmlkZW8gdG8gZnVsbHNjcmVlbiI7Cit9
CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQoreworICAgIHJldHVybiAi
UGxheSI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkKK3sKKyAg
ICByZXR1cm4gIlBhdXNlIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0
ZSgpCit7CisgICAgcmV0dXJuICJNdXRlIjsKK30KKwogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z09wZW5GcmFtZUluTmV3V2luZG93KCkKIHsKICAgICByZXR1cm4gIk9wZW4gZnJhbWUgaW4gbmV3
IHdpbmRvdyI7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Mb2NhbGl6ZWRTdHJp
bmdzRWZsLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0xvY2FsaXplZFN0cmluZ3NFZmwuY3Bw
CmluZGV4IDYwMjMyMDUuLmE4MTQzNGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L0xvY2FsaXplZFN0cmluZ3NFZmwuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0xvY2Fs
aXplZFN0cmluZ3NFZmwuY3BwCkBAIC05OCw2ICs5OCw1NiBAQCBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKQogICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4
KCJDb3B5IEltYWdlIik7CiB9CiAKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9J
bk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIk9wZW4gVmlkZW8g
aW4gTmV3IFdpbmRvdyIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlv
SW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJPcGVuIEF1ZGlv
IGluIE5ldyBXaW5kb3ciKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRl
b0xpbmtUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIkNvcHkg
VmlkZW8gTGluayBMb2NhdGlvbiIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29w
eUF1ZGlvTGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgi
Q29weSBBdWRpbyBMaW5rIExvY2F0aW9uIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgi
VG9nZ2xlIE1lZGlhIENvbnRyb2xzIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdU
b2dnbGVNZWRpYUxvb3AoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJUb2dnbGUg
TWVkaWEgTG9vcCBQbGF5YmFjayIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRW50
ZXJWaWRlb0Z1bGxzY3JlZW4oKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJTd2l0
Y2ggVmlkZW8gdG8gRnVsbHNjcmVlbiIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
TWVkaWFQbGF5KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiUGxheSIpOworfQor
CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpCit7CisgICAgcmV0dXJuIFN0
cmluZzo6ZnJvbVVURjgoIlBhdXNlIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdN
ZWRpYU11dGUoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJNdXRlIik7Cit9CisK
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpCiB7CiAgICAg
cmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIk9wZW4gRnJhbWUgaW4gTmV3IFdpbmRvdyIpOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29udGV4dE1lbnVJdGVtR3RrLmNwcCBiL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL0NvbnRleHRNZW51SXRlbUd0ay5jcHAKaW5kZXggZTJjNWI4NC4u
NjhkMGE5YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29udGV4dE1lbnVJdGVt
R3RrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Db250ZXh0TWVudUl0ZW1HdGsuY3Bw
CkBAIC0xLDUgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMg
UGV0ZXIgRnJleXRoZXIKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTAogICoKICAq
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYwpAQCAtMzMsMTEgKzM0LDEzIEBAIHN0YXRpYyBjb25zdCBjaGFyKiBndGtT
dG9ja0lERnJvbUNvbnRleHRNZW51QWN0aW9uKGNvbnN0IENvbnRleHRNZW51QWN0aW9uJiBhY3Rp
CiAgICAgc3dpdGNoIChhY3Rpb24pIHsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHlM
aW5rVG9DbGlwYm9hcmQ6CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0Ns
aXBib2FyZDoKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBi
b2FyZDoKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHk6CiAgICAgICAgIHJldHVybiBH
VEtfU1RPQ0tfQ09QWTsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5OZXdX
aW5kb3c6CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvdzoK
ICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93OgorICAgIGNh
c2UgQ29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3c6CiAgICAgICAgIHJldHVy
biBHVEtfU1RPQ0tfT1BFTjsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlu
a1RvRGlzazoKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2s6
CkBAIC01OSw3ICs2Miw3IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBndGtTdG9ja0lERnJvbUNvbnRl
eHRNZW51QWN0aW9uKGNvbnN0IENvbnRleHRNZW51QWN0aW9uJiBhY3RpCiAgICAgY2FzZSBDb250
ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGw6CiAgICAgICAgIHJldHVybiBHVEtfU1RPQ0tfU0VMRUNU
X0FMTDsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nR3Vlc3M6Ci0gICAgICAg
IHJldHVybiBOVUxMOworICAgICAgICByZXR1cm4gMDsKICAgICBjYXNlIENvbnRleHRNZW51SXRl
bVRhZ0lnbm9yZVNwZWxsaW5nOgogICAgICAgICByZXR1cm4gR1RLX1NUT0NLX05POwogICAgIGNh
c2UgQ29udGV4dE1lbnVJdGVtVGFnTGVhcm5TcGVsbGluZzoKQEAgLTk5LDggKzEwMiwxNCBAQCBz
dGF0aWMgY29uc3QgY2hhciogZ3RrU3RvY2tJREZyb21Db250ZXh0TWVudUFjdGlvbihjb25zdCBD
b250ZXh0TWVudUFjdGlvbiYgYWN0aQogICAgICAgICByZXR1cm4gR1RLX1NUT0NLX1VOREVSTElO
RTsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1Nob3dDb2xvcnM6CiAgICAgICAgIHJldHVy
biBHVEtfU1RPQ0tfU0VMRUNUX0NPTE9SOworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVG9n
Z2xlTWVkaWFDb250cm9sczoKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlh
TG9vcDoKKyAgICAgICAgLy8gTm8gaWNvbiBmb3IgdGhpcy4KKyAgICAgICAgcmV0dXJuIDA7Cisg
ICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbjoKKyAgICAgICAg
cmV0dXJuIEdUS19TVE9DS19GVUxMU0NSRUVOOwogICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVy
biBOVUxMOworICAgICAgICByZXR1cm4gMDsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvTG9jYWxpemVkU3RyaW5nc0d0ay5jcHAKaW5kZXggNDMyYzkyZi4uNzg1MTMyNiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5nc0d0ay5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5nc0d0ay5jcHAKQEAgLTQsNiAr
NCw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIK
ICAqIENvcHlyaWdodCAoQykgMjAwOCBDaHJpc3RpYW4gRHl3YW4gPGNocmlzdGlhbkBpbWVuZGlv
LmNvbT4KICAqIENvcHlyaWdodCAoQykgMjAwOCBOdWFudGkgTHRkLgorICogQ29weXJpZ2h0IChD
KSAyMDEwIElnYWxpYSBTLkwKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTEw
LDYgKzExMSw1NiBAQCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9h
cmQoKQogICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8oIkNvcF95IEltYWdlIikpOwogfQog
CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3coKQoreworICAg
IHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8oIk9wZW4gX1ZpZGVvIGluIE5ldyBXaW5kb3ciKSk7
Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdygpCit7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiT3BlbiBfQXVkaW8gaW4gTmV3IFdpbmRv
dyIpKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBi
b2FyZCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiQ29wX3kgVmlkZW8gTGlu
ayBMb2NhdGlvbiIpKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xp
bmtUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiQ29wX3kg
QXVkaW8gTGluayBMb2NhdGlvbiIpKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Rv
Z2dsZU1lZGlhQ29udHJvbHMoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8oIl9U
b2dnbGUgTWVkaWEgQ29udHJvbHMiKSk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdU
b2dnbGVNZWRpYUxvb3AoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8oIlRvZ2ds
ZSBNZWRpYSBfTG9vcCBQbGF5YmFjayIpKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0VudGVyVmlkZW9GdWxsc2NyZWVuKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChf
KCJTd2l0Y2ggVmlkZW8gdG8gX0Z1bGxzY3JlZW4iKSk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdNZWRpYVBsYXkoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8oIl9Q
bGF5IikpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpCit7Cisg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiX1BhdXNlIikpOworfQorCitTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRG
OChfKCJfTXV0ZSIpKTsKK30KKwogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUlu
TmV3V2luZG93KCkKIHsKICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJPcGVuIF9GcmFt
ZSBpbiBOZXcgV2luZG93IikpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9M
b2NhbGl6ZWRTdHJpbmdzSGFpa3UuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Mb2NhbGl6
ZWRTdHJpbmdzSGFpa3UuY3BwCmluZGV4IDUzMjE3OTIuLjRjMTJjZjMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vaGFpa3UvTG9jYWxpemVkU3RyaW5nc0hhaWt1LmNwcAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0cmluZ3NIYWlrdS5jcHAKQEAgLTk4LDYgKzk4
LDU2IEBAIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpCiAg
ICAgcmV0dXJuICJDb3B5IGltYWdlIHRvIGNsaXBib2FyZCI7CiB9CiAKK1N0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuICJPcGVuIHZp
ZGVvIGluIG5ldyB3aW5kb3ciOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkF1
ZGlvSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiAiT3BlbiBhdWRpbyBpbiBuZXcgd2luZG93
IjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2Fy
ZCgpCit7CisgICAgcmV0dXJuICJDb3B5IHZpZGVvIGxpbmsgbG9jYXRpb24iOworfQorCitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICBy
ZXR1cm4gIkNvcHkgYXVkaW8gbGluayBsb2NhdGlvbiI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKK3sKKyAgICByZXR1cm4gIlRvZ2dsZSBtZWRp
YSBjb250cm9scyI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxv
b3AoKQoreworICAgIHJldHVybiAiVG9nZ2xlIG1lZGlhIGxvb3AgcGxheWJhY2siOworfQorCitT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKQoreworICAgIHJl
dHVybiAiU3dpdGNoIHZpZGVvIHRvIGZ1bGxzY3JlZW4iOworfQorCitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnTWVkaWFQbGF5KCkKK3sKKyAgICByZXR1cm4gIlBsYXkiOworfQorCitTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpCit7CisgICAgcmV0dXJuICJQYXVzZSI7Cit9
CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKQoreworICAgIHJldHVybiAi
TXV0ZSI7Cit9CisKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRv
dygpCiB7CiAgICAgcmV0dXJuICJPcGVuIGZyYW1lIGluIG5ldyB3aW5kb3ciOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS93eC9Mb2NhbGl6ZWRTdHJpbmdzV3guY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS93eC9Mb2NhbGl6ZWRTdHJpbmdzV3guY3BwCmluZGV4IDQxMTJmNjQuLjEwZWE0MzUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHAKQEAgLTk3LDYg
Kzk3LDU2IEBAIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgp
CiAgICAgcmV0dXJuIFN0cmluZygiQ29weSBJbWFnZSB0byBDbGlwYm9hcmQiKTsgCiB9CiAKK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdygpCit7CisgICAgcmV0
dXJuIFN0cmluZygiT3BlbiBWaWRlbyBpbiBOZXcgV2luZG93Iik7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuIFN0cmlu
ZygiT3BlbiBBdWRpbyBpbiBOZXcgV2luZG93Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdDb3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBTdHJpbmcoIkNv
cHkgVmlkZW8gTGluayBMb2NhdGlvbiIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
Q29weUF1ZGlvTGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJDb3B5IEF1
ZGlvIExpbmsgTG9jYXRpb24iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2ds
ZU1lZGlhQ29udHJvbHMoKQoreworICAgIHJldHVybiBTdHJpbmcoIlRvZ2dsZSBNZWRpYSBDb250
cm9scyIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkK
K3sKKyAgICByZXR1cm4gU3RyaW5nKCJUb2dnbGUgTWVkaWEgTG9vcCBQbGF5YmFjayIpOworfQor
CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKQoreworICAg
IHJldHVybiBTdHJpbmcoIlN3aXRjaCBWaWRlbyB0byBGdWxsc2NyZWVuIik7Cit9CisKK1N0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQoreworICAgIHJldHVybiBTdHJpbmcoIlBs
YXkiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKQoreworICAg
IHJldHVybiBTdHJpbmcoIlBhdXNlIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdN
ZWRpYU11dGUoKQoreworICAgIHJldHVybiBTdHJpbmcoIk11dGUiKTsKK30KKwogU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCkgCiB7IAogICAgIHJldHVybiBT
dHJpbmcoIk9wZW4gRnJhbWUgaW4gTmV3IFdpbmRvdyIpOyAKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJl
c3VsdC5jcHAKaW5kZXggNDk2YzRiYS4uZjI4NjkyZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5k
ZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJl
c3VsdC5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkhUTUxBbmNob3JFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTFZpZGVvRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgpA
QCAtMjkyLDIyICsyOTMsMTM0IEBAIEtVUkwgSGl0VGVzdFJlc3VsdDo6YWJzb2x1dGVJbWFnZVVS
TCgpIGNvbnN0CiBLVVJMIEhpdFRlc3RSZXN1bHQ6OmFic29sdXRlTWVkaWFVUkwoKSBjb25zdAog
ewogI2lmIEVOQUJMRShWSURFTykKKyAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbHQg
PSBtZWRpYUVsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIG1faW5uZXJOb25TaGFyZWROb2RlLT5k
b2N1bWVudCgpLT5jb21wbGV0ZVVSTChkZXByZWNhdGVkUGFyc2VVUkwobWVkaWFFbHQtPmN1cnJl
bnRTcmMoKSkpOworICAgIHJldHVybiBLVVJMKCk7CisjZWxzZQorICAgIHJldHVybiBLVVJMKCk7
CisjZW5kaWYKK30KKworYm9vbCBIaXRUZXN0UmVzdWx0OjptZWRpYVN1cHBvcnRzRnVsbHNjcmVl
bigpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1l
ZGlhRWx0KG1lZGlhRWxlbWVudCgpKTsKKyAgICByZXR1cm4gKG1lZGlhRWx0ICYmIG1lZGlhRWx0
LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpICYmIG1lZGlhRWx0LT5zdXBwb3J0c0Z1
bGxzY3JlZW4oKSk7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCisjaWYg
RU5BQkxFKFZJREVPKQorSFRNTE1lZGlhRWxlbWVudCogSGl0VGVzdFJlc3VsdDo6bWVkaWFFbGVt
ZW50KCkgY29uc3QKK3sKICAgICBpZiAoIShtX2lubmVyTm9uU2hhcmVkTm9kZSAmJiBtX2lubmVy
Tm9uU2hhcmVkTm9kZS0+ZG9jdW1lbnQoKSkpCi0gICAgICAgIHJldHVybiBLVVJMKCk7CisgICAg
ICAgIHJldHVybiAwOwogCiAgICAgaWYgKCEobV9pbm5lck5vblNoYXJlZE5vZGUtPnJlbmRlcmVy
KCkgJiYgbV9pbm5lck5vblNoYXJlZE5vZGUtPnJlbmRlcmVyKCktPmlzTWVkaWEoKSkpCi0gICAg
ICAgIHJldHVybiBLVVJMKCk7CisgICAgICAgIHJldHVybiAwOwogCi0gICAgQXRvbWljU3RyaW5n
IHVybFN0cmluZzsKLSAgICBpZiAobV9pbm5lck5vblNoYXJlZE5vZGUtPmhhc1RhZ05hbWUoSFRN
TE5hbWVzOjp2aWRlb1RhZykgfHwgbV9pbm5lck5vblNoYXJlZE5vZGUtPmhhc1RhZ05hbWUoSFRN
TE5hbWVzOjphdWRpb1RhZykpIHsKLSAgICAgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVt
ZW50ID0gc3RhdGljX2Nhc3Q8SFRNTE1lZGlhRWxlbWVudCo+KG1faW5uZXJOb25TaGFyZWROb2Rl
LmdldCgpKTsKLSAgICAgICAgdXJsU3RyaW5nID0gbWVkaWFFbGVtZW50LT5jdXJyZW50U3JjKCk7
Ci0gICAgfSBlbHNlCi0gICAgICAgIHJldHVybiBLVVJMKCk7CisgICAgaWYgKG1faW5uZXJOb25T
aGFyZWROb2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpIHx8IG1faW5uZXJOb25T
aGFyZWROb2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6YXVkaW9UYWcpKQorICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8SFRNTE1lZGlhRWxlbWVudCo+KG1faW5uZXJOb25TaGFyZWROb2RlLmdl
dCgpKTsKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZgogCi0gICAgcmV0dXJuIG1faW5uZXJOb25T
aGFyZWROb2RlLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChkZXByZWNhdGVkUGFyc2VVUkwodXJs
U3RyaW5nKSk7Ci0jZWxzZQotICAgIHJldHVybiBLVVJMKCk7Cit2b2lkIEhpdFRlc3RSZXN1bHQ6
OnRvZ2dsZU1lZGlhQ29udHJvbHNEaXNwbGF5KCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8p
CisgICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWx0ID0gbWVkaWFFbGVtZW50KCkpCisg
ICAgICAgIG1lZGlhRWx0LT5zZXRDb250cm9scyghbWVkaWFFbHQtPmNvbnRyb2xzKCkpOworI2Vu
ZGlmCit9CisKK3ZvaWQgSGl0VGVzdFJlc3VsdDo6dG9nZ2xlTWVkaWFMb29wUGxheWJhY2soKSBj
b25zdAoreworI2lmIEVOQUJMRShWSURFTykKKyAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogbWVk
aWFFbHQgPSBtZWRpYUVsZW1lbnQoKSkKKyAgICAgICAgbWVkaWFFbHQtPnNldExvb3AoIW1lZGlh
RWx0LT5sb29wKCkpOworI2VuZGlmCit9CisKK3ZvaWQgSGl0VGVzdFJlc3VsdDo6ZW50ZXJGdWxs
c2NyZWVuRm9yVmlkZW8oKSBjb25zdAoreworI2lmIEVOQUJMRShWSURFTykKKyAgICBIVE1MTWVk
aWFFbGVtZW50KiBtZWRpYUVsdChtZWRpYUVsZW1lbnQoKSk7CisgICAgaWYgKG1lZGlhRWx0ICYm
IG1lZGlhRWx0LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpKSB7CisgICAgICAgIEhU
TUxWaWRlb0VsZW1lbnQqIHZpZGVvRWx0ID0gc3RhdGljX2Nhc3Q8SFRNTFZpZGVvRWxlbWVudCo+
KG1lZGlhRWx0KTsKKyAgICAgICAgaWYgKCF2aWRlb0VsdC0+aXNGdWxsc2NyZWVuKCkgJiYgbWVk
aWFFbHQtPnN1cHBvcnRzRnVsbHNjcmVlbigpKQorICAgICAgICAgICAgdmlkZW9FbHQtPmVudGVy
RnVsbHNjcmVlbigpOworICAgIH0KKyNlbmRpZgorfQorCitib29sIEhpdFRlc3RSZXN1bHQ6Om1l
ZGlhQ29udHJvbHNFbmFibGVkKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgaWYg
KEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWx0ID0gbWVkaWFFbGVtZW50KCkpCisgICAgICAgIHJl
dHVybiBtZWRpYUVsdC0+Y29udHJvbHMoKTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30K
KworYm9vbCBIaXRUZXN0UmVzdWx0OjptZWRpYUxvb3BFbmFibGVkKCkgY29uc3QKK3sKKyNpZiBF
TkFCTEUoVklERU8pCisgICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWx0ID0gbWVkaWFF
bGVtZW50KCkpCisgICAgICAgIHJldHVybiBtZWRpYUVsdC0+bG9vcCgpOworI2VuZGlmCisgICAg
cmV0dXJuIGZhbHNlOworfQorCitib29sIEhpdFRlc3RSZXN1bHQ6Om1lZGlhUGxheWluZygpIGNv
bnN0Cit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIGlmIChIVE1MTWVkaWFFbGVtZW50KiBtZWRp
YUVsdCA9IG1lZGlhRWxlbWVudCgpKQorICAgICAgICByZXR1cm4gIW1lZGlhRWx0LT5wYXVzZWQo
KTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBIaXRUZXN0UmVzdWx0Ojp0
b2dnbGVNZWRpYVBsYXlTdGF0ZSgpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIGlm
IChIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsdCA9IG1lZGlhRWxlbWVudCgpKQorICAgICAgICBt
ZWRpYUVsdC0+dG9nZ2xlUGxheVN0YXRlKCk7CisjZW5kaWYKK30KKworYm9vbCBIaXRUZXN0UmVz
dWx0OjptZWRpYUhhc0F1ZGlvKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgaWYg
KEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWx0ID0gbWVkaWFFbGVtZW50KCkpCisgICAgICAgIHJl
dHVybiBtZWRpYUVsdC0+aGFzQXVkaW8oKTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30K
KworYm9vbCBIaXRUZXN0UmVzdWx0OjptZWRpYUlzVmlkZW8oKSBjb25zdAoreworI2lmIEVOQUJM
RShWSURFTykKKyAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbHQgPSBtZWRpYUVsZW1l
bnQoKSkKKyAgICAgICAgcmV0dXJuIG1lZGlhRWx0LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlk
ZW9UYWcpOworI2VuZGlmCisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEhpdFRlc3RSZXN1
bHQ6Om1lZGlhTXV0ZWQoKSBjb25zdAoreworI2lmIEVOQUJMRShWSURFTykKKyAgICBpZiAoSFRN
TE1lZGlhRWxlbWVudCogbWVkaWFFbHQgPSBtZWRpYUVsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJu
IG1lZGlhRWx0LT5tdXRlZCgpOworI2VuZGlmCisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lk
IEhpdFRlc3RSZXN1bHQ6OnRvZ2dsZU1lZGlhTXV0ZVN0YXRlKCkgY29uc3QKK3sKKyNpZiBFTkFC
TEUoVklERU8pCisgICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWx0ID0gbWVkaWFFbGVt
ZW50KCkpCisgICAgICAgIG1lZGlhRWx0LT5zZXRNdXRlZCghbWVkaWFFbHQtPm11dGVkKCkpOwog
I2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQu
aCBiL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaAppbmRleCAzYTQyNzE5Li4zMWU4
OGYxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmgKKysrIGIv
V2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5oCkBAIC0zMiw2ICszMiw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZyYW1lOworI2lmIEVOQUJM
RShWSURFTykKK2NsYXNzIEhUTUxNZWRpYUVsZW1lbnQ7CisjZW5kaWYKIGNsYXNzIEltYWdlOwog
Y2xhc3MgSW50UmVjdDsKIGNsYXNzIEtVUkw7CkBAIC04MCw2ICs4MywxOCBAQCBwdWJsaWM6CiAg
ICAgU3RyaW5nIHRleHRDb250ZW50KCkgY29uc3Q7CiAgICAgYm9vbCBpc0xpdmVMaW5rKCkgY29u
c3Q7CiAgICAgYm9vbCBpc0NvbnRlbnRFZGl0YWJsZSgpIGNvbnN0OworICAgIHZvaWQgdG9nZ2xl
TWVkaWFDb250cm9sc0Rpc3BsYXkoKSBjb25zdDsKKyAgICB2b2lkIHRvZ2dsZU1lZGlhTG9vcFBs
YXliYWNrKCkgY29uc3Q7CisgICAgdm9pZCBlbnRlckZ1bGxzY3JlZW5Gb3JWaWRlbygpIGNvbnN0
OworICAgIGJvb2wgbWVkaWFDb250cm9sc0VuYWJsZWQoKSBjb25zdDsKKyAgICBib29sIG1lZGlh
TG9vcEVuYWJsZWQoKSBjb25zdDsKKyAgICBib29sIG1lZGlhUGxheWluZygpIGNvbnN0OworICAg
IGJvb2wgbWVkaWFTdXBwb3J0c0Z1bGxzY3JlZW4oKSBjb25zdDsKKyAgICB2b2lkIHRvZ2dsZU1l
ZGlhUGxheVN0YXRlKCkgY29uc3Q7CisgICAgYm9vbCBtZWRpYUhhc0F1ZGlvKCkgY29uc3Q7Cisg
ICAgYm9vbCBtZWRpYUlzVmlkZW8oKSBjb25zdDsKKyAgICBib29sIG1lZGlhTXV0ZWQoKSBjb25z
dDsKKyAgICB2b2lkIHRvZ2dsZU1lZGlhTXV0ZVN0YXRlKCkgY29uc3Q7CiAKICAgICAvLyBSZWN0
LWJhc2VkIGhpdCB0ZXN0IHJlbGF0ZWQgbWV0aG9kcy4KICAgICBib29sIGlzUmVjdEJhc2VkVGVz
dCgpIGNvbnN0IHsgcmV0dXJuIG1faXNSZWN0QmFzZWQ7IH0KQEAgLTk2LDYgKzExMSwxMCBAQCBw
dWJsaWM6CiAKIHByaXZhdGU6CiAKKyNpZiBFTkFCTEUoVklERU8pCisgICAgSFRNTE1lZGlhRWxl
bWVudCogbWVkaWFFbGVtZW50KCkgY29uc3Q7CisjZW5kaWYKKwogICAgIFJlZlB0cjxOb2RlPiBt
X2lubmVyTm9kZTsKICAgICBSZWZQdHI8Tm9kZT4gbV9pbm5lck5vblNoYXJlZE5vZGU7CiAgICAg
SW50UG9pbnQgbV9wb2ludDsKZGlmZiAtLWdpdCBhL1dlYktpdC9DaGFuZ2VMb2cgYi9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IGM2ZGE2NDguLjAyODIzMGMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEwLTA5LTIw
ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBlbmhhbmNlZCBjb250ZXh0
IG1lbnUgZm9yIG1lZGlhIGVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00NTAyMQorCisgICAgICAgIFVwZGF0ZWQgbG9jYWxpemFibGUgc3Ry
aW5ncy4KKworICAgICAgICAqIEVuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5nczoKKwog
MjAxMC0wOS0xNyAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IDxodHRwOi8vd2Via2l0Lm9yZy9iLzQ1OTg5PiBBZGQgV2ViQXJjaGl2ZUludGVybmFsLmggdG8g
WGNvZGUgcHJvamVjdApkaWZmIC0tZ2l0IGEvV2ViS2l0L0VuZ2xpc2gubHByb2ovTG9jYWxpemFi
bGUuc3RyaW5ncyBiL1dlYktpdC9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKaW5k
ZXggNjE1ZGM5YTBmYzFkYjA0MWVjNzgyOTgxZDY1Nzc1ZjRlMWRkOWQwMi4uM2QwOWY4NmI3NmM3
ZmI5ZmQyYTYyZTZkNjliMWE2NDdiZjFmNmYzZCAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0
YSA2ODQKemNtZGxyamR8V2U8XyVWLUNtJUJ1PFNiKnpXSnFDMVd5cWlXIU8pVTM0OSt0IUdEUEE5
Nz9eUzxHTCE7VVc8cGd1CnohZyhOLTJ3czRKd3hUbWJLMF5VUkM0Jk0zKztrdjI1dlYoYnAkS1NL
QCNGe1loVj0rbGE5ZT9AOTEqRyppVyF1RQp6QkRPJVIjNlg7Q1lYJllMKU13QkY+T3RzJHlCc0pB
Y0xmdX44TXoyJGE4Q2YwNXExVlgpIyVSMVY8LVc3SmY5JjQKejxaKXx8amNeZVJQb2x+b284JHV3
YGFFQV9PJnw+cFVfe15gTTNCfEhPQDNmNUkkMm1zaHUwTnNVbjxaSTNKaCtPCnpjZUtsKmlDayt9
V0RqNy0wUn5SeFdDMUNDZUpDMyNfekB6PUhVdDI1bG1mJFgxQ09DMGxuc250Z3U5VCVrb0VaagpS
YihNZzAkJTkhYWRKck4mOVJRbnRmO3w4TAoKZGVsdGEgOQpRY21iUVlrYV5jTTxfJVYtMFRvI1VP
OEBgPgoKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCmluZGV4IDQ3YjBlNjMuLmQwYTQ1NjMgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI0IEBACisyMDEwLTA5LTIwICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdh
bGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbR1RLXSBlbmhhbmNlZCBjb250ZXh0IG1lbnUgZm9yIG1lZGlhIGVsZW1lbnRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTAyMQorCisgICAgICAg
IE5ldyBsb2NhbGl6ZWQgc3RyaW5ncyBmb3IgdGhlIG1lZGlhIGVsZW1lbnQgY29udGV4dC1tZW51
LgorCisgICAgICAgICogc3JjL0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3cpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJkKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2Fy
ZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRy
b2xzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9v
cCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNj
cmVlbik6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkpOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUpOgorCiAyMDEwLTA5LTE5ICBT
aGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByNjc3NDkuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0v
c3JjL0xvY2FsaXplZFN0cmluZ3MuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2NhbGl6ZWRT
dHJpbmdzLmNwcAppbmRleCA3NGZmNjk5Li4zMzU0YzMwIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hy
b21pdW0vc3JjL0xvY2FsaXplZFN0cmluZ3MuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
TG9jYWxpemVkU3RyaW5ncy5jcHAKQEAgLTI2NSw2ICsyNjUsMTYgQEAgU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KCkgeyByZXR1cm4gU3RyaW5nKCk7IH0KIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbChib29sIHNob3cpIHsgcmV0dXJuIFN0
cmluZygpOyB9CiBTdHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpIHsg
cmV0dXJuIFN0cmluZygpOyB9CiBTdHJpbmcgbWVkaWFFbGVtZW50TG9hZGluZ1N0YXRlVGV4dCgp
IHsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVv
SW5OZXdXaW5kb3coKSB7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ09wZW5BdWRpb0luTmV3V2luZG93KCkgeyByZXR1cm4gU3RyaW5nKCk7IH0KK1N0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKSB7IHJldHVybiBTdHJp
bmcoKTsgfQorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2Fy
ZCgpIHsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xl
TWVkaWFDb250cm9scygpIHsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkgeyByZXR1cm4gU3RyaW5nKCk7IH0KK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpIHsgcmV0dXJuIFN0cmluZygpOyB9
CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkgeyByZXR1cm4gU3RyaW5nKCk7
IH0KK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkgeyByZXR1cm4gU3RyaW5n
KCk7IH0KK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKSB7IHJldHVybiBTdHJp
bmcoKTsgfQogCiBTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyhjb25z
dCBTdHJpbmcmIC8qbmFtZSovKQogewpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cg
Yi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAyMTU5ZWU1Li4zNTA2YjBkIDEwMDY0NAotLS0g
YS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI1IEBACisyMDEwLTA5LTIwICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlh
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBb
R1RLXSBlbmhhbmNlZCBjb250ZXh0IG1lbnUgZm9yIG1lZGlhIGVsZW1lbnRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTAyMQorCisgICAgICAgIE5l
dyBsb2NhbGl6ZWQgc3RyaW5ncyBmb3IgdGhlIG1lZGlhIGVsZW1lbnQgY29udGV4dC1tZW51Lgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmg6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tOgorICAgICAgICAo
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dp
bmRvdyk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRh
Z09wZW5BdWRpb0luTmV3V2luZG93KToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
Y29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdl
YlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xp
cGJvYXJkKToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVt
VGFnVG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6
OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCk6CisgICAgICAgIChXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKToKKyAg
ICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5
KToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVk
aWFQYXVzZSk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRl
bVRhZ01lZGlhTXV0ZSk6CisKIDIwMTAtMDktMTcgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KZGlmZiAtLWdpdCBhL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggYi9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCmluZGV4IDUzZjM5Zjgu
LmExZTAzMTcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLmgKKysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuaApAQCAtMTEzLDYgKzExMywxNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2FwaXRhbGl6ZSgpOwogICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hhbmdlQmFjayhjb25zdCBXVEY6OlN0cmlu
ZyYgcmVwbGFjZWRTdHJpbmcpOwogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnSW5zcGVjdEVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdygpOworICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJkKCk7
CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5r
VG9DbGlwYm9hcmQoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z1RvZ2dsZU1lZGlhQ29udHJvbHMoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKTsKKyAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpOworICAgIHZpcnR1YWwgV1RGOjpT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpOworICAgIHZpcnR1YWwgV1RGOjpT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCk7CiAjZW5kaWYgLy8gRU5BQkxFKENP
TlRFWFRfTUVOVVMpCiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBzZWFyY2hNZW51Tm9SZWNlbnRT
ZWFyY2hlc1RleHQoKTsKICAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHNlYXJjaE1lbnVSZWNlbnRT
ZWFyY2hlc1RleHQoKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLm1tIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMubW0KaW5kZXggMjkwMGNjZi4uMThlOGE2MSAxMDA2NDQKLS0tIGEvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KKysrIGIvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KQEAgLTE1Niw2
ICsxNTYsNTYgQEAgU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVt
VGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKQogICAgIHJldHVybiBVSV9TVFJJTkcoIkNvcHkgSW1h
Z2UiLCAiQ29weSBJbWFnZSBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCitTdHJpbmcgV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdygp
Cit7CisgICAgcmV0dXJuIFVJX1NUUklORygiT3BlbiBWaWRlbyBpbiBOZXcgV2luZG93IiwgIk9w
ZW4gVmlkZW8gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcg
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dp
bmRvdygpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiT3BlbiBBdWRpbyBpbiBOZXcgV2luZG93
IiwgIk9wZW4gQXVkaW8gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitT
dHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9M
aW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIkNvcHkgVmlkZW8gQWRk
cmVzcyIsICJDb3B5IFZpZGVvIEFkZHJlc3MgTG9jYXRpb24gY29udGV4dCBtZW51IGl0ZW0iKTsK
K30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnQ29w
eUF1ZGlvTGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJDb3B5IEF1
ZGlvIEFkZHJlc3MiLCAiQ29weSBBdWRpbyBBZGRyZXNzIExvY2F0aW9uIGNvbnRleHQgbWVudSBp
dGVtIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRl
bVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIkNvbnRy
b2xzIiwgIk1lZGlhIENvbnRyb2xzIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgp
Cit7CisgICAgcmV0dXJuIFVJX1NUUklORygiTG9vcCIsICJNZWRpYSBMb29wIGNvbnRleHQgbWVu
dSBpdGVtIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51
SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJF
bnRlciBGdWxsc2NyZWVuIiwgIlZpZGVvIEVudGVyIEZ1bGxzY3JlZW4gY29udGV4dCBtZW51IGl0
ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVt
VGFnTWVkaWFQbGF5KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJQbGF5IiwgIk1lZGlhIFBs
YXkgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpCit7CisgICAgcmV0dXJuIFVJX1NUUklO
RygiUGF1c2UiLCAiTWVkaWEgUGF1c2UgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5n
IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkKK3sK
KyAgICByZXR1cm4gVUlfU1RSSU5HKCJNdXRlIiwgIk1lZGlhIE11dGUgY29udGV4dCBtZW51IGl0
ZW0iKTsKK30KKwogU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVt
VGFnT3BlbkZyYW1lSW5OZXdXaW5kb3coKQogewogICAgIHJldHVybiBVSV9TVFJJTkcoIk9wZW4g
RnJhbWUgaW4gTmV3IFdpbmRvdyIsICJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3cgY29udGV4dCBt
ZW51IGl0ZW0iKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQv
Q2hhbmdlTG9nCmluZGV4IGIxYzQ0MjUuLmRhZGVjMmQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEw
LTA5LTIwICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBlbmhhbmNlZCBj
b250ZXh0IG1lbnUgZm9yIG1lZGlhIGVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTAyMQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29u
dGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdyk6Cisg
ICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRl
b0xpbmtUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRl
eHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMpCisg
ICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1l
ZGlhTG9vcCkKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVt
VGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4pCisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6
OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSkKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSkKKyAgICAgICAgKFdlYlBsYXRmb3Jt
U3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKQorCiAyMDEwLTA5LTE4ICBB
ZGVtYXIgZGUgU291emEgUmVpcyBKciAgPGFkZW1hci5yZWlzQG9wZW5ib3NzYS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQg
YS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDk0
OGUwY2QuLjM3NTBiMjIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC0xOTgsNiArMTk4LDU2IEBAIFN0cmluZyBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkK
ICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5
IEltYWdlIiwgIkNvcHkgTGluayBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCitTdHJpbmcgV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRv
dygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiT3BlbiBWaWRlbyIsICJPcGVuIFZpZGVvIGluIE5ldyBXaW5kb3ciKTsKK30KKworU3RyaW5n
IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5OZXdX
aW5kb3coKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIk9wZW4gQXVkaW8iLCAiT3BlbiBBdWRpbyBpbiBOZXcgV2luZG93Iik7Cit9CisKK1N0
cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xp
bmtUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0
ZSgiUVdlYlBhZ2UiLCAiQ29weSBWaWRlbyIsICJDb3B5IFZpZGVvIExpbmsgTG9jYXRpb24iKTsK
K30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnQ29w
eUF1ZGlvTGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5IEF1ZGlvIiwgIkNvcHkgQXVkaW8gTGluayBMb2Nh
dGlvbiIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0
ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJUb2dnbGUgQ29udHJvbHMiLCAiVG9nZ2xlIE1lZGlh
IENvbnRyb2xzIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRN
ZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRp
b246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiVG9nZ2xlIExvb3AiLCAiVG9nZ2xlIE1lZGlhIExv
b3AgUGxheWJhY2siKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4
dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKQoreworICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkVudGVyIEZ1bGxzY3JlZW4iLCAiU3dp
dGNoIFZpZGVvIHRvIEZ1bGxzY3JlZW4iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkKK3sKKyAgICByZXR1cm4gUUNvcmVB
cHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQbGF5IiwgIlBsYXkiKTsKK30KKwor
U3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVz
ZSgpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2Ui
LCAiUGF1c2UiLCAiUGF1c2UiKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNh
dGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJNdXRlIiwgIk11dGUiKTsKK30KKwogU3RyaW5n
IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdX
aW5kb3coKQogewogICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIk9wZW4gRnJhbWUiLCAiT3BlbiBGcmFtZSBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVu
dSBpdGVtIik7CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLmggYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmgKaW5kZXggOGVhNjBkOS4uZWFkODEzYiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCisrKyBiL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaApAQCAtOTUsNiArOTUsMTYgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1Jp
Z2h0KCk7CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSaWdodFRv
TGVmdCgpOwogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5zcGVj
dEVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09w
ZW5WaWRlb0luTmV3V2luZG93KCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdygpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJkKCk7CisgICAgdmlydHVh
bCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQo
KTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlh
Q29udHJvbHMoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Rv
Z2dsZU1lZGlhTG9vcCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ01lZGlhUGxheSgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCk7CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBzZWFyY2hN
ZW51Tm9SZWNlbnRTZWFyY2hlc1RleHQoKTsKICAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHNlYXJj
aE1lbnVSZWNlbnRTZWFyY2hlc1RleHQoKTsKICAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHNlYXJj
aE1lbnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCgpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCAyNTFiZjkxLi43Y2Q3ZWMxIDEw
MDY0NAotLS0gYS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9XZWJLaXQvd2luL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI1IEBACisyMDEwLTA5LTIwICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1h
bmRAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBbR1RLXSBlbmhhbmNlZCBjb250ZXh0IG1lbnUgZm9yIG1lZGlhIGVsZW1lbnRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTAyMQorCisg
ICAgICAgIE5ldyBsb2NhbGl6ZWQgc3RyaW5ncyBmb3IgdGhlIG1lZGlhIGVsZW1lbnQgY29udGV4
dC1tZW51LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcDoKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFn
T3BlblZpZGVvSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpj
b250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2Fy
ZCk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0Nv
cHlBdWRpb0xpbmtUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6
OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMpOgorICAgICAgICAoV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3ApOgorICAg
ICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVv
RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51
SXRlbVRhZ01lZGlhUGxheSk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRl
eHRNZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVz
Ojpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgorCiAyMDEwLTA5LTE3ICBEYXJpbiBBZGxlciAgPGRh
cmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3Bw
IGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmlu
ZGV4IDAwYTJlYWIuLjdkOGJkMGMgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTE2Myw2ICsxNjMsNTYgQEAgU3RyaW5n
IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlw
Ym9hcmQoKQogICAgIHJldHVybiBVSV9TVFJJTkcoIkNvcHkgSW1hZ2UiLCAiQ29weSBJbWFnZSBj
b250ZXh0IG1lbnUgaXRlbSIpOwogfQogCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpj
b250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuIFVJ
X1NUUklORygiT3BlbiBWaWRlbyBpbiBOZXcgV2luZG93IiwgIk9wZW4gVmlkZW8gaW4gTmV3IFdp
bmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVn
aWVzOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdygpCit7CisgICAgcmV0
dXJuIFVJX1NUUklORygiT3BlbiBBdWRpbyBpbiBOZXcgV2luZG93IiwgIk9wZW4gQXVkaW8gaW4g
TmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKQor
eworICAgIHJldHVybiBVSV9TVFJJTkcoIkNvcHkgVmlkZW8gQWRkcmVzcyIsICJDb3B5IFZpZGVv
IEFkZHJlc3MgTG9jYXRpb24gY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBs
YXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJv
YXJkKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJDb3B5IEF1ZGlvIEFkZHJlc3MiLCAiQ29w
eSBBdWRpbyBBZGRyZXNzIExvY2F0aW9uIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmlu
ZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29u
dHJvbHMoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIkNvbnRyb2xzIiwgIk1lZGlhIENvbnRy
b2xzIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCit7CisgICAgcmV0dXJuIFVJ
X1NUUklORygiTG9vcCIsICJNZWRpYSBMb29wIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0
cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9G
dWxsc2NyZWVuKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJFbnRlciBGdWxsc2NyZWVuIiwg
IlZpZGVvIEVudGVyIEZ1bGxzY3JlZW4gY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5n
IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkKK3sK
KyAgICByZXR1cm4gVUlfU1RSSU5HKCJQbGF5IiwgIk1lZGlhIFBsYXkgY29udGV4dCBtZW51IGl0
ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVt
VGFnTWVkaWFQYXVzZSgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiUGF1c2UiLCAiTWVkaWEg
UGF1c2UgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkKK3sKKyAgICByZXR1cm4gVUlfU1RS
SU5HKCJNdXRlIiwgIk1lZGlhIE11dGUgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKwogU3RyaW5n
IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdX
aW5kb3coKQogewogICAgIHJldHVybiBVSV9TVFJJTkcoIk9wZW4gRnJhbWUgaW4gTmV3IFdpbmRv
dyIsICJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKZGlmZiAt
LWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgg
Yi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCmluZGV4
IGMzY2ZiYjQuLjNhNTYyNmQgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysrIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaApAQCAtOTIsNiArOTIsMTYgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCk7CiAgICAg
dmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdCgpOwogICAg
IHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQoKTsK
KyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3
V2luZG93KCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVu
QXVkaW9Jbk5ld1dpbmRvdygpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJkKCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQoKTsKKyAgICB2aXJ0
dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKTsK
KyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9v
cCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRl
b0Z1bGxzY3JlZW4oKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z01lZGlhUGxheSgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
TWVkaWFQYXVzZSgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
TWVkaWFNdXRlKCk7CiAjZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgdmlydHVh
bCBXVEY6OlN0cmluZyBzZWFyY2hNZW51Tm9SZWNlbnRTZWFyY2hlc1RleHQoKTsKICAgICB2aXJ0
dWFsIFdURjo6U3RyaW5nIHNlYXJjaE1lbnVSZWNlbnRTZWFyY2hlc1RleHQoKTsKZGlmZiAtLWdp
dCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZGI4NzM0Yi4u
NTA4ZjAzZCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMC0wOS0yMCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBu
b3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgW0dUS10gZW5oYW5jZWQgY29udGV4dCBtZW51IGZvciBtZWRpYSBlbGVtZW50
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUwMjEK
KworICAgICAgICBOZXcgbG9jYWxpemVkIHN0cmluZ3MgZm9yIHRoZSBtZWRpYSBlbGVtZW50IGNv
bnRleHQtbWVudS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVn
aWVzOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlv
SW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNv
bnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlu
a1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpj
b250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3Ap
OgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRl
bVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRh
Z01lZGlhTXV0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29u
dGV4dE1lbnVJdGVtVGFnTWVkaWFVbk11dGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmg6CisKIDIwMTAtMDktMTkgIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggd2luZG93cyBidWlsZC4KZGlmZiAt
LWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMuY3BwIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5jcHAKaW5kZXggYTE5ODZhZi4uYjlkMmNmOCAxMDA2NDQKLS0tIGEvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysr
IGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5jcHAKQEAgLTE4MCw2ICsxODAsNTYgQEAgU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
Y29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKQogICAgIHJldHVybiBVSV9T
VFJJTkcoIkNvcHkgSW1hZ2UiLCAiQ29weSBJbWFnZSBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQog
CitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlk
ZW9Jbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiT3BlbiBWaWRlbyBpbiBO
ZXcgV2luZG93IiwgIk9wZW4gVmlkZW8gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIp
OworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdP
cGVuQXVkaW9Jbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiT3BlbiBBdWRp
byBpbiBOZXcgV2luZG93IiwgIk9wZW4gQXVkaW8gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUg
aXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0
ZW1UYWdDb3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBVSV9TVFJJTkco
IkNvcHkgVmlkZW8gQWRkcmVzcyIsICJDb3B5IFZpZGVvIEFkZHJlc3MgTG9jYXRpb24gY29udGV4
dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4
dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4gVUlf
U1RSSU5HKCJDb3B5IEF1ZGlvIEFkZHJlc3MiLCAiQ29weSBBdWRpbyBBZGRyZXNzIExvY2F0aW9u
IGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6
OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKQoreworICAgIHJldHVybiBV
SV9TVFJJTkcoIkNvbnRyb2xzIiwgIk1lZGlhIENvbnRyb2xzIGNvbnRleHQgbWVudSBpdGVtIik7
Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1Rv
Z2dsZU1lZGlhTG9vcCgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiTG9vcCIsICJNZWRpYSBM
b29wIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OmNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCkKK3sKKyAgICByZXR1
cm4gVUlfU1RSSU5HKCJFbnRlciBGdWxsc2NyZWVuIiwgIlZpZGVvIEVudGVyIEZ1bGxzY3JlZW4g
Y29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJQ
bGF5IiwgIk1lZGlhIFBsYXkgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBs
YXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpCit7CisgICAg
cmV0dXJuIFVJX1NUUklORygiUGF1c2UiLCAiTWVkaWEgUGF1c2UgY29udGV4dCBtZW51IGl0ZW0i
KTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFn
TWVkaWFNdXRlKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJNdXRlIiwgIk1lZGlhIE11dGUg
Y29udGV4dCBtZW51IGl0ZW0iKTsKK30KKwogU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
Y29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3coKQogewogICAgIHJldHVybiBV
SV9TVFJJTkcoIk9wZW4gRnJhbWUgaW4gTmV3IFdpbmRvdyIsICJPcGVuIEZyYW1lIGluIE5ldyBX
aW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAppbmRleCBjMTY2NzU2
Li5kMjJkY2JmIDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC0xMjcsNiArMTI3LDE2IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hhbmdlQmFjayhjb25z
dCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nKTsKICNlbmRpZgogICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KCk7CisgICAgdmlydHVhbCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3coKTsKKyAgICB2aXJ0dWFsIFN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdygpOworICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCgpOworICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2Fy
ZCgpOworICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29u
dHJvbHMoKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRp
YUxvb3AoKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVv
RnVsbHNjcmVlbigpOworICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlh
UGxheSgpOworICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2Uo
KTsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKTsKICNl
bmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICB2aXJ0dWFsIFN0cmluZyBzZWFyY2hN
ZW51Tm9SZWNlbnRTZWFyY2hlc1RleHQoKTsKICAgICB2aXJ0dWFsIFN0cmluZyBzZWFyY2hNZW51
UmVjZW50U2VhcmNoZXNUZXh0KCk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cg
Yi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXggNDg1MDNlNC4uMzlkMWM5YyAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIwIEBACisyMDEwLTA5LTE1ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdh
bGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbR1RLXSBlbmhhbmNlZCBjb250ZXh0IG1lbnUgZm9yIG1lZGlhIGVsZW1lbnRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTAyMQorCisgICAgICAg
IEV2ZW50U2VuZGVyOjpjb250ZXh0Q2xpY2soKSBub3cgcmV0dXJucyBhbiBhcnJheSBvZiBqcwor
ICAgICAgICBvYmplY3RzLiBFYWNoIG9iamVjdCBoYXMgYSB0aXRsZSBwcm9wZXJ0eSBhbmQgYSBj
bGljaygpIG1ldGhvZC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9FdmVudFNlbmRl
ci5jcHA6CisgICAgICAgIChnZXRNZW51SXRlbVRpdGxlQ2FsbGJhY2spOgorICAgICAgICAoc2V0
TWVudUl0ZW1UaXRsZUNhbGxiYWNrKToKKyAgICAgICAgKG1lbnVJdGVtQ2xpY2tDYWxsYmFjayk6
CisgICAgICAgIChnZXRNZW51SXRlbUNsYXNzKToKKyAgICAgICAgKGNvbnRleHRDbGlja0NhbGxi
YWNrKToKKwogMjAxMC0wOS0xOSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2d0ay9FdmVudFNlbmRlci5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9ndGsvRXZlbnRTZW5kZXIuY3BwCmluZGV4IDBlMmU0NjkuLmZlN2U5M2EgMTAwNjQ0
Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9FdmVudFNlbmRlci5jcHAKKysr
IGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0V2ZW50U2VuZGVyLmNwcApAQCAtMTQ3
LDYgKzE0Nyw1OCBAQCBib29sIHByZXBhcmVNb3VzZUJ1dHRvbkV2ZW50KEdka0V2ZW50KiBldmVu
dCwgaW50IGV2ZW50U2VuZGVyQnV0dG9uTnVtYmVyLCBndWludAogICAgIHJldHVybiB0cnVlOwog
fQogCitzdGF0aWMgSlNWYWx1ZVJlZiBnZXRNZW51SXRlbVRpdGxlQ2FsbGJhY2soSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgR3RrV2lkZ2V0KiB3aWRnZXQgPSBHVEtf
V0lER0VUKEpTT2JqZWN0R2V0UHJpdmF0ZShvYmplY3QpKTsKKyAgICBDU3RyaW5nIGxhYmVsOwor
ICAgIGlmIChHVEtfSVNfU0VQQVJBVE9SX01FTlVfSVRFTSh3aWRnZXQpKQorICAgICAgICBsYWJl
bCA9ICI8c2VwYXJhdG9yPiI7CisgICAgZWxzZQorICAgICAgICBsYWJlbCA9IGd0a19tZW51X2l0
ZW1fZ2V0X2xhYmVsKEdUS19NRU5VX0lURU0od2lkZ2V0KSk7CisKKyAgICByZXR1cm4gSlNWYWx1
ZU1ha2VTdHJpbmcoY29udGV4dCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcobGFiZWwu
ZGF0YSgpKSk7Cit9CisKK3N0YXRpYyBib29sIHNldE1lbnVJdGVtVGl0bGVDYWxsYmFjayhKU0Nv
bnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1N0cmluZ1JlZiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWVSZWYgdmFsdWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIEpTVmFsdWVSZWYgbWVudUl0ZW1DbGlja0NhbGxiYWNr
KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYg
dGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1l
bnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBHdGtNZW51SXRlbSogaXRlbSA9
IEdUS19NRU5VX0lURU0oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKKyAgICBndGtf
bWVudV9pdGVtX2FjdGl2YXRlKGl0ZW0pOworICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5l
ZChjb250ZXh0KTsKK30KKworc3RhdGljIEpTU3RhdGljRnVuY3Rpb24gc3RhdGljTWVudUl0ZW1G
dW5jdGlvbnNbXSA9IHsKKyAgICB7ICJjbGljayIsIG1lbnVJdGVtQ2xpY2tDYWxsYmFjaywga0pT
UHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0
ZSB9LAorICAgIHsgMCwgMCwgMCB9Cit9OworCitzdGF0aWMgSlNTdGF0aWNWYWx1ZSBzdGF0aWNN
ZW51SXRlbVZhbHVlc1tdID0geworICAgIHsgInRpdGxlIiwgZ2V0TWVudUl0ZW1UaXRsZUNhbGxi
YWNrLCBzZXRNZW51SXRlbVRpdGxlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlTm9uZSB9
LAorICAgIHsgMCwgMCwgMCwgMCB9Cit9OworCitzdGF0aWMgSlNDbGFzc1JlZiBnZXRNZW51SXRl
bUNsYXNzKCkKK3sKKyAgICBzdGF0aWMgSlNDbGFzc1JlZiBtZW51SXRlbUNsYXNzID0gMDsKKwor
ICAgIGlmICghbWVudUl0ZW1DbGFzcykgeworICAgICAgICBKU0NsYXNzRGVmaW5pdGlvbiBjbGFz
c0RlZmluaXRpb24gPSB7CisgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwKKyAgICAg
ICAgICAgICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwfTsKKyAgICAgICAgY2xh
c3NEZWZpbml0aW9uLnN0YXRpY0Z1bmN0aW9ucyA9IHN0YXRpY01lbnVJdGVtRnVuY3Rpb25zOwor
ICAgICAgICBjbGFzc0RlZmluaXRpb24uc3RhdGljVmFsdWVzID0gc3RhdGljTWVudUl0ZW1WYWx1
ZXM7CisKKyAgICAgICAgbWVudUl0ZW1DbGFzcyA9IEpTQ2xhc3NDcmVhdGUoJmNsYXNzRGVmaW5p
dGlvbik7CisgICAgfQorCisgICAgcmV0dXJuIG1lbnVJdGVtQ2xhc3M7Cit9CisKKwogc3RhdGlj
IEpTVmFsdWVSZWYgY29udGV4dENsaWNrQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpT
T2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1l
bnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0
aW9uKQogewogICAgIEdka0V2ZW50KiBwcmVzc0V2ZW50ID0gZ2RrX2V2ZW50X25ldyhHREtfQlVU
VE9OX1BSRVNTKTsKQEAgLTE2NSwxMyArMjE3LDcgQEAgc3RhdGljIEpTVmFsdWVSZWYgY29udGV4
dENsaWNrQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW8K
ICAgICAgICAgSlNWYWx1ZVJlZiBhcnJheVZhbHVlc1tnX2xpc3RfbGVuZ3RoKGl0ZW1zKV07CiAg
ICAgICAgIGludCBpbmRleCA9IDA7CiAgICAgICAgIGZvciAoR0xpc3QqIGl0ZW0gPSBnX2xpc3Rf
Zmlyc3QoaXRlbXMpOyBpdGVtOyBpdGVtID0gZ19saXN0X25leHQoaXRlbSkpIHsKLSAgICAgICAg
ICAgIENTdHJpbmcgbGFiZWw7Ci0gICAgICAgICAgICBpZiAoR1RLX0lTX1NFUEFSQVRPUl9NRU5V
X0lURU0oaXRlbS0+ZGF0YSkpCi0gICAgICAgICAgICAgICAgbGFiZWwgPSAiPHNlcGFyYXRvcj4i
OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGxhYmVsID0gZ3RrX21lbnVfaXRl
bV9nZXRfbGFiZWwoR1RLX01FTlVfSVRFTShpdGVtLT5kYXRhKSk7Ci0KLSAgICAgICAgICAgIGFy
cmF5VmFsdWVzW2luZGV4XSA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIEpTU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKGxhYmVsLmRhdGEoKSkpOworICAgICAgICAgICAgYXJyYXlWYWx1
ZXNbaW5kZXhdID0gSlNPYmplY3RNYWtlKGNvbnRleHQsIGdldE1lbnVJdGVtQ2xhc3MoKSwgaXRl
bS0+ZGF0YSk7CiAgICAgICAgICAgICBpbmRleCsrOwogICAgICAgICB9CiAgICAgICAgIGlmIChp
bmRleCkKLS0gCjEuNy4x
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68100</attachid>
            <date>2010-09-20 10:08:32 -0700</date>
            <delta_ts>2010-09-20 11:07:34 -0700</delta_ts>
            <desc>updated patch probably more utf-16 friendly</desc>
            <filename>0001-updated-patch.patch</filename>
            <type>text/plain</type>
            <size>74772</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBiNDllNzFmNjIzYjlmMzYxODk2OWFjNzc3ZjMxYjc5NjAxOTc0YWE1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDIwIFNlcCAyMDEwIDE5OjAzOjMxICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
dXBkYXRlZCBwYXRjaAoKLS0tCiAuZ2l0YXR0cmlidXRlcyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgIDEgKwogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDE3ICsrKwogLi4uL21lZGlhL2NvbnRleHQtbWVudS1hY3Rp
b25zLWV4cGVjdGVkLnR4dCAgICAgICAgfCAgIDI2ICsrKysKIExheW91dFRlc3RzL21lZGlhL2Nv
bnRleHQtbWVudS1hY3Rpb25zLmh0bWwgICAgICAgIHwgICA5MSArKysrKysrKysrKysrCiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAgIDQgKwog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCAgICAgICAgICAgICAgICAgICAgfCAgICAy
ICsKIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkICAgICAgICAgICAgICAgICAgIHwg
ICAgMiArCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAxMjEgKysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250
cm9sbGVyLmNwcCAgICAgICAgICAgICB8ICAgMjIgKysrCiBXZWJDb3JlL3BsYXRmb3JtL0NvbnRl
eHRNZW51LmNwcCAgICAgICAgICAgICAgICAgICB8ICAgNzEgKysrKysrKysrLQogV2ViQ29yZS9w
bGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaCAgICAgICAgICAgICAgICAgfCAgICA4ICsKIFdlYkNv
cmUvcGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCAgICAgICAgICAgIHwgICAxMSArKwog
V2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcCAgICAgICAgICAgICAgfCAgIDUx
ICsrKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaCAgICAgICAgICAg
ICAgICB8ICAgMTEgKysKIC4uLi9wbGF0Zm9ybS9hbmRyb2lkL0xvY2FsaXplZFN0cmluZ3NBbmRy
b2lkLmNwcCAgIHwgICA2MCArKysrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0vYnJldy9Mb2NhbGl6
ZWRTdHJpbmdzQnJldy5jcHAgICAgIHwgICA1MCArKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL2Vm
bC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcCAgICAgICB8ICAgNTAgKysrKysrKwogV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvQ29udGV4dE1lbnVJdGVtR3RrLmNwcCAgICAgICAgfCAgIDEzICsrLQogV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5nc0d0ay5jcHAgICAgICAgfCAgIDUxICsr
KysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0cmluZ3NIYWlrdS5jcHAg
ICB8ICAgNTAgKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS93eC9Mb2NhbGl6ZWRTdHJpbmdzV3gu
Y3BwICAgICAgICAgfCAgIDUwICsrKysrKysKIFdlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1
bHQuY3BwICAgICAgICAgICAgICAgIHwgIDEzNSArKysrKysrKysrKysrKysrKystLQogV2ViQ29y
ZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5oICAgICAgICAgICAgICAgICAgfCAgIDE5ICsrKwog
V2ViS2l0L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEx
ICsrCiBXZWJLaXQvRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzICAgICAgICAgICB8
ICBCaW4gNTIwMjYgLT4gNTM0MDYgYnl0ZXMKIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAyMSArKysKIFdlYktpdC9jaHJvbWl1bS9zcmMvTG9j
YWxpemVkU3RyaW5ncy5jcHAgICAgICAgICAgIHwgICAxMCArKwogV2ViS2l0L21hYy9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIyICsrKwogV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAgfCAgIDEwICsrCiBXZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbSB8ICAgNTAgKysrKysr
KwogV2ViS2l0L3F0L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDIwICsrKwogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5j
cHAgfCAgIDUwICsrKysrKysKIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuaCAgIHwgICAxMCArKwogV2ViS2l0L3dpbi9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDIyICsrKwogLi4uL3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwICAgfCAgIDUwICsrKysrKysKIFdlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggIHwgICAxMCArKwogV2ViS2l0Mi9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIzICsrKysKIC4uLi9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwICAgICAgIHwgICA1MCArKysr
KysrCiAuLi4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggICAgICAgICB8
ICAgMTAgKysKIFdlYktpdFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAxNyArKysKIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9FdmVudFNlbmRl
ci5jcHAgICAgIHwgICA2MCArKysrKysrKy0KIDQxIGZpbGVzIGNoYW5nZWQsIDEzMzQgaW5zZXJ0
aW9ucygrKSwgMjggZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMv
bWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2
NDQgTGF5b3V0VGVzdHMvbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMuaHRtbAoKZGlmZiAtLWdp
dCBhLy5naXRhdHRyaWJ1dGVzIGIvLmdpdGF0dHJpYnV0ZXMKaW5kZXggMWRkZGQyZi4uMjc3M2Q2
NiAxMDA2NDQKLS0tIGEvLmdpdGF0dHJpYnV0ZXMKKysrIGIvLmdpdGF0dHJpYnV0ZXMKQEAgLTE0
LDYgKzE0LDcgQEAgb2JqYy8qLmggZGlmZj1vYmpjcHBoZWFkZXIKICovb2JqYy8qLmggZGlmZj1v
YmpjcHBoZWFkZXIKICovKi9vYmpjLyouaCBkaWZmPW9iamNwcGhlYWRlcgogV2ViS2l0VG9vbHMv
V2ViS2l0TGF1bmNoZXIvKi5oIGRpZmY9b2JqY3BwaGVhZGVyCitXZWJLaXQvRW5nbGlzaC5scHJv
ai8qLnN0cmluZ3MgdXRmMTYKIAogSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9q
L0phdmFTY3JpcHRDb3JlLnNsbiAtY3JsZgogSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
dmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvaiAtY3JsZgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDBmOWM3MzguLjdhZGM5NGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wOS0xNSAgUGhp
bGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gZW5oYW5jZWQgY29udGV4dCBtZW51
IGZvciBtZWRpYSBlbGVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDUwMjEKKworICAgICAgICBOZXcgdGVzdCBjaGVja2luZyB0aGUgYWN0aW9u
cyB0aGF0IGNhbiBiZSB0cmlnZ2VyZWQgYnkgYWN0aXZhdGluZworICAgICAgICB0aGUgY29udGV4
LW1lbnUgb2YgdGhlIG1lZGlhIGVsZW1lbnQuIFNraXBwZWQgb24gbWFjLCBxdCBhbmQgd2luCisg
ICAgICAgIGJlY2F1c2Ugb2YgbGFjayBvZiBEUlQgc3VwcG9ydC4KKworICAgICAgICAqIG1lZGlh
L2NvbnRleHQtbWVudS1hY3Rpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVk
aWEvY29udGV4dC1tZW51LWFjdGlvbnMuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
bWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgKiBw
bGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMC0wOS0yMCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjkxOGYzZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDI2IEBACitUZXN0IHRoZSB2YXJpb3VzIGFjdGlvbnMgYXZhaWxhYmxl
IGluIHRoZSBIVE1MNSBtZWRpYSBlbGVtZW50IGNvbnRleHQtbWVudS4KKworUlVOKHZpZGVvLnNy
YyA9ICdjb250ZW50L3Rlc3QubXA0JykKK0VWRU5UKHBsYXkpCitFWFBFQ1RFRCAodmlkZW8ucGF1
c2VkID09ICdmYWxzZScpIE9LCitUb2dnbGluZyBwbGF5IHN0YXRlCitFWFBFQ1RFRCAodmlkZW8u
cGF1c2VkID09ICd0cnVlJykgT0sKKworRVhQRUNURUQgKHZpZGVvLm11dGVkID09ICdmYWxzZScp
IE9LCitUb2dnbGluZyBtdXRlIHN0YXRlCitFWFBFQ1RFRCAodmlkZW8ubXV0ZWQgPT0gJ3RydWUn
KSBPSworCitFWFBFQ1RFRCAodmlkZW8uY29udHJvbHMgPT0gJ3RydWUnKSBPSworVG9nZ2xpbmcg
bWVkaWEgY29udHJvbHMKK0VYUEVDVEVEICh2aWRlby5jb250cm9scyA9PSAnZmFsc2UnKSBPSwor
CitFWFBFQ1RFRCAodmlkZW8ubG9vcCA9PSAnZmFsc2UnKSBPSworVG9nZ2xpbmcgbG9vcCBzdGF0
ZQorRVhQRUNURUQgKHZpZGVvLmxvb3AgPT0gJ3RydWUnKSBPSworCitFWFBFQ1RFRCAodmlkZW8u
d2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ2ZhbHNlJykgT0sKK1RvZ2dsaW5nIGZ1bGxz
Y3JlZW4gc3RhdGUKK0VYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9
PSAndHJ1ZScpIE9LCisKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9jb250ZXh0
LW1lbnUtYWN0aW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFl
ODBmMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9jb250ZXh0LW1lbnUt
YWN0aW9ucy5odG1sCkBAIC0wLDAgKzEsOTEgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgICAgIDxz
Y3JpcHQgc3JjPSJtZWRpYS1maWxlLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9
dmlkZW8tdGVzdC5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKworICAgICAgICAgICAg
ZnVuY3Rpb24gcGxheWluZygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXdp
bmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgZW5kVGVzdCgp
OworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZW5kVGVzdCgp
OworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOworCisgICAgICAgICAgICAgICAgdmFyIHgs
IHksIGl0ZW1zOworICAgICAgICAgICAgICAgIHggPSB2aWRlby5vZmZzZXRQYXJlbnQub2Zmc2V0
TGVmdCArIHZpZGVvLm9mZnNldExlZnQgKyB2aWRlby5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAg
ICAgICAgICAgeSA9IHZpZGVvLm9mZnNldFBhcmVudC5vZmZzZXRUb3AgKyB2aWRlby5vZmZzZXRU
b3AgKyB2aWRlby5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKHgsIHkpOworICAgICAgICAgICAgICAgIGl0ZW1zID0gZXZlbnRTZW5kZXIu
Y29udGV4dENsaWNrKCk7CisKKworICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
aXRlbXMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg
ICBpZiAoaXRlbXNbaV0udGl0bGUubWF0Y2goIkNvbnRyb2xzIikpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5jb250cm9scyIsIHRydWUsICc9PScpOworICAg
ICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRvZ2dsaW5nIG1lZGlhIGNvbnRyb2xz
Iik7CisgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zW2ldLmNsaWNrKCk7CisgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8uY29udHJvbHMiLCBmYWxzZSwgJz09Jyk7
CisgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbXNbaV0udGl0bGUubWF0Y2go
IlBhdXNlIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5w
YXVzZWQiLCBmYWxzZSwgJz09Jyk7CisgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0
ZSgiVG9nZ2xpbmcgcGxheSBzdGF0ZSIpOworICAgICAgICAgICAgICAgICAgICAgICBpdGVtc1tp
XS5jbGljaygpOworICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnBh
dXNlZCIsIHRydWUsICc9PScpOworICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUo
IiIpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGl0
ZW1zW2ldLnRpdGxlLm1hdGNoKCJMb29wIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgdGVz
dEV4cGVjdGVkKCJ2aWRlby5sb29wIiwgZmFsc2UsICc9PScpOworICAgICAgICAgICAgICAgICAg
ICAgICBjb25zb2xlV3JpdGUoIlRvZ2dsaW5nIGxvb3Agc3RhdGUiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgaXRlbXNbaV0uY2xpY2soKTsKKyAgICAgICAgICAgICAgICAgICAgICAgdGVzdEV4
cGVjdGVkKCJ2aWRlby5sb29wIiwgdHJ1ZSwgJz09Jyk7CisgICAgICAgICAgICAgICAgICAgICAg
IGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ICAgICAgICBpZiAoaXRlbXNbaV0udGl0bGUubWF0Y2goIk11dGUiKSkgeworICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLm11dGVkIiwgZmFsc2UsICc9PScpOworICAg
ICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRvZ2dsaW5nIG11dGUgc3RhdGUiKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNbaV0uY2xpY2soKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5tdXRlZCIsIHRydWUsICc9PScpOworICAgICAg
ICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLnRpdGxlLm1hdGNoKCJGdWxsc2Ny
ZWVuIikgJiYgdmlkZW8ud2Via2l0U3VwcG9ydHNGdWxsc2NyZWVuKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4i
LCBmYWxzZSwgJz09Jyk7CisgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVG9n
Z2xpbmcgZnVsbHNjcmVlbiBzdGF0ZSIpOworICAgICAgICAgICAgICAgICAgICAgICBpdGVtc1tp
XS5jbGljaygpOworICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndl
YmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIiwgdHJ1ZSwgJz09Jyk7CisgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgICAgICAgICAvLyBUT0RPOiB0ZXN0IGNvcHkgbGluayBsb2NhdGlvbiBhbmQgb3BlbiBp
biBuZXcgd2luZG93LgorICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgICAgICAgZW5kVGVzdCgp
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBzdGFydCgpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOworICAgICAgICAgICAg
ICAgIHdhaXRGb3JFdmVudCgncGxheScsIHBsYXlpbmcpOworICAgICAgICAgICAgICAgIHJ1bigi
dmlkZW8uc3JjID0gJyIgKyBmaW5kTWVkaWFGaWxlKCJ2aWRlbyIsICJjb250ZW50L3Rlc3QiKSAr
ICInIik7CisgICAgICAgICAgICB9CisKKyAgICAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
IG9ubG9hZD0ic3RhcnQoKSI+CisgICAgPHA+VGVzdCB0aGUgdmFyaW91cyBhY3Rpb25zIGF2YWls
YWJsZSBpbiB0aGUgSFRNTDUgbWVkaWEgZWxlbWVudCBjb250ZXh0LW1lbnUuPC9wPgorICAgIDx2
aWRlbyBpZD0idmlkZW8iIGF1dG9wbGF5IGNvbnRyb2xzPjwvdmlkZW8+Cis8L2JvZHk+Cis8L2h0
bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKaW5kZXggYjhjYTUyOC4uYjQxMTFhZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKQEAgLTMxMCwzICszMTAsNyBAQCBmYXN0L2ZpbGVzL3dv
cmtlcnMKIAogIyB2aWV3cG9ydCBtZXRhIHRhZyBzdXBwb3J0CiBmYXN0L3ZpZXdwb3J0CisKKyMg
bmVlZHMgZW5oYW5jZWQgZXZlbnRTZW5kZXIuY29udGV4dE1lbnUoKSByZXR1cm4gdmFsdWUKKyMg
c2VlIGFsc28gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MDIxCitt
ZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAppbmRl
eCBmYTg4Y2I3Li43MTE0YzFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9T
a2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTIyNzAsNiAr
MjI3MCw4IEBAIGVkaXRpbmcvc2VsZWN0aW9uLzUxOTUxNjYtMS5odG1sCiAKICMgbWlzc2luZyBE
UlQgZmVhdHVyZSwgc2VlIGFsc28gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM5MTAyCiBlZGl0aW5nL3NlbGVjdGlvbi9jb250ZXh0LW1lbnUtb24tdGV4dC5odG1sCisj
IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUwMjEKK21lZGlh
L2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwKIAogIyA9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAjCiAj
IEZhaWxpbmcgZWRpdGluZy9zcGVsbGluZyB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApp
bmRleCA2MmNlYWQ4Li4xMGU3NjgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtMjk4
LDYgKzI5OCw4IEBAIGh0dHAvdGVzdHMvY3NzL2Nzcy1pbWFnZS1sb2FkaW5nLmh0bWwKIAogIyBt
aXNzaW5nIERSVCBmZWF0dXJlLCBzZWUgYWxzbyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzkxMDIKIGVkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS1vbi10ZXh0
Lmh0bWwKKyMgYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTAy
MQorbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMuaHRtbAogCiAjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgTm8gYnVncyBmaWxlZCBhYm91dCB0aGUgYmVs
b3cgeWV0IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTg0OTI1My4uNjEzMWZhMiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MjQgQEAKKzIwMTAtMDktMjAgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtd
IGVuaGFuY2VkIGNvbnRleHQgbWVudSBmb3IgbWVkaWEgZWxlbWVudHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MDIxCisKKyAgICAgICAgTmV3IGl0
ZW1zIGluIHRoZSBtZWRpYSBFbGVtZW50IGNvbnRleHQgbWVudToKKyAgICAgICAgLSBwbGF5L3Bh
dXNlCisgICAgICAgIC0gbXV0ZS91bm11dGUKKyAgICAgICAgLSBjb250cm9scyBkaXNwbGF5IGNv
bnRyb2wKKyAgICAgICAgLSBzd2l0Y2ggdG8gZnVsbHNjcmVlbiAoZm9yIHZpZGVvIG9ubHkpCisg
ICAgICAgIC0gbG9vcCBwbGF5YmFjayBjb250cm9sCisgICAgICAgIC0gY29weSBtZWRpYSB1cmwg
dG8gY2xpcGJvYXJkCisgICAgICAgIC0gb3BlbiBpbiBuZXcgd2luZG93CisKKyAgICAgICAgVGVz
dDogbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMuaHRtbAorCisgICAgICAgICogcGFnZS9Db250
ZXh0TWVudUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250
cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6CisgICAgICAgICogcGxhdGZvcm0vQ29u
dGV4dE1lbnUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnU6OnBvcHVsYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51OjpjaGVja09yRW5hYmxlSWZOZWVkZWQpOgor
ICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L0xvY2FsaXphdGlvblN0cmF0ZWd5Lmg6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3Ry
aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9J
bk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVk
aW9Jbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5
VmlkZW9MaW5rVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4
dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ01lZGlhUGxheSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdNZWRpYVBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01l
ZGlhTXV0ZSk6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2FuZHJvaWQvTG9jYWxpemVkU3RyaW5nc0FuZHJvaWQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3cpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3cpOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJv
YXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtU
b0NsaXBib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVN
ZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2ds
ZU1lZGlhTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZp
ZGVvRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRp
YVBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2JyZXcvTG9jYWxpemVkU3RyaW5nc0JyZXcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3cpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3cpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJkKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBi
b2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNv
bnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlh
TG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVs
bHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkp
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUpOgorICAgICAgICAqIHBs
YXRmb3JtL2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQpOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3ApOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4p
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
dGsvQ29udGV4dE1lbnVJdGVtR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omd0a1N0b2NrSURG
cm9tQ29udGV4dE1lbnVBY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRT
dHJpbmdzR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5W
aWRlb0luTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09w
ZW5BdWRpb0luTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVu
dUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnTWVkaWFNdXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9oYWlrdS9Mb2NhbGl6ZWRTdHJpbmdz
SGFpa3UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVv
SW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkF1
ZGlvSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29w
eVZpZGVvTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnTWVkaWFQYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdN
ZWRpYU11dGUpOgorICAgICAgICAqIHBsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRv
dyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dp
bmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5r
VG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUF1
ZGlvTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z1RvZ2dsZU1lZGlhQ29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnVG9nZ2xlTWVkaWFMb29wKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z0VudGVyVmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ01lZGlhUGxheSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRp
YVBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSk6
CisgICAgICAgICogcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SGl0VGVzdFJlc3VsdDo6YWJzb2x1dGVNZWRpYVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpI
aXRUZXN0UmVzdWx0OjptZWRpYVN1cHBvcnRzRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3Jl
OjpIaXRUZXN0UmVzdWx0OjptZWRpYUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVz
dFJlc3VsdDo6dG9nZ2xlTWVkaWFDb250cm9sc0Rpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6
SGl0VGVzdFJlc3VsdDo6dG9nZ2xlTWVkaWFMb29wUGxheWJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6SGl0VGVzdFJlc3VsdDo6ZW50ZXJGdWxsc2NyZWVuRm9yVmlkZW8pOgorICAgICAgICAoV2Vi
Q29yZTo6SGl0VGVzdFJlc3VsdDo6bWVkaWFDb250cm9sc0VuYWJsZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6SGl0VGVzdFJlc3VsdDo6bWVkaWFMb29wRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpIaXRUZXN0UmVzdWx0OjptZWRpYVBsYXlpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVz
dFJlc3VsdDo6dG9nZ2xlTWVkaWFQbGF5U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVz
dFJlc3VsdDo6bWVkaWFIYXNBdWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0
OjptZWRpYU11dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQ6OnRvZ2dsZU1l
ZGlhTXV0ZVN0YXRlKToKKyAgICAgICAgKiByZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5oOgorCiAy
MDEwLTA5LTIwICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUBwYXJvZ2EuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvQ29u
dGV4dE1lbnVDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xs
ZXIuY3BwCmluZGV4IGQyMzE3ZDIuLmRlNjQ5ODggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9D
b250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNv
bnRyb2xsZXIuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwg
MjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgSWdhbGlhIFMuTAogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xODYsNiAr
MTg3LDI3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxl
Y3RlZChDb250ZXh0TWVudUl0ZW0qIGl0ZW0pCiAgICAgICAgIC8vIEZvciBub3csIGNhbGwgaW50
byB0aGUgY2xpZW50LiBUaGlzIGlzIHRlbXBvcmFyeSEKICAgICAgICAgZnJhbWUtPmVkaXRvcigp
LT5jb3B5SW1hZ2UocmVzdWx0KTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb250ZXh0TWVu
dUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdzoKKyAgICAgICAgb3Blbk5ld1dpbmRvdyhyZXN1
bHQuYWJzb2x1dGVNZWRpYVVSTCgpLCBmcmFtZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
Q29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkOgorICAgICAgICBmcmFt
ZS0+ZWRpdG9yKCktPmNvcHlVUkwocmVzdWx0LmFic29sdXRlTWVkaWFVUkwoKSwgcmVzdWx0LnRl
eHRDb250ZW50KCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRh
Z1RvZ2dsZU1lZGlhQ29udHJvbHM6CisgICAgICAgIHJlc3VsdC50b2dnbGVNZWRpYUNvbnRyb2xz
RGlzcGxheSgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1Rv
Z2dsZU1lZGlhTG9vcDoKKyAgICAgICAgcmVzdWx0LnRvZ2dsZU1lZGlhTG9vcFBsYXliYWNrKCk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1
bGxzY3JlZW46CisgICAgICAgIHJlc3VsdC5lbnRlckZ1bGxzY3JlZW5Gb3JWaWRlbygpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheVBhdXNlOgor
ICAgICAgICByZXN1bHQudG9nZ2xlTWVkaWFQbGF5U3RhdGUoKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGU6CisgICAgICAgIHJlc3VsdC50b2dn
bGVNZWRpYU11dGVTdGF0ZSgpOworICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51
SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93OiB7CiAgICAgICAgIERvY3VtZW50TG9hZGVyKiBs
b2FkZXIgPSBmcmFtZS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCk7CiAgICAgICAgIGlmICgh
bG9hZGVyLT51bnJlYWNoYWJsZVVSTCgpLmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vQ29udGV4dE1lbnUuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5j
cHAKaW5kZXggMzdkNGMyYi4uY2ExZjcxOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9D
b250ZXh0TWVudS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5jcHAKQEAg
LTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBDaHJpc3RpYW4gRHl3
YW4gPGNocmlzdGlhbkBpbWVuZGlvLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEg
Uy5MCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4Miw2ICsyODMsMTkgQEAg
dm9pZCBDb250ZXh0TWVudTo6cG9wdWxhdGUoKQogICAgICAgICBjb250ZXh0TWVudUl0ZW1UYWdE
b3dubG9hZEltYWdlVG9EaXNrKCkpOwogICAgIENvbnRleHRNZW51SXRlbSBDb3B5SW1hZ2VJdGVt
KEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkLCAKICAg
ICAgICAgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKSk7CisgICAgQ29u
dGV4dE1lbnVJdGVtIE9wZW5NZWRpYUluTmV3V2luZG93SXRlbShBY3Rpb25UeXBlLCBDb250ZXh0
TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdywgU3RyaW5nKCkpOworICAgIENvbnRleHRN
ZW51SXRlbSBDb3B5TWVkaWFMaW5rSXRlbShBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdD
b3B5TWVkaWFMaW5rVG9DbGlwYm9hcmQsIAorICAgICAgICBTdHJpbmcoKSk7CisgICAgQ29udGV4
dE1lbnVJdGVtIE1lZGlhUGxheVBhdXNlKEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ01l
ZGlhUGxheVBhdXNlLCAKKyAgICAgICAgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkpOwor
ICAgIENvbnRleHRNZW51SXRlbSBNZWRpYU11dGUoQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVt
VGFnTWVkaWFNdXRlLCAKKyAgICAgICAgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkpOwor
ICAgIENvbnRleHRNZW51SXRlbSBUb2dnbGVNZWRpYUNvbnRyb2xzKENoZWNrYWJsZUFjdGlvblR5
cGUsIENvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMsIAorICAgICAgICBjb250
ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkpOworICAgIENvbnRleHRNZW51SXRl
bSBUb2dnbGVNZWRpYUxvb3AoQ2hlY2thYmxlQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFn
VG9nZ2xlTWVkaWFMb29wLCAKKyAgICAgICAgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFM
b29wKCkpOworICAgIENvbnRleHRNZW51SXRlbSBFbnRlclZpZGVvRnVsbHNjcmVlbihBY3Rpb25U
eXBlLCBDb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbiwgCisgICAgICAgIGNv
bnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCkpOwogI2lmIFBMQVRGT1JNKE1B
QykKICAgICBDb250ZXh0TWVudUl0ZW0gU2VhcmNoU3BvdGxpZ2h0SXRlbShBY3Rpb25UeXBlLCBD
b250ZXh0TWVudUl0ZW1UYWdTZWFyY2hJblNwb3RsaWdodCwgCiAgICAgICAgIGNvbnRleHRNZW51
SXRlbVRhZ1NlYXJjaEluU3BvdGxpZ2h0KCkpOwpAQCAtMzQ5LDcgKzM2MywyMyBAQCB2b2lkIENv
bnRleHRNZW51Ojpwb3B1bGF0ZSgpCiAgICAgICAgICAgICAgICAgYXBwZW5kSXRlbShDb3B5SW1h
Z2VJdGVtKTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChpbWFnZVVSTC5pc0VtcHR5KCkgJiYg
bGlua1VSTC5pc0VtcHR5KCkpIHsKKyAgICAgICAgS1VSTCBtZWRpYVVSTCA9IHJlc3VsdC5hYnNv
bHV0ZU1lZGlhVVJMKCk7CisgICAgICAgIGlmICghbWVkaWFVUkwuaXNFbXB0eSgpKSB7CisgICAg
ICAgICAgICBpZiAoIWxpbmtVUkwuaXNFbXB0eSgpIHx8ICFpbWFnZVVSTC5pc0VtcHR5KCkpCisg
ICAgICAgICAgICAgICAgYXBwZW5kSXRlbSgqc2VwYXJhdG9ySXRlbSgpKTsKKworICAgICAgICAg
ICAgYXBwZW5kSXRlbShNZWRpYVBsYXlQYXVzZSk7CisgICAgICAgICAgICBhcHBlbmRJdGVtKE1l
ZGlhTXV0ZSk7CisgICAgICAgICAgICBhcHBlbmRJdGVtKFRvZ2dsZU1lZGlhQ29udHJvbHMpOwor
ICAgICAgICAgICAgYXBwZW5kSXRlbShUb2dnbGVNZWRpYUxvb3ApOworICAgICAgICAgICAgYXBw
ZW5kSXRlbShFbnRlclZpZGVvRnVsbHNjcmVlbik7CisKKyAgICAgICAgICAgIGFwcGVuZEl0ZW0o
KnNlcGFyYXRvckl0ZW0oKSk7CisgICAgICAgICAgICBhcHBlbmRJdGVtKENvcHlNZWRpYUxpbmtJ
dGVtKTsKKyAgICAgICAgICAgIGFwcGVuZEl0ZW0oT3Blbk1lZGlhSW5OZXdXaW5kb3dJdGVtKTsK
KyAgICAgICAgfQorCisgICAgICAgIGlmIChpbWFnZVVSTC5pc0VtcHR5KCkgJiYgbGlua1VSTC5p
c0VtcHR5KCkgJiYgbWVkaWFVUkwuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBpZiAocmVzdWx0
LmlzU2VsZWN0ZWQoKSkgewogICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rpb25Db250YWluc1Bv
c3NpYmxlV29yZChmcmFtZSkpIHsKICNpZiBQTEFURk9STShNQUMpCkBAIC0zNzUsMTIgKzQwNSw2
IEBAIHZvaWQgQ29udGV4dE1lbnU6OnBvcHVsYXRlKCkKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQog
ICAgICAgICAgICAgICAgIGlmICghKGZyYW1lLT5wYWdlKCkgJiYgZnJhbWUtPnBhZ2UoKS0+aW5z
cGVjdG9yQ29udHJvbGxlcigpLT5oYXNJbnNwZWN0b3JGcm9udGVuZENsaWVudCgpKSkgewogI2Vu
ZGlmCi0jaWYgUExBVEZPUk0oR1RLKQotICAgICAgICAgICAgICAgIGFwcGVuZEl0ZW0oQmFja0l0
ZW0pOwotICAgICAgICAgICAgICAgIGFwcGVuZEl0ZW0oRm9yd2FyZEl0ZW0pOwotICAgICAgICAg
ICAgICAgIGFwcGVuZEl0ZW0oU3RvcEl0ZW0pOwotICAgICAgICAgICAgICAgIGFwcGVuZEl0ZW0o
UmVsb2FkSXRlbSk7Ci0jZWxzZQogICAgICAgICAgICAgICAgIGlmIChmcmFtZS0+cGFnZSgpICYm
IGZyYW1lLT5wYWdlKCktPmNhbkdvQmFja09yRm9yd2FyZCgtMSkpCiAgICAgICAgICAgICAgICAg
ICAgIGFwcGVuZEl0ZW0oQmFja0l0ZW0pOwogCkBAIC0zOTMsNyArNDE3LDYgQEAgdm9pZCBDb250
ZXh0TWVudTo6cG9wdWxhdGUoKQogICAgICAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKFN0b3BJ
dGVtKTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIGFwcGVuZEl0
ZW0oUmVsb2FkSXRlbSk7Ci0jZW5kaWYKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgICAgICAg
ICAgICAgIH0KICNlbmRpZgpAQCAtNzg4LDYgKzgxMSwyOCBAQCB2b2lkIENvbnRleHRNZW51Ojpj
aGVja09yRW5hYmxlSWZOZWVkZWQoQ29udGV4dE1lbnVJdGVtJiBpdGVtKSBjb25zdAogICAgICAg
ICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93OgogICAgICAgICBj
YXNlIENvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2s6CiAgICAgICAgIGNhc2Ug
Q29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQ6CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdzoK
KyAgICAgICAgICAgIGlmIChtX2hpdFRlc3RSZXN1bHQubWVkaWFJc1ZpZGVvKCkpCisgICAgICAg
ICAgICAgICAgaXRlbS5zZXRUaXRsZShjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dp
bmRvdygpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpdGVtLnNldFRpdGxl
KGNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KCkpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xp
cGJvYXJkOgorICAgICAgICAgICAgaWYgKG1faGl0VGVzdFJlc3VsdC5tZWRpYUlzVmlkZW8oKSkK
KyAgICAgICAgICAgICAgICBpdGVtLnNldFRpdGxlKGNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRl
b0xpbmtUb0NsaXBib2FyZCgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBp
dGVtLnNldFRpdGxlKGNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgp
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1Rv
Z2dsZU1lZGlhQ29udHJvbHM6CisgICAgICAgICAgICBzaG91bGRDaGVjayA9IG1faGl0VGVzdFJl
c3VsdC5tZWRpYUNvbnRyb2xzRW5hYmxlZCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wOgorICAgICAgICAgICAgc2hv
dWxkQ2hlY2sgPSBtX2hpdFRlc3RSZXN1bHQubWVkaWFMb29wRW5hYmxlZCgpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxz
Y3JlZW46CisgICAgICAgICAgICBzaG91bGRFbmFibGUgPSBtX2hpdFRlc3RSZXN1bHQubWVkaWFT
dXBwb3J0c0Z1bGxzY3JlZW4oKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENv
bnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93OgogICAgICAgICBjYXNlIENvbnRl
eHRNZW51SXRlbVRhZ1NwZWxsaW5nR3Vlc3M6CiAgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVt
VGFnT3RoZXI6CkBAIC04MjMsNiArODY4LDE2IEBAIHZvaWQgQ29udGV4dE1lbnU6OmNoZWNrT3JF
bmFibGVJZk5lZWRlZChDb250ZXh0TWVudUl0ZW0mIGl0ZW0pIGNvbnN0CiAgICAgICAgIGNhc2Ug
Q29udGV4dE1lbnVJdGVtTGFzdEN1c3RvbVRhZzoKICAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0
ZW1CYXNlQXBwbGljYXRpb25UYWc6CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBD
b250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXlQYXVzZToKKyAgICAgICAgICAgIGlmIChtX2hpdFRl
c3RSZXN1bHQubWVkaWFQbGF5aW5nKCkpCisgICAgICAgICAgICAgICAgaXRlbS5zZXRUaXRsZShj
b250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkpOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIGl0ZW0uc2V0VGl0bGUoY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnTWVkaWFN
dXRlOgorICAgICAgICAgICAgc2hvdWxkRW5hYmxlID0gbV9oaXRUZXN0UmVzdWx0Lm1lZGlhSGFz
QXVkaW8oKTsKKyAgICAgICAgICAgIHNob3VsZENoZWNrID0gc2hvdWxkRW5hYmxlICYmICBtX2hp
dFRlc3RSZXN1bHQubWVkaWFNdXRlZCgpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogCiAg
ICAgaXRlbS5zZXRDaGVja2VkKHNob3VsZENoZWNrKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vQ29udGV4dE1lbnVJdGVtLmggYi9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRl
bS5oCmluZGV4IDA1OGY2NDQuLmY3ZmE1ZTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
Q29udGV4dE1lbnVJdGVtLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0u
aApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0
ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdh
bGlhIFMuTAogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNDMsNiArMTQ0LDEz
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgQ29udGV4dE1lbnVJdGVtVGFnQ2FwaXRh
bGl6ZSwKICAgICAgICAgQ29udGV4dE1lbnVJdGVtVGFnQ2hhbmdlQmFjaywKICNlbmRpZgorICAg
ICAgICBDb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdywKKyAgICAgICAgQ29u
dGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkLAorICAgICAgICBDb250ZXh0
TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzLAorICAgICAgICBDb250ZXh0TWVudUl0ZW1U
YWdUb2dnbGVNZWRpYUxvb3AsCisgICAgICAgIENvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9G
dWxsc2NyZWVuLAorICAgICAgICBDb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXlQYXVzZSwKKyAg
ICAgICAgQ29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlLAogICAgICAgICBDb250ZXh0TWVudUl0
ZW1CYXNlQ3VzdG9tVGFnID0gNTAwMCwKICAgICAgICAgQ29udGV4dE1lbnVJdGVtQ3VzdG9tVGFn
Tm9BY3Rpb24gPSA1OTk4LAogICAgICAgICBDb250ZXh0TWVudUl0ZW1MYXN0Q3VzdG9tVGFnID0g
NTk5OSwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3ku
aCBiL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaAppbmRleCAxNzhjZmEy
Li4xZmUxMzhhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXphdGlvblN0cmF0
ZWd5LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6YXRpb25TdHJhdGVneS5oCkBAIC0x
LDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTAogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMTIsNiArMTEzLDE2IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplKCkgPSAwOwogICAgIHZp
cnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoYW5nZUJhY2soY29uc3QgU3RyaW5nJiBy
ZXBsYWNlZFN0cmluZykgPSAwOwogI2VuZGlmCisgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3coKSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3coKSA9IDA7CisgICAgdmlydHVh
bCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJkKCkgPSAw
OworICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0Ns
aXBib2FyZCgpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dn
bGVNZWRpYUNvbnRyb2xzKCkgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1RvZ2dsZU1lZGlhTG9vcCgpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKSA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQoKSA9IDA7CiAjZW5kaWYgLy8gRU5BQkxFKENPTlRF
WFRfTUVOVVMpCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5n
cy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCmluZGV4IGE2OWUw
ZmIuLjAxMmQ5MGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5n
cy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcApAQCAtMSw1
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDksIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxp
YSBTLkwKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzYyLDYgKzM2Myw1NiBA
QCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hhbmdlQmFjayhjb25zdCBTdHJpbmcmIHJlcGxh
Y2VkU3RyaW5nKQogfQogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQorCitTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiBwbGF0Zm9y
bVN0cmF0ZWdpZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFn
T3BlblZpZGVvSW5OZXdXaW5kb3coKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09w
ZW5BdWRpb0luTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCkt
PmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3
V2luZG93KCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9D
bGlwYm9hcmQoKQoreworICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9jYWxpemF0
aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJk
KCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9h
cmQoKQoreworICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJkKCk7Cit9
CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkKK3sKKyAg
ICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNv
bnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKTsKK30KKworU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCit7CisgICAgcmV0dXJuIHBsYXRmb3JtU3Ry
YXRlZ2llcygpLT5sb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdUb2dn
bGVNZWRpYUxvb3AoKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9G
dWxsc2NyZWVuKCkKK3sKKyAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXph
dGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCk7
Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQoreworICAgIHJldHVy
biBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1l
bnVJdGVtVGFnTWVkaWFQbGF5KCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRp
YVBhdXNlKCkKK3sKKyAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKTsKK30KKworU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpCit7CisgICAgcmV0dXJuIHBsYXRmb3JtU3Ry
YXRlZ2llcygpLT5sb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdNZWRp
YU11dGUoKTsKK30KICAgICAKIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVu
dCgpCiB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaCBi
L1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCmluZGV4IDA0MDQyYjYuLmE3MmVi
OGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCkBAIC0xLDUgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwOSBBcHBsZSBDb21wdXRlciwgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwOCw2ICsxMDksMTYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplKCk7
CiAgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoYW5nZUJhY2soY29uc3QgU3RyaW5nJiBy
ZXBsYWNlZFN0cmluZyk7CiAjZW5kaWYKKyAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Bl
blZpZGVvSW5OZXdXaW5kb3coKTsKKyAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkF1
ZGlvSW5OZXdXaW5kb3coKTsKKyAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVv
TGlua1RvQ2xpcGJvYXJkKCk7CisgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRp
b0xpbmtUb0NsaXBib2FyZCgpOworICAgIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVN
ZWRpYUNvbnRyb2xzKCk7CisgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlh
TG9vcCgpOworICAgIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVl
bigpOworICAgIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKTsKKyAgICBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpOworICAgIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdNZWRpYU11dGUoKTsKICAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5zcGVj
dEVsZW1lbnQoKTsKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL0xvY2FsaXplZFN0cmluZ3NBbmRyb2lkLmNwcCBi
L1dlYkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9Mb2NhbGl6ZWRTdHJpbmdzQW5kcm9pZC5jcHAKaW5k
ZXggMmZjODgwYi4uZmE0Zjg2YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lk
L0xvY2FsaXplZFN0cmluZ3NBbmRyb2lkLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2FuZHJv
aWQvTG9jYWxpemVkU3RyaW5nc0FuZHJvaWQuY3BwCkBAIC04MSw2ICs4MSw2NiBAQCBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKQogICAgIHJldHVybiBTdHJp
bmcoKTsKIH0KIAorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwor
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9n
Z2xlTWVkaWFDb250cm9scygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
U3RyaW5nKCk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3Ao
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2Uo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z09wZW5GcmFtZUluTmV3V2luZG93KCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L0xvY2FsaXplZFN0cmluZ3NCcmV3LmNwcCBiL1dl
YkNvcmUvcGxhdGZvcm0vYnJldy9Mb2NhbGl6ZWRTdHJpbmdzQnJldy5jcHAKaW5kZXggMWJjNTk4
NS4uMmRmZDEyYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L0xvY2FsaXplZFN0
cmluZ3NCcmV3LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvTG9jYWxpemVkU3RyaW5n
c0JyZXcuY3BwCkBAIC05Niw2ICs5Niw1NiBAQCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29w
eUltYWdlVG9DbGlwYm9hcmQoKQogICAgIHJldHVybiAiQ29weSBpbWFnZSB0byBjbGlwYm9hcmQi
OwogfQogCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3coKQor
eworICAgIHJldHVybiAiT3BlbiB2aWRlbyBpbiBuZXcgd2luZG93IjsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gIk9w
ZW4gYXVkaW8gaW4gbmV3IHdpbmRvdyI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdD
b3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiAiQ29weSBWaWRlbyBsaW5r
IGxvY2F0aW9uIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtU
b0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJuICJDb3B5IGF1ZGlvIGxpbmsgbG9jYXRpb24iOwor
fQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpCit7Cisg
ICAgcmV0dXJuICJUb2dnbGUgbWVkaWEgY29udHJvbHMiOworfQorCitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkKK3sKKyAgICByZXR1cm4gIlRvZ2dsZSBtZWRpYSBs
b29wIHBsYXliYWNrIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9G
dWxsc2NyZWVuKCkKK3sKKyAgICByZXR1cm4gIlN3aXRjaCB2aWRlbyB0byBmdWxsc2NyZWVuIjsK
K30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpCit7CisgICAgcmV0dXJu
ICJQbGF5IjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKQorewor
ICAgIHJldHVybiAiUGF1c2UiOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFN
dXRlKCkKK3sKKyAgICByZXR1cm4gIk11dGUiOworfQorCiBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnT3BlbkZyYW1lSW5OZXdXaW5kb3coKQogewogICAgIHJldHVybiAiT3BlbiBmcmFtZSBpbiBu
ZXcgd2luZG93IjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0xvY2FsaXplZFN0
cmluZ3NFZmwuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5j
cHAKaW5kZXggNjAyMzIwNS4uYTgxNDM0ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvTG9jYWxpemVkU3RyaW5nc0VmbC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTG9j
YWxpemVkU3RyaW5nc0VmbC5jcHAKQEAgLTk4LDYgKzk4LDU2IEBAIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpCiAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVU
RjgoIkNvcHkgSW1hZ2UiKTsKIH0KIAorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRl
b0luTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiT3BlbiBWaWRl
byBpbiBOZXcgV2luZG93Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVk
aW9Jbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIk9wZW4gQXVk
aW8gaW4gTmV3IFdpbmRvdyIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weVZp
ZGVvTGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiQ29w
eSBWaWRlbyBMaW5rIExvY2F0aW9uIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdD
b3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4
KCJDb3B5IEF1ZGlvIExpbmsgTG9jYXRpb24iKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4
KCJUb2dnbGUgTWVkaWEgQ29udHJvbHMiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z1RvZ2dsZU1lZGlhTG9vcCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIlRvZ2ds
ZSBNZWRpYSBMb29wIFBsYXliYWNrIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdF
bnRlclZpZGVvRnVsbHNjcmVlbigpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIlN3
aXRjaCBWaWRlbyB0byBGdWxsc2NyZWVuIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdNZWRpYVBsYXkoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJQbGF5Iik7Cit9
CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkKK3sKKyAgICByZXR1cm4g
U3RyaW5nOjpmcm9tVVRGOCgiUGF1c2UiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z01lZGlhTXV0ZSgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIk11dGUiKTsKK30K
KwogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCkKIHsKICAg
ICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiT3BlbiBGcmFtZSBpbiBOZXcgV2luZG93Iik7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Db250ZXh0TWVudUl0ZW1HdGsuY3BwIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ29udGV4dE1lbnVJdGVtR3RrLmNwcAppbmRleCBlMmM1Yjg0
Li42OGQwYTlhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Db250ZXh0TWVudUl0
ZW1HdGsuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0NvbnRleHRNZW51SXRlbUd0ay5j
cHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFu
cyBQZXRlciBGcmV5dGhlcgorICogIENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MCiAgKgog
ICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCkBAIC0zMywxMSArMzQsMTMgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGd0
a1N0b2NrSURGcm9tQ29udGV4dE1lbnVBY3Rpb24oY29uc3QgQ29udGV4dE1lbnVBY3Rpb24mIGFj
dGkKICAgICBzd2l0Y2ggKGFjdGlvbikgewogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnQ29w
eUxpbmtUb0NsaXBib2FyZDoKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRv
Q2xpcGJvYXJkOgorICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xp
cGJvYXJkOgogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnQ29weToKICAgICAgICAgcmV0dXJu
IEdUS19TVE9DS19DT1BZOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5l
d1dpbmRvdzoKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93
OgogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3c6CisgICAg
Y2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdzoKICAgICAgICAgcmV0
dXJuIEdUS19TVE9DS19PUEVOOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRM
aW5rVG9EaXNrOgogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlz
azoKQEAgLTU5LDcgKzYyLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGd0a1N0b2NrSURGcm9tQ29u
dGV4dE1lbnVBY3Rpb24oY29uc3QgQ29udGV4dE1lbnVBY3Rpb24mIGFjdGkKICAgICBjYXNlIENv
bnRleHRNZW51SXRlbVRhZ1NlbGVjdEFsbDoKICAgICAgICAgcmV0dXJuIEdUS19TVE9DS19TRUxF
Q1RfQUxMOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdHdWVzczoKLSAgICAg
ICAgcmV0dXJuIE5VTEw7CisgICAgICAgIHJldHVybiAwOwogICAgIGNhc2UgQ29udGV4dE1lbnVJ
dGVtVGFnSWdub3JlU3BlbGxpbmc6CiAgICAgICAgIHJldHVybiBHVEtfU1RPQ0tfTk87CiAgICAg
Y2FzZSBDb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nOgpAQCAtOTksOCArMTAyLDE0IEBA
IHN0YXRpYyBjb25zdCBjaGFyKiBndGtTdG9ja0lERnJvbUNvbnRleHRNZW51QWN0aW9uKGNvbnN0
IENvbnRleHRNZW51QWN0aW9uJiBhY3RpCiAgICAgICAgIHJldHVybiBHVEtfU1RPQ0tfVU5ERVJM
SU5FOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnU2hvd0NvbG9yczoKICAgICAgICAgcmV0
dXJuIEdUS19TVE9DS19TRUxFQ1RfQ09MT1I7CisgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdU
b2dnbGVNZWRpYUNvbnRyb2xzOgorICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVk
aWFMb29wOgorICAgICAgICAvLyBObyBpY29uIGZvciB0aGlzLgorICAgICAgICByZXR1cm4gMDsK
KyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuOgorICAgICAg
ICByZXR1cm4gR1RLX1NUT0NLX0ZVTExTQ1JFRU47CiAgICAgZGVmYXVsdDoKLSAgICAgICAgcmV0
dXJuIE5VTEw7CisgICAgICAgIHJldHVybiAwOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5nc0d0ay5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcAppbmRleCA0MzJjOTJmLi43ODUxMzI2IDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcApAQCAtNCw2
ICs0LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhl
cgogICogQ29weXJpZ2h0IChDKSAyMDA4IENocmlzdGlhbiBEeXdhbiA8Y2hyaXN0aWFuQGltZW5k
aW8uY29tPgogICogQ29weXJpZ2h0IChDKSAyMDA4IE51YW50aSBMdGQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgSWdhbGlhIFMuTAogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0x
MTAsNiArMTExLDU2IEBAIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBi
b2FyZCgpCiAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiQ29wX3kgSW1hZ2UiKSk7CiB9
CiAKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdygpCit7Cisg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiT3BlbiBfVmlkZW8gaW4gTmV3IFdpbmRvdyIp
KTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KCkK
K3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJPcGVuIF9BdWRpbyBpbiBOZXcgV2lu
ZG93IikpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xp
cGJvYXJkKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJDb3BfeSBWaWRlbyBM
aW5rIExvY2F0aW9uIikpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlv
TGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJDb3Bf
eSBBdWRpbyBMaW5rIExvY2F0aW9uIikpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
VG9nZ2xlTWVkaWFDb250cm9scygpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygi
X1RvZ2dsZSBNZWRpYSBDb250cm9scyIpKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z1RvZ2dsZU1lZGlhTG9vcCgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiVG9n
Z2xlIE1lZGlhIF9Mb29wIFBsYXliYWNrIikpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4
KF8oIlN3aXRjaCBWaWRlbyB0byBfRnVsbHNjcmVlbiIpKTsKK30KKworU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ01lZGlhUGxheSgpCit7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygi
X1BsYXkiKSk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkKK3sK
KyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChfKCJfUGF1c2UiKSk7Cit9CisKK1N0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21V
VEY4KF8oIl9NdXRlIikpOworfQorCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1l
SW5OZXdXaW5kb3coKQogewogICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KF8oIk9wZW4gX0Zy
YW1lIGluIE5ldyBXaW5kb3ciKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1
L0xvY2FsaXplZFN0cmluZ3NIYWlrdS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvY2Fs
aXplZFN0cmluZ3NIYWlrdS5jcHAKaW5kZXggNTMyMTc5Mi4uNGMxMmNmMyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Mb2NhbGl6ZWRTdHJpbmdzSGFpa3UuY3BwCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vaGFpa3UvTG9jYWxpemVkU3RyaW5nc0hhaWt1LmNwcApAQCAtOTgsNiAr
OTgsNTYgQEAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkK
ICAgICByZXR1cm4gIkNvcHkgaW1hZ2UgdG8gY2xpcGJvYXJkIjsKIH0KIAorU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gIk9wZW4g
dmlkZW8gaW4gbmV3IHdpbmRvdyI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVu
QXVkaW9Jbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuICJPcGVuIGF1ZGlvIGluIG5ldyB3aW5k
b3ciOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJv
YXJkKCkKK3sKKyAgICByZXR1cm4gIkNvcHkgdmlkZW8gbGluayBsb2NhdGlvbiI7Cit9CisKK1N0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQoKQoreworICAg
IHJldHVybiAiQ29weSBhdWRpbyBsaW5rIGxvY2F0aW9uIjsKK30KKworU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKQoreworICAgIHJldHVybiAiVG9nZ2xlIG1l
ZGlhIGNvbnRyb2xzIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlh
TG9vcCgpCit7CisgICAgcmV0dXJuICJUb2dnbGUgbWVkaWEgbG9vcCBwbGF5YmFjayI7Cit9CisK
K1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpCit7CisgICAg
cmV0dXJuICJTd2l0Y2ggdmlkZW8gdG8gZnVsbHNjcmVlbiI7Cit9CisKK1N0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQoreworICAgIHJldHVybiAiUGxheSI7Cit9CisKK1N0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkKK3sKKyAgICByZXR1cm4gIlBhdXNlIjsK
K30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpCit7CisgICAgcmV0dXJu
ICJNdXRlIjsKK30KKwogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2lu
ZG93KCkKIHsKICAgICByZXR1cm4gIk9wZW4gZnJhbWUgaW4gbmV3IHdpbmRvdyI7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHAKaW5kZXggNDExMmY2NC4uMTBlYTQz
NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS93eC9Mb2NhbGl6ZWRTdHJpbmdzV3guY3Bw
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNwcApAQCAtOTcs
NiArOTcsNTYgQEAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJk
KCkKICAgICByZXR1cm4gU3RyaW5nKCJDb3B5IEltYWdlIHRvIENsaXBib2FyZCIpOyAKIH0KIAor
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KCkKK3sKKyAgICBy
ZXR1cm4gU3RyaW5nKCJPcGVuIFZpZGVvIGluIE5ldyBXaW5kb3ciKTsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gU3Ry
aW5nKCJPcGVuIEF1ZGlvIGluIE5ldyBXaW5kb3ciKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJuIFN0cmluZygi
Q29weSBWaWRlbyBMaW5rIExvY2F0aW9uIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBTdHJpbmcoIkNvcHkg
QXVkaW8gTGluayBMb2NhdGlvbiIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9n
Z2xlTWVkaWFDb250cm9scygpCit7CisgICAgcmV0dXJuIFN0cmluZygiVG9nZ2xlIE1lZGlhIENv
bnRyb2xzIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3Ao
KQoreworICAgIHJldHVybiBTdHJpbmcoIlRvZ2dsZSBNZWRpYSBMb29wIFBsYXliYWNrIik7Cit9
CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpCit7Cisg
ICAgcmV0dXJuIFN0cmluZygiU3dpdGNoIFZpZGVvIHRvIEZ1bGxzY3JlZW4iKTsKK30KKworU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpCit7CisgICAgcmV0dXJuIFN0cmluZygi
UGxheSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpCit7Cisg
ICAgcmV0dXJuIFN0cmluZygiUGF1c2UiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z01lZGlhTXV0ZSgpCit7CisgICAgcmV0dXJuIFN0cmluZygiTXV0ZSIpOworfQorCiBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3coKSAKIHsgCiAgICAgcmV0dXJu
IFN0cmluZygiT3BlbiBGcmFtZSBpbiBOZXcgV2luZG93Iik7IApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0
UmVzdWx0LmNwcAppbmRleCA0OTZjNGJhLi5mMjg2OTJlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Jl
bmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0
UmVzdWx0LmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVk
ZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiSFRNTEFuY2hvckVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MVmlkZW9FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50Lmgi
CkBAIC0yOTIsMjIgKzI5MywxMzQgQEAgS1VSTCBIaXRUZXN0UmVzdWx0OjphYnNvbHV0ZUltYWdl
VVJMKCkgY29uc3QKIEtVUkwgSGl0VGVzdFJlc3VsdDo6YWJzb2x1dGVNZWRpYVVSTCgpIGNvbnN0
CiB7CiAjaWYgRU5BQkxFKFZJREVPKQorICAgIGlmIChIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVs
dCA9IG1lZGlhRWxlbWVudCgpKQorICAgICAgICByZXR1cm4gbV9pbm5lck5vblNoYXJlZE5vZGUt
PmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGRlcHJlY2F0ZWRQYXJzZVVSTChtZWRpYUVsdC0+Y3Vy
cmVudFNyYygpKSk7CisgICAgcmV0dXJuIEtVUkwoKTsKKyNlbHNlCisgICAgcmV0dXJuIEtVUkwo
KTsKKyNlbmRpZgorfQorCitib29sIEhpdFRlc3RSZXN1bHQ6Om1lZGlhU3VwcG9ydHNGdWxsc2Ny
ZWVuKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgSFRNTE1lZGlhRWxlbWVudCog
bWVkaWFFbHQobWVkaWFFbGVtZW50KCkpOworICAgIHJldHVybiAobWVkaWFFbHQgJiYgbWVkaWFF
bHQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykgJiYgbWVkaWFFbHQtPnN1cHBvcnRz
RnVsbHNjcmVlbigpKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKKyNp
ZiBFTkFCTEUoVklERU8pCitIVE1MTWVkaWFFbGVtZW50KiBIaXRUZXN0UmVzdWx0OjptZWRpYUVs
ZW1lbnQoKSBjb25zdAorewogICAgIGlmICghKG1faW5uZXJOb25TaGFyZWROb2RlICYmIG1faW5u
ZXJOb25TaGFyZWROb2RlLT5kb2N1bWVudCgpKSkKLSAgICAgICAgcmV0dXJuIEtVUkwoKTsKKyAg
ICAgICAgcmV0dXJuIDA7CiAKICAgICBpZiAoIShtX2lubmVyTm9uU2hhcmVkTm9kZS0+cmVuZGVy
ZXIoKSAmJiBtX2lubmVyTm9uU2hhcmVkTm9kZS0+cmVuZGVyZXIoKS0+aXNNZWRpYSgpKSkKLSAg
ICAgICAgcmV0dXJuIEtVUkwoKTsKKyAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBBdG9taWNTdHJp
bmcgdXJsU3RyaW5nOwotICAgIGlmIChtX2lubmVyTm9uU2hhcmVkTm9kZS0+aGFzVGFnTmFtZShI
VE1MTmFtZXM6OnZpZGVvVGFnKSB8fCBtX2lubmVyTm9uU2hhcmVkTm9kZS0+aGFzVGFnTmFtZShI
VE1MTmFtZXM6OmF1ZGlvVGFnKSkgewotICAgICAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVs
ZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVtZW50Kj4obV9pbm5lck5vblNoYXJlZE5v
ZGUuZ2V0KCkpOwotICAgICAgICB1cmxTdHJpbmcgPSBtZWRpYUVsZW1lbnQtPmN1cnJlbnRTcmMo
KTsKLSAgICB9IGVsc2UKLSAgICAgICAgcmV0dXJuIEtVUkwoKTsKKyAgICBpZiAobV9pbm5lck5v
blNoYXJlZE5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykgfHwgbV9pbm5lck5v
blNoYXJlZE5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjphdWRpb1RhZykpCisgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVtZW50Kj4obV9pbm5lck5vblNoYXJlZE5vZGUu
Z2V0KCkpOworICAgIHJldHVybiAwOworfQorI2VuZGlmCiAKLSAgICByZXR1cm4gbV9pbm5lck5v
blNoYXJlZE5vZGUtPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGRlcHJlY2F0ZWRQYXJzZVVSTCh1
cmxTdHJpbmcpKTsKLSNlbHNlCi0gICAgcmV0dXJuIEtVUkwoKTsKK3ZvaWQgSGl0VGVzdFJlc3Vs
dDo6dG9nZ2xlTWVkaWFDb250cm9sc0Rpc3BsYXkoKSBjb25zdAoreworI2lmIEVOQUJMRShWSURF
TykKKyAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbHQgPSBtZWRpYUVsZW1lbnQoKSkK
KyAgICAgICAgbWVkaWFFbHQtPnNldENvbnRyb2xzKCFtZWRpYUVsdC0+Y29udHJvbHMoKSk7Cisj
ZW5kaWYKK30KKwordm9pZCBIaXRUZXN0UmVzdWx0Ojp0b2dnbGVNZWRpYUxvb3BQbGF5YmFjaygp
IGNvbnN0Cit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIGlmIChIVE1MTWVkaWFFbGVtZW50KiBt
ZWRpYUVsdCA9IG1lZGlhRWxlbWVudCgpKQorICAgICAgICBtZWRpYUVsdC0+c2V0TG9vcCghbWVk
aWFFbHQtPmxvb3AoKSk7CisjZW5kaWYKK30KKwordm9pZCBIaXRUZXN0UmVzdWx0OjplbnRlckZ1
bGxzY3JlZW5Gb3JWaWRlbygpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIEhUTUxN
ZWRpYUVsZW1lbnQqIG1lZGlhRWx0KG1lZGlhRWxlbWVudCgpKTsKKyAgICBpZiAobWVkaWFFbHQg
JiYgbWVkaWFFbHQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykpIHsKKyAgICAgICAg
SFRNTFZpZGVvRWxlbWVudCogdmlkZW9FbHQgPSBzdGF0aWNfY2FzdDxIVE1MVmlkZW9FbGVtZW50
Kj4obWVkaWFFbHQpOworICAgICAgICBpZiAoIXZpZGVvRWx0LT5pc0Z1bGxzY3JlZW4oKSAmJiBt
ZWRpYUVsdC0+c3VwcG9ydHNGdWxsc2NyZWVuKCkpCisgICAgICAgICAgICB2aWRlb0VsdC0+ZW50
ZXJGdWxsc2NyZWVuKCk7CisgICAgfQorI2VuZGlmCit9CisKK2Jvb2wgSGl0VGVzdFJlc3VsdDo6
bWVkaWFDb250cm9sc0VuYWJsZWQoKSBjb25zdAoreworI2lmIEVOQUJMRShWSURFTykKKyAgICBp
ZiAoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbHQgPSBtZWRpYUVsZW1lbnQoKSkKKyAgICAgICAg
cmV0dXJuIG1lZGlhRWx0LT5jb250cm9scygpOworI2VuZGlmCisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitib29sIEhpdFRlc3RSZXN1bHQ6Om1lZGlhTG9vcEVuYWJsZWQoKSBjb25zdAoreworI2lm
IEVOQUJMRShWSURFTykKKyAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbHQgPSBtZWRp
YUVsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIG1lZGlhRWx0LT5sb29wKCk7CisjZW5kaWYKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgSGl0VGVzdFJlc3VsdDo6bWVkaWFQbGF5aW5nKCkg
Y29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQqIG1l
ZGlhRWx0ID0gbWVkaWFFbGVtZW50KCkpCisgICAgICAgIHJldHVybiAhbWVkaWFFbHQtPnBhdXNl
ZCgpOworI2VuZGlmCisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEhpdFRlc3RSZXN1bHQ6
OnRvZ2dsZU1lZGlhUGxheVN0YXRlKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAg
aWYgKEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWx0ID0gbWVkaWFFbGVtZW50KCkpCisgICAgICAg
IG1lZGlhRWx0LT50b2dnbGVQbGF5U3RhdGUoKTsKKyNlbmRpZgorfQorCitib29sIEhpdFRlc3RS
ZXN1bHQ6Om1lZGlhSGFzQXVkaW8oKSBjb25zdAoreworI2lmIEVOQUJMRShWSURFTykKKyAgICBp
ZiAoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbHQgPSBtZWRpYUVsZW1lbnQoKSkKKyAgICAgICAg
cmV0dXJuIG1lZGlhRWx0LT5oYXNBdWRpbygpOworI2VuZGlmCisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitib29sIEhpdFRlc3RSZXN1bHQ6Om1lZGlhSXNWaWRlbygpIGNvbnN0Cit7CisjaWYgRU5B
QkxFKFZJREVPKQorICAgIGlmIChIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsdCA9IG1lZGlhRWxl
bWVudCgpKQorICAgICAgICByZXR1cm4gbWVkaWFFbHQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2
aWRlb1RhZyk7CisjZW5kaWYKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgSGl0VGVzdFJl
c3VsdDo6bWVkaWFNdXRlZCgpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIGlmIChI
VE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsdCA9IG1lZGlhRWxlbWVudCgpKQorICAgICAgICByZXR1
cm4gbWVkaWFFbHQtPm11dGVkKCk7CisjZW5kaWYKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3Zv
aWQgSGl0VGVzdFJlc3VsdDo6dG9nZ2xlTWVkaWFNdXRlU3RhdGUoKSBjb25zdAoreworI2lmIEVO
QUJMRShWSURFTykKKyAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbHQgPSBtZWRpYUVs
ZW1lbnQoKSkKKyAgICAgICAgbWVkaWFFbHQtPnNldE11dGVkKCFtZWRpYUVsdC0+bXV0ZWQoKSk7
CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3Vs
dC5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5oCmluZGV4IDNhNDI3MTkuLjMx
ZTg4ZjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaAorKysg
Yi9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmgKQEAgLTMyLDYgKzMyLDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRnJhbWU7CisjaWYgRU5B
QkxFKFZJREVPKQorY2xhc3MgSFRNTE1lZGlhRWxlbWVudDsKKyNlbmRpZgogY2xhc3MgSW1hZ2U7
CiBjbGFzcyBJbnRSZWN0OwogY2xhc3MgS1VSTDsKQEAgLTgwLDYgKzgzLDE4IEBAIHB1YmxpYzoK
ICAgICBTdHJpbmcgdGV4dENvbnRlbnQoKSBjb25zdDsKICAgICBib29sIGlzTGl2ZUxpbmsoKSBj
b25zdDsKICAgICBib29sIGlzQ29udGVudEVkaXRhYmxlKCkgY29uc3Q7CisgICAgdm9pZCB0b2dn
bGVNZWRpYUNvbnRyb2xzRGlzcGxheSgpIGNvbnN0OworICAgIHZvaWQgdG9nZ2xlTWVkaWFMb29w
UGxheWJhY2soKSBjb25zdDsKKyAgICB2b2lkIGVudGVyRnVsbHNjcmVlbkZvclZpZGVvKCkgY29u
c3Q7CisgICAgYm9vbCBtZWRpYUNvbnRyb2xzRW5hYmxlZCgpIGNvbnN0OworICAgIGJvb2wgbWVk
aWFMb29wRW5hYmxlZCgpIGNvbnN0OworICAgIGJvb2wgbWVkaWFQbGF5aW5nKCkgY29uc3Q7Cisg
ICAgYm9vbCBtZWRpYVN1cHBvcnRzRnVsbHNjcmVlbigpIGNvbnN0OworICAgIHZvaWQgdG9nZ2xl
TWVkaWFQbGF5U3RhdGUoKSBjb25zdDsKKyAgICBib29sIG1lZGlhSGFzQXVkaW8oKSBjb25zdDsK
KyAgICBib29sIG1lZGlhSXNWaWRlbygpIGNvbnN0OworICAgIGJvb2wgbWVkaWFNdXRlZCgpIGNv
bnN0OworICAgIHZvaWQgdG9nZ2xlTWVkaWFNdXRlU3RhdGUoKSBjb25zdDsKIAogICAgIC8vIFJl
Y3QtYmFzZWQgaGl0IHRlc3QgcmVsYXRlZCBtZXRob2RzLgogICAgIGJvb2wgaXNSZWN0QmFzZWRU
ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9pc1JlY3RCYXNlZDsgfQpAQCAtOTYsNiArMTExLDEwIEBA
IHB1YmxpYzoKIAogcHJpdmF0ZToKIAorI2lmIEVOQUJMRShWSURFTykKKyAgICBIVE1MTWVkaWFF
bGVtZW50KiBtZWRpYUVsZW1lbnQoKSBjb25zdDsKKyNlbmRpZgorCiAgICAgUmVmUHRyPE5vZGU+
IG1faW5uZXJOb2RlOwogICAgIFJlZlB0cjxOb2RlPiBtX2lubmVyTm9uU2hhcmVkTm9kZTsKICAg
ICBJbnRQb2ludCBtX3BvaW50OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L0NoYW5nZUxvZyBiL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggYzZkYTY0OC4uMDI4MjMwYyAxMDA2NDQKLS0tIGEvV2ViS2l0L0No
YW5nZUxvZworKysgYi9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDkt
MjAgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIGVuaGFuY2VkIGNvbnRl
eHQgbWVudSBmb3IgbWVkaWEgZWxlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ1MDIxCisKKyAgICAgICAgVXBkYXRlZCBsb2NhbGl6YWJsZSBz
dHJpbmdzLgorCisgICAgICAgICogRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzOgor
CiAyMDEwLTA5LTE3ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAg
ICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvNDU5ODk+IEFkZCBXZWJBcmNoaXZlSW50ZXJuYWwuaCB0
byBYY29kZSBwcm9qZWN0CmRpZmYgLS1naXQgYS9XZWJLaXQvRW5nbGlzaC5scHJvai9Mb2NhbGl6
YWJsZS5zdHJpbmdzIGIvV2ViS2l0L0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwpp
bmRleCA2MTVkYzlhLi4zZDA5Zjg2IDEwMDY0NAotLS0gYS9XZWJLaXQvRW5nbGlzaC5scHJvai9M
b2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1dlYktpdC9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxl
LnN0cmluZ3MKQEAgLTgzOCwzICs4MzgsMzIgQEAKIAAvACoAIABhAGMAYwBlAHMAcwBpAGIAaQBs
AGkAdAB5ACAAcgBvAGwAZQAgAGQAZQBzAGMAcgBpAHAAdABpAG8AbgAgAGYAbwByACAAdwBlAGIA
IABhAHIAZQBhACAAKgAvAAogACIAdwBlAGIAIABhAHIAZQBhACIAIAA9ACAAIgB3AGUAYgAgAGEA
cgBlAGEAIgA7AAogAAorAC8AKgAgAE8AcABlAG4AIAB2AGkAZABlAG8AIABjAG8AbgB0AGUAeAB0
ACAAbQBlAG4AdQAgAGkAdABlAG0AIAAqAC8ACisAIgBPAHAAZQBuACAAVgBpAGQAZQBvACAAaQBu
ACAATgBlAHcAIABXAGkAbgBkAG8AdwAiACAAPQAgACIATwBwAGUAbgAgAFYAaQBkAGUAbwAgAGkA
bgAgAE4AZQB3ACAAVwBpAG4AZABvAHcAIgA7AAorAAorAC8AKgAgAE8AcABlAG4AIABhAHUAZABp
AG8AIABjAG8AbgB0AGUAeAB0ACAAbQBlAG4AdQAgAGkAdABlAG0AIAAqAC8ACisAIgBPAHAAZQBu
ACAAQQB1AGQAaQBvACAAaQBuACAATgBlAHcAIABXAGkAbgBkAG8AdwAiACAAPQAgACIATwBwAGUA
bgAgAEEAdQBkAGkAbwAgAGkAbgAgAE4AZQB3ACAAVwBpAG4AZABvAHcAIgA7AAorAAorAC8AKgAg
AEMAbwBwAHkAIAB2AGkAZABlAG8AIABhAGQAZAByAGUAcwBzACAAYwBvAG4AdABlAHgAdAAgAG0A
ZQBuAHUAIABpAHQAZQBtACAAKgAvAAorACIAQwBvAHAAeQAgAFYAaQBkAGUAbwAgAEEAZABkAHIA
ZQBzAHMAIgAgAD0AIAAiAEMAbwBwAHkAIABWAGkAZABlAG8AIABBAGQAZAByAGUAcwBzACIAOwAK
KwAKKwAvACoAIABDAG8AcAB5ACAAYQB1AGQAaQBvACAAYQBkAGQAcgBlAHMAcwAgAGMAbwBuAHQA
ZQB4AHQAIABtAGUAbgB1ACAAaQB0AGUAbQAgACoALwAKKwAiAEMAbwBwAHkAIABBAHUAZABpAG8A
IABBAGQAZAByAGUAcwBzACIAIAA9ACAAIgBDAG8AcAB5ACAAQQB1AGQAaQBvACAAQQBkAGQAcgBl
AHMAcwAiADsACisACisALwAqACAAQwBvAG4AdAByAG8AbABzACAAYwBvAG4AdABlAHgAdAAgAG0A
ZQBuAHUAIABpAHQAZQBtACAAKgAvAAorACIAQwBvAG4AdAByAG8AbABzACIAIAA9ACAAIgBDAG8A
bgB0AHIAbwBsAHMAIgA7AAorAAorAC8AKgAgAEwAbwBvAHAAIABjAG8AbgB0AGUAeAB0ACAAbQBl
AG4AdQAgAGkAdABlAG0AIAAqAC8ACisAIgBMAG8AbwBwACIAIAA9ACAAIgBMAG8AbwBwACIAOwAK
KwAKKwAvACoAIABGAHUAbABsAHMAYwByAGUAZQBuACAAYwBvAG4AdABlAHgAdAAgAG0AZQBuAHUA
IABpAHQAZQBtACAAKgAvAAorACIARQBuAHQAZQByACAARgB1AGwAbABzAGMAcgBlAGUAbgAiACAA
PQAgACIARQBuAHQAZQByACAARgB1AGwAbABzAGMAcgBlAGUAbgAiADsACisACisALwAqACAAUABs
AGEAeQAgAGMAbwBuAHQAZQB4AHQAIABtAGUAbgB1ACAAaQB0AGUAbQAgACoALwAKKwAiAFAAbABh
AHkAIgAgAD0AIAAiAFAAbABhAHkAIgA7AAorAAorAC8AKgAgAFAAYQB1AHMAZQAgAGMAbwBuAHQA
ZQB4AHQAIABtAGUAbgB1ACAAaQB0AGUAbQAgACoALwAKKwAiAFAAYQB1AHMAZQAiACAAPQAgACIA
UABhAHUAcwBlACIAOwAKKwAKKwAvACoAIABNAHUAdABlACAAYwBvAG4AdABlAHgAdAAgAG0AZQBu
AHUAIABpAHQAZQBtACAAKgAvAAorACIATQB1AHQAZQAiACAAPQAgACIATQB1AHQAZQAiADsACmRp
ZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwppbmRleCAzNjAyZmYyLi44NzYyOWU0IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
NCBAQAorMjAxMC0wOS0yMCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10g
ZW5oYW5jZWQgY29udGV4dCBtZW51IGZvciBtZWRpYSBlbGVtZW50cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUwMjEKKworICAgICAgICBOZXcgbG9j
YWxpemVkIHN0cmluZ3MgZm9yIHRoZSBtZWRpYSBlbGVtZW50IGNvbnRleHQtbWVudS4KKworICAg
ICAgICAqIHNyYy9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCk6CisgICAgICAgIChX
ZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scyk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3ApOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGF1c2UpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKToKKwogMjAxMC0wOS0yMCAgSWx5YSBUaWto
b25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2
ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxpemVkU3Ry
aW5ncy5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0xvY2FsaXplZFN0cmluZ3MuY3BwCmluZGV4
IDc0ZmY2OTkuLjMzNTRjMzAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxp
emVkU3RyaW5ncy5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2NhbGl6ZWRTdHJpbmdz
LmNwcApAQCAtMjY1LDYgKzI2NSwxNiBAQCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5zcGVj
dEVsZW1lbnQoKSB7IHJldHVybiBTdHJpbmcoKTsgfQogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z1Nob3dTcGVsbGluZ1BhbmVsKGJvb2wgc2hvdykgeyByZXR1cm4gU3RyaW5nKCk7IH0KIFN0cmlu
ZyBtZWRpYUVsZW1lbnRMaXZlQnJvYWRjYXN0U3RhdGVUZXh0KCkgeyByZXR1cm4gU3RyaW5nKCk7
IH0KIFN0cmluZyBtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCkgeyByZXR1cm4gU3RyaW5n
KCk7IH0KK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdygpIHsg
cmV0dXJuIFN0cmluZygpOyB9CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5O
ZXdXaW5kb3coKSB7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCgpIHsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJkKCkgeyByZXR1cm4gU3Ry
aW5nKCk7IH0KK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCkg
eyByZXR1cm4gU3RyaW5nKCk7IH0KK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRp
YUxvb3AoKSB7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Vu
dGVyVmlkZW9GdWxsc2NyZWVuKCkgeyByZXR1cm4gU3RyaW5nKCk7IH0KK1N0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdNZWRpYVBsYXkoKSB7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ01lZGlhUGF1c2UoKSB7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpIHsgcmV0dXJuIFN0cmluZygpOyB9CiAKIFN0cmlu
ZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYgLypuYW1l
Ki8pCiB7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCmluZGV4IDIxNTllZTUuLjM1MDZiMGQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTAt
MDktMjAgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIGVuaGFuY2VkIGNv
bnRleHQgbWVudSBmb3IgbWVkaWEgZWxlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MDIxCisKKyAgICAgICAgTmV3IGxvY2FsaXplZCBzdHJp
bmdzIGZvciB0aGUgbWVkaWEgZWxlbWVudCBjb250ZXh0LW1lbnUuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW06CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KToKKyAgICAgICAg
KFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5OZXdX
aW5kb3cpOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1U
YWdDb3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVn
aWVzOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQpOgorICAgICAg
ICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNv
bnRyb2xzKToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVt
VGFnVG9nZ2xlTWVkaWFMb29wKToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29u
dGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAgICAoV2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkpOgorICAgICAgICAoV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKToKKyAgICAg
ICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKToK
KwogMjAxMC0wOS0xNyAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKaW5kZXggNTNmMzlmOC4uYTFlMDMxNyAxMDA2NDQK
LS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAor
KysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCkBA
IC0xMTMsNiArMTEzLDE2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdDYXBpdGFsaXplKCk7CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdDaGFuZ2VCYWNrKGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNlZFN0cmlu
Zyk7CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxl
bWVudCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlblZp
ZGVvSW5OZXdXaW5kb3coKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ09wZW5BdWRpb0luTmV3V2luZG93KCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKTsKKyAgICB2aXJ0dWFsIFdU
Rjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpOwor
ICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250
cm9scygpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xl
TWVkaWFMb29wKCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdF
bnRlclZpZGVvRnVsbHNjcmVlbigpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnTWVkaWFQbGF5KCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdNZWRpYVBhdXNlKCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdNZWRpYU11dGUoKTsKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAg
ICB2aXJ0dWFsIFdURjo6U3RyaW5nIHNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpOwog
ICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgc2VhcmNoTWVudVJlY2VudFNlYXJjaGVzVGV4dCgpOwpk
aWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMubW0gYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5t
bQppbmRleCAyOTAwY2NmLi4xOGU4YTYxIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQpAQCAtMTU2LDYgKzE1Niw1NiBAQCBTdHJp
bmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0Ns
aXBib2FyZCgpCiAgICAgcmV0dXJuIFVJX1NUUklORygiQ29weSBJbWFnZSIsICJDb3B5IEltYWdl
IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6
OmNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4g
VUlfU1RSSU5HKCJPcGVuIFZpZGVvIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBWaWRlbyBpbiBOZXcg
V2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KCkKK3sKKyAgICBy
ZXR1cm4gVUlfU1RSSU5HKCJPcGVuIEF1ZGlvIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBBdWRpbyBp
biBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCgp
Cit7CisgICAgcmV0dXJuIFVJX1NUUklORygiQ29weSBWaWRlbyBBZGRyZXNzIiwgIkNvcHkgVmlk
ZW8gQWRkcmVzcyBMb2NhdGlvbiBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlw
Ym9hcmQoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIkNvcHkgQXVkaW8gQWRkcmVzcyIsICJD
b3B5IEF1ZGlvIEFkZHJlc3MgTG9jYXRpb24gY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3Ry
aW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFD
b250cm9scygpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiQ29udHJvbHMiLCAiTWVkaWEgQ29u
dHJvbHMgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkKK3sKKyAgICByZXR1cm4g
VUlfU1RSSU5HKCJMb29wIiwgIk1lZGlhIExvb3AgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKwor
U3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRl
b0Z1bGxzY3JlZW4oKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIkVudGVyIEZ1bGxzY3JlZW4i
LCAiVmlkZW8gRW50ZXIgRnVsbHNjcmVlbiBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJp
bmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQor
eworICAgIHJldHVybiBVSV9TVFJJTkcoIlBsYXkiLCAiTWVkaWEgUGxheSBjb250ZXh0IG1lbnUg
aXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0
ZW1UYWdNZWRpYVBhdXNlKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJQYXVzZSIsICJNZWRp
YSBQYXVzZSBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKQoreworICAgIHJldHVybiBVSV9T
VFJJTkcoIk11dGUiLCAiTWVkaWEgTXV0ZSBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCiBTdHJp
bmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5l
d1dpbmRvdygpCiB7CiAgICAgcmV0dXJuIFVJX1NUUklORygiT3BlbiBGcmFtZSBpbiBOZXcgV2lu
ZG93IiwgIk9wZW4gRnJhbWUgaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwpkaWZm
IC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXgg
MGE5YTI0NS4uNDU0M2ZjMyAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDktMjAgIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIGVuaGFuY2VkIGNvbnRleHQgbWVudSBmb3Ig
bWVkaWEgZWxlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ1MDIxCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5oOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdP
cGVuVmlkZW9Jbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNv
bnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KToKKyAgICAgICAgKFdlYlBsYXRm
b3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJk
KToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnQ29w
eUF1ZGlvTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scykKKyAgICAgICAgKFdlYlBsYXRm
b3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKQorICAgICAg
ICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVs
bHNjcmVlbikKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVt
VGFnTWVkaWFQbGF5KQorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVu
dUl0ZW1UYWdNZWRpYVBhdXNlKQorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250
ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUpCisKIDIwMTAtMDktMDggIEpvY2VseW4gVHVyY290dGUg
IDxqb2NlbHluLnR1cmNvdHRlQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1v
biBIYXVzbWFubi4KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5jcHAKaW5kZXggOTQ4ZTBjZC4uMzc1MGIyMiAxMDA2NDQKLS0tIGEvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTE5OCw2ICsx
OTgsNTYgQEAgU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFn
Q29weUltYWdlVG9DbGlwYm9hcmQoKQogICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFu
c2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkgSW1hZ2UiLCAiQ29weSBMaW5rIGNvbnRleHQgbWVudSBp
dGVtIik7CiB9CiAKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRl
bVRhZ09wZW5WaWRlb0luTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIFZpZGVvIiwgIk9wZW4gVmlkZW8gaW4gTmV3
IFdpbmRvdyIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVu
dUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBBdWRpbyIsICJPcGVuIEF1ZGlvIGlu
IE5ldyBXaW5kb3ciKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4
dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4gUUNv
cmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJDb3B5IFZpZGVvIiwgIkNvcHkg
VmlkZW8gTGluayBMb2NhdGlvbiIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVz
Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJl
dHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkgQXVkaW8i
LCAiQ29weSBBdWRpbyBMaW5rIExvY2F0aW9uIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKQoreworICAg
IHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIlRvZ2dsZSBD
b250cm9scyIsICJUb2dnbGUgTWVkaWEgQ29udHJvbHMiKTsKK30KKworU3RyaW5nIFdlYlBsYXRm
b3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCkKK3sKKyAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJUb2dnbGUg
TG9vcCIsICJUb2dnbGUgTWVkaWEgTG9vcCBQbGF5YmFjayIpOworfQorCitTdHJpbmcgV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigp
Cit7CisgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAi
RW50ZXIgRnVsbHNjcmVlbiIsICJTd2l0Y2ggVmlkZW8gdG8gRnVsbHNjcmVlbiIpOworfQorCitT
dHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXko
KQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwg
IlBsYXkiLCAiUGxheSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250
ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlv
bjo6dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJQYXVzZSIsICJQYXVzZSIpOworfQorCitTdHJpbmcg
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKQorewor
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk11dGUi
LCAiTXV0ZSIpOworfQorCiBTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVu
dUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpCiB7CiAgICAgcmV0dXJuIFFDb3JlQXBwbGlj
YXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBGcmFtZSIsICJPcGVuIEZyYW1lIGlu
IE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAppbmRleCA4ZWE2MGQ5Li5lYWQ4MTNiIDEw
MDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmgKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5o
CkBAIC05NSw2ICs5NSwxNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnTGVmdFRvUmlnaHQoKTsKICAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0KCk7CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3coKTsKKyAgICB2aXJ0dWFs
IFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KCk7Cisg
ICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9D
bGlwYm9hcmQoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Nv
cHlBdWRpb0xpbmtUb0NsaXBib2FyZCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpOworICAgIHZpcnR1YWwgV1RGOjpTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCk7CisgICAgdmlydHVhbCBXVEY6
OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpOworICAgIHZp
cnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCk7CisgICAgdmly
dHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCk7CisgICAgdmly
dHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKTsKICAgICB2aXJ0
dWFsIFdURjo6U3RyaW5nIHNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpOwogICAgIHZp
cnR1YWwgV1RGOjpTdHJpbmcgc2VhcmNoTWVudVJlY2VudFNlYXJjaGVzVGV4dCgpOwogICAgIHZp
cnR1YWwgV1RGOjpTdHJpbmcgc2VhcmNoTWVudUNsZWFyUmVjZW50U2VhcmNoZXNUZXh0KCk7CmRp
ZmYgLS1naXQgYS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCmlu
ZGV4IDI1MWJmOTEuLjdjZDdlYzEgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vQ2hhbmdlTG9nCisr
KyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTAtMDktMjAgIFBo
aWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIGVuaGFuY2VkIGNvbnRleHQgbWVu
dSBmb3IgbWVkaWEgZWxlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ1MDIxCisKKyAgICAgICAgTmV3IGxvY2FsaXplZCBzdHJpbmdzIGZvciB0
aGUgbWVkaWEgZWxlbWVudCBjb250ZXh0LW1lbnUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVn
aWVzOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdyk6CisgICAgICAgIChX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2lu
ZG93KToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFn
Q29weVZpZGVvTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUF1ZGlvTGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAg
KFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250
cm9scyk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRh
Z1RvZ2dsZU1lZGlhTG9vcCk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRl
eHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYlBsYXRmb3Jt
U3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KToKKyAgICAgICAgKFdlYlBs
YXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSk6CisgICAgICAg
IChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmg6CisKIDIwMTAt
MDktMTcgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IFNhbSBXZWluaWcuCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggMDBhMmVhYi4uN2Q4YmQwYyAxMDA2NDQKLS0tIGEv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBi
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAt
MTYzLDYgKzE2Myw1NiBAQCBTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVu
dUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpCiAgICAgcmV0dXJuIFVJX1NUUklORygiQ29w
eSBJbWFnZSIsICJDb3B5IEltYWdlIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKK1N0cmluZyBX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2lu
ZG93KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJPcGVuIFZpZGVvIGluIE5ldyBXaW5kb3ci
LCAiT3BlbiBWaWRlbyBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0
cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0lu
TmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJPcGVuIEF1ZGlvIGluIE5ldyBX
aW5kb3ciLCAiT3BlbiBBdWRpbyBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7Cit9
CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlW
aWRlb0xpbmtUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiQ29weSBWaWRl
byBBZGRyZXNzIiwgIkNvcHkgVmlkZW8gQWRkcmVzcyBMb2NhdGlvbiBjb250ZXh0IG1lbnUgaXRl
bSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1U
YWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIkNv
cHkgQXVkaW8gQWRkcmVzcyIsICJDb3B5IEF1ZGlvIEFkZHJlc3MgTG9jYXRpb24gY29udGV4dCBt
ZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1l
bnVJdGVtVGFnVG9nZ2xlTWVkaWFDb250cm9scygpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygi
Q29udHJvbHMiLCAiTWVkaWEgQ29udHJvbHMgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3Ry
aW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFM
b29wKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJMb29wIiwgIk1lZGlhIExvb3AgY29udGV4
dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4
dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKQoreworICAgIHJldHVybiBVSV9TVFJJ
TkcoIkVudGVyIEZ1bGxzY3JlZW4iLCAiVmlkZW8gRW50ZXIgRnVsbHNjcmVlbiBjb250ZXh0IG1l
bnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVu
dUl0ZW1UYWdNZWRpYVBsYXkoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIlBsYXkiLCAiTWVk
aWEgUGxheSBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkKK3sKKyAgICByZXR1cm4gVUlf
U1RSSU5HKCJQYXVzZSIsICJNZWRpYSBQYXVzZSBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitT
dHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUo
KQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIk11dGUiLCAiTWVkaWEgTXV0ZSBjb250ZXh0IG1l
bnUgaXRlbSIpOworfQorCiBTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVu
dUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpCiB7CiAgICAgcmV0dXJuIFVJX1NUUklORygi
T3BlbiBGcmFtZSBpbiBOZXcgV2luZG93IiwgIk9wZW4gRnJhbWUgaW4gTmV3IFdpbmRvdyBjb250
ZXh0IG1lbnUgaXRlbSIpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmgKaW5kZXggYzNjZmJiNC4uM2E1NjI2ZCAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAorKysgYi9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC05Miw2ICs5
MiwxNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnTGVmdFRvUmlnaHQoKTsKICAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ1JpZ2h0VG9MZWZ0KCk7CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdJbnNwZWN0RWxlbWVudCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3coKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ09wZW5BdWRpb0luTmV3V2luZG93KCk7CisgICAgdmlydHVhbCBX
VEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5rVG9DbGlwYm9hcmQoKTsK
KyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtU
b0NsaXBib2FyZCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
VG9nZ2xlTWVkaWFDb250cm9scygpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbigpOworICAgIHZpcnR1YWwgV1RGOjpT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQbGF5KCk7CisgICAgdmlydHVhbCBXVEY6OlN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCk7CisgICAgdmlydHVhbCBXVEY6OlN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGUoKTsKICNlbmRpZiAvLyBFTkFCTEUoQ09O
VEVYVF9NRU5VUykKICAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHNlYXJjaE1lbnVOb1JlY2VudFNl
YXJjaGVzVGV4dCgpOwogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgc2VhcmNoTWVudVJlY2VudFNl
YXJjaGVzVGV4dCgpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBiNGExNmNiLi5mZDFmZmE3IDEwMDY0NAotLS0gYS9XZWJLaXQyL0NoYW5n
ZUxvZworKysgYi9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEwLTA5LTIw
ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBlbmhhbmNlZCBjb250ZXh0
IG1lbnUgZm9yIG1lZGlhIGVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00NTAyMQorCisgICAgICAgIE5ldyBsb2NhbGl6ZWQgc3RyaW5ncyBm
b3IgdGhlIG1lZGlhIGVsZW1lbnQgY29udGV4dC1tZW51LgorCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0lu
TmV3V2luZG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250
ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xp
cGJvYXJkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0
TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJv
bHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51
SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlh
UGxheSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1l
bnVJdGVtVGFnTWVkaWFQYXVzZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRl
Z2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVVuTXV0ZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoK
KwogMjAxMC0wOS0yMCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEFkYW0gUm9iZW4uCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IGExOTg2YWYu
LmI5ZDJjZjggMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC0xODAsNiArMTgwLDU2IEBAIFN0
cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRv
Q2xpcGJvYXJkKCkKICAgICByZXR1cm4gVUlfU1RSSU5HKCJDb3B5IEltYWdlIiwgIkNvcHkgSW1h
Z2UgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAorU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6Y29udGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3coKQoreworICAgIHJldHVy
biBVSV9TVFJJTkcoIk9wZW4gVmlkZW8gaW4gTmV3IFdpbmRvdyIsICJPcGVuIFZpZGVvIGluIE5l
dyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlvSW5OZXdXaW5kb3coKQoreworICAg
IHJldHVybiBVSV9TVFJJTkcoIk9wZW4gQXVkaW8gaW4gTmV3IFdpbmRvdyIsICJPcGVuIEF1ZGlv
IGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRm
b3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJvYXJk
KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJDb3B5IFZpZGVvIEFkZHJlc3MiLCAiQ29weSBW
aWRlbyBBZGRyZXNzIExvY2F0aW9uIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlBdWRpb0xpbmtUb0Ns
aXBib2FyZCgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiQ29weSBBdWRpbyBBZGRyZXNzIiwg
IkNvcHkgQXVkaW8gQWRkcmVzcyBMb2NhdGlvbiBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitT
dHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRp
YUNvbnRyb2xzKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJDb250cm9scyIsICJNZWRpYSBD
b250cm9scyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUxvb3AoKQoreworICAgIHJldHVy
biBVSV9TVFJJTkcoIkxvb3AiLCAiTWVkaWEgTG9vcCBjb250ZXh0IG1lbnUgaXRlbSIpOworfQor
CitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdFbnRlclZp
ZGVvRnVsbHNjcmVlbigpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiRW50ZXIgRnVsbHNjcmVl
biIsICJWaWRlbyBFbnRlciBGdWxsc2NyZWVuIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0
cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgp
Cit7CisgICAgcmV0dXJuIFVJX1NUUklORygiUGxheSIsICJNZWRpYSBQbGF5IGNvbnRleHQgbWVu
dSBpdGVtIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51
SXRlbVRhZ01lZGlhUGF1c2UoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIlBhdXNlIiwgIk1l
ZGlhIFBhdXNlIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ01lZGlhTXV0ZSgpCit7CisgICAgcmV0dXJuIFVJ
X1NUUklORygiTXV0ZSIsICJNZWRpYSBNdXRlIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKIFN0
cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUlu
TmV3V2luZG93KCkKIHsKICAgICByZXR1cm4gVUlfU1RSSU5HKCJPcGVuIEZyYW1lIGluIE5ldyBX
aW5kb3ciLCAiT3BlbiBGcmFtZSBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7CmRp
ZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLmgKaW5kZXggYzE2Njc1Ni4uZDIyZGNiZiAxMDA2NDQKLS0tIGEvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCisrKyBi
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
aApAQCAtMTI3LDYgKzEyNywxNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ0NoYW5nZUJhY2soY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZyk7CiAj
ZW5kaWYKICAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVu
dCgpOworICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3
V2luZG93KCk7CisgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkF1ZGlv
SW5OZXdXaW5kb3coKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5
VmlkZW9MaW5rVG9DbGlwYm9hcmQoKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQoKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzKCk7CisgICAgdmlydHVhbCBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wKCk7CisgICAgdmlydHVhbCBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKTsKKyAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCk7CisgICAgdmlydHVhbCBTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCk7CiAjZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVOVVMp
CiAgICAgdmlydHVhbCBTdHJpbmcgc2VhcmNoTWVudU5vUmVjZW50U2VhcmNoZXNUZXh0KCk7CiAg
ICAgdmlydHVhbCBTdHJpbmcgc2VhcmNoTWVudVJlY2VudFNlYXJjaGVzVGV4dCgpOwpkaWZmIC0t
Z2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDQ4NTAzZTQuLjM5ZDFjOWMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysg
Yi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wOS0xNSAgUGhp
bGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gZW5oYW5jZWQgY29udGV4dCBtZW51
IGZvciBtZWRpYSBlbGVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDUwMjEKKworICAgICAgICBFdmVudFNlbmRlcjo6Y29udGV4dENsaWNrKCkg
bm93IHJldHVybnMgYW4gYXJyYXkgb2YganMKKyAgICAgICAgb2JqZWN0cy4gRWFjaCBvYmplY3Qg
aGFzIGEgdGl0bGUgcHJvcGVydHkgYW5kIGEgY2xpY2soKSBtZXRob2QuCisKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9ndGsvRXZlbnRTZW5kZXIuY3BwOgorICAgICAgICAoZ2V0TWVudUl0ZW1U
aXRsZUNhbGxiYWNrKToKKyAgICAgICAgKHNldE1lbnVJdGVtVGl0bGVDYWxsYmFjayk6CisgICAg
ICAgIChtZW51SXRlbUNsaWNrQ2FsbGJhY2spOgorICAgICAgICAoZ2V0TWVudUl0ZW1DbGFzcyk6
CisgICAgICAgIChjb250ZXh0Q2xpY2tDYWxsYmFjayk6CisKIDIwMTAtMDktMTkgIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNz
b24uCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRXZlbnRTZW5k
ZXIuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0V2ZW50U2VuZGVyLmNwcApp
bmRleCAwZTJlNDY5Li5mZTdlOTNhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvRXZlbnRTZW5kZXIuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L2d0ay9FdmVudFNlbmRlci5jcHAKQEAgLTE0Nyw2ICsxNDcsNTggQEAgYm9vbCBwcmVwYXJlTW91
c2VCdXR0b25FdmVudChHZGtFdmVudCogZXZlbnQsIGludCBldmVudFNlbmRlckJ1dHRvbk51bWJl
ciwgZ3VpbnQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIEpTVmFsdWVSZWYgZ2V0TWVu
dUl0ZW1UaXRsZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBvYmpl
Y3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQorewor
ICAgIEd0a1dpZGdldCogd2lkZ2V0ID0gR1RLX1dJREdFVChKU09iamVjdEdldFByaXZhdGUob2Jq
ZWN0KSk7CisgICAgQ1N0cmluZyBsYWJlbDsKKyAgICBpZiAoR1RLX0lTX1NFUEFSQVRPUl9NRU5V
X0lURU0od2lkZ2V0KSkKKyAgICAgICAgbGFiZWwgPSAiPHNlcGFyYXRvcj4iOworICAgIGVsc2UK
KyAgICAgICAgbGFiZWwgPSBndGtfbWVudV9pdGVtX2dldF9sYWJlbChHVEtfTUVOVV9JVEVNKHdp
ZGdldCkpOworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIEpTU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKGxhYmVsLmRhdGEoKSkpOworfQorCitzdGF0aWMgYm9vbCBz
ZXRNZW51SXRlbVRpdGxlQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVm
IG9iamVjdCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1Zh
bHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBKU1Zh
bHVlUmVmIG1lbnVJdGVtQ2xpY2tDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmpl
Y3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENv
dW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24p
Cit7CisgICAgR3RrTWVudUl0ZW0qIGl0ZW0gPSBHVEtfTUVOVV9JVEVNKEpTT2JqZWN0R2V0UHJp
dmF0ZSh0aGlzT2JqZWN0KSk7CisgICAgZ3RrX21lbnVfaXRlbV9hY3RpdmF0ZShpdGVtKTsKKyAg
ICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Cit9CisKK3N0YXRpYyBKU1N0
YXRpY0Z1bmN0aW9uIHN0YXRpY01lbnVJdGVtRnVuY3Rpb25zW10gPSB7CisgICAgeyAiY2xpY2si
LCBtZW51SXRlbUNsaWNrQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICB7IDAsIDAsIDAgfQorfTsKKwor
c3RhdGljIEpTU3RhdGljVmFsdWUgc3RhdGljTWVudUl0ZW1WYWx1ZXNbXSA9IHsKKyAgICB7ICJ0
aXRsZSIsIGdldE1lbnVJdGVtVGl0bGVDYWxsYmFjaywgc2V0TWVudUl0ZW1UaXRsZUNhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZU5vbmUgfSwKKyAgICB7IDAsIDAsIDAsIDAgfQorfTsKKwor
c3RhdGljIEpTQ2xhc3NSZWYgZ2V0TWVudUl0ZW1DbGFzcygpCit7CisgICAgc3RhdGljIEpTQ2xh
c3NSZWYgbWVudUl0ZW1DbGFzcyA9IDA7CisKKyAgICBpZiAoIW1lbnVJdGVtQ2xhc3MpIHsKKyAg
ICAgICAgSlNDbGFzc0RlZmluaXRpb24gY2xhc3NEZWZpbml0aW9uID0geworICAgICAgICAgICAg
ICAgIDAsIDAsIDAsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwg
MCwgMCwgMCwgMCwgMH07CisgICAgICAgIGNsYXNzRGVmaW5pdGlvbi5zdGF0aWNGdW5jdGlvbnMg
PSBzdGF0aWNNZW51SXRlbUZ1bmN0aW9uczsKKyAgICAgICAgY2xhc3NEZWZpbml0aW9uLnN0YXRp
Y1ZhbHVlcyA9IHN0YXRpY01lbnVJdGVtVmFsdWVzOworCisgICAgICAgIG1lbnVJdGVtQ2xhc3Mg
PSBKU0NsYXNzQ3JlYXRlKCZjbGFzc0RlZmluaXRpb24pOworICAgIH0KKworICAgIHJldHVybiBt
ZW51SXRlbUNsYXNzOworfQorCisKIHN0YXRpYyBKU1ZhbHVlUmVmIGNvbnRleHRDbGlja0NhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RS
ZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJn
dW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICBHZGtFdmVudCogcHJlc3NF
dmVudCA9IGdka19ldmVudF9uZXcoR0RLX0JVVFRPTl9QUkVTUyk7CkBAIC0xNjUsMTMgKzIxNyw3
IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGNvbnRleHRDbGlja0NhbGxiYWNrKEpTQ29udGV4dFJlZiBj
b250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvCiAgICAgICAgIEpTVmFsdWVSZWYgYXJyYXlWYWx1
ZXNbZ19saXN0X2xlbmd0aChpdGVtcyldOwogICAgICAgICBpbnQgaW5kZXggPSAwOwogICAgICAg
ICBmb3IgKEdMaXN0KiBpdGVtID0gZ19saXN0X2ZpcnN0KGl0ZW1zKTsgaXRlbTsgaXRlbSA9IGdf
bGlzdF9uZXh0KGl0ZW0pKSB7Ci0gICAgICAgICAgICBDU3RyaW5nIGxhYmVsOwotICAgICAgICAg
ICAgaWYgKEdUS19JU19TRVBBUkFUT1JfTUVOVV9JVEVNKGl0ZW0tPmRhdGEpKQotICAgICAgICAg
ICAgICAgIGxhYmVsID0gIjxzZXBhcmF0b3I+IjsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgICBsYWJlbCA9IGd0a19tZW51X2l0ZW1fZ2V0X2xhYmVsKEdUS19NRU5VX0lURU0oaXRl
bS0+ZGF0YSkpOwotCi0gICAgICAgICAgICBhcnJheVZhbHVlc1tpbmRleF0gPSBKU1ZhbHVlTWFr
ZVN0cmluZyhjb250ZXh0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhsYWJlbC5kYXRh
KCkpKTsKKyAgICAgICAgICAgIGFycmF5VmFsdWVzW2luZGV4XSA9IEpTT2JqZWN0TWFrZShjb250
ZXh0LCBnZXRNZW51SXRlbUNsYXNzKCksIGl0ZW0tPmRhdGEpOwogICAgICAgICAgICAgaW5kZXgr
KzsKICAgICAgICAgfQogICAgICAgICBpZiAoaW5kZXgpCi0tIAoxLjcuMQoK
</data>
<flag name="review"
          id="57546"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>