<?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>205522</bug_id>
          
          <creation_ts>2019-12-20 14:32:54 -0800</creation_ts>
          <short_desc>Resource Load Statistics: Add timing information to WebPageProxy::logFrameNavigation() to detect delayed client-side redirects</short_desc>
          <delta_ts>2020-01-10 15:09:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=206100</see_also>
          <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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="John Wilander">wilander</reporter>
          <assigned_to name="John Wilander">wilander</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1600938</commentid>
    <comment_count>0</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-12-20 14:32:54 -0800</bug_when>
    <thetext>We should detect delayed client-side redirects. This involves setting a timestamp in WebPageProxy::didFinishDocumentLoadForFrame() and using that timestamp to calculate the delay and pass it on in WebPageProxy::logFrameNavigation().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600940</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-20 14:33:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/58125759&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601017</commentid>
    <comment_count>2</comment_count>
      <attachid>386277</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-12-20 16:51:50 -0800</bug_when>
    <thetext>Created attachment 386277
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603293</commentid>
    <comment_count>3</comment_count>
      <attachid>386892</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-01-06 14:48:50 -0800</bug_when>
    <thetext>Created attachment 386892
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603369</commentid>
    <comment_count>4</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-01-06 16:44:00 -0800</bug_when>
    <thetext>The Windows test failures look unrelated. http/wpt/css/css-highlight-api/ failures and one more CSS failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603702</commentid>
    <comment_count>5</comment_count>
      <attachid>386892</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-07 11:59:51 -0800</bug_when>
    <thetext>Comment on attachment 386892
Patch

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

&gt; Source/WebKit/UIProcess/WebPageProxy.h:2656
&gt; +    MonotonicTime m_didFinishDocumentLoadForMainFrameTimestamp;

I wish we did not have to add a WebPageProxy data member for this. Could this maybe be stored somewhere else, in ITP-specific code?

&gt; Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:238
&gt; +        terminationObserver = [[NSNotificationCenter defaultCenter] addObserverForName:notificationName object:nil queue:nil usingBlock:^(NSNotification *note) { }];

What&apos;s the point of this termination observer that seems to do nothing?

&gt; LayoutTests/ChangeLog:9
&gt; +        Results updated with additional data now that delayed redirects are captured.

Shouldn&apos;t we add a test specifically for what you&apos;re fixing though?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603734</commentid>
    <comment_count>6</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-01-07 12:38:08 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #5)
&gt; Comment on attachment 386892 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=386892&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebPageProxy.h:2656
&gt; &gt; +    MonotonicTime m_didFinishDocumentLoadForMainFrameTimestamp;
&gt; 
&gt; I wish we did not have to add a WebPageProxy data member for this. Could
&gt; this maybe be stored somewhere else, in ITP-specific code?

The timestamp is tied to the webpage and this is in the UI process where we don&apos;t really have any ITP code except for piping and API surface. Any idea of where it could go?

&gt; &gt; Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:238
&gt; &gt; +        terminationObserver = [[NSNotificationCenter defaultCenter] addObserverForName:notificationName object:nil queue:nil usingBlock:^(NSNotification *note) { }];
&gt; 
&gt; What&apos;s the point of this termination observer that seems to do nothing?

Looks like it can be removed. Maybe it was only ever there for the purposes of ITP.

&gt; &gt; LayoutTests/ChangeLog:9
&gt; &gt; +        Results updated with additional data now that delayed redirects are captured.
&gt; 
&gt; Shouldn&apos;t we add a test specifically for what you&apos;re fixing though?

Sure, I can do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604184</commentid>
    <comment_count>7</comment_count>
      <attachid>387118</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-01-08 11:40:56 -0800</bug_when>
    <thetext>Created attachment 387118
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604777</commentid>
    <comment_count>8</comment_count>
      <attachid>387118</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-09 12:26:14 -0800</bug_when>
    <thetext>Comment on attachment 387118
Patch

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

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:225
&gt; +        Seconds minDelayAfterMainFrameDocumentLoadToNotBeARedirect { 5_s };

This seems really long to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604780</commentid>
    <comment_count>9</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-01-09 12:32:43 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #8)
&gt; Comment on attachment 387118 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=387118&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:225
&gt; &gt; +        Seconds minDelayAfterMainFrameDocumentLoadToNotBeARedirect { 5_s };
&gt; 
&gt; This seems really long to me.

I would agree if it wasn&apos;t for real measurement (on a fast machine). Here are three samples I still had in my logs:

1.920775 s
2.165201 s
2.231257 s

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604839</commentid>
    <comment_count>10</comment_count>
      <attachid>387118</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-09 14:01:56 -0800</bug_when>
    <thetext>Comment on attachment 387118
Patch

Clearing flags on attachment: 387118

Committed r254296: &lt;https://trac.webkit.org/changeset/254296&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604840</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-09 14:01:58 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386277</attachid>
            <date>2019-12-20 16:51:50 -0800</date>
            <delta_ts>2020-01-06 14:48:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205522-20191220165149.patch</filename>
            <type>text/plain</type>
            <size>32003</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzODU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDYxNWRhYThhYzBjNjc0YTUx
NzMxZGZjNmU3MDkwMWIyYTEyMzIxMzkuLmZjZDQwNmIxNTU1Mjg2Y2Q2ZTFmMzg1ZmVkZTFhZDAz
NTVjNmE5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTktMTItMjAgIEpvaG4gV2ls
YW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzb3VyY2UgTG9hZCBTdGF0
aXN0aWNzOiBBZGQgdGltaW5nIGluZm9ybWF0aW9uIHRvIFdlYlBhZ2VQcm94eTo6bG9nRnJhbWVO
YXZpZ2F0aW9uKCkgdG8gZGV0ZWN0IGRlbGF5ZWQgY2xpZW50LXNpZGUgcmVkaXJlY3RzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU1MjIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzU4MTI1NzU5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgd29yay1pbi1wcm9ncmVzcywgbWlz
c2luZyB0aGUgZnVuY3Rpb25hbGl0eSBpbiB0aGUgZGF0YWJhc2Ugc3RvcmUuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLiBUZXN0IGV4cGVjdGF0aW9uIHVwZGF0ZWQuCisKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbik6CisgICAgICAgICAgICBOb3cgdGFrZXMgdGhlIGV4dHJh
IHBhcmFtZXRlciBkZWxheUFmdGVyTWFpbkZyYW1lRG9jdW1lbnRMb2FkLgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0
YXRpc3RpY3NNZW1vcnlTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9uKToKKyAgICAgICAgICAgIE5v
dyB0YWtlcyB0aGUgZXh0cmEgcGFyYW1ldGVyIGRlbGF5QWZ0ZXJNYWluRnJhbWVEb2N1bWVudExv
YWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWVtb3J5U3RvcmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpsb2dGcmFtZU5hdmlnYXRp
b24pOgorICAgICAgICAgICAgTm93IHRha2VzIHRoZSBleHRyYSBwYXJhbWV0ZXIgZGVsYXlBZnRl
ck1haW5GcmFtZURvY3VtZW50TG9hZC4KKyAgICAgICAgICAgIFRoZSBkZWxldGVkIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9uKCkgd2FzIGRlYWQgY29k
ZS4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmxvZ0ZyYW1lTmF2aWdhdGlv
bik6CisgICAgICAgICAgICBOb3cgdGFrZXMgdGhlIGV4dHJhIHBhcmFtZXRlciBkZWxheUFmdGVy
TWFpbkZyYW1lRG9jdW1lbnRMb2FkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2Fn
ZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUu
bW06CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBfcmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1NldFNob3VsZFN1Ym1pdFRlbGVtZXRyeTpdKTogRGVsZXRlZC4KKyAgICAgICAgICAgIERlYWQg
Y29kZS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVBy
aXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSk6Cisg
ICAgICAgICAgICBOb3cgY2FwdHVyZXMgYSB0aW1lc3RhbXAuCisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgICAg
ICBSZW1vdmVkIGRlYWQgY29kZS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2dG
cmFtZU5hdmlnYXRpb24pOgorICAgICAgICAgICAgTm93IHNlbmRzIHRoZSBkaWZmIGJldHdlZW4g
bm93IGFuZCB0aGUgdGltZXN0YW1wIGNhcHR1cmVkIGluCisgICAgICAgICAgICBXZWJQYWdlUHJv
eHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKCkuCisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9X
ZWJzaXRlRGF0YVN0b3JlQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3Rv
cmU6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAgICAgICBSZW1vdmVkIGRlYWQgY29kZS4K
KyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6cGxhdGZvcm1EZXN0cm95KToKKyAg
ICAgICAgICAgIFJlbW92ZWQgZGVhZCBjb2RlLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3Rv
cmU6OnJlc291cmNlTG9hZFN0YXRpc3RpY3MgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAgICAg
RGVhZCBjb2RlLgorCiAyMDE5LTEyLTIwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgogCiAgICAgICAgIEVuYWJsZSBIRFIgTWVkaWEgQ2FwYWJpbGl0aWVzIGJ5IGRlZmF1bHQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3Bw
CmluZGV4IDBiYzM1NzkzMWQ1NGY4Y2YyMmM1NzE2NTc3YmEwZTI3YTQ5ZDYwNDMuLmRjZDE4MDM4
N2U0ODVkYzM1ZGMxMTMzNjc4MzYzNjRkNmNmMzI0ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcApAQCAtMTQ4NywxMCArMTQ4
NywxMiBAQCBWZWN0b3I8UmVnaXN0cmFibGVEb21haW4+IFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjplbnN1cmVQcmV2YWxlbnRSZQogICAgIHJldHVybiBwcmltYXJ5RG9tYWlu
c1RvQmxvY2s7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdGFyZ2V0RG9tYWlu
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiBzb3VyY2VEb21haW4sIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFt
ZSkKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmxvZ0ZyYW1lTmF2
aWdhdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdGFyZ2V0RG9tYWluLCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBz
b3VyY2VEb21haW4sIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSwgU2Vjb25kcyBk
ZWxheUFmdGVyTWFpbkZyYW1lRG9jdW1lbnRMb2FkKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6
aXNNYWluKCkpOwogCisgICAgVU5VU0VEX1BBUkFNKGRlbGF5QWZ0ZXJNYWluRnJhbWVEb2N1bWVu
dExvYWQpOworCiAgICAgYm9vbCBhcmVUYXJnZXRBbmRUb3BGcmFtZURvbWFpbnNTYW1lU2l0ZSA9
IHRhcmdldERvbWFpbiA9PSB0b3BGcmFtZURvbWFpbjsKICAgICBib29sIGFyZVRhcmdldEFuZFNv
dXJjZURvbWFpbnNTYW1lU2l0ZSA9IHRhcmdldERvbWFpbiA9PSBzb3VyY2VEb21haW47CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKaW5k
ZXggNzdlOWY4ZjcxM2EzZTMzMTAwM2VlOWJmYWI4MWI5MWE2NzU1NjhkMi4uNjI0YWQ5NWQxN2Zk
OWMwODE5MzA5NWE3MmM3ZmVkMDE2NmVjNDZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKQEAgLTEyNCw3ICsxMjQsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BG
cmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmKSBv
dmVycmlkZTsKICAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBU
b3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKSBvdmVy
cmlkZTsKIAotICAgIHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IE5hdmlnYXRlZFRvRG9t
YWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBjb25zdCBOYXZpZ2F0ZWRGcm9tRG9tYWluJiwg
Ym9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZyYW1lKSBvdmVycmlkZTsKKyAgICB2b2lkIGxv
Z0ZyYW1lTmF2aWdhdGlvbihjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYsIGNvbnN0IFRvcEZyYW1l
RG9tYWluJiwgY29uc3QgTmF2aWdhdGVkRnJvbURvbWFpbiYsIGJvb2wgaXNSZWRpcmVjdCwgYm9v
bCBpc01haW5GcmFtZSwgU2Vjb25kcyBkZWxheUFmdGVyTWFpbkZyYW1lRG9jdW1lbnRMb2FkKSBv
dmVycmlkZTsKICAgICB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBUb3BGcmFtZURvbWFp
biYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBsb2dD
cm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uKGNvbnN0IE5hdmlnYXRlZEZyb21Eb21haW4m
LCBjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c01lbW9yeVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCmluZGV4IDA4ZjY5OWUyMmUy
YWJmOTUyYzg2NTg5ODViNmNmYTBmZGUxMTZjOGUuLjdiZDM2OTE5ZDJmOGMwODE2YjJiODJjYThj
OGYwMzcwYmVlZmZhMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzTWVtb3J5U3RvcmUuY3BwCkBAIC00MjgsNyArNDI4LDcgQEAgVmVjdG9yPFJlZ2lzdHJhYmxl
RG9tYWluPiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmVuc3VyZVByZXZhbGVu
dFJlc28KICAgICByZXR1cm4gZG9tYWluc1RvQmxvY2s7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc01lbW9yeVN0b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHRhcmdldERvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1l
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc291cmNlRG9tYWluLCBib29sIGlzUmVk
aXJlY3QsIGJvb2wgaXNNYWluRnJhbWUpCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1v
cnlTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0YXJn
ZXREb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIHNvdXJjZURvbWFpbiwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlz
TWFpbkZyYW1lLCBTZWNvbmRzIGRlbGF5QWZ0ZXJNYWluRnJhbWVEb2N1bWVudExvYWQpCiB7CiAg
ICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTQ0MywxNSArNDQzLDIwIEBAIHZv
aWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24o
Y29uc3QgUmVnaXN0cmFibGVEb21hCiAgICAgICAgICAgICBzdGF0aXN0aWNzV2VyZVVwZGF0ZWQg
PSB0cnVlOwogICAgIH0KIAotICAgIGlmIChpc1JlZGlyZWN0ICYmICFhcmVUYXJnZXRBbmRTb3Vy
Y2VEb21haW5zU2FtZVNpdGUpIHsKKyAgICBpZiAoIWFyZVRhcmdldEFuZFNvdXJjZURvbWFpbnNT
YW1lU2l0ZSkgewogICAgICAgICBpZiAoaXNNYWluRnJhbWUpIHsKICAgICAgICAgICAgIGF1dG8m
IHJlZGlyZWN0aW5nRG9tYWluU3RhdGlzdGljcyA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0Zv
clJlZ2lzdHJhYmxlRG9tYWluKHNvdXJjZURvbWFpbik7Ci0gICAgICAgICAgICBpZiAocmVkaXJl
Y3RpbmdEb21haW5TdGF0aXN0aWNzLnRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8uYWRkKHRhcmdl
dERvbWFpbikuaXNOZXdFbnRyeSkKLSAgICAgICAgICAgICAgICBzdGF0aXN0aWNzV2VyZVVwZGF0
ZWQgPSB0cnVlOwotICAgICAgICAgICAgYXV0byYgdGFyZ2V0U3RhdGlzdGljcyA9IGVuc3VyZVJl
c291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHRhcmdldERvbWFpbik7Ci0gICAg
ICAgICAgICBpZiAodGFyZ2V0U3RhdGlzdGljcy50b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20u
YWRkKHNvdXJjZURvbWFpbikuaXNOZXdFbnRyeSkKLSAgICAgICAgICAgICAgICBzdGF0aXN0aWNz
V2VyZVVwZGF0ZWQgPSB0cnVlOwotICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYXV0byBt
aW5EZWxheSA9IHBhcmFtZXRlcnMoKS5taW5EZWxheUFmdGVyTWFpbkZyYW1lRG9jdW1lbnRMb2Fk
VG9Ob3RCZUFSZWRpcmVjdDsKKyAgICAgICAgICAgIGF1dG8gc2Vjb25kc1NpbmNlVXNlckludGVy
YWN0aW9uID0gV2FsbFRpbWU6Om5vdygpIC0gcmVkaXJlY3RpbmdEb21haW5TdGF0aXN0aWNzLm1v
c3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lOworICAgICAgICAgICAgYm9vbCB3YXNSZWRpcmVj
dGVkQWZ0ZXJTaG9ydERlbGF5V2l0aG91dFVzZXJJbnRlcmFjdGlvbiA9IGRlbGF5QWZ0ZXJNYWlu
RnJhbWVEb2N1bWVudExvYWQgPCBtaW5EZWxheSAmJiBzZWNvbmRzU2luY2VVc2VySW50ZXJhY3Rp
b24gPiBtaW5EZWxheTsKKyAgICAgICAgICAgIGlmIChpc1JlZGlyZWN0IHx8IHdhc1JlZGlyZWN0
ZWRBZnRlclNob3J0RGVsYXlXaXRob3V0VXNlckludGVyYWN0aW9uKSB7CisgICAgICAgICAgICAg
ICAgaWYgKHJlZGlyZWN0aW5nRG9tYWluU3RhdGlzdGljcy50b3BGcmFtZVVuaXF1ZVJlZGlyZWN0
c1RvLmFkZCh0YXJnZXREb21haW4pLmlzTmV3RW50cnkpCisgICAgICAgICAgICAgICAgICAgIHN0
YXRpc3RpY3NXZXJlVXBkYXRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgYXV0byYgdGFyZ2V0
U3RhdGlzdGljcyA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWlu
KHRhcmdldERvbWFpbik7CisgICAgICAgICAgICAgICAgaWYgKHRhcmdldFN0YXRpc3RpY3MudG9w
RnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLmFkZChzb3VyY2VEb21haW4pLmlzTmV3RW50cnkpCisg
ICAgICAgICAgICAgICAgICAgIHN0YXRpc3RpY3NXZXJlVXBkYXRlZCA9IHRydWU7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAoaXNSZWRpcmVjdCkgewogICAgICAgICAgICAgYXV0
byYgcmVkaXJlY3RpbmdEb21haW5TdGF0aXN0aWNzID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNz
Rm9yUmVnaXN0cmFibGVEb21haW4oc291cmNlRG9tYWluKTsKICAgICAgICAgICAgIGlmIChyZWRp
cmVjdGluZ0RvbWFpblN0YXRpc3RpY3Muc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUby5hZGQo
dGFyZ2V0RG9tYWluKS5pc05ld0VudHJ5KQogICAgICAgICAgICAgICAgIHN0YXRpc3RpY3NXZXJl
VXBkYXRlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01l
bW9yeVN0b3JlLmgKaW5kZXggMGIwZTZkODA1NmRiMDZhMGM4YzU1NjE0ODIwNzMxYjE1OTEzM2Rj
Ny4uNjM4OTJkNWMxNzdkNzhmMGVlMmJmZmU3NDA5MWIzMDViOGYxMWYwMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NNZW1vcnlTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaApAQCAtMTA0LDcgKzEw
NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9t
YWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1N0
YXR1cyk+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1l
RG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93
biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRl
ZCk+JiYpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgTmF2
aWdhdGVkVG9Eb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IE5hdmlnYXRlZEZy
b21Eb21haW4mLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUpIG92ZXJyaWRlOwor
ICAgIHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IE5hdmlnYXRlZFRvRG9tYWluJiwgY29u
c3QgVG9wRnJhbWVEb21haW4mLCBjb25zdCBOYXZpZ2F0ZWRGcm9tRG9tYWluJiwgYm9vbCBpc1Jl
ZGlyZWN0LCBib29sIGlzTWFpbkZyYW1lLCBTZWNvbmRzIGRlbGF5QWZ0ZXJNYWluRnJhbWVEb2N1
bWVudExvYWQpIG92ZXJyaWRlOwogICAgIHZvaWQgbG9nVXNlckludGVyYWN0aW9uKGNvbnN0IFRv
cEZyYW1lRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBvdmVycmlkZTsKICAg
ICB2b2lkIGxvZ0Nyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24oY29uc3QgTmF2aWdhdGVk
RnJvbURvbWFpbiYsIGNvbnN0IE5hdmlnYXRlZFRvRG9tYWluJikgb3ZlcnJpZGU7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAppbmRleCA3ZGFkZjRkYjg4NzM1MmFj
ZjllMWVmNWY0MDA3NGZhZWVhYzAzYTg1Li4xN2NhMGFkNDIyOTUzYzJjMzQwMjRjZTJmNDE0ODY2
NTdjZjM0NjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCkBA
IC0xNzEsNyArMTcxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3RvcmFn
ZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGdyYW50
U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9y
YWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6
U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbG9n
RnJhbWVOYXZpZ2F0aW9uKGNvbnN0IE5hdmlnYXRlZFRvRG9tYWluJiwgY29uc3QgVG9wRnJhbWVE
b21haW4mLCBjb25zdCBOYXZpZ2F0ZWRGcm9tRG9tYWluJiwgYm9vbCBpc1JlZGlyZWN0LCBib29s
IGlzTWFpbkZyYW1lKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGxvZ0ZyYW1lTmF2aWdhdGlvbihj
b25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgY29uc3QgTmF2
aWdhdGVkRnJvbURvbWFpbiYsIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSwgU2Vj
b25kcyBkZWxheUFmdGVyTWFpbkZyYW1lRG9jdW1lbnRMb2FkKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBsb2dDcm9zc1NpdGVMb2Fk
V2l0aExpbmtEZWNvcmF0aW9uKGNvbnN0IE5hdmlnYXRlZEZyb21Eb21haW4mLCBjb25zdCBOYXZp
Z2F0ZWRUb0RvbWFpbiYpID0gMDsKIApAQCAtMjIyLDYgKzIyMiw3IEBAIHByb3RlY3RlZDoKICAg
ICAgICAgU2Vjb25kcyBncmFuZGZhdGhlcmluZ1RpbWUgeyAyNF9oICogNyB9OwogICAgICAgICBT
ZWNvbmRzIGNhY2hlTWF4QWdlQ2FwVGltZSB7IDI0X2ggKiA3IH07CiAgICAgICAgIFNlY29uZHMg
Y2xpZW50U2lkZUNvb2tpZXNBZ2VDYXBUaW1lIHsgMjRfaCAqIDcgfTsKKyAgICAgICAgU2Vjb25k
cyBtaW5EZWxheUFmdGVyTWFpbkZyYW1lRG9jdW1lbnRMb2FkVG9Ob3RCZUFSZWRpcmVjdCB7IDVf
cyB9OwogICAgICAgICBib29sIHNob3VsZE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNj
YW5uZWQgeyBmYWxzZSB9OwogICAgICAgICBib29sIHNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVm
b3JlRGF0YVJlY29yZHNSZW1vdmFsIHsgdHJ1ZSB9OwogICAgICAgICBib29sIHNob3VsZFN1Ym1p
dFRlbGVtZXRyeSB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5jcHAKaW5kZXggODIzOWQ2ZDlmNWY5NDI1MGE4MTE1ZTBlMzUxOTgyOWY5ZGRm
ZDE4MC4uNGQwNzVlZTYwZDFiMjgwNWM0MTliYzljYzVjYTk4OGFiOTk2ZWZjNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTU1NCw0MyAr
NTU0LDEzIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzdWJtaXRUZWxl
bWV0cnkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmCiAgICAgfSk7CiB9CiAKLXZvaWQgV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgV2Vi
RnJhbWVQcm94eSYgZnJhbWUsIGNvbnN0IFVSTCYgcGFnZVVSTCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBVUkwmIHJlZGlyZWN0VVJMKQordm9pZCBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgdGFyZ2V0RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9w
RnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzb3VyY2VEb21haW4sIGJvb2wg
aXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSwgU2Vjb25kcyBkZWxheUFmdGVyTWFpbkZyYW1l
RG9jdW1lbnRMb2FkKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBh
dXRvIHNvdXJjZVVSTCA9IHJlZGlyZWN0VVJMOwotICAgIGJvb2wgaXNSZWRpcmVjdCA9ICFyZWRp
cmVjdFVSTC5pc051bGwoKTsKLSAgICBpZiAoIWlzUmVkaXJlY3QpIHsKLSAgICAgICAgc291cmNl
VVJMID0gZnJhbWUudXJsKCk7Ci0gICAgICAgIGlmIChzb3VyY2VVUkwuaXNOdWxsKCkpCi0gICAg
ICAgICAgICBzb3VyY2VVUkwgPSBwYWdlVVJMOwotICAgIH0KLQotICAgIGF1dG8mIHRhcmdldFVS
TCA9IHJlcXVlc3QudXJsKCk7Ci0KLSAgICBpZiAoIXRhcmdldFVSTC5pc1ZhbGlkKCkgfHwgIXBh
Z2VVUkwuaXNWYWxpZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRvIHRhcmdldEhvc3Qg
PSB0YXJnZXRVUkwuaG9zdCgpOwotICAgIGF1dG8gbWFpbkZyYW1lSG9zdCA9IHBhZ2VVUkwuaG9z
dCgpOwotCi0gICAgaWYgKHRhcmdldEhvc3QuaXNFbXB0eSgpIHx8IG1haW5GcmFtZUhvc3QuaXNF
bXB0eSgpIHx8IHRhcmdldEhvc3QgPT0gc291cmNlVVJMLmhvc3QoKSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgUmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9tYWluIHsgdGFyZ2V0VVJMIH07Ci0g
ICAgUmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4geyBwYWdlVVJMIH07Ci0gICAgUmVn
aXN0cmFibGVEb21haW4gc291cmNlRG9tYWluIHsgc291cmNlVVJMIH07Ci0KLSAgICBsb2dGcmFt
ZU5hdmlnYXRpb24odGFyZ2V0RG9tYWluLCB0b3BGcmFtZURvbWFpbiwgc291cmNlRG9tYWluLCBp
c1JlZGlyZWN0LCBmcmFtZS5pc01haW5GcmFtZSgpKTsKLX0KLQotdm9pZCBXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgdGFyZ2V0RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21h
aW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzb3VyY2VEb21haW4sIGJvb2wgaXNSZWRpcmVj
dCwgYm9vbCBpc01haW5GcmFtZSkKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwot
Ci0gICAgcG9zdFRhc2soW3RoaXMsIHRhcmdldERvbWFpbiA9IHRhcmdldERvbWFpbi5pc29sYXRl
ZENvcHkoKSwgdG9wRnJhbWVEb21haW4gPSB0b3BGcmFtZURvbWFpbi5pc29sYXRlZENvcHkoKSwg
c291cmNlRG9tYWluID0gc291cmNlRG9tYWluLmlzb2xhdGVkQ29weSgpLCBpc1JlZGlyZWN0LCBp
c01haW5GcmFtZV0geworICAgIHBvc3RUYXNrKFt0aGlzLCB0YXJnZXREb21haW4gPSB0YXJnZXRE
b21haW4uaXNvbGF0ZWRDb3B5KCksIHRvcEZyYW1lRG9tYWluID0gdG9wRnJhbWVEb21haW4uaXNv
bGF0ZWRDb3B5KCksIHNvdXJjZURvbWFpbiA9IHNvdXJjZURvbWFpbi5pc29sYXRlZENvcHkoKSwg
aXNSZWRpcmVjdCwgaXNNYWluRnJhbWUsIGRlbGF5QWZ0ZXJNYWluRnJhbWVEb2N1bWVudExvYWRd
IHsKICAgICAgICAgaWYgKG1fc3RhdGlzdGljc1N0b3JlKQotICAgICAgICAgICAgbV9zdGF0aXN0
aWNzU3RvcmUtPmxvZ0ZyYW1lTmF2aWdhdGlvbih0YXJnZXREb21haW4sIHRvcEZyYW1lRG9tYWlu
LCBzb3VyY2VEb21haW4sIGlzUmVkaXJlY3QsIGlzTWFpbkZyYW1lKTsKKyAgICAgICAgICAgIG1f
c3RhdGlzdGljc1N0b3JlLT5sb2dGcmFtZU5hdmlnYXRpb24odGFyZ2V0RG9tYWluLCB0b3BGcmFt
ZURvbWFpbiwgc291cmNlRG9tYWluLCBpc1JlZGlyZWN0LCBpc01haW5GcmFtZSwgZGVsYXlBZnRl
ck1haW5GcmFtZURvY3VtZW50TG9hZCk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAppbmRleCAwZGU5NTk0MWNmYjA4MTFjMzIwYjQx
ZjAzOWFjNmRlMTA4NGM0NTA2Li42MTE2ZWQxMjIzMGRhZjdkNGQyOGYxNTkxMmVlNzk4YTRjN2Nm
N2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCkBA
IC0yMDMsOCArMjAzLDcgQEAgc3RydWN0IFRoaXJkUGFydHlEYXRhIHsKIAogICAgIHZvaWQgYXBw
bGljYXRpb25XaWxsVGVybWluYXRlKCk7CiAKLSAgICB2b2lkIGxvZ0ZyYW1lTmF2aWdhdGlvbihj
b25zdCBXZWJGcmFtZVByb3h5JiwgY29uc3QgVVJMJiBwYWdlVVJMLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBVUkwmIHJlZGlyZWN0VVJMKTsKLSAgICB2b2lkIGxvZ0Zy
YW1lTmF2aWdhdGlvbihjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9t
YWluJiwgY29uc3QgTmF2aWdhdGVkRnJvbURvbWFpbiYsIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBp
c01haW5GcmFtZSk7CisgICAgdm9pZCBsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgTmF2aWdhdGVk
VG9Eb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IE5hdmlnYXRlZEZyb21Eb21h
aW4mLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUsIFNlY29uZHMgZGVsYXlBZnRl
ck1haW5GcmFtZURvY3VtZW50TG9hZCk7CiAgICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24oY29u
c3QgVG9wRnJhbWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgbG9nQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihjb25zdCBOYXZpZ2F0ZWRGcm9t
RG9tYWluJiwgY29uc3QgTmF2aWdhdGVkVG9Eb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgY2xlYXJVc2VySW50ZXJhY3Rpb24oY29uc3QgVG9wRnJhbWVEb21h
aW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCA0ZGEwNGFkZDJmZDIyZDU1MTQ0
NDA1OWRmNWYzMjEyYWE5YWI1ZGZlLi40YzlhYmRjNmM3OTRhYjBjOTk5YjJmMmQ0MTBlYmQwZWM3
Mzc3MWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcApAQCAtOTg0LDExICs5ODQsMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6Z2V0QWxs
U3RvcmFnZUFjY2Vzc0VudHJpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGUKICAg
ICB9CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmxvZ0ZyYW1lTmF2aWdhdGlvbihQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0YXJnZXREb21haW4s
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHNvdXJjZURvbWFpbiwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZyYW1l
KQordm9pZCBOZXR3b3JrUHJvY2Vzczo6bG9nRnJhbWVOYXZpZ2F0aW9uKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRhcmdldERvbWFpbiwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgc291cmNlRG9tYWluLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUsIFNlY29u
ZHMgZGVsYXlBZnRlck1haW5GcmFtZURvY3VtZW50TG9hZCkKIHsKICAgICBpZiAoYXV0byogbmV0
d29ya1Nlc3Npb24gPSB0aGlzLT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAgICAg
IGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291
cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3Mt
PmxvZ0ZyYW1lTmF2aWdhdGlvbih0YXJnZXREb21haW4sIHRvcEZyYW1lRG9tYWluLCBzb3VyY2VE
b21haW4sIGlzUmVkaXJlY3QsIGlzTWFpbkZyYW1lKTsKKyAgICAgICAgICAgIHJlc291cmNlTG9h
ZFN0YXRpc3RpY3MtPmxvZ0ZyYW1lTmF2aWdhdGlvbih0YXJnZXREb21haW4sIHRvcEZyYW1lRG9t
YWluLCBzb3VyY2VEb21haW4sIGlzUmVkaXJlY3QsIGlzTWFpbkZyYW1lLCBkZWxheUFmdGVyTWFp
bkZyYW1lRG9jdW1lbnRMb2FkKTsKICAgICB9IGVsc2UKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmgKaW5kZXggY2YwZWM0ZGU1NjdhZWVmYTdiNzhjMjk1YjAzN2ViODIwODE4OGY5MS4uYTQ0NGQ4
MjMzYzVlODBjZTZjMWY0NWE5YTJlZjBkNTdiZjMyYmY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMjI1LDcgKzIyNSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGlzUmVsYXRpb25zaGlwT25seUluRGF0YWJhc2VPbmNlKFBBTDo6U2Vzc2lv
bklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRG9tYWluLCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgdG9wRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAg
ICB2b2lkIGhhc0xvY2FsU3RvcmFnZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIGdldEFs
bFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFZlY3RvcjxTdHJpbmc+IGRvbWFpbnMpPiYmKTsKLSAgICB2b2lkIGxvZ0ZyYW1lTmF2aWdh
dGlvbihQQUw6OlNlc3Npb25JRCwgY29uc3QgTmF2aWdhdGVkVG9Eb21haW4mLCBjb25zdCBUb3BG
cmFtZURvbWFpbiYsIGNvbnN0IE5hdmlnYXRlZEZyb21Eb21haW4mLCBib29sIGlzUmVkaXJlY3Qs
IGJvb2wgaXNNYWluRnJhbWUpOworICAgIHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9uKFBBTDo6U2Vz
c2lvbklELCBjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwg
Y29uc3QgTmF2aWdhdGVkRnJvbURvbWFpbiYsIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5G
cmFtZSwgU2Vjb25kcyBkZWxheUFmdGVyTWFpbkZyYW1lRG9jdW1lbnRMb2FkKTsKICAgICB2b2lk
IGxvZ1VzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCwgY29uc3QgVG9wRnJhbWVEb21haW4m
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcmVtb3ZlUHJldmFsZW50
RG9tYWlucyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiYp
OwogICAgIHZvaWQgcmVzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhQQUw6
OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmlu
ZGV4IDJhZDk4ODFmY2Y3ZWE4NDRkODJiYzc3ZmFjMDdmNDkzZDdjNGRlNWUuLjM1MjhkNjA2ODZm
ZTdlODQ0OWE5NTg5MGNiMWFiY2Q1NjZkYTY3ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTAyLDcg
KzEwMiw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAg
ICBJc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVkRnJvbURvbWFpbiwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4gcmVkaXJlY3RlZFRvRG9tYWluKSAtPiAoYm9vbCBpc1JlZGlyZWN0
aW5nVG8pIEFzeW5jCiAgICAgSXNSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3ViRnJhbWVEb21haW4s
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluKSAtPiAoYm9vbCBpc1N1
YmZyYW1lVW5kZXIpIEFzeW5jCiAgICAgSXNSZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3VicmVz
b3VyY2VEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluKSAt
PiAoYm9vbCBpc1N1YnJlc291cmNlVW5kZXIpIEFzeW5jCi0gICAgTG9nRnJhbWVOYXZpZ2F0aW9u
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFy
Z2V0RG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gc291cmNlRG9tYWluLCBib29sIGlzUmVkaXJlY3QsIGJv
b2wgaXNNYWluRnJhbWUpCisgICAgTG9nRnJhbWVOYXZpZ2F0aW9uKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9tYWluLCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gc291cmNlRG9tYWluLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUsIFNl
Y29uZHMgZGVsYXlBZnRlck1haW5GcmFtZURvY3VtZW50TG9hZCkKICAgICBMb2dVc2VySW50ZXJh
Y3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biB0b3BGcmFtZURvbWFpbikgLT4gKCkgQXN5bmMKICAgICBSZW1vdmVQcmV2YWxlbnREb21haW5z
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVmVjdG9yPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluPiBkb21haW5zV2l0aEludGVyYWN0aW9uKQogICAgIFJlc2V0UGFyYW1ldGVyc1RvRGVmYXVs
dFZhbHVlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5t
bQppbmRleCA1MzgzNzNkMDY5YzE0MGQwMTU4MTlmMjFjYzE5YzgxZDM5YTU1NmYzLi5lNmQ0MjRm
NWQ0NTNkMWRlYTBiMmVhNjZkZThlNDhiZGNjZmU4MmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KQEAgLTM5
NCwxNyArMzk0LDYgQEAgLSAoTlNVUkwgKilfaW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkKICAg
ICByZXR1cm4gW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpfd2Vic2l0ZURhdGFTdG9yZS0+Y29uZmln
dXJhdGlvbigpLmluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KCkgaXNEaXJlY3Rvcnk6WUVTXTsK
IH0KIAotLSAodm9pZClfcmVzb3VyY2VMb2FkU3RhdGlzdGljc1NldFNob3VsZFN1Ym1pdFRlbGVt
ZXRyeTooQk9PTCl2YWx1ZQotewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1Mp
Ci0gICAgYXV0byogc3RvcmUgPSBfd2Vic2l0ZURhdGFTdG9yZS0+cmVzb3VyY2VMb2FkU3RhdGlz
dGljcygpOwotICAgIGlmICghc3RvcmUpCi0gICAgICAgIHJldHVybjsKLQotICAgIHN0b3JlLT5z
ZXRTaG91bGRTdWJtaXRUZWxlbWV0cnkodmFsdWUpOwotI2VuZGlmCi19Ci0KIC0gKHZvaWQpX3Nl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NUZXN0aW5nQ2FsbGJhY2s6KHZvaWQgKF4pKFdLV2Vic2l0
ZURhdGFTdG9yZSAqLCBOU1N0cmluZyAqKSljYWxsYmFjawogewogI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAppbmRleCBiZjk1MTI1
ZTMwMTA1MmQ0MGFmZTcxZmM0MmI5MzJkYTQxYTllYmM4Li41ZWFkYTUzNGYwNjVlYmM5NDQwYTE5
NjA1NjM1NWFlZDEyNzk4ZmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKQEAgLTYyLDcg
KzYyLDYgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVEYXRhU3Rv
cmVGZXRjaE9wdGlvbnMpIHsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VS
TCAqX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5OwogCi0tICh2b2lkKV9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU2V0U2hvdWxkU3VibWl0VGVsZW1ldHJ5OihCT09MKXZhbHVlIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogLSAodm9pZClfc2V0UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1Rlc3RpbmdDYWxsYmFjazoobnVsbGFibGUgdm9pZCAoXikoV0tXZWJzaXRlRGF0
YVN0b3JlICosIE5TU3RyaW5nICopKWNhbGxiYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTMpLCBpb3MoMTEuMCkpOwogLSAodm9pZClfZ2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXNGb3I6
KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TQXJyYXk8
TlNTdHJpbmcgKj4gKmRvbWFpbnMpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogKyAodm9pZClfYWxsb3dXZWJzaXRlRGF0YVJlY29y
ZHNGb3JBbGxPcmlnaW5zIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4z
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA5Yjg2ODcx
NzEyOGI5ZjBiNTkyYzk0YzNiMzI1NTA3ZDk5ZDY3OTdiLi42YmQ0YjJjZmU1M2I2YzFjYzFhZmY2
OGEyYjJiNzY3MjlkNjdjNTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKQEAgLTQ1NjIsOCArNDU2MiwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNo
RG9jdW1lbnRMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NAogICAg
IGlmIChmcmFtZS0+aXNNYWluRnJhbWUoKSAmJiBuYXZpZ2F0aW9uSUQpCiAgICAgICAgIG5hdmln
YXRpb24gPSBuYXZpZ2F0aW9uU3RhdGUoKS5uYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCk7CiAKLSAg
ICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkpCisgICAgaWYgKGZyYW1lLT5pc01haW5GcmFtZSgp
KSB7CiAgICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkRmluaXNoRG9jdW1lbnRMb2FkKCp0
aGlzLCBuYXZpZ2F0aW9uLmdldCgpLCBtX3Byb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVj
dHModXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQorICAgICAgICBtX2RpZEZpbmlzaERvY3VtZW50TG9hZEZvck1haW5GcmFtZVRp
bWVzdGFtcCA9IE1vbm90b25pY1RpbWU6Om5vdygpOworI2VuZGlmCisgICAgfQogfQogCiB2b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKQEAg
LTQ5NzcsOCArNDk4MSw2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzCiAgICAgV2ViRnJhbWVQ
cm94eSogb3JpZ2luYXRpbmdGcmFtZSA9IG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YS5mcmFtZUlE
ID8gcHJvY2Vzcy0+d2ViRnJhbWUoKm9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YS5mcmFtZUlEKSA6
IG51bGxwdHI7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIGlm
IChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgPSB3ZWJzaXRlRGF0YVN0b3JlKCku
cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUtPmxvZ0ZyYW1lTmF2aWdhdGlvbihmcmFtZSwgVVJMKFVSTCgpLCBtX3BhZ2VMb2FkU3Rh
dGUudXJsKCkpLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlLnVybCgpKTsKICAgICBsb2dGcmFt
ZU5hdmlnYXRpb24oZnJhbWUsIFVSTChVUkwoKSwgbV9wYWdlTG9hZFN0YXRlLnVybCgpKSwgcmVx
dWVzdCwgcmVkaXJlY3RSZXNwb25zZS51cmwoKSk7CiAjZW5kaWYKIApAQCAtNTA2MSw3ICs1MDYz
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBXZWJGcmFt
ZVByb3h5JiBmcmFtZSwgY29uc3QgVVJMJiBwYWcKICAgICBpZiAodGFyZ2V0SG9zdC5pc0VtcHR5
KCkgfHwgbWFpbkZyYW1lSG9zdC5pc0VtcHR5KCkgfHwgdGFyZ2V0SG9zdCA9PSBzb3VyY2VVUkwu
aG9zdCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCku
c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3MoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpMb2dGcmFt
ZU5hdmlnYXRpb24obV93ZWJzaXRlRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSwgUmVnaXN0cmFibGVE
b21haW4geyB0YXJnZXRVUkwgfSwgUmVnaXN0cmFibGVEb21haW4geyBwYWdlVVJMIH0sIFJlZ2lz
dHJhYmxlRG9tYWluIHsgc291cmNlVVJMIH0sIGlzUmVkaXJlY3QsIGZyYW1lLmlzTWFpbkZyYW1l
KCkpKTsKKyAgICBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkuc2VuZFRvTmV0d29ya2luZ1Byb2Nl
c3MoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpMb2dGcmFtZU5hdmlnYXRpb24obV93ZWJzaXRl
RGF0YVN0b3JlLT5zZXNzaW9uSUQoKSwgUmVnaXN0cmFibGVEb21haW4geyB0YXJnZXRVUkwgfSwg
UmVnaXN0cmFibGVEb21haW4geyBwYWdlVVJMIH0sIFJlZ2lzdHJhYmxlRG9tYWluIHsgc291cmNl
VVJMIH0sIGlzUmVkaXJlY3QsIGZyYW1lLmlzTWFpbkZyYW1lKCksIE1vbm90b25pY1RpbWU6Om5v
dygpIC0gbV9kaWRGaW5pc2hEb2N1bWVudExvYWRGb3JNYWluRnJhbWVUaW1lc3RhbXApKTsKIH0K
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDgxODll
MDg1ZTQzZWEzMDRiMzhmZjg0ZTQxZTZlNDlmMTBjOGRhMjAuLmFkNzI2M2FiZWRlY2Y0NmM0ZDgx
MjcxYjMxNWRjZjZlZWZlMDc0YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCkBAIC0yNjUxLDYgKzI2NTEsMTAgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHk+IG1fd2ViRGV2aWNlT3JpZW50
YXRpb25VcGRhdGVQcm92aWRlclByb3h5OwogI2VuZGlmCisKKyNpZiBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQorICAgIE1vbm90b25pY1RpbWUgbV9kaWRGaW5pc2hEb2N1bWVudExv
YWRGb3JNYWluRnJhbWVUaW1lc3RhbXA7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29j
b2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCmluZGV4IGUwZDUxMjA5MjYy
ZWVhMzRlMDQ5NmM2NWZhNmU5YTRmNTllNjRkOTMuLjcyMzVlZjhkOGRiNTZlZjMyN2IzZTJiNTJm
NDJjMDM4ODBlOGI5YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0KQEAg
LTIzNSwxNCArMjM1LDcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpwbGF0Zm9ybUluaXRpYWxp
emUoKQogI2Vsc2UKICAgICAgICAgTlNTdHJpbmcgKm5vdGlmaWNhdGlvbk5hbWUgPSBVSUFwcGxp
Y2F0aW9uV2lsbFRlcm1pbmF0ZU5vdGlmaWNhdGlvbjsKICNlbmRpZgotICAgICAgICB0ZXJtaW5h
dGlvbk9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRP
YnNlcnZlckZvck5hbWU6bm90aWZpY2F0aW9uTmFtZSBvYmplY3Q6bmlsIHF1ZXVlOm5pbCB1c2lu
Z0Jsb2NrOl4oTlNOb3RpZmljYXRpb24gKm5vdGUpIHsKLSAgICAgICAgICAgIGZvciAoYXV0byYg
ZGF0YVN0b3JlIDogZGF0YVN0b3JlcygpKSB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKLSAgICAgICAgICAgICAgICBpZiAoZGF0YVN0b3JlLT5tX3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MpCi0gICAgICAgICAgICAgICAgICAgIGRhdGFTdG9yZS0+bV9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzLT5hcHBsaWNhdGlvbldpbGxUZXJtaW5hdGUoKTsKLSNlbmRpZgotICAgICAgICAg
ICAgfQotICAgICAgICB9XTsKKyAgICAgICAgdGVybWluYXRpb25PYnNlcnZlciA9IFtbTlNOb3Rp
ZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOm5vdGlmaWNh
dGlvbk5hbWUgb2JqZWN0Om5pbCBxdWV1ZTpuaWwgdXNpbmdCbG9jazpeKE5TTm90aWZpY2F0aW9u
ICpub3RlKSB7IH1dOwogICAgIH0KIAogICAgIEFTU0VSVCghZGF0YVN0b3JlcygpLmNvbnRhaW5z
KHRoaXMpKTsKQEAgLTI1MSwxMSArMjQ0LDYgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpwbGF0
Zm9ybUluaXRpYWxpemUoKQogCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnBsYXRmb3JtRGVzdHJv
eSgpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICBpZiAobV9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzKQotICAgICAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mt
PmFwcGxpY2F0aW9uV2lsbFRlcm1pbmF0ZSgpOwotI2VuZGlmCi0KICAgICBBU1NFUlQoZGF0YVN0
b3JlcygpLmNvbnRhaW5zKHRoaXMpKTsKICAgICBkYXRhU3RvcmVzKCkucmVtb3ZlKHRoaXMpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmgKaW5kZXggYTc1YjFhZTZkY2I3YTRiMzNiZjcwZmVhMjhiM2Q2YzMyMGNkY2Fi
Yi4uYzQ5MGEwYjFjMzU3Y2UwYTkzNGZkY2RhZmJmZDkwYWQzMGViNmVhNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
aApAQCAtMTMxLDcgKzEzMSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25EaXJlY3RvcnkoU3RyaW5nJiYgZGlyZWN0b3J5KSB7IG1fcmVzb2x2ZWRDb25m
aWd1cmF0aW9uLT5zZXRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KFdURk1vdmUo
ZGlyZWN0b3J5KSk7IH0KIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0g
ICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNz
KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmdldCgpOyB9CiAgICAg
dm9pZCBjbGVhclJlc291cmNlTG9hZFN0YXRpc3RpY3NJbldlYlByb2Nlc3NlcyhDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogI2VuZGlmCiAKQEAgLTMzNiw3ICszMzUsNiBAQCBwcml2YXRl
OgogICAgIGNvbnN0IFJlZjxEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZT4gbV9kZXZpY2VJZEhhc2hT
YWx0U3RvcmFnZTsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAg
UmVmUHRyPFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZT4gbV9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzOwogICAgIGJvb2wgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlIHsgZmFs
c2UgfTsKICAgICBib29sIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQgeyBmYWxzZSB9
OwogICAgIFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmKT4gbV9zdGF0aXN0aWNzVGVz
dGluZ0NhbGxiYWNrOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDExZjg2ODdkMTUwNTAxMzUxYmM0ZDEwZDc4NDUzOWM2Y2RhMWI2OWYuLmI3NWNk
OTkxZGE4MjhlZDQzZmUwYWU2M2QzN2FkNzgyYTEwOThiOWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0xMi0y
MCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXNvdXJj
ZSBMb2FkIFN0YXRpc3RpY3M6IEFkZCB0aW1pbmcgaW5mb3JtYXRpb24gdG8gV2ViUGFnZVByb3h5
Ojpsb2dGcmFtZU5hdmlnYXRpb24oKSB0byBkZXRlY3QgZGVsYXllZCBjbGllbnQtc2lkZSByZWRp
cmVjdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NTUyMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgxMjU3NTk+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29h
L1Rlc3RDb250cm9sbGVyQ29jb2EubW06CisgICAgICAgIChXVFI6OmluaXRpYWxpemVXZWJWaWV3
Q29uZmlndXJhdGlvbik6CisgICAgICAgICAgICBSZW1vdmVkIGRlYWQgY29kZS4KKwogMjAxOS0x
Mi0yMCAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgbGxk
YndlYmtpdHRlc3RlcjogU3RyaXAgQ0xBTkdfREVCVUdfSU5GT1JNQVRJT05fTEVWRUwgb3B0aW9u
IHdoaWxlIGJ1aWxkaW5nCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29h
L1Rlc3RDb250cm9sbGVyQ29jb2EubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rl
c3RDb250cm9sbGVyQ29jb2EubW0KaW5kZXggMTg4NjgxNGYxZWY5Y2IyYjdmNzFkZTQxYTViNTVk
OGFhYmEyMjBlNi4uOWM3OTUwYjlmODMyNTc4MDFjZThlODk1ZThiOTU5ZTQ2YWNiM2IwZCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29h
Lm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2Nv
YS5tbQpAQCAtODEsNyArODEsNiBAQCB2b2lkIGluaXRpYWxpemVXZWJWaWV3Q29uZmlndXJhdGlv
bihjb25zdCBjaGFyKiBsaWJyYXJ5UGF0aCwgV0tTdHJpbmdSZWYgaW5qZWN0ZQogICAgIH0KIAog
ICAgIFtnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlIF9zZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDpZRVNdOwotICAgIFtnbG9iYWxXZWJWaWV3Q29uZmln
dXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlIF9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2V0U2hvdWxk
U3VibWl0VGVsZW1ldHJ5Ok5PXTsKIAogICAgIFtnbG9iYWxXZWJzaXRlRGF0YVN0b3JlRGVsZWdh
dGVDbGllbnQgcmVsZWFzZV07CiAgICAgZ2xvYmFsV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlQ2xp
ZW50ID0gW1tUZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlIGFsbG9jXSBpbml0XTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCAxNzhhYzg2ZjU5YjQ4ZjBhNjU5ZWZjODQzOGQ4YTI0ZDM0ODlhYzFhLi4zZThhODlmZmNiZDNj
ZGJhOWY0NWQ3ZDAxYjMxNDcwMjk1Zjc5MzU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTkt
MTItMjAgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVz
b3VyY2UgTG9hZCBTdGF0aXN0aWNzOiBBZGQgdGltaW5nIGluZm9ybWF0aW9uIHRvIFdlYlBhZ2VQ
cm94eTo6bG9nRnJhbWVOYXZpZ2F0aW9uKCkgdG8gZGV0ZWN0IGRlbGF5ZWQgY2xpZW50LXNpZGUg
cmVkaXJlY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDU1MjIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4MTI1NzU5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2xvZy1jcm9zcy1zaXRlLWxvYWQtd2l0aC1saW5rLWRlY29yYXRpb24t
ZXhwZWN0ZWQudHh0OgorICAgICAgICAgICAgVXBkYXRlZCB3aXRoIHRoZSBhZGRpdGlvbmFsIGRh
dGEgbm93IHRoYXQgZXZlbiBhIGRlbGF5ZWQgcmVkaXJlY3QgaXMgY2FwdHVyZWQuCisKIDIwMTkt
MTItMjAgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc29t
ZSBtaXNzaW5nIHNraXBzIGluIExheW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlv
bnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9sb2ctY3Jvc3Mtc2l0ZS1sb2FkLXdpdGgtbGluay1kZWNvcmF0aW9uLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9sb2ctY3Jv
c3Mtc2l0ZS1sb2FkLXdpdGgtbGluay1kZWNvcmF0aW9uLWV4cGVjdGVkLnR4dAppbmRleCA1Y2Nk
MTI0NWRmMzY3Mjg3NjI5Nzk2OGVkNjgzMzdhMjM3Njc1OGU0Li45OWQzM2FkMWQxMTI2YzU3NTQ5
YWI2MTZmZmMwMTdkYzg0NjE0MWRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbG9nLWNyb3NzLXNpdGUtbG9hZC13aXRoLWxpbmstZGVj
b3JhdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2xvZy1jcm9zcy1zaXRlLWxvYWQtd2l0aC1saW5rLWRlY29yYXRpb24t
ZXhwZWN0ZWQudHh0CkBAIC02LDYgKzYsOCBAQCBSZWdpc3RyYWJsZSBkb21haW46IGxvY2FsaG9z
dAogICAgIGhhZFVzZXJJbnRlcmFjdGlvbjogTm8KICAgICBtb3N0UmVjZW50VXNlckludGVyYWN0
aW9uOiAtMQogICAgIGdyYW5kZmF0aGVyZWQ6IE5vCisgICAgdG9wRnJhbWVVbmlxdWVSZWRpcmVj
dHNGcm9tOgorICAgICAgICAxMjcuMC4wLjEKICAgICB0b3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zy
b206CiAgICAgICAgIDEyNy4wLjAuMQogICAgIGdvdExpbmtEZWNvcmF0aW9uRnJvbVByZXZhbGVu
dFJlc291cmNlOiBZZXMKQEAgLTE2LDYgKzE4LDggQEAgUmVnaXN0cmFibGUgZG9tYWluOiAxMjcu
MC4wLjEKICAgICBoYWRVc2VySW50ZXJhY3Rpb246IE5vCiAgICAgbW9zdFJlY2VudFVzZXJJbnRl
cmFjdGlvbjogLTEKICAgICBncmFuZGZhdGhlcmVkOiBObworICAgIHRvcEZyYW1lVW5pcXVlUmVk
aXJlY3RzVG86CisgICAgICAgIGxvY2FsaG9zdAogICAgIGdvdExpbmtEZWNvcmF0aW9uRnJvbVBy
ZXZhbGVudFJlc291cmNlOiBObwogICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IFllcwogICAgIGlz
VmVyeVByZXZhbGVudFJlc291cmNlOiBObwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386892</attachid>
            <date>2020-01-06 14:48:50 -0800</date>
            <delta_ts>2020-01-08 11:40:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205522-20200106144850.patch</filename>
            <type>text/plain</type>
            <size>41045</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE2NDg2NjAyZWU2MzM4MDYz
Nzc0Nzk1YjNlMTUwYzI1MDM5YmFmODcuLmViNWEwODI3ZDE4ZjYxZDUxMDVkZTQ5ODhhMTg5NWMw
YTk0YjNlZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkgQEAKKzIwMjAtMDEtMDYgIEpvaG4gV2ls
YW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzb3VyY2UgTG9hZCBTdGF0
aXN0aWNzOiBBZGQgdGltaW5nIGluZm9ybWF0aW9uIHRvIFdlYlBhZ2VQcm94eTo6bG9nRnJhbWVO
YXZpZ2F0aW9uKCkgdG8gZGV0ZWN0IGRlbGF5ZWQgY2xpZW50LXNpZGUgcmVkaXJlY3RzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU1MjIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzU4MTI1NzU5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwdXJwb3NlIG9mIHRoaXMgcGF0Y2ggaXMgdG8gY2Fw
dHVyZSBuYXZpZ2F0aW9ucyB0aGF0IGhhcHBlbiBwcm9ncmFtbWF0aWNhbGx5CisgICAgICAgIGFm
dGVyIHRoZSBkb2N1bWVudCBoYXMgbG9hZGVkLiBUaGVzZSBhcmUgZGVsYXllZCByZWRpcmVjdHMg
YW5kIHNob3VsZCBiZSBjb3VudGVkCisgICAgICAgIGFzIHJlZGlyZWN0cyBpbiBJVFAuCisKKyAg
ICAgICAgVG8gYWNoaWV2ZSB0aGlzLCBhIHRpbWVzdGFtcCBpcyBjYXB0dXJlZCBpbgorICAgICAg
ICBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKCkgdG8gYmUgYWJs
ZSB0byBjYWxjdWxhdGUgaG93IG11Y2ggdGltZQorICAgICAgICBoYXMgcGFzc2VkIHNpbmNlIHRo
YXQgdGltZXN0YW1wIGluIHRoZSBJUEMgc2VudCBmcm9tCisgICAgICAgIFdlYlBhZ2VQcm94eTo6
bG9nRnJhbWVOYXZpZ2F0aW9uKCkuIFRoZSBJUEMgYWxzbyBnZXRzIGluZm9ybWF0aW9uIG9uIHdo
ZXRoZXIKKyAgICAgICAgdXNlckluaXRpYXRlZEFjdGl2aXR5IGV4aXN0cyBzbyB0aGF0IElUUCBj
YW4gZGVjaWRlIHdoZXRoZXIgdG8gdHJlYXQgdGhlIG5hdmlnYXRpb24KKyAgICAgICAgYXMgdHJp
Z2dlcmVkIGJ5IHRoZSB1c2VyIG9yIG5vdC4KKworICAgICAgICBFeGlzdGluZyB0ZXN0IGV4cGVj
dGF0aW9ucyB3ZXJlIHVwZGF0ZWQgc2luY2UgbmV3IHJlZGlyZWN0cyBhcmUgY2FwdHVyZWQuCisK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbik6CisgICAgICAgICAgICBOb3cg
dGFrZXMgdGhlIGV4dHJhIHBhcmFtZXRlcnMgZGVsYXlBZnRlck1haW5GcmFtZURvY3VtZW50TG9h
ZAorICAgICAgICAgICAgYW5kIHdhc1BvdGVudGlhbGx5SW5pdGlhdGVkQnlVc2VyLgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9uKToKKyAgICAgICAg
ICAgIE5vdyB0YWtlcyB0aGUgZXh0cmEgcGFyYW1ldGVycyBkZWxheUFmdGVyTWFpbkZyYW1lRG9j
dW1lbnRMb2FkCisgICAgICAgICAgICBhbmQgd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIu
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzTWVtb3J5U3RvcmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24p
OgorICAgICAgICAgICAgTm93IHRha2VzIHRoZSBleHRyYSBwYXJhbWV0ZXJzIGRlbGF5QWZ0ZXJN
YWluRnJhbWVEb2N1bWVudExvYWQKKyAgICAgICAgICAgIGFuZCB3YXNQb3RlbnRpYWxseUluaXRp
YXRlZEJ5VXNlci4KKyAgICAgICAgICAgIFRoZSBkZWxldGVkIFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9uKCkgd2FzIGRlYWQgY29kZS4KKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmxvZ0ZyYW1lTmF2aWdhdGlvbik6CisgICAgICAg
ICAgICBOb3cgdGFrZXMgdGhlIGV4dHJhIHBhcmFtZXRlcnMgZGVsYXlBZnRlck1haW5GcmFtZURv
Y3VtZW50TG9hZAorICAgICAgICAgICAgYW5kIHdhc1BvdGVudGlhbGx5SW5pdGlhdGVkQnlVc2Vy
LgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW06CisgICAgICAgICgtW1dLV2Vi
c2l0ZURhdGFTdG9yZSBfcmVzb3VyY2VMb2FkU3RhdGlzdGljc1NldFNob3VsZFN1Ym1pdFRlbGVt
ZXRyeTpdKTogRGVsZXRlZC4KKyAgICAgICAgICAgIERlYWQgY29kZS4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSk6CisgICAgICAgICAgICBOb3cgY2FwdHVy
ZXMgYSB0aW1lc3RhbXAuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgICAgICBSZW1vdmVkIGRlYWQgY29kZS4K
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2dGcmFtZU5hdmlnYXRpb24pOgorICAg
ICAgICAgICAgTm93IHNlbmRzIHRoZSBkaWZmIGJldHdlZW4gbm93IGFuZCB0aGUgdGltZXN0YW1w
IGNhcHR1cmVkIGluCisgICAgICAgICAgICBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaERvY3VtZW50
TG9hZEZvckZyYW1lKCkuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2Eu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBsYXRmb3JtSW5pdGlhbGl6
ZSk6CisgICAgICAgICAgICBSZW1vdmVkIGRlYWQgY29kZS4KKyAgICAgICAgKFdlYktpdDo6V2Vi
c2l0ZURhdGFTdG9yZTo6cGxhdGZvcm1EZXN0cm95KToKKyAgICAgICAgICAgIFJlbW92ZWQgZGVh
ZCBjb2RlLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnJlc291cmNlTG9hZFN0YXRp
c3RpY3MgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAgICAgRGVhZCBjb2RlLgorCiAyMDIwLTAx
LTA1ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgR3Jh
cGhpY3NDb250ZXh0M0QgdG8gR3JhcGhpY3NDb250ZXh0R0wKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCmluZGV4IDY1NDFhNGNhMTQ5
NjBhZGJmMzBkYmQyZDk4MjQ0ODFjYmRmMTA2YmYuLmI1YWIyN2YyYjQ4M2I1MjZhYWE0YjRiMGIy
MzkxN2ZlNDYzMDJkMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlLmNwcApAQCAtMTUwOCw3ICsxNTA4LDcgQEAgVmVjdG9yPFJlZ2lz
dHJhYmxlRG9tYWluPiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZW5zdXJl
UHJldmFsZW50UmUKICAgICByZXR1cm4gcHJpbWFyeURvbWFpbnNUb0Jsb2NrOwogfQogCi12b2lk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24o
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRhcmdldERvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHRvcEZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc291cmNlRG9t
YWluLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUpCit2b2lkIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHRhcmdldERvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZy
YW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc291cmNlRG9tYWluLCBib29sIGlz
UmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUsIFNlY29uZHMgZGVsYXlBZnRlck1haW5GcmFtZURv
Y3VtZW50TG9hZCwgYm9vbCB3YXNQb3RlbnRpYWxseUluaXRpYXRlZEJ5VXNlcikKIHsKICAgICBB
U1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMTUyMywxOSArMTUyMywyMyBAQCB2b2lk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24o
Y29uc3QgUmVnaXN0cmFibGVEbwogICAgICAgICBzdGF0aXN0aWNzV2VyZVVwZGF0ZWQgPSB0cnVl
OwogICAgIH0KIAotICAgIGlmIChpc1JlZGlyZWN0ICYmICFhcmVUYXJnZXRBbmRTb3VyY2VEb21h
aW5zU2FtZVNpdGUpIHsKKyAgICBpZiAoIWFyZVRhcmdldEFuZFNvdXJjZURvbWFpbnNTYW1lU2l0
ZSkgewogICAgICAgICBpZiAoaXNNYWluRnJhbWUpIHsKLSAgICAgICAgICAgIGF1dG8gcmVkaXJl
Y3RpbmdEb21haW5SZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJs
ZURvbWFpbihzb3VyY2VEb21haW4pOwotICAgICAgICAgICAgYXV0byB0YXJnZXRSZXN1bHQgPSBl
bnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0YXJnZXREb21haW4p
OwotICAgICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwTGlzdCh0b3BGcmFtZVVuaXF1
ZVJlZGlyZWN0c1RvUXVlcnksIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+KHsgdGFyZ2V0RG9t
YWluIH0pLCByZWRpcmVjdGluZ0RvbWFpblJlc3VsdC5zZWNvbmQpOwotICAgICAgICAgICAgaW5z
ZXJ0RG9tYWluUmVsYXRpb25zaGlwTGlzdCh0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb21RdWVy
eSwgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4oeyBzb3VyY2VEb21haW4gfSksIHRhcmdldFJl
c3VsdC5zZWNvbmQpOwotICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYm9vbCB3YXNOYXZp
Z2F0ZWRBZnRlclNob3J0RGVsYXlXaXRob3V0VXNlckludGVyYWN0aW9uID0gIXdhc1BvdGVudGlh
bGx5SW5pdGlhdGVkQnlVc2VyICYmIGRlbGF5QWZ0ZXJNYWluRnJhbWVEb2N1bWVudExvYWQgPCBw
YXJhbWV0ZXJzKCkubWluRGVsYXlBZnRlck1haW5GcmFtZURvY3VtZW50TG9hZFRvTm90QmVBUmVk
aXJlY3Q7CisgICAgICAgICAgICBpZiAoaXNSZWRpcmVjdCB8fCB3YXNOYXZpZ2F0ZWRBZnRlclNo
b3J0RGVsYXlXaXRob3V0VXNlckludGVyYWN0aW9uKSB7CisgICAgICAgICAgICAgICAgYXV0byBy
ZWRpcmVjdGluZ0RvbWFpblJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lz
dHJhYmxlRG9tYWluKHNvdXJjZURvbWFpbik7CisgICAgICAgICAgICAgICAgYXV0byB0YXJnZXRS
ZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0YXJn
ZXREb21haW4pOworICAgICAgICAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3Qo
dG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1F1ZXJ5LCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWlu
Pih7IHRhcmdldERvbWFpbiB9KSwgcmVkaXJlY3RpbmdEb21haW5SZXN1bHQuc2Vjb25kKTsKKyAg
ICAgICAgICAgICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXBMaXN0KHRvcEZyYW1lVW5pcXVl
UmVkaXJlY3RzRnJvbVF1ZXJ5LCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPih7IHNvdXJjZURv
bWFpbiB9KSwgdGFyZ2V0UmVzdWx0LnNlY29uZCk7CisgICAgICAgICAgICAgICAgc3RhdGlzdGlj
c1dlcmVVcGRhdGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChp
c1JlZGlyZWN0KSB7CiAgICAgICAgICAgICBhdXRvIHJlZGlyZWN0aW5nRG9tYWluUmVzdWx0ID0g
ZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4oc291cmNlRG9tYWlu
KTsKICAgICAgICAgICAgIGF1dG8gdGFyZ2V0UmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0
aWNzRm9yUmVnaXN0cmFibGVEb21haW4odGFyZ2V0RG9tYWluKTsKICAgICAgICAgICAgIGluc2Vy
dERvbWFpblJlbGF0aW9uc2hpcExpc3Qoc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUb1F1ZXJ5
LCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPih7IHRhcmdldERvbWFpbiB9KSwgcmVkaXJlY3Rp
bmdEb21haW5SZXN1bHQuc2Vjb25kKTsKICAgICAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9u
c2hpcExpc3Qoc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tUXVlcnksIEhhc2hTZXQ8UmVn
aXN0cmFibGVEb21haW4+KHsgc291cmNlRG9tYWluIH0pLCB0YXJnZXRSZXN1bHQuc2Vjb25kKTsK
KyAgICAgICAgICAgIHN0YXRpc3RpY3NXZXJlVXBkYXRlZCA9IHRydWU7CiAgICAgICAgIH0KLSAg
ICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKICAgICB9CiAKICAgICBpZiAoc3Rh
dGlzdGljc1dlcmVVcGRhdGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmUuaAppbmRleCA5YjMxMGVjM2M2ZjA1ZDMyNGNjZTQzNTMxNTI3MDZk
YjRjYTZmMTJmLi45MDgzMWQ4OWY3YWJlNDkyZDAxZjYwZDUzM2I2YjZkOGM0NWNhMTJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaApA
QCAtMTI0LDcgKzEyNCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNz
KFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3Rv
cmFnZUFjY2Vzc1N0YXR1cyk+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNj
ZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQ
cm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNj
ZXNzV2FzR3JhbnRlZCk+JiYpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBsb2dGcmFtZU5hdmlnYXRp
b24oY29uc3QgTmF2aWdhdGVkVG9Eb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0
IE5hdmlnYXRlZEZyb21Eb21haW4mLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUp
IG92ZXJyaWRlOworICAgIHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IE5hdmlnYXRlZFRv
RG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBjb25zdCBOYXZpZ2F0ZWRGcm9tRG9tYWlu
JiwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZyYW1lLCBTZWNvbmRzIGRlbGF5QWZ0ZXJN
YWluRnJhbWVEb2N1bWVudExvYWQsIGJvb2wgd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIp
IG92ZXJyaWRlOwogICAgIHZvaWQgbG9nVXNlckludGVyYWN0aW9uKGNvbnN0IFRvcEZyYW1lRG9t
YWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGxv
Z0Nyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24oY29uc3QgTmF2aWdhdGVkRnJvbURvbWFp
biYsIGNvbnN0IE5hdmlnYXRlZFRvRG9tYWluJikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzTWVtb3J5U3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAKaW5kZXggODkzODVhOWQ0
YzU5NjMxM2MxNjczOGEyNDc2OGIyNDFkZTlkZTdjYS4uMjBhZTdjNGFiZTk3NjI3ZTNhMWViNmE1
YWIzMWY3ZTZlYmRmNjRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NNZW1vcnlTdG9yZS5jcHAKQEAgLTQyOCw3ICs0MjgsNyBAQCBWZWN0b3I8UmVnaXN0cmFi
bGVEb21haW4+IFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6ZW5zdXJlUHJldmFs
ZW50UmVzbwogICAgIHJldHVybiBkb21haW5zVG9CbG9jazsKIH0KIAotdm9pZCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgdGFyZ2V0RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJh
bWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzb3VyY2VEb21haW4sIGJvb2wgaXNS
ZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSkKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01l
bW9yeVN0b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRh
cmdldERvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgc291cmNlRG9tYWluLCBib29sIGlzUmVkaXJlY3QsIGJvb2wg
aXNNYWluRnJhbWUsIFNlY29uZHMgZGVsYXlBZnRlck1haW5GcmFtZURvY3VtZW50TG9hZCwgYm9v
bCB3YXNQb3RlbnRpYWxseUluaXRpYXRlZEJ5VXNlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6
OmlzTWFpbigpKTsKIApAQCAtNDQzLDE1ICs0NDMsMTggQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWVtb3J5U3RvcmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBSZWdpc3RyYWJsZURv
bWEKICAgICAgICAgICAgIHN0YXRpc3RpY3NXZXJlVXBkYXRlZCA9IHRydWU7CiAgICAgfQogCi0g
ICAgaWYgKGlzUmVkaXJlY3QgJiYgIWFyZVRhcmdldEFuZFNvdXJjZURvbWFpbnNTYW1lU2l0ZSkg
eworICAgIGlmICghYXJlVGFyZ2V0QW5kU291cmNlRG9tYWluc1NhbWVTaXRlKSB7CiAgICAgICAg
IGlmIChpc01haW5GcmFtZSkgewogICAgICAgICAgICAgYXV0byYgcmVkaXJlY3RpbmdEb21haW5T
dGF0aXN0aWNzID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4o
c291cmNlRG9tYWluKTsKLSAgICAgICAgICAgIGlmIChyZWRpcmVjdGluZ0RvbWFpblN0YXRpc3Rp
Y3MudG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUby5hZGQodGFyZ2V0RG9tYWluKS5pc05ld0VudHJ5
KQotICAgICAgICAgICAgICAgIHN0YXRpc3RpY3NXZXJlVXBkYXRlZCA9IHRydWU7Ci0gICAgICAg
ICAgICBhdXRvJiB0YXJnZXRTdGF0aXN0aWNzID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9y
UmVnaXN0cmFibGVEb21haW4odGFyZ2V0RG9tYWluKTsKLSAgICAgICAgICAgIGlmICh0YXJnZXRT
dGF0aXN0aWNzLnRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbS5hZGQoc291cmNlRG9tYWluKS5p
c05ld0VudHJ5KQotICAgICAgICAgICAgICAgIHN0YXRpc3RpY3NXZXJlVXBkYXRlZCA9IHRydWU7
Ci0gICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBib29sIHdhc05hdmlnYXRlZEFmdGVyU2hv
cnREZWxheVdpdGhvdXRVc2VySW50ZXJhY3Rpb24gPSAhd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRC
eVVzZXIgJiYgZGVsYXlBZnRlck1haW5GcmFtZURvY3VtZW50TG9hZCA8IHBhcmFtZXRlcnMoKS5t
aW5EZWxheUFmdGVyTWFpbkZyYW1lRG9jdW1lbnRMb2FkVG9Ob3RCZUFSZWRpcmVjdDsKKyAgICAg
ICAgICAgIGlmIChpc1JlZGlyZWN0IHx8IHdhc05hdmlnYXRlZEFmdGVyU2hvcnREZWxheVdpdGhv
dXRVc2VySW50ZXJhY3Rpb24pIHsKKyAgICAgICAgICAgICAgICBpZiAocmVkaXJlY3RpbmdEb21h
aW5TdGF0aXN0aWNzLnRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8uYWRkKHRhcmdldERvbWFpbiku
aXNOZXdFbnRyeSkKKyAgICAgICAgICAgICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0g
dHJ1ZTsKKyAgICAgICAgICAgICAgICBhdXRvJiB0YXJnZXRTdGF0aXN0aWNzID0gZW5zdXJlUmVz
b3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4odGFyZ2V0RG9tYWluKTsKKyAgICAg
ICAgICAgICAgICBpZiAodGFyZ2V0U3RhdGlzdGljcy50b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zy
b20uYWRkKHNvdXJjZURvbWFpbikuaXNOZXdFbnRyeSkKKyAgICAgICAgICAgICAgICAgICAgc3Rh
dGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNl
IGlmIChpc1JlZGlyZWN0KSB7CiAgICAgICAgICAgICBhdXRvJiByZWRpcmVjdGluZ0RvbWFpblN0
YXRpc3RpY3MgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihz
b3VyY2VEb21haW4pOwogICAgICAgICAgICAgaWYgKHJlZGlyZWN0aW5nRG9tYWluU3RhdGlzdGlj
cy5zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLmFkZCh0YXJnZXREb21haW4pLmlzTmV3RW50
cnkpCiAgICAgICAgICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRhdGVkID0gdHJ1ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaAppbmRleCAwYjBl
NmQ4MDU2ZGIwNmEwYzhjNTU2MTQ4MjA3MzFiMTU5MTMzZGM3Li5iYWY4YjE2NGJiOTU4ODI3NWQy
YjJmY2U1ZWI1YTkzNzI2Y2E4YzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3NNZW1vcnlTdG9yZS5oCkBAIC0xMDQsNyArMTA0LDcgQEAgcHVibGljOgogICAgIHZv
aWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4m
JiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21h
aW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
V2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJikgb3ZlcnJpZGU7CiAKLSAg
ICB2b2lkIGxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYsIGNvbnN0
IFRvcEZyYW1lRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkRnJvbURvbWFpbiYsIGJvb2wgaXNSZWRp
cmVjdCwgYm9vbCBpc01haW5GcmFtZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBsb2dGcmFtZU5hdmln
YXRpb24oY29uc3QgTmF2aWdhdGVkVG9Eb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNv
bnN0IE5hdmlnYXRlZEZyb21Eb21haW4mLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJh
bWUsIFNlY29uZHMgZGVsYXlBZnRlck1haW5GcmFtZURvY3VtZW50TG9hZCwgYm9vbCB3YXNQb3Rl
bnRpYWxseUluaXRpYXRlZEJ5VXNlcikgb3ZlcnJpZGU7CiAgICAgdm9pZCBsb2dVc2VySW50ZXJh
Y3Rpb24oY29uc3QgVG9wRnJhbWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
IG92ZXJyaWRlOwogICAgIHZvaWQgbG9nQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihj
b25zdCBOYXZpZ2F0ZWRGcm9tRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkVG9Eb21haW4mKSBvdmVy
cmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IDdk
YWRmNGRiODg3MzUyYWNmOWUxZWY1ZjQwMDc0ZmFlZWFjMDNhODUuLjVlOTY2NDQ4NTBhOTI3ZmNm
MzUyZmIyNmY0ZWU1ODc2YTM3ZjhjMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmgKQEAgLTE3MSw3ICsxNzEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYs
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9t
YWluJiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpID0gMDsKIAotICAgIHZp
cnR1YWwgdm9pZCBsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgTmF2aWdhdGVkVG9Eb21haW4mLCBj
b25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IE5hdmlnYXRlZEZyb21Eb21haW4mLCBib29sIGlz
UmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbG9nRnJh
bWVOYXZpZ2F0aW9uKGNvbnN0IE5hdmlnYXRlZFRvRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21h
aW4mLCBjb25zdCBOYXZpZ2F0ZWRGcm9tRG9tYWluJiwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlz
TWFpbkZyYW1lLCBTZWNvbmRzIGRlbGF5QWZ0ZXJNYWluRnJhbWVEb2N1bWVudExvYWQsIGJvb2wg
d2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbG9n
VXNlckludGVyYWN0aW9uKGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGxvZ0Nyb3NzU2l0ZUxvYWRXaXRoTGlu
a0RlY29yYXRpb24oY29uc3QgTmF2aWdhdGVkRnJvbURvbWFpbiYsIGNvbnN0IE5hdmlnYXRlZFRv
RG9tYWluJikgPSAwOwogCkBAIC0yMjIsNiArMjIyLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBT
ZWNvbmRzIGdyYW5kZmF0aGVyaW5nVGltZSB7IDI0X2ggKiA3IH07CiAgICAgICAgIFNlY29uZHMg
Y2FjaGVNYXhBZ2VDYXBUaW1lIHsgMjRfaCAqIDcgfTsKICAgICAgICAgU2Vjb25kcyBjbGllbnRT
aWRlQ29va2llc0FnZUNhcFRpbWUgeyAyNF9oICogNyB9OworICAgICAgICBTZWNvbmRzIG1pbkRl
bGF5QWZ0ZXJNYWluRnJhbWVEb2N1bWVudExvYWRUb05vdEJlQVJlZGlyZWN0IHsgNV9zIH07CiAg
ICAgICAgIGJvb2wgc2hvdWxkTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCB7
IGZhbHNlIH07CiAgICAgICAgIGJvb2wgc2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRh
UmVjb3Jkc1JlbW92YWwgeyB0cnVlIH07CiAgICAgICAgIGJvb2wgc2hvdWxkU3VibWl0VGVsZW1l
dHJ5IHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmNwcAppbmRleCA4MjM5ZDZkOWY1Zjk0MjUwYTgxMTVlMGUzNTE5ODI5ZjlkZGZkMTgwLi4y
M2ZmZGM4N2EwNTgwOGIzZjIwMTJmNDg3NzhhZjEyYzJhYmQzYzFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApAQCAtNTU0LDQzICs1NTQsMTMg
QEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnN1Ym1pdFRlbGVtZXRyeShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYKICAgICB9KTsKIH0KIAotdm9pZCBXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBXZWJGcmFtZVBy
b3h5JiBmcmFtZSwgY29uc3QgVVJMJiBwYWdlVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFVSTCYgcmVkaXJlY3RVUkwpCit2b2lkIFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiB0YXJnZXREb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURv
bWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHNvdXJjZURvbWFpbiwgYm9vbCBpc1JlZGly
ZWN0LCBib29sIGlzTWFpbkZyYW1lLCBTZWNvbmRzIGRlbGF5QWZ0ZXJNYWluRnJhbWVEb2N1bWVu
dExvYWQsIGJvb2wgd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIpCiB7CiAgICAgQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIGF1dG8gc291cmNlVVJMID0gcmVkaXJlY3RVUkw7
Ci0gICAgYm9vbCBpc1JlZGlyZWN0ID0gIXJlZGlyZWN0VVJMLmlzTnVsbCgpOwotICAgIGlmICgh
aXNSZWRpcmVjdCkgewotICAgICAgICBzb3VyY2VVUkwgPSBmcmFtZS51cmwoKTsKLSAgICAgICAg
aWYgKHNvdXJjZVVSTC5pc051bGwoKSkKLSAgICAgICAgICAgIHNvdXJjZVVSTCA9IHBhZ2VVUkw7
Ci0gICAgfQotCi0gICAgYXV0byYgdGFyZ2V0VVJMID0gcmVxdWVzdC51cmwoKTsKLQotICAgIGlm
ICghdGFyZ2V0VVJMLmlzVmFsaWQoKSB8fCAhcGFnZVVSTC5pc1ZhbGlkKCkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIGF1dG8gdGFyZ2V0SG9zdCA9IHRhcmdldFVSTC5ob3N0KCk7Ci0gICAgYXV0
byBtYWluRnJhbWVIb3N0ID0gcGFnZVVSTC5ob3N0KCk7Ci0KLSAgICBpZiAodGFyZ2V0SG9zdC5p
c0VtcHR5KCkgfHwgbWFpbkZyYW1lSG9zdC5pc0VtcHR5KCkgfHwgdGFyZ2V0SG9zdCA9PSBzb3Vy
Y2VVUkwuaG9zdCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBSZWdpc3RyYWJsZURvbWFpbiB0
YXJnZXREb21haW4geyB0YXJnZXRVUkwgfTsKLSAgICBSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFt
ZURvbWFpbiB7IHBhZ2VVUkwgfTsKLSAgICBSZWdpc3RyYWJsZURvbWFpbiBzb3VyY2VEb21haW4g
eyBzb3VyY2VVUkwgfTsKLQotICAgIGxvZ0ZyYW1lTmF2aWdhdGlvbih0YXJnZXREb21haW4sIHRv
cEZyYW1lRG9tYWluLCBzb3VyY2VEb21haW4sIGlzUmVkaXJlY3QsIGZyYW1lLmlzTWFpbkZyYW1l
KCkpOwotfQotCi12b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bG9nRnJhbWVO
YXZpZ2F0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0YXJnZXREb21haW4sIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHNvdXJjZURvbWFpbiwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZyYW1lKQotewotICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBwb3N0VGFzayhbdGhpcywgdGFyZ2V0
RG9tYWluID0gdGFyZ2V0RG9tYWluLmlzb2xhdGVkQ29weSgpLCB0b3BGcmFtZURvbWFpbiA9IHRv
cEZyYW1lRG9tYWluLmlzb2xhdGVkQ29weSgpLCBzb3VyY2VEb21haW4gPSBzb3VyY2VEb21haW4u
aXNvbGF0ZWRDb3B5KCksIGlzUmVkaXJlY3QsIGlzTWFpbkZyYW1lXSB7CisgICAgcG9zdFRhc2so
W3RoaXMsIHRhcmdldERvbWFpbiA9IHRhcmdldERvbWFpbi5pc29sYXRlZENvcHkoKSwgdG9wRnJh
bWVEb21haW4gPSB0b3BGcmFtZURvbWFpbi5pc29sYXRlZENvcHkoKSwgc291cmNlRG9tYWluID0g
c291cmNlRG9tYWluLmlzb2xhdGVkQ29weSgpLCBpc1JlZGlyZWN0LCBpc01haW5GcmFtZSwgZGVs
YXlBZnRlck1haW5GcmFtZURvY3VtZW50TG9hZCwgd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVz
ZXJdIHsKICAgICAgICAgaWYgKG1fc3RhdGlzdGljc1N0b3JlKQotICAgICAgICAgICAgbV9zdGF0
aXN0aWNzU3RvcmUtPmxvZ0ZyYW1lTmF2aWdhdGlvbih0YXJnZXREb21haW4sIHRvcEZyYW1lRG9t
YWluLCBzb3VyY2VEb21haW4sIGlzUmVkaXJlY3QsIGlzTWFpbkZyYW1lKTsKKyAgICAgICAgICAg
IG1fc3RhdGlzdGljc1N0b3JlLT5sb2dGcmFtZU5hdmlnYXRpb24odGFyZ2V0RG9tYWluLCB0b3BG
cmFtZURvbWFpbiwgc291cmNlRG9tYWluLCBpc1JlZGlyZWN0LCBpc01haW5GcmFtZSwgZGVsYXlB
ZnRlck1haW5GcmFtZURvY3VtZW50TG9hZCwgd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIp
OwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmgKaW5kZXggMmU2YTkzZmJhZTA5NmU5MGFhZTQ5YzRkOTViODQwNzI3NGQ3MzA4ZC4uOWU2
MGNlMTE0ZWU0MzI3ZmM5OWYwNDc2Y2I5ZTE5Y2FkZWI0ZTFkOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApAQCAtMjEwLDggKzIxMCw3IEBAIHN0cnVj
dCBUaGlyZFBhcnR5RGF0YSB7CiAKICAgICB2b2lkIGFwcGxpY2F0aW9uV2lsbFRlcm1pbmF0ZSgp
OwogCi0gICAgdm9pZCBsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgV2ViRnJhbWVQcm94eSYsIGNv
bnN0IFVSTCYgcGFnZVVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
VVJMJiByZWRpcmVjdFVSTCk7Ci0gICAgdm9pZCBsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgTmF2
aWdhdGVkVG9Eb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IE5hdmlnYXRlZEZy
b21Eb21haW4mLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUpOworICAgIHZvaWQg
bG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IE5hdmlnYXRlZFRvRG9tYWluJiwgY29uc3QgVG9wRnJh
bWVEb21haW4mLCBjb25zdCBOYXZpZ2F0ZWRGcm9tRG9tYWluJiwgYm9vbCBpc1JlZGlyZWN0LCBi
b29sIGlzTWFpbkZyYW1lLCBTZWNvbmRzIGRlbGF5QWZ0ZXJNYWluRnJhbWVEb2N1bWVudExvYWQs
IGJvb2wgd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIpOwogICAgIHZvaWQgbG9nVXNlcklu
dGVyYWN0aW9uKGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKICAgICB2b2lkIGxvZ0Nyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24oY29uc3Qg
TmF2aWdhdGVkRnJvbURvbWFpbiYsIGNvbnN0IE5hdmlnYXRlZFRvRG9tYWluJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGNsZWFyVXNlckludGVyYWN0aW9uKGNvbnN0
IFRvcEZyYW1lRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggNGRhMDRh
ZGQyZmQyMmQ1NTE0NDQwNTlkZjVmMzIxMmFhOWFiNWRmZS4uMzk5MjZlYjZhYTg4YTlhMjYxYjM0
MDc4NWY3NDE4Yjg5ZmYyMTE2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTk4NCwxMSArOTg0LDExIEBAIHZvaWQgTmV0d29ya1By
b2Nlc3M6OmdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgQ29tcGxlCiAgICAgfQogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpsb2dGcmFtZU5hdmln
YXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
dGFyZ2V0RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzb3VyY2VEb21haW4sIGJvb2wgaXNSZWRpcmVjdCwgYm9v
bCBpc01haW5GcmFtZSkKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmxvZ0ZyYW1lTmF2aWdhdGlvbihQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0YXJnZXRE
b21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHNvdXJjZURvbWFpbiwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFp
bkZyYW1lLCBTZWNvbmRzIGRlbGF5QWZ0ZXJNYWluRnJhbWVEb2N1bWVudExvYWQsIGJvb2wgd2Fz
UG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNz
aW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewogICAgICAgICBpZiAoYXV0
byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG5ldHdvcmtTZXNzaW9uLT5yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5sb2dGcmFt
ZU5hdmlnYXRpb24odGFyZ2V0RG9tYWluLCB0b3BGcmFtZURvbWFpbiwgc291cmNlRG9tYWluLCBp
c1JlZGlyZWN0LCBpc01haW5GcmFtZSk7CisgICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzLT5sb2dGcmFtZU5hdmlnYXRpb24odGFyZ2V0RG9tYWluLCB0b3BGcmFtZURvbWFpbiwgc291
cmNlRG9tYWluLCBpc1JlZGlyZWN0LCBpc01haW5GcmFtZSwgZGVsYXlBZnRlck1haW5GcmFtZURv
Y3VtZW50TG9hZCwgd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIpOwogICAgIH0gZWxzZQog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCBjZjBlYzRkZTU2N2FlZWZhN2I3OGMyOTVi
MDM3ZWI4MjA4MTg4ZjkxLi5jYWFkYzIwMWJiMjRmNTJkMGQ3ZDNhZWNiODljZDllM2IwYWJhNjI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBA
IC0yMjUsNyArMjI1LDcgQEAgcHVibGljOgogICAgIHZvaWQgaXNSZWxhdGlvbnNoaXBPbmx5SW5E
YXRhYmFzZU9uY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJE
b21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BEb21haW4sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgaGFzTG9jYWxTdG9yYWdlKFBBTDo6U2Vzc2lv
bklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpOwogICAgIHZvaWQgZ2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoUEFMOjpTZXNzaW9u
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4gZG9tYWlucyk+JiYpOwot
ICAgIHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBOYXZpZ2F0
ZWRUb0RvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkRnJvbURv
bWFpbiYsIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSk7CisgICAgdm9pZCBsb2dG
cmFtZU5hdmlnYXRpb24oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IE5hdmlnYXRlZFRvRG9tYWluJiwg
Y29uc3QgVG9wRnJhbWVEb21haW4mLCBjb25zdCBOYXZpZ2F0ZWRGcm9tRG9tYWluJiwgYm9vbCBp
c1JlZGlyZWN0LCBib29sIGlzTWFpbkZyYW1lLCBTZWNvbmRzIGRlbGF5QWZ0ZXJNYWluRnJhbWVE
b2N1bWVudExvYWQsIGJvb2wgd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIpOwogICAgIHZv
aWQgbG9nVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBUb3BGcmFtZURvbWFp
biYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCByZW1vdmVQcmV2YWxl
bnREb21haW5zKFBBTDo6U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8UmVnaXN0cmFibGVEb21haW4+
Jik7CiAgICAgdm9pZCByZXNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFBB
TDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4K
aW5kZXggMmFkOTg4MWZjZjdlYTg0NGQ4MmJjNzdmYWMwN2Y0OTNkN2M0ZGU1ZS4uYTU2NjEzY2Rh
MzRjN2UzYWNlNTU0ZmQ3OGIzNTk0YmFiYWJkNjYwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xMDIs
NyArMTAyLDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewog
ICAgIElzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRGcm9tRG9tYWluLCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVkVG9Eb21haW4pIC0+IChib29sIGlzUmVkaXJl
Y3RpbmdUbykgQXN5bmMKICAgICBJc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFp
biwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4pIC0+IChib29sIGlz
U3ViZnJhbWVVbmRlcikgQXN5bmMKICAgICBJc1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXIo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJy
ZXNvdXJjZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4p
IC0+IChib29sIGlzU3VicmVzb3VyY2VVbmRlcikgQXN5bmMKLSAgICBMb2dGcmFtZU5hdmlnYXRp
b24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0
YXJnZXREb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzb3VyY2VEb21haW4sIGJvb2wgaXNSZWRpcmVjdCwg
Ym9vbCBpc01haW5GcmFtZSkKKyAgICBMb2dGcmFtZU5hdmlnYXRpb24oUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0YXJnZXREb21haW4sIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiBzb3VyY2VEb21haW4sIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSwg
U2Vjb25kcyBkZWxheUFmdGVyTWFpbkZyYW1lRG9jdW1lbnRMb2FkLCBib29sIHdhc1BvdGVudGlh
bGx5SW5pdGlhdGVkQnlVc2VyKQogICAgIExvZ1VzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluKSAt
PiAoKSBBc3luYwogICAgIFJlbW92ZVByZXZhbGVudERvbWFpbnMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBWZWN0b3I8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+IGRvbWFpbnNXaXRoSW50
ZXJhY3Rpb24pCiAgICAgUmVzZXRQYXJhbWV0ZXJzVG9EZWZhdWx0VmFsdWVzKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IDZjYjU3NGU1Y2Jj
MmU3ODQ1ZDU2ZjkxYTMxNjFmYTRlMDE2NWMzNDMuLmRiNTA2ZGM0MGQxMWIwZGEwZTgxOThlNjk0
M2Y3NmIxNTNiYjZkMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtNDA1LDE3ICs0MDUsNiBAQCAtIChO
U1VSTCAqKV9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeQogICAgIHJldHVybiBbTlNVUkwgZmls
ZVVSTFdpdGhQYXRoOl93ZWJzaXRlRGF0YVN0b3JlLT5jb25maWd1cmF0aW9uKCkuaW5kZXhlZERC
RGF0YWJhc2VEaXJlY3RvcnkoKSBpc0RpcmVjdG9yeTpZRVNdOwogfQogCi0tICh2b2lkKV9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU2V0U2hvdWxkU3VibWl0VGVsZW1ldHJ5OihCT09MKXZhbHVlCi17
Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICBhdXRvKiBzdG9yZSA9
IF93ZWJzaXRlRGF0YVN0b3JlLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCk7Ci0gICAgaWYgKCFz
dG9yZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc3RvcmUtPnNldFNob3VsZFN1Ym1pdFRlbGVt
ZXRyeSh2YWx1ZSk7Ci0jZW5kaWYKLX0KLQogLSAodm9pZClfc2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc1Rlc3RpbmdDYWxsYmFjazoodm9pZCAoXikoV0tXZWJzaXRlRGF0YVN0b3JlICosIE5TU3Ry
aW5nICopKWNhbGxiYWNrCiB7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVE
YXRhU3RvcmVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCmluZGV4IDE4Mjg1MTBiNjllYTU3MGZkNDM1NDBlZWQy
Zjk2MTIwODZkZTQ2NWIuLjcwODkyMmM3YTNhNzE1NTAzOTMwN2E1MGFmYjJiZGY0ZjA5YTQxYjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVE
YXRhU3RvcmVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaApAQCAtNjIsNyArNjIsNiBAQCB0eXBlZGVmIE5T
X09QVElPTlMoTlNVSW50ZWdlciwgX1dLV2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0aW9ucykgewog
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVVJMICpfaW5kZXhlZERCRGF0YWJh
c2VEaXJlY3Rvcnk7CiAKLS0gKHZvaWQpX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NTZXRTaG91bGRT
dWJtaXRUZWxlbWV0cnk6KEJPT0wpdmFsdWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyks
IGlvcygxMS4wKSk7CiAtICh2b2lkKV9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVzdGluZ0Nh
bGxiYWNrOihudWxsYWJsZSB2b2lkICheKShXS1dlYnNpdGVEYXRhU3RvcmUgKiwgTlNTdHJpbmcg
KikpY2FsbGJhY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAt
ICh2b2lkKV9nZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllc0ZvcjooV0tXZWJWaWV3ICopd2ViVmll
dyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBcnJheTxOU1N0cmluZyAqPiAqZG9tYWlu
cykpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygx
Mi4wKSk7CiArICh2b2lkKV9hbGxvd1dlYnNpdGVEYXRhUmVjb3Jkc0ZvckFsbE9yaWdpbnMgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDRmZjlkZGRmMzBhOTJiYTZhMGY3ZjMyNGMw
YmYxODcwNzdiMmU4ZjAuLmNjYjI2YjdlY2UwMjljZDA5MWFkZTRiNjM5OTE3MzIxOWY5YzNmZTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNDU2Miw4ICs0
NTYyLDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFt
ZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0CiAgICAgaWYgKGZyYW1lLT5pc01haW5G
cmFtZSgpICYmIG5hdmlnYXRpb25JRCkKICAgICAgICAgbmF2aWdhdGlvbiA9IG5hdmlnYXRpb25T
dGF0ZSgpLm5hdmlnYXRpb24obmF2aWdhdGlvbklEKTsKIAotICAgIGlmIChmcmFtZS0+aXNNYWlu
RnJhbWUoKSkKKyAgICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkpIHsKICAgICAgICAgbV9uYXZp
Z2F0aW9uQ2xpZW50LT5kaWRGaW5pc2hEb2N1bWVudExvYWQoKnRoaXMsIG5hdmlnYXRpb24uZ2V0
KCksIG1fcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3Qo
KSkuZ2V0KCkpOworI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgICAg
IG1fZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yTWFpbkZyYW1lVGltZXN0YW1wID0gTW9ub3Rvbmlj
VGltZTo6bm93KCk7CisjZW5kaWYKKyAgICB9CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRG
aW5pc2hMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQpAQCAtNDk3NiwxMCArNDk4MCw5IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzCiAgICAgQVBJOjpOYXZpZ2F0aW9uKiBtYWluRnJhbWVO
YXZpZ2F0aW9uID0gZnJhbWUuaXNNYWluRnJhbWUoKSA/IG5hdmlnYXRpb24uZ2V0KCkgOiBudWxs
cHRyOwogICAgIFdlYkZyYW1lUHJveHkqIG9yaWdpbmF0aW5nRnJhbWUgPSBvcmlnaW5hdGluZ0Zy
YW1lSW5mb0RhdGEuZnJhbWVJRCA/IHByb2Nlc3MtPndlYkZyYW1lKCpvcmlnaW5hdGluZ0ZyYW1l
SW5mb0RhdGEuZnJhbWVJRCkgOiBudWxscHRyOwogCisgICAgYXV0byB1c2VySW5pdGlhdGVkQWN0
aXZpdHkgPSBwcm9jZXNzLT51c2VySW5pdGlhdGVkQWN0aXZpdHkobmF2aWdhdGlvbkFjdGlvbkRh
dGEudXNlckdlc3R1cmVUb2tlbklkZW50aWZpZXIpOwogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpCi0gICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSA9
IHdlYnNpdGVEYXRhU3RvcmUoKS5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgIHJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS0+bG9nRnJhbWVOYXZpZ2F0aW9uKGZyYW1lLCBVUkwo
VVJMKCksIG1fcGFnZUxvYWRTdGF0ZS51cmwoKSksIHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2Uu
dXJsKCkpOwotICAgIGxvZ0ZyYW1lTmF2aWdhdGlvbihmcmFtZSwgVVJMKFVSTCgpLCBtX3BhZ2VM
b2FkU3RhdGUudXJsKCkpLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlLnVybCgpKTsKKyAgICBs
b2dGcmFtZU5hdmlnYXRpb24oZnJhbWUsIFVSTChVUkwoKSwgbV9wYWdlTG9hZFN0YXRlLnVybCgp
KSwgcmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZS51cmwoKSwgISF1c2VySW5pdGlhdGVkQWN0aXZp
dHkpOwogI2VuZGlmCiAKICAgICBpZiAobV9wb2xpY3lDbGllbnQpCkBAIC00OTk0LDcgKzQ5OTcs
NiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2NlcwogICAgICAgICAgICAgc291cmNlRnJhbWVJbmZv
ID0gQVBJOjpGcmFtZUluZm86OmNyZWF0ZShXVEZNb3ZlKG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0
YSksIG9yaWdpbmF0aW5nUGFnZSk7CiAgICAgICAgIH0KIAotICAgICAgICBhdXRvIHVzZXJJbml0
aWF0ZWRBY3Rpdml0eSA9IHByb2Nlc3MtPnVzZXJJbml0aWF0ZWRBY3Rpdml0eShuYXZpZ2F0aW9u
QWN0aW9uRGF0YS51c2VyR2VzdHVyZVRva2VuSWRlbnRpZmllcik7CiAgICAgICAgIGJvb2wgc2hv
dWxkT3BlbkFwcExpbmtzID0gIW1fc2hvdWxkU3VwcHJlc3NBcHBMaW5rc0luTmV4dE5hdmlnYXRp
b25Qb2xpY3lEZWNpc2lvbgogICAgICAgICAgICAgJiYgZGVzdGluYXRpb25GcmFtZUluZm8tPmlz
TWFpbkZyYW1lKCkKICAgICAgICAgICAgICYmIChtX21haW5GcmFtZSA/ICFob3N0c0FyZUVxdWFs
KG1fbWFpbkZyYW1lLT51cmwoKSwgcmVxdWVzdC51cmwoKSkgOiBmYWxzZSkKQEAgLTUwMzgsNyAr
NTA0MCw3IEBAIFdlYlBhZ2VQcm94eSogV2ViUGFnZVByb3h5Ojpub25FcGhlbWVyYWxXZWJQYWdl
UHJveHkoKQogfQogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLXZvaWQg
V2ViUGFnZVByb3h5Ojpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgV2ViRnJhbWVQcm94eSYgZnJh
bWUsIGNvbnN0IFVSTCYgcGFnZVVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBjb25zdCBVUkwmIHJlZGlyZWN0VVJMKQordm9pZCBXZWJQYWdlUHJveHk6OmxvZ0Zy
YW1lTmF2aWdhdGlvbihjb25zdCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgY29uc3QgVVJMJiBwYWdl
VVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFVSTCYg
cmVkaXJlY3RVUkwsIGJvb2wgd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIpCiB7CiAgICAg
QVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAKQEAgLTUwNjEsNyArNTA2Myw3IEBAIHZv
aWQgV2ViUGFnZVByb3h5Ojpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgV2ViRnJhbWVQcm94eSYg
ZnJhbWUsIGNvbnN0IFVSTCYgcGFnCiAgICAgaWYgKHRhcmdldEhvc3QuaXNFbXB0eSgpIHx8IG1h
aW5GcmFtZUhvc3QuaXNFbXB0eSgpIHx8IHRhcmdldEhvc3QgPT0gc291cmNlVVJMLmhvc3QoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLnNlbmRUb05l
dHdvcmtpbmdQcm9jZXNzKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6TG9nRnJhbWVOYXZpZ2F0
aW9uKG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCksIFJlZ2lzdHJhYmxlRG9tYWluIHsg
dGFyZ2V0VVJMIH0sIFJlZ2lzdHJhYmxlRG9tYWluIHsgcGFnZVVSTCB9LCBSZWdpc3RyYWJsZURv
bWFpbiB7IHNvdXJjZVVSTCB9LCBpc1JlZGlyZWN0LCBmcmFtZS5pc01haW5GcmFtZSgpKSk7Cisg
ICAgbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzKE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzczo6TG9nRnJhbWVOYXZpZ2F0aW9uKG1fd2Vic2l0ZURhdGFTdG9y
ZS0+c2Vzc2lvbklEKCksIFJlZ2lzdHJhYmxlRG9tYWluIHsgdGFyZ2V0VVJMIH0sIFJlZ2lzdHJh
YmxlRG9tYWluIHsgcGFnZVVSTCB9LCBSZWdpc3RyYWJsZURvbWFpbiB7IHNvdXJjZVVSTCB9LCBp
c1JlZGlyZWN0LCBmcmFtZS5pc01haW5GcmFtZSgpLCBNb25vdG9uaWNUaW1lOjpub3coKSAtIG1f
ZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yTWFpbkZyYW1lVGltZXN0YW1wLCB3YXNQb3RlbnRpYWxs
eUluaXRpYXRlZEJ5VXNlcikpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKaW5kZXggNzdmYzA0NTg3Y2Q5OWMzNGRmZDVkZjY2YjEyN2MyYWFmZDRjNjg0
ZS4uZTU4MjdkMGQ2MDcxMzQ0NGY4MzM5OTZlMDA3MzE5ZGNkNjUyNTQ3ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTIxNDgsNyArMjE0OCw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBkaWRBdHRhY2hUb1J1bm5pbmdQcm9jZXNzKCk7CiAKICNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0
IFdlYkZyYW1lUHJveHkmLCBjb25zdCBVUkwmIHBhZ2VVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFVSTCYgcmVkaXJlY3RVUkwpOworICAgIHZvaWQgbG9nRnJhbWVO
YXZpZ2F0aW9uKGNvbnN0IFdlYkZyYW1lUHJveHkmLCBjb25zdCBVUkwmIHBhZ2VVUkwsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFVSTCYgcmVkaXJlY3RVUkwsIGJvb2wg
d2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIpOwogI2VuZGlmCiAKICAgICAvLyBXZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eTo6Q2xpZW50CkBAIC0yNjUxLDYgKzI2NTEsMTAgQEAgcHJpdmF0
ZToKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9O
KQogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVy
UHJveHk+IG1fd2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5OwogI2VuZGlm
CisKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAgIE1vbm90b25pY1Rp
bWUgbV9kaWRGaW5pc2hEb2N1bWVudExvYWRGb3JNYWluRnJhbWVUaW1lc3RhbXA7CisjZW5kaWYK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNv
Y29hLm1tCmluZGV4IGUwZDUxMjA5MjYyZWVhMzRlMDQ5NmM2NWZhNmU5YTRmNTllNjRkOTMuLjcy
MzVlZjhkOGRiNTZlZjMyN2IzZTJiNTJmNDJjMDM4ODBlOGI5YmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJz
aXRlRGF0YVN0b3JlQ29jb2EubW0KQEAgLTIzNSwxNCArMjM1LDcgQEAgdm9pZCBXZWJzaXRlRGF0
YVN0b3JlOjpwbGF0Zm9ybUluaXRpYWxpemUoKQogI2Vsc2UKICAgICAgICAgTlNTdHJpbmcgKm5v
dGlmaWNhdGlvbk5hbWUgPSBVSUFwcGxpY2F0aW9uV2lsbFRlcm1pbmF0ZU5vdGlmaWNhdGlvbjsK
ICNlbmRpZgotICAgICAgICB0ZXJtaW5hdGlvbk9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNl
bnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6bm90aWZpY2F0aW9uTmFtZSBv
YmplY3Q6bmlsIHF1ZXVlOm5pbCB1c2luZ0Jsb2NrOl4oTlNOb3RpZmljYXRpb24gKm5vdGUpIHsK
LSAgICAgICAgICAgIGZvciAoYXV0byYgZGF0YVN0b3JlIDogZGF0YVN0b3JlcygpKSB7Ci0jaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICAgICAgICAgICAgICBpZiAoZGF0
YVN0b3JlLT5tX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MpCi0gICAgICAgICAgICAgICAgICAgIGRh
dGFTdG9yZS0+bV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5hcHBsaWNhdGlvbldpbGxUZXJtaW5h
dGUoKTsKLSNlbmRpZgotICAgICAgICAgICAgfQotICAgICAgICB9XTsKKyAgICAgICAgdGVybWlu
YXRpb25PYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRk
T2JzZXJ2ZXJGb3JOYW1lOm5vdGlmaWNhdGlvbk5hbWUgb2JqZWN0Om5pbCBxdWV1ZTpuaWwgdXNp
bmdCbG9jazpeKE5TTm90aWZpY2F0aW9uICpub3RlKSB7IH1dOwogICAgIH0KIAogICAgIEFTU0VS
VCghZGF0YVN0b3JlcygpLmNvbnRhaW5zKHRoaXMpKTsKQEAgLTI1MSwxMSArMjQ0LDYgQEAgdm9p
ZCBXZWJzaXRlRGF0YVN0b3JlOjpwbGF0Zm9ybUluaXRpYWxpemUoKQogCiB2b2lkIFdlYnNpdGVE
YXRhU3RvcmU6OnBsYXRmb3JtRGVzdHJveSgpCiB7Ci0jaWYgRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKLSAgICBpZiAobV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKQotICAgICAgICBt
X3Jlc291cmNlTG9hZFN0YXRpc3RpY3MtPmFwcGxpY2F0aW9uV2lsbFRlcm1pbmF0ZSgpOwotI2Vu
ZGlmCi0KICAgICBBU1NFUlQoZGF0YVN0b3JlcygpLmNvbnRhaW5zKHRoaXMpKTsKICAgICBkYXRh
U3RvcmVzKCkucmVtb3ZlKHRoaXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggYTc1YjFhZTZkY2I3YTRi
MzNiZjcwZmVhMjhiM2Q2YzMyMGNkY2FiYi4uYzQ5MGEwYjFjMzU3Y2UwYTkzNGZkY2RhZmJmZDkw
YWQzMGViNmVhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtMTMxLDcgKzEzMSw2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkoU3RyaW5nJiYgZGly
ZWN0b3J5KSB7IG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5zZXRTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uRGlyZWN0b3J5KFdURk1vdmUoZGlyZWN0b3J5KSk7IH0KIAogI2lmIEVOQUJMRShSRVNP
VVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
KiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzLmdldCgpOyB9CiAgICAgdm9pZCBjbGVhclJlc291cmNlTG9hZFN0YXRpc3RpY3NJ
bldlYlByb2Nlc3NlcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogI2VuZGlmCiAKQEAg
LTMzNiw3ICszMzUsNiBAQCBwcml2YXRlOgogICAgIGNvbnN0IFJlZjxEZXZpY2VJZEhhc2hTYWx0
U3RvcmFnZT4gbV9kZXZpY2VJZEhhc2hTYWx0U3RvcmFnZTsKIAogI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgUmVmUHRyPFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZT4gbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzOwogICAgIGJvb2wgbV9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGVidWdNb2RlIHsgZmFsc2UgfTsKICAgICBib29sIG1fcmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0VuYWJsZWQgeyBmYWxzZSB9OwogICAgIFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBT
dHJpbmcmKT4gbV9zdGF0aXN0aWNzVGVzdGluZ0NhbGxiYWNrOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGIxZDdlYmJlNTg1ZjE1NzJlNzBjNmE1
MmFmZjYwYWE3ZDE3OWM4YTQuLmExN2E5ZjZhZmNhYzIyZTEzN2JlMDE4MjU2MTNlMThiZjQ1YWEw
YTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxOS0xMi0yMCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXNvdXJjZSBMb2FkIFN0YXRpc3RpY3M6IEFkZCB0aW1pbmcgaW5m
b3JtYXRpb24gdG8gV2ViUGFnZVByb3h5Ojpsb2dGcmFtZU5hdmlnYXRpb24oKSB0byBkZXRlY3Qg
ZGVsYXllZCBjbGllbnQtc2lkZSByZWRpcmVjdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTUyMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgx
MjU3NTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW06CisgICAgICAg
IChXVFI6OmluaXRpYWxpemVXZWJWaWV3Q29uZmlndXJhdGlvbik6CisgICAgICAgICAgICBSZW1v
dmVkIGRlYWQgY29kZS4KKwogMjAyMC0wMS0wNSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5j
b20+CiAKICAgICAgICAgUmVuYW1lIEdyYXBoaWNzQ29udGV4dDNEIHRvIEdyYXBoaWNzQ29udGV4
dEdMCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9s
bGVyQ29jb2EubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVy
Q29jb2EubW0KaW5kZXggNzM0ZGUyZDliODc1Mjg3MzBjNzdlMzA3ZmQ0YjVjZmZhYTJiOGMxOC4u
ZWZmMDVkZTA0ZWY0NTk4ZjVhNWE5ZmFjNmVhNjkyYTgzNjIyNWU1ZCAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQpAQCAtODEs
NyArODEsNiBAQCB2b2lkIGluaXRpYWxpemVXZWJWaWV3Q29uZmlndXJhdGlvbihjb25zdCBjaGFy
KiBsaWJyYXJ5UGF0aCwgV0tTdHJpbmdSZWYgaW5qZWN0ZQogICAgIH0KIAogICAgIFtnbG9iYWxX
ZWJWaWV3Q29uZmlndXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlIF9zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZDpZRVNdOwotICAgIFtnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi53ZWJz
aXRlRGF0YVN0b3JlIF9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2V0U2hvdWxkU3VibWl0VGVsZW1l
dHJ5Ok5PXTsKIAogICAgIFtnbG9iYWxXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGVDbGllbnQgcmVs
ZWFzZV07CiAgICAgZ2xvYmFsV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlQ2xpZW50ID0gW1tUZXN0
V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlIGFsbG9jXSBpbml0XTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0NzQyNmE2ZDhl
Mjg0YTk5N2RkYzljYjgzMzQwNjc3M2RjNTBhYTdkLi4zNGZmY2RhZGFjNWQ2OGU0NDI2OTQ4ODVl
OGM4ZDEzOThiMDZlN2U3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAtMDEtMDYgIEpvaG4g
V2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzb3VyY2UgTG9hZCBT
dGF0aXN0aWNzOiBBZGQgdGltaW5nIGluZm9ybWF0aW9uIHRvIFdlYlBhZ2VQcm94eTo6bG9nRnJh
bWVOYXZpZ2F0aW9uKCkgdG8gZGV0ZWN0IGRlbGF5ZWQgY2xpZW50LXNpZGUgcmVkaXJlY3RzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU1MjIKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4MTI1NzU5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlc3VsdHMgdXBkYXRlZCB3aXRoIGFkZGl0aW9uYWwg
ZGF0YSBub3cgdGhhdCBkZWxheWVkIHJlZGlyZWN0cyBhcmUgY2FwdHVyZWQuCisKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbG9nLWNyb3NzLXNpdGUtbG9hZC13
aXRoLWxpbmstZGVjb3JhdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xvZy1jcm9zcy1zaXRlLWxvYWQtd2l0aC1s
aW5rLWRlY29yYXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFn
ZUFjY2Vzcy9hZ2dyZWdhdGUtc29ydGVkLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy1kYXRhYmFz
ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2FnZ3Jl
Z2F0ZS1zb3J0ZWQtZGF0YS13aXRoLXN0b3JhZ2UtYWNjZXNzLWV4cGVjdGVkLnR4dDoKKwogMjAy
MC0wMS0wNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSRUdSRVNTSU9OOiBbcjI1NDA0Ml0gcGFnZW92ZXJsYXkvb3ZlcmxheS0gdGVzdHMgYXJlIGZh
aWxpbmcgaW4gV0sxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvbG9nLWNyb3NzLXNpdGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi1k
YXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvbG9nLWNyb3NzLXNpdGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi1kYXRh
YmFzZS1leHBlY3RlZC50eHQKaW5kZXggOTQ3MjUwZGVkYmIwZjYyNjllNWNlN2VkNGFlZjQ5ODhi
Y2VmNjI3Yi4uNjdmODY1YmVlMTc4NzljYjRkNjhjMGQ1N2Y5ZWFmM2RmMGY5NGYwOCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xvZy1j
cm9zcy1zaXRlLWxvYWQtd2l0aC1saW5rLWRlY29yYXRpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9sb2ct
Y3Jvc3Mtc2l0ZS1sb2FkLXdpdGgtbGluay1kZWNvcmF0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApAQCAtNiw2ICs2LDggQEAgUmVnaXN0cmFibGUgZG9tYWluOiAxMjcuMC4wLjEKICAgICBoYWRV
c2VySW50ZXJhY3Rpb246IE5vCiAgICAgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbjogLTEKICAg
ICBncmFuZGZhdGhlcmVkOiBObworICAgIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG86CisgICAg
ICAgIGxvY2FsaG9zdAogICAgIElzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWw6
IE5vCiAgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTogWWVzCiAgICAgaXNWZXJ5UHJldmFsZW50UmVz
b3VyY2U6IE5vCkBAIC0yMiw2ICsyNCw4IEBAIFJlZ2lzdHJhYmxlIGRvbWFpbjogbG9jYWxob3N0
CiAgICAgaGFkVXNlckludGVyYWN0aW9uOiBObwogICAgIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rp
b246IC0xCiAgICAgZ3JhbmRmYXRoZXJlZDogTm8KKyAgICBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0
c0Zyb206CisgICAgICAgIDEyNy4wLjAuMQogICAgIFRvcEZyYW1lTGlua0RlY29yYXRpb25zRnJv
bToKICAgICAgICAgMTI3LjAuMC4xCiAgICAgICAgIDEyNy4wLjAuMgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xvZy1jcm9zcy1zaXRl
LWxvYWQtd2l0aC1saW5rLWRlY29yYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xvZy1jcm9zcy1zaXRlLWxvYWQtd2l0aC1s
aW5rLWRlY29yYXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDVjY2QxMjQ1ZGYzNjcyODc2Mjk3OTY4
ZWQ2ODMzN2EyMzc2NzU4ZTQuLjk5ZDMzYWQxZDExMjZjNTc1NDlhYjYxNmZmYzAxN2RjODQ2MTQx
ZGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9sb2ctY3Jvc3Mtc2l0ZS1sb2FkLXdpdGgtbGluay1kZWNvcmF0aW9uLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbG9n
LWNyb3NzLXNpdGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi1leHBlY3RlZC50eHQKQEAgLTYs
NiArNiw4IEBAIFJlZ2lzdHJhYmxlIGRvbWFpbjogbG9jYWxob3N0CiAgICAgaGFkVXNlckludGVy
YWN0aW9uOiBObwogICAgIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb246IC0xCiAgICAgZ3JhbmRm
YXRoZXJlZDogTm8KKyAgICB0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb206CisgICAgICAgIDEy
Ny4wLjAuMQogICAgIHRvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbToKICAgICAgICAgMTI3LjAu
MC4xCiAgICAgZ290TGlua0RlY29yYXRpb25Gcm9tUHJldmFsZW50UmVzb3VyY2U6IFllcwpAQCAt
MTYsNiArMTgsOCBAQCBSZWdpc3RyYWJsZSBkb21haW46IDEyNy4wLjAuMQogICAgIGhhZFVzZXJJ
bnRlcmFjdGlvbjogTm8KICAgICBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uOiAtMQogICAgIGdy
YW5kZmF0aGVyZWQ6IE5vCisgICAgdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUbzoKKyAgICAgICAg
bG9jYWxob3N0CiAgICAgZ290TGlua0RlY29yYXRpb25Gcm9tUHJldmFsZW50UmVzb3VyY2U6IE5v
CiAgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTogWWVzCiAgICAgaXNWZXJ5UHJldmFsZW50UmVzb3Vy
Y2U6IE5vCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3Mv
YWdncmVnYXRlLXNvcnRlZC1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3MtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2FnZ3JlZ2F0ZS1z
b3J0ZWQtZGF0YS13aXRoLXN0b3JhZ2UtYWNjZXNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dAppbmRl
eCAyZjk2YjI4MDhkNjEyMzFmNTAyMjI5Y2U1NTBiMmY4OGNhYmJiNjk5Li44ZWJkMjZiNmVjNzY1
MmZkZTY1MWQ3MWQzNGYyN2RhYzJjZDgzNTY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvYWdncmVnYXRlLXNvcnRlZC1kYXRhLXdpdGgtc3RvcmFnZS1h
Y2Nlc3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c3RvcmFnZUFjY2Vzcy9hZ2dyZWdhdGUtc29ydGVkLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy1k
YXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTE0LDggKzE0LDEyIEBAIFJlZ2lzdHJhYmxlIGRvbWFp
bjogMTI3LjAuMC4xCiAgICAgaGFkVXNlckludGVyYWN0aW9uOiBZZXMKICAgICBtb3N0UmVjZW50
VXNlckludGVyYWN0aW9uOiB3aXRoaW4gMjQgaG91cnMKICAgICBncmFuZGZhdGhlcmVkOiBObwor
ICAgIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG86CisgICAgICAgIGxvY2FsaG9zdAorICAgIFRv
cEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbToKKyAgICAgICAgbG9jYWxob3N0CiAgICAgSXNTY2hl
ZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbDogTm8KLSAgICBpc1ByZXZhbGVudFJlc291
cmNlOiBObworICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IFllcwogICAgIGlzVmVyeVByZXZhbGVu
dFJlc291cmNlOiBObwogICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMAogUmVnaXN0cmFibGUgZG9t
YWluOiBsb2NhbGhvc3QKQEAgLTI0LDYgKzI4LDEwIEBAIFJlZ2lzdHJhYmxlIGRvbWFpbjogbG9j
YWxob3N0CiAgICAgZ3JhbmRmYXRoZXJlZDogTm8KICAgICBTdG9yYWdlQWNjZXNzVW5kZXJUb3BG
cmFtZURvbWFpbnM6CiAgICAgICAgIDEyNy4wLjAuMQorICAgIFRvcEZyYW1lVW5pcXVlUmVkaXJl
Y3RzVG86CisgICAgICAgIDEyNy4wLjAuMQorICAgIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJv
bToKKyAgICAgICAgMTI3LjAuMC4xCiAgICAgSXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRh
UmVtb3ZhbDogTm8KICAgICBTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zOgogICAgICAgICAx
MjcuMC4wLjEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vz
cy9hZ2dyZWdhdGUtc29ydGVkLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvYWdncmVnYXRlLXNvcnRlZC1k
YXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3MtZXhwZWN0ZWQudHh0CmluZGV4IDI2YTdjMzk5Mzk3Y2Vj
MzhkMzkzMGIwYjljNTM4MjA2YmM2ZjQwYzYuLmU3MzdlYzU3Mjc5M2M3MzMxOGU5OGI0YTc5YzRh
NjNlNzI5MWM2OWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFj
Y2Vzcy9hZ2dyZWdhdGUtc29ydGVkLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2FnZ3JlZ2F0ZS1z
b3J0ZWQtZGF0YS13aXRoLXN0b3JhZ2UtYWNjZXNzLWV4cGVjdGVkLnR4dApAQCAtMTYsNiArMTYs
MTAgQEAgUmVnaXN0cmFibGUgZG9tYWluOiBsb2NhbGhvc3QKICAgICBncmFuZGZhdGhlcmVkOiBO
bwogICAgIHN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWluczoKICAgICAgICAgMTI3LjAu
MC4xCisgICAgdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUbzoKKyAgICAgICAgMTI3LjAuMC4xCisg
ICAgdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tOgorICAgICAgICAxMjcuMC4wLjEKICAgICBn
b3RMaW5rRGVjb3JhdGlvbkZyb21QcmV2YWxlbnRSZXNvdXJjZTogTm8KICAgICBzdWJmcmFtZVVu
ZGVyVG9wRnJhbWVEb21haW5zOgogICAgICAgICAxMjcuMC4wLjEKQEAgLTI2LDggKzMwLDEyIEBA
IFJlZ2lzdHJhYmxlIGRvbWFpbjogMTI3LjAuMC4xCiAgICAgaGFkVXNlckludGVyYWN0aW9uOiBZ
ZXMKICAgICBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uOiB3aXRoaW4gMjQgaG91cnMKICAgICBn
cmFuZGZhdGhlcmVkOiBObworICAgIHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG86CisgICAgICAg
IGxvY2FsaG9zdAorICAgIHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbToKKyAgICAgICAgbG9j
YWxob3N0CiAgICAgZ290TGlua0RlY29yYXRpb25Gcm9tUHJldmFsZW50UmVzb3VyY2U6IE5vCi0g
ICAgaXNQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBpc1ByZXZhbGVudFJlc291cmNlOiBZZXMK
ICAgICBpc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZTogTm8KICAgICBkYXRhUmVjb3Jkc1JlbW92ZWQ6
IDAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387118</attachid>
            <date>2020-01-08 11:40:56 -0800</date>
            <delta_ts>2020-01-09 14:01:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205522-20200108114055.patch</filename>
            <type>text/plain</type>
            <size>47477</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDczYWFiNTM5ZTMzOGRkYjk5
NGIyNWNiNjIyN2Q5YTE3YWNiZmVlN2EuLjllM2MzM2FkMDNhNGY3ZTZjNTA2ZTczM2IzYzcyNzJm
N2U1MWQ5NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkgQEAKKzIwMjAtMDEtMDggIEpvaG4gV2ls
YW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzb3VyY2UgTG9hZCBTdGF0
aXN0aWNzOiBBZGQgdGltaW5nIGluZm9ybWF0aW9uIHRvIFdlYlBhZ2VQcm94eTo6bG9nRnJhbWVO
YXZpZ2F0aW9uKCkgdG8gZGV0ZWN0IGRlbGF5ZWQgY2xpZW50LXNpZGUgcmVkaXJlY3RzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU1MjIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzU4MTI1NzU5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwdXJwb3NlIG9mIHRoaXMgcGF0Y2ggaXMgdG8gY2Fw
dHVyZSBuYXZpZ2F0aW9ucyB0aGF0IGhhcHBlbiBwcm9ncmFtbWF0aWNhbGx5CisgICAgICAgIGFm
dGVyIHRoZSBkb2N1bWVudCBoYXMgbG9hZGVkLiBUaGVzZSBhcmUgZGVsYXllZCByZWRpcmVjdHMg
YW5kIHNob3VsZCBiZSBjb3VudGVkCisgICAgICAgIGFzIHJlZGlyZWN0cyBpbiBJVFAuCisKKyAg
ICAgICAgVG8gYWNoaWV2ZSB0aGlzLCBhIHRpbWVzdGFtcCBpcyBjYXB0dXJlZCBpbgorICAgICAg
ICBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKCkgdG8gYmUgYWJs
ZSB0byBjYWxjdWxhdGUgaG93IG11Y2ggdGltZQorICAgICAgICBoYXMgcGFzc2VkIHNpbmNlIHRo
YXQgdGltZXN0YW1wIGluIHRoZSBJUEMgc2VudCBmcm9tCisgICAgICAgIFdlYlBhZ2VQcm94eTo6
bG9nRnJhbWVOYXZpZ2F0aW9uKCkuIFRoZSBJUEMgYWxzbyBnZXRzIGluZm9ybWF0aW9uIG9uIHdo
ZXRoZXIKKyAgICAgICAgdXNlckluaXRpYXRlZEFjdGl2aXR5IGV4aXN0cyBzbyB0aGF0IElUUCBj
YW4gZGVjaWRlIHdoZXRoZXIgdG8gdHJlYXQgdGhlIG5hdmlnYXRpb24KKyAgICAgICAgYXMgdHJp
Z2dlcmVkIGJ5IHRoZSB1c2VyIG9yIG5vdC4KKworICAgICAgICBBIG5ldyB0ZXN0IHdhcyBhZGRl
ZCBhbmQgZXhpc3RpbmcgdGVzdCBleHBlY3RhdGlvbnMgd2VyZSB1cGRhdGVkLgorCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24pOgorICAgICAgICAgICAgTm93IHRha2VzIHRo
ZSBleHRyYSBwYXJhbWV0ZXJzIGRlbGF5QWZ0ZXJNYWluRnJhbWVEb2N1bWVudExvYWQKKyAgICAg
ICAgICAgIGFuZCB3YXNQb3RlbnRpYWxseUluaXRpYXRlZEJ5VXNlci4KKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWVtb3J5U3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWVtb3J5U3RvcmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbik6CisgICAgICAgICAgICBOb3cg
dGFrZXMgdGhlIGV4dHJhIHBhcmFtZXRlcnMgZGVsYXlBZnRlck1haW5GcmFtZURvY3VtZW50TG9h
ZAorICAgICAgICAgICAgYW5kIHdhc1BvdGVudGlhbGx5SW5pdGlhdGVkQnlVc2VyLgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9y
eVN0b3JlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9uKToKKyAgICAg
ICAgICAgIE5vdyB0YWtlcyB0aGUgZXh0cmEgcGFyYW1ldGVycyBkZWxheUFmdGVyTWFpbkZyYW1l
RG9jdW1lbnRMb2FkCisgICAgICAgICAgICBhbmQgd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVz
ZXIuCisgICAgICAgICAgICBUaGUgZGVsZXRlZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbigpIHdhcyBkZWFkIGNvZGUuCisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpsb2dGcmFtZU5hdmlnYXRpb24pOgorICAgICAgICAgICAgTm93
IHRha2VzIHRoZSBleHRyYSBwYXJhbWV0ZXJzIGRlbGF5QWZ0ZXJNYWluRnJhbWVEb2N1bWVudExv
YWQKKyAgICAgICAgICAgIGFuZCB3YXNQb3RlbnRpYWxseUluaXRpYXRlZEJ5VXNlci4KKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRh
U3RvcmUgX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NTZXRTaG91bGRTdWJtaXRUZWxlbWV0cnk6XSk6
IERlbGV0ZWQuCisgICAgICAgICAgICBEZWFkIGNvZGUuCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmlu
aXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUpOgorICAgICAgICAgICAgTm93IGNhcHR1cmVzIGEgdGlt
ZXN0YW1wLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb24pOgorICAgICAgICAgICAgUmVtb3ZlZCBkZWFkIGNvZGUuCisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9nRnJhbWVOYXZpZ2F0aW9uKToKKyAgICAgICAgICAg
IE5vdyBzZW5kcyB0aGUgZGlmZiBiZXR3ZWVuIG5vdyBhbmQgdGhlIHRpbWVzdGFtcCBjYXB0dXJl
ZCBpbgorICAgICAgICAgICAgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JG
cmFtZSgpLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAg
ICAgICAgICAgUmVtb3ZlZCBkZWFkIGNvZGUuCisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRh
U3RvcmU6OnBsYXRmb3JtRGVzdHJveSk6CisgICAgICAgICAgICBSZW1vdmVkIGRlYWQgY29kZS4K
KyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgICAgIERlYWQgY29kZS4KKwogMjAyMC0wMS0wOCAgRGF2
aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIElQQzo6Q29ubmVjdGlv
bjo6c2VuZE1lc3NhZ2UoKSBzaG91bGQgdXNlIENSQVNIX1dJVEhfSU5GTygpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAppbmRleCA2
NTQxYTRjYTE0OTYwYWRiZjMwZGJkMmQ5ODI0NDgxY2JkZjEwNmJmLi5iNWFiMjdmMmI0ODNiNTI2
YWFhNGI0YjBiMjM5MTdmZTQ2MzAyZDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKQEAgLTE1MDgsNyArMTUwOCw3IEBAIFZl
Y3RvcjxSZWdpc3RyYWJsZURvbWFpbj4gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OmVuc3VyZVByZXZhbGVudFJlCiAgICAgcmV0dXJuIHByaW1hcnlEb21haW5zVG9CbG9jazsK
IH0KIAotdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9nRnJhbWVO
YXZpZ2F0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0YXJnZXREb21haW4sIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHNvdXJjZURvbWFpbiwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZyYW1lKQordm9pZCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9uKGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0YXJnZXREb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiB0b3BGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHNvdXJjZURvbWFp
biwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZyYW1lLCBTZWNvbmRzIGRlbGF5QWZ0ZXJN
YWluRnJhbWVEb2N1bWVudExvYWQsIGJvb2wgd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIp
CiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTE1MjMsMTkgKzE1MjMs
MjMgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9nRnJhbWVO
YXZpZ2F0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG8KICAgICAgICAgc3RhdGlzdGljc1dlcmVVcGRh
dGVkID0gdHJ1ZTsKICAgICB9CiAKLSAgICBpZiAoaXNSZWRpcmVjdCAmJiAhYXJlVGFyZ2V0QW5k
U291cmNlRG9tYWluc1NhbWVTaXRlKSB7CisgICAgaWYgKCFhcmVUYXJnZXRBbmRTb3VyY2VEb21h
aW5zU2FtZVNpdGUpIHsKICAgICAgICAgaWYgKGlzTWFpbkZyYW1lKSB7Ci0gICAgICAgICAgICBh
dXRvIHJlZGlyZWN0aW5nRG9tYWluUmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9y
UmVnaXN0cmFibGVEb21haW4oc291cmNlRG9tYWluKTsKLSAgICAgICAgICAgIGF1dG8gdGFyZ2V0
UmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4odGFy
Z2V0RG9tYWluKTsKLSAgICAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3QodG9w
RnJhbWVVbmlxdWVSZWRpcmVjdHNUb1F1ZXJ5LCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPih7
IHRhcmdldERvbWFpbiB9KSwgcmVkaXJlY3RpbmdEb21haW5SZXN1bHQuc2Vjb25kKTsKLSAgICAg
ICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3QodG9wRnJhbWVVbmlxdWVSZWRpcmVj
dHNGcm9tUXVlcnksIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+KHsgc291cmNlRG9tYWluIH0p
LCB0YXJnZXRSZXN1bHQuc2Vjb25kKTsKLSAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGJv
b2wgd2FzTmF2aWdhdGVkQWZ0ZXJTaG9ydERlbGF5V2l0aG91dFVzZXJJbnRlcmFjdGlvbiA9ICF3
YXNQb3RlbnRpYWxseUluaXRpYXRlZEJ5VXNlciAmJiBkZWxheUFmdGVyTWFpbkZyYW1lRG9jdW1l
bnRMb2FkIDwgcGFyYW1ldGVycygpLm1pbkRlbGF5QWZ0ZXJNYWluRnJhbWVEb2N1bWVudExvYWRU
b05vdEJlQVJlZGlyZWN0OworICAgICAgICAgICAgaWYgKGlzUmVkaXJlY3QgfHwgd2FzTmF2aWdh
dGVkQWZ0ZXJTaG9ydERlbGF5V2l0aG91dFVzZXJJbnRlcmFjdGlvbikgeworICAgICAgICAgICAg
ICAgIGF1dG8gcmVkaXJlY3RpbmdEb21haW5SZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3Rp
Y3NGb3JSZWdpc3RyYWJsZURvbWFpbihzb3VyY2VEb21haW4pOworICAgICAgICAgICAgICAgIGF1
dG8gdGFyZ2V0UmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVE
b21haW4odGFyZ2V0RG9tYWluKTsKKyAgICAgICAgICAgICAgICBpbnNlcnREb21haW5SZWxhdGlv
bnNoaXBMaXN0KHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9RdWVyeSwgSGFzaFNldDxSZWdpc3Ry
YWJsZURvbWFpbj4oeyB0YXJnZXREb21haW4gfSksIHJlZGlyZWN0aW5nRG9tYWluUmVzdWx0LnNl
Y29uZCk7CisgICAgICAgICAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwTGlzdCh0b3BG
cmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb21RdWVyeSwgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4o
eyBzb3VyY2VEb21haW4gfSksIHRhcmdldFJlc3VsdC5zZWNvbmQpOworICAgICAgICAgICAgICAg
IHN0YXRpc3RpY3NXZXJlVXBkYXRlZCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0g
ZWxzZSBpZiAoaXNSZWRpcmVjdCkgewogICAgICAgICAgICAgYXV0byByZWRpcmVjdGluZ0RvbWFp
blJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHNv
dXJjZURvbWFpbik7CiAgICAgICAgICAgICBhdXRvIHRhcmdldFJlc3VsdCA9IGVuc3VyZVJlc291
cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHRhcmdldERvbWFpbik7CiAgICAgICAg
ICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXBMaXN0KHN1YnJlc291cmNlVW5pcXVlUmVkaXJl
Y3RzVG9RdWVyeSwgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4oeyB0YXJnZXREb21haW4gfSks
IHJlZGlyZWN0aW5nRG9tYWluUmVzdWx0LnNlY29uZCk7CiAgICAgICAgICAgICBpbnNlcnREb21h
aW5SZWxhdGlvbnNoaXBMaXN0KHN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbVF1ZXJ5LCBI
YXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPih7IHNvdXJjZURvbWFpbiB9KSwgdGFyZ2V0UmVzdWx0
LnNlY29uZCk7CisgICAgICAgICAgICBzdGF0aXN0aWNzV2VyZVVwZGF0ZWQgPSB0cnVlOwogICAg
ICAgICB9Ci0gICAgICAgIHN0YXRpc3RpY3NXZXJlVXBkYXRlZCA9IHRydWU7CiAgICAgfQogCiAg
ICAgaWYgKHN0YXRpc3RpY3NXZXJlVXBkYXRlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKaW5kZXggOWIzMTBlYzNjNmYwNWQzMjRjY2U0
MzUzMTUyNzA2ZGI0Y2E2ZjEyZi4uOTA4MzFkODlmN2FiZTQ5MmQwMWY2MGQ1MzNiNmI2ZDhjNDVj
YTEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlLmgKQEAgLTEyNCw3ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXF1ZXN0U3Rv
cmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGdyYW50
U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9y
YWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6
U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKSBvdmVycmlkZTsKIAotICAgIHZvaWQgbG9nRnJh
bWVOYXZpZ2F0aW9uKGNvbnN0IE5hdmlnYXRlZFRvRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21h
aW4mLCBjb25zdCBOYXZpZ2F0ZWRGcm9tRG9tYWluJiwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlz
TWFpbkZyYW1lKSBvdmVycmlkZTsKKyAgICB2b2lkIGxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBO
YXZpZ2F0ZWRUb0RvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgY29uc3QgTmF2aWdhdGVk
RnJvbURvbWFpbiYsIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSwgU2Vjb25kcyBk
ZWxheUFmdGVyTWFpbkZyYW1lRG9jdW1lbnRMb2FkLCBib29sIHdhc1BvdGVudGlhbGx5SW5pdGlh
dGVkQnlVc2VyKSBvdmVycmlkZTsKICAgICB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBU
b3BGcmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBsb2dDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uKGNvbnN0IE5hdmlnYXRl
ZEZyb21Eb21haW4mLCBjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYpIG92ZXJyaWRlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCmluZGV4
IDg5Mzg1YTlkNGM1OTYzMTNjMTY3MzhhMjQ3NjhiMjQxZGU5ZGU3Y2EuLjIwYWU3YzRhYmU5NzYy
N2UzYTFlYjZhNWFiMzFmN2U2ZWJkZjY0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCkBAIC00MjgsNyArNDI4LDcgQEAgVmVjdG9y
PFJlZ2lzdHJhYmxlRG9tYWluPiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmVu
c3VyZVByZXZhbGVudFJlc28KICAgICByZXR1cm4gZG9tYWluc1RvQmxvY2s7CiB9CiAKLXZvaWQg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24oY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHRhcmdldERvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIHRvcEZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc291cmNlRG9tYWlu
LCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUpCit2b2lkIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NNZW1vcnlTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiB0YXJnZXREb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURv
bWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHNvdXJjZURvbWFpbiwgYm9vbCBpc1JlZGly
ZWN0LCBib29sIGlzTWFpbkZyYW1lLCBTZWNvbmRzIGRlbGF5QWZ0ZXJNYWluRnJhbWVEb2N1bWVu
dExvYWQsIGJvb2wgd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIpCiB7CiAgICAgQVNTRVJU
KCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTQ0MywxNSArNDQzLDE4IEBAIHZvaWQgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgUmVn
aXN0cmFibGVEb21hCiAgICAgICAgICAgICBzdGF0aXN0aWNzV2VyZVVwZGF0ZWQgPSB0cnVlOwog
ICAgIH0KIAotICAgIGlmIChpc1JlZGlyZWN0ICYmICFhcmVUYXJnZXRBbmRTb3VyY2VEb21haW5z
U2FtZVNpdGUpIHsKKyAgICBpZiAoIWFyZVRhcmdldEFuZFNvdXJjZURvbWFpbnNTYW1lU2l0ZSkg
ewogICAgICAgICBpZiAoaXNNYWluRnJhbWUpIHsKICAgICAgICAgICAgIGF1dG8mIHJlZGlyZWN0
aW5nRG9tYWluU3RhdGlzdGljcyA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJh
YmxlRG9tYWluKHNvdXJjZURvbWFpbik7Ci0gICAgICAgICAgICBpZiAocmVkaXJlY3RpbmdEb21h
aW5TdGF0aXN0aWNzLnRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8uYWRkKHRhcmdldERvbWFpbiku
aXNOZXdFbnRyeSkKLSAgICAgICAgICAgICAgICBzdGF0aXN0aWNzV2VyZVVwZGF0ZWQgPSB0cnVl
OwotICAgICAgICAgICAgYXV0byYgdGFyZ2V0U3RhdGlzdGljcyA9IGVuc3VyZVJlc291cmNlU3Rh
dGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHRhcmdldERvbWFpbik7Ci0gICAgICAgICAgICBp
ZiAodGFyZ2V0U3RhdGlzdGljcy50b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20uYWRkKHNvdXJj
ZURvbWFpbikuaXNOZXdFbnRyeSkKLSAgICAgICAgICAgICAgICBzdGF0aXN0aWNzV2VyZVVwZGF0
ZWQgPSB0cnVlOwotICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYm9vbCB3YXNOYXZpZ2F0
ZWRBZnRlclNob3J0RGVsYXlXaXRob3V0VXNlckludGVyYWN0aW9uID0gIXdhc1BvdGVudGlhbGx5
SW5pdGlhdGVkQnlVc2VyICYmIGRlbGF5QWZ0ZXJNYWluRnJhbWVEb2N1bWVudExvYWQgPCBwYXJh
bWV0ZXJzKCkubWluRGVsYXlBZnRlck1haW5GcmFtZURvY3VtZW50TG9hZFRvTm90QmVBUmVkaXJl
Y3Q7CisgICAgICAgICAgICBpZiAoaXNSZWRpcmVjdCB8fCB3YXNOYXZpZ2F0ZWRBZnRlclNob3J0
RGVsYXlXaXRob3V0VXNlckludGVyYWN0aW9uKSB7CisgICAgICAgICAgICAgICAgaWYgKHJlZGly
ZWN0aW5nRG9tYWluU3RhdGlzdGljcy50b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvLmFkZCh0YXJn
ZXREb21haW4pLmlzTmV3RW50cnkpCisgICAgICAgICAgICAgICAgICAgIHN0YXRpc3RpY3NXZXJl
VXBkYXRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgYXV0byYgdGFyZ2V0U3RhdGlzdGljcyA9
IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHRhcmdldERvbWFp
bik7CisgICAgICAgICAgICAgICAgaWYgKHRhcmdldFN0YXRpc3RpY3MudG9wRnJhbWVVbmlxdWVS
ZWRpcmVjdHNGcm9tLmFkZChzb3VyY2VEb21haW4pLmlzTmV3RW50cnkpCisgICAgICAgICAgICAg
ICAgICAgIHN0YXRpc3RpY3NXZXJlVXBkYXRlZCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0gZWxzZSBpZiAoaXNSZWRpcmVjdCkgewogICAgICAgICAgICAgYXV0byYgcmVkaXJlY3Rp
bmdEb21haW5TdGF0aXN0aWNzID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFi
bGVEb21haW4oc291cmNlRG9tYWluKTsKICAgICAgICAgICAgIGlmIChyZWRpcmVjdGluZ0RvbWFp
blN0YXRpc3RpY3Muc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUby5hZGQodGFyZ2V0RG9tYWlu
KS5pc05ld0VudHJ5KQogICAgICAgICAgICAgICAgIHN0YXRpc3RpY3NXZXJlVXBkYXRlZCA9IHRy
dWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgK
aW5kZXggMGIwZTZkODA1NmRiMDZhMGM4YzU1NjE0ODIwNzMxYjE1OTEzM2RjNy4uYmFmOGIxNjRi
Yjk1ODgyNzVkMmIyZmNlNWViNWE5MzcyNmNhOGMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlT
dG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaApAQCAtMTA0LDcgKzEwNCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZy
YW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYpIG92
ZXJyaWRlOwogICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRv
cEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpIG92ZXJy
aWRlOwogCi0gICAgdm9pZCBsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgTmF2aWdhdGVkVG9Eb21h
aW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IE5hdmlnYXRlZEZyb21Eb21haW4mLCBi
b29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUpIG92ZXJyaWRlOworICAgIHZvaWQgbG9n
RnJhbWVOYXZpZ2F0aW9uKGNvbnN0IE5hdmlnYXRlZFRvRG9tYWluJiwgY29uc3QgVG9wRnJhbWVE
b21haW4mLCBjb25zdCBOYXZpZ2F0ZWRGcm9tRG9tYWluJiwgYm9vbCBpc1JlZGlyZWN0LCBib29s
IGlzTWFpbkZyYW1lLCBTZWNvbmRzIGRlbGF5QWZ0ZXJNYWluRnJhbWVEb2N1bWVudExvYWQsIGJv
b2wgd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIpIG92ZXJyaWRlOwogICAgIHZvaWQgbG9n
VXNlckludGVyYWN0aW9uKGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGxvZ0Nyb3NzU2l0ZUxvYWRXaXRoTGlua0Rl
Y29yYXRpb24oY29uc3QgTmF2aWdhdGVkRnJvbURvbWFpbiYsIGNvbnN0IE5hdmlnYXRlZFRvRG9t
YWluJikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUu
aAppbmRleCA3ZGFkZjRkYjg4NzM1MmFjZjllMWVmNWY0MDA3NGZhZWVhYzAzYTg1Li41ZTk2NjQ0
ODUwYTkyN2ZjZjM1MmZiMjZmNGVlNTg3NmEzN2Y4YzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZS5oCkBAIC0xNzEsNyArMTcxLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFt
ZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBU
b3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKSA9IDA7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IE5hdmlnYXRlZFRv
RG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBjb25zdCBOYXZpZ2F0ZWRGcm9tRG9tYWlu
JiwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZyYW1lKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYsIGNvbnN0IFRv
cEZyYW1lRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkRnJvbURvbWFpbiYsIGJvb2wgaXNSZWRpcmVj
dCwgYm9vbCBpc01haW5GcmFtZSwgU2Vjb25kcyBkZWxheUFmdGVyTWFpbkZyYW1lRG9jdW1lbnRM
b2FkLCBib29sIHdhc1BvdGVudGlhbGx5SW5pdGlhdGVkQnlVc2VyKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBsb2dDcm9zc1NpdGVM
b2FkV2l0aExpbmtEZWNvcmF0aW9uKGNvbnN0IE5hdmlnYXRlZEZyb21Eb21haW4mLCBjb25zdCBO
YXZpZ2F0ZWRUb0RvbWFpbiYpID0gMDsKIApAQCAtMjIyLDYgKzIyMiw3IEBAIHByb3RlY3RlZDoK
ICAgICAgICAgU2Vjb25kcyBncmFuZGZhdGhlcmluZ1RpbWUgeyAyNF9oICogNyB9OwogICAgICAg
ICBTZWNvbmRzIGNhY2hlTWF4QWdlQ2FwVGltZSB7IDI0X2ggKiA3IH07CiAgICAgICAgIFNlY29u
ZHMgY2xpZW50U2lkZUNvb2tpZXNBZ2VDYXBUaW1lIHsgMjRfaCAqIDcgfTsKKyAgICAgICAgU2Vj
b25kcyBtaW5EZWxheUFmdGVyTWFpbkZyYW1lRG9jdW1lbnRMb2FkVG9Ob3RCZUFSZWRpcmVjdCB7
IDVfcyB9OwogICAgICAgICBib29sIHNob3VsZE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2Vy
ZVNjYW5uZWQgeyBmYWxzZSB9OwogICAgICAgICBib29sIHNob3VsZENsYXNzaWZ5UmVzb3VyY2Vz
QmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsIHsgdHJ1ZSB9OwogICAgICAgICBib29sIHNob3VsZFN1
Ym1pdFRlbGVtZXRyeSB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5jcHAKaW5kZXggODIzOWQ2ZDlmNWY5NDI1MGE4MTE1ZTBlMzUxOTgyOWY5
ZGRmZDE4MC4uMjNmZmRjODdhMDU4MDhiM2YyMDEyZjQ4Nzc4YWYxMmMyYWJkM2MxZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTU1NCw0
MyArNTU0LDEzIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzdWJtaXRU
ZWxlbWV0cnkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmCiAgICAgfSk7CiB9CiAKLXZvaWQg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3Qg
V2ViRnJhbWVQcm94eSYgZnJhbWUsIGNvbnN0IFVSTCYgcGFnZVVSTCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBVUkwmIHJlZGlyZWN0VVJMKQordm9pZCBX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgdGFyZ2V0RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
dG9wRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzb3VyY2VEb21haW4sIGJv
b2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSwgU2Vjb25kcyBkZWxheUFmdGVyTWFpbkZy
YW1lRG9jdW1lbnRMb2FkLCBib29sIHdhc1BvdGVudGlhbGx5SW5pdGlhdGVkQnlVc2VyKQogewog
ICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBhdXRvIHNvdXJjZVVSTCA9IHJl
ZGlyZWN0VVJMOwotICAgIGJvb2wgaXNSZWRpcmVjdCA9ICFyZWRpcmVjdFVSTC5pc051bGwoKTsK
LSAgICBpZiAoIWlzUmVkaXJlY3QpIHsKLSAgICAgICAgc291cmNlVVJMID0gZnJhbWUudXJsKCk7
Ci0gICAgICAgIGlmIChzb3VyY2VVUkwuaXNOdWxsKCkpCi0gICAgICAgICAgICBzb3VyY2VVUkwg
PSBwYWdlVVJMOwotICAgIH0KLQotICAgIGF1dG8mIHRhcmdldFVSTCA9IHJlcXVlc3QudXJsKCk7
Ci0KLSAgICBpZiAoIXRhcmdldFVSTC5pc1ZhbGlkKCkgfHwgIXBhZ2VVUkwuaXNWYWxpZCgpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRvIHRhcmdldEhvc3QgPSB0YXJnZXRVUkwuaG9zdCgp
OwotICAgIGF1dG8gbWFpbkZyYW1lSG9zdCA9IHBhZ2VVUkwuaG9zdCgpOwotCi0gICAgaWYgKHRh
cmdldEhvc3QuaXNFbXB0eSgpIHx8IG1haW5GcmFtZUhvc3QuaXNFbXB0eSgpIHx8IHRhcmdldEhv
c3QgPT0gc291cmNlVVJMLmhvc3QoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgUmVnaXN0cmFi
bGVEb21haW4gdGFyZ2V0RG9tYWluIHsgdGFyZ2V0VVJMIH07Ci0gICAgUmVnaXN0cmFibGVEb21h
aW4gdG9wRnJhbWVEb21haW4geyBwYWdlVVJMIH07Ci0gICAgUmVnaXN0cmFibGVEb21haW4gc291
cmNlRG9tYWluIHsgc291cmNlVVJMIH07Ci0KLSAgICBsb2dGcmFtZU5hdmlnYXRpb24odGFyZ2V0
RG9tYWluLCB0b3BGcmFtZURvbWFpbiwgc291cmNlRG9tYWluLCBpc1JlZGlyZWN0LCBmcmFtZS5p
c01haW5GcmFtZSgpKTsKLX0KLQotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdGFyZ2V0RG9tYWlu
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiBzb3VyY2VEb21haW4sIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFt
ZSkKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotCi0gICAgcG9zdFRhc2soW3Ro
aXMsIHRhcmdldERvbWFpbiA9IHRhcmdldERvbWFpbi5pc29sYXRlZENvcHkoKSwgdG9wRnJhbWVE
b21haW4gPSB0b3BGcmFtZURvbWFpbi5pc29sYXRlZENvcHkoKSwgc291cmNlRG9tYWluID0gc291
cmNlRG9tYWluLmlzb2xhdGVkQ29weSgpLCBpc1JlZGlyZWN0LCBpc01haW5GcmFtZV0geworICAg
IHBvc3RUYXNrKFt0aGlzLCB0YXJnZXREb21haW4gPSB0YXJnZXREb21haW4uaXNvbGF0ZWRDb3B5
KCksIHRvcEZyYW1lRG9tYWluID0gdG9wRnJhbWVEb21haW4uaXNvbGF0ZWRDb3B5KCksIHNvdXJj
ZURvbWFpbiA9IHNvdXJjZURvbWFpbi5pc29sYXRlZENvcHkoKSwgaXNSZWRpcmVjdCwgaXNNYWlu
RnJhbWUsIGRlbGF5QWZ0ZXJNYWluRnJhbWVEb2N1bWVudExvYWQsIHdhc1BvdGVudGlhbGx5SW5p
dGlhdGVkQnlVc2VyXSB7CiAgICAgICAgIGlmIChtX3N0YXRpc3RpY3NTdG9yZSkKLSAgICAgICAg
ICAgIG1fc3RhdGlzdGljc1N0b3JlLT5sb2dGcmFtZU5hdmlnYXRpb24odGFyZ2V0RG9tYWluLCB0
b3BGcmFtZURvbWFpbiwgc291cmNlRG9tYWluLCBpc1JlZGlyZWN0LCBpc01haW5GcmFtZSk7Cisg
ICAgICAgICAgICBtX3N0YXRpc3RpY3NTdG9yZS0+bG9nRnJhbWVOYXZpZ2F0aW9uKHRhcmdldERv
bWFpbiwgdG9wRnJhbWVEb21haW4sIHNvdXJjZURvbWFpbiwgaXNSZWRpcmVjdCwgaXNNYWluRnJh
bWUsIGRlbGF5QWZ0ZXJNYWluRnJhbWVEb2N1bWVudExvYWQsIHdhc1BvdGVudGlhbGx5SW5pdGlh
dGVkQnlVc2VyKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5oCmluZGV4IDJlNmE5M2ZiYWUwOTZlOTBhYWU0OWM0ZDk1Yjg0MDcyNzRk
NzMwOGQuLjllNjBjZTExNGVlNDMyN2ZjOTlmMDQ3NmNiOWUxOWNhZGViNGUxZDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTIxMCw4ICsyMTAs
NyBAQCBzdHJ1Y3QgVGhpcmRQYXJ0eURhdGEgewogCiAgICAgdm9pZCBhcHBsaWNhdGlvbldpbGxU
ZXJtaW5hdGUoKTsKIAotICAgIHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFdlYkZyYW1l
UHJveHkmLCBjb25zdCBVUkwmIHBhZ2VVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFVSTCYgcmVkaXJlY3RVUkwpOwotICAgIHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9u
KGNvbnN0IE5hdmlnYXRlZFRvRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBjb25zdCBO
YXZpZ2F0ZWRGcm9tRG9tYWluJiwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZyYW1lKTsK
KyAgICB2b2lkIGxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYsIGNv
bnN0IFRvcEZyYW1lRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkRnJvbURvbWFpbiYsIGJvb2wgaXNS
ZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSwgU2Vjb25kcyBkZWxheUFmdGVyTWFpbkZyYW1lRG9j
dW1lbnRMb2FkLCBib29sIHdhc1BvdGVudGlhbGx5SW5pdGlhdGVkQnlVc2VyKTsKICAgICB2b2lk
IGxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBsb2dDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0
aW9uKGNvbnN0IE5hdmlnYXRlZEZyb21Eb21haW4mLCBjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBjbGVhclVzZXJJbnRlcmFj
dGlvbihjb25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmlu
ZGV4IDRkYTA0YWRkMmZkMjJkNTUxNDQ0MDU5ZGY1ZjMyMTJhYTlhYjVkZmUuLjM5OTI2ZWI2YWE4
OGE5YTI2MWIzNDA3ODVmNzQxOGI4OWZmMjExNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC05ODQsMTEgKzk4NCwxMSBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzOjpnZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIENvbXBsZQogICAgIH0KIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6bG9n
RnJhbWVOYXZpZ2F0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHRhcmdldERvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1l
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc291cmNlRG9tYWluLCBib29sIGlzUmVk
aXJlY3QsIGJvb2wgaXNNYWluRnJhbWUpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpsb2dGcmFtZU5h
dmlnYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgdGFyZ2V0RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4s
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzb3VyY2VEb21haW4sIGJvb2wgaXNSZWRpcmVjdCwg
Ym9vbCBpc01haW5GcmFtZSwgU2Vjb25kcyBkZWxheUFmdGVyTWFpbkZyYW1lRG9jdW1lbnRMb2Fk
LCBib29sIHdhc1BvdGVudGlhbGx5SW5pdGlhdGVkQnlVc2VyKQogewogICAgIGlmIChhdXRvKiBu
ZXR3b3JrU2Vzc2lvbiA9IHRoaXMtPm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKICAgICAg
ICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lvbi0+cmVz
b3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy0+bG9nRnJhbWVOYXZpZ2F0aW9uKHRhcmdldERvbWFpbiwgdG9wRnJhbWVEb21haW4sIHNvdXJj
ZURvbWFpbiwgaXNSZWRpcmVjdCwgaXNNYWluRnJhbWUpOworICAgICAgICAgICAgcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy0+bG9nRnJhbWVOYXZpZ2F0aW9uKHRhcmdldERvbWFpbiwgdG9wRnJhbWVE
b21haW4sIHNvdXJjZURvbWFpbiwgaXNSZWRpcmVjdCwgaXNNYWluRnJhbWUsIGRlbGF5QWZ0ZXJN
YWluRnJhbWVEb2N1bWVudExvYWQsIHdhc1BvdGVudGlhbGx5SW5pdGlhdGVkQnlVc2VyKTsKICAg
ICB9IGVsc2UKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggZTA4ZDU4MjRkYTMwNDIw
Y2Y1YzVkODM0ZjI5YmRmNzJjNmM4MGQ2OS4uM2VmODZlYzMwYTAxNTg4M2RjYWM3OWEyMmJmNTI4
NmM1ZWZjMjFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaApAQCAtMjI0LDcgKzIyNCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGlzUmVsYXRpb25z
aGlwT25seUluRGF0YWJhc2VPbmNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgc3ViRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRG9tYWluLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIGhhc0xvY2FsU3RvcmFnZShQ
QUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIGdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKFBB
TDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+IGRvbWFp
bnMpPiYmKTsKLSAgICB2b2lkIGxvZ0ZyYW1lTmF2aWdhdGlvbihQQUw6OlNlc3Npb25JRCwgY29u
c3QgTmF2aWdhdGVkVG9Eb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IE5hdmln
YXRlZEZyb21Eb21haW4mLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUpOworICAg
IHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBOYXZpZ2F0ZWRU
b0RvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkRnJvbURvbWFp
biYsIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSwgU2Vjb25kcyBkZWxheUFmdGVy
TWFpbkZyYW1lRG9jdW1lbnRMb2FkLCBib29sIHdhc1BvdGVudGlhbGx5SW5pdGlhdGVkQnlVc2Vy
KTsKICAgICB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCwgY29uc3QgVG9w
RnJhbWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcmVt
b3ZlUHJldmFsZW50RG9tYWlucyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVmVjdG9yPFJlZ2lzdHJh
YmxlRG9tYWluPiYpOwogICAgIHZvaWQgcmVzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJl
c291cmNlcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1l
c3NhZ2VzLmluCmluZGV4IDJhZDk4ODFmY2Y3ZWE4NDRkODJiYzc3ZmFjMDdmNDkzZDdjNGRlNWUu
LmE1NjYxM2NkYTM0YzdlM2FjZTU1NGZkNzhiMzU5NGJhYmFiZDY2MDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5p
bgpAQCAtMTAyLDcgKzEwMiw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJl
Y2VpdmVyIHsKICAgICBJc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVkRnJvbURvbWFp
biwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVkaXJlY3RlZFRvRG9tYWluKSAtPiAoYm9v
bCBpc1JlZGlyZWN0aW5nVG8pIEFzeW5jCiAgICAgSXNSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVy
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3Vi
RnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluKSAt
PiAoYm9vbCBpc1N1YmZyYW1lVW5kZXIpIEFzeW5jCiAgICAgSXNSZWdpc3RlcmVkQXNTdWJyZXNv
dXJjZVVuZGVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gc3VicmVzb3VyY2VEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZy
YW1lRG9tYWluKSAtPiAoYm9vbCBpc1N1YnJlc291cmNlVW5kZXIpIEFzeW5jCi0gICAgTG9nRnJh
bWVOYXZpZ2F0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gdGFyZ2V0RG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFt
ZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc291cmNlRG9tYWluLCBib29sIGlz
UmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUpCisgICAgTG9nRnJhbWVOYXZpZ2F0aW9uKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9t
YWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4gc291cmNlRG9tYWluLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNN
YWluRnJhbWUsIFNlY29uZHMgZGVsYXlBZnRlck1haW5GcmFtZURvY3VtZW50TG9hZCwgYm9vbCB3
YXNQb3RlbnRpYWxseUluaXRpYXRlZEJ5VXNlcikKICAgICBMb2dVc2VySW50ZXJhY3Rpb24oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFt
ZURvbWFpbikgLT4gKCkgQXN5bmMKICAgICBSZW1vdmVQcmV2YWxlbnREb21haW5zKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgVmVjdG9yPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21h
aW5zV2l0aEludGVyYWN0aW9uKQogICAgIFJlc2V0UGFyYW1ldGVyc1RvRGVmYXVsdFZhbHVlcyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQppbmRleCBj
ZWY0ODI3NDdkZjE4Zjg0ODkzZWFmYmRlOTgxY2MwMWU1ZmFmODBlLi5kZDA5OTUxZGExMTNiZGNl
YjlmMmJlNDk2MWM3MjFiZGM5MTRmMmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KQEAgLTM5NSwxNyArMzk1
LDYgQEAgLSAoTlNVUkwgKilfaW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkKICAgICByZXR1cm4g
W05TVVJMIGZpbGVVUkxXaXRoUGF0aDpfd2Vic2l0ZURhdGFTdG9yZS0+Y29uZmlndXJhdGlvbigp
LmluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KCkgaXNEaXJlY3Rvcnk6WUVTXTsKIH0KIAotLSAo
dm9pZClfcmVzb3VyY2VMb2FkU3RhdGlzdGljc1NldFNob3VsZFN1Ym1pdFRlbGVtZXRyeTooQk9P
TCl2YWx1ZQotewotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgYXV0
byogc3RvcmUgPSBfd2Vic2l0ZURhdGFTdG9yZS0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpOwot
ICAgIGlmICghc3RvcmUpCi0gICAgICAgIHJldHVybjsKLQotICAgIHN0b3JlLT5zZXRTaG91bGRT
dWJtaXRUZWxlbWV0cnkodmFsdWUpOwotI2VuZGlmCi19Ci0KIC0gKHZvaWQpX3NldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NUZXN0aW5nQ2FsbGJhY2s6KHZvaWQgKF4pKFdLV2Vic2l0ZURhdGFTdG9y
ZSAqLCBOU1N0cmluZyAqKSljYWxsYmFjawogewogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAppbmRleCAyYzM3NTNmOGY4YWNmZGVl
YTVkZmU1YjU5ODM3ZWJjZTFiODdlMTAwLi43MjkyNDkzOTg5ZTAzMjFiYWFmNGM5MDE3M2E5NWI0
ZDM3ZWI5OTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKQEAgLTYxLDcgKzYxLDYgQEAg
dHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVEYXRhU3RvcmVGZXRjaE9w
dGlvbnMpIHsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VSTCAqX2luZGV4
ZWREQkRhdGFiYXNlRGlyZWN0b3J5OwogCi0tICh2b2lkKV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U2V0U2hvdWxkU3VibWl0VGVsZW1ldHJ5OihCT09MKXZhbHVlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogLSAodm9pZClfc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1Rlc3RpbmdDYWxsYmFjazoobnVsbGFibGUgdm9pZCAoXikoV0tXZWJzaXRlRGF0YVN0b3JlICos
IE5TU3RyaW5nICopKWNhbGxiYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3Mo
MTEuMCkpOwogLSAodm9pZClfZ2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXNGb3I6KFdLV2ViVmll
dyAqKXdlYlZpZXcgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TQXJyYXk8TlNTdHJpbmcg
Kj4gKmRvbWFpbnMpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTQpLCBpb3MoMTIuMCkpOwogKyAodm9pZClfYWxsb3dXZWJzaXRlRGF0YVJlY29yZHNGb3JBbGxP
cmlnaW5zIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBlZjQ1YThjMjlkOWJmNGFh
NThmYWI4ZDI0Njc3MzMwMmUzZmY4YTk3Li5iZDBhZmZkMGI2MTQ0YjM1MjFmMTJkMDA4OTcxYzY2
ODZiYWU5NGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAg
LTQ1NzIsOCArNDU3MiwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoRG9jdW1lbnRM
b2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NAogICAgIGlmIChmcmFt
ZS0+aXNNYWluRnJhbWUoKSAmJiBuYXZpZ2F0aW9uSUQpCiAgICAgICAgIG5hdmlnYXRpb24gPSBu
YXZpZ2F0aW9uU3RhdGUoKS5uYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCk7CiAKLSAgICBpZiAoZnJh
bWUtPmlzTWFpbkZyYW1lKCkpCisgICAgaWYgKGZyYW1lLT5pc01haW5GcmFtZSgpKSB7CiAgICAg
ICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkRmluaXNoRG9jdW1lbnRMb2FkKCp0aGlzLCBuYXZp
Z2F0aW9uLmdldCgpLCBtX3Byb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRh
dGEub2JqZWN0KCkpLmdldCgpKTsKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQorICAgICAgICBtX2RpZEZpbmlzaERvY3VtZW50TG9hZEZvck1haW5GcmFtZVRpbWVzdGFtcCA9
IE1vbm90b25pY1RpbWU6Om5vdygpOworI2VuZGlmCisgICAgfQogfQogCiB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKQEAgLTQ5ODYsMTAg
KzQ5OTAsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2NlcwogICAgIEFQSTo6TmF2aWdhdGlvbiog
bWFpbkZyYW1lTmF2aWdhdGlvbiA9IGZyYW1lLmlzTWFpbkZyYW1lKCkgPyBuYXZpZ2F0aW9uLmdl
dCgpIDogbnVsbHB0cjsKICAgICBXZWJGcmFtZVByb3h5KiBvcmlnaW5hdGluZ0ZyYW1lID0gb3Jp
Z2luYXRpbmdGcmFtZUluZm9EYXRhLmZyYW1lSUQgPyBwcm9jZXNzLT53ZWJGcmFtZSgqb3JpZ2lu
YXRpbmdGcmFtZUluZm9EYXRhLmZyYW1lSUQpIDogbnVsbHB0cjsKIAorICAgIGF1dG8gdXNlcklu
aXRpYXRlZEFjdGl2aXR5ID0gcHJvY2Vzcy0+dXNlckluaXRpYXRlZEFjdGl2aXR5KG5hdmlnYXRp
b25BY3Rpb25EYXRhLnVzZXJHZXN0dXJlVG9rZW5JZGVudGlmaWVyKTsKICNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUgPSB3ZWJzaXRlRGF0YVN0b3JlKCkucmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQot
ICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUtPmxvZ0ZyYW1lTmF2aWdhdGlvbihm
cmFtZSwgVVJMKFVSTCgpLCBtX3BhZ2VMb2FkU3RhdGUudXJsKCkpLCByZXF1ZXN0LCByZWRpcmVj
dFJlc3BvbnNlLnVybCgpKTsKLSAgICBsb2dGcmFtZU5hdmlnYXRpb24oZnJhbWUsIFVSTChVUkwo
KSwgbV9wYWdlTG9hZFN0YXRlLnVybCgpKSwgcmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZS51cmwo
KSk7CisgICAgbG9nRnJhbWVOYXZpZ2F0aW9uKGZyYW1lLCBVUkwoVVJMKCksIG1fcGFnZUxvYWRT
dGF0ZS51cmwoKSksIHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UudXJsKCksICEhdXNlckluaXRp
YXRlZEFjdGl2aXR5KTsKICNlbmRpZgogCiAgICAgaWYgKG1fcG9saWN5Q2xpZW50KQpAQCAtNTAw
NCw3ICs1MDA3LDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXMKICAgICAgICAgICAgIHNvdXJj
ZUZyYW1lSW5mbyA9IEFQSTo6RnJhbWVJbmZvOjpjcmVhdGUoV1RGTW92ZShvcmlnaW5hdGluZ0Zy
YW1lSW5mb0RhdGEpLCBvcmlnaW5hdGluZ1BhZ2UpOwogICAgICAgICB9CiAKLSAgICAgICAgYXV0
byB1c2VySW5pdGlhdGVkQWN0aXZpdHkgPSBwcm9jZXNzLT51c2VySW5pdGlhdGVkQWN0aXZpdHko
bmF2aWdhdGlvbkFjdGlvbkRhdGEudXNlckdlc3R1cmVUb2tlbklkZW50aWZpZXIpOwogICAgICAg
ICBib29sIHNob3VsZE9wZW5BcHBMaW5rcyA9ICFtX3Nob3VsZFN1cHByZXNzQXBwTGlua3NJbk5l
eHROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24KICAgICAgICAgICAgICYmIGRlc3RpbmF0aW9uRnJh
bWVJbmZvLT5pc01haW5GcmFtZSgpCiAgICAgICAgICAgICAmJiAobV9tYWluRnJhbWUgPyAhaG9z
dHNBcmVFcXVhbChtX21haW5GcmFtZS0+dXJsKCksIHJlcXVlc3QudXJsKCkpIDogZmFsc2UpCkBA
IC01MDQ4LDcgKzUwNTAsNyBAQCBXZWJQYWdlUHJveHkqIFdlYlBhZ2VQcm94eTo6bm9uRXBoZW1l
cmFsV2ViUGFnZVByb3h5KCkKIH0KIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCi12b2lkIFdlYlBhZ2VQcm94eTo6bG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFdlYkZyYW1l
UHJveHkmIGZyYW1lLCBjb25zdCBVUkwmIHBhZ2VVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgVVJMJiByZWRpcmVjdFVSTCkKK3ZvaWQgV2ViUGFnZVBy
b3h5Ojpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgV2ViRnJhbWVQcm94eSYgZnJhbWUsIGNvbnN0
IFVSTCYgcGFnZVVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBj
b25zdCBVUkwmIHJlZGlyZWN0VVJMLCBib29sIHdhc1BvdGVudGlhbGx5SW5pdGlhdGVkQnlVc2Vy
KQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgCkBAIC01MDcxLDcgKzUw
NzMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFdlYkZy
YW1lUHJveHkmIGZyYW1lLCBjb25zdCBVUkwmIHBhZwogICAgIGlmICh0YXJnZXRIb3N0LmlzRW1w
dHkoKSB8fCBtYWluRnJhbWVIb3N0LmlzRW1wdHkoKSB8fCB0YXJnZXRIb3N0ID09IHNvdXJjZVVS
TC5ob3N0KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2wo
KS5zZW5kVG9OZXR3b3JraW5nUHJvY2VzcyhNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkxvZ0Zy
YW1lTmF2aWdhdGlvbihtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCBSZWdpc3RyYWJs
ZURvbWFpbiB7IHRhcmdldFVSTCB9LCBSZWdpc3RyYWJsZURvbWFpbiB7IHBhZ2VVUkwgfSwgUmVn
aXN0cmFibGVEb21haW4geyBzb3VyY2VVUkwgfSwgaXNSZWRpcmVjdCwgZnJhbWUuaXNNYWluRnJh
bWUoKSkpOworICAgIG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5zZW5kVG9OZXR3b3JraW5nUHJv
Y2VzcyhNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkxvZ0ZyYW1lTmF2aWdhdGlvbihtX3dlYnNp
dGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCBSZWdpc3RyYWJsZURvbWFpbiB7IHRhcmdldFVSTCB9
LCBSZWdpc3RyYWJsZURvbWFpbiB7IHBhZ2VVUkwgfSwgUmVnaXN0cmFibGVEb21haW4geyBzb3Vy
Y2VVUkwgfSwgaXNSZWRpcmVjdCwgZnJhbWUuaXNNYWluRnJhbWUoKSwgTW9ub3RvbmljVGltZTo6
bm93KCkgLSBtX2RpZEZpbmlzaERvY3VtZW50TG9hZEZvck1haW5GcmFtZVRpbWVzdGFtcCwgd2Fz
UG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDFmMGU2YjZiZTEyNDdiMGQzNzNiZjUyNzM3N2I5
NjA3NTZjODY3YjAuLjNjOWIyMTUyZGYyYjgxNjhmMDg4NmVlNThhYzQ4ZDA2YzAyNmI3ZmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0yMTU2LDcgKzIxNTYsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgZGlkQXR0YWNoVG9SdW5uaW5nUHJvY2VzcygpOwogCiAjaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICB2b2lkIGxvZ0ZyYW1lTmF2aWdh
dGlvbihjb25zdCBXZWJGcmFtZVByb3h5JiwgY29uc3QgVVJMJiBwYWdlVVJMLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBVUkwmIHJlZGlyZWN0VVJMKTsKKyAgICB2b2lk
IGxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBXZWJGcmFtZVByb3h5JiwgY29uc3QgVVJMJiBwYWdl
VVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBVUkwmIHJlZGlyZWN0
VVJMLCBib29sIHdhc1BvdGVudGlhbGx5SW5pdGlhdGVkQnlVc2VyKTsKICNlbmRpZgogCiAgICAg
Ly8gV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OkNsaWVudApAQCAtMjY2MCw2ICsyNjYwLDEw
IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViRGV2aWNlT3JpZW50YXRpb25VcGRh
dGVQcm92aWRlclByb3h5PiBtX3dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94
eTsKICNlbmRpZgorCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyAgICBN
b25vdG9uaWNUaW1lIG1fZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yTWFpbkZyYW1lVGltZXN0YW1w
OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVE
YXRhU3RvcmVDb2NvYS5tbQppbmRleCBlMGQ1MTIwOTI2MmVlYTM0ZTA0OTZjNjVmYTZlOWE0ZjU5
ZTY0ZDkzLi45YzAwOGZmMDY2ZmJlMTEyODM3MjlhMTBhY2FmMDBmYmQwNzk0ZmQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0
YVN0b3JlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCkBAIC01Miw4ICs1Miw2IEBACiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi1zdGF0aWMgaWQgdGVybWluYXRpb25PYnNlcnZlcjsKLQogc3RhdGlj
IEhhc2hTZXQ8V2Vic2l0ZURhdGFTdG9yZSo+JiBkYXRhU3RvcmVzKCkKIHsKICAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxXZWJzaXRlRGF0YVN0b3JlKj4+IGRhdGFTdG9yZXM7CkBA
IC0yMjcsNDIgKzIyNSwxNCBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0
YVN0b3JlOjpwYXJhbWV0ZXJzKCkKIAogdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpwbGF0Zm9ybUlu
aXRpYWxpemUoKQogewotICAgIGlmICghdGVybWluYXRpb25PYnNlcnZlcikgewotICAgICAgICBB
U1NFUlQoZGF0YVN0b3JlcygpLmlzRW1wdHkoKSk7Ci0KLSNpZiBQTEFURk9STShNQUMpCi0gICAg
ICAgIE5TU3RyaW5nICpub3RpZmljYXRpb25OYW1lID0gTlNBcHBsaWNhdGlvbldpbGxUZXJtaW5h
dGVOb3RpZmljYXRpb247Ci0jZWxzZQotICAgICAgICBOU1N0cmluZyAqbm90aWZpY2F0aW9uTmFt
ZSA9IFVJQXBwbGljYXRpb25XaWxsVGVybWluYXRlTm90aWZpY2F0aW9uOwotI2VuZGlmCi0gICAg
ICAgIHRlcm1pbmF0aW9uT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRD
ZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpub3RpZmljYXRpb25OYW1lIG9iamVjdDpuaWwgcXVl
dWU6bmlsIHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqbm90ZSkgewotICAgICAgICAgICAg
Zm9yIChhdXRvJiBkYXRhU3RvcmUgOiBkYXRhU3RvcmVzKCkpIHsKLSNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQotICAgICAgICAgICAgICAgIGlmIChkYXRhU3RvcmUtPm1fcmVz
b3VyY2VMb2FkU3RhdGlzdGljcykKLSAgICAgICAgICAgICAgICAgICAgZGF0YVN0b3JlLT5tX3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MtPmFwcGxpY2F0aW9uV2lsbFRlcm1pbmF0ZSgpOwotI2VuZGlm
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH1dOwotICAgIH0KLQogICAgIEFTU0VSVCghZGF0YVN0
b3JlcygpLmNvbnRhaW5zKHRoaXMpKTsKICAgICBkYXRhU3RvcmVzKCkuYWRkKHRoaXMpOwogfQog
CiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnBsYXRmb3JtRGVzdHJveSgpCiB7Ci0jaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICBpZiAobV9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzKQotICAgICAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MtPmFwcGxpY2F0aW9uV2lsbFRl
cm1pbmF0ZSgpOwotI2VuZGlmCi0KICAgICBBU1NFUlQoZGF0YVN0b3JlcygpLmNvbnRhaW5zKHRo
aXMpKTsKICAgICBkYXRhU3RvcmVzKCkucmVtb3ZlKHRoaXMpOwotCi0gICAgaWYgKGRhdGFTdG9y
ZXMoKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0
Q2VudGVyXSByZW1vdmVPYnNlcnZlcjp0ZXJtaW5hdGlvbk9ic2VydmVyXTsKLSAgICAgICAgdGVy
bWluYXRpb25PYnNlcnZlciA9IG5pbDsKLSAgICB9CiB9CiAKIHZvaWQgV2Vic2l0ZURhdGFTdG9y
ZTo6cGxhdGZvcm1SZW1vdmVSZWNlbnRTZWFyY2hlcyhXYWxsVGltZSBvbGRlc3RUaW1lVG9SZW1v
dmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmgKaW5kZXggMzUxZjYyZWM4MjNkN2QxOTNiZjYxMTUwZTc2NTg2Y2FjZGFk
NGZmNC4uYzY1YTA2N2JiM2Y2ZTVlZDczMGQwZjYxYjJkOTA0NTFlZWY3ZDA4NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaApAQCAtMTI5LDcgKzEyOSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENhY2hlU3RvcmFn
ZURpcmVjdG9yeShTdHJpbmcmJiBkaXJlY3RvcnkpIHsgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24t
PnNldENhY2hlU3RvcmFnZURpcmVjdG9yeShXVEZNb3ZlKGRpcmVjdG9yeSkpOyB9CiAKICNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZSogcmVzb3VyY2VMb2FkU3RhdGlzdGljcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy5nZXQoKTsgfQogICAgIHZvaWQgY2xlYXJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzSW5XZWJQcm9jZXNzZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICNl
bmRpZgogCkBAIC0zMzQsNyArMzMzLDYgQEAgcHJpdmF0ZToKICAgICBjb25zdCBSZWY8RGV2aWNl
SWRIYXNoU2FsdFN0b3JhZ2U+IG1fZGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2U7CiAKICNpZiBFTkFC
TEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIFJlZlB0cjxXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU+IG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljczsKICAgICBib29sIG1fcmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Jlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkIHsgZmFsc2UgfTsKICAgICBXVEY6OkZ1bmN0aW9uPHZv
aWQoY29uc3QgU3RyaW5nJik+IG1fc3RhdGlzdGljc1Rlc3RpbmdDYWxsYmFjazsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlODVmYTEzYTUxMmJh
ZTJiOGYyOWIwNjQ4ZTY1YjUzMGI5MmQwNWY5Li5kMzUyOGZiNTMyYWQ2NzIxMWNmMzIzMjMzMjU1
Mjc1NzljOGNlOGJkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMTItMjAgIEpvaG4gV2lsYW5kZXIgIDx3aWxh
bmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzOiBBZGQg
dGltaW5nIGluZm9ybWF0aW9uIHRvIFdlYlBhZ2VQcm94eTo6bG9nRnJhbWVOYXZpZ2F0aW9uKCkg
dG8gZGV0ZWN0IGRlbGF5ZWQgY2xpZW50LXNpZGUgcmVkaXJlY3RzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU1MjIKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzU4MTI1NzU5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1t
OgorICAgICAgICAoV1RSOjppbml0aWFsaXplV2ViVmlld0NvbmZpZ3VyYXRpb24pOgorICAgICAg
ICAgICAgUmVtb3ZlZCBkZWFkIGNvZGUuCisKIDIwMjAtMDEtMDggIFBhdWxvIE1hdG9zICA8cG1h
dG9zQGlnYWxpYS5jb20+CiAKICAgICAgICAgQWxsb3cgbXVsdGlwbGUgY21ha2VhcmdzIGluc2lk
ZSBpbnNpZGUgZW52dmFyCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29h
L1Rlc3RDb250cm9sbGVyQ29jb2EubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rl
c3RDb250cm9sbGVyQ29jb2EubW0KaW5kZXggZjUxM2E0MTEyYjk4NmQwMmQzNjE3YWZhZGU3Yzhh
NDJjYmUwN2MzOS4uZjVlM2YyOTkzYjdmMTYzOGU4Y2VkMGQxMzg1MGViYjU4OTcxOGU5ZCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29h
Lm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2Nv
YS5tbQpAQCAtNzgsNyArNzgsNiBAQCB2b2lkIGluaXRpYWxpemVXZWJWaWV3Q29uZmlndXJhdGlv
bihjb25zdCBjaGFyKiBsaWJyYXJ5UGF0aCwgV0tTdHJpbmdSZWYgaW5qZWN0ZQogICAgIH0KIAog
ICAgIFtnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlIF9zZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDpZRVNdOwotICAgIFtnbG9iYWxXZWJWaWV3Q29uZmln
dXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlIF9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2V0U2hvdWxk
U3VibWl0VGVsZW1ldHJ5Ok5PXTsKIAogICAgIFtnbG9iYWxXZWJzaXRlRGF0YVN0b3JlRGVsZWdh
dGVDbGllbnQgcmVsZWFzZV07CiAgICAgZ2xvYmFsV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlQ2xp
ZW50ID0gW1tUZXN0V2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlIGFsbG9jXSBpbml0XTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBjM2NlYzkyMzcyZDlhYmU3NjVhNTFlNGU4OTRjN2RjZGNiM2M3YzdjLi5kMmQ0M2QyMzEyMmI1
ZmVmNGJkNDU1N2E0Njc2ZTU4YWM5Zjc0M2YxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAt
MDEtMDggIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVz
b3VyY2UgTG9hZCBTdGF0aXN0aWNzOiBBZGQgdGltaW5nIGluZm9ybWF0aW9uIHRvIFdlYlBhZ2VQ
cm94eTo6bG9nRnJhbWVOYXZpZ2F0aW9uKCkgdG8gZGV0ZWN0IGRlbGF5ZWQgY2xpZW50LXNpZGUg
cmVkaXJlY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDU1MjIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4MTI1NzU5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlc3VsdHMgdXBkYXRlZCB3aXRo
IGFkZGl0aW9uYWwgZGF0YSBub3cgdGhhdCBkZWxheWVkIHJlZGlyZWN0cyBhcmUgY2FwdHVyZWQu
CisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbG9nLWNyb3Nz
LXNpdGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xvZy1jcm9zcy1zaXRl
LWxvYWQtd2l0aC1saW5rLWRlY29yYXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9sb2ctZGVsYXllZC1jbGllbnQtc2lkZS1yZWRp
cmVjdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbG9nLWRlbGF5ZWQtY2xpZW50LXNpZGUtcmVkaXJlY3Rz
LWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9sb2ctZGVsYXllZC1jbGllbnQtc2lkZS1yZWRpcmVjdHMtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbG9n
LWRlbGF5ZWQtY2xpZW50LXNpZGUtcmVkaXJlY3RzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9hZ2dyZWdhdGUtc29ydGVkLWRhdGEtd2l0aC1zdG9yYWdl
LWFjY2Vzcy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9zdG9y
YWdlQWNjZXNzL2FnZ3JlZ2F0ZS1zb3J0ZWQtZGF0YS13aXRoLXN0b3JhZ2UtYWNjZXNzLWV4cGVj
dGVkLnR4dDoKKwogMjAyMC0wMS0wOCAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gVW5yZXZpZXdlZCBnYXJkZW5pbmcgZm9yIHVuZXhw
ZWN0ZWQgcGFzc2VzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvbG9nLWNyb3NzLXNpdGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi1k
YXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvbG9nLWNyb3NzLXNpdGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi1kYXRh
YmFzZS1leHBlY3RlZC50eHQKaW5kZXggOTQ3MjUwZGVkYmIwZjYyNjllNWNlN2VkNGFlZjQ5ODhi
Y2VmNjI3Yi4uNjdmODY1YmVlMTc4NzljYjRkNjhjMGQ1N2Y5ZWFmM2RmMGY5NGYwOCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xvZy1j
cm9zcy1zaXRlLWxvYWQtd2l0aC1saW5rLWRlY29yYXRpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9sb2ct
Y3Jvc3Mtc2l0ZS1sb2FkLXdpdGgtbGluay1kZWNvcmF0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApAQCAtNiw2ICs2LDggQEAgUmVnaXN0cmFibGUgZG9tYWluOiAxMjcuMC4wLjEKICAgICBoYWRV
c2VySW50ZXJhY3Rpb246IE5vCiAgICAgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbjogLTEKICAg
ICBncmFuZGZhdGhlcmVkOiBObworICAgIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG86CisgICAg
ICAgIGxvY2FsaG9zdAogICAgIElzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWw6
IE5vCiAgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTogWWVzCiAgICAgaXNWZXJ5UHJldmFsZW50UmVz
b3VyY2U6IE5vCkBAIC0yMiw2ICsyNCw4IEBAIFJlZ2lzdHJhYmxlIGRvbWFpbjogbG9jYWxob3N0
CiAgICAgaGFkVXNlckludGVyYWN0aW9uOiBObwogICAgIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rp
b246IC0xCiAgICAgZ3JhbmRmYXRoZXJlZDogTm8KKyAgICBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0
c0Zyb206CisgICAgICAgIDEyNy4wLjAuMQogICAgIFRvcEZyYW1lTGlua0RlY29yYXRpb25zRnJv
bToKICAgICAgICAgMTI3LjAuMC4xCiAgICAgICAgIDEyNy4wLjAuMgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xvZy1jcm9zcy1zaXRl
LWxvYWQtd2l0aC1saW5rLWRlY29yYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xvZy1jcm9zcy1zaXRlLWxvYWQtd2l0aC1s
aW5rLWRlY29yYXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDVjY2QxMjQ1ZGYzNjcyODc2Mjk3OTY4
ZWQ2ODMzN2EyMzc2NzU4ZTQuLjk5ZDMzYWQxZDExMjZjNTc1NDlhYjYxNmZmYzAxN2RjODQ2MTQx
ZGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9sb2ctY3Jvc3Mtc2l0ZS1sb2FkLXdpdGgtbGluay1kZWNvcmF0aW9uLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbG9n
LWNyb3NzLXNpdGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi1leHBlY3RlZC50eHQKQEAgLTYs
NiArNiw4IEBAIFJlZ2lzdHJhYmxlIGRvbWFpbjogbG9jYWxob3N0CiAgICAgaGFkVXNlckludGVy
YWN0aW9uOiBObwogICAgIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb246IC0xCiAgICAgZ3JhbmRm
YXRoZXJlZDogTm8KKyAgICB0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb206CisgICAgICAgIDEy
Ny4wLjAuMQogICAgIHRvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbToKICAgICAgICAgMTI3LjAu
MC4xCiAgICAgZ290TGlua0RlY29yYXRpb25Gcm9tUHJldmFsZW50UmVzb3VyY2U6IFllcwpAQCAt
MTYsNiArMTgsOCBAQCBSZWdpc3RyYWJsZSBkb21haW46IDEyNy4wLjAuMQogICAgIGhhZFVzZXJJ
bnRlcmFjdGlvbjogTm8KICAgICBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uOiAtMQogICAgIGdy
YW5kZmF0aGVyZWQ6IE5vCisgICAgdG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUbzoKKyAgICAgICAg
bG9jYWxob3N0CiAgICAgZ290TGlua0RlY29yYXRpb25Gcm9tUHJldmFsZW50UmVzb3VyY2U6IE5v
CiAgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTogWWVzCiAgICAgaXNWZXJ5UHJldmFsZW50UmVzb3Vy
Y2U6IE5vCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvbG9nLWRlbGF5ZWQtY2xpZW50LXNpZGUtcmVkaXJlY3RzLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9s
b2ctZGVsYXllZC1jbGllbnQtc2lkZS1yZWRpcmVjdHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQwZjgxYzc3YTAyZDZmM2JmZGY0YWI3YTA3NDhlYmQxNTQ3ZDI2ZWUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvbG9nLWRlbGF5ZWQtY2xpZW50LXNpZGUtcmVkaXJlY3RzLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDI0IEBACitOb24tdXNlciBpbml0aWF0ZWQsIGRlbGF5ZWQgY3Jvc3Mtc2l0
ZSBuYXZpZ2F0aW9ucyBkb25lIGNsaWVudC1zaWRlIHNob3VsZCBiZSBkZXRlY3RlZCBhcyB0b3Ag
ZnJhbWUgcmVkaXJlY3RzIGJ5IElUUC4KKworUmVzb3VyY2UgbG9hZCBzdGF0aXN0aWNzOgorCitS
ZWdpc3RyYWJsZSBkb21haW46IDEyNy4wLjAuMQorICAgIGhhZFVzZXJJbnRlcmFjdGlvbjogTm8K
KyAgICBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uOiAtMQorICAgIGdyYW5kZmF0aGVyZWQ6IE5v
CisgICAgVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUbzoKKyAgICAgICAgbG9jYWxob3N0CisgICAg
SXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbDogTm8KKyAgICBpc1ByZXZhbGVu
dFJlc291cmNlOiBObworICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNlOiBObworICAgIGRhdGFS
ZWNvcmRzUmVtb3ZlZDogMAorUmVnaXN0cmFibGUgZG9tYWluOiBsb2NhbGhvc3QKKyAgICBoYWRV
c2VySW50ZXJhY3Rpb246IE5vCisgICAgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbjogLTEKKyAg
ICBncmFuZGZhdGhlcmVkOiBObworICAgIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbToKKyAg
ICAgICAgMTI3LjAuMC4xCisgICAgSXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3Zh
bDogTm8KKyAgICBpc1ByZXZhbGVudFJlc291cmNlOiBObworICAgIGlzVmVyeVByZXZhbGVudFJl
c291cmNlOiBObworICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xvZy1kZWxheWVkLWNsaWVu
dC1zaWRlLXJlZGlyZWN0cy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xvZy1kZWxheWVkLWNsaWVudC1zaWRlLXJlZGlyZWN0cy1k
YXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE4OWExMDVhYmY5MDRiMTg2NDk4ZGQyNDgzMjQ1ZGY4
ZTJjN2I4NDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvbG9nLWRlbGF5ZWQtY2xpZW50LXNpZGUtcmVkaXJlY3RzLWRhdGFi
YXNlLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1blRlc3QoKScsIDEwMCkiPgorPGRpdiBpZD0i
ZGVzY3JpcHRpb24iPk5vbi11c2VyIGluaXRpYXRlZCwgZGVsYXllZCBjcm9zcy1zaXRlIG5hdmln
YXRpb25zIGRvbmUgY2xpZW50LXNpZGUgc2hvdWxkIGJlIGRldGVjdGVkIGFzIHRvcCBmcmFtZSBy
ZWRpcmVjdHMgYnkgSVRQLjwvZGl2PgorPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KKzxzY3JpcHQ+
CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNl
SVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB9CisKKyAgICBjb25zdCBuYXZp
Z2F0aW9uRW5kT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgbmF2
aWdhdGlvblN0YXJ0T3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisKKyAgICBmdW5j
dGlvbiBuYXZpZ2F0ZUNyb3NzU2l0ZSgpIHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJl
ZiA9IG5hdmlnYXRpb25FbmRPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbG9nLWRl
bGF5ZWQtY2xpZW50LXNpZGUtcmVkaXJlY3RzLmh0bWw/ZHVtbXlQYXJhbT0iICsgTWF0aC5yYW5k
b20oKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9j
dW1lbnQubG9jYXRpb24ub3JpZ2luID09PSBuYXZpZ2F0aW9uU3RhcnRPcmlnaW4pIHsKKyAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgbmF2aWdhdGVDcm9zc1NpdGUpOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wUmVzb3VyY2VMb2FkU3RhdGlz
dGljcygpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9sb2ct
ZGVsYXllZC1jbGllbnQtc2lkZS1yZWRpcmVjdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xvZy1kZWxheWVkLWNsaWVudC1zaWRl
LXJlZGlyZWN0cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzAwMDYxYmU2NjFmY2QxY2Q5ODcy
M2Y4MWYxZWFlOTI0MWQwODVjMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9sb2ctZGVsYXllZC1jbGllbnQtc2lkZS1yZWRp
cmVjdHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjQgQEAKK05vbi11c2VyIGluaXRpYXRlZCwg
ZGVsYXllZCBjcm9zcy1zaXRlIG5hdmlnYXRpb25zIGRvbmUgY2xpZW50LXNpZGUgc2hvdWxkIGJl
IGRldGVjdGVkIGFzIHRvcCBmcmFtZSByZWRpcmVjdHMgYnkgSVRQLgorCitSZXNvdXJjZSBsb2Fk
IHN0YXRpc3RpY3M6CisKK1JlZ2lzdHJhYmxlIGRvbWFpbjogbG9jYWxob3N0CisgICAgaGFkVXNl
ckludGVyYWN0aW9uOiBObworICAgIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb246IC0xCisgICAg
Z3JhbmRmYXRoZXJlZDogTm8KKyAgICB0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb206CisgICAg
ICAgIDEyNy4wLjAuMQorICAgIGdvdExpbmtEZWNvcmF0aW9uRnJvbVByZXZhbGVudFJlc291cmNl
OiBObworICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNWZXJ5UHJldmFsZW50UmVz
b3VyY2U6IE5vCisgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCitSZWdpc3RyYWJsZSBkb21haW46
IDEyNy4wLjAuMQorICAgIGhhZFVzZXJJbnRlcmFjdGlvbjogTm8KKyAgICBtb3N0UmVjZW50VXNl
ckludGVyYWN0aW9uOiAtMQorICAgIGdyYW5kZmF0aGVyZWQ6IE5vCisgICAgdG9wRnJhbWVVbmlx
dWVSZWRpcmVjdHNUbzoKKyAgICAgICAgbG9jYWxob3N0CisgICAgZ290TGlua0RlY29yYXRpb25G
cm9tUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAg
ICBpc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBkYXRhUmVjb3Jkc1JlbW92ZWQ6IDAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9sb2ctZGVsYXllZC1jbGllbnQtc2lkZS1yZWRpcmVjdHMuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9sb2ctZGVsYXllZC1jbGllbnQtc2lkZS1y
ZWRpcmVjdHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWQwM2UwNThlZjAyMGM5NDgzZjkzY2Q0ZGI2MDk4
NDBmNDU5YmUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2xvZy1kZWxheWVkLWNsaWVudC1zaWRlLXJlZGlyZWN0cy5odG1s
CkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAxMDApIj4KKzxkaXYgaWQ9ImRlc2NyaXB0
aW9uIj5Ob24tdXNlciBpbml0aWF0ZWQsIGRlbGF5ZWQgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9ucyBk
b25lIGNsaWVudC1zaWRlIHNob3VsZCBiZSBkZXRlY3RlZCBhcyB0b3AgZnJhbWUgcmVkaXJlY3Rz
IGJ5IElUUC48L2Rpdj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8c2NyaXB0PgorICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgfQorCisgICAgY29uc3Qg
bmF2aWdhdGlvbkVuZE9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0
IG5hdmlnYXRpb25TdGFydE9yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworCisgICAg
ZnVuY3Rpb24gbmF2aWdhdGVDcm9zc1NpdGUoKSB7CisgICAgICAgIGRvY3VtZW50LmxvY2F0aW9u
LmhyZWYgPSBuYXZpZ2F0aW9uRW5kT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xv
Zy1kZWxheWVkLWNsaWVudC1zaWRlLXJlZGlyZWN0cy5odG1sP2R1bW15UGFyYW09IiArIE1hdGgu
cmFuZG9tKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYg
KGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gbmF2aWdhdGlvblN0YXJ0T3JpZ2luKSB7Cisg
ICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIG5hdmlnYXRlQ3Jvc3NTaXRlKTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcFJlc291cmNlTG9hZFN0
YXRpc3RpY3MoKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvYWdncmVnYXRl
LXNvcnRlZC1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2FnZ3JlZ2F0ZS1zb3J0ZWQtZGF0
YS13aXRoLXN0b3JhZ2UtYWNjZXNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dAppbmRleCAyZjk2YjI4
MDhkNjEyMzFmNTAyMjI5Y2U1NTBiMmY4OGNhYmJiNjk5Li44ZWJkMjZiNmVjNzY1MmZkZTY1MWQ3
MWQzNGYyN2RhYzJjZDgzNTY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0
b3JhZ2VBY2Nlc3MvYWdncmVnYXRlLXNvcnRlZC1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3MtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFj
Y2Vzcy9hZ2dyZWdhdGUtc29ydGVkLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKQEAgLTE0LDggKzE0LDEyIEBAIFJlZ2lzdHJhYmxlIGRvbWFpbjogMTI3LjAu
MC4xCiAgICAgaGFkVXNlckludGVyYWN0aW9uOiBZZXMKICAgICBtb3N0UmVjZW50VXNlckludGVy
YWN0aW9uOiB3aXRoaW4gMjQgaG91cnMKICAgICBncmFuZGZhdGhlcmVkOiBObworICAgIFRvcEZy
YW1lVW5pcXVlUmVkaXJlY3RzVG86CisgICAgICAgIGxvY2FsaG9zdAorICAgIFRvcEZyYW1lVW5p
cXVlUmVkaXJlY3RzRnJvbToKKyAgICAgICAgbG9jYWxob3N0CiAgICAgSXNTY2hlZHVsZWRGb3JB
bGxCdXRDb29raWVEYXRhUmVtb3ZhbDogTm8KLSAgICBpc1ByZXZhbGVudFJlc291cmNlOiBObwor
ICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IFllcwogICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNl
OiBObwogICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMAogUmVnaXN0cmFibGUgZG9tYWluOiBsb2Nh
bGhvc3QKQEAgLTI0LDYgKzI4LDEwIEBAIFJlZ2lzdHJhYmxlIGRvbWFpbjogbG9jYWxob3N0CiAg
ICAgZ3JhbmRmYXRoZXJlZDogTm8KICAgICBTdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFp
bnM6CiAgICAgICAgIDEyNy4wLjAuMQorICAgIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG86Cisg
ICAgICAgIDEyNy4wLjAuMQorICAgIFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbToKKyAgICAg
ICAgMTI3LjAuMC4xCiAgICAgSXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbDog
Tm8KICAgICBTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zOgogICAgICAgICAxMjcuMC4wLjEK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9hZ2dyZWdh
dGUtc29ydGVkLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvYWdncmVnYXRlLXNvcnRlZC1kYXRhLXdpdGgt
c3RvcmFnZS1hY2Nlc3MtZXhwZWN0ZWQudHh0CmluZGV4IDI2YTdjMzk5Mzk3Y2VjMzhkMzkzMGIw
YjljNTM4MjA2YmM2ZjQwYzYuLmU3MzdlYzU3Mjc5M2M3MzMxOGU5OGI0YTc5YzRhNjNlNzI5MWM2
OWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9hZ2dy
ZWdhdGUtc29ydGVkLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2FnZ3JlZ2F0ZS1zb3J0ZWQtZGF0
YS13aXRoLXN0b3JhZ2UtYWNjZXNzLWV4cGVjdGVkLnR4dApAQCAtMTYsNiArMTYsMTAgQEAgUmVn
aXN0cmFibGUgZG9tYWluOiBsb2NhbGhvc3QKICAgICBncmFuZGZhdGhlcmVkOiBObwogICAgIHN0
b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWluczoKICAgICAgICAgMTI3LjAuMC4xCisgICAg
dG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUbzoKKyAgICAgICAgMTI3LjAuMC4xCisgICAgdG9wRnJh
bWVVbmlxdWVSZWRpcmVjdHNGcm9tOgorICAgICAgICAxMjcuMC4wLjEKICAgICBnb3RMaW5rRGVj
b3JhdGlvbkZyb21QcmV2YWxlbnRSZXNvdXJjZTogTm8KICAgICBzdWJmcmFtZVVuZGVyVG9wRnJh
bWVEb21haW5zOgogICAgICAgICAxMjcuMC4wLjEKQEAgLTI2LDggKzMwLDEyIEBAIFJlZ2lzdHJh
YmxlIGRvbWFpbjogMTI3LjAuMC4xCiAgICAgaGFkVXNlckludGVyYWN0aW9uOiBZZXMKICAgICBt
b3N0UmVjZW50VXNlckludGVyYWN0aW9uOiB3aXRoaW4gMjQgaG91cnMKICAgICBncmFuZGZhdGhl
cmVkOiBObworICAgIHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG86CisgICAgICAgIGxvY2FsaG9z
dAorICAgIHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbToKKyAgICAgICAgbG9jYWxob3N0CiAg
ICAgZ290TGlua0RlY29yYXRpb25Gcm9tUHJldmFsZW50UmVzb3VyY2U6IE5vCi0gICAgaXNQcmV2
YWxlbnRSZXNvdXJjZTogTm8KKyAgICBpc1ByZXZhbGVudFJlc291cmNlOiBZZXMKICAgICBpc1Zl
cnlQcmV2YWxlbnRSZXNvdXJjZTogTm8KICAgICBkYXRhUmVjb3Jkc1JlbW92ZWQ6IDAKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>