<?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>59146</bug_id>
          
          <creation_ts>2011-04-21 15:14:46 -0700</creation_ts>
          <short_desc>Implement requestAnimationFrame on Mac</short_desc>
          <delta_ts>2011-08-31 11:37:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>66280</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="James Robinson">jamesr</reporter>
          <assigned_to name="Chris Marrin">cmarrin</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dino</cc>
    
    <cc>eoconnor</cc>
    
    <cc>iwetzel</cc>
    
    <cc>kevin.cs.oh</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>390385</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-04-21 15:14:46 -0700</bug_when>
    <thetext>This should work on macs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390390</commentid>
    <comment_count>1</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-04-21 15:20:09 -0700</bug_when>
    <thetext>Chromium code can be found looking for &quot;AnimationCallback&quot; in http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/render_widget.cc?view=markup

(until chromium compositing code changes, anyway)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436049</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-07-12 16:16:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/9648550&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455555</commentid>
    <comment_count>3</comment_count>
      <attachid>104874</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2011-08-23 11:46:04 -0700</bug_when>
    <thetext>Created attachment 104874
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455599</commentid>
    <comment_count>4</comment_count>
      <attachid>104874</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-23 12:25:43 -0700</bug_when>
    <thetext>Comment on attachment 104874
Patch

Attachment 104874 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9481425</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455608</commentid>
    <comment_count>5</comment_count>
      <attachid>104874</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-08-23 12:32:53 -0700</bug_when>
    <thetext>Comment on attachment 104874
Patch

setTimeout() in a layout test is really, really, really gross.  Is there any way to avoid it?  If you must use timeouts, please pick values less than 100/200ms, that&apos;s just making the tests really slow for no good reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455617</commentid>
    <comment_count>6</comment_count>
      <attachid>104874</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-08-23 12:43:20 -0700</bug_when>
    <thetext>Comment on attachment 104874
Patch

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

Maybe we need to add window.internal or DRT API to test RAF?

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h:178
&gt; +        virtual void scheduleAnimation();

Odd whitespace here?

&gt; Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm:599
&gt; +void WebPage::requestAnimationFrameRunLoopObserverCallback(CFRunLoopObserverRef, CFRunLoopActivity, void* context)
&gt; +{
&gt; +    WebPage* webPage = static_cast&lt;WebPage*&gt;(context);
&gt; +    if (!webPage-&gt;m_animationScheduled)
&gt; +        return;
&gt; +
&gt; +    webPage-&gt;m_animationScheduled = false;
&gt; +    
&gt; +    // This gets called outside of the normal event loop so wrap in an autorelease pool
&gt; +    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
&gt; +    webPage-&gt;corePage()-&gt;mainFrame()-&gt;view()-&gt;serviceScriptedAnimations(convertSecondsToDOMTimeStamp(currentTime()));
&gt; +    [pool drain];
&gt; +}

I&apos;d prefer to see this turn around and call an instance method on WebPage, rather than poking at WebPage members directly.

Does webPage-&gt;corePage()-&gt;mainFrame()-&gt;view() need any null checks?

&gt; Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm:610
&gt; +        // Run before the flushPendingLayerChangesRunLoopObserver, which has order 2000000 - 1.
&gt; +        const CFIndex runLoopOrder = 2000000 - 2;

Now that we&apos;re sharing numbers, they should use a named const variable.

&gt; Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm:612
&gt; +        m_requestAnimationFrameRunLoopObserver.adoptCF(CFRunLoopObserverCreate(0, kCFRunLoopBeforeWaiting | kCFRunLoopExit, true, runLoopOrder, requestAnimationFrameRunLoopObserverCallback, &amp;context));

Why does this need to repeat?

&gt; Source/WebKit/mac/WebView/WebView.mm:6197
&gt; +        _private-&gt;requestAnimationFrameRunLoopObserver = CFRunLoopObserverCreate(0, kCFRunLoopBeforeWaiting | kCFRunLoopExit, YES, runLoopOrder, requestAnimationFrameRunLoopObserverCallback, &amp;context);

Should this repeat?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455674</commentid>
    <comment_count>7</comment_count>
      <attachid>104874</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-08-23 13:45:42 -0700</bug_when>
    <thetext>Comment on attachment 104874
Patch

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

How does this interact with the work James did for Chrome? I&apos;m not sure how Chrome works - does it not use WebKit?

Also, what about the windows part of WK1?

&gt; Source/WebCore/bindings/js/JSRequestAnimationFrameCallbackCustom.cpp:2
&gt; + * Copyright (C) 2010 Apple Inc. All rights reserved.

(c) 2011, not 2010

&gt; Source/WebCore/dom/ScriptedAnimationController.h:38
&gt; +

Why did you need this? Didn&apos;t you just move some duplicated code into a method?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455678</commentid>
    <comment_count>8</comment_count>
      <attachid>104874</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-08-23 13:51:55 -0700</bug_when>
    <thetext>Comment on attachment 104874
Patch

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

&gt; Source/WebCore/dom/ScriptedAnimationController.h:59
&gt; +    void scheduleAnimation();

I think this should be private, not public, since as far as I can see it&apos;s just a helper.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455679</commentid>
    <comment_count>9</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-08-23 13:52:07 -0700</bug_when>
    <thetext>The scheduling logic itself in Chromium is external to WebKit, since in Chromium the embedder decides when to produce new frames, not the WebKit layer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455703</commentid>
    <comment_count>10</comment_count>
      <attachid>104915</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2011-08-23 14:18:04 -0700</bug_when>
    <thetext>Created attachment 104915
Patch to fix chrome ews bot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457858</commentid>
    <comment_count>11</comment_count>
      <attachid>105423</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2011-08-26 16:55:58 -0700</bug_when>
    <thetext>Created attachment 105423
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457863</commentid>
    <comment_count>12</comment_count>
      <attachid>105423</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-08-26 17:09:39 -0700</bug_when>
    <thetext>Comment on attachment 105423
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm:593
&gt; +    WebPage* webPage = static_cast&lt;WebPage*&gt;(context);
&gt; +    webPage-&gt;unscheduleAnimation();

Since it&apos;s one-shot, you don&apos;t really need to invalidate it (just to null out the pointer).

&gt; Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm:598
&gt; +        webPage-&gt;corePage()-&gt;mainFrame()-&gt;view()-&gt;serviceScriptedAnimations(convertSecondsToDOMTimeStamp(currentTime()));

Would be better with some local variables for Page and Frame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457882</commentid>
    <comment_count>13</comment_count>
      <attachid>105423</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-08-26 18:01:54 -0700</bug_when>
    <thetext>Comment on attachment 105423
Patch

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

one small comment

&gt; Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm:59
&gt; +#define CoreAnimationRunLoopPriority = 

What is this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457884</commentid>
    <comment_count>14</comment_count>
      <attachid>105423</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-08-26 18:02:41 -0700</bug_when>
    <thetext>Comment on attachment 105423
Patch

#define CoreAnimationRunLoopPriority = 
is wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457886</commentid>
    <comment_count>15</comment_count>
      <attachid>105423</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-08-26 18:06:30 -0700</bug_when>
    <thetext>Comment on attachment 105423
Patch

r=me if
#define CoreAnimationRunLoopPriority = 
 is removed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458248</commentid>
    <comment_count>16</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2011-08-29 09:39:29 -0700</bug_when>
    <thetext>Committed r93980: &lt;http://trac.webkit.org/changeset/93980&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459527</commentid>
    <comment_count>17</comment_count>
    <who name="Ivo Wetzel">iwetzel</who>
    <bug_when>2011-08-31 01:48:41 -0700</bug_when>
    <thetext>Seems there is no FPS limiting in place (would have expected a limit to the refresh rate of the monitor), it spikes up to 100% CPU on Mac OSX 10.6.7 running as many times as it can.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459645</commentid>
    <comment_count>18</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-08-31 08:34:09 -0700</bug_when>
    <thetext>Please file a new bug for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459779</commentid>
    <comment_count>19</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2011-08-31 11:37:52 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; Please file a new bug for that.

Already did: https://bugs.webkit.org/show_bug.cgi?id=67171

I&apos;ll get to it next</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104874</attachid>
            <date>2011-08-23 11:46:04 -0700</date>
            <delta_ts>2011-08-23 14:18:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59146-20110823114603.patch</filename>
            <type>text/plain</type>
            <size>58038</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzNjE4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTEtMDgtMjMgIENocmlzIE1h
cnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNdIHJlcXVlc3RBbmltYXRp
b25GcmFtZSBzdXBwb3J0IGZvciBtYWMgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkxNDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBFbmFibGUgUkVRVUVTVF9BTklNQVRJT05fRlJBTUUgbG9naWMg
YW5kIGFkZCBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIKKyAgICAgICAgdG8gYnVpbGQuIEFk
ZGVkIEphdmFTY3JpcHQgc3VwcG9ydCBmb3IgTWFjLCB0b28uCisKKyAgICAgICAgKiBDb2RlR2Vu
ZXJhdG9ycy5wcmk6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWc6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3Jl
LmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFja0N1c3Rv
bS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVD
YWxsYmFjazo6aGFuZGxlRXZlbnQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtOgorICAgICAgICAoQWRkSW5jbHVkZXNGb3JUeXBlKToKKyAgICAgICAgKiBk
b20vUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaWRsOgorICAgICAgICAqIGRvbS9TY3Jp
cHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0ZWRB
bmltYXRpb25Db250cm9sbGVyOjpyZXN1bWUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0ZWRB
bmltYXRpb25Db250cm9sbGVyOjpyZWdpc3RlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6c2NoZWR1bGVBbmltYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpzZXJ2aWNlU2NyaXB0ZWRB
bmltYXRpb25zKToKKyAgICAgICAgKiBkb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmg6
CisKIDIwMTEtMDctMjUgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgogCiAgICAg
ICAgIGRpdiBhbGlnbj0iY2VudGVyIiByZW5kZXJpbmcgcHJvYmxlbQpJbmRleDogU291cmNlL1dl
YkNvcmUvQ29kZUdlbmVyYXRvcnMucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Nv
ZGVHZW5lcmF0b3JzLnByaQkocmV2aXNpb24gOTMyNjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Db2Rl
R2VuZXJhdG9ycy5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw2ICsxNjYsNyBAQCBJRExfQklO
RElOR1MgKz0gXAogICAgIGRvbS9Qcm9ncmVzc0V2ZW50LmlkbCBcCiAgICAgZG9tL1JhbmdlRXhj
ZXB0aW9uLmlkbCBcCiAgICAgZG9tL1JhbmdlLmlkbCBcCisgICAgZG9tL1JlcXVlc3RBbmltYXRp
b25GcmFtZUNhbGxiYWNrLmlkbCBcCiAgICAgZG9tL1N0cmluZ0NhbGxiYWNrLmlkbCBcCiAgICAg
ZG9tL1RleHQuaWRsIFwKICAgICBkb20vVGV4dEV2ZW50LmlkbCBcCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDkzMjY5KQorKysgU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMzUwLDYgKzM1MCw3IEBAIERPTV9D
TEFTU0VTID0gXAogICAgIFJhbmdlIFwKICAgICBSYW5nZUV4Y2VwdGlvbiBcCiAgICAgUmVjdCBc
CisgICAgUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2sgXAogICAgIFNoYXJlZFdvcmtlciBc
CiAgICAgU2hhcmVkV29ya2VyQ29udGV4dCBcCiAgICAgU2NyaXB0UHJvZmlsZSBcCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gOTMyNjkpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtOTY5LDYgKzk2OSw3IEBAIF9fWk43V2ViQ29y
ZTlGcmFtZVZpZXcyMWZsdXNoRGVmZXJyZWRSZXAKIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcyMnNl
dEJhc2VCYWNrZ3JvdW5kQ29sb3JFUktOU181Q29sb3JFCiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3
MjN1cGRhdGVDYW5IYXZlU2Nyb2xsYmFyc0V2CiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MjRmb3Jj
ZUxheW91dEZvclBhZ2luYXRpb25FUktOU185RmxvYXRTaXplRWZOU18xOUFkanVzdFZpZXdTaXpl
T3JOb3RFCitfX1pON1dlYkNvcmU5RnJhbWVWaWV3MjVzZXJ2aWNlU2NyaXB0ZWRBbmltYXRpb25z
RXkKIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcyNmFkanVzdFBhZ2VIZWlnaHREZXByZWNhdGVkRVBm
ZmZmCiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MjlzZXRTaG91bGRVcGRhdGVXaGlsZU9mZnNjcmVl
bkViCiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3Mzd1cGRhdGVMYXlvdXRBbmRTdHlsZUlmTmVlZGVk
UmVjdXJzaXZlRXYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRp
b25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCShyZXZpc2lvbiA5MzI2OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCSh3b3JraW5nIGNv
cHkpCkBAIC03OSw2ICs3OSw3IEBAIEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJID0gOwogRU5B
QkxFX1BST0dSRVNTX1RBRyA9IEVOQUJMRV9QUk9HUkVTU19UQUc7CiBFTkFCTEVfUVVPVEEgPSA7
CiBFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUiA9IDsKK0VOQUJMRV9SRVFVRVNUX0FO
SU1BVElPTl9GUkFNRSA9IEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRTsKIEVOQUJMRV9T
SEFSRURfV09SS0VSUyA9IEVOQUJMRV9TSEFSRURfV09SS0VSUzsKIEVOQUJMRV9TVkcgPSBFTkFC
TEVfU1ZHOwogRU5BQkxFX1NWR19BTklNQVRJT04gPSBFTkFCTEVfU1ZHX0FOSU1BVElPTjsKQEAg
LTk4LDQgKzk5LDQgQEAgRU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFCTEVfWFBBVEggPSBFTkFCTEVf
WFBBVEg7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAk
KEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChF
TkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNT
QUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfQ1NTM19G
TEVYQk9YKSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RB
VEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklDRV9PUklF
TlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0Up
ICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRklM
VEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVO
QUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lO
UFVUX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVC
VUdHRVIpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVf
TUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJ
T05TKSAkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklT
SUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVPVEEpICQoRU5B
QkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAk
KEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFH
RSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQo
RU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVE9V
Q0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQo
RU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAk
KEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAk
KEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJM
RV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVf
QU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcp
ICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfQ1NTM19GTEVYQk9Y
KSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RBVEFfVFJB
TlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElP
TikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5B
QkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykg
JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9J
Q09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX0NP
TE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIp
ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFf
U1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAk
KEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElU
WV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JF
R0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1F
KSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5J
TUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5E
SU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQo
RU5BQkxFX1NWR19VU0UpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVklE
RU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FV
RElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVf
V09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gOTMyNjkpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTExMzcsNiArMTEzNywxMiBA
QAogCQk0OTg3NzBGMjEyNDJDNTM1MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBEOTEyNDJDNTM1MDAy
MjI2QkEgLyogVGlsaW5nRGF0YS5jcHAgKi87IH07CiAJCTQ5ODc3MEYzMTI0MkM1MzUwMDIyMjZC
QSAvKiBUaWxpbmdEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0OTg3NzBEQTEyNDJDNTM1MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5oICovOyB9Owog
CQk0OTg3NzE1MzEyNDNGOUZBMDAyMjI2QkEgLyogRHJhd2luZ0J1ZmZlck1hYy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MTUyMTI0M0Y5RkEw
MDIyMjZCQSAvKiBEcmF3aW5nQnVmZmVyTWFjLm1tICovOyB9OworCQk0OTk4QUVDNjEzRjlEMEVB
MDA5MEIxQUEgLyogUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5OThBRUM0MTNGOUQwRUEwMDkwQjFB
QSAvKiBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oICovOyB9OworCQk0OTk4QUVDRDEz
RjlENkM5MDA5MEIxQUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTk4QUVDQjEzRjlE
NkM5MDA5MEIxQUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5jcHAgKi87IH07
CisJCTQ5OThBRUNFMTNGOUQ2QzkwMDkwQjFBQSAvKiBKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNh
bGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
OTk4QUVDQzEzRjlENkM5MDA5MEIxQUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFj
ay5oICovOyB9OworCQk0OTk4QUVEMTEzRkIyMjREMDA5MEIxQUEgLyogU2NyaXB0ZWRBbmltYXRp
b25Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ5OThBRUNGMTNGQjIyNEQwMDkwQjFBQSAvKiBTY3JpcHRlZEFuaW1hdGlvbkNvbnRy
b2xsZXIuY3BwICovOyB9OworCQk0OTk4QUVEMjEzRkIyMjREMDA5MEIxQUEgLyogU2NyaXB0ZWRB
bmltYXRpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0OTk4QUVEMDEzRkIyMjREMDA5MEIxQUEgLyogU2NyaXB0ZWRBbmltYXRpb25D
b250cm9sbGVyLmggKi87IH07CisJCTQ5OThBRUQ0MTNGQzQxN0YwMDkwQjFBQSAvKiBKU1JlcXVl
c3RBbmltYXRpb25GcmFtZUNhbGxiYWNrQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5OThBRUQzMTNGQzQxN0YwMDkwQjFBQSAvKiBKU1Jl
cXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrQ3VzdG9tLmNwcCAqLzsgfTsKIAkJNDk5QjNFQzUx
MjhDQ0M0NzAwRTcyNkMyIC8qIFBsYXRmb3JtQ0FMYXllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk5QjNFQzMxMjhDQ0M0NzAwRTcyNkMyIC8qIFBs
YXRmb3JtQ0FMYXllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTQ5OUIzRUQ2MTI4Q0QzMTQwMEU3MjZDMiAvKiBHcmFwaGljc0xheWVyQ0EuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk5QjNFRDQx
MjhDRDMxNDAwRTcyNkMyIC8qIEdyYXBoaWNzTGF5ZXJDQS5jcHAgKi87IH07CiAJCTQ5OUIzRUQ3
MTI4Q0QzMTQwMEU3MjZDMiAvKiBHcmFwaGljc0xheWVyQ0EuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5OUIzRUQ1MTI4Q0QzMTQwMEU3MjZDMiAvKiBH
cmFwaGljc0xheWVyQ0EuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtNzcyMiw2ICs3NzI4LDEzIEBACiAJCTQ5ODc3MEQ5MTI0MkM1MzUwMDIyMjZC
QSAvKiBUaWxpbmdEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IFRpbGluZ0RhdGEuY3BwOyBwYXRoID0gZ3B1L1RpbGluZ0RhdGEuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0OTg3NzBEQTEyNDJDNTM1MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBUaWxpbmdEYXRhLmg7IHBhdGggPSBn
cHUvVGlsaW5nRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTg3NzE1MjEy
NDNGOUZBMDAyMjI2QkEgLyogRHJhd2luZ0J1ZmZlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgbmFtZSA9IERyYXdpbmdCdWZmZXJNYWMubW07IHBhdGggPSBncHUvbWFj
L0RyYXdpbmdCdWZmZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5OThB
RUM0MTNGOUQwRUEwMDkwQjFBQSAvKiBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxs
YmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTk4QUVDNTEzRjlEMEVBMDA5
MEIxQUEgLyogUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDk5OEFFQ0IxM0Y5RDZDOTAwOTBCMUFBIC8qIEpTUmVxdWVzdEFu
aW1hdGlvbkZyYW1lQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQ5OThBRUNDMTNGOUQ2QzkwMDkwQjFBQSAvKiBKU1JlcXVlc3RBbmlt
YXRpb25GcmFtZUNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
UmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDk5OEFFQ0YxM0ZCMjI0RDAwOTBCMUFBIC8qIFNjcmlwdGVkQW5pbWF0aW9uQ29udHJv
bGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRlZEFu
aW1hdGlvbkNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTk4
QUVEMDEzRkIyMjREMDA5MEIxQUEgLyogU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTk4QUVEMzEzRkM0MTdGMDA5MEIx
QUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFja0N1c3RvbS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxi
YWNrQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk5QjNFQzMxMjhD
Q0M0NzAwRTcyNkMyIC8qIFBsYXRmb3JtQ0FMYXllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBQbGF0Zm9ybUNBTGF5ZXIuaDsgcGF0aCA9IGNhL1BsYXRmb3JtQ0FMYXllci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTlCM0VENDEyOENEMzE0MDBFNzI2QzIg
LyogR3JhcGhpY3NMYXllckNBLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IEdyYXBoaWNzTGF5ZXJDQS5jcHA7IHBhdGggPSBjYS9HcmFwaGljc0xheWVyQ0EuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTlCM0VENTEyOENEMzE0MDBFNzI2QzIgLyog
R3JhcGhpY3NMYXllckNBLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEdyYXBo
aWNzTGF5ZXJDQS5oOyBwYXRoID0gY2EvR3JhcGhpY3NMYXllckNBLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xNzM2Myw2ICsxNzM3Niw4IEBACiAJCQkJNjVERjMxRUMwOUQxQ0M2
MDAwMEJFMzI1IC8qIEpTUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggKi8sCiAJCQkJRTRCNDIzODUw
Q0JGQjczQzAwQUYyRUNFIC8qIEpTUHJvZ3Jlc3NFdmVudC5jcHAgKi8sCiAJCQkJRTRCNDIzODYw
Q0JGQjczQzAwQUYyRUNFIC8qIEpTUHJvZ3Jlc3NFdmVudC5oICovLAorCQkJCTQ5OThBRUNCMTNG
OUQ2QzkwMDkwQjFBQSAvKiBKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmNwcCAqLywK
KwkJCQk0OTk4QUVDQzEzRjlENkM5MDA5MEIxQUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVD
YWxsYmFjay5oICovLAogCQkJCTQ5QkUzMEYxMTNEOTc2NDYwMDM4MDhBOSAvKiBKU1NpZ25hbGlu
Z0NhbGxiYWNrLmNwcCAqLywKIAkJCQk0OUJFMzBGMjEzRDk3NjQ2MDAzODA4QTkgLyogSlNTaWdu
YWxpbmdDYWxsYmFjay5oICovLAogCQkJCTc1NDE1RDRGMTI5QUIyRDIwMDNBRDY2OSAvKiBKU1Nw
ZWVjaElucHV0RXZlbnQuY3BwICovLApAQCAtMTg3MjIsNiArMTg3MzcsNyBAQAogCQkJCUJDRDlD
MjYxMEMxN0FBNjcwMDVDOTBBMiAvKiBKU05vZGVMaXN0Q3VzdG9tLmNwcCAqLywKIAkJCQk0OUJF
MzBEMTEzRDk3NDdCMDAzODA4QTkgLyogSlNQZWVyQ29ubmVjdGlvbkN1c3RvbS5jcHAgKi8sCiAJ
CQkJRTFBRDEyRDUxMjk1RDBCRDAwQUNBOTg5IC8qIEpTUHJvY2Vzc2luZ0luc3RydWN0aW9uQ3Vz
dG9tLmNwcCAqLywKKwkJCQk0OTk4QUVEMzEzRkM0MTdGMDA5MEIxQUEgLyogSlNSZXF1ZXN0QW5p
bWF0aW9uRnJhbWVDYWxsYmFja0N1c3RvbS5jcHAgKi8sCiAJCQkJOUZBMzdFRTYxMTcyRkNGMDAw
QzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGVDdXN0b20uY3BwICovLAogCQkJCTUxRENFODAx
MENBQzlGMUMwMDQ4ODM1OCAvKiBKU1NRTFJlc3VsdFNldFJvd0xpc3RDdXN0b20uY3BwICovLAog
CQkJCTFBRDIzMTZEMENEMjY5RTcwMEMxRjE5NCAvKiBKU1NRTFRyYW5zYWN0aW9uQ3VzdG9tLmNw
cCAqLywKQEAgLTE5OTk3LDEwICsyMDAxMywxNCBAQAogCQkJCTg1MDMxQjM1MEE0NEVGQzcwMEY5
OTJFMCAvKiBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5jcHAgKi8sCiAJCQkJODUwMzFCMzYwQTQ0
RUZDNzAwRjk5MkUwIC8qIFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyLmggKi8sCiAJCQkJQTc2RTVG
N0UxMzVFMERDRjAwQTY5ODM3IC8qIFJlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCAqLywKKwkJCQk0
OTk4QUVDNDEzRjlEMEVBMDA5MEIxQUEgLyogUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2su
aCAqLywKKwkJCQk0OTk4QUVDNTEzRjlEMEVBMDA5MEIxQUEgLyogUmVxdWVzdEFuaW1hdGlvbkZy
YW1lQ2FsbGJhY2suaWRsICovLAogCQkJCTlCRDBCRjkyMTJBNDJCRjUwMDcyRkQ0MyAvKiBTY29w
ZWRFdmVudFF1ZXVlLmNwcCAqLywKIAkJCQk5QkQwQkY5MTEyQTQyQkY1MDA3MkZENDMgLyogU2Nv
cGVkRXZlbnRRdWV1ZS5oICovLAogCQkJCUE4NEQ4MkMwMTFEMzQ3NDgwMDk3Mjk5MCAvKiBTY3Jp
cHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwICovLAogCQkJCUE4NEQ4MkJGMTFEMzQ3NDgwMDk3Mjk5
MCAvKiBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuaCAqLywKKwkJCQk0OTk4QUVDRjEzRkIyMjRE
MDA5MEIxQUEgLyogU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcCAqLywKKwkJCQk0OTk4
QUVEMDEzRkIyMjREMDA5MEIxQUEgLyogU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmggKi8s
CiAJCQkJMDhBNDg0NzUwRTUyNzJDNTAwQzNGRTc2IC8qIFNjcmlwdEVsZW1lbnQuY3BwICovLAog
CQkJCTA4QTQ4NDc2MEU1MjcyQzUwMEMzRkU3NiAvKiBTY3JpcHRFbGVtZW50LmggKi8sCiAJCQkJ
RTExQzlEQUYwRUIzNjk5NTAwRTQwOURCIC8qIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwICov
LApAQCAtMjMzODYsNiArMjM0MDYsOSBAQAogCQkJCUJDQkI4QUJCMTNGMUFGQjAwMDczNERGMCAv
KiBQT0RSZWRCbGFja1RyZWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZENkYyNTJEMTNGNUVGMEUw
MDY1MTY1RiAvKiBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUZEMjNBMTI2MTNGNUZBNTkwMEY2NzAwMSAvKiBKU01lZGlhRWxlbWVudEF1ZGlvU291cmNl
Tm9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDk5OEFFQzYxM0Y5RDBFQTAwOTBCMUFBIC8qIFJl
cXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk0OTk4QUVD
RTEzRjlENkM5MDA5MEIxQUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNDk5OEFFRDIxM0ZCMjI0RDAwOTBCMUFBIC8qIFNjcmlwdGVkQW5p
bWF0aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREY5QUZENzIxM0ZDMzFEODAw
MTVGRUI3IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBpbiBIZWFkZXJz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpA
QCAtMjYxODgsNiArMjYyMTEsOSBAQAogCQkJCTU5REU3OTA0MTNGMTZDN0YwMDA3RkNERiAvKiBK
YXZhTWV0aG9kSlNDLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZENkYyNTJDMTNGNUVGMEUwMDY1
MTY1RiAvKiBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRkQyM0ExMjUxM0Y1RkE1OTAwRjY3MDAxIC8qIEpTTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VO
b2RlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQ5OThBRUNEMTNGOUQ2QzkwMDkwQjFBQSAvKiBK
U1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQ5
OThBRUQxMTNGQjIyNEQwMDkwQjFBQSAvKiBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJNDk5OEFFRDQxM0ZDNDE3RjAwOTBCMUFBIC8qIEpTUmVxdWVz
dEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2tDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEx
NDE0QjUxM0EwRjA1MDAwMTk5OTZDIC8qIFdlYktpdEZvbnRGYW1pbHlOYW1lcy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlERjlBRkQ3MzEzRkMzMUQ4MDAxNUZFQjcgLyogTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2tDdXN0
b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVxdWVz
dEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2tDdXN0b20uY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFja0N1c3Rv
bS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCisKKyNp
bmNsdWRlICJKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmgiCisKK3VzaW5nIG5hbWVz
cGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworYm9vbCBKU1JlcXVlc3RBbmltYXRp
b25GcmFtZUNhbGxiYWNrOjpoYW5kbGVFdmVudChET01UaW1lU3RhbXAgdGltZSkKK3sKKyAgICBp
ZiAoIWNhbkludm9rZUNhbGxiYWNrKCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgUmVm
UHRyPEpTUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2s+IHByb3RlY3QodGhpcyk7CisKKyAg
ICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOworCisgICAgTWFya2VkQXJndW1l
bnRCdWZmZXIgYXJnczsKKyAgICBhcmdzLmFwcGVuZChqc051bWJlcih0aW1lKSk7CisKKyAgICBi
b29sIHJhaXNlZEV4Y2VwdGlvbiA9IGZhbHNlOworICAgIG1fZGF0YS0+aW52b2tlQ2FsbGJhY2so
YXJncywgJnJhaXNlZEV4Y2VwdGlvbik7CisgICAgcmV0dXJuICFyYWlzZWRFeGNlcHRpb247Cit9
CisKK30KKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gOTMyNjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQpA
QCAtMjc5LDcgKzI3OSw3IEBAIHN1YiBBZGRJbmNsdWRlc0ZvclR5cGUKICAgICAjIFdoZW4gd2Un
cmUgZmluaXNoZWQgd2l0aCB0aGUgb25lLWZpbGUtcGVyLWNsYXNzCiAgICAgIyByZW9yZ2FuaXph
dGlvbiwgd2Ugd29uJ3QgbmVlZCB0aGVzZSBzcGVjaWFsIGNhc2VzLgogICAgIGlmICgkY29kZUdl
bmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCR0eXBlKSBvciAkY29kZUdlbmVyYXRvci0+QXZvaWRJ
bmNsdXNpb25PZlR5cGUoJHR5cGUpCi0gICAgICAgIG9yICR0eXBlIGVxICJET01TdHJpbmciIG9y
ICR0eXBlIGVxICJET01PYmplY3QiIG9yICR0eXBlIGVxICJBcnJheSIpIHsKKyAgICAgICAgb3Ig
JHR5cGUgZXEgIkRPTVN0cmluZyIgb3IgJHR5cGUgZXEgIkRPTU9iamVjdCIgb3IgJHR5cGUgZXEg
IkFycmF5IiBvciAkdHlwZSBlcSAiRE9NVGltZVN0YW1wIikgewogICAgIH0gZWxzaWYgKCR0eXBl
ID1+IC9TVkdQYXRoU2VnLykgewogICAgICAgICAkam9pbmVkTmFtZSA9ICR0eXBlOwogICAgICAg
ICAkam9pbmVkTmFtZSA9fiBzL0Fic3xSZWwvLzsKQEAgLTI1NTgsNyArMjU1OCw4IEBAIG15ICVu
YXRpdmVUeXBlID0gKAogICAgICJ1bnNpZ25lZCBzaG9ydCIgPT4gInVuc2lnbmVkIHNob3J0IiwK
ICAgICAibG9uZyBsb25nIiA9PiAibG9uZyBsb25nIiwKICAgICAidW5zaWduZWQgbG9uZyBsb25n
IiA9PiAidW5zaWduZWQgbG9uZyBsb25nIiwKLSAgICAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciIg
PT4gIlJlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiIKKyAgICAiTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lciIgPT4gIlJlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiIsCisgICAgIkRPTVRp
bWVTdGFtcCIgPT4gIkRPTVRpbWVTdGFtcCIKICk7CiAKIHN1YiBHZXROYXRpdmVUeXBlCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9kb20vUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9SZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxs
YmFjay5pZGwJKHJldmlzaW9uIDkzMjY5KQorKysgU291cmNlL1dlYkNvcmUvZG9tL1JlcXVlc3RB
bmltYXRpb25GcmFtZUNhbGxiYWNrLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzAsOSArMzAsOSBA
QAogCiBtb2R1bGUgY29yZSB7CiAgICAgaW50ZXJmYWNlIFsKLSAgICAgICAgQ2FsbGJhY2s9RnVu
Y3Rpb25Pbmx5LAogICAgICAgICBDb25kaXRpb25hbD1SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSwK
KyAgICAgICAgQ2FsbGJhY2sKICAgICBdIFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrewot
ICAgICAgICBib29sZWFuIGhhbmRsZUV2ZW50KGluIERPTVRpbWVTdGFtcCB0aW1lKTsKKyAgICAg
ICAgW0N1c3RvbV0gYm9vbGVhbiBoYW5kbGVFdmVudChpbiBET01UaW1lU3RhbXAgdGltZSk7CiAg
ICAgfTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRy
b2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1h
dGlvbkNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA5MzI2OSkKKysrIFNvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSw4
ICs1MSw3IEBAIHZvaWQgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpyZXN1bWUKIHsKICAg
ICAtLW1fc3VzcGVuZENvdW50OwogICAgIGlmICghbV9zdXNwZW5kQ291bnQgJiYgbV9jYWxsYmFj
a3Muc2l6ZSgpKQotICAgICAgICBpZiAoRnJhbWVWaWV3KiBmdiA9IG1fZG9jdW1lbnQtPnZpZXco
KSkKLSAgICAgICAgICAgIGZ2LT5zY2hlZHVsZUFuaW1hdGlvbigpOworICAgICAgICBzY2hlZHVs
ZUFuaW1hdGlvbigpOwogfQogCiBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6OkNhbGxiYWNr
SWQgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpyZWdpc3RlckNhbGxiYWNrKFBhc3NSZWZQ
dHI8UmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2s+IGNhbGxiYWNrLCBFbGVtZW50KiBhbmlt
YXRpb25FbGVtZW50KQpAQCAtNjMsOCArNjIsNyBAQCBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xs
ZXI6OkNhbGxiYWNrSWQgCiAgICAgY2FsbGJhY2stPm1fZWxlbWVudCA9IGFuaW1hdGlvbkVsZW1l
bnQ7CiAgICAgbV9jYWxsYmFja3MuYXBwZW5kKGNhbGxiYWNrKTsKICAgICBpZiAoIW1fc3VzcGVu
ZENvdW50KQotICAgICAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gbV9kb2N1bWVudC0+dmlldygp
KQotICAgICAgICAgICAgdmlldy0+c2NoZWR1bGVBbmltYXRpb24oKTsKKyAgICAgICAgc2NoZWR1
bGVBbmltYXRpb24oKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTc5LDYgKzc3LDEyIEBAIHZv
aWQgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpjYW5jZWwKICAgICB9CiB9CiAKK3ZvaWQg
U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpzY2hlZHVsZUFuaW1hdGlvbigpCit7CisgICAg
aWYgKEZyYW1lVmlldyogdmlldyA9IG1fZG9jdW1lbnQtPnZpZXcoKSkKKyAgICAgICAgdmlldy0+
c2NoZWR1bGVBbmltYXRpb24oKTsKK30KKwogdm9pZCBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xs
ZXI6OnNlcnZpY2VTY3JpcHRlZEFuaW1hdGlvbnMoRE9NVGltZVN0YW1wIHRpbWUpCiB7CiAgICAg
aWYgKCFtX2NhbGxiYWNrcy5zaXplKCkgfHwgbV9zdXNwZW5kQ291bnQpCkBAIC0xMjQsOCArMTI4
LDcgQEAgdm9pZCBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6OnNlcnZpYwogICAgIH0KIAog
ICAgIGlmIChtX2NhbGxiYWNrcy5zaXplKCkpCi0gICAgICAgIGlmIChGcmFtZVZpZXcqIHZpZXcg
PSBtX2RvY3VtZW50LT52aWV3KCkpCi0gICAgICAgICAgICB2aWV3LT5zY2hlZHVsZUFuaW1hdGlv
bigpOworICAgICAgICBzY2hlZHVsZUFuaW1hdGlvbigpOwogfQogCiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5oCShyZXZpc2lv
biA5MzI2OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xs
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsMTEgQEAKICNpbmNsdWRlIDx3dGYvTm9u
Y29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KKworI2lmIFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlICJUaW1lci5oIgorI2VuZGlm
CisKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUx
LDYgKzU2LDcgQEAgcHVibGljOgogCiAgICAgQ2FsbGJhY2tJZCByZWdpc3RlckNhbGxiYWNrKFBh
c3NSZWZQdHI8UmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2s+LCBFbGVtZW50Kik7CiAgICAg
dm9pZCBjYW5jZWxDYWxsYmFjayhDYWxsYmFja0lkKTsKKyAgICB2b2lkIHNjaGVkdWxlQW5pbWF0
aW9uKCk7CiAgICAgdm9pZCBzZXJ2aWNlU2NyaXB0ZWRBbmltYXRpb25zKERPTVRpbWVTdGFtcCk7
CiAKICAgICB2b2lkIHN1c3BlbmQoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzNjE4KQor
KysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMTEtMDgtMjMgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgorCisgICAg
ICAgIFttYWNdIHJlcXVlc3RBbmltYXRpb25GcmFtZSBzdXBwb3J0IGZvciBtYWMgcG9ydAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkxNDYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgcmVx
dWVzdEFuaW1hdGlvbkZyYW1lIGZvciBXZWJLaXQyLiBBZGQgYQorICAgICAgICBDRlJ1bkxvb3BP
YnNlcnZlciB0byBXZWJQYWdlLCB3aGljaCBydW5zIGp1c3QgYmVmb3JlCisgICAgICAgIHRoZSBz
eW5jQ29tcG9zaXRpbmdTdGF0ZSBSTE8gYW5kIGNhbGxzIGludG8gdGhlIAorICAgICAgICBTY3Jp
cHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIgaWYgc2NoZWR1bGVBbmltYXRpb24oKSBoYXMKKyAgICAg
ICAgYmVlbiBjYWxsZWQuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZzoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2NoZWR1bGVB
bmltYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6fldlYlBhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpyZXF1ZXN0QW5pbWF0aW9uRnJhbWVSdW5Mb29wT2JzZXJ2ZXJDYWxs
YmFjayk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNjaGVkdWxlQW5pbWF0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dW5zY2hlZHVsZUFuaW1hdGlvbik6CisKIDIwMTEtMDgt
MjMgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJlbW92
ZSBhbGwgbWVudGlvbiBvZiByZW1vdmVkIEFuZHJvaWQgZmlsZXMgZnJvbSBidWlsZCBzY3JpcHRz
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwkocmV2aXNpb24gOTMyNjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtNzks
NiArNzksNyBAQCBFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSA9IDsKIEVOQUJMRV9QUk9HUkVT
U19UQUcgPSBFTkFCTEVfUFJPR1JFU1NfVEFHOwogRU5BQkxFX1FVT1RBID0gOwogRU5BQkxFX1JF
R0lTVEVSX1BST1RPQ09MX0hBTkRMRVIgPSA7CitFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJB
TUUgPSBFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUU7CiBFTkFCTEVfU0hBUkVEX1dPUktF
UlMgPSBFTkFCTEVfU0hBUkVEX1dPUktFUlM7CiBFTkFCTEVfU1ZHID0gRU5BQkxFX1NWRzsKIEVO
QUJMRV9TVkdfQU5JTUFUSU9OID0gRU5BQkxFX1NWR19BTklNQVRJT047CkBAIC05OCw0ICs5OSw0
IEBAIEVOQUJMRV9YSFRNTE1QID0gOwogRU5BQkxFX1hQQVRIID0gRU5BQkxFX1hQQVRIOwogRU5B
QkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0Rf
UkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FOSU1B
VElPTl9BUEkpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVO
QUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0NTUzNfRkxFWEJPWCkgJChF
TkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVS
X0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQo
RU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9F
VkVOVFNPVVJDRSkgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5B
QkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRB
VEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xPUikg
JChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVO
QUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NUQVRJ
U1RJQ1MpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFC
TEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJ
KSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRUdJU1RF
Ul9QUk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZH
KSAkKEVOQUJMRV9TVkdfQU5JTUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxF
X1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdf
Rk9SRUlHTl9PQkpFQ1QpICQoRU5BQkxFX1NWR19VU0UpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9B
RElORykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJH
TCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VC
X1RJTUlORykgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBB
VEgpICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVS
SU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FOSU1BVElPTl9B
UEkpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9D
TElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0NTUzNfRkxFWEJPWCkgJChFTkFCTEVf
REFUQUJBU0UpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1T
KSAkKEVOQUJMRV9ERVRBSUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxF
X0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNP
VVJDRSkgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZV
TExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNF
KSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFC
TEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9M
SU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1Mp
ICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZG
TElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVO
QUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRUdJU1RFUl9QUk9U
T0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVf
U0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0FOSU1BVElPTikgJChF
TkFCTEVfU1ZHX0FTX0lNQUdFKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5B
QkxFX1NWR19GT05UUykgJChFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUKSAkKEVOQUJMRV9TVkdf
VVNFKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJM
RV9WSURFT19UUkFDSykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFC
TEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQo
RU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAJKHJldmlzaW9uIDkzMjY5KQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02NTgsNiArNjU4LDExIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRDdXJzb3JI
aWRkZW5VbnQKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0Q3Vy
c29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGhpZGRlblVudGlsTW91c2VNb3ZlcykpOwogfQogCit2
b2lkIFdlYkNocm9tZUNsaWVudDo6c2NoZWR1bGVBbmltYXRpb24oKQoreworICAgIG1fcGFnZS0+
c2NoZWR1bGVBbmltYXRpb24oKTsKK30KKwogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmZvcm1TdGF0
ZURpZENoYW5nZShjb25zdCBOb2RlKikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpJbmRleDog
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCShyZXZpc2lvbiA5MzI2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTE3NCw2ICsxNzQsMTAgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29y
KGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3JIaWRk
ZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCk7CiAKKyNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05f
RlJBTUUpCisgICAgICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUFuaW1hdGlvbigpOworI2VuZGlm
CisKICAgICAvLyBOb3RpZmljYXRpb24gdGhhdCB0aGUgZ2l2ZW4gZm9ybSBlbGVtZW50IGhhcyBj
aGFuZ2VkLiBUaGlzIGZ1bmN0aW9uCiAgICAgLy8gd2lsbCBiZSBjYWxsZWQgZnJlcXVlbnRseSwg
c28gaGFuZGxpbmcgc2hvdWxkIGJlIHZlcnkgZmFzdC4KICAgICB2aXJ0dWFsIHZvaWQgZm9ybVN0
YXRlRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDkzMjY5KQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNzYsNiArMTc2LDkgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQs
IGNvbnN0IAogICAgICwgbV93aW5kb3dJc1Zpc2libGUoZmFsc2UpCiAgICAgLCBtX2lzU21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKHBhcmFtZXRlcnMuaXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQp
CiAgICAgLCBtX2tleWJvYXJkRXZlbnRCZWluZ0ludGVycHJldGVkKDApCisjaWYgRU5BQkxFKFJF
UVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQorICAgICwgbV9hbmltYXRpb25TY2hlZHVsZWQoZmFsc2Up
CisjZW5kaWYKICNlbGlmIFBMQVRGT1JNKFdJTikKICAgICAsIG1fbmF0aXZlV2luZG93KHBhcmFt
ZXRlcnMubmF0aXZlV2luZG93KQogI2VuZGlmCkBAIC0yNjMsNiArMjY2LDEyIEBAIFdlYlBhZ2U6
On5XZWJQYWdlKCkKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBBU1NFUlQobV9wbHVnaW5WaWV3
cy5pc0VtcHR5KCkpOworCisjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQorICAg
IHVuc2NoZWR1bGVBbmltYXRpb24oKTsKKyAgICBBU1NFUlQoIW1fcmVxdWVzdEFuaW1hdGlvbkZy
YW1lUnVuTG9vcE9ic2VydmVyKTsKKyNlbmRpZgorCiAjZW5kaWYKIAogI2lmbmRlZiBOREVCVUcK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkocmV2
aXNpb24gOTMyNjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNTEsNiArMzUxLDExIEBAIHB1YmxpYzoKICAgICB2b2lk
IHNob3VsZERlbGF5V2luZG93T3JkZXJpbmdFdmVudChjb25zdCBXZWJLaXQ6OldlYk1vdXNlRXZl
bnQmLCBib29sJiByZXN1bHQpOwogICAgIHZvaWQgYWNjZXB0c0ZpcnN0TW91c2UoaW50IGV2ZW50
TnVtYmVyLCBjb25zdCBXZWJLaXQ6OldlYk1vdXNlRXZlbnQmLCBib29sJiByZXN1bHQpOwogICAg
IGJvb2wgcGVyZm9ybU5vbkVkaXRpbmdCZWhhdmlvckZvclNlbGVjdG9yKGNvbnN0IFN0cmluZyYp
OworCisjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQorICAgIHZvaWQgc2NoZWR1
bGVBbmltYXRpb24oKTsKKyAgICB2b2lkIHVuc2NoZWR1bGVBbmltYXRpb24oKTsKKyNlbmRpZgog
I2VsaWYgUExBVEZPUk0oV0lOKQogICAgIHZvaWQgY29uZmlybUNvbXBvc2l0aW9uKGNvbnN0IFN0
cmluZyYgY29tcG9zaXRpb25TdHJpbmcpOwogICAgIHZvaWQgc2V0Q29tcG9zaXRpb24oY29uc3Qg
V1RGOjpTdHJpbmcmIGNvbXBvc2l0aW9uU3RyaW5nLCBjb25zdCBXVEY6OlZlY3RvcjxXZWJDb3Jl
OjpDb21wb3NpdGlvblVuZGVybGluZT4mIHVuZGVybGluZXMsIHVpbnQ2NF90IGN1cnNvclBvc2l0
aW9uKTsKQEAgLTYwOSw2ICs2MTQsMTIgQEAgcHJpdmF0ZToKIAogICAgIFdlYkNvcmU6OktleWJv
YXJkRXZlbnQqIG1fa2V5Ym9hcmRFdmVudEJlaW5nSW50ZXJwcmV0ZWQ7CiAKKyNpZiBFTkFCTEUo
UkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCisgICAgc3RhdGljIHZvaWQgcmVxdWVzdEFuaW1hdGlv
bkZyYW1lUnVuTG9vcE9ic2VydmVyQ2FsbGJhY2soQ0ZSdW5Mb29wT2JzZXJ2ZXJSZWYsIENGUnVu
TG9vcEFjdGl2aXR5LCB2b2lkKik7CisgICAgUmV0YWluUHRyPENGUnVuTG9vcE9ic2VydmVyUmVm
PiBtX3JlcXVlc3RBbmltYXRpb25GcmFtZVJ1bkxvb3BPYnNlcnZlcjsKKyAgICBib29sIG1fYW5p
bWF0aW9uU2NoZWR1bGVkOworI2VuZGlmCisKICNlbGlmIFBMQVRGT1JNKFdJTikKICAgICAvLyBP
dXIgdmlldydzIHdpbmRvdyAoaW4gdGhlIFVJIHByb2Nlc3MpLgogICAgIEhXTkQgbV9uYXRpdmVX
aW5kb3c7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBh
Z2VNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9XZWJQYWdlTWFjLm1tCShyZXZpc2lvbiA5MzI2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTgz
LDYgKzU4Myw1MCBAQCBib29sIFdlYlBhZ2U6OnBlcmZvcm1Ob25FZGl0aW5nQmVoYXZpb3JGCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKKyNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUp
Cit2b2lkIFdlYlBhZ2U6OnJlcXVlc3RBbmltYXRpb25GcmFtZVJ1bkxvb3BPYnNlcnZlckNhbGxi
YWNrKENGUnVuTG9vcE9ic2VydmVyUmVmLCBDRlJ1bkxvb3BBY3Rpdml0eSwgdm9pZCogY29udGV4
dCkKK3sKKyAgICBXZWJQYWdlKiB3ZWJQYWdlID0gc3RhdGljX2Nhc3Q8V2ViUGFnZSo+KGNvbnRl
eHQpOworICAgIGlmICghd2ViUGFnZS0+bV9hbmltYXRpb25TY2hlZHVsZWQpCisgICAgICAgIHJl
dHVybjsKKworICAgIHdlYlBhZ2UtPm1fYW5pbWF0aW9uU2NoZWR1bGVkID0gZmFsc2U7CisgICAg
CisgICAgLy8gVGhpcyBnZXRzIGNhbGxlZCBvdXRzaWRlIG9mIHRoZSBub3JtYWwgZXZlbnQgbG9v
cCBzbyB3cmFwIGluIGFuIGF1dG9yZWxlYXNlIHBvb2wKKyAgICBOU0F1dG9yZWxlYXNlUG9vbCAq
cG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2NdIGluaXRdOworICAgIHdlYlBhZ2UtPmNv
cmVQYWdlKCktPm1haW5GcmFtZSgpLT52aWV3KCktPnNlcnZpY2VTY3JpcHRlZEFuaW1hdGlvbnMo
Y29udmVydFNlY29uZHNUb0RPTVRpbWVTdGFtcChjdXJyZW50VGltZSgpKSk7CisgICAgW3Bvb2wg
ZHJhaW5dOworfQorCit2b2lkIFdlYlBhZ2U6OnNjaGVkdWxlQW5pbWF0aW9uKCkKK3sKKyAgICBp
ZiAoIW1fcmVxdWVzdEFuaW1hdGlvbkZyYW1lUnVuTG9vcE9ic2VydmVyKSB7CisgICAgICAgIENG
UnVuTG9vcFJlZiBjdXJyZW50UnVuTG9vcCA9IENGUnVuTG9vcEdldEN1cnJlbnQoKTsKKyAgICAK
KyAgICAgICAgLy8gTWFrZSBzdXJlIHdlIHdha2UgdXAgdGhlIGxvb3Agb3IgdGhlIG9ic2VydmVy
IGNvdWxkIGJlIGRlbGF5ZWQgdW50aWwgc29tZSBvdGhlciBzb3VyY2UgZmlyZXMuCisgICAgICAg
IENGUnVuTG9vcFdha2VVcChjdXJyZW50UnVuTG9vcCk7CisKKyAgICAgICAgLy8gUnVuIGJlZm9y
ZSB0aGUgZmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzUnVuTG9vcE9ic2VydmVyLCB3aGljaCBoYXMg
b3JkZXIgMjAwMDAwMCAtIDEuCisgICAgICAgIGNvbnN0IENGSW5kZXggcnVuTG9vcE9yZGVyID0g
MjAwMDAwMCAtIDI7CisgICAgICAgIENGUnVuTG9vcE9ic2VydmVyQ29udGV4dCBjb250ZXh0ID0g
eyAwLCB0aGlzLCAwLCAwLCAwIH07CisgICAgICAgIG1fcmVxdWVzdEFuaW1hdGlvbkZyYW1lUnVu
TG9vcE9ic2VydmVyLmFkb3B0Q0YoQ0ZSdW5Mb29wT2JzZXJ2ZXJDcmVhdGUoMCwga0NGUnVuTG9v
cEJlZm9yZVdhaXRpbmcgfCBrQ0ZSdW5Mb29wRXhpdCwgdHJ1ZSwgcnVuTG9vcE9yZGVyLCByZXF1
ZXN0QW5pbWF0aW9uRnJhbWVSdW5Mb29wT2JzZXJ2ZXJDYWxsYmFjaywgJmNvbnRleHQpKTsKKwor
ICAgICAgICBDRlJ1bkxvb3BBZGRPYnNlcnZlcihjdXJyZW50UnVuTG9vcCwgbV9yZXF1ZXN0QW5p
bWF0aW9uRnJhbWVSdW5Mb29wT2JzZXJ2ZXIuZ2V0KCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7
CisgICAgfQorICAgIAorICAgIG1fYW5pbWF0aW9uU2NoZWR1bGVkID0gdHJ1ZTsgICAgCit9CisK
K3ZvaWQgV2ViUGFnZTo6dW5zY2hlZHVsZUFuaW1hdGlvbigpCit7CisgICAgbV9hbmltYXRpb25T
Y2hlZHVsZWQgPSBmYWxzZTsKKyAgICBpZiAobV9yZXF1ZXN0QW5pbWF0aW9uRnJhbWVSdW5Mb29w
T2JzZXJ2ZXIpIHsKKyAgICAgICAgQ0ZSdW5Mb29wT2JzZXJ2ZXJJbnZhbGlkYXRlKG1fcmVxdWVz
dEFuaW1hdGlvbkZyYW1lUnVuTG9vcE9ic2VydmVyLmdldCgpKTsKKyAgICAgICAgbV9yZXF1ZXN0
QW5pbWF0aW9uRnJhbWVSdW5Mb29wT2JzZXJ2ZXIgPSBudWxscHRyOworICAgIH0KK30KKyNlbmRp
ZgorCiBib29sIFdlYlBhZ2U6OnBlcmZvcm1EZWZhdWx0QmVoYXZpb3JGb3JLZXlFdmVudChjb25z
dCBXZWJLZXlib2FyZEV2ZW50JikKIHsKICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCShyZXZpc2lvbiA5MzYxOCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDExLTA4LTIzICBDaHJpcyBNYXJyaW4g
IDxjbWFycmluQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjXSByZXF1ZXN0QW5pbWF0aW9uRnJh
bWUgc3VwcG9ydCBmb3IgbWFjIHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU5MTQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW1wbGVtZW50IHJlcXVlc3RBbmltYXRpb25GcmFtZSBmb3IgV2ViS2l0
LiBBZGQgYQorICAgICAgICBDRlJ1bkxvb3BPYnNlcnZlciB0byBXZWJWaWV3LCB3aGljaCBydW5z
IGp1c3QgYmVmb3JlCisgICAgICAgIHRoZSBzeW5jQ29tcG9zaXRpbmdTdGF0ZSBSTE8gYW5kIGNh
bGxzIGludG8gdGhlIAorICAgICAgICBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIgaWYgc2No
ZWR1bGVBbmltYXRpb24oKSBoYXMKKyAgICAgICAgYmVlbiBjYWxsZWQuCisKKyAgICAgICAgKiBD
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNjaGVkdWxlQW5pbWF0
aW9uKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcg
X2Nsb3NlXSk6CisgICAgICAgICgtW1dlYlZpZXcgX3Vuc2NoZWR1bGVBbmltYXRpb25dKToKKyAg
ICAgICAgKC1bV2ViVmlldyBfc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyU3luY10pOgorICAgICAg
ICAocmVxdWVzdEFuaW1hdGlvbkZyYW1lUnVuTG9vcE9ic2VydmVyQ2FsbGJhY2spOgorICAgICAg
ICAoLVtXZWJWaWV3IF9zY2hlZHVsZUFuaW1hdGlvbl0pOgorICAgICAgICAqIFdlYlZpZXcvV2Vi
Vmlld0RhdGEuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oOgorCiAyMDEx
LTA4LTE4ICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBTYW0gV2VpbmlnLgpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHJldmlzaW9uIDkzMjY5KQor
KysgU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcJKHdvcmtpbmcgY29weSkKQEAgLTc5LDYgKzc5LDcgQEAgRU5BQkxFX1BBR0VfVklTSUJJTElU
WV9BUEkgPSA7CiBFTkFCTEVfUFJPR1JFU1NfVEFHID0gRU5BQkxFX1BST0dSRVNTX1RBRzsKIEVO
QUJMRV9RVU9UQSA9IDsKIEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSID0gOworRU5B
QkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FID0gRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZS
QU1FOwogRU5BQkxFX1NIQVJFRF9XT1JLRVJTID0gRU5BQkxFX1NIQVJFRF9XT1JLRVJTOwogRU5B
QkxFX1NWRyA9IEVOQUJMRV9TVkc7CiBFTkFCTEVfU1ZHX0FOSU1BVElPTiA9IEVOQUJMRV9TVkdf
QU5JTUFUSU9OOwpAQCAtOTgsNCArOTksNCBAQCBFTkFCTEVfWEhUTUxNUCA9IDsKIEVOQUJMRV9Y
UEFUSCA9IEVOQUJMRV9YUEFUSDsKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRV
UkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURf
MkRfQ0FOVkFTKSAkKEVOQUJMRV9BTklNQVRJT05fQVBJKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJM
RV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAk
KEVOQUJMRV9DU1MzX0ZMRVhCT1gpICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBTElT
VCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMUykgJChFTkFC
TEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJM
RV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0UpICQoRU5BQkxFX0ZJTEVfU1lTVEVN
KSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0VP
TE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFT
RSkgJChFTkFCTEVfSU5QVVRfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVf
SkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFU
SE1MKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5B
QkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJChF
TkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJM
RV9RVU9UQSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfU0hB
UkVEX1dPUktFUlMpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0FOSU1BVElPTikgJChFTkFC
TEVfU1ZHX0FTX0lNQUdFKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxF
X1NWR19GT05UUykgJChFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUKSAkKEVOQUJMRV9TVkdfVVNF
KSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9W
SURFT19UUkFDSykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVf
V0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5B
QkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVG
SU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FO
VkFTKSAkKEVOQUJMRV9BTklNQVRJT05fQVBJKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFO
TkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJM
RV9DU1MzX0ZMRVhCT1gpICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBTElTVCkgJChF
TkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMUykgJChFTkFCTEVfREVW
SUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET01f
U1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0UpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVO
QUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0VPTE9DQVRJ
T04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChF
TkFCTEVfSU5QVVRfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSkFWQVND
UklQVF9ERUJVR0dFUikgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAk
KEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX05P
VElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJChFTkFCTEVf
UEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9RVU9U
QSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfUkVRVUVTVF9B
TklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQo
RU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZH
X0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JF
SUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5H
KSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAk
KEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElN
SU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkg
JChFTkFCTEVfWFNMVCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAkocmV2aXNpb24gOTMyNjkpCisrKyBTb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMTMwLDYgKzEzMCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihj
b25zdCBXZWJDb3JlOjpDdXJzb3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVu
VW50aWxNb3VzZU1vdmVzKGJvb2wpOwogCisjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZS
QU1FKQorICAgICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVBbmltYXRpb24oKTsKKyNlbmRpZgor
CiAgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgY3VzdG9tSGlnaGxpZ2h0UmVjdChXZWJD
b3JlOjpOb2RlKiwgY29uc3QgV1RGOjpBdG9taWNTdHJpbmcmIHR5cGUsCiAgICAgICAgIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgbGluZVJlY3QpOwogICAgIHZpcnR1YWwgdm9pZCBwYWludEN1
c3RvbUhpZ2hsaWdodChXZWJDb3JlOjpOb2RlKiwgY29uc3QgV1RGOjpBdG9taWNTdHJpbmcmIHR5
cGUsCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lm1tCShyZXZpc2lvbiA5MzI2OSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtOTU2LDYg
Kzk1NiwxNSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2NoZWR1bGVDb21wb3NpdGluCiAKICNl
bmRpZgogCisjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQordm9pZCBXZWJDaHJv
bWVDbGllbnQ6OnNjaGVkdWxlQW5pbWF0aW9uKCkKK3sKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CisgICAgW21fd2ViVmlldyBfc2NoZWR1bGVBbmltYXRpb25dOworICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJMRShWSURFTykKIAog
Ym9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbHNjcmVlbkZvck5vZGUoY29uc3QgTm9k
ZSogbm9kZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHJldmlzaW9u
IDkzMjY5KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0zODQsNiArMzg0LDkgQEAgLSAoTlNSZXNwb25kZXIgKilfcmVzcG9uZGVyRm9y
UmVzcG9uZGVyTwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIC0gKHZvaWQpX2Ns
ZWFyTGF5ZXJTeW5jTG9vcE9ic2VydmVyOwogI2VuZGlmCisjaWYgRU5BQkxFKFJFUVVFU1RfQU5J
TUFUSU9OX0ZSQU1FKQorLSAodm9pZClfdW5zY2hlZHVsZUFuaW1hdGlvbjsKKyNlbmRpZgogI2lm
IEVOQUJMRShHTElCX1NVUFBPUlQpCiAtICh2b2lkKV9jbGVhckdsaWJMb29wT2JzZXJ2ZXI7CiAj
ZW5kaWYKQEAgLTEyMTIsNiArMTIxNSwxMCBAQCAtICh2b2lkKV9jbG9zZQogICAgIFtzZWxmIF9j
bGVhckxheWVyU3luY0xvb3BPYnNlcnZlcl07CiAjZW5kaWYKICAgICAKKyNpZiBFTkFCTEUoUkVR
VUVTVF9BTklNQVRJT05fRlJBTUUpCisgICAgW3NlbGYgX3Vuc2NoZWR1bGVBbmltYXRpb25dOwor
I2VuZGlmCisKICNpZiBFTkFCTEUoR0xJQl9TVVBQT1JUKQogICAgIFtzZWxmIF9jbGVhckdsaWJM
b29wT2JzZXJ2ZXJdOwogI2VuZGlmCkBAIC01ODc0LDYgKzU4ODEsMTggQEAgLSAodm9pZClfY2xl
YXJMYXllclN5bmNMb29wT2JzZXJ2ZXIKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFJFUVVFU1Rf
QU5JTUFUSU9OX0ZSQU1FKQorLSAodm9pZClfdW5zY2hlZHVsZUFuaW1hdGlvbgoreworICAgIGlm
ICghX3ByaXZhdGUtPnJlcXVlc3RBbmltYXRpb25GcmFtZVJ1bkxvb3BPYnNlcnZlcikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgQ0ZSdW5Mb29wT2JzZXJ2ZXJJbnZhbGlkYXRlKF9wcml2YXRlLT5y
ZXF1ZXN0QW5pbWF0aW9uRnJhbWVSdW5Mb29wT2JzZXJ2ZXIpOworICAgIENGUmVsZWFzZShfcHJp
dmF0ZS0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lUnVuTG9vcE9ic2VydmVyKTsKKyAgICBfcHJpdmF0
ZS0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lUnVuTG9vcE9ic2VydmVyID0gMDsKK30KKyNlbmRpZgor
CiAjaWYgRU5BQkxFKEdMSUJfU1VQUE9SVCkKIC0gKHZvaWQpX2NsZWFyR2xpYkxvb3BPYnNlcnZl
cgogewpAQCAtNjEzOCw3ICs2MTU3LDggQEAgLSAodm9pZClfc2NoZWR1bGVDb21wb3NpdGluZ0xh
eWVyU3luYwogICAgIC8vIFJ1biBhZnRlciBBcHBLaXQgZG9lcyBpdHMgd2luZG93IHVwZGF0ZS4g
SWYgd2UgZG8gYW55IHBhaW50aW5nLCB3ZSdsbCBjb21taXQKICAgICAvLyBsYXllciBjaGFuZ2Vz
IGZyb20gRnJhbWVWaWV3OjpwYWludENvbnRlbnRzKCksIG90aGVyd2lzZSB3ZSdsbCBjb21taXQg
dmlhCiAgICAgLy8gX3N5bmNDb21wb3NpdGluZ0NoYW5nZXMgd2hlbiB0aGlzIG9ic2VydmVyIGZp
cmVzLgotICAgIGNvbnN0IENGSW5kZXggcnVuTG9vcE9yZGVyID0gTlNEaXNwbGF5V2luZG93UnVu
TG9vcE9yZGVyaW5nICsgMTsKKyAgICAvLyBBbHNvIGxlYXZlIGEgc2xvdCBmb3IgdGhlIHJlcXVl
c3RBbmltYXRpb25GcmFtZVJ1bkxvb3BPYnNlcnZlciwgaWYgaXQncyBlbmFibGVkCisgICAgY29u
c3QgQ0ZJbmRleCBydW5Mb29wT3JkZXIgPSBOU0Rpc3BsYXlXaW5kb3dSdW5Mb29wT3JkZXJpbmcg
KyAyOwogCiAgICAgLy8gVGhlIFdlYlZpZXcgYWx3YXlzIG91dGxpdmVzIHRoZSBvYnNlcnZlciwg
c28gbm8gbmVlZCB0byByZXRhaW4vcmVsZWFzZS4KICAgICBDRlJ1bkxvb3BPYnNlcnZlckNvbnRl
eHQgY29udGV4dCA9IHsgMCwgc2VsZiwgMCwgMCwgMCB9OwpAQCAtNjE1Miw2ICs2MTcyLDM2IEBA
IC0gKHZvaWQpX3NjaGVkdWxlQ29tcG9zaXRpbmdMYXllclN5bmMKIAogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCitzdGF0aWMgdm9pZCByZXF1ZXN0QW5pbWF0
aW9uRnJhbWVSdW5Mb29wT2JzZXJ2ZXJDYWxsYmFjayhDRlJ1bkxvb3BPYnNlcnZlclJlZiwgQ0ZS
dW5Mb29wQWN0aXZpdHksIHZvaWQqIGluZm8pCit7CisgICAgV2ViVmlldyAqd2ViVmlldyA9IHJl
aW50ZXJwcmV0X2Nhc3Q8V2ViVmlldyo+KGluZm8pOworICAgIGlmICghd2ViVmlldy0+X3ByaXZh
dGUtPmFuaW1hdGlvblNjaGVkdWxlZCkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIHdlYlZp
ZXctPl9wcml2YXRlLT5hbmltYXRpb25TY2hlZHVsZWQgPSBOTzsKKyAgICBbd2ViVmlldyBfbWFp
bkNvcmVGcmFtZV0tPnZpZXcoKS0+c2VydmljZVNjcmlwdGVkQW5pbWF0aW9ucyhjb252ZXJ0U2Vj
b25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKTsKK30KKworLSAodm9pZClfc2NoZWR1
bGVBbmltYXRpb24KK3sKKyAgICBpZiAoIV9wcml2YXRlLT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWVS
dW5Mb29wT2JzZXJ2ZXIpIHsKKyAgICAgICAgQ0ZSdW5Mb29wUmVmIGN1cnJlbnRSdW5Mb29wID0g
Q0ZSdW5Mb29wR2V0Q3VycmVudCgpOworICAgIAorICAgICAgICAvLyBNYWtlIHN1cmUgd2Ugd2Fr
ZSB1cCB0aGUgbG9vcCBvciB0aGUgb2JzZXJ2ZXIgY291bGQgYmUgZGVsYXllZCB1bnRpbCBzb21l
IG90aGVyIHNvdXJjZSBmaXJlcy4KKyAgICAgICAgQ0ZSdW5Mb29wV2FrZVVwKGN1cnJlbnRSdW5M
b29wKTsKKworICAgICAgICAvLyBSdW4gYmVmb3JlIHRoZSBsYXllclN5bmNSdW5Mb29wT2JzZXJ2
ZXIsIHdoaWNoIGhhcyBvcmRlciBOU0Rpc3BsYXlXaW5kb3dSdW5Mb29wT3JkZXJpbmcgKyAyLgor
ICAgICAgICBjb25zdCBDRkluZGV4IHJ1bkxvb3BPcmRlciA9IE5TRGlzcGxheVdpbmRvd1J1bkxv
b3BPcmRlcmluZyArIDE7CisgICAgICAgIENGUnVuTG9vcE9ic2VydmVyQ29udGV4dCBjb250ZXh0
ID0geyAwLCBzZWxmLCAwLCAwLCAwIH07CisgICAgICAgIF9wcml2YXRlLT5yZXF1ZXN0QW5pbWF0
aW9uRnJhbWVSdW5Mb29wT2JzZXJ2ZXIgPSBDRlJ1bkxvb3BPYnNlcnZlckNyZWF0ZSgwLCBrQ0ZS
dW5Mb29wQmVmb3JlV2FpdGluZyB8IGtDRlJ1bkxvb3BFeGl0LCBZRVMsIHJ1bkxvb3BPcmRlciwg
cmVxdWVzdEFuaW1hdGlvbkZyYW1lUnVuTG9vcE9ic2VydmVyQ2FsbGJhY2ssICZjb250ZXh0KTsK
KyAgICAgICAgQ0ZSdW5Mb29wQWRkT2JzZXJ2ZXIoY3VycmVudFJ1bkxvb3AsIF9wcml2YXRlLT5y
ZXF1ZXN0QW5pbWF0aW9uRnJhbWVSdW5Mb29wT2JzZXJ2ZXIsIGtDRlJ1bkxvb3BDb21tb25Nb2Rl
cyk7CisgICAgfQorICAgIAorICAgIF9wcml2YXRlLT5hbmltYXRpb25TY2hlZHVsZWQgPSBZRVM7
ICAgIAorfQorI2VuZGlmCisKICNpZiBFTkFCTEUoVklERU8pCiAKIC0gKHZvaWQpX2VudGVyRnVs
bHNjcmVlbkZvck5vZGU6KFdlYkNvcmU6Ok5vZGUqKW5vZGUKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgJKHJldmlzaW9uIDkzMjY5KQorKysgU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTUsNiArMTU1
LDExIEBAIEBpbnRlcmZhY2UgV2ViVmlld1ByaXZhdGUgOiBOU09iamVjdCB7CiAgICAgQ0ZSdW5M
b29wT2JzZXJ2ZXJSZWYgbGF5ZXJTeW5jUnVuTG9vcE9ic2VydmVyOwogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCisgICAgQ0ZSdW5Mb29wT2JzZXJ2ZXJSZWYg
cmVxdWVzdEFuaW1hdGlvbkZyYW1lUnVuTG9vcE9ic2VydmVyOworICAgIEJPT0wgYW5pbWF0aW9u
U2NoZWR1bGVkOworI2VuZGlmCisKICAgICBOU1Bhc3RlYm9hcmQgKmluc2VydGlvblBhc3RlYm9h
cmQ7CiAgICAgICAgICAgICAKICAgICBOU1NpemUgbGFzdExheW91dFNpemU7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgJKHJldmlzaW9uIDkzMjY5
KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAkod29ya2lu
ZyBjb3B5KQpAQCAtOTAsNiArOTAsMTAgQEAgQGludGVyZmFjZSBXZWJWaWV3IChXZWJWaWV3SW50
ZXJuYWwpCiAtICh2b2lkKV9zY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJTeW5jOwogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCistICh2b2lkKV9zY2hlZHVsZUFu
aW1hdGlvbjsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKEdMSUJfU1VQUE9SVCkKIC0gKHZvaWQpX3Nj
aGVkdWxlR2xpYkNvbnRleHRJdGVyYXRpb25zOwogI2VuZGlmCkluZGV4OiBUb29scy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5MzYxOCkKKysrIFRv
b2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDExLTA4LTIz
ICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjXSByZXF1
ZXN0QW5pbWF0aW9uRnJhbWUgc3VwcG9ydCBmb3IgbWFjIHBvcnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MTQ2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHJlcXVlc3QtYW5p
bWF0aW9uLWNhbGxiYWNrIGZsYWcKKworICAgICAgICAqIFNjcmlwdHMvYnVpbGQtd2Via2l0Ogor
CiAyMDExLTA4LTIzICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
Z2FyZGVuLW8tbWF0aWMgc3VtbWFyeSBzaG91bGQgYmUgYWJsZSB0byBleGFtaW5lIGZhaWx1cmVz
CkluZGV4OiBUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9T
Y3JpcHRzL2J1aWxkLXdlYmtpdAkocmV2aXNpb24gOTMyNjkpCisrKyBUb29scy9TY3JpcHRzL2J1
aWxkLXdlYmtpdAkod29ya2luZyBjb3B5KQpAQCAtNjQsNiArNjQsNyBAQCBteSAkbm9XZWJLaXQy
ID0gMDsKIG15ICRzdGFydFRpbWUgPSB0aW1lKCk7CiAKIG15ICgKKyAgICAkcmVxdWVzdEFuaW1h
dGlvbkZyYW1lU3VwcG9ydCwKICAgICAkdGhyZWVEQ2FudmFzU3VwcG9ydCwKICAgICAkdGhyZWVE
UmVuZGVyaW5nU3VwcG9ydCwKICAgICAkYWNjZWxlcmF0ZWQyZENhbnZhc1N1cHBvcnQsCkBAIC0x
MzAsNiArMTMxLDkgQEAgbXkgKAogKTsKIAogbXkgQGZlYXR1cmVzID0gKAorICAgIHsgb3B0aW9u
ID0+ICJyZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZSIsIGRlc2MgPT4gIlRvZ2dsZSByZXF1ZXN0QW5p
bWF0aW9uRnJhbWUgc3VwcG9ydCIsCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9SRVFVRVNUX0FO
SU1BVElPTl9GUkFNRSIsIGRlZmF1bHQgPT4gKGlzQXBwbGVNYWNXZWJLaXQoKSksIHZhbHVlID0+
IFwkcmVxdWVzdEFuaW1hdGlvbkZyYW1lU3VwcG9ydCB9LAorCiAgICAgeyBvcHRpb24gPT4gIjNk
LWNhbnZhcyIsIGRlc2MgPT4gIlRvZ2dsZSAzRCBjYW52YXMgKFdlYkdMKSBzdXBwb3J0IiwKICAg
ICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQkdMIiwgZGVmYXVsdCA9PiAoaXNBcHBsZU1hY1dlYktp
dCgpICYmICFpc0xlb3BhcmQoKSksIHZhbHVlID0+IFwkdGhyZWVEQ2FudmFzU3VwcG9ydCB9LAog
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA5MzYxOCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDExLTA4LTIzICBDaHJpcyBNYXJyaW4gIDxj
bWFycmluQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjXSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUg
c3VwcG9ydCBmb3IgbWFjIHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU5MTQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRW5hYmxlIHJlcXVlc3RBbmltYXRpb25GcmFtZSB0ZXN0cyBmb3IgTWFjLiBU
ZXN0cyB3ZXJlIGFsc28KKyAgICAgICAgbW9kaWZpZWQgdG8gd29yayBvbiBNYWMuIEJlZm9yZSB0
aGUgdGVzdHMgd291bGQgYXNzdW1lIHRoZQorICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUg
Y2FsbGJhY2tzIHdvdWxkIGJlIGNhbGxlZCBieSBjYWxsaW5nCisgICAgICAgIExheW91dFRlc3RD
b250cm9sbGVyLmRpc3BsYXkoKS4gVGhpcyBpcyBub3QgYSB2YWxpZCBhc3N1bXB0aW9uCisgICAg
ICAgIGZvciBNYWMsIHNpbmNlIGl0IHNraXBzIGRpc3BsYXkoKSBpZiBub3RoaW5nIHdhcyBkaXJ0
eS4KKworICAgICAgICBUZXN0cyB3ZXJlIGNoYW5nZWQgdG8gdXNlIHRpbWVvdXRzIHRvIHdhaXQg
Zm9yIGNhbGxiYWNrcyBhbmQKKyAgICAgICAgZW5zdXJlIHRoZXkgZ2V0IGNhbGxlZC4gQWxzbyBh
ZGRlZCBtb3JlIHBvc2l0aXZlIGluZGljYXRpb25zCisgICAgICAgIHRoYXQgdGVzdCBmYWlsZWQg
b3Igc3VjY2VlZGVkLCByYXRoZXIgdGhhbiByZWx5aW5nIG9uIHRoZSBsYWNrCisgICAgICAgIG9m
IGFuIGVycm9yIG1lc3NhZ2UgdG8gaW5kaWNhdGUgc3VjY2Vzcy4KKworICAgICAgICAqIGZhc3Qv
YW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbC1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsLmh0
bWw6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2Fu
Y2VsMi1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmlt
YXRpb24tZnJhbWUtY2FuY2VsMi5odG1sOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3JlcXVl
c3QtYW5pbWF0aW9uLWZyYW1lLWRpc3BsYXkuaHRtbDoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlv
bi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kdXJpbmctbW9kYWwtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWR1cmluZy1tb2Rh
bC5odG1sOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1l
LXRpbWVzdGFtcHMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1h
dGlvbi1mcmFtZS13aXRoaW4tY2FsbGJhY2suaHRtbDoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlv
bi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS5odG1sOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9u
L3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwuanM6CisgICAgICAg
ICh3aW5kb3cpOgorICAgICAgICAoaWYpOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3Njcmlw
dC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwyLmpzOgorICAgICAgICAoaWYp
OgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlv
bi1mcmFtZS1kaXNwbGF5LmpzOgorICAgICAgICAoaWYpOgorICAgICAgICAqIGZhc3QvYW5pbWF0
aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLmpzOgor
ICAgICAgICAodmFyKToKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVx
dWVzdC1hbmltYXRpb24tZnJhbWUtd2l0aGluLWNhbGxiYWNrLmpzOgorICAgICAgICAqIGZhc3Qv
YW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS5qczoKKyAgICAg
ICAgKGlmKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDoKKwogMjAxMS0wNy0yNSAg
Um9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgZGl2IGFsaWduPSJj
ZW50ZXIiIHJlbmRlcmluZyBwcm9ibGVtCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlv
bi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1j
YW5jZWwyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTMyNjkpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwyLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMyw2ICszLDggQEAgVGVzdHMgb25lIHJlcXVlc3RBbmltYXRpb25G
cmFtZSBjYWxsYmFjawogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK1BBU1MgY2FsbGJh
Y2tGaXJlZCBpcyBmYWxzZQorUEFTUyBjYW5jZWxGaXJlZCBpcyB0cnVlCiBQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbDIuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS1jYW5jZWwyLmh0bWwJKHJldmlzaW9uIDkzMjY5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9hbmlt
YXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsMi5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xMCw2ICsxMCw2IEBACiA8c3BhbiBpZD0iZSI+PC9zcGFuPgogPHNwYW4gaWQ9ImYiPjwv
c3Bhbj4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUt
Y2FuY2VsMi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Jl
cXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDkzMjY5
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUt
Y2FuY2VsLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMyw2ICszLDcgQEAgVGhpcyB0
ZXN0cyBjYW5jZWxsaW5nIGEgd2Via2l0UmVxdWVzdEFuaQogT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgogCiAKK1BBU1MgY2FsbGJhY2tGaXJlZCBpcyBmYWxzZQogUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Fu
aW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5j
ZWwuaHRtbAkocmV2aXNpb24gOTMyNjkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9y
ZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAs
NiArMTAsNiBAQAogPHNwYW4gaWQ9ImUiPjwvc3Bhbj4KIDxzcGFuIGlkPSJmIj48L3NwYW4+CiA8
c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1m
dW5jdGlvbi5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kaXNwbGF5Lmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24t
ZnJhbWUtZGlzcGxheS5odG1sCShyZXZpc2lvbiA5MzI2OSkKKysrIExheW91dFRlc3RzL2Zhc3Qv
YW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRpc3BsYXkuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTAsNiArMTAsNiBAQAogPHNwYW4gaWQ9ImUiPjwvc3Bhbj4KIDxzcGFuIGlkPSJm
Ij48L3NwYW4+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZy
YW1lLWRpc3BsYXkuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZHVy
aW5nLW1vZGFsLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Fu
aW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kdXJpbmctbW9kYWwtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiA5MzI2OSkKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3Qt
YW5pbWF0aW9uLWZyYW1lLWR1cmluZy1tb2RhbC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTMsMTEgKzMsMTEgQEAgVGVzdHMgdGhhdCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgY2FsbGJh
YwogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKLQotVEVTVCBDT01QTEVURQogU2V0dGluZyBjYWxsYmFjawogU2hvd2luZyBtb2Rh
bCBkaWFsb2cKIFJldHVybmVkIGZyb20gbW9kYWwgZGlhbG9nCiBDYWxsYmFjayBmaXJlZAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCiAKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWR1cmluZy1t
b2RhbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVl
c3QtYW5pbWF0aW9uLWZyYW1lLWR1cmluZy1tb2RhbC5odG1sCShyZXZpc2lvbiA5MzI2OSkKKysr
IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWR1cmlu
Zy1tb2RhbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw5ICsyNywxOSBAQCBvbmxvYWQgPSBm
dW5jdGlvbigpCiAgICAgfQogfQogCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKwogdmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CisKK3NldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgaXNTdWNj
ZXNzZnVsbHlQYXJzZWQoKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9LCAyMDApOworCiA8
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0
aW9uLmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9u
LWZyYW1lLXRpbWVzdGFtcHMuaHRtbAkocmV2aXNpb24gOTMyNjkpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEwLDYgKzEwLDYgQEAKIDxzcGFuIGlkPSJlIj48L3NwYW4+CiA8c3Bh
biBpZD0iZiI+PC9zcGFuPgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1h
dGlvbi1mcmFtZS10aW1lc3RhbXBzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9u
LWZyYW1lLXdpdGhpbi1jYWxsYmFjay5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXdpdGhpbi1jYWxsYmFjay5odG1s
CShyZXZpc2lvbiA5MzI2OSkKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3Qt
YW5pbWF0aW9uLWZyYW1lLXdpdGhpbi1jYWxsYmFjay5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
MCw2ICsxMCw2IEBACiA8c3BhbiBpZD0iZSI+PC9zcGFuPgogPHNwYW4gaWQ9ImYiPjwvc3Bhbj4K
IDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtd2l0aGlu
LWNhbGxiYWNrLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUuaHRtbAkocmV2aXNpb24gOTMyNjkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1h
dGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw2
ICsxMCw2IEBACiA8c3BhbiBpZD0iZSI+PC9zcGFuPgogPHNwYW4gaWQ9ImYiPjwvc3Bhbj4KIDxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24u
anMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9h
bmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbDIuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3Jl
cXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbDIuanMJKHJldmlzaW9uIDkzMjY5KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZy
YW1lLWNhbmNlbDIuanMJKHdvcmtpbmcgY29weSkKQEAgLTIsMTYgKzIsMzMgQEAgZGVzY3JpcHRp
b24oIlRlc3RzIG9uZSByZXF1ZXN0QW5pbWF0aW9uRgogCiB2YXIgZSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJlIik7CiB2YXIgc2Vjb25kQ2FsbGJhY2tJZDsKK3ZhciBjYWxsYmFja0ZpcmVk
ID0gZmFsc2U7Cit2YXIgY2FuY2VsRmlyZWQgPSBmYWxzZTsKIAogd2luZG93LndlYmtpdFJlcXVl
c3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKKyAgICBjYW5jZWxGaXJlZCA9IHRydWU7CiAg
ICAgd2luZG93LndlYmtpdENhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZShzZWNvbmRDYWxsYmFj
a0lkKTsKIH0sIGUpOwogCiBzZWNvbmRDYWxsYmFja0lkID0gd2luZG93LndlYmtpdFJlcXVlc3RB
bmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKLSAgICB0ZXN0RmFpbGVkKCJjYWxsYmFjayBpbnZv
a2VkIGFmdGVyIGNhbmNlbCIpOworICAgIGNhbGxiYWNrRmlyZWQgPSB0cnVlOwogfSwgZSk7CiAK
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZGlzcGxheSgpOwogCitzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgIHNob3VsZEJlRmFs
c2UoImNhbGxiYWNrRmlyZWQiKTsKKyAgICBzaG91bGRCZVRydWUoImNhbmNlbEZpcmVkIik7Cit9
LCAxMDApOworCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKwogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7CisKK3NldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgaXNTdWNjZXNzZnVsbHlQYXJz
ZWQoKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9LCAyMDApOwpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNh
bmNlbC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQt
dGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsLmpzCShyZXZpc2lvbiA5MzI2OSkK
KysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1h
dGlvbi1mcmFtZS1jYW5jZWwuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMSw4IEBACiBkZXNj
cmlwdGlvbigiVGhpcyB0ZXN0cyBjYW5jZWxsaW5nIGEgd2Via2l0UmVxdWVzdEFuaW1hdGlvbkZy
YW1lIGNhbGxiYWNrIik7CiAKK3ZhciBjYWxsYmFja0ZpcmVkID0gZmFsc2U7CiB2YXIgZSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJlIik7CiB2YXIgaWQgPSB3aW5kb3cud2Via2l0UmVxdWVz
dEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgewotICAgIHRlc3RGYWlsZWQoImNhbGxiYWNrIGlu
dm9rZWQgYWZ0ZXIgY2FuY2VsbGVkIik7CiB9LCBlKTsKIAogd2luZG93LndlYmtpdENhbmNlbFJl
cXVlc3RBbmltYXRpb25GcmFtZShpZCk7CkBAIC0xMCw0ICsxMCwxNyBAQCB3aW5kb3cud2Via2l0
Q2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lCiBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmRpc3BsYXkoKTsKIAorc2V0VGltZW91dChm
dW5jdGlvbigpIHsKKyAgICBzaG91bGRCZUZhbHNlKCJjYWxsYmFja0ZpcmVkIik7Cit9LCAxMDAp
OworCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKwogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
CisKK3NldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsK
KyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9LCAyMDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRpc3BsYXku
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3Rz
L3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRpc3BsYXkuanMJKHJldmlzaW9uIDkzMjY5KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9u
LWZyYW1lLWRpc3BsYXkuanMJKHdvcmtpbmcgY29weSkKQEAgLTE1LDYgKzE1LDE3IEBAIHdpbmRv
dy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3QKIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZGlzcGxheSgpOwogCi1zaG91
bGRCZVRydWUoImNhbGxiYWNrSW52b2tlZE9uQSIpOworc2V0VGltZW91dChmdW5jdGlvbigpIHsK
KyAgICBzaG91bGRCZVRydWUoImNhbGxiYWNrSW52b2tlZE9uQSIpOworfSwgMTAwKTsKKworaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCitzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgeworICAgIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CisgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIubm90aWZ5RG9uZSgpOworfSwgMjAwKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0
aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1
ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLmpzCShyZXZpc2lvbiA5MzI2OSkKKysrIExh
eW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1m
cmFtZS10aW1lc3RhbXBzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCwxNyBAQCB3aW5k
b3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0CiBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmRpc3BsYXkoKTsKIAotc2hv
dWxkQmVEZWZpbmVkKCJmaXJzdFRpbWVzdGFtcCIpOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKK3Nl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgc2hvdWxkQmVEZWZpbmVkKCJmaXJzdFRpbWVzdGFt
cCIpOworfSwgMTAwKTsKIAogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKK3NldFRp
bWVvdXQoZnVuY3Rpb24oKSB7CisgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7Cit9LCAyMDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRp
b24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXdpdGhpbi1jYWxsYmFjay5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMv
cmVxdWVzdC1hbmltYXRpb24tZnJhbWUtd2l0aGluLWNhbGxiYWNrLmpzCShyZXZpc2lvbiA5MzI2
OSkKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS13aXRoaW4tY2FsbGJhY2suanMJKHdvcmtpbmcgY29weSkKQEAgLTIxLDQg
KzIxLDEzIEBAIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmRpc3BsYXkoKTsK
IAoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwor
CitzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7Cisg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworfSwgMjAwKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
YW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1h
bmltYXRpb24tZnJhbWUuanMJKHJldmlzaW9uIDkzMjY5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9h
bmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC05LDYgKzksMTcgQEAgd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFt
ZShmdW5jdAogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kaXNwbGF5KCk7CiAKLXNob3VsZEJlVHJ1ZSgiY2FsbGJhY2tJbnZva2VkIik7
CitzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgIHNob3VsZEJlVHJ1ZSgiY2FsbGJhY2tJbnZv
a2VkIik7Cit9LCAxMDApOworCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKwogdmFyIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7CiAKK3NldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgaXNTdWNjZXNz
ZnVsbHlQYXJzZWQoKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9LCAyMDApOwpJbmRleDog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1NraXBwZWQJKHJldmlzaW9uIDkzMjY5KQorKysgTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTMwNSw5ICszMDUsNiBAQCBl
ZGl0aW5nL3NlbGVjdGlvbi9jYXJldC1tb2RlLXBhcmFncmFwaC1rCiAjIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTgwNwogZmFzdC93cml0aW5nLW1vZGUvYnJva2Vu
LWlkZW9ncmFwaC1zbWFsbC1jYXBzLmh0bWwKIAotIyBSZXF1ZXN0IEVOQUJMRShSRVFVRVNUX0FO
SU1BVElPTl9GUkFNRSkgc3VwcG9ydAotZmFzdC9hbmltYXRpb24KLQogIyBUaGlzIHBvcnQgZG9l
c24ndCBzdXBwb3J0IHY4IGkxOG4gZXh0ZW5zaW9uLgogZmFzdC9qcy9pMThuLWJpbmRpbmdzLWxv
Y2FsZS5odG1sCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104915</attachid>
            <date>2011-08-23 14:18:04 -0700</date>
            <delta_ts>2011-08-26 16:55:54 -0700</delta_ts>
            <desc>Patch to fix chrome ews bot</desc>
            <filename>bug-59146-20110823141802.patch</filename>
            <type>text/plain</type>
            <size>58065</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzNjE4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTEtMDgtMjMgIENocmlzIE1h
cnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNdIHJlcXVlc3RBbmltYXRp
b25GcmFtZSBzdXBwb3J0IGZvciBtYWMgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkxNDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBFbmFibGUgUkVRVUVTVF9BTklNQVRJT05fRlJBTUUgbG9naWMg
YW5kIGFkZCBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIKKyAgICAgICAgdG8gYnVpbGQuIEFk
ZGVkIEphdmFTY3JpcHQgc3VwcG9ydCBmb3IgTWFjLCB0b28uCisKKyAgICAgICAgKiBDb2RlR2Vu
ZXJhdG9ycy5wcmk6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWc6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3Jl
LmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFja0N1c3Rv
bS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVD
YWxsYmFjazo6aGFuZGxlRXZlbnQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtOgorICAgICAgICAoQWRkSW5jbHVkZXNGb3JUeXBlKToKKyAgICAgICAgKiBk
b20vUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaWRsOgorICAgICAgICAqIGRvbS9TY3Jp
cHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0ZWRB
bmltYXRpb25Db250cm9sbGVyOjpyZXN1bWUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0ZWRB
bmltYXRpb25Db250cm9sbGVyOjpyZWdpc3RlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6c2NoZWR1bGVBbmltYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpzZXJ2aWNlU2NyaXB0ZWRB
bmltYXRpb25zKToKKyAgICAgICAgKiBkb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmg6
CisKIDIwMTEtMDctMjUgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgogCiAgICAg
ICAgIGRpdiBhbGlnbj0iY2VudGVyIiByZW5kZXJpbmcgcHJvYmxlbQpJbmRleDogU291cmNlL1dl
YkNvcmUvQ29kZUdlbmVyYXRvcnMucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Nv
ZGVHZW5lcmF0b3JzLnByaQkocmV2aXNpb24gOTMyNjkpCisrKyBTb3VyY2UvV2ViQ29yZS9Db2Rl
R2VuZXJhdG9ycy5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw2ICsxNjYsNyBAQCBJRExfQklO
RElOR1MgKz0gXAogICAgIGRvbS9Qcm9ncmVzc0V2ZW50LmlkbCBcCiAgICAgZG9tL1JhbmdlRXhj
ZXB0aW9uLmlkbCBcCiAgICAgZG9tL1JhbmdlLmlkbCBcCisgICAgZG9tL1JlcXVlc3RBbmltYXRp
b25GcmFtZUNhbGxiYWNrLmlkbCBcCiAgICAgZG9tL1N0cmluZ0NhbGxiYWNrLmlkbCBcCiAgICAg
ZG9tL1RleHQuaWRsIFwKICAgICBkb20vVGV4dEV2ZW50LmlkbCBcCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDkzMjY5KQorKysgU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMzUwLDYgKzM1MCw3IEBAIERPTV9D
TEFTU0VTID0gXAogICAgIFJhbmdlIFwKICAgICBSYW5nZUV4Y2VwdGlvbiBcCiAgICAgUmVjdCBc
CisgICAgUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2sgXAogICAgIFNoYXJlZFdvcmtlciBc
CiAgICAgU2hhcmVkV29ya2VyQ29udGV4dCBcCiAgICAgU2NyaXB0UHJvZmlsZSBcCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gOTMyNjkpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtOTY5LDYgKzk2OSw3IEBAIF9fWk43V2ViQ29y
ZTlGcmFtZVZpZXcyMWZsdXNoRGVmZXJyZWRSZXAKIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcyMnNl
dEJhc2VCYWNrZ3JvdW5kQ29sb3JFUktOU181Q29sb3JFCiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3
MjN1cGRhdGVDYW5IYXZlU2Nyb2xsYmFyc0V2CiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MjRmb3Jj
ZUxheW91dEZvclBhZ2luYXRpb25FUktOU185RmxvYXRTaXplRWZOU18xOUFkanVzdFZpZXdTaXpl
T3JOb3RFCitfX1pON1dlYkNvcmU5RnJhbWVWaWV3MjVzZXJ2aWNlU2NyaXB0ZWRBbmltYXRpb25z
RXkKIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcyNmFkanVzdFBhZ2VIZWlnaHREZXByZWNhdGVkRVBm
ZmZmCiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MjlzZXRTaG91bGRVcGRhdGVXaGlsZU9mZnNjcmVl
bkViCiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3Mzd1cGRhdGVMYXlvdXRBbmRTdHlsZUlmTmVlZGVk
UmVjdXJzaXZlRXYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRp
b25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCShyZXZpc2lvbiA5MzI2OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCSh3b3JraW5nIGNv
cHkpCkBAIC03OSw2ICs3OSw3IEBAIEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJID0gOwogRU5B
QkxFX1BST0dSRVNTX1RBRyA9IEVOQUJMRV9QUk9HUkVTU19UQUc7CiBFTkFCTEVfUVVPVEEgPSA7
CiBFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUiA9IDsKK0VOQUJMRV9SRVFVRVNUX0FO
SU1BVElPTl9GUkFNRSA9IEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRTsKIEVOQUJMRV9T
SEFSRURfV09SS0VSUyA9IEVOQUJMRV9TSEFSRURfV09SS0VSUzsKIEVOQUJMRV9TVkcgPSBFTkFC
TEVfU1ZHOwogRU5BQkxFX1NWR19BTklNQVRJT04gPSBFTkFCTEVfU1ZHX0FOSU1BVElPTjsKQEAg
LTk4LDQgKzk5LDQgQEAgRU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFCTEVfWFBBVEggPSBFTkFCTEVf
WFBBVEg7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAk
KEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChF
TkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNT
QUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfQ1NTM19G
TEVYQk9YKSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RB
VEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklDRV9PUklF
TlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0Up
ICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRklM
VEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVO
QUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lO
UFVUX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVC
VUdHRVIpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVf
TUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJ
T05TKSAkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklT
SUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVPVEEpICQoRU5B
QkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAk
KEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFH
RSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQo
RU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVE9V
Q0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQo
RU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAk
KEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAk
KEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJM
RV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVf
QU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcp
ICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfQ1NTM19GTEVYQk9Y
KSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RBVEFfVFJB
TlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElP
TikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5B
QkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykg
JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9J
Q09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX0NP
TE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIp
ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFf
U1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAk
KEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElU
WV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JF
R0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1F
KSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5J
TUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5E
SU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQo
RU5BQkxFX1NWR19VU0UpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVklE
RU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FV
RElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVf
V09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gOTMyNjkpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTExMzcsNiArMTEzNywxMiBA
QAogCQk0OTg3NzBGMjEyNDJDNTM1MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBEOTEyNDJDNTM1MDAy
MjI2QkEgLyogVGlsaW5nRGF0YS5jcHAgKi87IH07CiAJCTQ5ODc3MEYzMTI0MkM1MzUwMDIyMjZC
QSAvKiBUaWxpbmdEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0OTg3NzBEQTEyNDJDNTM1MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5oICovOyB9Owog
CQk0OTg3NzE1MzEyNDNGOUZBMDAyMjI2QkEgLyogRHJhd2luZ0J1ZmZlck1hYy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MTUyMTI0M0Y5RkEw
MDIyMjZCQSAvKiBEcmF3aW5nQnVmZmVyTWFjLm1tICovOyB9OworCQk0OTk4QUVDNjEzRjlEMEVB
MDA5MEIxQUEgLyogUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5OThBRUM0MTNGOUQwRUEwMDkwQjFB
QSAvKiBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oICovOyB9OworCQk0OTk4QUVDRDEz
RjlENkM5MDA5MEIxQUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTk4QUVDQjEzRjlE
NkM5MDA5MEIxQUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5jcHAgKi87IH07
CisJCTQ5OThBRUNFMTNGOUQ2QzkwMDkwQjFBQSAvKiBKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNh
bGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
OTk4QUVDQzEzRjlENkM5MDA5MEIxQUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFj
ay5oICovOyB9OworCQk0OTk4QUVEMTEzRkIyMjREMDA5MEIxQUEgLyogU2NyaXB0ZWRBbmltYXRp
b25Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ5OThBRUNGMTNGQjIyNEQwMDkwQjFBQSAvKiBTY3JpcHRlZEFuaW1hdGlvbkNvbnRy
b2xsZXIuY3BwICovOyB9OworCQk0OTk4QUVEMjEzRkIyMjREMDA5MEIxQUEgLyogU2NyaXB0ZWRB
bmltYXRpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0OTk4QUVEMDEzRkIyMjREMDA5MEIxQUEgLyogU2NyaXB0ZWRBbmltYXRpb25D
b250cm9sbGVyLmggKi87IH07CisJCTQ5OThBRUQ0MTNGQzQxN0YwMDkwQjFBQSAvKiBKU1JlcXVl
c3RBbmltYXRpb25GcmFtZUNhbGxiYWNrQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5OThBRUQzMTNGQzQxN0YwMDkwQjFBQSAvKiBKU1Jl
cXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrQ3VzdG9tLmNwcCAqLzsgfTsKIAkJNDk5QjNFQzUx
MjhDQ0M0NzAwRTcyNkMyIC8qIFBsYXRmb3JtQ0FMYXllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk5QjNFQzMxMjhDQ0M0NzAwRTcyNkMyIC8qIFBs
YXRmb3JtQ0FMYXllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTQ5OUIzRUQ2MTI4Q0QzMTQwMEU3MjZDMiAvKiBHcmFwaGljc0xheWVyQ0EuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk5QjNFRDQx
MjhDRDMxNDAwRTcyNkMyIC8qIEdyYXBoaWNzTGF5ZXJDQS5jcHAgKi87IH07CiAJCTQ5OUIzRUQ3
MTI4Q0QzMTQwMEU3MjZDMiAvKiBHcmFwaGljc0xheWVyQ0EuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5OUIzRUQ1MTI4Q0QzMTQwMEU3MjZDMiAvKiBH
cmFwaGljc0xheWVyQ0EuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtNzcyMiw2ICs3NzI4LDEzIEBACiAJCTQ5ODc3MEQ5MTI0MkM1MzUwMDIyMjZC
QSAvKiBUaWxpbmdEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IFRpbGluZ0RhdGEuY3BwOyBwYXRoID0gZ3B1L1RpbGluZ0RhdGEuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0OTg3NzBEQTEyNDJDNTM1MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBUaWxpbmdEYXRhLmg7IHBhdGggPSBn
cHUvVGlsaW5nRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTg3NzE1MjEy
NDNGOUZBMDAyMjI2QkEgLyogRHJhd2luZ0J1ZmZlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgbmFtZSA9IERyYXdpbmdCdWZmZXJNYWMubW07IHBhdGggPSBncHUvbWFj
L0RyYXdpbmdCdWZmZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5OThB
RUM0MTNGOUQwRUEwMDkwQjFBQSAvKiBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxs
YmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTk4QUVDNTEzRjlEMEVBMDA5
MEIxQUEgLyogUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDk5OEFFQ0IxM0Y5RDZDOTAwOTBCMUFBIC8qIEpTUmVxdWVzdEFu
aW1hdGlvbkZyYW1lQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQ5OThBRUNDMTNGOUQ2QzkwMDkwQjFBQSAvKiBKU1JlcXVlc3RBbmlt
YXRpb25GcmFtZUNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
UmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDk5OEFFQ0YxM0ZCMjI0RDAwOTBCMUFBIC8qIFNjcmlwdGVkQW5pbWF0aW9uQ29udHJv
bGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRlZEFu
aW1hdGlvbkNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTk4
QUVEMDEzRkIyMjREMDA5MEIxQUEgLyogU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTk4QUVEMzEzRkM0MTdGMDA5MEIx
QUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFja0N1c3RvbS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxi
YWNrQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk5QjNFQzMxMjhD
Q0M0NzAwRTcyNkMyIC8qIFBsYXRmb3JtQ0FMYXllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBQbGF0Zm9ybUNBTGF5ZXIuaDsgcGF0aCA9IGNhL1BsYXRmb3JtQ0FMYXllci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTlCM0VENDEyOENEMzE0MDBFNzI2QzIg
LyogR3JhcGhpY3NMYXllckNBLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IEdyYXBoaWNzTGF5ZXJDQS5jcHA7IHBhdGggPSBjYS9HcmFwaGljc0xheWVyQ0EuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTlCM0VENTEyOENEMzE0MDBFNzI2QzIgLyog
R3JhcGhpY3NMYXllckNBLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEdyYXBo
aWNzTGF5ZXJDQS5oOyBwYXRoID0gY2EvR3JhcGhpY3NMYXllckNBLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xNzM2Myw2ICsxNzM3Niw4IEBACiAJCQkJNjVERjMxRUMwOUQxQ0M2
MDAwMEJFMzI1IC8qIEpTUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggKi8sCiAJCQkJRTRCNDIzODUw
Q0JGQjczQzAwQUYyRUNFIC8qIEpTUHJvZ3Jlc3NFdmVudC5jcHAgKi8sCiAJCQkJRTRCNDIzODYw
Q0JGQjczQzAwQUYyRUNFIC8qIEpTUHJvZ3Jlc3NFdmVudC5oICovLAorCQkJCTQ5OThBRUNCMTNG
OUQ2QzkwMDkwQjFBQSAvKiBKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmNwcCAqLywK
KwkJCQk0OTk4QUVDQzEzRjlENkM5MDA5MEIxQUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVD
YWxsYmFjay5oICovLAogCQkJCTQ5QkUzMEYxMTNEOTc2NDYwMDM4MDhBOSAvKiBKU1NpZ25hbGlu
Z0NhbGxiYWNrLmNwcCAqLywKIAkJCQk0OUJFMzBGMjEzRDk3NjQ2MDAzODA4QTkgLyogSlNTaWdu
YWxpbmdDYWxsYmFjay5oICovLAogCQkJCTc1NDE1RDRGMTI5QUIyRDIwMDNBRDY2OSAvKiBKU1Nw
ZWVjaElucHV0RXZlbnQuY3BwICovLApAQCAtMTg3MjIsNiArMTg3MzcsNyBAQAogCQkJCUJDRDlD
MjYxMEMxN0FBNjcwMDVDOTBBMiAvKiBKU05vZGVMaXN0Q3VzdG9tLmNwcCAqLywKIAkJCQk0OUJF
MzBEMTEzRDk3NDdCMDAzODA4QTkgLyogSlNQZWVyQ29ubmVjdGlvbkN1c3RvbS5jcHAgKi8sCiAJ
CQkJRTFBRDEyRDUxMjk1RDBCRDAwQUNBOTg5IC8qIEpTUHJvY2Vzc2luZ0luc3RydWN0aW9uQ3Vz
dG9tLmNwcCAqLywKKwkJCQk0OTk4QUVEMzEzRkM0MTdGMDA5MEIxQUEgLyogSlNSZXF1ZXN0QW5p
bWF0aW9uRnJhbWVDYWxsYmFja0N1c3RvbS5jcHAgKi8sCiAJCQkJOUZBMzdFRTYxMTcyRkNGMDAw
QzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGVDdXN0b20uY3BwICovLAogCQkJCTUxRENFODAx
MENBQzlGMUMwMDQ4ODM1OCAvKiBKU1NRTFJlc3VsdFNldFJvd0xpc3RDdXN0b20uY3BwICovLAog
CQkJCTFBRDIzMTZEMENEMjY5RTcwMEMxRjE5NCAvKiBKU1NRTFRyYW5zYWN0aW9uQ3VzdG9tLmNw
cCAqLywKQEAgLTE5OTk3LDEwICsyMDAxMywxNCBAQAogCQkJCTg1MDMxQjM1MEE0NEVGQzcwMEY5
OTJFMCAvKiBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5jcHAgKi8sCiAJCQkJODUwMzFCMzYwQTQ0
RUZDNzAwRjk5MkUwIC8qIFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyLmggKi8sCiAJCQkJQTc2RTVG
N0UxMzVFMERDRjAwQTY5ODM3IC8qIFJlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCAqLywKKwkJCQk0
OTk4QUVDNDEzRjlEMEVBMDA5MEIxQUEgLyogUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2su
aCAqLywKKwkJCQk0OTk4QUVDNTEzRjlEMEVBMDA5MEIxQUEgLyogUmVxdWVzdEFuaW1hdGlvbkZy
YW1lQ2FsbGJhY2suaWRsICovLAogCQkJCTlCRDBCRjkyMTJBNDJCRjUwMDcyRkQ0MyAvKiBTY29w
ZWRFdmVudFF1ZXVlLmNwcCAqLywKIAkJCQk5QkQwQkY5MTEyQTQyQkY1MDA3MkZENDMgLyogU2Nv
cGVkRXZlbnRRdWV1ZS5oICovLAogCQkJCUE4NEQ4MkMwMTFEMzQ3NDgwMDk3Mjk5MCAvKiBTY3Jp
cHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwICovLAogCQkJCUE4NEQ4MkJGMTFEMzQ3NDgwMDk3Mjk5
MCAvKiBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuaCAqLywKKwkJCQk0OTk4QUVDRjEzRkIyMjRE
MDA5MEIxQUEgLyogU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcCAqLywKKwkJCQk0OTk4
QUVEMDEzRkIyMjREMDA5MEIxQUEgLyogU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmggKi8s
CiAJCQkJMDhBNDg0NzUwRTUyNzJDNTAwQzNGRTc2IC8qIFNjcmlwdEVsZW1lbnQuY3BwICovLAog
CQkJCTA4QTQ4NDc2MEU1MjcyQzUwMEMzRkU3NiAvKiBTY3JpcHRFbGVtZW50LmggKi8sCiAJCQkJ
RTExQzlEQUYwRUIzNjk5NTAwRTQwOURCIC8qIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwICov
LApAQCAtMjMzODYsNiArMjM0MDYsOSBAQAogCQkJCUJDQkI4QUJCMTNGMUFGQjAwMDczNERGMCAv
KiBQT0RSZWRCbGFja1RyZWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZENkYyNTJEMTNGNUVGMEUw
MDY1MTY1RiAvKiBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUZEMjNBMTI2MTNGNUZBNTkwMEY2NzAwMSAvKiBKU01lZGlhRWxlbWVudEF1ZGlvU291cmNl
Tm9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDk5OEFFQzYxM0Y5RDBFQTAwOTBCMUFBIC8qIFJl
cXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk0OTk4QUVD
RTEzRjlENkM5MDA5MEIxQUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNDk5OEFFRDIxM0ZCMjI0RDAwOTBCMUFBIC8qIFNjcmlwdGVkQW5p
bWF0aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREY5QUZENzIxM0ZDMzFEODAw
MTVGRUI3IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBpbiBIZWFkZXJz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpA
QCAtMjYxODgsNiArMjYyMTEsOSBAQAogCQkJCTU5REU3OTA0MTNGMTZDN0YwMDA3RkNERiAvKiBK
YXZhTWV0aG9kSlNDLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZENkYyNTJDMTNGNUVGMEUwMDY1
MTY1RiAvKiBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRkQyM0ExMjUxM0Y1RkE1OTAwRjY3MDAxIC8qIEpTTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VO
b2RlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQ5OThBRUNEMTNGOUQ2QzkwMDkwQjFBQSAvKiBK
U1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQ5
OThBRUQxMTNGQjIyNEQwMDkwQjFBQSAvKiBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJNDk5OEFFRDQxM0ZDNDE3RjAwOTBCMUFBIC8qIEpTUmVxdWVz
dEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2tDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEx
NDE0QjUxM0EwRjA1MDAwMTk5OTZDIC8qIFdlYktpdEZvbnRGYW1pbHlOYW1lcy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlERjlBRkQ3MzEzRkMzMUQ4MDAxNUZFQjcgLyogTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2tDdXN0
b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVxdWVz
dEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2tDdXN0b20uY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFja0N1c3Rv
bS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCisKKyNp
bmNsdWRlICJKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmgiCisKK3VzaW5nIG5hbWVz
cGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworYm9vbCBKU1JlcXVlc3RBbmltYXRp
b25GcmFtZUNhbGxiYWNrOjpoYW5kbGVFdmVudChET01UaW1lU3RhbXAgdGltZSkKK3sKKyAgICBp
ZiAoIWNhbkludm9rZUNhbGxiYWNrKCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgUmVm
UHRyPEpTUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2s+IHByb3RlY3QodGhpcyk7CisKKyAg
ICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOworCisgICAgTWFya2VkQXJndW1l
bnRCdWZmZXIgYXJnczsKKyAgICBhcmdzLmFwcGVuZChqc051bWJlcih0aW1lKSk7CisKKyAgICBi
b29sIHJhaXNlZEV4Y2VwdGlvbiA9IGZhbHNlOworICAgIG1fZGF0YS0+aW52b2tlQ2FsbGJhY2so
YXJncywgJnJhaXNlZEV4Y2VwdGlvbik7CisgICAgcmV0dXJuICFyYWlzZWRFeGNlcHRpb247Cit9
CisKK30KKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gOTMyNjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQpA
QCAtMjc5LDcgKzI3OSw3IEBAIHN1YiBBZGRJbmNsdWRlc0ZvclR5cGUKICAgICAjIFdoZW4gd2Un
cmUgZmluaXNoZWQgd2l0aCB0aGUgb25lLWZpbGUtcGVyLWNsYXNzCiAgICAgIyByZW9yZ2FuaXph
dGlvbiwgd2Ugd29uJ3QgbmVlZCB0aGVzZSBzcGVjaWFsIGNhc2VzLgogICAgIGlmICgkY29kZUdl
bmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCR0eXBlKSBvciAkY29kZUdlbmVyYXRvci0+QXZvaWRJ
bmNsdXNpb25PZlR5cGUoJHR5cGUpCi0gICAgICAgIG9yICR0eXBlIGVxICJET01TdHJpbmciIG9y
ICR0eXBlIGVxICJET01PYmplY3QiIG9yICR0eXBlIGVxICJBcnJheSIpIHsKKyAgICAgICAgb3Ig
JHR5cGUgZXEgIkRPTVN0cmluZyIgb3IgJHR5cGUgZXEgIkRPTU9iamVjdCIgb3IgJHR5cGUgZXEg
IkFycmF5IiBvciAkdHlwZSBlcSAiRE9NVGltZVN0YW1wIikgewogICAgIH0gZWxzaWYgKCR0eXBl
ID1+IC9TVkdQYXRoU2VnLykgewogICAgICAgICAkam9pbmVkTmFtZSA9ICR0eXBlOwogICAgICAg
ICAkam9pbmVkTmFtZSA9fiBzL0Fic3xSZWwvLzsKQEAgLTI1NTgsNyArMjU1OCw4IEBAIG15ICVu
YXRpdmVUeXBlID0gKAogICAgICJ1bnNpZ25lZCBzaG9ydCIgPT4gInVuc2lnbmVkIHNob3J0IiwK
ICAgICAibG9uZyBsb25nIiA9PiAibG9uZyBsb25nIiwKICAgICAidW5zaWduZWQgbG9uZyBsb25n
IiA9PiAidW5zaWduZWQgbG9uZyBsb25nIiwKLSAgICAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciIg
PT4gIlJlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiIKKyAgICAiTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lciIgPT4gIlJlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiIsCisgICAgIkRPTVRp
bWVTdGFtcCIgPT4gIkRPTVRpbWVTdGFtcCIKICk7CiAKIHN1YiBHZXROYXRpdmVUeXBlCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9kb20vUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9SZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxs
YmFjay5pZGwJKHJldmlzaW9uIDkzMjY5KQorKysgU291cmNlL1dlYkNvcmUvZG9tL1JlcXVlc3RB
bmltYXRpb25GcmFtZUNhbGxiYWNrLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsMTEg
QEAgbW9kdWxlIGNvcmUgewogICAgICAgICBDYWxsYmFjaz1GdW5jdGlvbk9ubHksCiAgICAgICAg
IENvbmRpdGlvbmFsPVJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FLAogICAgIF0gUmVxdWVzdEFuaW1h
dGlvbkZyYW1lQ2FsbGJhY2t7CisjaWYgZGVmaW5lZChWOF9CSU5ESU5HKSAmJiBWOF9CSU5ESU5H
CiAgICAgICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4gRE9NVGltZVN0YW1wIHRpbWUpOworI2Vs
c2UKKyAgICAgICAgW0N1c3RvbV0gYm9vbGVhbiBoYW5kbGVFdmVudChpbiBET01UaW1lU3RhbXAg
dGltZSk7CisjZW5kaWYKKyAgICAgICAgCiAgICAgfTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA5
MzI2OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSw4ICs1MSw3IEBAIHZvaWQgU2NyaXB0ZWRBbmltYXRp
b25Db250cm9sbGVyOjpyZXN1bWUKIHsKICAgICAtLW1fc3VzcGVuZENvdW50OwogICAgIGlmICgh
bV9zdXNwZW5kQ291bnQgJiYgbV9jYWxsYmFja3Muc2l6ZSgpKQotICAgICAgICBpZiAoRnJhbWVW
aWV3KiBmdiA9IG1fZG9jdW1lbnQtPnZpZXcoKSkKLSAgICAgICAgICAgIGZ2LT5zY2hlZHVsZUFu
aW1hdGlvbigpOworICAgICAgICBzY2hlZHVsZUFuaW1hdGlvbigpOwogfQogCiBTY3JpcHRlZEFu
aW1hdGlvbkNvbnRyb2xsZXI6OkNhbGxiYWNrSWQgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVy
OjpyZWdpc3RlckNhbGxiYWNrKFBhc3NSZWZQdHI8UmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJh
Y2s+IGNhbGxiYWNrLCBFbGVtZW50KiBhbmltYXRpb25FbGVtZW50KQpAQCAtNjMsOCArNjIsNyBA
QCBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6OkNhbGxiYWNrSWQgCiAgICAgY2FsbGJhY2st
Pm1fZWxlbWVudCA9IGFuaW1hdGlvbkVsZW1lbnQ7CiAgICAgbV9jYWxsYmFja3MuYXBwZW5kKGNh
bGxiYWNrKTsKICAgICBpZiAoIW1fc3VzcGVuZENvdW50KQotICAgICAgICBpZiAoRnJhbWVWaWV3
KiB2aWV3ID0gbV9kb2N1bWVudC0+dmlldygpKQotICAgICAgICAgICAgdmlldy0+c2NoZWR1bGVB
bmltYXRpb24oKTsKKyAgICAgICAgc2NoZWR1bGVBbmltYXRpb24oKTsKICAgICByZXR1cm4gaWQ7
CiB9CiAKQEAgLTc5LDYgKzc3LDEyIEBAIHZvaWQgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVy
OjpjYW5jZWwKICAgICB9CiB9CiAKK3ZvaWQgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpz
Y2hlZHVsZUFuaW1hdGlvbigpCit7CisgICAgaWYgKEZyYW1lVmlldyogdmlldyA9IG1fZG9jdW1l
bnQtPnZpZXcoKSkKKyAgICAgICAgdmlldy0+c2NoZWR1bGVBbmltYXRpb24oKTsKK30KKwogdm9p
ZCBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6OnNlcnZpY2VTY3JpcHRlZEFuaW1hdGlvbnMo
RE9NVGltZVN0YW1wIHRpbWUpCiB7CiAgICAgaWYgKCFtX2NhbGxiYWNrcy5zaXplKCkgfHwgbV9z
dXNwZW5kQ291bnQpCkBAIC0xMjQsOCArMTI4LDcgQEAgdm9pZCBTY3JpcHRlZEFuaW1hdGlvbkNv
bnRyb2xsZXI6OnNlcnZpYwogICAgIH0KIAogICAgIGlmIChtX2NhbGxiYWNrcy5zaXplKCkpCi0g
ICAgICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBtX2RvY3VtZW50LT52aWV3KCkpCi0gICAgICAg
ICAgICB2aWV3LT5zY2hlZHVsZUFuaW1hdGlvbigpOworICAgICAgICBzY2hlZHVsZUFuaW1hdGlv
bigpOwogfQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0ZWRBbmltYXRpb25D
b250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5p
bWF0aW9uQ29udHJvbGxlci5oCShyZXZpc2lvbiA5MzI2OSkKKysrIFNvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiAr
MzEsMTEgQEAKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUGFz
c093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworI2lmIFBMQVRGT1JNKE1BQykK
KyNpbmNsdWRlICJUaW1lci5oIgorI2VuZGlmCisKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUxLDYgKzU2LDcgQEAgcHVibGljOgogCiAgICAgQ2Fs
bGJhY2tJZCByZWdpc3RlckNhbGxiYWNrKFBhc3NSZWZQdHI8UmVxdWVzdEFuaW1hdGlvbkZyYW1l
Q2FsbGJhY2s+LCBFbGVtZW50Kik7CiAgICAgdm9pZCBjYW5jZWxDYWxsYmFjayhDYWxsYmFja0lk
KTsKKyAgICB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCk7CiAgICAgdm9pZCBzZXJ2aWNlU2NyaXB0
ZWRBbmltYXRpb25zKERPTVRpbWVTdGFtcCk7CiAKICAgICB2b2lkIHN1c3BlbmQoKTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cJKHJldmlzaW9uIDkzNjE4KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMDgtMjMgIENocmlzIE1hcnJpbiAg
PGNtYXJyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNdIHJlcXVlc3RBbmltYXRpb25GcmFt
ZSBzdXBwb3J0IGZvciBtYWMgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTkxNDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbXBsZW1lbnQgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIGZvciBXZWJLaXQy
LiBBZGQgYQorICAgICAgICBDRlJ1bkxvb3BPYnNlcnZlciB0byBXZWJQYWdlLCB3aGljaCBydW5z
IGp1c3QgYmVmb3JlCisgICAgICAgIHRoZSBzeW5jQ29tcG9zaXRpbmdTdGF0ZSBSTE8gYW5kIGNh
bGxzIGludG8gdGhlIAorICAgICAgICBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIgaWYgc2No
ZWR1bGVBbmltYXRpb24oKSBoYXMKKyAgICAgICAgYmVlbiBjYWxsZWQuCisKKyAgICAgICAgKiBD
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkNocm9tZUNsaWVudDo6c2NoZWR1bGVBbmltYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6fldlYlBhZ2UpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9XZWJQYWdlTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXF1ZXN0QW5pbWF0
aW9uRnJhbWVSdW5Mb29wT2JzZXJ2ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OnNjaGVkdWxlQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dW5zY2hl
ZHVsZUFuaW1hdGlvbik6CisKIDIwMTEtMDgtMjMgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bn
b29nbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBhbGwgbWVudGlvbiBvZiByZW1vdmVkIEFuZHJv
aWQgZmlsZXMgZnJvbSBidWlsZCBzY3JpcHRzCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2aXNpb24gOTMy
NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZwkod29ya2luZyBjb3B5KQpAQCAtNzksNiArNzksNyBAQCBFTkFCTEVfUEFHRV9WSVNJQklM
SVRZX0FQSSA9IDsKIEVOQUJMRV9QUk9HUkVTU19UQUcgPSBFTkFCTEVfUFJPR1JFU1NfVEFHOwog
RU5BQkxFX1FVT1RBID0gOwogRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIgPSA7CitF
TkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUgPSBFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05f
RlJBTUU7CiBFTkFCTEVfU0hBUkVEX1dPUktFUlMgPSBFTkFCTEVfU0hBUkVEX1dPUktFUlM7CiBF
TkFCTEVfU1ZHID0gRU5BQkxFX1NWRzsKIEVOQUJMRV9TVkdfQU5JTUFUSU9OID0gRU5BQkxFX1NW
R19BTklNQVRJT047CkBAIC05OCw0ICs5OSw0IEBAIEVOQUJMRV9YSFRNTE1QID0gOwogRU5BQkxF
X1hQQVRIID0gRU5BQkxFX1hQQVRIOwogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVB
VFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRF
RF8yRF9DQU5WQVMpICQoRU5BQkxFX0FOSU1BVElPTl9BUEkpICQoRU5BQkxFX0JMT0IpICQoRU5B
QkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04p
ICQoRU5BQkxFX0NTUzNfRkxFWEJPWCkgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RBVEFM
SVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTKSAkKEVO
QUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5B
QkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNPVVJDRSkgJChFTkFCTEVfRklMRV9TWVNU
RU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9H
RU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFC
QVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJM
RV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9N
QVRITUwpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX1RBRykgJChF
TkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAk
KEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5B
QkxFX1FVT1RBKSAkKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9T
SEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5JTUFUSU9OKSAkKEVO
QUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFC
TEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQoRU5BQkxFX1NWR19V
U0UpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVklERU8pICQoRU5BQkxF
X1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJM
RV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV09SS0VSUykgJChF
TkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9E
RUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9D
QU5WQVMpICQoRU5BQkxFX0FOSU1BVElPTl9BUEkpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NI
QU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5B
QkxFX0NTUzNfRkxFWEJPWCkgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RBVEFMSVNUKSAk
KEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTKSAkKEVOQUJMRV9E
RVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RP
TV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNPVVJDRSkgJChFTkFCTEVfRklMRV9TWVNURU0pICQo
RU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HRU9MT0NB
VElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAk
KEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9KQVZB
U0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwp
ICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVf
Tk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJM
RV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1FV
T1RBKSAkKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9SRVFVRVNU
X0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NWRykg
JChFTkFCTEVfU1ZHX0FOSU1BVElPTikgJChFTkFCTEVfU1ZHX0FTX0lNQUdFKSAkKEVOQUJMRV9T
VkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfU1ZHX0ZP
UkVJR05fT0JKRUNUKSAkKEVOQUJMRV9TVkdfVVNFKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJ
TkcpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfV0VCR0wp
ICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9U
SU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRI
KSAkKEVOQUJMRV9YU0xUKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAJKHJldmlzaW9u
IDkzMjY5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NTgsNiArNjU4LDExIEBAIHZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpzZXRDdXJzb3JIaWRkZW5VbnQKICAgICBtX3BhZ2UtPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGhpZGRl
blVudGlsTW91c2VNb3ZlcykpOwogfQogCit2b2lkIFdlYkNocm9tZUNsaWVudDo6c2NoZWR1bGVB
bmltYXRpb24oKQoreworICAgIG1fcGFnZS0+c2NoZWR1bGVBbmltYXRpb24oKTsKK30KKwogdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OmZvcm1TdGF0ZURpZENoYW5nZShjb25zdCBOb2RlKikKIHsKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCShyZXZpc2lvbiA5
MzI2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE3NCw2ICsxNzQsMTAgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCk7CiAKKyNp
ZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCisgICAgICAgIHZpcnR1YWwgdm9pZCBz
Y2hlZHVsZUFuaW1hdGlvbigpOworI2VuZGlmCisKICAgICAvLyBOb3RpZmljYXRpb24gdGhhdCB0
aGUgZ2l2ZW4gZm9ybSBlbGVtZW50IGhhcyBjaGFuZ2VkLiBUaGlzIGZ1bmN0aW9uCiAgICAgLy8g
d2lsbCBiZSBjYWxsZWQgZnJlcXVlbnRseSwgc28gaGFuZGxpbmcgc2hvdWxkIGJlIHZlcnkgZmFz
dC4KICAgICB2aXJ0dWFsIHZvaWQgZm9ybVN0YXRlRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6Ok5v
ZGUqKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAJKHJldmlzaW9uIDkzMjY5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzYsNiArMTc2LDkgQEAgV2ViUGFn
ZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IAogICAgICwgbV93aW5kb3dJc1Zpc2li
bGUoZmFsc2UpCiAgICAgLCBtX2lzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKHBhcmFtZXRlcnMu
aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQpCiAgICAgLCBtX2tleWJvYXJkRXZlbnRCZWluZ0lu
dGVycHJldGVkKDApCisjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQorICAgICwg
bV9hbmltYXRpb25TY2hlZHVsZWQoZmFsc2UpCisjZW5kaWYKICNlbGlmIFBMQVRGT1JNKFdJTikK
ICAgICAsIG1fbmF0aXZlV2luZG93KHBhcmFtZXRlcnMubmF0aXZlV2luZG93KQogI2VuZGlmCkBA
IC0yNjMsNiArMjY2LDEyIEBAIFdlYlBhZ2U6On5XZWJQYWdlKCkKIAogI2lmIFBMQVRGT1JNKE1B
QykKICAgICBBU1NFUlQobV9wbHVnaW5WaWV3cy5pc0VtcHR5KCkpOworCisjaWYgRU5BQkxFKFJF
UVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQorICAgIHVuc2NoZWR1bGVBbmltYXRpb24oKTsKKyAgICBB
U1NFUlQoIW1fcmVxdWVzdEFuaW1hdGlvbkZyYW1lUnVuTG9vcE9ic2VydmVyKTsKKyNlbmRpZgor
CiAjZW5kaWYKIAogI2lmbmRlZiBOREVCVUcKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkocmV2aXNpb24gOTMyNjkpCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNTEsNiAr
MzUxLDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHNob3VsZERlbGF5V2luZG93T3JkZXJpbmdFdmVu
dChjb25zdCBXZWJLaXQ6OldlYk1vdXNlRXZlbnQmLCBib29sJiByZXN1bHQpOwogICAgIHZvaWQg
YWNjZXB0c0ZpcnN0TW91c2UoaW50IGV2ZW50TnVtYmVyLCBjb25zdCBXZWJLaXQ6OldlYk1vdXNl
RXZlbnQmLCBib29sJiByZXN1bHQpOwogICAgIGJvb2wgcGVyZm9ybU5vbkVkaXRpbmdCZWhhdmlv
ckZvclNlbGVjdG9yKGNvbnN0IFN0cmluZyYpOworCisjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFU
SU9OX0ZSQU1FKQorICAgIHZvaWQgc2NoZWR1bGVBbmltYXRpb24oKTsKKyAgICB2b2lkIHVuc2No
ZWR1bGVBbmltYXRpb24oKTsKKyNlbmRpZgogI2VsaWYgUExBVEZPUk0oV0lOKQogICAgIHZvaWQg
Y29uZmlybUNvbXBvc2l0aW9uKGNvbnN0IFN0cmluZyYgY29tcG9zaXRpb25TdHJpbmcpOwogICAg
IHZvaWQgc2V0Q29tcG9zaXRpb24oY29uc3QgV1RGOjpTdHJpbmcmIGNvbXBvc2l0aW9uU3RyaW5n
LCBjb25zdCBXVEY6OlZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVybGluZT4mIHVuZGVy
bGluZXMsIHVpbnQ2NF90IGN1cnNvclBvc2l0aW9uKTsKQEAgLTYwOSw2ICs2MTQsMTIgQEAgcHJp
dmF0ZToKIAogICAgIFdlYkNvcmU6OktleWJvYXJkRXZlbnQqIG1fa2V5Ym9hcmRFdmVudEJlaW5n
SW50ZXJwcmV0ZWQ7CiAKKyNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCisgICAg
c3RhdGljIHZvaWQgcmVxdWVzdEFuaW1hdGlvbkZyYW1lUnVuTG9vcE9ic2VydmVyQ2FsbGJhY2so
Q0ZSdW5Mb29wT2JzZXJ2ZXJSZWYsIENGUnVuTG9vcEFjdGl2aXR5LCB2b2lkKik7CisgICAgUmV0
YWluUHRyPENGUnVuTG9vcE9ic2VydmVyUmVmPiBtX3JlcXVlc3RBbmltYXRpb25GcmFtZVJ1bkxv
b3BPYnNlcnZlcjsKKyAgICBib29sIG1fYW5pbWF0aW9uU2NoZWR1bGVkOworI2VuZGlmCisKICNl
bGlmIFBMQVRGT1JNKFdJTikKICAgICAvLyBPdXIgdmlldydzIHdpbmRvdyAoaW4gdGhlIFVJIHBy
b2Nlc3MpLgogICAgIEhXTkQgbV9uYXRpdmVXaW5kb3c7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCShyZXZpc2lvbiA5
MzI2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1h
Yy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTgzLDYgKzU4Myw1MCBAQCBib29sIFdlYlBhZ2U6OnBl
cmZvcm1Ob25FZGl0aW5nQmVoYXZpb3JGCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKKyNpZiBFTkFC
TEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCit2b2lkIFdlYlBhZ2U6OnJlcXVlc3RBbmltYXRp
b25GcmFtZVJ1bkxvb3BPYnNlcnZlckNhbGxiYWNrKENGUnVuTG9vcE9ic2VydmVyUmVmLCBDRlJ1
bkxvb3BBY3Rpdml0eSwgdm9pZCogY29udGV4dCkKK3sKKyAgICBXZWJQYWdlKiB3ZWJQYWdlID0g
c3RhdGljX2Nhc3Q8V2ViUGFnZSo+KGNvbnRleHQpOworICAgIGlmICghd2ViUGFnZS0+bV9hbmlt
YXRpb25TY2hlZHVsZWQpCisgICAgICAgIHJldHVybjsKKworICAgIHdlYlBhZ2UtPm1fYW5pbWF0
aW9uU2NoZWR1bGVkID0gZmFsc2U7CisgICAgCisgICAgLy8gVGhpcyBnZXRzIGNhbGxlZCBvdXRz
aWRlIG9mIHRoZSBub3JtYWwgZXZlbnQgbG9vcCBzbyB3cmFwIGluIGFuIGF1dG9yZWxlYXNlIHBv
b2wKKyAgICBOU0F1dG9yZWxlYXNlUG9vbCAqcG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxs
b2NdIGluaXRdOworICAgIHdlYlBhZ2UtPmNvcmVQYWdlKCktPm1haW5GcmFtZSgpLT52aWV3KCkt
PnNlcnZpY2VTY3JpcHRlZEFuaW1hdGlvbnMoY29udmVydFNlY29uZHNUb0RPTVRpbWVTdGFtcChj
dXJyZW50VGltZSgpKSk7CisgICAgW3Bvb2wgZHJhaW5dOworfQorCit2b2lkIFdlYlBhZ2U6OnNj
aGVkdWxlQW5pbWF0aW9uKCkKK3sKKyAgICBpZiAoIW1fcmVxdWVzdEFuaW1hdGlvbkZyYW1lUnVu
TG9vcE9ic2VydmVyKSB7CisgICAgICAgIENGUnVuTG9vcFJlZiBjdXJyZW50UnVuTG9vcCA9IENG
UnVuTG9vcEdldEN1cnJlbnQoKTsKKyAgICAKKyAgICAgICAgLy8gTWFrZSBzdXJlIHdlIHdha2Ug
dXAgdGhlIGxvb3Agb3IgdGhlIG9ic2VydmVyIGNvdWxkIGJlIGRlbGF5ZWQgdW50aWwgc29tZSBv
dGhlciBzb3VyY2UgZmlyZXMuCisgICAgICAgIENGUnVuTG9vcFdha2VVcChjdXJyZW50UnVuTG9v
cCk7CisKKyAgICAgICAgLy8gUnVuIGJlZm9yZSB0aGUgZmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2Vz
UnVuTG9vcE9ic2VydmVyLCB3aGljaCBoYXMgb3JkZXIgMjAwMDAwMCAtIDEuCisgICAgICAgIGNv
bnN0IENGSW5kZXggcnVuTG9vcE9yZGVyID0gMjAwMDAwMCAtIDI7CisgICAgICAgIENGUnVuTG9v
cE9ic2VydmVyQ29udGV4dCBjb250ZXh0ID0geyAwLCB0aGlzLCAwLCAwLCAwIH07CisgICAgICAg
IG1fcmVxdWVzdEFuaW1hdGlvbkZyYW1lUnVuTG9vcE9ic2VydmVyLmFkb3B0Q0YoQ0ZSdW5Mb29w
T2JzZXJ2ZXJDcmVhdGUoMCwga0NGUnVuTG9vcEJlZm9yZVdhaXRpbmcgfCBrQ0ZSdW5Mb29wRXhp
dCwgdHJ1ZSwgcnVuTG9vcE9yZGVyLCByZXF1ZXN0QW5pbWF0aW9uRnJhbWVSdW5Mb29wT2JzZXJ2
ZXJDYWxsYmFjaywgJmNvbnRleHQpKTsKKworICAgICAgICBDRlJ1bkxvb3BBZGRPYnNlcnZlcihj
dXJyZW50UnVuTG9vcCwgbV9yZXF1ZXN0QW5pbWF0aW9uRnJhbWVSdW5Mb29wT2JzZXJ2ZXIuZ2V0
KCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7CisgICAgfQorICAgIAorICAgIG1fYW5pbWF0aW9u
U2NoZWR1bGVkID0gdHJ1ZTsgICAgCit9CisKK3ZvaWQgV2ViUGFnZTo6dW5zY2hlZHVsZUFuaW1h
dGlvbigpCit7CisgICAgbV9hbmltYXRpb25TY2hlZHVsZWQgPSBmYWxzZTsKKyAgICBpZiAobV9y
ZXF1ZXN0QW5pbWF0aW9uRnJhbWVSdW5Mb29wT2JzZXJ2ZXIpIHsKKyAgICAgICAgQ0ZSdW5Mb29w
T2JzZXJ2ZXJJbnZhbGlkYXRlKG1fcmVxdWVzdEFuaW1hdGlvbkZyYW1lUnVuTG9vcE9ic2VydmVy
LmdldCgpKTsKKyAgICAgICAgbV9yZXF1ZXN0QW5pbWF0aW9uRnJhbWVSdW5Mb29wT2JzZXJ2ZXIg
PSBudWxscHRyOworICAgIH0KK30KKyNlbmRpZgorCiBib29sIFdlYlBhZ2U6OnBlcmZvcm1EZWZh
dWx0QmVoYXZpb3JGb3JLZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50JikKIHsKICAgICBy
ZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5MzYxOCkKKysrIFNv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBA
CisyMDExLTA4LTIzICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KKworICAgICAg
ICBbbWFjXSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgc3VwcG9ydCBmb3IgbWFjIHBvcnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MTQ2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHJlcXVl
c3RBbmltYXRpb25GcmFtZSBmb3IgV2ViS2l0LiBBZGQgYQorICAgICAgICBDRlJ1bkxvb3BPYnNl
cnZlciB0byBXZWJWaWV3LCB3aGljaCBydW5zIGp1c3QgYmVmb3JlCisgICAgICAgIHRoZSBzeW5j
Q29tcG9zaXRpbmdTdGF0ZSBSTE8gYW5kIGNhbGxzIGludG8gdGhlIAorICAgICAgICBTY3JpcHRl
ZEFuaW1hdGlvbkNvbnRyb2xsZXIgaWYgc2NoZWR1bGVBbmltYXRpb24oKSBoYXMKKyAgICAgICAg
YmVlbiBjYWxsZWQuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZzoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJD
aHJvbWVDbGllbnQ6OnNjaGVkdWxlQW5pbWF0aW9uKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZp
ZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX2Nsb3NlXSk6CisgICAgICAgICgtW1dlYlZpZXcg
X3Vuc2NoZWR1bGVBbmltYXRpb25dKToKKyAgICAgICAgKC1bV2ViVmlldyBfc2NoZWR1bGVDb21w
b3NpdGluZ0xheWVyU3luY10pOgorICAgICAgICAocmVxdWVzdEFuaW1hdGlvbkZyYW1lUnVuTG9v
cE9ic2VydmVyQ2FsbGJhY2spOgorICAgICAgICAoLVtXZWJWaWV3IF9zY2hlZHVsZUFuaW1hdGlv
bl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0RhdGEuaDoKKyAgICAgICAgKiBXZWJWaWV3
L1dlYlZpZXdJbnRlcm5hbC5oOgorCiAyMDExLTA4LTE4ICBCZXRoIERha2luICA8YmRha2luQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRleDogU291cmNl
L1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcJKHJldmlzaW9uIDkzMjY5KQorKysgU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTc5LDYgKzc5
LDcgQEAgRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkgPSA7CiBFTkFCTEVfUFJPR1JFU1NfVEFH
ID0gRU5BQkxFX1BST0dSRVNTX1RBRzsKIEVOQUJMRV9RVU9UQSA9IDsKIEVOQUJMRV9SRUdJU1RF
Ul9QUk9UT0NPTF9IQU5ETEVSID0gOworRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FID0g
RU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FOwogRU5BQkxFX1NIQVJFRF9XT1JLRVJTID0g
RU5BQkxFX1NIQVJFRF9XT1JLRVJTOwogRU5BQkxFX1NWRyA9IEVOQUJMRV9TVkc7CiBFTkFCTEVf
U1ZHX0FOSU1BVElPTiA9IEVOQUJMRV9TVkdfQU5JTUFUSU9OOwpAQCAtOTgsNCArOTksNCBAQCBF
TkFCTEVfWEhUTUxNUCA9IDsKIEVOQUJMRV9YUEFUSCA9IEVOQUJMRV9YUEFUSDsKIEVOQUJMRV9Y
U0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRF
UklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BTklNQVRJT05f
QVBJKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVf
Q0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9DU1MzX0ZMRVhCT1gpICQoRU5BQkxF
X0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVN
UykgJChFTkFCTEVfREVUQUlMUykgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJM
RV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRT
T1VSQ0UpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9G
VUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFT
RSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfQ09MT1IpICQoRU5B
QkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVf
TElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNT
KSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09G
RkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChF
TkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVHSVNURVJfUFJP
VE9DT0xfSEFORExFUikgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NWRykgJChF
TkFCTEVfU1ZHX0FOSU1BVElPTikgJChFTkFCTEVfU1ZHX0FTX0lNQUdFKSAkKEVOQUJMRV9TVkdf
RE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfU1ZHX0ZPUkVJ
R05fT0JKRUNUKSAkKEVOQUJMRV9TVkdfVVNFKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcp
ICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfV0VCR0wpICQo
RU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1J
TkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAk
KEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykg
JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BTklNQVRJT05fQVBJKSAk
KEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5U
X0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9DU1MzX0ZMRVhCT1gpICQoRU5BQkxFX0RBVEFC
QVNFKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChF
TkFCTEVfREVUQUlMUykgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJF
Q1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0Up
ICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GVUxMU0NS
RUVOX0FQSSkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChF
TkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfQ09MT1IpICQoRU5BQkxFX0lO
UFVUX1NQRUVDSCkgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTElOS19Q
UkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVO
QUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVf
V0VCX0FQUExJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVf
UFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xf
SEFORExFUikgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1NIQVJF
RF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxF
X1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9T
VkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkg
JChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklE
RU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dF
Ql9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJM
RV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAkocmV2
aXNpb24gOTMyNjkpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTMwLDYgKzEzMCwxMCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpOwogCisjaWYg
RU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQorICAgICAgICB2aXJ0dWFsIHZvaWQgc2No
ZWR1bGVBbmltYXRpb24oKTsKKyNlbmRpZgorCiAgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJl
Y3QgY3VzdG9tSGlnaGxpZ2h0UmVjdChXZWJDb3JlOjpOb2RlKiwgY29uc3QgV1RGOjpBdG9taWNT
dHJpbmcmIHR5cGUsCiAgICAgICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgbGluZVJlY3Qp
OwogICAgIHZpcnR1YWwgdm9pZCBwYWludEN1c3RvbUhpZ2hsaWdodChXZWJDb3JlOjpOb2RlKiwg
Y29uc3QgV1RGOjpBdG9taWNTdHJpbmcmIHR5cGUsCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCShyZXZpc2lvbiA5MzI2
OSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5t
bQkod29ya2luZyBjb3B5KQpAQCAtOTU2LDYgKzk1NiwxNSBAQCB2b2lkIFdlYkNocm9tZUNsaWVu
dDo6c2NoZWR1bGVDb21wb3NpdGluCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKFJFUVVFU1RfQU5J
TUFUSU9OX0ZSQU1FKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNjaGVkdWxlQW5pbWF0aW9uKCkK
K3sKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgW21fd2ViVmlldyBfc2No
ZWR1bGVBbmltYXRpb25dOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Cit9CisjZW5k
aWYKKwogI2lmIEVOQUJMRShWSURFTykKIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRz
RnVsbHNjcmVlbkZvck5vZGUoY29uc3QgTm9kZSogbm9kZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0JKHJldmlzaW9uIDkzMjY5KQorKysgU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zODQsNiArMzg0LDkgQEAgLSAo
TlNSZXNwb25kZXIgKilfcmVzcG9uZGVyRm9yUmVzcG9uZGVyTwogI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKIC0gKHZvaWQpX2NsZWFyTGF5ZXJTeW5jTG9vcE9ic2VydmVyOwogI2Vu
ZGlmCisjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQorLSAodm9pZClfdW5zY2hl
ZHVsZUFuaW1hdGlvbjsKKyNlbmRpZgogI2lmIEVOQUJMRShHTElCX1NVUFBPUlQpCiAtICh2b2lk
KV9jbGVhckdsaWJMb29wT2JzZXJ2ZXI7CiAjZW5kaWYKQEAgLTEyMTIsNiArMTIxNSwxMCBAQCAt
ICh2b2lkKV9jbG9zZQogICAgIFtzZWxmIF9jbGVhckxheWVyU3luY0xvb3BPYnNlcnZlcl07CiAj
ZW5kaWYKICAgICAKKyNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCisgICAgW3Nl
bGYgX3Vuc2NoZWR1bGVBbmltYXRpb25dOworI2VuZGlmCisKICNpZiBFTkFCTEUoR0xJQl9TVVBQ
T1JUKQogICAgIFtzZWxmIF9jbGVhckdsaWJMb29wT2JzZXJ2ZXJdOwogI2VuZGlmCkBAIC01ODc0
LDYgKzU4ODEsMTggQEAgLSAodm9pZClfY2xlYXJMYXllclN5bmNMb29wT2JzZXJ2ZXIKIH0KICNl
bmRpZgogCisjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQorLSAodm9pZClfdW5z
Y2hlZHVsZUFuaW1hdGlvbgoreworICAgIGlmICghX3ByaXZhdGUtPnJlcXVlc3RBbmltYXRpb25G
cmFtZVJ1bkxvb3BPYnNlcnZlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgQ0ZSdW5Mb29wT2Jz
ZXJ2ZXJJbnZhbGlkYXRlKF9wcml2YXRlLT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWVSdW5Mb29wT2Jz
ZXJ2ZXIpOworICAgIENGUmVsZWFzZShfcHJpdmF0ZS0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lUnVu
TG9vcE9ic2VydmVyKTsKKyAgICBfcHJpdmF0ZS0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lUnVuTG9v
cE9ic2VydmVyID0gMDsKK30KKyNlbmRpZgorCiAjaWYgRU5BQkxFKEdMSUJfU1VQUE9SVCkKIC0g
KHZvaWQpX2NsZWFyR2xpYkxvb3BPYnNlcnZlcgogewpAQCAtNjEzOCw3ICs2MTU3LDggQEAgLSAo
dm9pZClfc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyU3luYwogICAgIC8vIFJ1biBhZnRlciBBcHBL
aXQgZG9lcyBpdHMgd2luZG93IHVwZGF0ZS4gSWYgd2UgZG8gYW55IHBhaW50aW5nLCB3ZSdsbCBj
b21taXQKICAgICAvLyBsYXllciBjaGFuZ2VzIGZyb20gRnJhbWVWaWV3OjpwYWludENvbnRlbnRz
KCksIG90aGVyd2lzZSB3ZSdsbCBjb21taXQgdmlhCiAgICAgLy8gX3N5bmNDb21wb3NpdGluZ0No
YW5nZXMgd2hlbiB0aGlzIG9ic2VydmVyIGZpcmVzLgotICAgIGNvbnN0IENGSW5kZXggcnVuTG9v
cE9yZGVyID0gTlNEaXNwbGF5V2luZG93UnVuTG9vcE9yZGVyaW5nICsgMTsKKyAgICAvLyBBbHNv
IGxlYXZlIGEgc2xvdCBmb3IgdGhlIHJlcXVlc3RBbmltYXRpb25GcmFtZVJ1bkxvb3BPYnNlcnZl
ciwgaWYgaXQncyBlbmFibGVkCisgICAgY29uc3QgQ0ZJbmRleCBydW5Mb29wT3JkZXIgPSBOU0Rp
c3BsYXlXaW5kb3dSdW5Mb29wT3JkZXJpbmcgKyAyOwogCiAgICAgLy8gVGhlIFdlYlZpZXcgYWx3
YXlzIG91dGxpdmVzIHRoZSBvYnNlcnZlciwgc28gbm8gbmVlZCB0byByZXRhaW4vcmVsZWFzZS4K
ICAgICBDRlJ1bkxvb3BPYnNlcnZlckNvbnRleHQgY29udGV4dCA9IHsgMCwgc2VsZiwgMCwgMCwg
MCB9OwpAQCAtNjE1Miw2ICs2MTcyLDM2IEBAIC0gKHZvaWQpX3NjaGVkdWxlQ29tcG9zaXRpbmdM
YXllclN5bmMKIAogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUp
CitzdGF0aWMgdm9pZCByZXF1ZXN0QW5pbWF0aW9uRnJhbWVSdW5Mb29wT2JzZXJ2ZXJDYWxsYmFj
ayhDRlJ1bkxvb3BPYnNlcnZlclJlZiwgQ0ZSdW5Mb29wQWN0aXZpdHksIHZvaWQqIGluZm8pCit7
CisgICAgV2ViVmlldyAqd2ViVmlldyA9IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViVmlldyo+KGluZm8p
OworICAgIGlmICghd2ViVmlldy0+X3ByaXZhdGUtPmFuaW1hdGlvblNjaGVkdWxlZCkKKyAgICAg
ICAgcmV0dXJuOworICAgIAorICAgIHdlYlZpZXctPl9wcml2YXRlLT5hbmltYXRpb25TY2hlZHVs
ZWQgPSBOTzsKKyAgICBbd2ViVmlldyBfbWFpbkNvcmVGcmFtZV0tPnZpZXcoKS0+c2VydmljZVNj
cmlwdGVkQW5pbWF0aW9ucyhjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1l
KCkpKTsKK30KKworLSAodm9pZClfc2NoZWR1bGVBbmltYXRpb24KK3sKKyAgICBpZiAoIV9wcml2
YXRlLT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWVSdW5Mb29wT2JzZXJ2ZXIpIHsKKyAgICAgICAgQ0ZS
dW5Mb29wUmVmIGN1cnJlbnRSdW5Mb29wID0gQ0ZSdW5Mb29wR2V0Q3VycmVudCgpOworICAgIAor
ICAgICAgICAvLyBNYWtlIHN1cmUgd2Ugd2FrZSB1cCB0aGUgbG9vcCBvciB0aGUgb2JzZXJ2ZXIg
Y291bGQgYmUgZGVsYXllZCB1bnRpbCBzb21lIG90aGVyIHNvdXJjZSBmaXJlcy4KKyAgICAgICAg
Q0ZSdW5Mb29wV2FrZVVwKGN1cnJlbnRSdW5Mb29wKTsKKworICAgICAgICAvLyBSdW4gYmVmb3Jl
IHRoZSBsYXllclN5bmNSdW5Mb29wT2JzZXJ2ZXIsIHdoaWNoIGhhcyBvcmRlciBOU0Rpc3BsYXlX
aW5kb3dSdW5Mb29wT3JkZXJpbmcgKyAyLgorICAgICAgICBjb25zdCBDRkluZGV4IHJ1bkxvb3BP
cmRlciA9IE5TRGlzcGxheVdpbmRvd1J1bkxvb3BPcmRlcmluZyArIDE7CisgICAgICAgIENGUnVu
TG9vcE9ic2VydmVyQ29udGV4dCBjb250ZXh0ID0geyAwLCBzZWxmLCAwLCAwLCAwIH07CisgICAg
ICAgIF9wcml2YXRlLT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWVSdW5Mb29wT2JzZXJ2ZXIgPSBDRlJ1
bkxvb3BPYnNlcnZlckNyZWF0ZSgwLCBrQ0ZSdW5Mb29wQmVmb3JlV2FpdGluZyB8IGtDRlJ1bkxv
b3BFeGl0LCBZRVMsIHJ1bkxvb3BPcmRlciwgcmVxdWVzdEFuaW1hdGlvbkZyYW1lUnVuTG9vcE9i
c2VydmVyQ2FsbGJhY2ssICZjb250ZXh0KTsKKyAgICAgICAgQ0ZSdW5Mb29wQWRkT2JzZXJ2ZXIo
Y3VycmVudFJ1bkxvb3AsIF9wcml2YXRlLT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWVSdW5Mb29wT2Jz
ZXJ2ZXIsIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7CisgICAgfQorICAgIAorICAgIF9wcml2YXRl
LT5hbmltYXRpb25TY2hlZHVsZWQgPSBZRVM7ICAgIAorfQorI2VuZGlmCisKICNpZiBFTkFCTEUo
VklERU8pCiAKIC0gKHZvaWQpX2VudGVyRnVsbHNjcmVlbkZvck5vZGU6KFdlYkNvcmU6Ok5vZGUq
KW5vZGUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgJKHJldmlz
aW9uIDkzMjY5KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xNTUsNiArMTU1LDExIEBAIEBpbnRlcmZhY2UgV2ViVmlld1ByaXZh
dGUgOiBOU09iamVjdCB7CiAgICAgQ0ZSdW5Mb29wT2JzZXJ2ZXJSZWYgbGF5ZXJTeW5jUnVuTG9v
cE9ic2VydmVyOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUp
CisgICAgQ0ZSdW5Mb29wT2JzZXJ2ZXJSZWYgcmVxdWVzdEFuaW1hdGlvbkZyYW1lUnVuTG9vcE9i
c2VydmVyOworICAgIEJPT0wgYW5pbWF0aW9uU2NoZWR1bGVkOworI2VuZGlmCisKICAgICBOU1Bh
c3RlYm9hcmQgKmluc2VydGlvblBhc3RlYm9hcmQ7CiAgICAgICAgICAgICAKICAgICBOU1NpemUg
bGFzdExheW91dFNpemU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdJ
bnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
d0ludGVybmFsLmgJKHJldmlzaW9uIDkzMjY5KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3SW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtOTAsNiArOTAsMTAgQEAgQGlu
dGVyZmFjZSBXZWJWaWV3IChXZWJWaWV3SW50ZXJuYWwpCiAtICh2b2lkKV9zY2hlZHVsZUNvbXBv
c2l0aW5nTGF5ZXJTeW5jOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05f
RlJBTUUpCistICh2b2lkKV9zY2hlZHVsZUFuaW1hdGlvbjsKKyNlbmRpZgorCiAjaWYgRU5BQkxF
KEdMSUJfU1VQUE9SVCkKIC0gKHZvaWQpX3NjaGVkdWxlR2xpYkNvbnRleHRJdGVyYXRpb25zOwog
I2VuZGlmCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiA5MzYxOCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE0IEBACisyMDExLTA4LTIzICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxl
LmNvbT4KKworICAgICAgICBbbWFjXSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgc3VwcG9ydCBmb3Ig
bWFjIHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTU5MTQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIHJlcXVlc3QtYW5pbWF0aW9uLWNhbGxiYWNrIGZsYWcKKworICAgICAg
ICAqIFNjcmlwdHMvYnVpbGQtd2Via2l0OgorCiAyMDExLTA4LTIzICBBZGFtIEJhcnRoICA8YWJh
cnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgZ2FyZGVuLW8tbWF0aWMgc3VtbWFyeSBzaG91bGQg
YmUgYWJsZSB0byBleGFtaW5lIGZhaWx1cmVzCkluZGV4OiBUb29scy9TY3JpcHRzL2J1aWxkLXdl
YmtpdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAkocmV2aXNpb24g
OTMyNjkpCisrKyBUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAkod29ya2luZyBjb3B5KQpAQCAt
NjQsNiArNjQsNyBAQCBteSAkbm9XZWJLaXQyID0gMDsKIG15ICRzdGFydFRpbWUgPSB0aW1lKCk7
CiAKIG15ICgKKyAgICAkcmVxdWVzdEFuaW1hdGlvbkZyYW1lU3VwcG9ydCwKICAgICAkdGhyZWVE
Q2FudmFzU3VwcG9ydCwKICAgICAkdGhyZWVEUmVuZGVyaW5nU3VwcG9ydCwKICAgICAkYWNjZWxl
cmF0ZWQyZENhbnZhc1N1cHBvcnQsCkBAIC0xMzAsNiArMTMxLDkgQEAgbXkgKAogKTsKIAogbXkg
QGZlYXR1cmVzID0gKAorICAgIHsgb3B0aW9uID0+ICJyZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZSIs
IGRlc2MgPT4gIlRvZ2dsZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgc3VwcG9ydCIsCisgICAgICBk
ZWZpbmUgPT4gIkVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSIsIGRlZmF1bHQgPT4gKGlz
QXBwbGVNYWNXZWJLaXQoKSksIHZhbHVlID0+IFwkcmVxdWVzdEFuaW1hdGlvbkZyYW1lU3VwcG9y
dCB9LAorCiAgICAgeyBvcHRpb24gPT4gIjNkLWNhbnZhcyIsIGRlc2MgPT4gIlRvZ2dsZSAzRCBj
YW52YXMgKFdlYkdMKSBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQkdMIiwg
ZGVmYXVsdCA9PiAoaXNBcHBsZU1hY1dlYktpdCgpICYmICFpc0xlb3BhcmQoKSksIHZhbHVlID0+
IFwkdGhyZWVEQ2FudmFzU3VwcG9ydCB9LAogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5MzYxOCkKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisy
MDExLTA4LTIzICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KKworICAgICAgICBb
bWFjXSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgc3VwcG9ydCBmb3IgbWFjIHBvcnQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MTQ2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxlIHJlcXVlc3RBbmlt
YXRpb25GcmFtZSB0ZXN0cyBmb3IgTWFjLiBUZXN0cyB3ZXJlIGFsc28KKyAgICAgICAgbW9kaWZp
ZWQgdG8gd29yayBvbiBNYWMuIEJlZm9yZSB0aGUgdGVzdHMgd291bGQgYXNzdW1lIHRoZQorICAg
ICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgY2FsbGJhY2tzIHdvdWxkIGJlIGNhbGxlZCBieSBj
YWxsaW5nCisgICAgICAgIExheW91dFRlc3RDb250cm9sbGVyLmRpc3BsYXkoKS4gVGhpcyBpcyBu
b3QgYSB2YWxpZCBhc3N1bXB0aW9uCisgICAgICAgIGZvciBNYWMsIHNpbmNlIGl0IHNraXBzIGRp
c3BsYXkoKSBpZiBub3RoaW5nIHdhcyBkaXJ0eS4KKworICAgICAgICBUZXN0cyB3ZXJlIGNoYW5n
ZWQgdG8gdXNlIHRpbWVvdXRzIHRvIHdhaXQgZm9yIGNhbGxiYWNrcyBhbmQKKyAgICAgICAgZW5z
dXJlIHRoZXkgZ2V0IGNhbGxlZC4gQWxzbyBhZGRlZCBtb3JlIHBvc2l0aXZlIGluZGljYXRpb25z
CisgICAgICAgIHRoYXQgdGVzdCBmYWlsZWQgb3Igc3VjY2VlZGVkLCByYXRoZXIgdGhhbiByZWx5
aW5nIG9uIHRoZSBsYWNrCisgICAgICAgIG9mIGFuIGVycm9yIG1lc3NhZ2UgdG8gaW5kaWNhdGUg
c3VjY2Vzcy4KKworICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZy
YW1lLWNhbmNlbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVz
dC1hbmltYXRpb24tZnJhbWUtY2FuY2VsLmh0bWw6CisgICAgICAgICogZmFzdC9hbmltYXRpb24v
cmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsMi1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsMi5odG1sOgorICAg
ICAgICAqIGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRpc3BsYXkuaHRt
bDoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kdXJp
bmctbW9kYWwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3JlcXVlc3Qt
YW5pbWF0aW9uLWZyYW1lLWR1cmluZy1tb2RhbC5odG1sOgorICAgICAgICAqIGZhc3QvYW5pbWF0
aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRpbWVzdGFtcHMuaHRtbDoKKyAgICAgICAgKiBm
YXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS13aXRoaW4tY2FsbGJhY2suaHRt
bDoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS5odG1s
OgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlv
bi1mcmFtZS1jYW5jZWwuanM6CisgICAgICAgICh3aW5kb3cpOgorICAgICAgICAoaWYpOgorICAg
ICAgICAqIGZhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS1jYW5jZWwyLmpzOgorICAgICAgICAoaWYpOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3Nj
cmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kaXNwbGF5LmpzOgorICAgICAgICAo
aWYpOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1h
dGlvbi1mcmFtZS10aW1lc3RhbXBzLmpzOgorICAgICAgICAodmFyKToKKyAgICAgICAgKiBmYXN0
L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtd2l0aGluLWNh
bGxiYWNrLmpzOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0
LWFuaW1hdGlvbi1mcmFtZS5qczoKKyAgICAgICAgKGlmKToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvU2tpcHBlZDoKKwogMjAxMS0wNy0yNSAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5v
cmc+CiAKICAgICAgICAgZGl2IGFsaWduPSJjZW50ZXIiIHJlbmRlcmluZyBwcm9ibGVtCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5j
ZWwyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlv
bi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
OTMyNjkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1m
cmFtZS1jYW5jZWwyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMyw2ICszLDggQEAg
VGVzdHMgb25lIHJlcXVlc3RBbmltYXRpb25GcmFtZSBjYWxsYmFjawogT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgogCiAKK1BBU1MgY2FsbGJhY2tGaXJlZCBpcyBmYWxzZQorUEFTUyBjYW5jZWxG
aXJlZCBpcyB0cnVlCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09N
UExFVEUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9u
LWZyYW1lLWNhbmNlbDIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1h
dGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwyLmh0bWwJKHJldmlzaW9uIDkzMjY5
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUt
Y2FuY2VsMi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw2IEBACiA8c3BhbiBpZD0i
ZSI+PC9zcGFuPgogPHNwYW4gaWQ9ImYiPjwvc3Bhbj4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVz
dHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsMi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+
CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1
ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDkzMjY5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRp
b24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMyw2ICszLDcgQEAgVGhpcyB0ZXN0cyBjYW5jZWxsaW5nIGEgd2Via2l0UmVxdWVz
dEFuaQogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK1BBU1MgY2FsbGJhY2tGaXJlZCBp
cyBmYWxzZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS1jYW5jZWwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9y
ZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwuaHRtbAkocmV2aXNpb24gOTMyNjkpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNiArMTAsNiBAQAogPHNwYW4gaWQ9ImUiPjwvc3Bh
bj4KIDxzcGFuIGlkPSJmIj48L3NwYW4+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3JlcXVl
c3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1h
dGlvbi1mcmFtZS1kaXNwbGF5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9h
bmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGlzcGxheS5odG1sCShyZXZpc2lvbiA5
MzI2OSkKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZy
YW1lLWRpc3BsYXkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNiArMTAsNiBAQAogPHNwYW4g
aWQ9ImUiPjwvc3Bhbj4KIDxzcGFuIGlkPSJmIj48L3NwYW4+CiA8c2NyaXB0IHNyYz0ic2NyaXB0
LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRpc3BsYXkuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2Ny
aXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24v
cmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZHVyaW5nLW1vZGFsLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS1kdXJpbmctbW9kYWwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5MzI2OSkKKysrIExheW91dFRl
c3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWR1cmluZy1tb2RhbC1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMsMTEgKzMsMTEgQEAgVGVzdHMgdGhhdCBy
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUgY2FsbGJhYwogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgog
CiAKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQogU2V0
dGluZyBjYWxsYmFjawogU2hvd2luZyBtb2RhbCBkaWFsb2cKIFJldHVybmVkIGZyb20gbW9kYWwg
ZGlhbG9nCiBDYWxsYmFjayBmaXJlZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVl
c3QtYW5pbWF0aW9uLWZyYW1lLWR1cmluZy1tb2RhbC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWR1cmluZy1tb2Rh
bC5odG1sCShyZXZpc2lvbiA5MzI2OSkKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Jl
cXVlc3QtYW5pbWF0aW9uLWZyYW1lLWR1cmluZy1tb2RhbC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0yNyw5ICsyNywxOSBAQCBvbmxvYWQgPSBmdW5jdGlvbigpCiAgICAgfQogfQogCitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKKwogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKK3NldFRpbWVv
dXQoZnVuY3Rpb24oKSB7CisgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5u
b3RpZnlEb25lKCk7Cit9LCAyMDApOworCiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwv
aHRtbD4KIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUtdGltZXN0YW1wcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
YW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRpbWVzdGFtcHMuaHRtbAkocmV2aXNp
b24gOTMyNjkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlv
bi1mcmFtZS10aW1lc3RhbXBzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDYgKzEwLDYgQEAK
IDxzcGFuIGlkPSJlIj48L3NwYW4+CiA8c3BhbiBpZD0iZiI+PC9zcGFuPgogPHNjcmlwdCBzcmM9
InNjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9u
LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
YW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXdpdGhpbi1jYWxsYmFjay5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9u
LWZyYW1lLXdpdGhpbi1jYWxsYmFjay5odG1sCShyZXZpc2lvbiA5MzI2OSkKKysrIExheW91dFRl
c3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXdpdGhpbi1jYWxsYmFj
ay5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw2IEBACiA8c3BhbiBpZD0iZSI+PC9z
cGFuPgogPHNwYW4gaWQ9ImYiPjwvc3Bhbj4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvcmVx
dWVzdC1hbmltYXRpb24tZnJhbWUtd2l0aGluLWNhbGxiYWNrLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3Njcmlw
dD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Jl
cXVlc3QtYW5pbWF0aW9uLWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUuaHRtbAkocmV2aXNpb24gOTMyNjkp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw2IEBACiA8c3BhbiBpZD0iZSI+PC9zcGFu
PgogPHNwYW4gaWQ9ImYiPjwvc3Bhbj4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvcmVxdWVz
dC1hbmltYXRpb24tZnJhbWUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3Qt
YW5pbWF0aW9uLWZyYW1lLWNhbmNlbDIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbDIu
anMJKHJldmlzaW9uIDkzMjY5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0
LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbDIuanMJKHdvcmtpbmcgY29weSkK
QEAgLTIsMTYgKzIsMzMgQEAgZGVzY3JpcHRpb24oIlRlc3RzIG9uZSByZXF1ZXN0QW5pbWF0aW9u
RgogCiB2YXIgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlIik7CiB2YXIgc2Vjb25kQ2Fs
bGJhY2tJZDsKK3ZhciBjYWxsYmFja0ZpcmVkID0gZmFsc2U7Cit2YXIgY2FuY2VsRmlyZWQgPSBm
YWxzZTsKIAogd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsK
KyAgICBjYW5jZWxGaXJlZCA9IHRydWU7CiAgICAgd2luZG93LndlYmtpdENhbmNlbFJlcXVlc3RB
bmltYXRpb25GcmFtZShzZWNvbmRDYWxsYmFja0lkKTsKIH0sIGUpOwogCiBzZWNvbmRDYWxsYmFj
a0lkID0gd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKLSAg
ICB0ZXN0RmFpbGVkKCJjYWxsYmFjayBpbnZva2VkIGFmdGVyIGNhbmNlbCIpOworICAgIGNhbGxi
YWNrRmlyZWQgPSB0cnVlOwogfSwgZSk7CiAKIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZGlzcGxheSgpOwogCitzZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgeworICAgIHNob3VsZEJlRmFsc2UoImNhbGxiYWNrRmlyZWQiKTsKKyAgICBzaG91
bGRCZVRydWUoImNhbmNlbEZpcmVkIik7Cit9LCAxMDApOworCitpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
KwogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKK3NldFRpbWVvdXQoZnVuY3Rpb24o
KSB7CisgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7
Cit9LCAyMDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3Rz
L3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbC5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUt
Y2FuY2VsLmpzCShyZXZpc2lvbiA5MzI2OSkKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9u
L3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTEsOCArMSw4IEBACiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBjYW5jZWxsaW5n
IGEgd2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lIGNhbGxiYWNrIik7CiAKK3ZhciBjYWxsYmFj
a0ZpcmVkID0gZmFsc2U7CiB2YXIgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlIik7CiB2
YXIgaWQgPSB3aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgewot
ICAgIHRlc3RGYWlsZWQoImNhbGxiYWNrIGludm9rZWQgYWZ0ZXIgY2FuY2VsbGVkIik7CiB9LCBl
KTsKIAogd2luZG93LndlYmtpdENhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZShpZCk7CkBAIC0x
MCw0ICsxMCwxNyBAQCB3aW5kb3cud2Via2l0Q2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lCiBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmRpc3BsYXkoKTsKIAorc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICBzaG91bGRCZUZhbHNl
KCJjYWxsYmFja0ZpcmVkIik7Cit9LCAxMDApOworCitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKwogdmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKK3NldFRpbWVvdXQoZnVuY3Rpb24oKSB7Cisg
ICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9LCAy
MDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVl
c3QtYW5pbWF0aW9uLWZyYW1lLWRpc3BsYXkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRpc3Bs
YXkuanMJKHJldmlzaW9uIDkzMjY5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2Ny
aXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRpc3BsYXkuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTE1LDYgKzE1LDE3IEBAIHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUo
ZnVuY3QKIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZGlzcGxheSgpOwogCi1zaG91bGRCZVRydWUoImNhbGxiYWNrSW52b2tlZE9uQSIp
Oworc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICBzaG91bGRCZVRydWUoImNhbGxiYWNrSW52
b2tlZE9uQSIpOworfSwgMTAwKTsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKIHZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOworCitzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgIGlzU3Vj
Y2Vzc2Z1bGx5UGFyc2VkKCk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfSwgMjAwKTsKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1h
dGlvbi1mcmFtZS10aW1lc3RhbXBzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
YW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBz
LmpzCShyZXZpc2lvbiA5MzI2OSkKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Njcmlw
dC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0yNCw2ICsyNCwxNyBAQCB3aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1l
KGZ1bmN0CiBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmRpc3BsYXkoKTsKIAotc2hvdWxkQmVEZWZpbmVkKCJmaXJzdFRpbWVzdGFtcCIp
OworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisKK3NldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgc2hv
dWxkQmVEZWZpbmVkKCJmaXJzdFRpbWVzdGFtcCIpOworfSwgMTAwKTsKIAogdmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CisKK3NldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgaXNTdWNj
ZXNzZnVsbHlQYXJzZWQoKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9LCAyMDApOwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0
aW9uLWZyYW1lLXdpdGhpbi1jYWxsYmFjay5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtd2l0aGlu
LWNhbGxiYWNrLmpzCShyZXZpc2lvbiA5MzI2OSkKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0
aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS13aXRoaW4tY2FsbGJhY2su
anMJKHdvcmtpbmcgY29weSkKQEAgLTIxLDQgKzIxLDEzIEBAIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCiBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmRpc3BsYXkoKTsKIAoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKIHZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCitzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAg
IGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfSwgMjAw
KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0
LWFuaW1hdGlvbi1mcmFtZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1h
dGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUuanMJKHJldmlzaW9uIDkz
MjY5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3Qt
YW5pbWF0aW9uLWZyYW1lLmpzCSh3b3JraW5nIGNvcHkpCkBAIC05LDYgKzksMTcgQEAgd2luZG93
LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdAogaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kaXNwbGF5KCk7CiAKLXNob3Vs
ZEJlVHJ1ZSgiY2FsbGJhY2tJbnZva2VkIik7CitzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAg
IHNob3VsZEJlVHJ1ZSgiY2FsbGJhY2tJbnZva2VkIik7Cit9LCAxMDApOworCitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKKwogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiAKK3NldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7CisgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3Rp
ZnlEb25lKCk7Cit9LCAyMDApOwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBw
ZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQJKHJldmlz
aW9uIDkzMjY5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQJKHdvcmtpbmcg
Y29weSkKQEAgLTMwNSw5ICszMDUsNiBAQCBlZGl0aW5nL3NlbGVjdGlvbi9jYXJldC1tb2RlLXBh
cmFncmFwaC1rCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTgw
NwogZmFzdC93cml0aW5nLW1vZGUvYnJva2VuLWlkZW9ncmFwaC1zbWFsbC1jYXBzLmh0bWwKIAot
IyBSZXF1ZXN0IEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgc3VwcG9ydAotZmFzdC9h
bmltYXRpb24KLQogIyBUaGlzIHBvcnQgZG9lc24ndCBzdXBwb3J0IHY4IGkxOG4gZXh0ZW5zaW9u
LgogZmFzdC9qcy9pMThuLWJpbmRpbmdzLWxvY2FsZS5odG1sCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105423</attachid>
            <date>2011-08-26 16:55:58 -0700</date>
            <delta_ts>2011-08-26 18:06:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59146-20110826165557.patch</filename>
            <type>text/plain</type>
            <size>57076</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzOTI1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDgtMjMgIENocmlzIE1h
cnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNdIHJlcXVlc3RBbmltYXRp
b25GcmFtZSBzdXBwb3J0IGZvciBtYWMgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkxNDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBFbmFibGUgUkVRVUVTVF9BTklNQVRJT05fRlJBTUUgbG9naWMg
YW5kIGFkZCBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIKKyAgICAgICAgdG8gYnVpbGQuIEFk
ZGVkIEphdmFTY3JpcHQgc3VwcG9ydCBmb3IgTWFjLCB0b28uCisKKyAgICAgICAgKiBDb2RlR2Vu
ZXJhdG9ycy5wcmk6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWc6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3Jl
LmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFja0N1c3Rv
bS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVD
YWxsYmFjazo6aGFuZGxlRXZlbnQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtOgorICAgICAgICAoQWRkSW5jbHVkZXNGb3JUeXBlKToKKyAgICAgICAgKiBk
b20vUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaWRsOgorCiAyMDExLTA4LTI2ICBOYXRl
IENoYXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTW92ZSBhbGxvd0NyZWRl
bnRpYWxzIGZyb20gVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMgZG93bgpJbmRleDogU291cmNlL1dl
YkNvcmUvQ29kZUdlbmVyYXRvcnMucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Nv
ZGVHZW5lcmF0b3JzLnByaQkocmV2aXNpb24gOTM5MjUpCisrKyBTb3VyY2UvV2ViQ29yZS9Db2Rl
R2VuZXJhdG9ycy5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw2ICsxNjYsNyBAQCBJRExfQklO
RElOR1MgKz0gXAogICAgIGRvbS9Qcm9ncmVzc0V2ZW50LmlkbCBcCiAgICAgZG9tL1JhbmdlRXhj
ZXB0aW9uLmlkbCBcCiAgICAgZG9tL1JhbmdlLmlkbCBcCisgICAgZG9tL1JlcXVlc3RBbmltYXRp
b25GcmFtZUNhbGxiYWNrLmlkbCBcCiAgICAgZG9tL1N0cmluZ0NhbGxiYWNrLmlkbCBcCiAgICAg
ZG9tL1RleHQuaWRsIFwKICAgICBkb20vVGV4dEV2ZW50LmlkbCBcCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDkzOTI1KQorKysgU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMzUwLDYgKzM1MCw3IEBAIERPTV9D
TEFTU0VTID0gXAogICAgIFJhbmdlIFwKICAgICBSYW5nZUV4Y2VwdGlvbiBcCiAgICAgUmVjdCBc
CisgICAgUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2sgXAogICAgIFNoYXJlZFdvcmtlciBc
CiAgICAgU2hhcmVkV29ya2VyQ29udGV4dCBcCiAgICAgU2NyaXB0UHJvZmlsZSBcCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gOTM5MjUpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtOTY5LDYgKzk2OSw3IEBAIF9fWk43V2ViQ29y
ZTlGcmFtZVZpZXcyMWZsdXNoRGVmZXJyZWRSZXAKIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcyMnNl
dEJhc2VCYWNrZ3JvdW5kQ29sb3JFUktOU181Q29sb3JFCiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3
MjN1cGRhdGVDYW5IYXZlU2Nyb2xsYmFyc0V2CiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MjRmb3Jj
ZUxheW91dEZvclBhZ2luYXRpb25FUktOU185RmxvYXRTaXplRWZOU18xOUFkanVzdFZpZXdTaXpl
T3JOb3RFCitfX1pON1dlYkNvcmU5RnJhbWVWaWV3MjVzZXJ2aWNlU2NyaXB0ZWRBbmltYXRpb25z
RXkKIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcyNmFkanVzdFBhZ2VIZWlnaHREZXByZWNhdGVkRVBm
ZmZmCiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MjlzZXRTaG91bGRVcGRhdGVXaGlsZU9mZnNjcmVl
bkViCiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3Mzd1cGRhdGVMYXlvdXRBbmRTdHlsZUlmTmVlZGVk
UmVjdXJzaXZlRXYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRp
b25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCShyZXZpc2lvbiA5MzkyNSkKKysrIFNvdXJjZS9X
ZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCSh3b3JraW5nIGNv
cHkpCkBAIC03OSw2ICs3OSw3IEBAIEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJID0gOwogRU5B
QkxFX1BST0dSRVNTX1RBRyA9IEVOQUJMRV9QUk9HUkVTU19UQUc7CiBFTkFCTEVfUVVPVEEgPSA7
CiBFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUiA9IDsKK0VOQUJMRV9SRVFVRVNUX0FO
SU1BVElPTl9GUkFNRSA9IEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRTsKIEVOQUJMRV9T
SEFSRURfV09SS0VSUyA9IEVOQUJMRV9TSEFSRURfV09SS0VSUzsKIEVOQUJMRV9TVkcgPSBFTkFC
TEVfU1ZHOwogRU5BQkxFX1NWR19BTklNQVRJT04gPSBFTkFCTEVfU1ZHX0FOSU1BVElPTjsKQEAg
LTk4LDQgKzk5LDQgQEAgRU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFCTEVfWFBBVEggPSBFTkFCTEVf
WFBBVEg7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAk
KEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChF
TkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNT
QUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfQ1NTM19G
TEVYQk9YKSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RB
VEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklDRV9PUklF
TlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0Up
ICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRklM
VEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVO
QUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lO
UFVUX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVC
VUdHRVIpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVf
TUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJ
T05TKSAkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklT
SUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVPVEEpICQoRU5B
QkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAk
KEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFH
RSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQo
RU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVE9V
Q0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQo
RU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAk
KEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAk
KEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJM
RV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVf
QU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcp
ICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfQ1NTM19GTEVYQk9Y
KSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RBVEFfVFJB
TlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElP
TikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5B
QkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykg
JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9J
Q09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX0NP
TE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIp
ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFf
U1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAk
KEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElU
WV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JF
R0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1F
KSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5J
TUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5E
SU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQo
RU5BQkxFX1NWR19VU0UpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVklE
RU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FV
RElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVf
V09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gOTM5MjUpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTExMzksNiArMTEzOSwxMiBA
QAogCQk0OTg3NzBGMjEyNDJDNTM1MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzBEOTEyNDJDNTM1MDAy
MjI2QkEgLyogVGlsaW5nRGF0YS5jcHAgKi87IH07CiAJCTQ5ODc3MEYzMTI0MkM1MzUwMDIyMjZC
QSAvKiBUaWxpbmdEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0OTg3NzBEQTEyNDJDNTM1MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5oICovOyB9Owog
CQk0OTg3NzE1MzEyNDNGOUZBMDAyMjI2QkEgLyogRHJhd2luZ0J1ZmZlck1hYy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MTUyMTI0M0Y5RkEw
MDIyMjZCQSAvKiBEcmF3aW5nQnVmZmVyTWFjLm1tICovOyB9OworCQk0OTk4QUVDNjEzRjlEMEVB
MDA5MEIxQUEgLyogUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5OThBRUM0MTNGOUQwRUEwMDkwQjFB
QSAvKiBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oICovOyB9OworCQk0OTk4QUVDRDEz
RjlENkM5MDA5MEIxQUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTk4QUVDQjEzRjlE
NkM5MDA5MEIxQUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5jcHAgKi87IH07
CisJCTQ5OThBRUNFMTNGOUQ2QzkwMDkwQjFBQSAvKiBKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNh
bGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
OTk4QUVDQzEzRjlENkM5MDA5MEIxQUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFj
ay5oICovOyB9OworCQk0OTk4QUVEMTEzRkIyMjREMDA5MEIxQUEgLyogU2NyaXB0ZWRBbmltYXRp
b25Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ5OThBRUNGMTNGQjIyNEQwMDkwQjFBQSAvKiBTY3JpcHRlZEFuaW1hdGlvbkNvbnRy
b2xsZXIuY3BwICovOyB9OworCQk0OTk4QUVEMjEzRkIyMjREMDA5MEIxQUEgLyogU2NyaXB0ZWRB
bmltYXRpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0OTk4QUVEMDEzRkIyMjREMDA5MEIxQUEgLyogU2NyaXB0ZWRBbmltYXRpb25D
b250cm9sbGVyLmggKi87IH07CisJCTQ5OThBRUQ0MTNGQzQxN0YwMDkwQjFBQSAvKiBKU1JlcXVl
c3RBbmltYXRpb25GcmFtZUNhbGxiYWNrQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5OThBRUQzMTNGQzQxN0YwMDkwQjFBQSAvKiBKU1Jl
cXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrQ3VzdG9tLmNwcCAqLzsgfTsKIAkJNDk5QjNFQzUx
MjhDQ0M0NzAwRTcyNkMyIC8qIFBsYXRmb3JtQ0FMYXllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk5QjNFQzMxMjhDQ0M0NzAwRTcyNkMyIC8qIFBs
YXRmb3JtQ0FMYXllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTQ5OUIzRUQ2MTI4Q0QzMTQwMEU3MjZDMiAvKiBHcmFwaGljc0xheWVyQ0EuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk5QjNFRDQx
MjhDRDMxNDAwRTcyNkMyIC8qIEdyYXBoaWNzTGF5ZXJDQS5jcHAgKi87IH07CiAJCTQ5OUIzRUQ3
MTI4Q0QzMTQwMEU3MjZDMiAvKiBHcmFwaGljc0xheWVyQ0EuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5OUIzRUQ1MTI4Q0QzMTQwMEU3MjZDMiAvKiBH
cmFwaGljc0xheWVyQ0EuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtNzczMCw2ICs3NzM2LDEzIEBACiAJCTQ5ODc3MEQ5MTI0MkM1MzUwMDIyMjZC
QSAvKiBUaWxpbmdEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IFRpbGluZ0RhdGEuY3BwOyBwYXRoID0gZ3B1L1RpbGluZ0RhdGEuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0OTg3NzBEQTEyNDJDNTM1MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBUaWxpbmdEYXRhLmg7IHBhdGggPSBn
cHUvVGlsaW5nRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTg3NzE1MjEy
NDNGOUZBMDAyMjI2QkEgLyogRHJhd2luZ0J1ZmZlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgbmFtZSA9IERyYXdpbmdCdWZmZXJNYWMubW07IHBhdGggPSBncHUvbWFj
L0RyYXdpbmdCdWZmZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5OThB
RUM0MTNGOUQwRUEwMDkwQjFBQSAvKiBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxs
YmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTk4QUVDNTEzRjlEMEVBMDA5
MEIxQUEgLyogUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDk5OEFFQ0IxM0Y5RDZDOTAwOTBCMUFBIC8qIEpTUmVxdWVzdEFu
aW1hdGlvbkZyYW1lQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQ5OThBRUNDMTNGOUQ2QzkwMDkwQjFBQSAvKiBKU1JlcXVlc3RBbmlt
YXRpb25GcmFtZUNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
UmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDk5OEFFQ0YxM0ZCMjI0RDAwOTBCMUFBIC8qIFNjcmlwdGVkQW5pbWF0aW9uQ29udHJv
bGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRlZEFu
aW1hdGlvbkNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTk4
QUVEMDEzRkIyMjREMDA5MEIxQUEgLyogU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OTk4QUVEMzEzRkM0MTdGMDA5MEIx
QUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFja0N1c3RvbS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxi
YWNrQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk5QjNFQzMxMjhD
Q0M0NzAwRTcyNkMyIC8qIFBsYXRmb3JtQ0FMYXllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBQbGF0Zm9ybUNBTGF5ZXIuaDsgcGF0aCA9IGNhL1BsYXRmb3JtQ0FMYXllci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTlCM0VENDEyOENEMzE0MDBFNzI2QzIg
LyogR3JhcGhpY3NMYXllckNBLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IEdyYXBoaWNzTGF5ZXJDQS5jcHA7IHBhdGggPSBjYS9HcmFwaGljc0xheWVyQ0EuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTlCM0VENTEyOENEMzE0MDBFNzI2QzIgLyog
R3JhcGhpY3NMYXllckNBLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEdyYXBo
aWNzTGF5ZXJDQS5oOyBwYXRoID0gY2EvR3JhcGhpY3NMYXllckNBLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xNzM3Niw2ICsxNzM4OSw4IEBACiAJCQkJNjVERjMxRUMwOUQxQ0M2
MDAwMEJFMzI1IC8qIEpTUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggKi8sCiAJCQkJRTRCNDIzODUw
Q0JGQjczQzAwQUYyRUNFIC8qIEpTUHJvZ3Jlc3NFdmVudC5jcHAgKi8sCiAJCQkJRTRCNDIzODYw
Q0JGQjczQzAwQUYyRUNFIC8qIEpTUHJvZ3Jlc3NFdmVudC5oICovLAorCQkJCTQ5OThBRUNCMTNG
OUQ2QzkwMDkwQjFBQSAvKiBKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmNwcCAqLywK
KwkJCQk0OTk4QUVDQzEzRjlENkM5MDA5MEIxQUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVD
YWxsYmFjay5oICovLAogCQkJCTQ5QkUzMEYxMTNEOTc2NDYwMDM4MDhBOSAvKiBKU1NpZ25hbGlu
Z0NhbGxiYWNrLmNwcCAqLywKIAkJCQk0OUJFMzBGMjEzRDk3NjQ2MDAzODA4QTkgLyogSlNTaWdu
YWxpbmdDYWxsYmFjay5oICovLAogCQkJCTc1NDE1RDRGMTI5QUIyRDIwMDNBRDY2OSAvKiBKU1Nw
ZWVjaElucHV0RXZlbnQuY3BwICovLApAQCAtMTg3MzUsNiArMTg3NTAsNyBAQAogCQkJCUJDRDlD
MjYxMEMxN0FBNjcwMDVDOTBBMiAvKiBKU05vZGVMaXN0Q3VzdG9tLmNwcCAqLywKIAkJCQk0OUJF
MzBEMTEzRDk3NDdCMDAzODA4QTkgLyogSlNQZWVyQ29ubmVjdGlvbkN1c3RvbS5jcHAgKi8sCiAJ
CQkJRTFBRDEyRDUxMjk1RDBCRDAwQUNBOTg5IC8qIEpTUHJvY2Vzc2luZ0luc3RydWN0aW9uQ3Vz
dG9tLmNwcCAqLywKKwkJCQk0OTk4QUVEMzEzRkM0MTdGMDA5MEIxQUEgLyogSlNSZXF1ZXN0QW5p
bWF0aW9uRnJhbWVDYWxsYmFja0N1c3RvbS5jcHAgKi8sCiAJCQkJOUZBMzdFRTYxMTcyRkNGMDAw
QzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGVDdXN0b20uY3BwICovLAogCQkJCTUxRENFODAx
MENBQzlGMUMwMDQ4ODM1OCAvKiBKU1NRTFJlc3VsdFNldFJvd0xpc3RDdXN0b20uY3BwICovLAog
CQkJCTFBRDIzMTZEMENEMjY5RTcwMEMxRjE5NCAvKiBKU1NRTFRyYW5zYWN0aW9uQ3VzdG9tLmNw
cCAqLywKQEAgLTIwMDE1LDEwICsyMDAzMSwxNCBAQAogCQkJCTg1MDMxQjM1MEE0NEVGQzcwMEY5
OTJFMCAvKiBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5jcHAgKi8sCiAJCQkJODUwMzFCMzYwQTQ0
RUZDNzAwRjk5MkUwIC8qIFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyLmggKi8sCiAJCQkJQTc2RTVG
N0UxMzVFMERDRjAwQTY5ODM3IC8qIFJlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCAqLywKKwkJCQk0
OTk4QUVDNDEzRjlEMEVBMDA5MEIxQUEgLyogUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2su
aCAqLywKKwkJCQk0OTk4QUVDNTEzRjlEMEVBMDA5MEIxQUEgLyogUmVxdWVzdEFuaW1hdGlvbkZy
YW1lQ2FsbGJhY2suaWRsICovLAogCQkJCTlCRDBCRjkyMTJBNDJCRjUwMDcyRkQ0MyAvKiBTY29w
ZWRFdmVudFF1ZXVlLmNwcCAqLywKIAkJCQk5QkQwQkY5MTEyQTQyQkY1MDA3MkZENDMgLyogU2Nv
cGVkRXZlbnRRdWV1ZS5oICovLAogCQkJCUE4NEQ4MkMwMTFEMzQ3NDgwMDk3Mjk5MCAvKiBTY3Jp
cHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwICovLAogCQkJCUE4NEQ4MkJGMTFEMzQ3NDgwMDk3Mjk5
MCAvKiBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuaCAqLywKKwkJCQk0OTk4QUVDRjEzRkIyMjRE
MDA5MEIxQUEgLyogU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcCAqLywKKwkJCQk0OTk4
QUVEMDEzRkIyMjREMDA5MEIxQUEgLyogU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmggKi8s
CiAJCQkJMDhBNDg0NzUwRTUyNzJDNTAwQzNGRTc2IC8qIFNjcmlwdEVsZW1lbnQuY3BwICovLAog
CQkJCTA4QTQ4NDc2MEU1MjcyQzUwMEMzRkU3NiAvKiBTY3JpcHRFbGVtZW50LmggKi8sCiAJCQkJ
RTExQzlEQUYwRUIzNjk5NTAwRTQwOURCIC8qIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwICov
LApAQCAtMjM0MDYsNiArMjM0MjYsOSBAQAogCQkJCUJDQkI4QUJCMTNGMUFGQjAwMDczNERGMCAv
KiBQT0RSZWRCbGFja1RyZWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZENkYyNTJEMTNGNUVGMEUw
MDY1MTY1RiAvKiBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUZEMjNBMTI2MTNGNUZBNTkwMEY2NzAwMSAvKiBKU01lZGlhRWxlbWVudEF1ZGlvU291cmNl
Tm9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDk5OEFFQzYxM0Y5RDBFQTAwOTBCMUFBIC8qIFJl
cXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk0OTk4QUVD
RTEzRjlENkM5MDA5MEIxQUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNDk5OEFFRDIxM0ZCMjI0RDAwOTBCMUFBIC8qIFNjcmlwdGVkQW5p
bWF0aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREY5QUZENzIxM0ZDMzFEODAw
MTVGRUI3IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzNTAwRjMyMTNGREUzQkUwMDk5RUMyNCAvKiBOU1Njcm9sbGVySW1wRGV0YWls
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDBBM0E3MzExNDA1QTM5ODAwRkI4RUQzIC8qIFJlc291
cmNlTG9hZGVyT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjIxMiw2ICsyNjIzNSw5IEBA
CiAJCQkJNTlERTc5MDQxM0YxNkM3RjAwMDdGQ0RGIC8qIEphdmFNZXRob2RKU0MuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRkQ2RjI1MkMxM0Y1RUYwRTAwNjUxNjVGIC8qIE1lZGlhRWxlbWVudEF1
ZGlvU291cmNlTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDIzQTEyNTEzRjVGQTU5MDBG
NjcwMDEgLyogSlNNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJNDk5OEFFQ0QxM0Y5RDZDOTAwOTBCMUFBIC8qIEpTUmVxdWVzdEFuaW1hdGlvbkZyYW1l
Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDk5OEFFRDExM0ZCMjI0RDAwOTBCMUFB
IC8qIFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0
OTk4QUVENDEzRkM0MTdGMDA5MEIxQUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFj
a0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTE0MTRCNTEzQTBGMDUwMDAxOTk5NkMg
LyogV2ViS2l0Rm9udEZhbWlseU5hbWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURGOUFGRDcz
MTNGQzMxRDgwMDE1RkVCNyAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFja0N1c3RvbS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFj
a0N1c3RvbS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrQ3VzdG9tLmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVO
QUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKKworI2luY2x1ZGUgIkpTUmVxdWVzdEFuaW1h
dGlvbkZyYW1lQ2FsbGJhY2suaCIKKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitib29sIEpTUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2s6OmhhbmRs
ZUV2ZW50KERPTVRpbWVTdGFtcCB0aW1lKQoreworICAgIGlmICghY2FuSW52b2tlQ2FsbGJhY2so
KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBSZWZQdHI8SlNSZXF1ZXN0QW5pbWF0aW9u
RnJhbWVDYWxsYmFjaz4gcHJvdGVjdCh0aGlzKTsKKworICAgIEpTTG9jayBsb2NrKFNpbGVuY2VB
c3NlcnRpb25zT25seSk7CisKKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOworICAgIGFy
Z3MuYXBwZW5kKGpzTnVtYmVyKHRpbWUpKTsKKworICAgIGJvb2wgcmFpc2VkRXhjZXB0aW9uID0g
ZmFsc2U7CisgICAgbV9kYXRhLT5pbnZva2VDYWxsYmFjayhhcmdzLCAmcmFpc2VkRXhjZXB0aW9u
KTsKKyAgICByZXR1cm4gIXJhaXNlZEV4Y2VwdGlvbjsKK30KKworfQorCisjZW5kaWYKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCShyZXZpc2lvbiA5MzkyNSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0yODMsNyArMjgzLDcgQEAgc3Vi
IEFkZEluY2x1ZGVzRm9yVHlwZQogICAgICMgV2hlbiB3ZSdyZSBmaW5pc2hlZCB3aXRoIHRoZSBv
bmUtZmlsZS1wZXItY2xhc3MKICAgICAjIHJlb3JnYW5pemF0aW9uLCB3ZSB3b24ndCBuZWVkIHRo
ZXNlIHNwZWNpYWwgY2FzZXMuCiAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5
cGUoJHR5cGUpIG9yICRjb2RlR2VuZXJhdG9yLT5Bdm9pZEluY2x1c2lvbk9mVHlwZSgkdHlwZSkK
LSAgICAgICAgb3IgJHR5cGUgZXEgIkRPTVN0cmluZyIgb3IgJHR5cGUgZXEgIkRPTU9iamVjdCIg
b3IgJHR5cGUgZXEgIkFycmF5IikgeworICAgICAgICBvciAkdHlwZSBlcSAiRE9NU3RyaW5nIiBv
ciAkdHlwZSBlcSAiRE9NT2JqZWN0IiBvciAkdHlwZSBlcSAiQXJyYXkiIG9yICR0eXBlIGVxICJE
T01UaW1lU3RhbXAiKSB7CiAgICAgfSBlbHNpZiAoJHR5cGUgPX4gL1NWR1BhdGhTZWcvKSB7CiAg
ICAgICAgIG15ICRqb2luZWROYW1lID0gJHR5cGU7CiAgICAgICAgICRqb2luZWROYW1lID1+IHMv
QWJzfFJlbC8vOwpAQCAtMjU2Myw3ICsyNTYzLDggQEAgbXkgJW5hdGl2ZVR5cGUgPSAoCiAgICAg
InVuc2lnbmVkIHNob3J0IiA9PiAidW5zaWduZWQgc2hvcnQiLAogICAgICJsb25nIGxvbmciID0+
ICJsb25nIGxvbmciLAogICAgICJ1bnNpZ25lZCBsb25nIGxvbmciID0+ICJ1bnNpZ25lZCBsb25n
IGxvbmciLAotICAgICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIiA9PiAiUmVmUHRyPE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXI+IgorICAgICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIiA9PiAiUmVmUHRy
PE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+IiwKKyAgICAiRE9NVGltZVN0YW1wIiA9PiAiRE9NVGlt
ZVN0YW1wIgogKTsKIAogc3ViIEdldE5hdGl2ZVR5cGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Rv
bS9SZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvZG9tL1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmlkbAkocmV2aXNpb24g
OTM5MjUpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJh
Y2suaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMywxMSBAQCBtb2R1bGUgY29yZSB7CiAg
ICAgICAgIENhbGxiYWNrPUZ1bmN0aW9uT25seSwKICAgICAgICAgQ29uZGl0aW9uYWw9UkVRVUVT
VF9BTklNQVRJT05fRlJBTUUsCiAgICAgXSBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFja3sK
KyNpZiBkZWZpbmVkKFY4X0JJTkRJTkcpICYmIFY4X0JJTkRJTkcKICAgICAgICAgYm9vbGVhbiBo
YW5kbGVFdmVudChpbiBET01UaW1lU3RhbXAgdGltZSk7CisjZWxzZQorICAgICAgICBbQ3VzdG9t
XSBib29sZWFuIGhhbmRsZUV2ZW50KGluIERPTVRpbWVTdGFtcCB0aW1lKTsKKyNlbmRpZgorICAg
ICAgICAKICAgICB9OwogfQpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gOTM5MjUpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMSBAQAorMjAx
MS0wOC0yMyAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgW21h
Y10gcmVxdWVzdEFuaW1hdGlvbkZyYW1lIHN1cHBvcnQgZm9yIG1hYyBwb3J0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTE0NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCByZXF1ZXN0QW5p
bWF0aW9uRnJhbWUgZm9yIFdlYktpdDIuIEFkZCBhCisgICAgICAgIENGUnVuTG9vcE9ic2VydmVy
IHRvIFdlYlBhZ2UsIHdoaWNoIHJ1bnMganVzdCBiZWZvcmUKKyAgICAgICAgdGhlIHN5bmNDb21w
b3NpdGluZ1N0YXRlIFJMTyBhbmQgY2FsbHMgaW50byB0aGUgCisgICAgICAgIFNjcmlwdGVkQW5p
bWF0aW9uQ29udHJvbGxlciBpZiBzY2hlZHVsZUFuaW1hdGlvbigpIGhhcworICAgICAgICBiZWVu
IGNhbGxlZC4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzY2hlZHVsZUFuaW1hdGlv
bik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OldlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp+V2Vi
UGFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnJlcXVlc3RBbmltYXRpb25GcmFtZVJ1bkxvb3BPYnNlcnZlckNhbGxiYWNrKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2NoZWR1bGVBbmltYXRpb24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjp1bnNjaGVkdWxlQW5pbWF0aW9uKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvY2EvbWFjL0xheWVyVHJlZUhvc3RDQU1hYy5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL2NhL21hYy9MYXllclRyZWVIb3N0Q0FNYWMuaDoKKwogMjAxMS0wOC0y
NiAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIEZvbGQgX3dlYmtpdF9p
bml0V2l0aERvbWFpbiBpbnRvIF93ZWJraXRfZXJyb3JXaXRoRG9tYWluIGluIFdlYktpdDIKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnCShyZXZpc2lvbiA5MzkyNSkKKysrIFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC03OSw2ICs3
OSw3IEBAIEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJID0gOwogRU5BQkxFX1BST0dSRVNTX1RB
RyA9IEVOQUJMRV9QUk9HUkVTU19UQUc7CiBFTkFCTEVfUVVPVEEgPSA7CiBFTkFCTEVfUkVHSVNU
RVJfUFJPVE9DT0xfSEFORExFUiA9IDsKK0VOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSA9
IEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRTsKIEVOQUJMRV9TSEFSRURfV09SS0VSUyA9
IEVOQUJMRV9TSEFSRURfV09SS0VSUzsKIEVOQUJMRV9TVkcgPSBFTkFCTEVfU1ZHOwogRU5BQkxF
X1NWR19BTklNQVRJT04gPSBFTkFCTEVfU1ZHX0FOSU1BVElPTjsKQEAgLTk4LDQgKzk5LDQgQEAg
RU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFCTEVfWFBBVEggPSBFTkFCTEVfWFBBVEg7CiBFTkFCTEVf
WFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5E
RVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQU5JTUFUSU9O
X0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxF
X0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfQ1NTM19GTEVYQk9YKSAkKEVOQUJM
RV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRF
TVMpICQoRU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFC
TEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5U
U09VUkNFKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVf
RlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJB
U0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX0NPTE9SKSAkKEVO
QUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxF
X0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfU1RBVElTVElD
UykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9P
RkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQo
RU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFR0lTVEVSX1BS
T1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQo
RU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZH
X0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JF
SUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5H
KSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAk
KEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElN
SU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkg
JChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcp
ICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkg
JChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVO
VF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfQ1NTM19GTEVYQk9YKSAkKEVOQUJMRV9EQVRB
QkFTRSkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQo
RU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElS
RUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09VUkNF
KSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRlVMTFND
UkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQo
RU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX0NPTE9SKSAkKEVOQUJMRV9J
TlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xJTktf
UFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChF
TkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZMSU5F
X1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxF
X1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09M
X0hBTkRMRVIpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9TSEFS
RURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5JTUFUSU9OKSAkKEVOQUJM
RV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVf
U1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQoRU5BQkxFX1NWR19VU0Up
ICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJ
REVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9X
RUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV09SS0VSUykgJChFTkFC
TEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOwpJbmRleDogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcAkocmV2aXNpb24gOTM5MjUpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTY1NCw2ICs2NTQsMTEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldEN1cnNvckhpZGRl
blVudAogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRDdXJzb3JI
aWRkZW5VbnRpbE1vdXNlTW92ZXMoaGlkZGVuVW50aWxNb3VzZU1vdmVzKSk7CiB9CiAKK3ZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpzY2hlZHVsZUFuaW1hdGlvbigpCit7CisgICAgbV9wYWdlLT5zY2hl
ZHVsZUFuaW1hdGlvbigpOworfQorCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9ybVN0YXRlRGlk
Q2hhbmdlKGNvbnN0IE5vZGUqKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgJKHJldmlzaW9uIDkzOTI1KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MTcyLDYgKzE3MiwxMCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3IoY29u
c3QgV2ViQ29yZTo6Q3Vyc29yJik7CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvckhpZGRlblVu
dGlsTW91c2VNb3Zlcyhib29sKTsKIAorI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFN
RSkKKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVBbmltYXRpb24oKTsKKyNlbmRpZgorCiAgICAg
Ly8gTm90aWZpY2F0aW9uIHRoYXQgdGhlIGdpdmVuIGZvcm0gZWxlbWVudCBoYXMgY2hhbmdlZC4g
VGhpcyBmdW5jdGlvbgogICAgIC8vIHdpbGwgYmUgY2FsbGVkIGZyZXF1ZW50bHksIHNvIGhhbmRs
aW5nIHNob3VsZCBiZSB2ZXJ5IGZhc3QuCiAgICAgdmlydHVhbCB2b2lkIGZvcm1TdGF0ZURpZENo
YW5nZShjb25zdCBXZWJDb3JlOjpOb2RlKik7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiA5MzkyNSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjYyLDYgKzI2MiwxMiBAQCBXZWJQYWdlOjp+V2ViUGFnZSgpCiAKICNpZiBQTEFURk9STShNQUMp
CiAgICAgQVNTRVJUKG1fcGx1Z2luVmlld3MuaXNFbXB0eSgpKTsKKworI2lmIEVOQUJMRShSRVFV
RVNUX0FOSU1BVElPTl9GUkFNRSkKKyAgICB1bnNjaGVkdWxlQW5pbWF0aW9uKCk7CisgICAgQVNT
RVJUKCFtX3JlcXVlc3RBbmltYXRpb25GcmFtZVJ1bkxvb3BPYnNlcnZlcik7CisjZW5kaWYKKwog
I2VuZGlmCiAKICNpZm5kZWYgTkRFQlVHCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgJKHJldmlzaW9uIDkzOTI1KQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzUwLDYgKzM1
MCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaG91bGREZWxheVdpbmRvd09yZGVyaW5nRXZlbnQo
Y29uc3QgV2ViS2l0OjpXZWJNb3VzZUV2ZW50JiwgYm9vbCYgcmVzdWx0KTsKICAgICB2b2lkIGFj
Y2VwdHNGaXJzdE1vdXNlKGludCBldmVudE51bWJlciwgY29uc3QgV2ViS2l0OjpXZWJNb3VzZUV2
ZW50JiwgYm9vbCYgcmVzdWx0KTsKICAgICBib29sIHBlcmZvcm1Ob25FZGl0aW5nQmVoYXZpb3JG
b3JTZWxlY3Rvcihjb25zdCBTdHJpbmcmKTsKKworI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElP
Tl9GUkFNRSkKKyAgICB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCk7CisgICAgdm9pZCB1bnNjaGVk
dWxlQW5pbWF0aW9uKCk7CisjZW5kaWYKICNlbGlmIFBMQVRGT1JNKFdJTikKICAgICB2b2lkIGNv
bmZpcm1Db21wb3NpdGlvbihjb25zdCBTdHJpbmcmIGNvbXBvc2l0aW9uU3RyaW5nKTsKICAgICB2
b2lkIHNldENvbXBvc2l0aW9uKGNvbnN0IFdURjo6U3RyaW5nJiBjb21wb3NpdGlvblN0cmluZywg
Y29uc3QgV1RGOjpWZWN0b3I8V2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+JiB1bmRlcmxp
bmVzLCB1aW50NjRfdCBjdXJzb3JQb3NpdGlvbik7CkBAIC02MDcsNiArNjEyLDExIEBAIHByaXZh
dGU6CiAKICAgICBXZWJDb3JlOjpLZXlib2FyZEV2ZW50KiBtX2tleWJvYXJkRXZlbnRCZWluZ0lu
dGVycHJldGVkOwogCisjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQorICAgIHN0
YXRpYyB2b2lkIHJlcXVlc3RBbmltYXRpb25GcmFtZVJ1bkxvb3BPYnNlcnZlckNhbGxiYWNrKENG
UnVuTG9vcE9ic2VydmVyUmVmLCBDRlJ1bkxvb3BBY3Rpdml0eSwgdm9pZCopOworICAgIFJldGFp
blB0cjxDRlJ1bkxvb3BPYnNlcnZlclJlZj4gbV9yZXF1ZXN0QW5pbWF0aW9uRnJhbWVSdW5Mb29w
T2JzZXJ2ZXI7CisjZW5kaWYKKwogI2VsaWYgUExBVEZPUk0oV0lOKQogICAgIC8vIE91ciB2aWV3
J3Mgd2luZG93IChpbiB0aGUgVUkgcHJvY2VzcykuCiAgICAgSFdORCBtX25hdGl2ZVdpbmRvdzsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9jYS9tYWMvTGF5ZXJUcmVl
SG9zdENBTWFjLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2NhL21hYy9MYXllclRyZWVIb3N0Q0FNYWMuaAkocmV2aXNpb24gOTM5MjUpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvY2EvbWFjL0xheWVyVHJlZUhvc3RDQU1hYy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiTGF5ZXJUcmVlSG9z
dENBLmgiCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCisjZGVmaW5lIENvcmVBbmltYXRp
b25SdW5Mb29wT3JkZXIgMjAwMDAwMAorCiB0eXBlZGVmIHN0cnVjdCBfX1dLQ0FSZW1vdGVMYXll
ckNsaWVudFJlZiogV0tDQVJlbW90ZUxheWVyQ2xpZW50UmVmOwogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9jYS9tYWMvTGF5ZXJU
cmVlSG9zdENBTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9jYS9tYWMvTGF5ZXJUcmVlSG9zdENBTWFjLm1tCShyZXZpc2lvbiA5MzkyNSkKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9jYS9tYWMvTGF5ZXJUcmVlSG9zdENB
TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC04MCw4ICs4MCw4IEBAIHZvaWQgTGF5ZXJUcmVlSG9z
dENBTWFjOjpzY2hlZHVsZUxheWVyRmwKICAgICBpZiAobV9mbHVzaFBlbmRpbmdMYXllckNoYW5n
ZXNSdW5Mb29wT2JzZXJ2ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIFJ1biBiZWZvcmUg
dGhlIENvcmUgQW5pbWF0aW9uIGNvbW1pdCBvYnNlcnZlciwgd2hpY2ggaGFzIG9yZGVyIDIwMDAw
MDAuCi0gICAgY29uc3QgQ0ZJbmRleCBydW5Mb29wT3JkZXIgPSAyMDAwMDAwIC0gMTsKKyAgICAv
LyBSdW4gYmVmb3JlIHRoZSBDb3JlIEFuaW1hdGlvbiBjb21taXQgb2JzZXJ2ZXIuCisgICAgY29u
c3QgQ0ZJbmRleCBydW5Mb29wT3JkZXIgPSBDb3JlQW5pbWF0aW9uUnVuTG9vcE9yZGVyIC0gMTsK
ICAgICBDRlJ1bkxvb3BPYnNlcnZlckNvbnRleHQgY29udGV4dCA9IHsgMCwgdGhpcywgMCwgMCwg
MCB9OwogICAgIG1fZmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzUnVuTG9vcE9ic2VydmVyLmFkb3B0
Q0YoQ0ZSdW5Mb29wT2JzZXJ2ZXJDcmVhdGUoMCwga0NGUnVuTG9vcEJlZm9yZVdhaXRpbmcgfCBr
Q0ZSdW5Mb29wRXhpdCwgdHJ1ZSwgcnVuTG9vcE9yZGVyLCBmbHVzaFBlbmRpbmdMYXllckNoYW5n
ZXNSdW5Mb29wT2JzZXJ2ZXJDYWxsYmFjaywgJmNvbnRleHQpKTsKIApJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQkocmV2
aXNpb24gOTM5MjUpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dl
YlBhZ2VNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbXBvcnQgIkF0
dHJpYnV0ZWRTdHJpbmcuaCIKICNpbXBvcnQgIkRhdGFSZWZlcmVuY2UuaCIKICNpbXBvcnQgIkVk
aXRvclN0YXRlLmgiCisjaW1wb3J0ICJMYXllclRyZWVIb3N0Q0FNYWMuaCIKICNpbXBvcnQgIlBs
dWdpblZpZXcuaCIKICNpbXBvcnQgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2ltcG9ydCAi
V2ViRXZlbnQuaCIKQEAgLTU1LDYgKzU2LDggQEAKICNpbXBvcnQgPFdlYkNvcmUvdmlzaWJsZV91
bml0cy5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAKKyNkZWZpbmUgQ29y
ZUFuaW1hdGlvblJ1bkxvb3BQcmlvcml0eSA9IAorCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01ODMsNiArNTg2LDQ1IEBAIGJvb2wgV2ViUGFnZTo6
cGVyZm9ybU5vbkVkaXRpbmdCZWhhdmlvckYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorI2lmIEVO
QUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKK3ZvaWQgV2ViUGFnZTo6cmVxdWVzdEFuaW1h
dGlvbkZyYW1lUnVuTG9vcE9ic2VydmVyQ2FsbGJhY2soQ0ZSdW5Mb29wT2JzZXJ2ZXJSZWYsIENG
UnVuTG9vcEFjdGl2aXR5LCB2b2lkKiBjb250ZXh0KQoreworICAgIFdlYlBhZ2UqIHdlYlBhZ2Ug
PSBzdGF0aWNfY2FzdDxXZWJQYWdlKj4oY29udGV4dCk7CisgICAgd2ViUGFnZS0+dW5zY2hlZHVs
ZUFuaW1hdGlvbigpOworICAgIAorICAgIC8vIFRoaXMgZ2V0cyBjYWxsZWQgb3V0c2lkZSBvZiB0
aGUgbm9ybWFsIGV2ZW50IGxvb3Agc28gd3JhcCBpbiBhbiBhdXRvcmVsZWFzZSBwb29sCisgICAg
TlNBdXRvcmVsZWFzZVBvb2wgKnBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29sIGFsbG9jXSBpbml0
XTsKKyAgICBpZiAod2ViUGFnZS0+Y29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkgJiYgd2ViUGFnZS0+
Y29yZVBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKSkKKyAgICAgICAgd2ViUGFnZS0+Y29yZVBh
Z2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKS0+c2VydmljZVNjcmlwdGVkQW5pbWF0aW9ucyhjb252
ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKTsKKyAgICBbcG9vbCBkcmFp
bl07Cit9CisKK3ZvaWQgV2ViUGFnZTo6c2NoZWR1bGVBbmltYXRpb24oKQoreworICAgIGlmICgh
bV9yZXF1ZXN0QW5pbWF0aW9uRnJhbWVSdW5Mb29wT2JzZXJ2ZXIpIHsKKyAgICAgICAgQ0ZSdW5M
b29wUmVmIGN1cnJlbnRSdW5Mb29wID0gQ0ZSdW5Mb29wR2V0Q3VycmVudCgpOworICAgIAorICAg
ICAgICAvLyBNYWtlIHN1cmUgd2Ugd2FrZSB1cCB0aGUgbG9vcCBvciB0aGUgb2JzZXJ2ZXIgY291
bGQgYmUgZGVsYXllZCB1bnRpbCBzb21lIG90aGVyIHNvdXJjZSBmaXJlcy4KKyAgICAgICAgQ0ZS
dW5Mb29wV2FrZVVwKGN1cnJlbnRSdW5Mb29wKTsKKworICAgICAgICAvLyBSdW4gYmVmb3JlIHRo
ZSBmbHVzaFBlbmRpbmdMYXllckNoYW5nZXNSdW5Mb29wT2JzZXJ2ZXIsIHdoaWNoIGhhcyBvcmRl
ciBDb3JlQW5pbWF0aW9uUnVuTG9vcE9yZGVyIC0gMS4KKyAgICAgICAgY29uc3QgQ0ZJbmRleCBy
dW5Mb29wT3JkZXIgPSBDb3JlQW5pbWF0aW9uUnVuTG9vcE9yZGVyIC0gMjsKKyAgICAgICAgQ0ZS
dW5Mb29wT2JzZXJ2ZXJDb250ZXh0IGNvbnRleHQgPSB7IDAsIHRoaXMsIDAsIDAsIDAgfTsKKyAg
ICAgICAgbV9yZXF1ZXN0QW5pbWF0aW9uRnJhbWVSdW5Mb29wT2JzZXJ2ZXIuYWRvcHRDRihDRlJ1
bkxvb3BPYnNlcnZlckNyZWF0ZSgwLCBrQ0ZSdW5Mb29wQmVmb3JlV2FpdGluZyB8IGtDRlJ1bkxv
b3BFeGl0LCBmYWxzZSwgcnVuTG9vcE9yZGVyLCByZXF1ZXN0QW5pbWF0aW9uRnJhbWVSdW5Mb29w
T2JzZXJ2ZXJDYWxsYmFjaywgJmNvbnRleHQpKTsKKworICAgICAgICBDRlJ1bkxvb3BBZGRPYnNl
cnZlcihjdXJyZW50UnVuTG9vcCwgbV9yZXF1ZXN0QW5pbWF0aW9uRnJhbWVSdW5Mb29wT2JzZXJ2
ZXIuZ2V0KCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7CisgICAgfQorfQorCit2b2lkIFdlYlBh
Z2U6OnVuc2NoZWR1bGVBbmltYXRpb24oKQoreworICAgIGlmIChtX3JlcXVlc3RBbmltYXRpb25G
cmFtZVJ1bkxvb3BPYnNlcnZlcikgeworICAgICAgICBDRlJ1bkxvb3BPYnNlcnZlckludmFsaWRh
dGUobV9yZXF1ZXN0QW5pbWF0aW9uRnJhbWVSdW5Mb29wT2JzZXJ2ZXIuZ2V0KCkpOworICAgICAg
ICBtX3JlcXVlc3RBbmltYXRpb25GcmFtZVJ1bkxvb3BPYnNlcnZlciA9IG51bGxwdHI7CisgICAg
fQorfQorI2VuZGlmCisKIGJvb2wgV2ViUGFnZTo6cGVyZm9ybURlZmF1bHRCZWhhdmlvckZvcktl
eUV2ZW50KGNvbnN0IFdlYktleWJvYXJkRXZlbnQmKQogewogICAgIHJldHVybiBmYWxzZTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzOTI1KQorKysgU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMDgtMjMgIENo
cmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNdIHJlcXVlc3RB
bmltYXRpb25GcmFtZSBzdXBwb3J0IGZvciBtYWMgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkxNDYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgcmVxdWVzdEFuaW1hdGlvbkZyYW1l
IGZvciBXZWJLaXQuIEFkZCBhCisgICAgICAgIENGUnVuTG9vcE9ic2VydmVyIHRvIFdlYlZpZXcs
IHdoaWNoIHJ1bnMganVzdCBiZWZvcmUKKyAgICAgICAgdGhlIHN5bmNDb21wb3NpdGluZ1N0YXRl
IFJMTyBhbmQgY2FsbHMgaW50byB0aGUgCisgICAgICAgIFNjcmlwdGVkQW5pbWF0aW9uQ29udHJv
bGxlciBpZiBzY2hlZHVsZUFuaW1hdGlvbigpIGhhcworICAgICAgICBiZWVuIGNhbGxlZC4KKwor
ICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2No
ZWR1bGVBbmltYXRpb24pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAg
KC1bV2ViVmlldyBfY2xvc2VdKToKKyAgICAgICAgKC1bV2ViVmlldyBfdW5zY2hlZHVsZUFuaW1h
dGlvbl0pOgorICAgICAgICAoLVtXZWJWaWV3IF9zY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJTeW5j
XSk6CisgICAgICAgIChyZXF1ZXN0QW5pbWF0aW9uRnJhbWVSdW5Mb29wT2JzZXJ2ZXJDYWxsYmFj
ayk6CisgICAgICAgICgtW1dlYlZpZXcgX3NjaGVkdWxlQW5pbWF0aW9uXSk6CisgICAgICAgICog
V2ViVmlldy9XZWJWaWV3RGF0YS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0ludGVybmFs
Lmg6CisKIDIwMTEtMDgtMjQgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAK
ICAgICAgICAgUGx1Zy1pbiB0ZXN0cyBhcmUgZmxha3kgb24gTWFjCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZwkocmV2aXNpb24gOTM5MjUpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtNzksNiArNzksNyBA
QCBFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSA9IDsKIEVOQUJMRV9QUk9HUkVTU19UQUcgPSBF
TkFCTEVfUFJPR1JFU1NfVEFHOwogRU5BQkxFX1FVT1RBID0gOwogRU5BQkxFX1JFR0lTVEVSX1BS
T1RPQ09MX0hBTkRMRVIgPSA7CitFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUgPSBFTkFC
TEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUU7CiBFTkFCTEVfU0hBUkVEX1dPUktFUlMgPSBFTkFC
TEVfU0hBUkVEX1dPUktFUlM7CiBFTkFCTEVfU1ZHID0gRU5BQkxFX1NWRzsKIEVOQUJMRV9TVkdf
QU5JTUFUSU9OID0gRU5BQkxFX1NWR19BTklNQVRJT047CkBAIC05OCw0ICs5OSw0IEBAIEVOQUJM
RV9YSFRNTE1QID0gOwogRU5BQkxFX1hQQVRIID0gRU5BQkxFX1hQQVRIOwogRU5BQkxFX1hTTFQg
PSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5H
KSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FOSU1BVElPTl9BUEkp
ICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0NTUzNfRkxFWEJPWCkgJChFTkFCTEVfREFU
QUJBU0UpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAk
KEVOQUJMRV9ERVRBSUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJ
UkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNPVVJD
RSkgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExT
Q1JFRU5fQVBJKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAk
KEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFCTEVf
SU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MSU5L
X1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQo
RU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElO
RV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJM
RV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NP
TF9IQU5ETEVSKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJM
RV9TVkdfQU5JTUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01f
T0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9P
QkpFQ1QpICQoRU5BQkxFX1NWR19VU0UpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChF
TkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFC
TEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykg
JChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5B
QkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVO
QUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FOSU1BVElPTl9BUEkpICQoRU5B
QkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFT
RURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0NTUzNfRkxFWEJPWCkgJChFTkFCTEVfREFUQUJBU0Up
ICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJM
RV9ERVRBSUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9S
WV9VUExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNPVVJDRSkgJChF
TkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5f
QVBJKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJM
RV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFCTEVfSU5QVVRf
U1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MSU5LX1BSRUZF
VENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxF
X01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJf
QVBQTElDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QUk9H
UkVTU19UQUcpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5E
TEVSKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfU0hBUkVEX1dP
UktFUlMpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0FOSU1BVElPTikgJChFTkFCTEVfU1ZH
X0FTX0lNQUdFKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19G
T05UUykgJChFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUKSAkKEVOQUJMRV9TVkdfVVNFKSAkKEVO
QUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19U
UkFDSykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NP
Q0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hI
VE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCShyZXZpc2lv
biA5MzkyNSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNiArMTI4LDEwIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCk7CiAKKyNpZiBFTkFC
TEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCisgICAgICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVs
ZUFuaW1hdGlvbigpOworI2VuZGlmCisKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBj
dXN0b21IaWdobGlnaHRSZWN0KFdlYkNvcmU6Ok5vZGUqLCBjb25zdCBXVEY6OkF0b21pY1N0cmlu
ZyYgdHlwZSwKICAgICAgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBsaW5lUmVjdCk7CiAg
ICAgdmlydHVhbCB2b2lkIHBhaW50Q3VzdG9tSGlnaGxpZ2h0KFdlYkNvcmU6Ok5vZGUqLCBjb25z
dCBXVEY6OkF0b21pY1N0cmluZyYgdHlwZSwKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0JKHJldmlzaW9uIDkzOTI1KQor
KysgU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCSh3
b3JraW5nIGNvcHkpCkBAIC05NDIsNiArOTQyLDE1IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpz
Y2hlZHVsZUNvbXBvc2l0aW4KIAogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJ
T05fRlJBTUUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6c2NoZWR1bGVBbmltYXRpb24oKQorewor
ICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBbbV93ZWJWaWV3IF9zY2hlZHVs
ZUFuaW1hdGlvbl07CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKK30KKyNlbmRpZgor
CiAjaWYgRU5BQkxFKFZJREVPKQogCiBib29sIFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxs
c2NyZWVuRm9yTm9kZShjb25zdCBOb2RlKiBub2RlKQpJbmRleDogU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbQkocmV2aXNpb24gOTM5MjUpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTM4NSw2ICszODUsOSBAQCAtIChOU1Jl
c3BvbmRlciAqKV9yZXNwb25kZXJGb3JSZXNwb25kZXJPCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogLSAodm9pZClfY2xlYXJMYXllclN5bmNMb29wT2JzZXJ2ZXI7CiAjZW5kaWYK
KyNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCistICh2b2lkKV91bnNjaGVkdWxl
QW5pbWF0aW9uOworI2VuZGlmCiAjaWYgRU5BQkxFKEdMSUJfU1VQUE9SVCkKIC0gKHZvaWQpX2Ns
ZWFyR2xpYkxvb3BPYnNlcnZlcjsKICNlbmRpZgpAQCAtMTIxMyw2ICsxMjE2LDEwIEBAIC0gKHZv
aWQpX2Nsb3NlCiAgICAgW3NlbGYgX2NsZWFyTGF5ZXJTeW5jTG9vcE9ic2VydmVyXTsKICNlbmRp
ZgogICAgIAorI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKKyAgICBbc2VsZiBf
dW5zY2hlZHVsZUFuaW1hdGlvbl07CisjZW5kaWYKKwogI2lmIEVOQUJMRShHTElCX1NVUFBPUlQp
CiAgICAgW3NlbGYgX2NsZWFyR2xpYkxvb3BPYnNlcnZlcl07CiAjZW5kaWYKQEAgLTU4OTEsNiAr
NTg5OCwxOCBAQCAtICh2b2lkKV9jbGVhckxheWVyU3luY0xvb3BPYnNlcnZlcgogfQogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCistICh2b2lkKV91bnNjaGVk
dWxlQW5pbWF0aW9uCit7CisgICAgaWYgKCFfcHJpdmF0ZS0+cmVxdWVzdEFuaW1hdGlvbkZyYW1l
UnVuTG9vcE9ic2VydmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBDRlJ1bkxvb3BPYnNlcnZl
ckludmFsaWRhdGUoX3ByaXZhdGUtPnJlcXVlc3RBbmltYXRpb25GcmFtZVJ1bkxvb3BPYnNlcnZl
cik7CisgICAgQ0ZSZWxlYXNlKF9wcml2YXRlLT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWVSdW5Mb29w
T2JzZXJ2ZXIpOworICAgIF9wcml2YXRlLT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWVSdW5Mb29wT2Jz
ZXJ2ZXIgPSAwOworfQorI2VuZGlmCisKICNpZiBFTkFCTEUoR0xJQl9TVVBQT1JUKQogLSAodm9p
ZClfY2xlYXJHbGliTG9vcE9ic2VydmVyCiB7CkBAIC02MTU1LDcgKzYxNzQsOCBAQCAtICh2b2lk
KV9zY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJTeW5jCiAgICAgLy8gUnVuIGFmdGVyIEFwcEtpdCBk
b2VzIGl0cyB3aW5kb3cgdXBkYXRlLiBJZiB3ZSBkbyBhbnkgcGFpbnRpbmcsIHdlJ2xsIGNvbW1p
dAogICAgIC8vIGxheWVyIGNoYW5nZXMgZnJvbSBGcmFtZVZpZXc6OnBhaW50Q29udGVudHMoKSwg
b3RoZXJ3aXNlIHdlJ2xsIGNvbW1pdCB2aWEKICAgICAvLyBfc3luY0NvbXBvc2l0aW5nQ2hhbmdl
cyB3aGVuIHRoaXMgb2JzZXJ2ZXIgZmlyZXMuCi0gICAgY29uc3QgQ0ZJbmRleCBydW5Mb29wT3Jk
ZXIgPSBOU0Rpc3BsYXlXaW5kb3dSdW5Mb29wT3JkZXJpbmcgKyAxOworICAgIC8vIEFsc28gbGVh
dmUgYSBzbG90IGZvciB0aGUgcmVxdWVzdEFuaW1hdGlvbkZyYW1lUnVuTG9vcE9ic2VydmVyLCBp
ZiBpdCdzIGVuYWJsZWQKKyAgICBjb25zdCBDRkluZGV4IHJ1bkxvb3BPcmRlciA9IE5TRGlzcGxh
eVdpbmRvd1J1bkxvb3BPcmRlcmluZyArIDI7CiAKICAgICAvLyBUaGUgV2ViVmlldyBhbHdheXMg
b3V0bGl2ZXMgdGhlIG9ic2VydmVyLCBzbyBubyBuZWVkIHRvIHJldGFpbi9yZWxlYXNlLgogICAg
IENGUnVuTG9vcE9ic2VydmVyQ29udGV4dCBjb250ZXh0ID0geyAwLCBzZWxmLCAwLCAwLCAwIH07
CkBAIC02MTY5LDYgKzYxODksMzMgQEAgLSAodm9pZClfc2NoZWR1bGVDb21wb3NpdGluZ0xheWVy
U3luYwogCiAjZW5kaWYKIAorI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKK3N0
YXRpYyB2b2lkIHJlcXVlc3RBbmltYXRpb25GcmFtZVJ1bkxvb3BPYnNlcnZlckNhbGxiYWNrKENG
UnVuTG9vcE9ic2VydmVyUmVmLCBDRlJ1bkxvb3BBY3Rpdml0eSwgdm9pZCogaW5mbykKK3sKKyAg
ICBXZWJWaWV3ICp3ZWJWaWV3ID0gcmVpbnRlcnByZXRfY2FzdDxXZWJWaWV3Kj4oaW5mbyk7Cisg
ICAgW3dlYlZpZXcgX3Vuc2NoZWR1bGVBbmltYXRpb25dOworICAgIAorICAgIGlmIChbd2ViVmll
dyBfbWFpbkNvcmVGcmFtZV0gJiYgW3dlYlZpZXcgX21haW5Db3JlRnJhbWVdLT52aWV3KCkpCisg
ICAgICAgIFt3ZWJWaWV3IF9tYWluQ29yZUZyYW1lXS0+dmlldygpLT5zZXJ2aWNlU2NyaXB0ZWRB
bmltYXRpb25zKGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAoY3VycmVudFRpbWUoKSkpOwor
fQorCistICh2b2lkKV9zY2hlZHVsZUFuaW1hdGlvbgoreworICAgIGlmICghX3ByaXZhdGUtPnJl
cXVlc3RBbmltYXRpb25GcmFtZVJ1bkxvb3BPYnNlcnZlcikgeworICAgICAgICBDRlJ1bkxvb3BS
ZWYgY3VycmVudFJ1bkxvb3AgPSBDRlJ1bkxvb3BHZXRDdXJyZW50KCk7CisgICAgCisgICAgICAg
IC8vIE1ha2Ugc3VyZSB3ZSB3YWtlIHVwIHRoZSBsb29wIG9yIHRoZSBvYnNlcnZlciBjb3VsZCBi
ZSBkZWxheWVkIHVudGlsIHNvbWUgb3RoZXIgc291cmNlIGZpcmVzLgorICAgICAgICBDRlJ1bkxv
b3BXYWtlVXAoY3VycmVudFJ1bkxvb3ApOworCisgICAgICAgIC8vIFJ1biBiZWZvcmUgdGhlIGxh
eWVyU3luY1J1bkxvb3BPYnNlcnZlciwgd2hpY2ggaGFzIG9yZGVyIE5TRGlzcGxheVdpbmRvd1J1
bkxvb3BPcmRlcmluZyArIDIuCisgICAgICAgIGNvbnN0IENGSW5kZXggcnVuTG9vcE9yZGVyID0g
TlNEaXNwbGF5V2luZG93UnVuTG9vcE9yZGVyaW5nICsgMTsKKyAgICAgICAgQ0ZSdW5Mb29wT2Jz
ZXJ2ZXJDb250ZXh0IGNvbnRleHQgPSB7IDAsIHNlbGYsIDAsIDAsIDAgfTsKKyAgICAgICAgX3By
aXZhdGUtPnJlcXVlc3RBbmltYXRpb25GcmFtZVJ1bkxvb3BPYnNlcnZlciA9IENGUnVuTG9vcE9i
c2VydmVyQ3JlYXRlKDAsIGtDRlJ1bkxvb3BCZWZvcmVXYWl0aW5nIHwga0NGUnVuTG9vcEV4aXQs
IE5PLCBydW5Mb29wT3JkZXIsIHJlcXVlc3RBbmltYXRpb25GcmFtZVJ1bkxvb3BPYnNlcnZlckNh
bGxiYWNrLCAmY29udGV4dCk7CisgICAgICAgIENGUnVuTG9vcEFkZE9ic2VydmVyKGN1cnJlbnRS
dW5Mb29wLCBfcHJpdmF0ZS0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lUnVuTG9vcE9ic2VydmVyLCBr
Q0ZSdW5Mb29wQ29tbW9uTW9kZXMpOworICAgIH0KK30KKyNlbmRpZgorCiAjaWYgRU5BQkxFKFZJ
REVPKQogCiAtICh2b2lkKV9lbnRlckZ1bGxzY3JlZW5Gb3JOb2RlOihXZWJDb3JlOjpOb2RlKilu
b2RlCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCShyZXZpc2lv
biA5MzkyNSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAkod29y
a2luZyBjb3B5KQpAQCAtMTU1LDYgKzE1NSwxMCBAQCBAaW50ZXJmYWNlIFdlYlZpZXdQcml2YXRl
IDogTlNPYmplY3QgewogICAgIENGUnVuTG9vcE9ic2VydmVyUmVmIGxheWVyU3luY1J1bkxvb3BP
YnNlcnZlcjsKICNlbmRpZgogCisjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQor
ICAgIENGUnVuTG9vcE9ic2VydmVyUmVmIHJlcXVlc3RBbmltYXRpb25GcmFtZVJ1bkxvb3BPYnNl
cnZlcjsKKyNlbmRpZgorCiAgICAgTlNQYXN0ZWJvYXJkICppbnNlcnRpb25QYXN0ZWJvYXJkOwog
ICAgICAgICAgICAgCiAgICAgTlNTaXplIGxhc3RMYXlvdXRTaXplOwpJbmRleDogU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCShyZXZpc2lvbiA5MzkyNSkKKysr
IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTkwLDYgKzkwLDEwIEBAIEBpbnRlcmZhY2UgV2ViVmlldyAoV2ViVmlld0ludGVybmFs
KQogLSAodm9pZClfc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyU3luYzsKICNlbmRpZgogCisjaWYg
RU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQorLSAodm9pZClfc2NoZWR1bGVBbmltYXRp
b247CisjZW5kaWYKKwogI2lmIEVOQUJMRShHTElCX1NVUFBPUlQpCiAtICh2b2lkKV9zY2hlZHVs
ZUdsaWJDb250ZXh0SXRlcmF0aW9uczsKICNlbmRpZgpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gOTM5MjUpCisrKyBUb29scy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wOC0yMyAgQ2hy
aXMgTWFycmluICA8Y21hcnJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY10gcmVxdWVzdEFu
aW1hdGlvbkZyYW1lIHN1cHBvcnQgZm9yIG1hYyBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTE0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXF1ZXN0LWFuaW1hdGlv
bi1jYWxsYmFjayBmbGFnCisKKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLXdlYmtpdDoKKwogMjAx
MS0wOC0yNiAgRGltaXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFR3ZWFrIHRoZSB1c2Ugb2YgT3BlbiBTYW5zIGluIGdhcmRlbi1vLW1hdGljIHN1bW1hcnkg
dmlldyB0byBtYWtlIGl0IGxvb2sgZGVjZW50IG9uIFdpbmRvd3MgYW5kIExpbnV4LgpJbmRleDog
VG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9i
dWlsZC13ZWJraXQJKHJldmlzaW9uIDkzOTI1KQorKysgVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJr
aXQJKHdvcmtpbmcgY29weSkKQEAgLTY0LDYgKzY0LDcgQEAgbXkgJG5vV2ViS2l0MiA9IDA7CiBt
eSAkc3RhcnRUaW1lID0gdGltZSgpOwogCiBteSAoCisgICAgJHJlcXVlc3RBbmltYXRpb25GcmFt
ZVN1cHBvcnQsCiAgICAgJHRocmVlRENhbnZhc1N1cHBvcnQsCiAgICAgJHRocmVlRFJlbmRlcmlu
Z1N1cHBvcnQsCiAgICAgJGFjY2VsZXJhdGVkMmRDYW52YXNTdXBwb3J0LApAQCAtMTMwLDYgKzEz
MSw5IEBAIG15ICgKICk7CiAKIG15IEBmZWF0dXJlcyA9ICgKKyAgICB7IG9wdGlvbiA9PiAicmVx
dWVzdC1hbmltYXRpb24tZnJhbWUiLCBkZXNjID0+ICJUb2dnbGUgcmVxdWVzdEFuaW1hdGlvbkZy
YW1lIHN1cHBvcnQiLAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05f
RlJBTUUiLCBkZWZhdWx0ID0+IChpc0FwcGxlTWFjV2ViS2l0KCkpLCB2YWx1ZSA9PiBcJHJlcXVl
c3RBbmltYXRpb25GcmFtZVN1cHBvcnQgfSwKKwogICAgIHsgb3B0aW9uID0+ICIzZC1jYW52YXMi
LCBkZXNjID0+ICJUb2dnbGUgM0QgY2FudmFzIChXZWJHTCkgc3VwcG9ydCIsCiAgICAgICBkZWZp
bmUgPT4gIkVOQUJMRV9XRUJHTCIsIGRlZmF1bHQgPT4gKGlzQXBwbGVNYWNXZWJLaXQoKSAmJiAh
aXNMZW9wYXJkKCkpLCB2YWx1ZSA9PiBcJHRocmVlRENhbnZhc1N1cHBvcnQgfSwKIApJbmRleDog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxv
ZwkocmV2aXNpb24gOTM5MjUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSw0NSBAQAorMjAxMS0wOC0yMyAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBh
cHBsZS5jb20+CisKKyAgICAgICAgW21hY10gcmVxdWVzdEFuaW1hdGlvbkZyYW1lIHN1cHBvcnQg
Zm9yIG1hYyBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01OTE0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEVuYWJsZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgdGVzdHMgZm9yIE1hYy4gVGVzdHMgd2Vy
ZSBhbHNvCisgICAgICAgIG1vZGlmaWVkIHRvIHdvcmsgb24gTWFjLiBCZWZvcmUgdGhlIHRlc3Rz
IHdvdWxkIGFzc3VtZSB0aGUKKyAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIGNhbGxiYWNr
cyB3b3VsZCBiZSBjYWxsZWQgYnkgY2FsbGluZworICAgICAgICBMYXlvdXRUZXN0Q29udHJvbGxl
ci5kaXNwbGF5KCkuIFRoaXMgaXMgbm90IGEgdmFsaWQgYXNzdW1wdGlvbgorICAgICAgICBmb3Ig
TWFjLCBzaW5jZSBpdCBza2lwcyBkaXNwbGF5KCkgaWYgbm90aGluZyB3YXMgZGlydHkuCisKKyAg
ICAgICAgVGVzdHMgd2VyZSBjaGFuZ2VkIHRvIHVzZSB0aW1lb3V0cyB0byB3YWl0IGZvciBjYWxs
YmFja3MgYW5kCisgICAgICAgIGVuc3VyZSB0aGV5IGdldCBjYWxsZWQuIEFsc28gYWRkZWQgbW9y
ZSBwb3NpdGl2ZSBpbmRpY2F0aW9ucworICAgICAgICB0aGF0IHRlc3QgZmFpbGVkIG9yIHN1Y2Nl
ZWRlZCwgcmF0aGVyIHRoYW4gcmVseWluZyBvbiB0aGUgbGFjaworICAgICAgICBvZiBhbiBlcnJv
ciBtZXNzYWdlIHRvIGluZGljYXRlIHN1Y2Nlc3MuCisKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlv
bi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbC5odG1sOgorICAg
ICAgICAqIGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbDItZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZy
YW1lLWNhbmNlbDIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1h
dGlvbi1mcmFtZS1kaXNwbGF5Lmh0bWw6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVz
dC1hbmltYXRpb24tZnJhbWUtZHVyaW5nLW1vZGFsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kdXJpbmctbW9kYWwuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3Rh
bXBzLmh0bWw6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJh
bWUtd2l0aGluLWNhbGxiYWNrLmh0bWw6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVz
dC1hbmltYXRpb24tZnJhbWUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9zY3JpcHQt
dGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsLmpzOgorICAgICAgICAod2luZG93
KToKKyAgICAgICAgKGlmKToKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMv
cmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsMi5qczoKKyAgICAgICAgKGlmKToKKyAgICAg
ICAgKiBmYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUt
ZGlzcGxheS5qczoKKyAgICAgICAgKGlmKToKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9zY3Jp
cHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy5qczoKKyAgICAgICAg
KHZhcik6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5p
bWF0aW9uLWZyYW1lLXdpdGhpbi1jYWxsYmFjay5qczoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlv
bi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUuanM6CisgICAgICAgIChpZik6
CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CisKIDIwMTEtMDgtMjYgIERhdmlkIExl
dmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVXBkYXRlIHRl
c3RzIGV4cGVjdGF0aW9ucyBkdWUgdG8gcjkzOTA5LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9h
bmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsMi1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24t
ZnJhbWUtY2FuY2VsMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDkzOTI1KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsMi1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMsNiArMyw4IEBAIFRlc3RzIG9uZSByZXF1ZXN0QW5p
bWF0aW9uRnJhbWUgY2FsbGJhY2sKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCitQQVNT
IGNhbGxiYWNrRmlyZWQgaXMgZmFsc2UKK1BBU1MgY2FuY2VsRmlyZWQgaXMgdHJ1ZQogUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwyLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUtY2FuY2VsMi5odG1sCShyZXZpc2lvbiA5MzkyNSkKKysrIExheW91dFRlc3RzL2Zh
c3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbDIuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAsNiArMTAsNiBAQAogPHNwYW4gaWQ9ImUiPjwvc3Bhbj4KIDxzcGFuIGlk
PSJmIj48L3NwYW4+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9u
LWZyYW1lLWNhbmNlbDIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUt
Y2FuY2VsLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1h
dGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biA5MzkyNSkKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9u
LWZyYW1lLWNhbmNlbC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMsNiArMyw3IEBA
IFRoaXMgdGVzdHMgY2FuY2VsbGluZyBhIHdlYmtpdFJlcXVlc3RBbmkKIE9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KIAogCitQQVNTIGNhbGxiYWNrRmlyZWQgaXMgZmFsc2UKIFBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJh
bWUtY2FuY2VsLmh0bWwJKHJldmlzaW9uIDkzOTI1KQorKysgTGF5b3V0VGVzdHMvZmFzdC9hbmlt
YXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEwLDYgKzEwLDYgQEAKIDxzcGFuIGlkPSJlIj48L3NwYW4+CiA8c3BhbiBpZD0iZiI+PC9z
cGFuPgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1j
YW5jZWwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGlzcGxheS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5p
bWF0aW9uLWZyYW1lLWRpc3BsYXkuaHRtbAkocmV2aXNpb24gOTM5MjUpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kaXNwbGF5Lmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEwLDYgKzEwLDYgQEAKIDxzcGFuIGlkPSJlIj48L3NwYW4+CiA8c3Bh
biBpZD0iZiI+PC9zcGFuPgogPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1h
dGlvbi1mcmFtZS1kaXNwbGF5LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZy
YW1lLWR1cmluZy1tb2RhbC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZHVyaW5nLW1vZGFsLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gOTM5MjUpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9y
ZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kdXJpbmctbW9kYWwtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0zLDExICszLDExIEBAIFRlc3RzIHRoYXQgcmVxdWVzdEFuaW1hdGlvbkZyYW1l
IGNhbGxiYWMKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKIFNldHRpbmcgY2FsbGJhY2sKIFNob3dp
bmcgbW9kYWwgZGlhbG9nCiBSZXR1cm5lZCBmcm9tIG1vZGFsIGRpYWxvZwogQ2FsbGJhY2sgZmly
ZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQogCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1k
dXJpbmctbW9kYWwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlv
bi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kdXJpbmctbW9kYWwuaHRtbAkocmV2aXNpb24gOTM5
MjUpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS1kdXJpbmctbW9kYWwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjcsOSArMjcsMTkgQEAgb25s
b2FkID0gZnVuY3Rpb24oKQogICAgIH0KIH0KIAoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKIHZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCitzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAg
IGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfSwgMjAw
KTsKKwogPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRpbWVzdGFtcHMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLmh0bWwJKHJldmlzaW9uIDkzOTI1KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw2IEBACiA8c3BhbiBpZD0iZSI+PC9zcGFu
PgogPHNwYW4gaWQ9ImYiPjwvc3Bhbj4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvcmVxdWVz
dC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+CiA8L2Jv
ZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS13aXRoaW4tY2FsbGJhY2suaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS13aXRoaW4tY2FsbGJh
Y2suaHRtbAkocmV2aXNpb24gOTM5MjUpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9y
ZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS13aXRoaW4tY2FsbGJhY2suaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMTAsNiArMTAsNiBAQAogPHNwYW4gaWQ9ImUiPjwvc3Bhbj4KIDxzcGFuIGlkPSJmIj48
L3NwYW4+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1l
LXdpdGhpbi1jYWxsYmFjay5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3Qt
YW5pbWF0aW9uLWZyYW1lLmh0bWwJKHJldmlzaW9uIDkzOTI1KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMTAsNiArMTAsNiBAQAogPHNwYW4gaWQ9ImUiPjwvc3Bhbj4KIDxzcGFuIGlkPSJmIj48L3Nw
YW4+CiA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1
bmN0aW9uLmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5j
ZWwyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10
ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwyLmpzCShyZXZpc2lvbiA5MzkyNSkK
KysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1h
dGlvbi1mcmFtZS1jYW5jZWwyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yLDE2ICsyLDMzIEBAIGRl
c2NyaXB0aW9uKCJUZXN0cyBvbmUgcmVxdWVzdEFuaW1hdGlvbkYKIAogdmFyIGUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiZSIpOwogdmFyIHNlY29uZENhbGxiYWNrSWQ7Cit2YXIgY2FsbGJh
Y2tGaXJlZCA9IGZhbHNlOwordmFyIGNhbmNlbEZpcmVkID0gZmFsc2U7CiAKIHdpbmRvdy53ZWJr
aXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7CisgICAgY2FuY2VsRmlyZWQgPSB0
cnVlOwogICAgIHdpbmRvdy53ZWJraXRDYW5jZWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoc2Vjb25k
Q2FsbGJhY2tJZCk7CiB9LCBlKTsKIAogc2Vjb25kQ2FsbGJhY2tJZCA9IHdpbmRvdy53ZWJraXRS
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7Ci0gICAgdGVzdEZhaWxlZCgiY2FsbGJh
Y2sgaW52b2tlZCBhZnRlciBjYW5jZWwiKTsKKyAgICBjYWxsYmFja0ZpcmVkID0gdHJ1ZTsKIH0s
IGUpOwogCiBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmRpc3BsYXkoKTsKIAorc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICBzaG91
bGRCZUZhbHNlKCJjYWxsYmFja0ZpcmVkIik7CisgICAgc2hvdWxkQmVUcnVlKCJjYW5jZWxGaXJl
ZCIpOworfSwgMTAwKTsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKIHZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworCitzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgIGlzU3VjY2Vzc2Z1
bGx5UGFyc2VkKCk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfSwgMjAwKTsKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1m
cmFtZS1jYW5jZWwuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24v
c2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbC5qcwkocmV2aXNpb24g
OTM5MjUpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVz
dC1hbmltYXRpb24tZnJhbWUtY2FuY2VsLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzEsOCBA
QAogZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgY2FuY2VsbGluZyBhIHdlYmtpdFJlcXVlc3RBbmlt
YXRpb25GcmFtZSBjYWxsYmFjayIpOwogCit2YXIgY2FsbGJhY2tGaXJlZCA9IGZhbHNlOwogdmFy
IGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZSIpOwogdmFyIGlkID0gd2luZG93LndlYmtp
dFJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKLSAgICB0ZXN0RmFpbGVkKCJjYWxs
YmFjayBpbnZva2VkIGFmdGVyIGNhbmNlbGxlZCIpOwogfSwgZSk7CiAKIHdpbmRvdy53ZWJraXRD
YW5jZWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaWQpOwpAQCAtMTAsNCArMTAsMTcgQEAgd2luZG93
LndlYmtpdENhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZQogaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kaXNwbGF5KCk7CiAKK3NldFRp
bWVvdXQoZnVuY3Rpb24oKSB7CisgICAgc2hvdWxkQmVGYWxzZSgiY2FsbGJhY2tGaXJlZCIpOwor
fSwgMTAwKTsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworCitzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgIGlzU3VjY2Vzc2Z1bGx5UGFy
c2VkKCk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfSwgMjAwKTsKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1k
aXNwbGF5LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Njcmlw
dC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kaXNwbGF5LmpzCShyZXZpc2lvbiA5Mzky
NSkKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS1kaXNwbGF5LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNSw2ICsxNSwxNyBA
QCB3aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0CiBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmRpc3BsYXkoKTsK
IAotc2hvdWxkQmVUcnVlKCJjYWxsYmFja0ludm9rZWRPbkEiKTsKK3NldFRpbWVvdXQoZnVuY3Rp
b24oKSB7CisgICAgc2hvdWxkQmVUcnVlKCJjYWxsYmFja0ludm9rZWRPbkEiKTsKK30sIDEwMCk7
CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOwogCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
Kworc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOwor
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30sIDIwMCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1w
cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVz
dHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy5qcwkocmV2aXNpb24gOTM5MjUp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmlt
YXRpb24tZnJhbWUtdGltZXN0YW1wcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsMTcg
QEAgd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdAogaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kaXNwbGF5KCk7
CiAKLXNob3VsZEJlRGVmaW5lZCgiZmlyc3RUaW1lc3RhbXAiKTsKK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OworCitzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgIHNob3VsZEJlRGVmaW5lZCgiZmlyc3RU
aW1lc3RhbXAiKTsKK30sIDEwMCk7CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwor
CitzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7Cisg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworfSwgMjAwKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
YW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS13aXRoaW4tY2Fs
bGJhY2suanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0
LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXdpdGhpbi1jYWxsYmFjay5qcwkocmV2aXNp
b24gOTM5MjUpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVx
dWVzdC1hbmltYXRpb24tZnJhbWUtd2l0aGluLWNhbGxiYWNrLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0yMSw0ICsyMSwxMyBAQCBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kaXNw
bGF5KCk7CiAKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKKworc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICBpc1N1Y2Nlc3NmdWxseVBhcnNl
ZCgpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30sIDIwMCk7CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3Jl
cXVlc3QtYW5pbWF0aW9uLWZyYW1lLmpzCShyZXZpc2lvbiA5MzkyNSkKKysrIExheW91dFRlc3Rz
L2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS5qcwko
d29ya2luZyBjb3B5KQpAQCAtOSw2ICs5LDE3IEBAIHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0
aW9uRnJhbWUoZnVuY3QKIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZGlzcGxheSgpOwogCi1zaG91bGRCZVRydWUoImNhbGxiYWNrSW52
b2tlZCIpOworc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICBzaG91bGRCZVRydWUoImNhbGxi
YWNrSW52b2tlZCIpOworfSwgMTAwKTsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKIHZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogCitzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgIGlz
U3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfSwgMjAwKTsK
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCShyZXZpc2lvbiA5MzkyNSkKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0zMDUsOSArMzA1
LDYgQEAgZWRpdGluZy9zZWxlY3Rpb24vY2FyZXQtbW9kZS1wYXJhZ3JhcGgtawogIyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE4MDcKIGZhc3Qvd3JpdGluZy1tb2Rl
L2Jyb2tlbi1pZGVvZ3JhcGgtc21hbGwtY2Fwcy5odG1sCiAKLSMgUmVxdWVzdCBFTkFCTEUoUkVR
VUVTVF9BTklNQVRJT05fRlJBTUUpIHN1cHBvcnQKLWZhc3QvYW5pbWF0aW9uCi0KICMgVGhpcyBw
b3J0IGRvZXNuJ3Qgc3VwcG9ydCB2OCBpMThuIGV4dGVuc2lvbi4KIGZhc3QvanMvaTE4bi1iaW5k
aW5ncy1sb2NhbGUuaHRtbAogCg==
</data>
<flag name="review"
          id="101565"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>