<?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>145417</bug_id>
          
          <creation_ts>2015-05-27 15:44:44 -0700</creation_ts>
          <short_desc>Add a &quot;should open urls externally&quot; flag to DocumentLoader</short_desc>
          <delta_ts>2015-05-27 21:53:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>145280</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>japhet</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1097744</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-27 15:44:44 -0700</bug_when>
    <thetext>Add a &quot;should open urls externally&quot; flag to DocumentLoader.

The flag will optionally be set by the WebKit client in a loading API
The flag will propagate down to the DocumentLoader via FrameLoadRequest.
The flag will bubble back out to WebKit navigation delegate API for policy decisions.

As far as WebCore/WebKit is concerned, this patch will not introduce any behavior change.

As discussed in blocked bug https://bugs.webkit.org/show_bug.cgi?id=145280, the followup patch will make more extensive changes to WebCore and will be testable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097755</commentid>
    <comment_count>1</comment_count>
      <attachid>253810</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-27 16:05:31 -0700</bug_when>
    <thetext>Created attachment 253810
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097756</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-27 16:08:02 -0700</bug_when>
    <thetext>Attachment 253810 did not pass style-queue:


ERROR: Source/WebCore/loader/DocumentLoader.h:181:  The parameter name &quot;action&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:78:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/WebPageProxy.h:355:  The parameter name &quot;openURLsExternallyPolicy&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextController.mm:48:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 4 in 24 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097758</commentid>
    <comment_count>3</comment_count>
      <attachid>253810</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-05-27 16:18:37 -0700</bug_when>
    <thetext>Comment on attachment 253810
Patch v1

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

I&apos;m a bit concerned that we have three phrases for the same thing:
_web_isUserInitiated
OpenURLsExternallyPolicy
shouldOpenURLsExternally

Can we get this down to one phrase?

&gt; Source/WebCore/loader/DocumentLoader.cpp:1560
&gt; +        m_triggeringAction.setOpenURLsExternallyPolicy(m_openURLsExternallyPolicy);

When I first read &quot;shouldOpenURLsExternally&quot;, it struck me as saying &quot;all URLs should open externally&quot;, which wasn&apos;t your intent. 

shouldOpenExternalURLs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097761</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-27 16:25:08 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 253810 [details]
&gt; Patch v1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=253810&amp;action=review
&gt; 
&gt; I&apos;m a bit concerned that we have three phrases for the same thing:
&gt; _web_isUserInitiated
&gt; OpenURLsExternallyPolicy
&gt; shouldOpenURLsExternally
&gt; 
&gt; Can we get this down to one phrase?

Maybe.

&gt; When I first read &quot;shouldOpenURLsExternally&quot;, it struck me as saying &quot;all
&gt; URLs should open externally&quot;, which wasn&apos;t your intent. 
&gt; 
&gt; shouldOpenExternalURLs?

ShouldOpenExternalURLsPolicy for internal use, shouldOpenExternalURLs for the API layer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097778</commentid>
    <comment_count>5</comment_count>
      <attachid>253818</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-27 16:54:00 -0700</bug_when>
    <thetext>Created attachment 253818
Patch for EWS/Landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097810</commentid>
    <comment_count>6</comment_count>
      <attachid>253818</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-27 19:15:18 -0700</bug_when>
    <thetext>Comment on attachment 253818
Patch for EWS/Landing

Rejecting attachment 253818 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 253818, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
ubmit
    return self.open(self.click(*args, **kwds))
  File &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/thirdparty/autoinstalled/mechanize/_mechanize.py&quot;, line 203, in open
    return self._mech_open(url, data, timeout=timeout)
  File &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/thirdparty/autoinstalled/mechanize/_mechanize.py&quot;, line 255, in _mech_open
    raise response
webkitpy.thirdparty.autoinstalled.mechanize._response.httperror_seek_wrapper: HTTP Error 500: Internal Server Error

Full output: http://webkit-queues.appspot.com/results/5598173376544768</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097817</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-27 20:53:20 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 253818 [details]
&gt; Patch for EWS/Landing
&gt; 
&gt; Rejecting attachment 253818 [details] from commit-queue.
&gt; 
&gt; Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;,
&gt; &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-01&apos;,
&gt; &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 253818,
&gt; &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit
&gt; 
&gt; Last 500 characters of output:
&gt; ubmit
&gt;     return self.open(self.click(*args, **kwds))
&gt;   File
&gt; &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/thirdparty/autoinstalled/
&gt; mechanize/_mechanize.py&quot;, line 203, in open
&gt;     return self._mech_open(url, data, timeout=timeout)
&gt;   File
&gt; &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/thirdparty/autoinstalled/
&gt; mechanize/_mechanize.py&quot;, line 255, in _mech_open
&gt;     raise response
&gt; webkitpy.thirdparty.autoinstalled.mechanize._response.httperror_seek_wrapper:
&gt; HTTP Error 500: Internal Server Error
&gt; 
&gt; Full output: http://webkit-queues.appspot.com/results/5598173376544768


This clearly looks like bogusness on the bot side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097832</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-27 21:53:18 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/184941</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253810</attachid>
            <date>2015-05-27 16:05:31 -0700</date>
            <delta_ts>2015-05-27 16:54:00 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>29861</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwZjg0Mjc3Li5lMTI3NzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIg
QEAKKzIwMTUtMDUtMjcgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBhICJzaG91bGQgb3BlbiB1cmxzIGV4dGVybmFsbHkiIGZsYWcgdG8gRG9jdW1lbnRM
b2FkZXIuCisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzIxMDI1MzAxIGFuZCBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1NDE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChObyBjaGFuZ2UgaW4gYmVo
YXZpb3IsIHRlc3RhYmxlIGF0IEFQSSBsZXZlbCB3aXRoIGEgZm9sbG93dXAgcGF0Y2gpCisKKyAg
ICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnRMb2FkZXI6OnNldFRyaWdnZXJpbmdBY3Rpb24pOiBBcHBseSB0aGUgY3VycmVudCBmbGFn
IHZhbHVlIHRvIHRoZSAKKyAgICAgICAgICBuZXcgTmF2aWdhdGlvbkFjdGlvbiBzbyBpdCBjYW4g
YmUgdXNlZCBsYXRlci4KKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpzZXRPcGVuVVJMc0V4dGVybmFsbHlQb2xpY3kp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6Om9wZW5VUkxzRXh0ZXJuYWxseVBv
bGljeSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c2V0VHJpZ2dlcmluZ0Fj
dGlvbik6IERlbGV0ZWQuCisKKyAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBzaG91bGQgaG9sZCB0
aGUgbmV3IGZsYWcgdG8gcGFzcyBpbnRvIEZyYW1lTG9hZGVyIG1hY2hpbmVyeToKKyAgICAgICAg
KiBsb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
UmVxdWVzdDo6c2V0T3BlblVSTHNFeHRlcm5hbGx5UG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZFJlcXVlc3Q6Om9wZW5VUkxzRXh0ZXJuYWxseVBvbGljeSk6CisKKyAgICAgICAg
KiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OmxvYWQpOiBTZXQgdGhlIGZsYWcgb24gdGhlIG5ld2x5IGNyZWF0ZWQgRG9jdW1lbnRMb2FkZXIg
YnV0CisgICAgICAgICAgb25seSBpZiBpdCBpcyBmb3IgdGhlIG1haW4gZnJhbWUuCisKKyAgICAg
ICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oOiBBZGQgYSBuZXcgZW51bSBmb3IgdGhlIGZs
YWcuCisKKyAgICAgICAgTmF2aWdhdGlvbiBhY3Rpb24gc2hvdWxkIGhvbGQgdGhlIG5ldyBmbGFn
IHRvIHBhc3MgdG8gdGhlIHBvbGljeSBkZWxlZ2F0ZToKKyAgICAgICAgKiBsb2FkZXIvTmF2aWdh
dGlvbkFjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uOjpOYXZp
Z2F0aW9uQWN0aW9uKToKKyAgICAgICAgKiBsb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbjo6b3BlblVSTHNFeHRlcm5hbGx5UG9saWN5
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb246OnNldE9wZW5VUkxzRXh0ZXJu
YWxseVBvbGljeSk6CisKKyAgICAgICAgKiBsb2FkZXIvUG9saWN5Q2hlY2tlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xpY3kpOiBJbmNs
dWRlIHRoZSBmbGFnIGZyb20gdGhlIERvY3VtZW50TG9hZGVyCisgICAgICAgICAgaW4gdGhlIE5h
dmlnYXRpb25BY3Rpb24uCisKIDIwMTUtMDUtMjcgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBw
bGUuY29tPgogCiAgICAgICAgIEF0dGVtcHQgdG8gZml4IGludGVybmFsIGJ1aWxkIGZvbGxvd2lu
ZyA8aHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTg0NzYwPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggYWQ1Mjg2NC4uYzkwMDNkNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC0xNTUzLDYgKzE1NTMsMTMg
QEAgdm9pZCBEb2N1bWVudExvYWRlcjo6aGFuZGxlZE9ubG9hZEV2ZW50cygpCiAgICAgYXBwbGlj
YXRpb25DYWNoZUhvc3QoKS0+c3RvcERlZmVycmluZ0V2ZW50cygpOwogfQogCit2b2lkIERvY3Vt
ZW50TG9hZGVyOjpzZXRUcmlnZ2VyaW5nQWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFj
dGlvbikKK3sKKyAgICBtX3RyaWdnZXJpbmdBY3Rpb24gPSBhY3Rpb247CisgICAgaWYgKCFtX3Ry
aWdnZXJpbmdBY3Rpb24uaXNFbXB0eSgpKQorICAgICAgICBtX3RyaWdnZXJpbmdBY3Rpb24uc2V0
T3BlblVSTHNFeHRlcm5hbGx5UG9saWN5KG1fb3BlblVSTHNFeHRlcm5hbGx5UG9saWN5KTsKK30K
KwogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCiB2b2lkIERvY3VtZW50TG9hZGVyOjph
ZGRQZW5kaW5nQ29udGVudEV4dGVuc2lvblNoZWV0KGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwg
U3R5bGVTaGVldENvbnRlbnRzJiBzaGVldCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Eb2N1bWVudExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmgKaW5kZXggNjMyODc2NC4uNDM3ZDUxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50TG9hZGVyLmgKQEAgLTE3OCw3ICsxNzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIGNvbnN0IFJlc3BvbnNlVmVjdG9yJiByZXNwb25zZXMoKSBjb25zdCB7IHJldHVybiBt
X3Jlc3BvbnNlczsgfQogCiAgICAgICAgIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIHRyaWdnZXJp
bmdBY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3RyaWdnZXJpbmdBY3Rpb247IH0KLSAgICAgICAg
dm9pZCBzZXRUcmlnZ2VyaW5nQWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbikg
eyBtX3RyaWdnZXJpbmdBY3Rpb24gPSBhY3Rpb247IH0KKyAgICAgICAgdm9pZCBzZXRUcmlnZ2Vy
aW5nQWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbik7CiAgICAgICAgIHZvaWQg
c2V0T3ZlcnJpZGVFbmNvZGluZyhjb25zdCBTdHJpbmcmIGVuY29kaW5nKSB7IG1fb3ZlcnJpZGVF
bmNvZGluZyA9IGVuY29kaW5nOyB9CiAgICAgICAgIHZvaWQgc2V0TGFzdENoZWNrZWRSZXF1ZXN0
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgeyBtX2xhc3RDaGVja2VkUmVxdWVzdCA9
IHJlcXVlc3Q7IH0KICAgICAgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBsYXN0Q2hlY2tlZFJl
cXVlc3QoKSAgeyByZXR1cm4gbV9sYXN0Q2hlY2tlZFJlcXVlc3Q7IH0KQEAgLTI3NCw2ICsyNzQs
OSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgYWRkUGVuZGluZ0NvbnRlbnRF
eHRlbnNpb25EaXNwbGF5Tm9uZVNlbGVjdG9yKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBzZWxlY3RvciwgdWludDMyX3Qgc2VsZWN0b3JJRCk7CiAjZW5kaWYKIAorICAg
ICAgICB2b2lkIHNldE9wZW5VUkxzRXh0ZXJuYWxseVBvbGljeShPcGVuVVJMc0V4dGVybmFsbHlQ
b2xpY3kgb3BlblVSTHNFeHRlcm5hbGx5UG9saWN5KSB7IG1fb3BlblVSTHNFeHRlcm5hbGx5UG9s
aWN5ID0gb3BlblVSTHNFeHRlcm5hbGx5UG9saWN5OyB9CisgICAgICAgIE9wZW5VUkxzRXh0ZXJu
YWxseVBvbGljeSBvcGVuVVJMc0V4dGVybmFsbHlQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX29w
ZW5VUkxzRXh0ZXJuYWxseVBvbGljeTsgfQorCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBXRUJD
T1JFX0VYUE9SVCBEb2N1bWVudExvYWRlcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBT
dWJzdGl0dXRlRGF0YSYpOwogCkBAIC00MjYsNiArNDI5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBSZWZQdHI8SWNvbkRhdGFDYWxsYmFjaz4gbV9pY29uRGF0YUNhbGxiYWNrOwog
CiAgICAgICAgIGJvb2wgbV9zdWJyZXNvdXJjZUxvYWRlcnNBcmVQYWdlQ2FjaGVBY2NlcHRhYmxl
OworICAgICAgICBPcGVuVVJMc0V4dGVybmFsbHlQb2xpY3kgbV9vcGVuVVJMc0V4dGVybmFsbHlQ
b2xpY3kgeyBPcGVuVVJMc0V4dGVybmFsbHlQb2xpY3k6OlNob3VsZE5vdEFsbG93IH07CiAKICAg
ICAgICAgZnJpZW5kIGNsYXNzIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OyAgLy8gZm9yIHN1YnN0aXR1
dGUgcmVzb3VyY2UgZGVsaXZlcnkKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEFwcGxpY2F0aW9u
Q2FjaGVIb3N0PiBtX2FwcGxpY2F0aW9uQ2FjaGVIb3N0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRSZXF1ZXN0LmgKaW5kZXggNjQ1ODhkMTIuLmM0ZjliZTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaApAQCAtMTA0LDYgKzEwNCw5IEBAIHB1YmxpYzoK
ICAgICAvLyBjb3JyZXNwb25kaW5nIHBhcmFtZXRlciBmcm9tIFNjcmlwdENvbnRyb2xsZXI6OmV4
ZWN1dGVJZkphdmFTY3JpcHRVUkwoKSBpcyBhZGRyZXNzZWQuCiAgICAgU2hvdWxkUmVwbGFjZURv
Y3VtZW50SWZKYXZhU2NyaXB0VVJMIHNob3VsZFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVS
TCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJM
OyB9CiAKKyAgICB2b2lkIHNldE9wZW5VUkxzRXh0ZXJuYWxseVBvbGljeShPcGVuVVJMc0V4dGVy
bmFsbHlQb2xpY3kgcG9saWN5KSB7IG1fb3BlblVSTHNFeHRlcm5hbGx5UG9saWN5ID0gcG9saWN5
OyB9CisgICAgT3BlblVSTHNFeHRlcm5hbGx5UG9saWN5IG9wZW5VUkxzRXh0ZXJuYWxseVBvbGlj
eSgpIGNvbnN0IHsgcmV0dXJuIG1fb3BlblVSTHNFeHRlcm5hbGx5UG9saWN5OyB9CisKIHByaXZh
dGU6CiAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX3JlcXVlc3RlcjsKICAgICBSZXNvdXJj
ZVJlcXVlc3QgbV9yZXNvdXJjZVJlcXVlc3Q7CkBAIC0xMTcsNiArMTIwLDcgQEAgcHJpdmF0ZToK
ICAgICBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwgbV9hbGxvd05hdmlnYXRpb25Ub0ludmFs
aWRVUkw7CiAgICAgTmV3RnJhbWVPcGVuZXJQb2xpY3kgbV9uZXdGcmFtZU9wZW5lclBvbGljeTsK
ICAgICBTaG91bGRSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwgbV9zaG91bGRSZXBsYWNl
RG9jdW1lbnRJZkphdmFTY3JpcHRVUkw7CisgICAgT3BlblVSTHNFeHRlcm5hbGx5UG9saWN5IG1f
b3BlblVSTHNFeHRlcm5hbGx5UG9saWN5IHsgT3BlblVSTHNFeHRlcm5hbGx5UG9saWN5OjpTaG91
bGROb3RBbGxvdyB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAK
aW5kZXggODViMWY4Ny4uNDE0ZTQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCkBAIC0xMzA4LDYgKzEzMDgsOSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkKGNvbnN0IEZy
YW1lTG9hZFJlcXVlc3QmIHBhc3NlZFJlcXVlc3QpCiAgICAgICAgIHJlcXVlc3Quc2V0U3Vic3Rp
dHV0ZURhdGEoZGVmYXVsdFN1YnN0aXR1dGVEYXRhRm9yVVJMKHJlcXVlc3QucmVzb3VyY2VSZXF1
ZXN0KCkudXJsKCkpKTsKIAogICAgIFJlZlB0cjxEb2N1bWVudExvYWRlcj4gbG9hZGVyID0gbV9j
bGllbnQuY3JlYXRlRG9jdW1lbnRMb2FkZXIocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgcmVx
dWVzdC5zdWJzdGl0dXRlRGF0YSgpKTsKKyAgICBpZiAobV9mcmFtZS5pc01haW5GcmFtZSgpKQor
ICAgICAgICBsb2FkZXItPnNldE9wZW5VUkxzRXh0ZXJuYWxseVBvbGljeShyZXF1ZXN0Lm9wZW5V
UkxzRXh0ZXJuYWxseVBvbGljeSgpKTsKKwogICAgIGxvYWQobG9hZGVyLmdldCgpKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKaW5kZXggNGVmOGFiNi4uODRk
MjM4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oCkBAIC03MSw2
ICs3MSwxMSBAQCBlbnVtIGNsYXNzIE5hdmlnYXRpb25UeXBlIHsKICAgICBPdGhlcgogfTsKIAor
ZW51bSBjbGFzcyBPcGVuVVJMc0V4dGVybmFsbHlQb2xpY3kgeworICAgIFNob3VsZE5vdEFsbG93
LAorICAgIFNob3VsZEFsbG93LAorfTsKKwogICAgIGVudW0gQ2xlYXJQcm92aXNpb25hbEl0ZW1Q
b2xpY3kgewogICAgICAgICBTaG91bGRDbGVhclByb3Zpc2lvbmFsSXRlbSwKICAgICAgICAgU2hv
dWxkTm90Q2xlYXJQcm92aXNpb25hbEl0ZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0
aW9uQWN0aW9uLmNwcAppbmRleCA4MzdlYmRkLi42ZjYxMGZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwCkBAIC04NCw2ICs4NCwxMyBAQCBOYXZpZ2F0aW9u
QWN0aW9uOjpOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VS
ZXF1ZXN0LCBOYXZpZwogewogfQogCitOYXZpZ2F0aW9uQWN0aW9uOjpOYXZpZ2F0aW9uQWN0aW9u
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBOYXZpZ2F0aW9uVHlwZSB0
eXBlLCBPcGVuVVJMc0V4dGVybmFsbHlQb2xpY3kgb3BlblVSTHNFeHRlcm5hbGx5UG9saWN5KQor
ICAgIDogbV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KQorICAgICwgbV90eXBlKHR5
cGUpCisgICAgLCBtX29wZW5VUkxzRXh0ZXJuYWxseVBvbGljeShvcGVuVVJMc0V4dGVybmFsbHlQ
b2xpY3kpCit7Cit9CisKIE5hdmlnYXRpb25BY3Rpb246Ok5hdmlnYXRpb25BY3Rpb24oY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIEZyYW1lTG9hZFR5cGUgZnJhbWVMb2Fk
VHlwZSwKICAgICAgICAgYm9vbCBpc0Zvcm1TdWJtaXNzaW9uLCBQYXNzUmVmUHRyPEV2ZW50PiBl
dmVudCkKICAgICA6IG1fcmVzb3VyY2VSZXF1ZXN0KHJlc291cmNlUmVxdWVzdCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oCmluZGV4IDFiNDhkMGMuLmJhM2M2ZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaApAQCAtMzcsMzEgKzM3LDM2
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIE5hdmlnYXRpb25BY3Rpb24g
ewotICAgIHB1YmxpYzoKLSAgICAgICAgV0VCQ09SRV9FWFBPUlQgTmF2aWdhdGlvbkFjdGlvbigp
OwotICAgICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYpOwotICAgICAgICBXRUJDT1JFX0VYUE9SVCBOYXZpZ2F0aW9uQWN0
aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIE5hdmlnYXRpb25UeXBlKTsKLSAgICAgICAgV0VC
Q09SRV9FWFBPUlQgTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGcmFt
ZUxvYWRUeXBlLCBib29sIGlzRm9ybVN1Ym1pc3Npb24pOwotICAgICAgICBOYXZpZ2F0aW9uQWN0
aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIE5hdmlnYXRpb25UeXBlLCBQYXNzUmVmUHRyPEV2
ZW50Pik7Ci0gICAgICAgIE5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
RnJhbWVMb2FkVHlwZSwgYm9vbCBpc0Zvcm1TdWJtaXNzaW9uLCBQYXNzUmVmUHRyPEV2ZW50Pik7
CitjbGFzcyBOYXZpZ2F0aW9uQWN0aW9uIHsKK3B1YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBO
YXZpZ2F0aW9uQWN0aW9uKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgTmF2aWdhdGlv
bkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBOYXZp
Z2F0aW9uQWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIE5hdmlnYXRpb25UeXBlKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IEZyYW1lTG9hZFR5cGUsIGJvb2wgaXNGb3JtU3VibWlzc2lvbik7CisgICAgTmF2aWdhdGlvbkFj
dGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBOYXZpZ2F0aW9uVHlwZSwgUGFzc1JlZlB0cjxF
dmVudD4pOworICAgIE5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgTmF2
aWdhdGlvblR5cGUsIE9wZW5VUkxzRXh0ZXJuYWxseVBvbGljeSk7CisgICAgTmF2aWdhdGlvbkFj
dGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGcmFtZUxvYWRUeXBlLCBib29sIGlzRm9ybVN1
Ym1pc3Npb24sIFBhc3NSZWZQdHI8RXZlbnQ+KTsKIAotICAgICAgICBib29sIGlzRW1wdHkoKSBj
b25zdCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdC51cmwoKS5pc0VtcHR5KCk7IH0KKyAgICBi
b29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdC51cmwoKS5pc0Vt
cHR5KCk7IH0KIAotICAgICAgICBVUkwgdXJsKCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZVJl
cXVlc3QudXJsKCk7IH0KLSAgICAgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJl
cXVlc3QoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdDsgfQorICAgIFVSTCB1cmwo
KSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdC51cmwoKTsgfQorICAgIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJj
ZVJlcXVlc3Q7IH0KIAotICAgICAgICBOYXZpZ2F0aW9uVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1
cm4gbV90eXBlOyB9Ci0gICAgICAgIGNvbnN0IEV2ZW50KiBldmVudCgpIGNvbnN0IHsgcmV0dXJu
IG1fZXZlbnQuZ2V0KCk7IH0KKyAgICBOYXZpZ2F0aW9uVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1
cm4gbV90eXBlOyB9CisgICAgY29uc3QgRXZlbnQqIGV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9l
dmVudC5nZXQoKTsgfQogCi0gICAgICAgIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkgY29u
c3QgeyByZXR1cm4gbV9wcm9jZXNzaW5nVXNlckdlc3R1cmU7IH0KKyAgICBib29sIHByb2Nlc3Np
bmdVc2VyR2VzdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc2luZ1VzZXJHZXN0dXJlOyB9
CiAKLSAgICBwcml2YXRlOgotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgbV9yZXNvdXJjZVJlcXVl
c3Q7Ci0gICAgICAgIE5hdmlnYXRpb25UeXBlIG1fdHlwZTsKLSAgICAgICAgUmVmUHRyPEV2ZW50
PiBtX2V2ZW50OwotICAgICAgICBib29sIG1fcHJvY2Vzc2luZ1VzZXJHZXN0dXJlOwotICAgIH07
CisgICAgT3BlblVSTHNFeHRlcm5hbGx5UG9saWN5IG9wZW5VUkxzRXh0ZXJuYWxseVBvbGljeSgp
IGNvbnN0IHsgcmV0dXJuIG1fb3BlblVSTHNFeHRlcm5hbGx5UG9saWN5OyB9CisgICAgdm9pZCBz
ZXRPcGVuVVJMc0V4dGVybmFsbHlQb2xpY3koT3BlblVSTHNFeHRlcm5hbGx5UG9saWN5IHBvbGlj
eSkgeyBtX29wZW5VUkxzRXh0ZXJuYWxseVBvbGljeSA9IHBvbGljeTsgfQorCitwcml2YXRlOgor
ICAgIFJlc291cmNlUmVxdWVzdCBtX3Jlc291cmNlUmVxdWVzdDsKKyAgICBOYXZpZ2F0aW9uVHlw
ZSBtX3R5cGU7CisgICAgUmVmUHRyPEV2ZW50PiBtX2V2ZW50OworICAgIGJvb2wgbV9wcm9jZXNz
aW5nVXNlckdlc3R1cmU7CisgICAgT3BlblVSTHNFeHRlcm5hbGx5UG9saWN5IG1fb3BlblVSTHNF
eHRlcm5hbGx5UG9saWN5IHsgT3BlblVSTHNFeHRlcm5hbGx5UG9saWN5OjpTaG91bGROb3RBbGxv
dyB9OworfTsKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5
Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKaW5k
ZXggOTE3OGI5MC4uZmM5ZjM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Bv
bGljeUNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2Vy
LmNwcApAQCAtNjUsNyArNjUsNyBAQCB2b2lkIFBvbGljeUNoZWNrZXI6OmNoZWNrTmF2aWdhdGlv
blBvbGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIERvY3VtZQogewogICAgIE5h
dmlnYXRpb25BY3Rpb24gYWN0aW9uID0gbG9hZGVyLT50cmlnZ2VyaW5nQWN0aW9uKCk7CiAgICAg
aWYgKGFjdGlvbi5pc0VtcHR5KCkpIHsKLSAgICAgICAgYWN0aW9uID0gTmF2aWdhdGlvbkFjdGlv
bihyZXF1ZXN0LCBOYXZpZ2F0aW9uVHlwZTo6T3RoZXIpOworICAgICAgICBhY3Rpb24gPSBOYXZp
Z2F0aW9uQWN0aW9uKHJlcXVlc3QsIE5hdmlnYXRpb25UeXBlOjpPdGhlciwgbG9hZGVyLT5vcGVu
VVJMc0V4dGVybmFsbHlQb2xpY3koKSk7CiAgICAgICAgIGxvYWRlci0+c2V0VHJpZ2dlcmluZ0Fj
dGlvbihhY3Rpb24pOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDI0MGEwMjUuLjc2MDI2MWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw1MCBAQAorMjAxNS0wNS0yNyAgQnJhZHkgRWlkc29uICA8YmVp
ZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgInNob3VsZCBvcGVuIHVybHMgZXh0ZXJu
YWxseSIgZmxhZyB0byBEb2N1bWVudExvYWRlci4KKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMjEw
MjUzMDEgYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU0MTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIb2xkIHRo
ZSBuZXcgZmxhZyBhcyBhIGJvb2wsIGFuZCBlbmNvZGUvZGVjb2RlIGl0IGFjcm9zcyBJUEM6Cisg
ICAgICAgICogU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmF2aWdhdGlvbkFjdGlvbkRhdGE6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6Ok5hdmln
YXRpb25BY3Rpb25EYXRhOjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uQWN0
aW9uRGF0YTo6TmF2aWdhdGlvbkFjdGlvbkRhdGEpOiBEZWxldGVkLgorICAgICAgICAqIFNoYXJl
ZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oOgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElO
YXZpZ2F0aW9uQWN0aW9uLmg6IEFkZCBhY2Nlc3NvciBmb3IgdGhlIGJvb2wgZmxhZy4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlTG9hZFVS
TFdpdGhVc2VyRGF0YSk6IFVzZSAiU2hvdWxkTm90QWxsb3ciIGluIHRoZSBsZWdhY3kgQyBBUEkg
Zm9yIG5vdy4KKyAgICAgICAgKFdLUGFnZUxvYWRVUkxSZXF1ZXN0V2l0aFVzZXJEYXRhKTogRGl0
dG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIGxvYWRS
ZXF1ZXN0OnVzZXJEYXRhOl0pOiBTZXQgdGhlIHZhbHVlIG9mIHRoZSBmbGFnCisgICAgICAgICAg
YmFzZWQgb24gd2hldGhlciBvciBub3QgdGhlIGluaXRpYXRpbmcgTlNVUkxSZXF1ZXN0IHdhcyB1
c2VyIGluaXRpYXRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0
aW9uQWN0aW9uLm1tOgorICAgICAgICAoLVtXS05hdmlnYXRpb25BY3Rpb24gX3Nob3VsZE9wZW5V
UkxzRXh0ZXJuYWxseV0pOiBBZGQgYWNjZXNzb3IgZm9yIHRoZSBib29sIGZsYWcuCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmg6CisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IGxvYWRSZXF1ZXN0Ol0pOiBTZXQgdGhlIHZhbHVlIG9mIHRoZSBmbGFnIGJhc2VkIG9u
IHdoZXRoZXIgb3Igbm90IHRoZQorICAgICAgICAgIGluaXRpYXRpbmcgTlNVUkxSZXF1ZXN0IHdh
cyB1c2VyIGluaXRpYXRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0KTogUGFzcyB0aGUg
dmFsdWUgZG93biB0byB0aGUgV2ViUHJvY2VzcyB0byBsb2FkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmxvYWRGaWxlKTogRGl0dG8sIGJ1dCBhbHdheXMgd2l0aCAiU2hvdWxkTm90
QWxsb3ciLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKworICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uKTogVHJhbnNsYXRlIAorICAgICAgICAgIHRoZSBOYXZpZ2F0aW9u
QWN0aW9uIGZsYWcgdG8gYSBib29sIGluIHRoZSBOYXZpZ2F0aW9uQWN0aW9uRGF0YSBvYmplY3Qu
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmxvYWRSZXF1ZXN0KTogU2V0IHRoZSB2YWx1ZSBvZiB0aGUgZmxhZyBp
biB0aGUgRnJhbWVMb2FkUmVxdWVzdCB0aGF0CisgICAgICAgICAgd2lsbCBiZSBsb2FkZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAxNS0wNS0yNyAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFzc2VydGlvbiBoaXQgaW4gV2ViUGFn
ZTo6ZGlkQ2hhbmdlU2VsZWN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF2aWdh
dGlvbkFjdGlvbkRhdGEuY3BwCmluZGV4IDczMjdhNGUuLjVkZTcxZGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmNwcApAQCAtMzMsMTUgKzMzLDYg
QEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1OYXZp
Z2F0aW9uQWN0aW9uRGF0YTo6TmF2aWdhdGlvbkFjdGlvbkRhdGEoKQotICAgIDogbmF2aWdhdGlv
blR5cGUoTmF2aWdhdGlvblR5cGU6Ok90aGVyKQotICAgICwgbW9kaWZpZXJzKCkKLSAgICAsIG1v
dXNlQnV0dG9uKFdlYk1vdXNlRXZlbnQ6Ok5vQnV0dG9uKQotICAgICwgaXNQcm9jZXNzaW5nVXNl
ckdlc3R1cmUoZmFsc2UpCi0gICAgLCBjYW5IYW5kbGVSZXF1ZXN0KGZhbHNlKQotewotfQotCiB2
b2lkIE5hdmlnYXRpb25BY3Rpb25EYXRhOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiB7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG5hdmlnYXRpb25UeXBlKTsK
QEAgLTQ5LDYgKzQwLDcgQEAgdm9pZCBOYXZpZ2F0aW9uQWN0aW9uRGF0YTo6ZW5jb2RlKElQQzo6
QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIuZW5jb2RlRW51bSht
b3VzZUJ1dHRvbik7CiAgICAgZW5jb2RlciA8PCBpc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZTsKICAg
ICBlbmNvZGVyIDw8IGNhbkhhbmRsZVJlcXVlc3Q7CisgICAgZW5jb2RlciA8PCBzaG91bGRPcGVu
VVJMc0V4dGVybmFsbHk7CiB9CiAKIGJvb2wgTmF2aWdhdGlvbkFjdGlvbkRhdGE6OmRlY29kZShJ
UEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmIHJlc3Vs
dCkKQEAgLTYzLDYgKzU1LDggQEAgYm9vbCBOYXZpZ2F0aW9uQWN0aW9uRGF0YTo6ZGVjb2RlKElQ
Qzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBOYXZpZ2F0aW9uQWN0aW8KICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmNhbkhhbmRsZVJlcXVl
c3QpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1
bHQuc2hvdWxkT3BlblVSTHNFeHRlcm5hbGx5KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF2
aWdhdGlvbkFjdGlvbkRhdGEuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXZpZ2F0aW9uQWN0
aW9uRGF0YS5oCmluZGV4IGE4ZTA0ZTcuLjNmNGVhZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oCkBAIC0zNywxNiArMzcsMTUgQEAgY2xhc3MgQXJn
dW1lbnRFbmNvZGVyOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVjdCBOYXZpZ2F0aW9uQWN0
aW9uRGF0YSB7Ci0gICAgTmF2aWdhdGlvbkFjdGlvbkRhdGEoKTsKLQogICAgIHZvaWQgZW5jb2Rl
KElQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQ
Qzo6QXJndW1lbnREZWNvZGVyJiwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmKTsKIAotICAgIFdlYkNv
cmU6Ok5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25UeXBlOwotICAgIFdlYkV2ZW50OjpNb2RpZmll
cnMgbW9kaWZpZXJzOwotICAgIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBtb3VzZUJ1dHRvbjsKLSAg
ICBib29sIGlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlOwotICAgIGJvb2wgY2FuSGFuZGxlUmVxdWVz
dDsKKyAgICBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSB7IFdlYkNvcmU6
Ok5hdmlnYXRpb25UeXBlOjpPdGhlciB9OworICAgIFdlYkV2ZW50OjpNb2RpZmllcnMgbW9kaWZp
ZXJzIHsgfTsKKyAgICBXZWJNb3VzZUV2ZW50OjpCdXR0b24gbW91c2VCdXR0b24geyBXZWJNb3Vz
ZUV2ZW50OjpOb0J1dHRvbiB9OworICAgIGJvb2wgaXNQcm9jZXNzaW5nVXNlckdlc3R1cmUgeyBm
YWxzZSB9OworICAgIGJvb2wgY2FuSGFuZGxlUmVxdWVzdCB7IGZhbHNlIH07CisgICAgYm9vbCBz
aG91bGRPcGVuVVJMc0V4dGVybmFsbHkgeyBmYWxzZSB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25BY3Rpb24uaAppbmRleCA2NzJl
OTBiLi40MmYzZGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQ
SU5hdmlnYXRpb25BY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQ
SU5hdmlnYXRpb25BY3Rpb24uaApAQCAtNjMsNiArNjMsNyBAQCBwdWJsaWM6CiAgICAgV2ViS2l0
OjpXZWJNb3VzZUV2ZW50OjpCdXR0b24gbW91c2VCdXR0b24oKSBjb25zdCB7IHJldHVybiBtX25h
dmlnYXRpb25BY3Rpb25EYXRhLm1vdXNlQnV0dG9uOyB9CiAgICAgYm9vbCBpc1Byb2Nlc3NpbmdV
c2VyR2VzdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmF2aWdhdGlvbkFjdGlvbkRhdGEuaXNQcm9j
ZXNzaW5nVXNlckdlc3R1cmU7IH0KICAgICBib29sIGNhbkhhbmRsZVJlcXVlc3QoKSBjb25zdCB7
IHJldHVybiBtX25hdmlnYXRpb25BY3Rpb25EYXRhLmNhbkhhbmRsZVJlcXVlc3Q7IH0KKyAgICBi
b29sIHNob3VsZE9wZW5VUkxzRXh0ZXJuYWxseSgpIGNvbnN0IHsgcmV0dXJuIG1fbmF2aWdhdGlv
bkFjdGlvbkRhdGEuc2hvdWxkT3BlblVSTHNFeHRlcm5hbGx5OyB9CiAKIHByaXZhdGU6CiAgICAg
UmVmUHRyPEZyYW1lSW5mbz4gbV9zb3VyY2VGcmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggYTdhZTJkNS4uYzI1NGIxMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTEyOCw3ICsxMjgsNyBAQCB2b2lkIFdL
UGFnZUxvYWRVUkwoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLVVJMUmVmIFVSTFJlZikKIAogdm9pZCBX
S1BhZ2VMb2FkVVJMV2l0aFVzZXJEYXRhKFdLUGFnZVJlZiBwYWdlUmVmLCBXS1VSTFJlZiBVUkxS
ZWYsIFdLVHlwZVJlZiB1c2VyRGF0YVJlZikKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPmxvYWRS
ZXF1ZXN0KFVSTChVUkwoKSwgdG9XVEZTdHJpbmcoVVJMUmVmKSksIHRvSW1wbCh1c2VyRGF0YVJl
ZikpOworICAgIHRvSW1wbChwYWdlUmVmKS0+bG9hZFJlcXVlc3QoVVJMKFVSTCgpLCB0b1dURlN0
cmluZyhVUkxSZWYpKSwgT3BlblVSTHNFeHRlcm5hbGx5UG9saWN5OjpTaG91bGROb3RBbGxvdywg
dG9JbXBsKHVzZXJEYXRhUmVmKSk7CiB9CiAKIHZvaWQgV0tQYWdlTG9hZFVSTFJlcXVlc3QoV0tQ
YWdlUmVmIHBhZ2VSZWYsIFdLVVJMUmVxdWVzdFJlZiB1cmxSZXF1ZXN0UmVmKQpAQCAtMTM4LDcg
KzEzOCw3IEBAIHZvaWQgV0tQYWdlTG9hZFVSTFJlcXVlc3QoV0tQYWdlUmVmIHBhZ2VSZWYsIFdL
VVJMUmVxdWVzdFJlZiB1cmxSZXF1ZXN0UmVmKQogCiB2b2lkIFdLUGFnZUxvYWRVUkxSZXF1ZXN0
V2l0aFVzZXJEYXRhKFdLUGFnZVJlZiBwYWdlUmVmLCBXS1VSTFJlcXVlc3RSZWYgdXJsUmVxdWVz
dFJlZiwgV0tUeXBlUmVmIHVzZXJEYXRhUmVmKQogewotICAgIHRvSW1wbChwYWdlUmVmKS0+bG9h
ZFJlcXVlc3QodG9JbXBsKHVybFJlcXVlc3RSZWYpLT5yZXNvdXJjZVJlcXVlc3QoKSwgdG9JbXBs
KHVzZXJEYXRhUmVmKSk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5sb2FkUmVxdWVzdCh0b0ltcGwo
dXJsUmVxdWVzdFJlZiktPnJlc291cmNlUmVxdWVzdCgpLCBPcGVuVVJMc0V4dGVybmFsbHlQb2xp
Y3k6OlNob3VsZE5vdEFsbG93LCB0b0ltcGwodXNlckRhdGFSZWYpKTsKIH0KIAogdm9pZCBXS1Bh
Z2VMb2FkRmlsZShXS1BhZ2VSZWYgcGFnZVJlZiwgV0tVUkxSZWYgZmlsZVVSTCwgV0tVUkxSZWYg
cmVzb3VyY2VEaXJlY3RvcnlVUkwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCmlu
ZGV4IDFmNDJjODAuLjY0MWI5ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1t
CkBAIC00NSw2ICs0NSw3IEBACiAjaW1wb3J0ICJXS05TRXJyb3IuaCIKICNpbXBvcnQgIldLTlNV
UkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIgogI2ltcG9ydCAiV0tOU1VSTEV4dHJhcy5oIgor
I2ltcG9ydCAiX1dLTlNVUkxSZXF1ZXN0RXh0cmFzLmgiCiAjaW1wb3J0ICJXS1BhZ2VQb2xpY3lD
bGllbnRJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tQcm9jZXNzR3JvdXBQcml2YXRlLmgiCiAjaW1w
b3J0ICJXS1JldGFpblB0ci5oIgpAQCAtMTkxLDcgKzE5Miw3IEBAIHN0YXRpYyBIYXNoTWFwPFdl
YlBhZ2VQcm94eSosIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqPiYgYnJvd3NpbmdDb250
ZXh0Q29uCiAgICAgaWYgKHVzZXJEYXRhKQogICAgICAgICB3a1VzZXJEYXRhID0gT2JqQ09iamVj
dEdyYXBoOjpjcmVhdGUodXNlckRhdGEpOwogCi0gICAgX3BhZ2UtPmxvYWRSZXF1ZXN0KHJlcXVl
c3QsIHdrVXNlckRhdGEuZ2V0KCkpOworICAgIF9wYWdlLT5sb2FkUmVxdWVzdChyZXF1ZXN0LCBb
cmVxdWVzdCBfd2ViX2lzVXNlckluaXRpYXRlZF0gPyBPcGVuVVJMc0V4dGVybmFsbHlQb2xpY3k6
OlNob3VsZEFsbG93IDogT3BlblVSTHNFeHRlcm5hbGx5UG9saWN5OjpTaG91bGROb3RBbGxvdywg
d2tVc2VyRGF0YS5nZXQoKSk7CiB9CiAKIC0gKHZvaWQpbG9hZEZpbGVVUkw6KE5TVVJMICopVVJM
IHJlc3RyaWN0VG9GaWxlc1dpdGhpbjooTlNVUkwgKilhbGxvd2VkRGlyZWN0b3J5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlv
bi5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0
aW9uLm1tCmluZGV4IDlmNjFmYjcuLjcwNjBmMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLm1tCkBAIC0xNzIs
NiArMTcyLDExIEBAIHN0YXRpYyBOU0ludGVnZXIgdG9OU0J1dHRvbk51bWJlcihXZWJLaXQ6Oldl
Yk1vdXNlRXZlbnQ6OkJ1dHRvbiBtb3VzZUJ1dHRvbikKICAgICByZXR1cm4gX25hdmlnYXRpb25B
Y3Rpb24tPmNhbkhhbmRsZVJlcXVlc3QoKTsKIH0KIAorLSAoQk9PTClfc2hvdWxkT3BlblVSTHNF
eHRlcm5hbGx5Cit7CisgICAgcmV0dXJuIF9uYXZpZ2F0aW9uQWN0aW9uLT5zaG91bGRPcGVuVVJM
c0V4dGVybmFsbHkoKTsKK30KKwogQGVuZAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb25Qcml2
YXRlLmgKaW5kZXggMzBhZDE3OS4uODBjMDI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb25Qcml2YXRl
LmgKQEAgLTMyLDYgKzMyLDcgQEAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNV
UkwgKl9vcmlnaW5hbFVSTDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVy
PV9pc1VzZXJJbml0aWF0ZWQpIEJPT0wgX3VzZXJJbml0aWF0ZWQ7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIEJPT0wgX2NhbkhhbmRsZVJlcXVlc3Q7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZE9wZW5VUkxzRXh0ZXJuYWxseTsKIAogQGVuZAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmlu
ZGV4IGQ3OGZkODEuLjM4YmRkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC03NSw2ICs3NSw3IEBACiAjaW1wb3J0ICJfV0tGb3Jt
RGVsZWdhdGUuaCIKICNpbXBvcnQgIl9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5SW50ZXJuYWwuaCIK
ICNpbXBvcnQgIl9XS1Nlc3Npb25TdGF0ZUludGVybmFsLmgiCisjaW1wb3J0ICJfV0tOU1VSTFJl
cXVlc3RFeHRyYXMuaCIKICNpbXBvcnQgIl9XS1Zpc2l0ZWRMaW5rUHJvdmlkZXJJbnRlcm5hbC5o
IgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNDb250ZXh0Lmg+CiAjaW1wb3J0IDxKYXZhU2Ny
aXB0Q29yZS9KU1ZhbHVlLmg+CkBAIC0xMDEsNiArMTAyLDcgQEAKICNpbXBvcnQgIldlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIgogI2ltcG9ydCA8VUlLaXQvVUlBcHBsaWNhdGlvbi5o
PgogI2ltcG9ydCA8V2ViQ29yZS9Db3JlR3JhcGhpY3NTUEkuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
RnJhbWVMb2FkZXJUeXBlcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnNwZWN0b3JPdmVybGF5Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1F1YXJ0ekNvcmVTUEkuaD4KIApAQCAtNDQzLDcgKzQ0NSw4IEBA
IHN0YXRpYyBib29sIHNob3VsZEFsbG93QWx0ZXJuYXRlRnVsbHNjcmVlbigpCiAKIC0gKFdLTmF2
aWdhdGlvbiAqKWxvYWRSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0CiB7Ci0gICAgYXV0
byBuYXZpZ2F0aW9uID0gX3BhZ2UtPmxvYWRSZXF1ZXN0KHJlcXVlc3QpOworICAgIFdlYkNvcmU6
Ok9wZW5VUkxzRXh0ZXJuYWxseVBvbGljeSBvcGVuVVJMc0V4dGVybmFsbHlQb2xpY3kgPSBbcmVx
dWVzdCBfd2ViX2lzVXNlckluaXRpYXRlZF0gPyBXZWJDb3JlOjpPcGVuVVJMc0V4dGVybmFsbHlQ
b2xpY3k6OlNob3VsZEFsbG93IDogV2ViQ29yZTo6T3BlblVSTHNFeHRlcm5hbGx5UG9saWN5OjpT
aG91bGROb3RBbGxvdzsKKyAgICBhdXRvIG5hdmlnYXRpb24gPSBfcGFnZS0+bG9hZFJlcXVlc3Qo
cmVxdWVzdCwgb3BlblVSTHNFeHRlcm5hbGx5UG9saWN5KTsKICAgICBpZiAoIW5hdmlnYXRpb24p
CiAgICAgICAgIHJldHVybiBuaWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKaW5kZXggOTgzNzJhNC4uMzI4MTViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTgzOCw3ICs4MzgsNyBAQCBib29sIFdlYlBhZ2VQcm94
eTo6bWF5YmVJbml0aWFsaXplU2FuZGJveEV4dGVuc2lvbkhhbmRsZShjb25zdCBVUkwmIHVybCwg
U2FuZGJveAogICAgIHJldHVybiB0cnVlOwogfQogCi1SZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBX
ZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
QVBJOjpPYmplY3QqIHVzZXJEYXRhKQorUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVBy
b3h5Ojpsb2FkUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIE9wZW5VUkxz
RXh0ZXJuYWxseVBvbGljeSBvcGVuVVJMc0V4dGVybmFsbHlQb2xpY3ksIEFQSTo6T2JqZWN0KiB1
c2VyRGF0YSkKIHsKICAgICBpZiAobV9pc0Nsb3NlZCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CkBAIC04NTYsNyArODU2LDcgQEAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5
Ojpsb2FkUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QKICAgICBib29sIGNy
ZWF0ZWRFeHRlbnNpb24gPSBtYXliZUluaXRpYWxpemVTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKHJl
cXVlc3QudXJsKCksIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpOwogICAgIGlmIChjcmVhdGVkRXh0
ZW5zaW9uKQogICAgICAgICBtX3Byb2Nlc3MtPndpbGxBY3F1aXJlVW5pdmVyc2FsRmlsZVJlYWRT
YW5kYm94RXh0ZW5zaW9uKCk7Ci0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpMb2FkUmVxdWVzdChuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSwgcmVxdWVzdCwgc2FuZGJv
eEV4dGVuc2lvbkhhbmRsZSwgVXNlckRhdGEocHJvY2VzcygpLnRyYW5zZm9ybU9iamVjdHNUb0hh
bmRsZXModXNlckRhdGEpLmdldCgpKSksIG1fcGFnZUlEKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRSZXF1ZXN0KG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgp
LCByZXF1ZXN0LCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlLCAodWludDY0X3Qpb3BlblVSTHNFeHRl
cm5hbGx5UG9saWN5LCBVc2VyRGF0YShwcm9jZXNzKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxl
cyh1c2VyRGF0YSkuZ2V0KCkpKSwgbV9wYWdlSUQpOwogICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2
ZW5lc3NUaW1lcigpLT5zdGFydCgpOwogCiAgICAgcmV0dXJuIFdURjo6bW92ZShuYXZpZ2F0aW9u
KTsKQEAgLTg5NCw3ICs4OTQsNyBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQYWdlUHJv
eHk6OmxvYWRGaWxlKGNvbnN0IFN0cmluZyYgZmlsZVVSTFN0cmluZywgY29ucwogICAgIFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlOwogICAgIFNhbmRib3hF
eHRlbnNpb246OmNyZWF0ZUhhbmRsZShyZXNvdXJjZURpcmVjdG9yeVBhdGgsIFNhbmRib3hFeHRl
bnNpb246OlJlYWRPbmx5LCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsKICAgICBtX3Byb2Nlc3Mt
PmFzc3VtZVJlYWRBY2Nlc3NUb0Jhc2VVUkwocmVzb3VyY2VEaXJlY3RvcnlVUkwpOwotICAgIG1f
cHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG9hZFJlcXVlc3QobmF2aWdhdGlvbi0+
bmF2aWdhdGlvbklEKCksIGZpbGVVUkwsIHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIFVzZXJEYXRh
KHByb2Nlc3MoKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhKS5nZXQoKSkpLCBt
X3BhZ2VJRCk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkUmVx
dWVzdChuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSwgZmlsZVVSTCwgc2FuZGJveEV4dGVuc2lv
bkhhbmRsZSwgT3BlblVSTHNFeHRlcm5hbGx5UG9saWN5OjpTaG91bGROb3RBbGxvdywgVXNlckRh
dGEocHJvY2VzcygpLnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEpLmdldCgpKSks
IG1fcGFnZUlEKTsKICAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS0+c3RhcnQo
KTsKIAogICAgIHJldHVybiBXVEY6Om1vdmUobmF2aWdhdGlvbik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMGQ0YjQ3YS4uMmRiMzNjZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNjUsNiArNjUsNyBAQAogI2luY2x1ZGUg
IldlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnQWN0aW9ucy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJh
bWVMb2FkZXJUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSGl0VGVzdFJlc3VsdC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTWVkaWFQcm9kdWNlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5o
PgpAQCAtMzUxLDcgKzM1Miw3IEBAIHB1YmxpYzoKICAgICBib29sIHRyeUNsb3NlKCk7CiAgICAg
Ym9vbCBpc0Nsb3NlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNDbG9zZWQ7IH0KIAotICAgIFJlZlB0
cjxBUEk6Ok5hdmlnYXRpb24+IGxvYWRSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSA9IG51bGxwdHIpOworICAgIFJlZlB0cjxBUEk6
Ok5hdmlnYXRpb24+IGxvYWRSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IFdlYkNvcmU6Ok9wZW5VUkxzRXh0ZXJuYWxseVBvbGljeSBvcGVuVVJMc0V4dGVybmFsbHlQb2xp
Y3kgPSBXZWJDb3JlOjpPcGVuVVJMc0V4dGVybmFsbHlQb2xpY3k6OlNob3VsZE5vdEFsbG93LCBB
UEk6Ok9iamVjdCogdXNlckRhdGEgPSBudWxscHRyKTsKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0
aW9uPiBsb2FkRmlsZShjb25zdCBTdHJpbmcmIGZpbGVVUkwsIGNvbnN0IFN0cmluZyYgcmVzb3Vy
Y2VEaXJlY3RvcnlVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSA9IG51bGxwdHIpOwogICAgIFJl
ZlB0cjxBUEk6Ok5hdmlnYXRpb24+IGxvYWREYXRhKEFQSTo6RGF0YSosIGNvbnN0IFN0cmluZyYg
TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwg
QVBJOjpPYmplY3QqIHVzZXJEYXRhID0gbnVsbHB0cik7CiAgICAgUmVmUHRyPEFQSTo6TmF2aWdh
dGlvbj4gbG9hZEhUTUxTdHJpbmcoY29uc3QgU3RyaW5nJiBodG1sU3RyaW5nLCBjb25zdCBTdHJp
bmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSA9IG51bGxwdHIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCAxZjY5OTg5Li5lOWIwNWM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtODAwLDYgKzgwMCw3IEBAIHZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihj
b25zdCBOYXZpZ2F0CiAgICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEubW91c2VCdXR0b24gPSBhY3Rp
b24tPm1vdXNlQnV0dG9uKCk7CiAgICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEuaXNQcm9jZXNzaW5n
VXNlckdlc3R1cmUgPSBuYXZpZ2F0aW9uQWN0aW9uLnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpOwog
ICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLmNhbkhhbmRsZVJlcXVlc3QgPSB3ZWJQYWdlLT5jYW5I
YW5kbGVSZXF1ZXN0KHJlcXVlc3QpOworICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLnNob3VsZE9w
ZW5VUkxzRXh0ZXJuYWxseSA9IG5hdmlnYXRpb25BY3Rpb24ub3BlblVSTHNFeHRlcm5hbGx5UG9s
aWN5KCkgPT0gT3BlblVSTHNFeHRlcm5hbGx5UG9saWN5OjpTaG91bGRBbGxvdzsKIAogICAgIFdl
YkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUgPSBtX2ZyYW1lLT5jb3JlRnJhbWUoKTsKICAgICBXZWJE
b2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBzdGF0aWNfY2FzdDxXZWJEb2N1bWVudExv
YWRlcio+KGNvcmVGcmFtZS0+bG9hZGVyKCkucG9saWN5RG9jdW1lbnRMb2FkZXIoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZWI1MDFh
Yy4uMTljYjM3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcApAQCAtMTAxNCw3ICsxMDE0LDcgQEAgdm9pZCBXZWJQYWdlOjpsb2FkVVJMSW5GcmFt
ZShjb25zdCBTdHJpbmcmIHVybCwgdWludDY0X3QgZnJhbWVJRCkKICAgICBmcmFtZS0+Y29yZUZy
YW1lKCktPmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdChmcmFtZS0+Y29yZUZyYW1lKCks
IFJlc291cmNlUmVxdWVzdChVUkwoVVJMKCksIHVybCkpKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6
bG9hZFJlcXVlc3QodWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgc2FuZGJveEV4dGVuc2lv
bkhhbmRsZSwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlOjpsb2FkUmVx
dWVzdCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxl
LCB1aW50NjRfdCBvcGVuVVJMc0V4dGVybmFsbHlQb2xpY3ksIGNvbnN0IFVzZXJEYXRhJiB1c2Vy
RGF0YSkKIHsKICAgICBTZW5kU3RvcFJlc3BvbnNpdmVuZXNzVGltZXIgc3RvcHBlcih0aGlzKTsK
IApAQCAtMTAyNyw3ICsxMDI3LDExIEBAIHZvaWQgV2ViUGFnZTo6bG9hZFJlcXVlc3QodWludDY0
X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsCiAgICAgbV9s
b2FkZXJDbGllbnQud2lsbExvYWRVUkxSZXF1ZXN0KHRoaXMsIHJlcXVlc3QsIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkp
LmdldCgpKTsKIAogICAgIC8vIEluaXRhdGUgdGhlIGxvYWQgaW4gV2ViQ29yZS4KLSAgICBjb3Jl
UGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5sb2FkUmVxdWVzdChGcmFtZUxvYWRSZXF1ZXN0KG1f
bWFpbkZyYW1lLT5jb3JlRnJhbWUoKSwgcmVxdWVzdCkpOworICAgIEZyYW1lTG9hZFJlcXVlc3Qg
ZnJhbWVMb2FkUmVxdWVzdChtX21haW5GcmFtZS0+Y29yZUZyYW1lKCksIHJlcXVlc3QpOworICAg
IE9wZW5VUkxzRXh0ZXJuYWxseVBvbGljeSBleHRlcm5hbFVSTHNQb2xpY3kgPSBzdGF0aWNfY2Fz
dDxPcGVuVVJMc0V4dGVybmFsbHlQb2xpY3k+KG9wZW5VUkxzRXh0ZXJuYWxseVBvbGljeSk7Cisg
ICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRPcGVuVVJMc0V4dGVybmFsbHlQb2xpY3koZXh0ZXJuYWxV
UkxzUG9saWN5KTsKKworICAgIGNvcmVQYWdlKCktPnVzZXJJbnB1dEJyaWRnZSgpLmxvYWRSZXF1
ZXN0KGZyYW1lTG9hZFJlcXVlc3QpOwogCiAgICAgQVNTRVJUKCFtX3BlbmRpbmdOYXZpZ2F0aW9u
SUQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5k
ZXggMDAwNzNkOS4uMWFkMjdjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCkBAIC05MzUsNyArOTM1LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIEFjdGlv
bnMKICAgICB2b2lkIHRyeUNsb3NlKCk7Ci0gICAgdm9pZCBsb2FkUmVxdWVzdCh1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSYsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBsb2FkUmVx
dWVzdCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYsIHVpbnQ2NF90IG9wZW5VUkxzRXh0
ZXJuYWxseVBvbGljeSwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGxvYWREYXRhKGNvbnN0
IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmlu
ZyYgZW5jb2RpbmdOYW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFVzZXJEYXRhJik7
CiAgICAgdm9pZCBsb2FkSFRNTFN0cmluZyh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0
cmluZyYgaHRtbFN0cmluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBVc2VyRGF0YSYp
OwogICAgIHZvaWQgbG9hZEFsdGVybmF0ZUhUTUxTdHJpbmcoY29uc3QgU3RyaW5nJiBodG1sU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgdW5yZWFjaGFibGVVUkws
IGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxMb2FkRXJyb3JVUkwsIGNvbnN0IFVzZXJEYXRhJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluCmluZGV4IDlhZmY4ZjIuLjAyODRlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0xMjUsNyAr
MTI1LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgVHJ5UmVz
dG9yZVNjcm9sbFBvc2l0aW9uKCkKIAogICAgIExvYWRVUkxJbkZyYW1lKFN0cmluZyB1cmwsIHVp
bnQ2NF90IGZyYW1lSUQpCi0gICAgTG9hZFJlcXVlc3QodWludDY0X3QgbmF2aWdhdGlvbklELCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0
YSkKKyAgICBMb2FkUmVxdWVzdCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5k
Ym94RXh0ZW5zaW9uSGFuZGxlLCB1aW50NjRfdCBvcGVuVVJMc0V4dGVybmFsbHlQb2xpY3ksIFdl
YktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgTG9hZERhdGEoSVBDOjpEYXRhUmVmZXJlbmNl
IGRhdGEsIFN0cmluZyBNSU1FVHlwZSwgU3RyaW5nIGVuY29kaW5nLCBTdHJpbmcgYmFzZVVSTCwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKICAgICBMb2FkSFRNTFN0cmluZyh1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIFN0cmluZyBodG1sU3RyaW5nLCBTdHJpbmcgYmFzZVVSTCwgV2ViS2l0OjpV
c2VyRGF0YSB1c2VyRGF0YSkKICAgICBMb2FkQWx0ZXJuYXRlSFRNTFN0cmluZyhTdHJpbmcgaHRt
bFN0cmluZywgU3RyaW5nIGJhc2VVUkwsIFN0cmluZyB1bnJlYWNoYWJsZVVSTCwgU3RyaW5nIHBy
b3Zpc2lvbmFsTG9hZEVycm9yVVJMLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQo=
</data>
<flag name="review"
          id="278755"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253818</attachid>
            <date>2015-05-27 16:54:00 -0700</date>
            <delta_ts>2015-05-27 19:15:18 -0700</delta_ts>
            <desc>Patch for EWS/Landing</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>32444</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwZjg0Mjc3Li42ZjFiNjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIg
QEAKKzIwMTUtMDUtMjcgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBhICJzaG91bGQgb3BlbiB1cmxzIGV4dGVybmFsbHkiIGZsYWcgdG8gRG9jdW1lbnRM
b2FkZXIuCisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzIxMDI1MzAxIGFuZCBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1NDE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
R2VvZmYgR2FyZW4uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChObyBjaGFuZ2UgaW4gYmVoYXZp
b3IsIHRlc3RhYmxlIGF0IEFQSSBsZXZlbCB3aXRoIGEgZm9sbG93dXAgcGF0Y2gpCisKKyAgICAg
ICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnRMb2FkZXI6OnNldFRyaWdnZXJpbmdBY3Rpb24pOiBBcHBseSB0aGUgY3VycmVudCBmbGFnIHZh
bHVlIHRvIHRoZSAKKyAgICAgICAgICBuZXcgTmF2aWdhdGlvbkFjdGlvbiBzbyBpdCBjYW4gYmUg
dXNlZCBsYXRlci4KKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpzZXRTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpzaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpzZXRUcmlnZ2Vy
aW5nQWN0aW9uKTogRGVsZXRlZC4KKworICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IHNob3VsZCBo
b2xkIHRoZSBuZXcgZmxhZyB0byBwYXNzIGludG8gRnJhbWVMb2FkZXIgbWFjaGluZXJ5OgorICAg
ICAgICAqIGxvYWRlci9GcmFtZUxvYWRSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRSZXF1ZXN0OjpzZXRTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kp
OgorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyOjpsb2FkKTogU2V0IHRoZSBmbGFnIG9uIHRoZSBuZXdseSBjcmVhdGVkIERv
Y3VtZW50TG9hZGVyIGJ1dAorICAgICAgICAgIG9ubHkgaWYgaXQgaXMgZm9yIHRoZSBtYWluIGZy
YW1lLgorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaDogQWRkIGEgbmV3IGVu
dW0gZm9yIHRoZSBmbGFnLgorCisgICAgICAgIE5hdmlnYXRpb24gYWN0aW9uIHNob3VsZCBob2xk
IHRoZSBuZXcgZmxhZyB0byBwYXNzIHRvIHRoZSBwb2xpY3kgZGVsZWdhdGU6CisgICAgICAgICog
bG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdGlv
bkFjdGlvbjo6TmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25B
Y3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb246OnNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbjo6
c2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk6CisKKyAgICAgICAgKiBsb2FkZXIvUG9s
aWN5Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVja05h
dmlnYXRpb25Qb2xpY3kpOiBJbmNsdWRlIHRoZSBmbGFnIGZyb20gdGhlIERvY3VtZW50TG9hZGVy
CisgICAgICAgICAgaW4gdGhlIE5hdmlnYXRpb25BY3Rpb24uCisKIDIwMTUtMDUtMjcgIERhbmll
bCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIEF0dGVtcHQgdG8gZml4IGlu
dGVybmFsIGJ1aWxkIGZvbGxvd2luZyA8aHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQv
MTg0NzYwPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggYWQ1
Mjg2NC4uOWEwZjNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3Bw
CkBAIC0xNTUzLDYgKzE1NTMsMTMgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6aGFuZGxlZE9ubG9h
ZEV2ZW50cygpCiAgICAgYXBwbGljYXRpb25DYWNoZUhvc3QoKS0+c3RvcERlZmVycmluZ0V2ZW50
cygpOwogfQogCit2b2lkIERvY3VtZW50TG9hZGVyOjpzZXRUcmlnZ2VyaW5nQWN0aW9uKGNvbnN0
IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbikKK3sKKyAgICBtX3RyaWdnZXJpbmdBY3Rpb24gPSBh
Y3Rpb247CisgICAgaWYgKCFtX3RyaWdnZXJpbmdBY3Rpb24uaXNFbXB0eSgpKQorICAgICAgICBt
X3RyaWdnZXJpbmdBY3Rpb24uc2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShtX3Nob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOworfQorCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5T
SU9OUykKIHZvaWQgRG9jdW1lbnRMb2FkZXI6OmFkZFBlbmRpbmdDb250ZW50RXh0ZW5zaW9uU2hl
ZXQoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBTdHlsZVNoZWV0Q29udGVudHMmIHNoZWV0KQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCA2MzI4NzY0Li4xOTgw
MmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaApAQCAtMTc4LDcgKzE3
OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgY29uc3QgUmVzcG9uc2VWZWN0b3Im
IHJlc3BvbnNlcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VzOyB9CiAKICAgICAgICAgY29u
c3QgTmF2aWdhdGlvbkFjdGlvbiYgdHJpZ2dlcmluZ0FjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1f
dHJpZ2dlcmluZ0FjdGlvbjsgfQotICAgICAgICB2b2lkIHNldFRyaWdnZXJpbmdBY3Rpb24oY29u
c3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uKSB7IG1fdHJpZ2dlcmluZ0FjdGlvbiA9IGFjdGlv
bjsgfQorICAgICAgICB2b2lkIHNldFRyaWdnZXJpbmdBY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFj
dGlvbiYpOwogICAgICAgICB2b2lkIHNldE92ZXJyaWRlRW5jb2RpbmcoY29uc3QgU3RyaW5nJiBl
bmNvZGluZykgeyBtX292ZXJyaWRlRW5jb2RpbmcgPSBlbmNvZGluZzsgfQogICAgICAgICB2b2lk
IHNldExhc3RDaGVja2VkUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIHsg
bV9sYXN0Q2hlY2tlZFJlcXVlc3QgPSByZXF1ZXN0OyB9CiAgICAgICAgIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgbGFzdENoZWNrZWRSZXF1ZXN0KCkgIHsgcmV0dXJuIG1fbGFzdENoZWNrZWRSZXF1
ZXN0OyB9CkBAIC0yNzQsNiArMjc0LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
b2lkIGFkZFBlbmRpbmdDb250ZW50RXh0ZW5zaW9uRGlzcGxheU5vbmVTZWxlY3Rvcihjb25zdCBT
dHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc2VsZWN0b3IsIHVpbnQzMl90IHNlbGVj
dG9ySUQpOwogI2VuZGlmCiAKKyAgICAgICAgdm9pZCBzZXRTaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5KFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSkgeyBtX3Nob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBzaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5OyB9CisgICAgICAgIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kg
c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeTsgfQorCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBXRUJDT1JF
X0VYUE9SVCBEb2N1bWVudExvYWRlcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdWJz
dGl0dXRlRGF0YSYpOwogCkBAIC00MjYsNiArNDI5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBSZWZQdHI8SWNvbkRhdGFDYWxsYmFjaz4gbV9pY29uRGF0YUNhbGxiYWNrOwogCiAg
ICAgICAgIGJvb2wgbV9zdWJyZXNvdXJjZUxvYWRlcnNBcmVQYWdlQ2FjaGVBY2NlcHRhYmxlOwor
ICAgICAgICBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IG1fc2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeSB7IFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93
IH07CiAKICAgICAgICAgZnJpZW5kIGNsYXNzIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OyAgLy8gZm9y
IHN1YnN0aXR1dGUgcmVzb3VyY2UgZGVsaXZlcnkKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEFw
cGxpY2F0aW9uQ2FjaGVIb3N0PiBtX2FwcGxpY2F0aW9uQ2FjaGVIb3N0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgKaW5kZXggNjQ1ODhkMTIuLjJjODE1OWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaApAQCAtMTA0LDYgKzEwNCw5IEBA
IHB1YmxpYzoKICAgICAvLyBjb3JyZXNwb25kaW5nIHBhcmFtZXRlciBmcm9tIFNjcmlwdENvbnRy
b2xsZXI6OmV4ZWN1dGVJZkphdmFTY3JpcHRVUkwoKSBpcyBhZGRyZXNzZWQuCiAgICAgU2hvdWxk
UmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJMIHNob3VsZFJlcGxhY2VEb2N1bWVudElmSmF2
YVNjcmlwdFVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkUmVwbGFjZURvY3VtZW50SWZKYXZh
U2NyaXB0VVJMOyB9CiAKKyAgICB2b2lkIHNldFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ko
U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBwb2xpY3kpIHsgbV9zaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5ID0gcG9saWN5OyB9CisgICAgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5OyB9CisKIHByaXZhdGU6CiAgICAgUmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiBtX3JlcXVlc3RlcjsKICAgICBSZXNvdXJjZVJlcXVlc3QgbV9yZXNvdXJjZVJlcXVl
c3Q7CkBAIC0xMTcsNiArMTIwLDcgQEAgcHJpdmF0ZToKICAgICBBbGxvd05hdmlnYXRpb25Ub0lu
dmFsaWRVUkwgbV9hbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw7CiAgICAgTmV3RnJhbWVPcGVu
ZXJQb2xpY3kgbV9uZXdGcmFtZU9wZW5lclBvbGljeTsKICAgICBTaG91bGRSZXBsYWNlRG9jdW1l
bnRJZkphdmFTY3JpcHRVUkwgbV9zaG91bGRSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkw7
CisgICAgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBtX3Nob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3kgeyBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyB9
OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggODViMWY4
Ny4uZjNiNjk4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0xMzA4
LDYgKzEzMDgsOSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkKGNvbnN0IEZyYW1lTG9hZFJlcXVl
c3QmIHBhc3NlZFJlcXVlc3QpCiAgICAgICAgIHJlcXVlc3Quc2V0U3Vic3RpdHV0ZURhdGEoZGVm
YXVsdFN1YnN0aXR1dGVEYXRhRm9yVVJMKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkp
KTsKIAogICAgIFJlZlB0cjxEb2N1bWVudExvYWRlcj4gbG9hZGVyID0gbV9jbGllbnQuY3JlYXRl
RG9jdW1lbnRMb2FkZXIocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgcmVxdWVzdC5zdWJzdGl0
dXRlRGF0YSgpKTsKKyAgICBpZiAobV9mcmFtZS5pc01haW5GcmFtZSgpKQorICAgICAgICBsb2Fk
ZXItPnNldFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kocmVxdWVzdC5zaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5KCkpOworCiAgICAgbG9hZChsb2FkZXIuZ2V0KCkpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaAppbmRleCA0ZWY4YWI2Li4xMmNiZWZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKQEAgLTcxLDYgKzcx
LDExIEBAIGVudW0gY2xhc3MgTmF2aWdhdGlvblR5cGUgewogICAgIE90aGVyCiB9OwogCitlbnVt
IGNsYXNzIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgeworICAgIFNob3VsZE5vdEFsbG93
LAorICAgIFNob3VsZEFsbG93LAorfTsKKwogICAgIGVudW0gQ2xlYXJQcm92aXNpb25hbEl0ZW1Q
b2xpY3kgewogICAgICAgICBTaG91bGRDbGVhclByb3Zpc2lvbmFsSXRlbSwKICAgICAgICAgU2hv
dWxkTm90Q2xlYXJQcm92aXNpb25hbEl0ZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0
aW9uQWN0aW9uLmNwcAppbmRleCA4MzdlYmRkLi5jNzdmYmQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwCkBAIC04NCw2ICs4NCwxMyBAQCBOYXZpZ2F0aW9u
QWN0aW9uOjpOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VS
ZXF1ZXN0LCBOYXZpZwogewogfQogCitOYXZpZ2F0aW9uQWN0aW9uOjpOYXZpZ2F0aW9uQWN0aW9u
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBOYXZpZ2F0aW9uVHlwZSB0
eXBlLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3kpCisgICAgOiBtX3Jlc291cmNlUmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCisgICAgLCBt
X3R5cGUodHlwZSkKKyAgICAsIG1fc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShzaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5KQoreworfQorCiBOYXZpZ2F0aW9uQWN0aW9uOjpOYXZpZ2F0
aW9uQWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBGcmFtZUxv
YWRUeXBlIGZyYW1lTG9hZFR5cGUsCiAgICAgICAgIGJvb2wgaXNGb3JtU3VibWlzc2lvbiwgUGFz
c1JlZlB0cjxFdmVudD4gZXZlbnQpCiAgICAgOiBtX3Jlc291cmNlUmVxdWVzdChyZXNvdXJjZVJl
cXVlc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaAppbmRleCAxYjQ4
ZDBjLi5jZmNjY2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlv
bkFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmgK
QEAgLTM3LDMxICszNywzNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBO
YXZpZ2F0aW9uQWN0aW9uIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFdFQkNPUkVfRVhQT1JUIE5h
dmlnYXRpb25BY3Rpb24oKTsKLSAgICAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgTmF2aWdh
dGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICAgICAgV0VCQ09SRV9FWFBP
UlQgTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBOYXZpZ2F0aW9uVHlw
ZSk7Ci0gICAgICAgIFdFQkNPUkVfRVhQT1JUIE5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgRnJhbWVMb2FkVHlwZSwgYm9vbCBpc0Zvcm1TdWJtaXNzaW9uKTsKLSAgICAg
ICAgTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBOYXZpZ2F0aW9uVHlw
ZSwgUGFzc1JlZlB0cjxFdmVudD4pOwotICAgICAgICBOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYsIEZyYW1lTG9hZFR5cGUsIGJvb2wgaXNGb3JtU3VibWlzc2lvbiwgUGFz
c1JlZlB0cjxFdmVudD4pOworY2xhc3MgTmF2aWdhdGlvbkFjdGlvbiB7CitwdWJsaWM6CisgICAg
V0VCQ09SRV9FWFBPUlQgTmF2aWdhdGlvbkFjdGlvbigpOworICAgIFdFQkNPUkVfRVhQT1JUIGV4
cGxpY2l0IE5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgV0VC
Q09SRV9FWFBPUlQgTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBOYXZp
Z2F0aW9uVHlwZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgTmF2aWdhdGlvbkFjdGlvbihjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBGcmFtZUxvYWRUeXBlLCBib29sIGlzRm9ybVN1Ym1pc3Npb24pOwor
ICAgIE5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgTmF2aWdhdGlvblR5
cGUsIFBhc3NSZWZQdHI8RXZlbnQ+KTsKKyAgICBOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYsIE5hdmlnYXRpb25UeXBlLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
KTsKKyAgICBOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZyYW1lTG9h
ZFR5cGUsIGJvb2wgaXNGb3JtU3VibWlzc2lvbiwgUGFzc1JlZlB0cjxFdmVudD4pOwogCi0gICAg
ICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1ZXN0LnVybCgp
LmlzRW1wdHkoKTsgfQorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3Vy
Y2VSZXF1ZXN0LnVybCgpLmlzRW1wdHkoKTsgfQogCi0gICAgICAgIFVSTCB1cmwoKSBjb25zdCB7
IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdC51cmwoKTsgfQotICAgICAgICBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1
ZXN0OyB9CisgICAgVVJMIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1ZXN0LnVy
bCgpOyB9CisgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QoKSBjb25z
dCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdDsgfQogCi0gICAgICAgIE5hdmlnYXRpb25UeXBl
IHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KLSAgICAgICAgY29uc3QgRXZlbnQqIGV2
ZW50KCkgY29uc3QgeyByZXR1cm4gbV9ldmVudC5nZXQoKTsgfQorICAgIE5hdmlnYXRpb25UeXBl
IHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKyAgICBjb25zdCBFdmVudCogZXZlbnQo
KSBjb25zdCB7IHJldHVybiBtX2V2ZW50LmdldCgpOyB9CiAKLSAgICAgICAgYm9vbCBwcm9jZXNz
aW5nVXNlckdlc3R1cmUoKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3NpbmdVc2VyR2VzdHVyZTsg
fQorICAgIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV9wcm9j
ZXNzaW5nVXNlckdlc3R1cmU7IH0KIAotICAgIHByaXZhdGU6Ci0gICAgICAgIFJlc291cmNlUmVx
dWVzdCBtX3Jlc291cmNlUmVxdWVzdDsKLSAgICAgICAgTmF2aWdhdGlvblR5cGUgbV90eXBlOwot
ICAgICAgICBSZWZQdHI8RXZlbnQ+IG1fZXZlbnQ7Ci0gICAgICAgIGJvb2wgbV9wcm9jZXNzaW5n
VXNlckdlc3R1cmU7Ci0gICAgfTsKKyAgICBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3k7IH0KKyAgICB2b2lkIHNldFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3koU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBwb2xpY3kpIHsgbV9zaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5ID0gcG9saWN5OyB9CisKK3ByaXZhdGU6CisgICAgUmVzb3VyY2VS
ZXF1ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0OworICAgIE5hdmlnYXRpb25UeXBlIG1fdHlwZTsKKyAg
ICBSZWZQdHI8RXZlbnQ+IG1fZXZlbnQ7CisgICAgYm9vbCBtX3Byb2Nlc3NpbmdVc2VyR2VzdHVy
ZTsKKyAgICBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IG1fc2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeSB7IFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93
IH07Cit9OwogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lD
aGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcAppbmRl
eCA5MTc4YjkwLi4xYmI5OWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9s
aWN5Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIu
Y3BwCkBAIC02NSw3ICs2NSw3IEBAIHZvaWQgUG9saWN5Q2hlY2tlcjo6Y2hlY2tOYXZpZ2F0aW9u
UG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRG9jdW1lCiB7CiAgICAgTmF2
aWdhdGlvbkFjdGlvbiBhY3Rpb24gPSBsb2FkZXItPnRyaWdnZXJpbmdBY3Rpb24oKTsKICAgICBp
ZiAoYWN0aW9uLmlzRW1wdHkoKSkgewotICAgICAgICBhY3Rpb24gPSBOYXZpZ2F0aW9uQWN0aW9u
KHJlcXVlc3QsIE5hdmlnYXRpb25UeXBlOjpPdGhlcik7CisgICAgICAgIGFjdGlvbiA9IE5hdmln
YXRpb25BY3Rpb24ocmVxdWVzdCwgTmF2aWdhdGlvblR5cGU6Ok90aGVyLCBsb2FkZXItPnNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKSk7CiAgICAgICAgIGxvYWRlci0+c2V0VHJpZ2dlcmlu
Z0FjdGlvbihhY3Rpb24pOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDI0MGEwMjUuLmMyY2QxOTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OCBAQAorMjAxNS0wNS0yNyAgQnJhZHkgRWlkc29uICA8
YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgInNob3VsZCBvcGVuIHVybHMgZXh0
ZXJuYWxseSIgZmxhZyB0byBEb2N1bWVudExvYWRlci4KKyAgICAgICAgcmRhcjovL3Byb2JsZW0v
MjEwMjUzMDEgYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU0
MTcKKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZiBHYXJlbi4KKworICAgICAgICBSZW5hbWUg
InVzZXIgaW5pdGlhdGVkIiB0byAic2hvdWxkIG9wZW4gZXh0ZXJuYWwgVVJMcyI6CisgICAgICAg
ICogU2hhcmVkL0FQSS9Db2NvYS9fV0tOU1VSTFJlcXVlc3RFeHRyYXMuaDoKKyAgICAgICAgKiBT
aGFyZWQvQVBJL0NvY29hL19XS05TVVJMUmVxdWVzdEV4dHJhcy5tbToKKyAgICAgICAgKC1bTlNV
UkxSZXF1ZXN0IF93ZWJfc2hvdWxkT3BlbkV4dGVybmFsVVJMc10pOgorICAgICAgICAoLVtOU011
dGFibGVVUkxSZXF1ZXN0IF93ZWJfc2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMczpdKToKKyAgICAg
ICAgKC1bTlNVUkxSZXF1ZXN0IF93ZWJfaXNVc2VySW5pdGlhdGVkXSk6IERlbGV0ZWQuCisgICAg
ICAgICgtW05TTXV0YWJsZVVSTFJlcXVlc3QgX3dlYl9zZXRJc1VzZXJJbml0aWF0ZWQ6XSk6IERl
bGV0ZWQuCisgICAgICAgIAorICAgICAgICBIb2xkIHRoZSBuZXcgZmxhZyBhcyBhIGJvb2wsIGFu
ZCBlbmNvZGUvZGVjb2RlIGl0IGFjcm9zcyBJUEM6CisgICAgICAgICogU2hhcmVkL05hdmlnYXRp
b25BY3Rpb25EYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGE6
OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhOjpkZWNvZGUp
OgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YTo6TmF2aWdhdGlvbkFjdGlv
bkRhdGEpOiBEZWxldGVkLgorICAgICAgICAqIFNoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5o
OgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQWN0aW9uLmg6IEFkZCBh
Y2Nlc3NvciBmb3IgdGhlIGJvb2wgZmxhZy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlTG9hZFVSTFdpdGhVc2VyRGF0YSk6IFVzZSAiU2hv
dWxkTm90QWxsb3ciIGluIHRoZSBsZWdhY3kgQyBBUEkgZm9yIG5vdy4KKyAgICAgICAgKFdLUGFn
ZUxvYWRVUkxSZXF1ZXN0V2l0aFVzZXJEYXRhKTogRGl0dG8uCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1b
V0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIGxvYWRSZXF1ZXN0OnVzZXJEYXRhOl0pOiBTZXQg
dGhlIHZhbHVlIG9mIHRoZSBmbGFnCisgICAgICAgICAgYmFzZWQgb24gd2hldGhlciBvciBub3Qg
dGhlIGluaXRpYXRpbmcgTlNVUkxSZXF1ZXN0IHdhcyB1c2VyIGluaXRpYXRlZC4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLm1tOgorICAgICAgICAo
LVtXS05hdmlnYXRpb25BY3Rpb24gX3Nob3VsZE9wZW5FeHRlcm5hbFVSTHNdKTogQWRkIGFjY2Vz
c29yIGZvciB0aGUgYm9vbCBmbGFnLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tO
YXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oOgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBsb2FkUmVxdWVzdDpdKTogU2V0
IHRoZSB2YWx1ZSBvZiB0aGUgZmxhZyBiYXNlZCBvbiB3aGV0aGVyIG9yIG5vdCB0aGUKKyAgICAg
ICAgICBpbml0aWF0aW5nIE5TVVJMUmVxdWVzdCB3YXMgdXNlciBpbml0aWF0ZWQuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojpsb2FkUmVxdWVzdCk6IFBhc3MgdGhlIHZhbHVlIGRvd24gdG8gdGhlIFdlYlByb2Nl
c3MgdG8gbG9hZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2FkRmlsZSk6IERp
dHRvLCBidXQgYWx3YXlzIHdpdGggIlNob3VsZE5vdEFsbG93Ii4KKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lmg6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6IFRyYW5z
bGF0ZSAKKyAgICAgICAgICB0aGUgTmF2aWdhdGlvbkFjdGlvbiBmbGFnIHRvIGEgYm9vbCBpbiB0
aGUgTmF2aWdhdGlvbkFjdGlvbkRhdGEgb2JqZWN0LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb2FkUmVxdWVz
dCk6IFNldCB0aGUgdmFsdWUgb2YgdGhlIGZsYWcgaW4gdGhlIEZyYW1lTG9hZFJlcXVlc3QgdGhh
dAorICAgICAgICAgIHdpbGwgYmUgbG9hZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW46CisKIDIwMTUtMDUtMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBBc3NlcnRpb24gaGl0IGluIFdlYlBhZ2U6OmRpZENoYW5nZVNlbGVjdGlvbigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS05TVVJMUmVxdWVz
dEV4dHJhcy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tOU1VSTFJlcXVl
c3RFeHRyYXMuaAppbmRleCBlYWQ5NTU5Li4zZmIwNzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS05TVVJMUmVxdWVzdEV4dHJhcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dLTlNVUkxSZXF1ZXN0RXh0cmFzLmgKQEAgLTI3
LDEyICsyNywxMiBAQAogCiBAaW50ZXJmYWNlIE5TVVJMUmVxdWVzdCAoV0tFeHRyYXMpCiAKLS0g
KEJPT0wpX3dlYl9pc1VzZXJJbml0aWF0ZWQ7CistIChCT09MKV93ZWJfc2hvdWxkT3BlbkV4dGVy
bmFsVVJMczsKIAogQGVuZAogCiBAaW50ZXJmYWNlIE5TTXV0YWJsZVVSTFJlcXVlc3QgKFdLRXh0
cmFzKQogCi0tICh2b2lkKV93ZWJfc2V0SXNVc2VySW5pdGlhdGVkOihCT09MKXVzZXJJbml0aWF0
ZWQ7CistICh2b2lkKV93ZWJfc2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMczooQk9PTClzaG91bGRP
cGVuRXh0ZXJuYWxVUkxzOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL0NvY29hL19XS05TVVJMUmVxdWVzdEV4dHJhcy5tbSBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvQ29jb2EvX1dLTlNVUkxSZXF1ZXN0RXh0cmFzLm1tCmluZGV4IDVmMTQwYzAuLmJk
OThjNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dLTlNV
UkxSZXF1ZXN0RXh0cmFzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2Ev
X1dLTlNVUkxSZXF1ZXN0RXh0cmFzLm1tCkBAIC0yNiwyMyArMjYsMjEgQEAKICNpbXBvcnQgImNv
bmZpZy5oIgogI2ltcG9ydCAiX1dLTlNVUkxSZXF1ZXN0RXh0cmFzLmgiCiAKLSNpbXBvcnQgPFdl
YkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+Ci0KIEBpbXBsZW1lbnRhdGlvbiBOU1VSTFJlcXVlc3Qg
KFdLRXh0cmFzKQogCi0tIChCT09MKV93ZWJfaXNVc2VySW5pdGlhdGVkCistIChCT09MKV93ZWJf
c2hvdWxkT3BlbkV4dGVybmFsVVJMcwogewotICAgIE5TTnVtYmVyICp1c2VySW5pdGlhdGVkID0g
W05TVVJMUHJvdG9jb2wgcHJvcGVydHlGb3JLZXk6KE5TU3RyaW5nICopV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0Ojppc1VzZXJJbml0aWF0ZWRLZXkoKSBpblJlcXVlc3Q6c2VsZl07Ci0gICAgcmV0
dXJuIHVzZXJJbml0aWF0ZWQuYm9vbFZhbHVlOworICAgIE5TTnVtYmVyICpzaG91bGRPcGVuRXh0
ZXJuYWxVUkxzID0gW05TVVJMUHJvdG9jb2wgcHJvcGVydHlGb3JLZXk6QCJXS05TVVJMUmVxdWVz
dFNob3VsZE9wZW5FeHRlcm5hbFVSTHNLZXkiIGluUmVxdWVzdDpzZWxmXTsKKyAgICByZXR1cm4g
c2hvdWxkT3BlbkV4dGVybmFsVVJMcy5ib29sVmFsdWU7CiB9CiAKIEBlbmQKIAogQGltcGxlbWVu
dGF0aW9uIE5TTXV0YWJsZVVSTFJlcXVlc3QgKFdLRXh0cmFzKQogCi0tICh2b2lkKV93ZWJfc2V0
SXNVc2VySW5pdGlhdGVkOihCT09MKXVzZXJJbml0aWF0ZWQKKy0gKHZvaWQpX3dlYl9zZXRTaG91
bGRPcGVuRXh0ZXJuYWxVUkxzOihCT09MKXNob3VsZE9wZW5FeHRlcm5hbFVSTHMKIHsKLSAgICBb
TlNVUkxQcm90b2NvbCBzZXRQcm9wZXJ0eTp1c2VySW5pdGlhdGVkID8gQFlFUyA6IEBOTyBmb3JL
ZXk6KE5TU3RyaW5nICopV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Ojppc1VzZXJJbml0aWF0ZWRL
ZXkoKSBpblJlcXVlc3Q6c2VsZl07CisgICAgW05TVVJMUHJvdG9jb2wgc2V0UHJvcGVydHk6c2hv
dWxkT3BlbkV4dGVybmFsVVJMcyA/IEBZRVMgOiBATk8gZm9yS2V5OkAiV0tOU1VSTFJlcXVlc3RT
aG91bGRPcGVuRXh0ZXJuYWxVUkxzS2V5IiBpblJlcXVlc3Q6c2VsZl07CiB9CiAKIEBlbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuY3BwCmluZGV4IDcz
MjdhNGUuLjg1OTg1NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXZpZ2F0
aW9uQWN0aW9uRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdmlnYXRpb25B
Y3Rpb25EYXRhLmNwcApAQCAtMzMsMTUgKzMzLDYgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1OYXZpZ2F0aW9uQWN0aW9uRGF0YTo6TmF2aWdhdGlv
bkFjdGlvbkRhdGEoKQotICAgIDogbmF2aWdhdGlvblR5cGUoTmF2aWdhdGlvblR5cGU6Ok90aGVy
KQotICAgICwgbW9kaWZpZXJzKCkKLSAgICAsIG1vdXNlQnV0dG9uKFdlYk1vdXNlRXZlbnQ6Ok5v
QnV0dG9uKQotICAgICwgaXNQcm9jZXNzaW5nVXNlckdlc3R1cmUoZmFsc2UpCi0gICAgLCBjYW5I
YW5kbGVSZXF1ZXN0KGZhbHNlKQotewotfQotCiB2b2lkIE5hdmlnYXRpb25BY3Rpb25EYXRhOjpl
bmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgZW5jb2Rl
ci5lbmNvZGVFbnVtKG5hdmlnYXRpb25UeXBlKTsKQEAgLTQ5LDYgKzQwLDcgQEAgdm9pZCBOYXZp
Z2F0aW9uQWN0aW9uRGF0YTo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogICAgIGVuY29kZXIuZW5jb2RlRW51bShtb3VzZUJ1dHRvbik7CiAgICAgZW5jb2RlciA8
PCBpc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZTsKICAgICBlbmNvZGVyIDw8IGNhbkhhbmRsZVJlcXVl
c3Q7CisgICAgZW5jb2RlciA8PCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzOwogfQogCiBib29sIE5h
dmlnYXRpb25BY3Rpb25EYXRhOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIs
IE5hdmlnYXRpb25BY3Rpb25EYXRhJiByZXN1bHQpCkBAIC02Myw2ICs1NSw4IEBAIGJvb2wgTmF2
aWdhdGlvbkFjdGlvbkRhdGE6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2Rlciwg
TmF2aWdhdGlvbkFjdGlvCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHJlc3VsdC5jYW5IYW5kbGVSZXF1ZXN0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNob3VsZE9wZW5FeHRlcm5hbFVSTHMpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmgKaW5kZXggYThlMDRlNy4uNjA0MGIx
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRh
LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmgKQEAg
LTM3LDE2ICszNywxNSBAQCBjbGFzcyBBcmd1bWVudEVuY29kZXI7CiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogc3RydWN0IE5hdmlnYXRpb25BY3Rpb25EYXRhIHsKLSAgICBOYXZpZ2F0aW9uQWN0aW9u
RGF0YSgpOwotCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsK
ICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBOYXZpZ2F0aW9u
QWN0aW9uRGF0YSYpOwogCi0gICAgV2ViQ29yZTo6TmF2aWdhdGlvblR5cGUgbmF2aWdhdGlvblR5
cGU7Ci0gICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnM7Ci0gICAgV2ViTW91c2VFdmVu
dDo6QnV0dG9uIG1vdXNlQnV0dG9uOwotICAgIGJvb2wgaXNQcm9jZXNzaW5nVXNlckdlc3R1cmU7
Ci0gICAgYm9vbCBjYW5IYW5kbGVSZXF1ZXN0OworICAgIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBl
IG5hdmlnYXRpb25UeXBlIHsgV2ViQ29yZTo6TmF2aWdhdGlvblR5cGU6Ok90aGVyIH07CisgICAg
V2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgeyB9OworICAgIFdlYk1vdXNlRXZlbnQ6OkJ1
dHRvbiBtb3VzZUJ1dHRvbiB7IFdlYk1vdXNlRXZlbnQ6Ok5vQnV0dG9uIH07CisgICAgYm9vbCBp
c1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSB7IGZhbHNlIH07CisgICAgYm9vbCBjYW5IYW5kbGVSZXF1
ZXN0IHsgZmFsc2UgfTsKKyAgICBib29sIHNob3VsZE9wZW5FeHRlcm5hbFVSTHMgeyBmYWxzZSB9
OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElO
YXZpZ2F0aW9uQWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSU5hdmln
YXRpb25BY3Rpb24uaAppbmRleCA2NzJlOTBiLi5mMTRkYTEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25BY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25BY3Rpb24uaApAQCAtNjMsNiArNjMs
NyBAQCBwdWJsaWM6CiAgICAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpCdXR0b24gbW91c2VCdXR0
b24oKSBjb25zdCB7IHJldHVybiBtX25hdmlnYXRpb25BY3Rpb25EYXRhLm1vdXNlQnV0dG9uOyB9
CiAgICAgYm9vbCBpc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmF2
aWdhdGlvbkFjdGlvbkRhdGEuaXNQcm9jZXNzaW5nVXNlckdlc3R1cmU7IH0KICAgICBib29sIGNh
bkhhbmRsZVJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBtX25hdmlnYXRpb25BY3Rpb25EYXRhLmNh
bkhhbmRsZVJlcXVlc3Q7IH0KKyAgICBib29sIHNob3VsZE9wZW5FeHRlcm5hbFVSTHMoKSBjb25z
dCB7IHJldHVybiBtX25hdmlnYXRpb25BY3Rpb25EYXRhLnNob3VsZE9wZW5FeHRlcm5hbFVSTHM7
IH0KIAogcHJpdmF0ZToKICAgICBSZWZQdHI8RnJhbWVJbmZvPiBtX3NvdXJjZUZyYW1lOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCBhN2FlMmQ1Li5lM2Rk
M2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMTI4
LDcgKzEyOCw3IEBAIHZvaWQgV0tQYWdlTG9hZFVSTChXS1BhZ2VSZWYgcGFnZVJlZiwgV0tVUkxS
ZWYgVVJMUmVmKQogCiB2b2lkIFdLUGFnZUxvYWRVUkxXaXRoVXNlckRhdGEoV0tQYWdlUmVmIHBh
Z2VSZWYsIFdLVVJMUmVmIFVSTFJlZiwgV0tUeXBlUmVmIHVzZXJEYXRhUmVmKQogewotICAgIHRv
SW1wbChwYWdlUmVmKS0+bG9hZFJlcXVlc3QoVVJMKFVSTCgpLCB0b1dURlN0cmluZyhVUkxSZWYp
KSwgdG9JbXBsKHVzZXJEYXRhUmVmKSk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5sb2FkUmVxdWVz
dChVUkwoVVJMKCksIHRvV1RGU3RyaW5nKFVSTFJlZikpLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5OjpTaG91bGROb3RBbGxvdywgdG9JbXBsKHVzZXJEYXRhUmVmKSk7CiB9CiAKIHZvaWQg
V0tQYWdlTG9hZFVSTFJlcXVlc3QoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLVVJMUmVxdWVzdFJlZiB1
cmxSZXF1ZXN0UmVmKQpAQCAtMTM4LDcgKzEzOCw3IEBAIHZvaWQgV0tQYWdlTG9hZFVSTFJlcXVl
c3QoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLVVJMUmVxdWVzdFJlZiB1cmxSZXF1ZXN0UmVmKQogCiB2
b2lkIFdLUGFnZUxvYWRVUkxSZXF1ZXN0V2l0aFVzZXJEYXRhKFdLUGFnZVJlZiBwYWdlUmVmLCBX
S1VSTFJlcXVlc3RSZWYgdXJsUmVxdWVzdFJlZiwgV0tUeXBlUmVmIHVzZXJEYXRhUmVmKQogewot
ICAgIHRvSW1wbChwYWdlUmVmKS0+bG9hZFJlcXVlc3QodG9JbXBsKHVybFJlcXVlc3RSZWYpLT5y
ZXNvdXJjZVJlcXVlc3QoKSwgdG9JbXBsKHVzZXJEYXRhUmVmKSk7CisgICAgdG9JbXBsKHBhZ2VS
ZWYpLT5sb2FkUmVxdWVzdCh0b0ltcGwodXJsUmVxdWVzdFJlZiktPnJlc291cmNlUmVxdWVzdCgp
LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdywgdG9JbXBsKHVz
ZXJEYXRhUmVmKSk7CiB9CiAKIHZvaWQgV0tQYWdlTG9hZEZpbGUoV0tQYWdlUmVmIHBhZ2VSZWYs
IFdLVVJMUmVmIGZpbGVVUkwsIFdLVVJMUmVmIHJlc291cmNlRGlyZWN0b3J5VVJMKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4
dENvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlci5tbQppbmRleCAxZjQyYzgwLi4xMmY3NDAwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0
Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
QnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbQpAQCAtNTUsNiArNTUsNyBAQAogI2ltcG9ydCAi
V2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUG9vbC5oIgogI2ltcG9ydCAiV2Vi
UHJvdGVjdGlvblNwYWNlLmgiCisjaW1wb3J0ICJfV0tOU1VSTFJlcXVlc3RFeHRyYXMuaCIKICNp
bXBvcnQgIl9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5SW50ZXJuYWwuaCIKICNpbXBvcnQgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgogCkBAIC0xOTEsNyArMTkyLDcgQEAgc3RhdGljIEhhc2hNYXA8V2Vi
UGFnZVByb3h5KiwgV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICo+JiBicm93c2luZ0NvbnRl
eHRDb24KICAgICBpZiAodXNlckRhdGEpCiAgICAgICAgIHdrVXNlckRhdGEgPSBPYmpDT2JqZWN0
R3JhcGg6OmNyZWF0ZSh1c2VyRGF0YSk7CiAKLSAgICBfcGFnZS0+bG9hZFJlcXVlc3QocmVxdWVz
dCwgd2tVc2VyRGF0YS5nZXQoKSk7CisgICAgX3BhZ2UtPmxvYWRSZXF1ZXN0KHJlcXVlc3QsIFty
ZXF1ZXN0IF93ZWJfc2hvdWxkT3BlbkV4dGVybmFsVVJMc10gPyBTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5OjpTaG91bGRBbGxvdyA6IFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNo
b3VsZE5vdEFsbG93LCB3a1VzZXJEYXRhLmdldCgpKTsKIH0KIAogLSAodm9pZClsb2FkRmlsZVVS
TDooTlNVUkwgKilVUkwgcmVzdHJpY3RUb0ZpbGVzV2l0aGluOihOU1VSTCAqKWFsbG93ZWREaXJl
Y3RvcnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tO
YXZpZ2F0aW9uQWN0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S05hdmlnYXRpb25BY3Rpb24ubW0KaW5kZXggOWY2MWZiNy4uMTNiNGE2YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb24ubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rp
b24ubW0KQEAgLTE3Miw2ICsxNzIsMTEgQEAgc3RhdGljIE5TSW50ZWdlciB0b05TQnV0dG9uTnVt
YmVyKFdlYktpdDo6V2ViTW91c2VFdmVudDo6QnV0dG9uIG1vdXNlQnV0dG9uKQogICAgIHJldHVy
biBfbmF2aWdhdGlvbkFjdGlvbi0+Y2FuSGFuZGxlUmVxdWVzdCgpOwogfQogCistIChCT09MKV9z
aG91bGRPcGVuRXh0ZXJuYWxVUkxzCit7CisgICAgcmV0dXJuIF9uYXZpZ2F0aW9uQWN0aW9uLT5z
aG91bGRPcGVuRXh0ZXJuYWxVUkxzKCk7Cit9CisKIEBlbmQKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvblBy
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9u
QWN0aW9uUHJpdmF0ZS5oCmluZGV4IDMwYWQxNzkuLmUyMTJjOTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0
aW9uUHJpdmF0ZS5oCkBAIC0zMiw2ICszMiw3IEBACiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIE5TVVJMICpfb3JpZ2luYWxVUkw7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHksIGdldHRlcj1faXNVc2VySW5pdGlhdGVkKSBCT09MIF91c2VySW5pdGlhdGVkOwogQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9jYW5IYW5kbGVSZXF1ZXN0OworQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRPcGVuRXh0ZXJuYWxVUkxzOwog
CiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW0KaW5kZXggZDc4ZmQ4MS4uYmJlNGM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTczLDYgKzczLDcgQEAKICNpbXBvcnQg
Il9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaCIKICNpbXBvcnQgIl9XS0ZpbmREZWxlZ2F0
ZS5oIgogI2ltcG9ydCAiX1dLRm9ybURlbGVnYXRlLmgiCisjaW1wb3J0ICJfV0tOU1VSTFJlcXVl
c3RFeHRyYXMuaCIKICNpbXBvcnQgIl9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5SW50ZXJuYWwuaCIK
ICNpbXBvcnQgIl9XS1Nlc3Npb25TdGF0ZUludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tWaXNpdGVk
TGlua1Byb3ZpZGVySW50ZXJuYWwuaCIKQEAgLTEwMSw2ICsxMDIsNyBAQAogI2ltcG9ydCAiV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgiCiAjaW1wb3J0IDxVSUtpdC9VSUFwcGxpY2F0
aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvcmVHcmFwaGljc1NQSS5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9GcmFtZUxvYWRlclR5cGVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0luc3BlY3Rvck92ZXJs
YXkuaD4KICNpbXBvcnQgPFdlYkNvcmUvUXVhcnR6Q29yZVNQSS5oPgogCkBAIC00NDMsNyArNDQ1
LDggQEAgc3RhdGljIGJvb2wgc2hvdWxkQWxsb3dBbHRlcm5hdGVGdWxsc2NyZWVuKCkKIAogLSAo
V0tOYXZpZ2F0aW9uICopbG9hZFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3QKIHsKLSAg
ICBhdXRvIG5hdmlnYXRpb24gPSBfcGFnZS0+bG9hZFJlcXVlc3QocmVxdWVzdCk7CisgICAgV2Vi
Q29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5ID0gW3JlcXVlc3QgX3dlYl9zaG91bGRPcGVuRXh0ZXJuYWxVUkxzXSA/IFdlYkNvcmU6
OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZEFsbG93IDogV2ViQ29yZTo6U2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3c7CisgICAgYXV0byBuYXZp
Z2F0aW9uID0gX3BhZ2UtPmxvYWRSZXF1ZXN0KHJlcXVlc3QsIHNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3kpOwogICAgIGlmICghbmF2aWdhdGlvbikKICAgICAgICAgcmV0dXJuIG5pbDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA5ODM3MmE0Li4y
NjQ0YjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAt
ODM4LDcgKzgzOCw3IEBAIGJvb2wgV2ViUGFnZVByb3h5OjptYXliZUluaXRpYWxpemVTYW5kYm94
RXh0ZW5zaW9uSGFuZGxlKGNvbnN0IFVSTCYgdXJsLCBTYW5kYm94CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLVJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3Qo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBBUEk6Ok9iamVjdCogdXNlckRhdGEpCitS
ZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0KGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBBUEk6Ok9iamVjdCogdXNlckRhdGEpCiB7CiAgICAg
aWYgKG1faXNDbG9zZWQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtODU2LDcgKzg1Niw3
IEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3QoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0CiAgICAgYm9vbCBjcmVhdGVkRXh0ZW5zaW9uID0g
bWF5YmVJbml0aWFsaXplU2FuZGJveEV4dGVuc2lvbkhhbmRsZShyZXF1ZXN0LnVybCgpLCBzYW5k
Ym94RXh0ZW5zaW9uSGFuZGxlKTsKICAgICBpZiAoY3JlYXRlZEV4dGVuc2lvbikKICAgICAgICAg
bV9wcm9jZXNzLT53aWxsQWNxdWlyZVVuaXZlcnNhbEZpbGVSZWFkU2FuZGJveEV4dGVuc2lvbigp
OwotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG9hZFJlcXVlc3QobmF2
aWdhdGlvbi0+bmF2aWdhdGlvbklEKCksIHJlcXVlc3QsIHNhbmRib3hFeHRlbnNpb25IYW5kbGUs
IFVzZXJEYXRhKHByb2Nlc3MoKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhKS5n
ZXQoKSkpLCBtX3BhZ2VJRCk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpMb2FkUmVxdWVzdChuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSwgcmVxdWVzdCwgc2FuZGJv
eEV4dGVuc2lvbkhhbmRsZSwgKHVpbnQ2NF90KXNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ks
IFVzZXJEYXRhKHByb2Nlc3MoKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhKS5n
ZXQoKSkpLCBtX3BhZ2VJRCk7CiAgICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkt
PnN0YXJ0KCk7CiAKICAgICByZXR1cm4gV1RGOjptb3ZlKG5hdmlnYXRpb24pOwpAQCAtODk0LDcg
Kzg5NCw3IEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG9hZEZpbGUo
Y29uc3QgU3RyaW5nJiBmaWxlVVJMU3RyaW5nLCBjb25zCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGU7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlSGFuZGxlKHJlc291cmNlRGlyZWN0b3J5UGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6UmVhZE9u
bHksIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpOwogICAgIG1fcHJvY2Vzcy0+YXNzdW1lUmVhZEFj
Y2Vzc1RvQmFzZVVSTChyZXNvdXJjZURpcmVjdG9yeVVSTCk7Ci0gICAgbV9wcm9jZXNzLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkUmVxdWVzdChuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQo
KSwgZmlsZVVSTCwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSwgVXNlckRhdGEocHJvY2VzcygpLnRy
YW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEpLmdldCgpKSksIG1fcGFnZUlEKTsKKyAg
ICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRSZXF1ZXN0KG5hdmlnYXRp
b24tPm5hdmlnYXRpb25JRCgpLCBmaWxlVVJMLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlLCAodWlu
dDY0X3QpU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3csIFVzZXJE
YXRhKHByb2Nlc3MoKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhKS5nZXQoKSkp
LCBtX3BhZ2VJRCk7CiAgICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCktPnN0YXJ0
KCk7CiAKICAgICByZXR1cm4gV1RGOjptb3ZlKG5hdmlnYXRpb24pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDBkNGI0N2EuLjAyOTQzNzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTY1LDYgKzY1LDcgQEAKICNpbmNsdWRl
ICJXZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db2xvci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0FjdGlvbnMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zy
YW1lTG9hZGVyVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hpdFRlc3RSZXN1bHQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL01lZGlhUHJvZHVjZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2Uu
aD4KQEAgLTM1MSw3ICszNTIsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCB0cnlDbG9zZSgpOwogICAg
IGJvb2wgaXNDbG9zZWQoKSBjb25zdCB7IHJldHVybiBtX2lzQ2xvc2VkOyB9CiAKLSAgICBSZWZQ
dHI8QVBJOjpOYXZpZ2F0aW9uPiBsb2FkUmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBBUEk6Ok9iamVjdCogdXNlckRhdGEgPSBudWxscHRyKTsKKyAgICBSZWZQdHI8QVBJ
OjpOYXZpZ2F0aW9uPiBsb2FkUmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gV2ViQ29yZTo6U2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3csIEFQSTo6T2JqZWN0KiB1c2Vy
RGF0YSA9IG51bGxwdHIpOwogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IGxvYWRGaWxlKGNv
bnN0IFN0cmluZyYgZmlsZVVSTCwgY29uc3QgU3RyaW5nJiByZXNvdXJjZURpcmVjdG9yeVVSTCwg
QVBJOjpPYmplY3QqIHVzZXJEYXRhID0gbnVsbHB0cik7CiAgICAgUmVmUHRyPEFQSTo6TmF2aWdh
dGlvbj4gbG9hZERhdGEoQVBJOjpEYXRhKiwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3Qg
U3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNl
ckRhdGEgPSBudWxscHRyKTsKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBsb2FkSFRNTFN0
cmluZyhjb25zdCBTdHJpbmcmIGh0bWxTdHJpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJ
OjpPYmplY3QqIHVzZXJEYXRhID0gbnVsbHB0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCmluZGV4IDFmNjk5ODkuLjAwZGQ4OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCkBAIC04MDAsNiArODAwLDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXQKICAg
ICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5tb3VzZUJ1dHRvbiA9IGFjdGlvbi0+bW91c2VCdXR0b24o
KTsKICAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5pc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSA9IG5h
dmlnYXRpb25BY3Rpb24ucHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCk7CiAgICAgbmF2aWdhdGlvbkFj
dGlvbkRhdGEuY2FuSGFuZGxlUmVxdWVzdCA9IHdlYlBhZ2UtPmNhbkhhbmRsZVJlcXVlc3QocmVx
dWVzdCk7CisgICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEuc2hvdWxkT3BlbkV4dGVybmFsVVJMcyA9
IG5hdmlnYXRpb25BY3Rpb24uc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSgpID09IFNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZEFsbG93OwogCiAgICAgV2ViQ29yZTo6RnJh
bWUqIGNvcmVGcmFtZSA9IG1fZnJhbWUtPmNvcmVGcmFtZSgpOwogICAgIFdlYkRvY3VtZW50TG9h
ZGVyKiBkb2N1bWVudExvYWRlciA9IHN0YXRpY19jYXN0PFdlYkRvY3VtZW50TG9hZGVyKj4oY29y
ZUZyYW1lLT5sb2FkZXIoKS5wb2xpY3lEb2N1bWVudExvYWRlcigpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBlYjUwMWFjLi44MjM1M2Y0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC0xMDE0LDcgKzEwMTQsNyBAQCB2b2lkIFdlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKGNvbnN0IFN0
cmluZyYgdXJsLCB1aW50NjRfdCBmcmFtZUlEKQogICAgIGZyYW1lLT5jb3JlRnJhbWUoKS0+bG9h
ZGVyKCkubG9hZChGcmFtZUxvYWRSZXF1ZXN0KGZyYW1lLT5jb3JlRnJhbWUoKSwgUmVzb3VyY2VS
ZXF1ZXN0KFVSTChVUkwoKSwgdXJsKSkpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpsb2FkUmVxdWVz
dCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlLCBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2U6OmxvYWRSZXF1ZXN0KHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIHVpbnQ2NF90
IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
IHsKICAgICBTZW5kU3RvcFJlc3BvbnNpdmVuZXNzVGltZXIgc3RvcHBlcih0aGlzKTsKIApAQCAt
MTAyNyw3ICsxMDI3LDExIEBAIHZvaWQgV2ViUGFnZTo6bG9hZFJlcXVlc3QodWludDY0X3QgbmF2
aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsCiAgICAgbV9sb2FkZXJD
bGllbnQud2lsbExvYWRVUkxSZXF1ZXN0KHRoaXMsIHJlcXVlc3QsIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgp
KTsKIAogICAgIC8vIEluaXRhdGUgdGhlIGxvYWQgaW4gV2ViQ29yZS4KLSAgICBjb3JlUGFnZSgp
LT51c2VySW5wdXRCcmlkZ2UoKS5sb2FkUmVxdWVzdChGcmFtZUxvYWRSZXF1ZXN0KG1fbWFpbkZy
YW1lLT5jb3JlRnJhbWUoKSwgcmVxdWVzdCkpOworICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVM
b2FkUmVxdWVzdChtX21haW5GcmFtZS0+Y29yZUZyYW1lKCksIHJlcXVlc3QpOworICAgIFNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgZXh0ZXJuYWxVUkxzUG9saWN5ID0gc3RhdGljX2Nhc3Q8
U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeT4oc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eSk7CisgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
KGV4dGVybmFsVVJMc1BvbGljeSk7CisKKyAgICBjb3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2Uo
KS5sb2FkUmVxdWVzdChmcmFtZUxvYWRSZXF1ZXN0KTsKIAogICAgIEFTU0VSVCghbV9wZW5kaW5n
TmF2aWdhdGlvbklEKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCmluZGV4IDAwMDczZDkuLjY1YTcxNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtOTM1LDcgKzkzNSw3IEBAIHByaXZhdGU6CiAKICAg
ICAvLyBBY3Rpb25zCiAgICAgdm9pZCB0cnlDbG9zZSgpOwotICAgIHZvaWQgbG9hZFJlcXVlc3Qo
dWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZv
aWQgbG9hZFJlcXVlc3QodWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmLCB1aW50NjRfdCBz
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQg
bG9hZERhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBNSU1FVHlw
ZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZ05hbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29u
c3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGxvYWRIVE1MU3RyaW5nKHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgY29uc3QgU3RyaW5nJiBodG1sU3RyaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNv
bnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBsb2FkQWx0ZXJuYXRlSFRNTFN0cmluZyhjb25zdCBT
dHJpbmcmIGh0bWxTdHJpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiB1
bnJlYWNoYWJsZVVSTCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbExvYWRFcnJvclVSTCwgY29u
c3QgVXNlckRhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggOWFmZjhmMi4uZGI2MzhiOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4KQEAgLTEyNSw3ICsxMjUsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVy
IHsKICAgICBUcnlSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQogCiAgICAgTG9hZFVSTEluRnJhbWUo
U3RyaW5nIHVybCwgdWludDY0X3QgZnJhbWVJRCkKLSAgICBMb2FkUmVxdWVzdCh1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJLaXQ6OlNh
bmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlLCBXZWJLaXQ6OlVz
ZXJEYXRhIHVzZXJEYXRhKQorICAgIExvYWRSZXF1ZXN0KHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIHVpbnQ2NF90IHNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3ksIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgTG9hZERhdGEo
SVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEsIFN0cmluZyBNSU1FVHlwZSwgU3RyaW5nIGVuY29kaW5n
LCBTdHJpbmcgYmFzZVVSTCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKICAgICBMb2FkSFRN
TFN0cmluZyh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFN0cmluZyBodG1sU3RyaW5nLCBTdHJpbmcg
YmFzZVVSTCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKICAgICBMb2FkQWx0ZXJuYXRlSFRN
TFN0cmluZyhTdHJpbmcgaHRtbFN0cmluZywgU3RyaW5nIGJhc2VVUkwsIFN0cmluZyB1bnJlYWNo
YWJsZVVSTCwgU3RyaW5nIHByb3Zpc2lvbmFsTG9hZEVycm9yVVJMLCBXZWJLaXQ6OlVzZXJEYXRh
IHVzZXJEYXRhKQo=
</data>
<flag name="commit-queue"
          id="278771"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>