<?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>211051</bug_id>
          
          <creation_ts>2020-04-26 12:36:43 -0700</creation_ts>
          <short_desc>Make loadURLIntoChildFrame private and non-exported</short_desc>
          <delta_ts>2020-04-27 10:50:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Rob Buis">rbuis</reporter>
          <assigned_to name="Rob Buis">rbuis</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1645812</commentid>
    <comment_count>0</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-04-26 12:36:43 -0700</bug_when>
    <thetext>Make loadURLIntoChildFrame private and non-exported to reduce the amount of public API functions that start loads. In order to do this loadURLIntoChildFrame is being called from SubframeLoader and SubframeLoader is made an inner class of FrameLoader. Because this simplifies createFrame (and make createFrame behave strictly like its name) url and referrer do not have to be passed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645813</commentid>
    <comment_count>1</comment_count>
      <attachid>397627</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-04-26 12:40:08 -0700</bug_when>
    <thetext>Created attachment 397627
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645871</commentid>
    <comment_count>2</comment_count>
      <attachid>397627</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-04-26 18:06:11 -0700</bug_when>
    <thetext>Comment on attachment 397627
Patch

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

&gt; Source/WebCore/ChangeLog:49
&gt; +        (WebCore::FrameLoader::SubframeLoader::SubframeLoader):
&gt; +        (WebCore::FrameLoader::SubframeLoader::clear):
&gt; +        (WebCore::FrameLoader::SubframeLoader::requestFrame):
&gt; +        (WebCore::FrameLoader::SubframeLoader::resourceWillUsePlugin):
&gt; +        (WebCore::FrameLoader::SubframeLoader::pluginIsLoadable):
&gt; +        (WebCore::FrameLoader::SubframeLoader::requestPlugin):
&gt; +        (WebCore::FrameLoader::SubframeLoader::requestObject):
&gt; +        (WebCore::FrameLoader::SubframeLoader::createJavaAppletWidget):
&gt; +        (WebCore::FrameLoader::SubframeLoader::loadOrRedirectSubframe):
&gt; +        (WebCore::FrameLoader::SubframeLoader::loadSubframe):
&gt; +        (WebCore::FrameLoader::SubframeLoader::shouldUsePlugin):
&gt; +        (WebCore::FrameLoader::SubframeLoader::loadPlugin):
&gt; +        (WebCore::FrameLoader::SubframeLoader::completeURL const):
&gt; +        (WebCore::FrameLoader::SubframeLoader::shouldConvertInvalidURLsToBlank const):
&gt; +        (WebCore::SubframeLoader::SubframeLoader): Deleted.
&gt; +        (WebCore::SubframeLoader::clear): Deleted.
&gt; +        (WebCore::SubframeLoader::requestFrame): Deleted.
&gt; +        (WebCore::SubframeLoader::resourceWillUsePlugin): Deleted.
&gt; +        (WebCore::SubframeLoader::pluginIsLoadable): Deleted.
&gt; +        (WebCore::SubframeLoader::requestPlugin): Deleted.
&gt; +        (WebCore::SubframeLoader::requestObject): Deleted.
&gt; +        (WebCore::SubframeLoader::createJavaAppletWidget): Deleted.
&gt; +        (WebCore::SubframeLoader::loadOrRedirectSubframe): Deleted.
&gt; +        (WebCore::SubframeLoader::loadSubframe): Deleted.
&gt; +        (WebCore::SubframeLoader::shouldUsePlugin): Deleted.
&gt; +        (WebCore::SubframeLoader::loadPlugin): Deleted.
&gt; +        (WebCore::SubframeLoader::completeURL const): Deleted.
&gt; +        (WebCore::SubframeLoader::shouldConvertInvalidURLsToBlank const): Deleted.

I know the change log generation machinery makes this, but you can just delete it if you think it’s not helpful.

&gt; Source/WebKit/ChangeLog:9
&gt; +        Adapt createFrame to stricty create a sub Frame and
&gt; +        not load anything.

Typo in strictly.

it‘s &quot;subframe&quot;, not &quot;sub Frame&quot;.

&gt; Source/WebKitLegacy/mac/ChangeLog:9
&gt; +        Adapt createFrame to stricty create a sub Frame and
&gt; +        not load anything.

Ditto.

&gt; Source/WebKitLegacy/win/ChangeLog:9
&gt; +        Adapt createFrame to stricty create a sub Frame and
&gt; +        not load anything.

Again.

&gt; Source/WebCore/loader/FrameLoader.h:158
&gt; +    // This is a slight misnomer. It handles the higher level logic of loading both subframes and plugins.
&gt; +    class SubframeLoader {
&gt; +        WTF_MAKE_NONCOPYABLE(SubframeLoader); WTF_MAKE_FAST_ALLOCATED;
&gt; +    public:
&gt; +        explicit SubframeLoader(Frame&amp;);
&gt; +
&gt; +        void clear();
&gt; +
&gt; +        bool requestFrame(HTMLFrameOwnerElement&amp;, const String&amp; url, const AtomString&amp; frameName, LockHistory = LockHistory::Yes, LockBackForwardList = LockBackForwardList::Yes);
&gt; +        bool requestObject(HTMLPlugInImageElement&amp;, const String&amp; url, const AtomString&amp; frameName,
&gt; +            const String&amp; serviceType, const Vector&lt;String&gt;&amp; paramNames, const Vector&lt;String&gt;&amp; paramValues);
&gt; +
&gt; +        RefPtr&lt;Widget&gt; createJavaAppletWidget(const IntSize&amp;, HTMLAppletElement&amp;, const Vector&lt;String&gt;&amp; paramNames, const Vector&lt;String&gt;&amp; paramValues);
&gt; +
&gt; +        bool containsPlugins() const { return m_containsPlugins; }
&gt; +
&gt; +        bool resourceWillUsePlugin(const String&amp; url, const String&amp; mimeType);
&gt; +
&gt; +    private:
&gt; +        bool requestPlugin(HTMLPlugInImageElement&amp;, const URL&amp;, const String&amp; serviceType, const Vector&lt;String&gt;&amp; paramNames, const Vector&lt;String&gt;&amp; paramValues, bool useFallback);
&gt; +        Frame* loadOrRedirectSubframe(HTMLFrameOwnerElement&amp;, const URL&amp;, const AtomString&amp; frameName, LockHistory, LockBackForwardList);
&gt; +        RefPtr&lt;Frame&gt; loadSubframe(HTMLFrameOwnerElement&amp;, const URL&amp;, const String&amp; name, const String&amp; referrer);
&gt; +        bool loadPlugin(HTMLPlugInImageElement&amp;, const URL&amp;, const String&amp; mimeType, const Vector&lt;String&gt;&amp; paramNames, const Vector&lt;String&gt;&amp; paramValues, bool useFallback);
&gt; +
&gt; +        bool shouldUsePlugin(const URL&amp;, const String&amp; mimeType, bool hasFallback, bool&amp; useFallback);
&gt; +        bool pluginIsLoadable(const URL&amp;, const String&amp; mimeType);
&gt; +
&gt; +        URL completeURL(const String&amp;) const;
&gt; +
&gt; +        bool shouldConvertInvalidURLsToBlank() const;
&gt; +
&gt; +        bool m_containsPlugins;
&gt; +        Frame&amp; m_frame;
&gt; +    };

This could still be in its own header. Here we would just write:

    class SubframeLoader;

In the SubframeLoader.h header we would defined:

    class FrameLoader::SubframeLoader {

Everything else would be the same.

&gt; Source/WebCore/loader/SubframeLoader.cpp:65
&gt;      : m_containsPlugins(false)

Seems like this should be initialized in the class definition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645913</commentid>
    <comment_count>3</comment_count>
      <attachid>397652</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-04-27 00:31:31 -0700</bug_when>
    <thetext>Created attachment 397652
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645922</commentid>
    <comment_count>4</comment_count>
      <attachid>397655</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-04-27 01:04:19 -0700</bug_when>
    <thetext>Created attachment 397655
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645931</commentid>
    <comment_count>5</comment_count>
      <attachid>397661</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-04-27 02:08:45 -0700</bug_when>
    <thetext>Created attachment 397661
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645968</commentid>
    <comment_count>6</comment_count>
      <attachid>397673</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-04-27 05:23:45 -0700</bug_when>
    <thetext>Created attachment 397673
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645969</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-27 05:55:49 -0700</bug_when>
    <thetext>Committed r260751: &lt;https://trac.webkit.org/changeset/260751&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 397673.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645970</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-27 05:56:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/62447689&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646089</commentid>
    <comment_count>9</comment_count>
      <attachid>397627</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-04-27 10:42:29 -0700</bug_when>
    <thetext>Comment on attachment 397627
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:49
&gt;&gt; +        (WebCore::SubframeLoader::shouldConvertInvalidURLsToBlank const): Deleted.
&gt; 
&gt; I know the change log generation machinery makes this, but you can just delete it if you think it’s not helpful.

Ah, forgot to do that before landing! Will try to remember next time.

&gt;&gt; Source/WebKit/ChangeLog:9
&gt;&gt; +        not load anything.
&gt; 
&gt; Typo in strictly.
&gt; 
&gt; it‘s &quot;subframe&quot;, not &quot;sub Frame&quot;.

Done.

&gt;&gt; Source/WebKitLegacy/mac/ChangeLog:9
&gt;&gt; +        not load anything.
&gt; 
&gt; Ditto.

Done.

&gt;&gt; Source/WebKitLegacy/win/ChangeLog:9
&gt;&gt; +        not load anything.
&gt; 
&gt; Again.

Done.

&gt;&gt; Source/WebCore/loader/FrameLoader.h:158
&gt;&gt; +    };
&gt; 
&gt; This could still be in its own header. Here we would just write:
&gt; 
&gt;     class SubframeLoader;
&gt; 
&gt; In the SubframeLoader.h header we would defined:
&gt; 
&gt;     class FrameLoader::SubframeLoader {
&gt; 
&gt; Everything else would be the same.

Done.

&gt;&gt; Source/WebCore/loader/SubframeLoader.cpp:65
&gt;&gt;      : m_containsPlugins(false)
&gt; 
&gt; Seems like this should be initialized in the class definition.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646094</commentid>
    <comment_count>10</comment_count>
      <attachid>397673</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-04-27 10:50:37 -0700</bug_when>
    <thetext>Comment on attachment 397673
Patch

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

&gt; Source/WebCore/loader/FrameLoader.h:428
&gt; +    void loadURLIntoChildFrame(const URL&amp;, const String&amp; referer, Frame*);

We should fix this spelling error at some point. The word is &quot;referrer&quot; and &quot;referer&quot; is a misspelling. A misspelling that is part of the web platform now because the HTTP header field name has to remain misspelled for compatibility, but it need not be anywhere else other than in string constants for that field’s name.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397627</attachid>
            <date>2020-04-26 12:40:08 -0700</date>
            <delta_ts>2020-04-27 00:31:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211051-20200426214007.patch</filename>
            <type>text/plain</type>
            <size>29060</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzc5ZjYzMDQxNWEwNDI2
NDQ5NWE4MzA0MTg3YzU2M2FiNDdjMGZkMC4uMzI4ZWJjYjdlMjc4OTZjYjliMDAyNzU2ZGFlOWE2
N2M5ZThjMWE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIwLTA0LTI2ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWFrZSBsb2FkVVJMSW50b0NoaWxk
RnJhbWUgcHJpdmF0ZSBhbmQgbm9uLWV4cG9ydGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEwNTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIGxvYWRVUkxJbnRvQ2hpbGRGcmFtZSBwcml2YXRl
IGFuZCBub24tZXhwb3J0ZWQgdG8gcmVkdWNlIHRoZSBhbW91bnQgb2YgcHVibGljIEFQSSBmdW5j
dGlvbnMKKyAgICAgICAgdGhhdCBzdGFydCBsb2Fkcy4gSW4gb3JkZXIgdG8gZG8gdGhpcyBsb2Fk
VVJMSW50b0NoaWxkRnJhbWUgaXMgYmVpbmcgY2FsbGVkIGZyb20gU3ViZnJhbWVMb2FkZXIKKyAg
ICAgICAgYW5kIFN1YmZyYW1lTG9hZGVyIGlzIG1hZGUgYW4gaW5uZXIgY2xhc3Mgb2YgRnJhbWVM
b2FkZXIuIEJlY2F1c2UgdGhpcyBzaW1wbGlmaWVzIGNyZWF0ZUZyYW1lIChhbmQKKyAgICAgICAg
bWFrZXMgY3JlYXRlRnJhbWUgYmVoYXZlIHN0cmljdGx5IGxpa2UgaXRzIG5hbWUpIHVybCBhbmQg
cmVmZXJyZXIgZG8gbm90IGhhdmUgdG8gYmUgcGFzc2VkLgorCisgICAgICAgICogaHRtbC9IVE1M
T2JqZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6
cGFyYW1ldGVyc0ZvclBsdWdpbik6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFtZSk6
CisgICAgICAgICogbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBs
b2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5oOgor
ICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIGxvYWRlci9T
dWJmcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6U3ViZnJh
bWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
OjpTdWJmcmFtZUxvYWRlcjo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OlN1YmZyYW1lTG9hZGVyOjpyZXF1ZXN0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OlN1YmZyYW1lTG9hZGVyOjpyZXNvdXJjZVdpbGxVc2VQbHVnaW4pOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVyOjpwbHVnaW5Jc0xvYWRhYmxlKToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6cmVxdWVzdFBs
dWdpbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OnJl
cXVlc3RPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9h
ZGVyOjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyOjpTdWJmcmFtZUxvYWRlcjo6bG9hZE9yUmVkaXJlY3RTdWJmcmFtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OmxvYWRTdWJmcmFtZSk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OnNob3VsZFVzZVBsdWdp
bik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OmxvYWRQ
bHVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVyOjpj
b21wbGV0ZVVSTCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6U3ViZnJh
bWVMb2FkZXI6OnNob3VsZENvbnZlcnRJbnZhbGlkVVJMc1RvQmxhbmsgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpjbGVhcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6cmVxdWVzdEZyYW1lKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpyZXNvdXJjZVdpbGxVc2VQbHVnaW4pOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OnBsdWdpbklzTG9hZGFibGUp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OnJlcXVlc3RQbHVn
aW4pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OnJlcXVlc3RP
YmplY3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OmNyZWF0
ZUphdmFBcHBsZXRXaWRnZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVM
b2FkZXI6OmxvYWRPclJlZGlyZWN0U3ViZnJhbWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6U3ViZnJhbWVMb2FkZXI6OmxvYWRTdWJmcmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpTdWJmcmFtZUxvYWRlcjo6c2hvdWxkVXNlUGx1Z2luKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpsb2FkUGx1Z2luKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpjb21wbGV0ZVVSTCBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6c2hvdWxkQ29udmVydEludmFsaWRVUkxz
VG9CbGFuayBjb25zdCk6IERlbGV0ZWQuCisKIDIwMjAtMDQtMjYgIENhdGhpZSBDaGVuICA8Y2F0
aGllY2hlbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1iZWhh
dmlvci1pbnZhbGlkYXRlLWlmLWRpc2FibGVkLmh0bWwgaXMgYSBmbGFreSBmYWlsdXJlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDFjNjYyMTQ1M2M1NDQ3ZTlmMDA4MDIzYzk5ZDU5ZTE3N2I1MGM3M2EuLmVmY2QxZjc5
MjE0OGFkNzVlYTFjM2UzYjhlNjdjODNiMTg4ZmVkMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMjAtMDQtMjYgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KKworICAgICAgICBN
YWtlIGxvYWRVUkxJbnRvQ2hpbGRGcmFtZSBwcml2YXRlIGFuZCBub24tZXhwb3J0ZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA1MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkYXB0IGNyZWF0ZUZy
YW1lIHRvIHN0cmljdHkgY3JlYXRlIGEgc3ViIEZyYW1lIGFuZAorICAgICAgICBub3QgbG9hZCBh
bnl0aGluZy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6
Y3JlYXRlRnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaDoKKwogMjAyMC0wNC0yNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJp
c3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBpbnRlcm5hbCBpT1MgYnVpbGQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZTUwY2ExMzVjMTU2Mzg4MzhiMjE5NWE1YzE2
MGZkYjZiMjc1NjQ4OC4uMmFlODFlMjdlMGFlYWYzN2NhYmUyNTJkODQ2ZTRmYmJmZGUwYjUxMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTA0LTI2
ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWFrZSBsb2FkVVJMSW50
b0NoaWxkRnJhbWUgcHJpdmF0ZSBhbmQgbm9uLWV4cG9ydGVkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEwNTEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGFwdCBjcmVhdGVGcmFtZSB0byBzdHJpY3R5
IGNyZWF0ZSBhIHN1YiBGcmFtZSBhbmQKKyAgICAgICAgbm90IGxvYWQgYW55dGhpbmcuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZyYW1lKToKKwogMjAyMC0wNC0yNSAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFByZXBhcmUgdG8gcmVt
b3ZlIGF1dG9tYXRpYyBVUkwtPlN0cmluZyBjb252ZXJzaW9uIG9wZXJhdG9ycwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vQ2hhbmdlTG9nCmluZGV4IGVjMzBmMjMxMmM1MDBhNTk1Mzk5NWRlYmE0MzAxY2I0MTZj
NzgxMjguLmQ0OWNiYjYzYjkyOWI5YmE0YjZiMjIzMDMzY2UyNzA4YzM5MThhMTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wNC0yNiAgUm9iIEJ1
aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIE1ha2UgbG9hZFVSTEludG9DaGlsZEZy
YW1lIHByaXZhdGUgYW5kIG5vbi1leHBvcnRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMDUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRhcHQgY3JlYXRlRnJhbWUgdG8gc3RyaWN0eSBjcmVhdGUg
YSBzdWIgRnJhbWUgYW5kCisgICAgICAgIG5vdCBsb2FkIGFueXRoaW5nLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZyYW1lKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDIwLTA0LTI1ICBEYXJpbiBBZGxlciAgPGRhcmlu
QGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIFVSTCB0byB1c2UgU3RyaW5nVmlldyB3aGVuIHJl
dHVybmluZyBzdWJzdHJpbmdzIG9mIHRoZSBVUkwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2Jq
ZWN0RWxlbWVudC5jcHAKaW5kZXggOTIxNWM3ZTVhYzNmYWUxODkzYjFmMjg5Y2MxOTZiN2IxNGVh
MjE0Yi4uZGFiOWFmNTAxZmIwM2IzYjhmZDNmYmM3ZTk4ZjkzMzJlMjhlOTc5MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKQEAgLTIwNiw3ICsyMDYsNyBAQCB2
b2lkIEhUTUxPYmplY3RFbGVtZW50OjpwYXJhbWV0ZXJzRm9yUGx1Z2luKFZlY3RvcjxTdHJpbmc+
JiBwYXJhbU5hbWVzLCBWZWN0b3I8UwogICAgIC8vIGlmIHdlIGtub3cgdGhhdCByZXNvdXJjZSBw
b2ludHMgdG8gYSBwbHVnLWluLgogCiAgICAgaWYgKHVybC5pc0VtcHR5KCkgJiYgIXVybFBhcmFt
ZXRlci5pc0VtcHR5KCkpIHsKLSAgICAgICAgU3ViZnJhbWVMb2FkZXImIGxvYWRlciA9IGRvY3Vt
ZW50KCkuZnJhbWUoKS0+bG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKTsKKyAgICAgICAgYXV0byYg
bG9hZGVyID0gZG9jdW1lbnQoKS5mcmFtZSgpLT5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpOwog
ICAgICAgICBpZiAobG9hZGVyLnJlc291cmNlV2lsbFVzZVBsdWdpbih1cmxQYXJhbWV0ZXIsIHNl
cnZpY2VUeXBlKSkKICAgICAgICAgICAgIHVybCA9IHVybFBhcmFtZXRlcjsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGU5ODA0ODQxZDc0ODNlYjcyNGY3
NTQ2NjMwYzZmZGU3YjMxMmE0NTMuLjc5YjBiMzE5MzEwOTk5ZWU5MzhjNDY1YjUxODM1MTBmNTk1
Mjc1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01MjEsNyAr
NTIxLDcgQEAgUmVmPERvY3VtZW50TG9hZGVyPiBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpjcmVh
dGVEb2N1bWVudExvYWRlcihjb25zdCBSZXNvdXJjZVIKICAgICByZXR1cm4gRG9jdW1lbnRMb2Fk
ZXI6OmNyZWF0ZShyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSk7CiB9CiAKLVJlZlB0cjxGcmFtZT4g
RW1wdHlGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29uc3QgVVJMJiwgY29uc3QgU3Ry
aW5nJiwgSFRNTEZyYW1lT3duZXJFbGVtZW50JiwgY29uc3QgU3RyaW5nJikKK1JlZlB0cjxGcmFt
ZT4gRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29uc3QgU3RyaW5nJiwgSFRN
TEZyYW1lT3duZXJFbGVtZW50JikKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGFlZTc3ZTMz
ZWRmNTI3NWZhNTNkMDI0ZDRiNzliMWQ4NDQxODQ3YTMuLmFiMmUwMjQ3ZmMxZDI2ZDU4YzA4ZDkx
NjJmOTkxNmRjMmY5ZmNjMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJh
bWVMb2FkZXJDbGllbnQuaApAQCAtMTc1LDcgKzE3NSw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JU
IEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQgewogICAg
IHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCgpIGZpbmFsIHsgfQogICAgIHZvaWQgZGlk
UnVuSW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luJiwgY29uc3QgVVJMJikgZmluYWwgeyB9
CiAgICAgdm9pZCBkaWREZXRlY3RYU1MoY29uc3QgVVJMJiwgYm9vbCkgZmluYWwgeyB9Ci0gICAg
UmVmUHRyPEZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmLCBIVE1M
RnJhbWVPd25lckVsZW1lbnQmLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAgICBSZWZQdHI8RnJh
bWU+IGNyZWF0ZUZyYW1lKGNvbnN0IFN0cmluZyYsIEhUTUxGcmFtZU93bmVyRWxlbWVudCYpIGZp
bmFsOwogICAgIFJlZlB0cjxXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiwgSFRN
TFBsdWdJbkVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiwgYm9vbCkgZmluYWw7CiAgICAgUmVmUHRy
PFdpZGdldD4gY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJbnRTaXplJiwgSFRNTEFwcGxl
dEVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmlu
ZGV4IDVjMWNhM2VhMDdiMTQxOTY3ZGUxYTU3ODUwMWIwYmM0OWM2YjAzY2MuLmQzMTJjNDJlNjQz
N2FhMzE5NjEzZmI1OGIzMDU1M2FjMmNkMDBlM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcApAQCAtMTIwLDcgKzEyMCw2IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNp
bmNsdWRlICJTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaCIKICNpbmNsdWRlICJTdHlsZVRy
ZWVSZXNvbHZlci5oIgotI2luY2x1ZGUgIlN1YmZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiU3Vi
cmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAjaW5j
bHVkZSAiVXNlckNvbnRlbnRDb250cm9sbGVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5oCmluZGV4IDkyNmM2Y2FkOTIxNzQ5Y2FiYzJlNWNiYzllM2ExNzIyNDM1ZmYzNDkuLjkxMDFm
ODA5ODQ5ZWY0MTViOWIwZmI3MzM4YjllMDQzZThhNWRiZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5oCkBAIC02OSwxMSArNjksMTcgQEAgY2xhc3MgRG9jdW1lbnRMb2FkZXI7CiBj
bGFzcyBFdmVudDsKIGNsYXNzIEZvcm1TdGF0ZTsKIGNsYXNzIEZvcm1TdWJtaXNzaW9uOworY2xh
c3MgRnJhbWU7CiBjbGFzcyBGcmFtZUxvYWRSZXF1ZXN0OwogY2xhc3MgRnJhbWVMb2FkZXJDbGll
bnQ7CiBjbGFzcyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0OwogY2xhc3MgSGlzdG9yeUNvbnRyb2xs
ZXI7CiBjbGFzcyBIaXN0b3J5SXRlbTsKK2NsYXNzIEhUTUxBcHBsZXRFbGVtZW50OworY2xhc3Mg
SFRNTEZyYW1lT3duZXJFbGVtZW50OworY2xhc3MgSFRNTE1lZGlhRWxlbWVudDsKK2NsYXNzIEhU
TUxQbHVnSW5JbWFnZUVsZW1lbnQ7CitjbGFzcyBJbnRTaXplOwogY2xhc3MgTmF2aWdhdGlvbkFj
dGlvbjsKIGNsYXNzIE5ldHdvcmtpbmdDb250ZXh0OwogY2xhc3MgTm9kZTsKQEAgLTg0LDggKzkw
LDggQEAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIGNs
YXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKLWNsYXNzIFN1
YmZyYW1lTG9hZGVyOwogY2xhc3MgU3Vic3RpdHV0ZURhdGE7CitjbGFzcyBXaWRnZXQ7CiAKIGVu
dW0gY2xhc3MgTmV3TG9hZEluUHJvZ3Jlc3MgOiBib29sOwogZW51bSBjbGFzcyBOYXZpZ2F0aW9u
UG9saWN5RGVjaXNpb24gOiB1aW50OF90OwpAQCAtMTE1LDEzICsxMjEsNDggQEAgcHVibGljOgog
ICAgIFBvbGljeUNoZWNrZXImIHBvbGljeUNoZWNrZXIoKSBjb25zdCB7IHJldHVybiAqbV9wb2xp
Y3lDaGVja2VyOyB9CiAgICAgSGlzdG9yeUNvbnRyb2xsZXImIGhpc3RvcnkoKSBjb25zdCB7IHJl
dHVybiAqbV9oaXN0b3J5OyB9CiAgICAgUmVzb3VyY2VMb2FkTm90aWZpZXImIG5vdGlmaWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9ub3RpZmllcjsgfQorCisgICAgLy8gVGhpcyBpcyBhIHNsaWdodCBt
aXNub21lci4gSXQgaGFuZGxlcyB0aGUgaGlnaGVyIGxldmVsIGxvZ2ljIG9mIGxvYWRpbmcgYm90
aCBzdWJmcmFtZXMgYW5kIHBsdWdpbnMuCisgICAgY2xhc3MgU3ViZnJhbWVMb2FkZXIgeworICAg
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTdWJmcmFtZUxvYWRlcik7IFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOworICAgIHB1YmxpYzoKKyAgICAgICAgZXhwbGljaXQgU3ViZnJhbWVMb2FkZXIo
RnJhbWUmKTsKKworICAgICAgICB2b2lkIGNsZWFyKCk7CisKKyAgICAgICAgYm9vbCByZXF1ZXN0
RnJhbWUoSFRNTEZyYW1lT3duZXJFbGVtZW50JiwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IEF0
b21TdHJpbmcmIGZyYW1lTmFtZSwgTG9ja0hpc3RvcnkgPSBMb2NrSGlzdG9yeTo6WWVzLCBMb2Nr
QmFja0ZvcndhcmRMaXN0ID0gTG9ja0JhY2tGb3J3YXJkTGlzdDo6WWVzKTsKKyAgICAgICAgYm9v
bCByZXF1ZXN0T2JqZWN0KEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQmLCBjb25zdCBTdHJpbmcmIHVy
bCwgY29uc3QgQXRvbVN0cmluZyYgZnJhbWVOYW1lLAorICAgICAgICAgICAgY29uc3QgU3RyaW5n
JiBzZXJ2aWNlVHlwZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcyk7CisKKyAgICAgICAgUmVmUHRyPFdpZGdldD4gY3Jl
YXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJbnRTaXplJiwgSFRNTEFwcGxldEVsZW1lbnQmLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBh
cmFtVmFsdWVzKTsKKworICAgICAgICBib29sIGNvbnRhaW5zUGx1Z2lucygpIGNvbnN0IHsgcmV0
dXJuIG1fY29udGFpbnNQbHVnaW5zOyB9CisKKyAgICAgICAgYm9vbCByZXNvdXJjZVdpbGxVc2VQ
bHVnaW4oY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOworCisgICAg
cHJpdmF0ZToKKyAgICAgICAgYm9vbCByZXF1ZXN0UGx1Z2luKEhUTUxQbHVnSW5JbWFnZUVsZW1l
bnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHNlcnZpY2VUeXBlLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzLCBi
b29sIHVzZUZhbGxiYWNrKTsKKyAgICAgICAgRnJhbWUqIGxvYWRPclJlZGlyZWN0U3ViZnJhbWUo
SFRNTEZyYW1lT3duZXJFbGVtZW50JiwgY29uc3QgVVJMJiwgY29uc3QgQXRvbVN0cmluZyYgZnJh
bWVOYW1lLCBMb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCk7CisgICAgICAgIFJlZlB0
cjxGcmFtZT4gbG9hZFN1YmZyYW1lKEhUTUxGcmFtZU93bmVyRWxlbWVudCYsIGNvbnN0IFVSTCYs
IGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiByZWZlcnJlcik7CisgICAgICAgIGJv
b2wgbG9hZFBsdWdpbihIVE1MUGx1Z0luSW1hZ2VFbGVtZW50JiwgY29uc3QgVVJMJiwgY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcywgYm9vbCB1c2VGYWxsYmFjayk7CisKKyAgICAg
ICAgYm9vbCBzaG91bGRVc2VQbHVnaW4oY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgYm9vbCBoYXNGYWxsYmFjaywgYm9vbCYgdXNlRmFsbGJhY2spOworICAgICAgICBib29sIHBs
dWdpbklzTG9hZGFibGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CisKKyAg
ICAgICAgVVJMIGNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYpIGNvbnN0OworCisgICAgICAgIGJv
b2wgc2hvdWxkQ29udmVydEludmFsaWRVUkxzVG9CbGFuaygpIGNvbnN0OworCisgICAgICAgIGJv
b2wgbV9jb250YWluc1BsdWdpbnM7CisgICAgICAgIEZyYW1lJiBtX2ZyYW1lOworICAgIH07CisK
ICAgICBTdWJmcmFtZUxvYWRlciYgc3ViZnJhbWVMb2FkZXIoKSBjb25zdCB7IHJldHVybiAqbV9z
dWJmcmFtZUxvYWRlcjsgfQogICAgIE1peGVkQ29udGVudENoZWNrZXImIG1peGVkQ29udGVudENo
ZWNrZXIoKSBjb25zdCB7IHJldHVybiBtX21peGVkQ29udGVudENoZWNrZXI7IH0KIAogICAgIHZv
aWQgc2V0dXBGb3JSZXBsYWNlKCk7CiAKICAgICAvLyBGSVhNRTogVGhlc2UgYXJlIGFsbCBmdW5j
dGlvbnMgd2hpY2ggc3RhcnQgbG9hZHMuIFdlIGhhdmUgdG9vIG1hbnkuCi0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBsb2FkVVJMSW50b0NoaWxkRnJhbWUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5n
JiByZWZlcmVyLCBGcmFtZSopOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbG9hZEZyYW1lUmVx
dWVzdChGcmFtZUxvYWRSZXF1ZXN0JiYsIEV2ZW50KiwgUmVmUHRyPEZvcm1TdGF0ZT4mJiwgT3B0
aW9uYWw8QWRDbGlja0F0dHJpYnV0aW9uPiYmID0gV1RGOjpudWxsb3B0KTsgLy8gQ2FsbGVkIGJ5
IHN1Ym1pdEZvcm0sIGNhbGxzIGxvYWRQb3N0UmVxdWVzdCBhbmQgbG9hZFVSTC4KIAogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgbG9hZChGcmFtZUxvYWRSZXF1ZXN0JiYpOwpAQCAtNDI1LDYgKzQ2
Niw4IEBAIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBMb2FkQ29udGludWluZ1N0YXRlIDogdWlu
dDhfdCB7IE5vdENvbnRpbnVpbmcsIENvbnRpbnVpbmdXaXRoUmVxdWVzdCwgQ29udGludWluZ1dp
dGhIaXN0b3J5SXRlbSB9OwogICAgIGJvb2wgc2hvdWxkVHJlYXRDdXJyZW50TG9hZEFzQ29udGlu
dWluZ0xvYWQoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRMb2FkQ29udGludWluZ1N0YXRlICE9
IExvYWRDb250aW51aW5nU3RhdGU6Ok5vdENvbnRpbnVpbmc7IH0KIAorICAgIHZvaWQgbG9hZFVS
TEludG9DaGlsZEZyYW1lKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJlciwgRnJhbWUq
KTsKKwogICAgIEZyYW1lJiBtX2ZyYW1lOwogICAgIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVu
dD4gbV9jbGllbnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgK
aW5kZXggYjYyNTNlN2FhZjkzMWEyZTJkNjNjZWFiN2VkNGQ0NjljMDU5ZTJiOS4uMWU1NDI1ZTk0
Nzc4NWYxOGJlOGI1OTk0OGU4OTRhOGRmODMyYzllNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTI4Niw3ICsyODYsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIGNhbkNhY2hlUGFnZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29u
dmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpID0gMDsKIAotICAgIHZpcnR1
YWwgUmVmUHRyPEZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIG5h
bWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIpID0gMDsK
KyAgICB2aXJ0dWFsIFJlZlB0cjxGcmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgU3RyaW5nJiBuYW1l
LCBIVE1MRnJhbWVPd25lckVsZW1lbnQmKSA9IDA7CiAgICAgdmlydHVhbCBSZWZQdHI8V2lkZ2V0
PiBjcmVhdGVQbHVnaW4oY29uc3QgSW50U2l6ZSYsIEhUTUxQbHVnSW5FbGVtZW50JiwgY29uc3Qg
VVJMJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0
IFN0cmluZyYsIGJvb2wgbG9hZE1hbnVhbGx5KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlZGly
ZWN0RGF0YVRvUGx1Z2luKFdpZGdldCYpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJm
cmFtZUxvYWRlci5jcHAKaW5kZXggMWJkM2U0MmQ0NjU1NTgzYjZkNmUyZTcxMjEwYzA2Y2FiOWUx
MGE5ZS4uMWM0ZmQwNzZjM2Y2OTc3NjUwY2QwZjUyYTM3MDRhMjliMzFiOGM3ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAgKi8K
IAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlN1YmZyYW1lTG9hZGVyLmgiCiAKICNp
bmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5oIgpAQCAtNjIsMTggKzYxLDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLVN1YmZyYW1lTG9hZGVyOjpTdWJmcmFt
ZUxvYWRlcihGcmFtZSYgZnJhbWUpCitGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OlN1YmZy
YW1lTG9hZGVyKEZyYW1lJiBmcmFtZSkKICAgICA6IG1fY29udGFpbnNQbHVnaW5zKGZhbHNlKQog
ICAgICwgbV9mcmFtZShmcmFtZSkKIHsKIH0KIAotdm9pZCBTdWJmcmFtZUxvYWRlcjo6Y2xlYXIo
KQordm9pZCBGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OmNsZWFyKCkKIHsKICAgICBtX2Nv
bnRhaW5zUGx1Z2lucyA9IGZhbHNlOwogfQogCi1ib29sIFN1YmZyYW1lTG9hZGVyOjpyZXF1ZXN0
RnJhbWUoSFRNTEZyYW1lT3duZXJFbGVtZW50JiBvd25lckVsZW1lbnQsIGNvbnN0IFN0cmluZyYg
dXJsU3RyaW5nLCBjb25zdCBBdG9tU3RyaW5nJiBmcmFtZU5hbWUsIExvY2tIaXN0b3J5IGxvY2tI
aXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QpCitib29sIEZy
YW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6cmVxdWVzdEZyYW1lKEhUTUxGcmFtZU93bmVyRWxl
bWVudCYgb3duZXJFbGVtZW50LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgQXRvbVN0
cmluZyYgZnJhbWVOYW1lLCBMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJk
TGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0KQogewogICAgIC8vIFN1cHBvcnQgZm9yIDxmcmFtZSBz
cmM9ImphdmFzY3JpcHQ6c3RyaW5nIj4KICAgICBVUkwgc2NyaXB0VVJMOwpAQCAtMTEyLDcgKzEx
MSw3IEBAIGJvb2wgU3ViZnJhbWVMb2FkZXI6OnJlcXVlc3RGcmFtZShIVE1MRnJhbWVPd25lckVs
ZW1lbnQmIG93bmVyRWxlbWVudCwgY29uc3QgU3RyCiAgICAgcmV0dXJuIHRydWU7CiB9CiAgICAg
Ci1ib29sIFN1YmZyYW1lTG9hZGVyOjpyZXNvdXJjZVdpbGxVc2VQbHVnaW4oY29uc3QgU3RyaW5n
JiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCitib29sIEZyYW1lTG9hZGVyOjpTdWJmcmFt
ZUxvYWRlcjo6cmVzb3VyY2VXaWxsVXNlUGx1Z2luKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBT
dHJpbmcmIG1pbWVUeXBlKQogewogICAgIFVSTCBjb21wbGV0ZWRVUkw7CiAgICAgaWYgKCF1cmwu
aXNFbXB0eSgpKQpAQCAtMTIyLDcgKzEyMSw3IEBAIGJvb2wgU3ViZnJhbWVMb2FkZXI6OnJlc291
cmNlV2lsbFVzZVBsdWdpbihjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lCiAg
ICAgcmV0dXJuIHNob3VsZFVzZVBsdWdpbihjb21wbGV0ZWRVUkwsIG1pbWVUeXBlLCBmYWxzZSwg
dXNlRmFsbGJhY2spOwogfQogCi1ib29sIFN1YmZyYW1lTG9hZGVyOjpwbHVnaW5Jc0xvYWRhYmxl
KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQorYm9vbCBGcmFtZUxvYWRl
cjo6U3ViZnJhbWVMb2FkZXI6OnBsdWdpbklzTG9hZGFibGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFN0cmluZyYgbWltZVR5cGUpCiB7CiAgICAgYXV0byogZG9jdW1lbnQgPSBtX2ZyYW1lLmRvY3Vt
ZW50KCk7CiAKQEAgLTE0OSw3ICsxNDgsNyBAQCBib29sIFN1YmZyYW1lTG9hZGVyOjpwbHVnaW5J
c0xvYWRhYmxlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQogICAgIHJl
dHVybiB0cnVlOwogfQogCi1ib29sIFN1YmZyYW1lTG9hZGVyOjpyZXF1ZXN0UGx1Z2luKEhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQmIG93bmVyRWxlbWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMsIGJvb2wgdXNlRmFsbGJhY2spCitib29sIEZyYW1l
TG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6cmVxdWVzdFBsdWdpbihIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50JiBvd25lckVsZW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBl
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4m
IHBhcmFtVmFsdWVzLCBib29sIHVzZUZhbGxiYWNrKQogewogICAgIC8vIEFwcGxpY2F0aW9uIHBs
dWctaW5zIGFyZSBwbHVnLWlucyBpbXBsZW1lbnRlZCBieSB0aGUgdXNlciBhZ2VudCwgZm9yIGV4
YW1wbGUgUXQgcGx1Zy1pbnMsCiAgICAgLy8gYXMgb3Bwb3NlZCB0byB0aGlyZC1wYXJ0eSBjb2Rl
IHN1Y2ggYXMgRmxhc2guIFRoZSB1c2VyIGFnZW50IGRlY2lkZXMgd2hldGhlciBvciBub3QgdGhl
eSBhcmUKQEAgLTIxOCw3ICsyMTcsNyBAQCBzdGF0aWMgdm9pZCBsb2dQbHVnaW5SZXF1ZXN0KFBh
Z2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgdQogICAgIHBh
Z2UtPnNhd1BsdWdpbihkZXNjcmlwdGlvbik7CiB9CiAKLWJvb2wgU3ViZnJhbWVMb2FkZXI6OnJl
cXVlc3RPYmplY3QoSFRNTFBsdWdJbkltYWdlRWxlbWVudCYgb3duZXJFbGVtZW50LCBjb25zdCBT
dHJpbmcmIHVybCwgY29uc3QgQXRvbVN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBTdHJpbmcmIG1p
bWVUeXBlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0
cmluZz4mIHBhcmFtVmFsdWVzKQorYm9vbCBGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OnJl
cXVlc3RPYmplY3QoSFRNTFBsdWdJbkltYWdlRWxlbWVudCYgb3duZXJFbGVtZW50LCBjb25zdCBT
dHJpbmcmIHVybCwgY29uc3QgQXRvbVN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBTdHJpbmcmIG1p
bWVUeXBlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0
cmluZz4mIHBhcmFtVmFsdWVzKQogewogICAgIGlmICh1cmwuaXNFbXB0eSgpICYmIG1pbWVUeXBl
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjQ2LDcgKzI0NSw3IEBAIGJv
b2wgU3ViZnJhbWVMb2FkZXI6OnJlcXVlc3RPYmplY3QoSFRNTFBsdWdJbkltYWdlRWxlbWVudCYg
b3duZXJFbGVtZW50LCBjb25zdCBTCiAgICAgcmV0dXJuIGxvYWRPclJlZGlyZWN0U3ViZnJhbWUo
b3duZXJFbGVtZW50LCBjb21wbGV0ZWRVUkwsIGZyYW1lTmFtZSwgTG9ja0hpc3Rvcnk6Olllcywg
TG9ja0JhY2tGb3J3YXJkTGlzdDo6WWVzKTsKIH0KIAotUmVmUHRyPFdpZGdldD4gU3ViZnJhbWVM
b2FkZXI6OmNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgSW50U2l6ZSYgc2l6ZSwgSFRNTEFw
cGxldEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMpCitSZWZQdHI8V2lkZ2V0PiBGcmFtZUxv
YWRlcjo6U3ViZnJhbWVMb2FkZXI6OmNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgSW50U2l6
ZSYgc2l6ZSwgSFRNTEFwcGxldEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMpCiB7CiAgICAg
U3RyaW5nIGJhc2VVUkxTdHJpbmc7CiAgICAgU3RyaW5nIGNvZGVCYXNlVVJMU3RyaW5nOwpAQCAt
Mjk2LDcgKzI5NSw3IEBAIFJlZlB0cjxXaWRnZXQ+IFN1YmZyYW1lTG9hZGVyOjpjcmVhdGVKYXZh
QXBwbGV0V2lkZ2V0KGNvbnN0IEludFNpemUmIHNpemUsIEhUTUxBCiAgICAgcmV0dXJuIHdpZGdl
dDsKIH0KIAotRnJhbWUqIFN1YmZyYW1lTG9hZGVyOjpsb2FkT3JSZWRpcmVjdFN1YmZyYW1lKEhU
TUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXJFbGVtZW50LCBjb25zdCBVUkwmIHJlcXVlc3RVUkws
IGNvbnN0IEF0b21TdHJpbmcmIGZyYW1lTmFtZSwgTG9ja0hpc3RvcnkgbG9ja0hpc3RvcnksIExv
Y2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCkKK0ZyYW1lKiBGcmFtZUxvYWRl
cjo6U3ViZnJhbWVMb2FkZXI6OmxvYWRPclJlZGlyZWN0U3ViZnJhbWUoSFRNTEZyYW1lT3duZXJF
bGVtZW50JiBvd25lckVsZW1lbnQsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwgY29uc3QgQXRvbVN0
cmluZyYgZnJhbWVOYW1lLCBMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJk
TGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0KQogewogICAgIGF1dG8mIGluaXRpYXRpbmdEb2N1bWVu
dCA9IG93bmVyRWxlbWVudC5kb2N1bWVudCgpOwogCkBAIC0zMTYsNyArMzE1LDcgQEAgRnJhbWUq
IFN1YmZyYW1lTG9hZGVyOjpsb2FkT3JSZWRpcmVjdFN1YmZyYW1lKEhUTUxGcmFtZU93bmVyRWxl
bWVudCYgb3duZXJFbGVtZW4KICAgICByZXR1cm4gb3duZXJFbGVtZW50LmNvbnRlbnRGcmFtZSgp
OwogfQogCi1SZWZQdHI8RnJhbWU+IFN1YmZyYW1lTG9hZGVyOjpsb2FkU3ViZnJhbWUoSFRNTEZy
YW1lT3duZXJFbGVtZW50JiBvd25lckVsZW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIpCitSZWZQdHI8RnJhbWU+IEZyYW1lTG9h
ZGVyOjpTdWJmcmFtZUxvYWRlcjo6bG9hZFN1YmZyYW1lKEhUTUxGcmFtZU93bmVyRWxlbWVudCYg
b3duZXJFbGVtZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBT
dHJpbmcmIHJlZmVycmVyKQogewogICAgIFJlZjxGcmFtZT4gcHJvdGVjdChtX2ZyYW1lKTsKICAg
ICBhdXRvIGRvY3VtZW50ID0gbWFrZVJlZihvd25lckVsZW1lbnQuZG9jdW1lbnQoKSk7CkBAIC0z
MzIsMTkgKzMzMSwyNSBAQCBSZWZQdHI8RnJhbWU+IFN1YmZyYW1lTG9hZGVyOjpsb2FkU3ViZnJh
bWUoSFRNTEZyYW1lT3duZXJFbGVtZW50JiBvd25lckVsZW1lbnQsCiAgICAgaWYgKCFtX2ZyYW1l
LnBhZ2UoKSB8fCBtX2ZyYW1lLnBhZ2UoKS0+c3ViZnJhbWVDb3VudCgpID49IFBhZ2U6Om1heE51
bWJlck9mRnJhbWVzKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAorICAgIC8vIFByZXZlbnQg
aW5pdGlhbCBlbXB0eSBkb2N1bWVudCBsb2FkIGZyb20gdHJpZ2dlcmluZyBsb2FkIGV2ZW50cy4K
KyAgICBkb2N1bWVudC0+aW5jcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOworCisgICAgYXV0
byBmcmFtZSA9IG1fZnJhbWUubG9hZGVyKCkuY2xpZW50KCkuY3JlYXRlRnJhbWUobmFtZSwgb3du
ZXJFbGVtZW50KTsKKyAgICBpZiAoIWZyYW1lKSAgeworICAgICAgICBtX2ZyYW1lLmxvYWRlcigp
LmNoZWNrQ2FsbEltcGxpY2l0Q2xvc2UoKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
fQogICAgIFJlZmVycmVyUG9saWN5IHBvbGljeSA9IG93bmVyRWxlbWVudC5yZWZlcnJlclBvbGlj
eSgpOwogICAgIGlmIChwb2xpY3kgPT0gUmVmZXJyZXJQb2xpY3k6OkVtcHR5U3RyaW5nKQogICAg
ICAgICBwb2xpY3kgPSBkb2N1bWVudC0+cmVmZXJyZXJQb2xpY3koKTsKICAgICBTdHJpbmcgcmVm
ZXJyZXJUb1VzZSA9IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZVJlZmVycmVySGVhZGVyKHBvbGlj
eSwgdXJsLCByZWZlcnJlcik7CiAKLSAgICAvLyBQcmV2ZW50IGluaXRpYWwgZW1wdHkgZG9jdW1l
bnQgbG9hZCBmcm9tIHRyaWdnZXJpbmcgbG9hZCBldmVudHMuCi0gICAgZG9jdW1lbnQtPmluY3Jl
bWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKLQotICAgIGF1dG8gZnJhbWUgPSBtX2ZyYW1lLmxv
YWRlcigpLmNsaWVudCgpLmNyZWF0ZUZyYW1lKHVybCwgbmFtZSwgb3duZXJFbGVtZW50LCByZWZl
cnJlclRvVXNlKTsKKyAgICBtX2ZyYW1lLmxvYWRlcigpLmxvYWRVUkxJbnRvQ2hpbGRGcmFtZSh1
cmwsIHJlZmVycmVyVG9Vc2UsIGZyYW1lLmdldCgpKTsKIAogICAgIGRvY3VtZW50LT5kZWNyZW1l
bnRMb2FkRXZlbnREZWxheUNvdW50KCk7CiAKLSAgICBpZiAoIWZyYW1lKSAgeworICAgIC8vIFRo
ZSBmcmFtZSdzIG9ubG9hZCBoYW5kbGVyIG1heSBoYXZlIHJlbW92ZWQgaXQgZnJvbSB0aGUgZG9j
dW1lbnQuCisgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPnRyZWUoKS5wYXJlbnQoKSkgewogICAg
ICAgICBtX2ZyYW1lLmxvYWRlcigpLmNoZWNrQ2FsbEltcGxpY2l0Q2xvc2UoKTsKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgfQpAQCAtMzgyLDcgKzM4Nyw3IEBAIFJlZlB0cjxGcmFtZT4g
U3ViZnJhbWVMb2FkZXI6OmxvYWRTdWJmcmFtZShIVE1MRnJhbWVPd25lckVsZW1lbnQmIG93bmVy
RWxlbWVudCwKICAgICByZXR1cm4gZnJhbWU7CiB9CiAKLWJvb2wgU3ViZnJhbWVMb2FkZXI6OnNo
b3VsZFVzZVBsdWdpbihjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9v
bCBoYXNGYWxsYmFjaywgYm9vbCYgdXNlRmFsbGJhY2spCitib29sIEZyYW1lTG9hZGVyOjpTdWJm
cmFtZUxvYWRlcjo6c2hvdWxkVXNlUGx1Z2luKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IG1pbWVUeXBlLCBib29sIGhhc0ZhbGxiYWNrLCBib29sJiB1c2VGYWxsYmFjaykKIHsKICAgICBp
ZiAobV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5zaG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVu
dChtaW1lVHlwZSkpIHsKICAgICAgICAgdXNlRmFsbGJhY2sgPSBmYWxzZTsKQEAgLTM5Nyw3ICs0
MDIsNyBAQCBib29sIFN1YmZyYW1lTG9hZGVyOjpzaG91bGRVc2VQbHVnaW4oY29uc3QgVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvbwogICAgIHJldHVybiBvYmplY3RUeXBlID09
IE9iamVjdENvbnRlbnRUeXBlOjpOb25lIHx8IG9iamVjdFR5cGUgPT0gT2JqZWN0Q29udGVudFR5
cGU6OlBsdWdJbjsKIH0KIAotYm9vbCBTdWJmcmFtZUxvYWRlcjo6bG9hZFBsdWdpbihIVE1MUGx1
Z0luSW1hZ2VFbGVtZW50JiBwbHVnaW5FbGVtZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcywgYm9vbCB1c2VGYWxsYmFjaykKK2Jvb2wgRnJhbWVM
b2FkZXI6OlN1YmZyYW1lTG9hZGVyOjpsb2FkUGx1Z2luKEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQm
IHBsdWdpbkVsZW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBh
cmFtVmFsdWVzLCBib29sIHVzZUZhbGxiYWNrKQogewogICAgIGlmICh1c2VGYWxsYmFjaykKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDQwLDEzICs0NDUsMTMgQEAgYm9vbCBTdWJmcmFtZUxv
YWRlcjo6bG9hZFBsdWdpbihIVE1MUGx1Z0luSW1hZ2VFbGVtZW50JiBwbHVnaW5FbGVtZW50LCBj
b25zdCBVUkwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotVVJMIFN1YmZyYW1lTG9hZGVyOjpjb21w
bGV0ZVVSTChjb25zdCBTdHJpbmcmIHVybCkgY29uc3QKK1VSTCBGcmFtZUxvYWRlcjo6U3ViZnJh
bWVMb2FkZXI6OmNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYgdXJsKSBjb25zdAogewogICAgIEFT
U0VSVChtX2ZyYW1lLmRvY3VtZW50KCkpOwogICAgIHJldHVybiBtX2ZyYW1lLmRvY3VtZW50KCkt
PmNvbXBsZXRlVVJMKHVybCk7CiB9CiAKLWJvb2wgU3ViZnJhbWVMb2FkZXI6OnNob3VsZENvbnZl
cnRJbnZhbGlkVVJMc1RvQmxhbmsoKSBjb25zdAorYm9vbCBGcmFtZUxvYWRlcjo6U3ViZnJhbWVM
b2FkZXI6OnNob3VsZENvbnZlcnRJbnZhbGlkVVJMc1RvQmxhbmsoKSBjb25zdAogewogICAgIHJl
dHVybiBtX2ZyYW1lLnNldHRpbmdzKCkuc2hvdWxkQ29udmVydEludmFsaWRVUkxzVG9CbGFuaygp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggOTZhNWQ5ZGEyOGY3YzUy
MGIxN2QxMWQ5NjI5MjZmZjBmM2VhNjZmZS4uNDhlYTQ2ODJjMDk0NWE0MDkwODFhYjAxODE0MWU4
NjUzZWVkYmRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0xNTcxLDgg
KzE1NzEsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpjb252ZXJ0TWFpblJlc291cmNl
TG9hZFRvRG93bmxvYWQoRG9jdW1lbnRMb2FkZXIgKmRvYwogICAgIG1fZnJhbWUtPmNvbnZlcnRN
YWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChkb2N1bWVudExvYWRlciwgcmVxdWVzdCwgcmVzcG9u
c2UpOwogfQogCi1SZWZQdHI8RnJhbWU+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFt
ZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBuYW1lLCBIVE1MRnJhbWVPd25lckVsZW1l
bnQmIG93bmVyRWxlbWVudCwKLSAgICBjb25zdCBTdHJpbmcmIHJlZmVycmVyKQorUmVmUHRyPEZy
YW1lPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29uc3QgU3RyaW5nJiBuYW1l
LCBIVE1MRnJhbWVPd25lckVsZW1lbnQmIG93bmVyRWxlbWVudCkKIHsKICAgICBhdXRvKiB3ZWJQ
YWdlID0gbV9mcmFtZS0+cGFnZSgpOwogCkBAIC0xNTg1LDE1ICsxNTg0LDYgQEAgUmVmUHRyPEZy
YW1lPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgbmEKICAgICBpZiAoIWNvcmVTdWJmcmFtZS0+cGFnZSgpKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAotICAgIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5sb2Fk
VVJMSW50b0NoaWxkRnJhbWUodXJsLCByZWZlcnJlciwgY29yZVN1YmZyYW1lKTsKLQotICAgIC8v
IFRoZSBmcmFtZSdzIG9ubG9hZCBoYW5kbGVyIG1heSBoYXZlIHJlbW92ZWQgaXQgZnJvbSB0aGUg
ZG9jdW1lbnQuCi0gICAgaWYgKCFzdWJmcmFtZS0+Y29yZUZyYW1lKCkpCi0gICAgICAgIHJldHVy
biBudWxscHRyOwotICAgIEFTU0VSVChzdWJmcmFtZS0+Y29yZUZyYW1lKCkgPT0gY29yZVN1YmZy
YW1lKTsKLSAgICBpZiAoIWNvcmVTdWJmcmFtZS0+dHJlZSgpLnBhcmVudCgpKQotICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLQogICAgIHJldHVybiBjb3JlU3ViZnJhbWU7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggZGIyN2I3N2UzZTJlZjlhNDc1OTM5MTVlOGY1YWUwNGQ0
OTVkNGFiZC4uMGY4ZWIwOTNmZjc2ZTU3NzM0MDU2ZTYzY2UzNzY3YjJlZjY3MDllMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTIxNCw3ICsyMTQsNyBAQCBwcml2YXRlOgogICAg
IGJvb2wgY2FuQ2FjaGVQYWdlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBjb252ZXJ0TWFpblJl
c291cmNlTG9hZFRvRG93bmxvYWQoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikg
ZmluYWw7CiAKLSAgICBSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0IFVS
TCYsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50Jiwg
Y29uc3QgU3RyaW5nJiByZWZlcnJlcikgZmluYWw7CisgICAgUmVmUHRyPFdlYkNvcmU6OkZyYW1l
PiBjcmVhdGVGcmFtZShjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVy
RWxlbWVudCYpIGZpbmFsOwogCiAgICAgUmVmUHRyPFdlYkNvcmU6OldpZGdldD4gY3JlYXRlUGx1
Z2luKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudCYs
IGNvbnN0IFVSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFN0cmluZz4m
LCBjb25zdCBTdHJpbmcmLCBib29sIGxvYWRNYW51YWxseSkgZmluYWw7CiAgICAgdm9pZCByZWRp
cmVjdERhdGFUb1BsdWdpbihXZWJDb3JlOjpXaWRnZXQmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oCmluZGV4IDcxOTBiOGNiNTAzNDI1OTg4ZWRkMzczNjQwODlmY2I5ODEzYThmNjku
LmEyNTVhMWNiMDBiNGUwNGY4ODE5YmNlZjY5MWIxZTY3NDdmN2Y5OWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaApAQCAtMjA1LDggKzIwNSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNl
dFRpdGxlKGNvbnN0IFdlYkNvcmU6OlN0cmluZ1dpdGhEaXJlY3Rpb24mLCBjb25zdCBVUkwmKSBm
aW5hbDsKIAotICAgIFJlZlB0cjxXZWJDb3JlOjpGcmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgVVJM
JiwgY29uc3QgV1RGOjpTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVu
dCYsCi0gICAgICAgIGNvbnN0IFdURjo6U3RyaW5nJiByZWZlcnJlcikgZmluYWw7CisgICAgUmVm
UHRyPFdlYkNvcmU6OkZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBXVEY6OlN0cmluZyYgbmFtZSwg
V2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50JikgZmluYWw7CiAgICAgUmVmUHRyPFdlYkNv
cmU6OldpZGdldD4gY3JlYXRlUGx1Z2luKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBXZWJDb3Jl
OjpIVE1MUGx1Z0luRWxlbWVudCYsIGNvbnN0IFVSTCYsCiAgICAgY29uc3QgVmVjdG9yPFdURjo6
U3RyaW5nPiYsIGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBjb25zdCBXVEY6OlN0cmluZyYs
IGJvb2wpIGZpbmFsOwogICAgIHZvaWQgcmVkaXJlY3REYXRhVG9QbHVnaW4oV2ViQ29yZTo6V2lk
Z2V0JikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDk2YTg4OTE2NzAw
N2ZjNjFlNzA5M2U5ZTRiMWVkMGFhMjkxMGFlOTEuLjZkMjljYTBhNmJhNmQzMDQ5YWRkY2ZlNGZi
MTMxNDE4MTE3ZmVkMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC0xNjE4LDgg
KzE2MTgsNyBAQCBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5DYWNoZVBhZ2UoKSBjb25z
dAogICAgIHJldHVybiB0cnVlOwogfQogCi1SZWZQdHI8V2ViQ29yZTo6RnJhbWU+IFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFtZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBu
YW1lLCBXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVsZW1lbnQmIG93bmVyRWxlbWVudCwKLSAgICBj
b25zdCBTdHJpbmcmIHJlZmVycmVyKQorUmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBXZWJGcmFtZUxv
YWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpIVE1M
RnJhbWVPd25lckVsZW1lbnQmIG93bmVyRWxlbWVudCkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpD
X0VYQ0VQVElPTlM7CiAgICAgCkBAIC0xNjM5LDEyICsxNjM4LDYgQEAgUmVmUHRyPFdlYkNvcmU6
OkZyYW1lPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29uc3QgVVJMJiB1cmws
IGNvbnN0IFMKICAgICBpZiAoIXJlc3VsdC0+cGFnZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAKLSAgICBjb3JlKG1fd2ViRnJhbWUuZ2V0KCkpLT5sb2FkZXIoKS5sb2FkVVJMSW50b0No
aWxkRnJhbWUodXJsLCByZWZlcnJlciwgcmVzdWx0LmdldCgpKTsKLQotICAgIC8vIFRoZSBmcmFt
ZSdzIG9ubG9hZCBoYW5kbGVyIG1heSBoYXZlIHJlbW92ZWQgaXQgZnJvbSB0aGUgZG9jdW1lbnQu
Ci0gICAgaWYgKCFyZXN1bHQtPnRyZWUoKS5wYXJlbnQoKSkKLSAgICAgICAgcmV0dXJuIG51bGxw
dHI7Ci0KICAgICByZXR1cm4gcmVzdWx0OwogCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9O
UzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA1MzliZTc3OTMwMTMwY2VkYmI4
NDM4NWEyODY1OWU4ZTEwNDRmNjU2Li5mODMyNzA5OTUwMzVmMDBhMWE2Yjg2OTIzNzk2ZjE3MDQw
ZGU2NWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC05ODUsOCArOTg1LDcg
QEAgYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuQ2FjaGVQYWdlKCkgY29uc3QKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotUmVmUHRyPEZyYW1lPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3Jl
YXRlRnJhbWUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbmFtZSwgSFRNTEZyYW1lT3du
ZXJFbGVtZW50JiBvd25lckVsZW1lbnQsCi0gICAgY29uc3QgU3RyaW5nJiByZWZlcnJlcikKK1Jl
ZlB0cjxGcmFtZT4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZyYW1lKGNvbnN0IFN0cmlu
ZyYgbmFtZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50JiBvd25lckVsZW1lbnQpCiB7CiAgICAgRnJh
bWUqIGNvcmVGcmFtZSA9IGNvcmUobV93ZWJGcmFtZSk7CiAgICAgQVNTRVJUKGNvcmVGcmFtZSk7
CkBAIC05OTksMTIgKzk5OCw2IEBAIFJlZlB0cjxGcmFtZT4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmNyZWF0ZUZyYW1lKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG5hCiAgICAgY29yZUZy
YW1lLT50cmVlKCkuYXBwZW5kQ2hpbGQoKmNoaWxkRnJhbWUpOwogICAgIGNoaWxkRnJhbWUtPmlu
aXQoKTsKIAotICAgIGNvcmVGcmFtZS0+bG9hZGVyKCkubG9hZFVSTEludG9DaGlsZEZyYW1lKHVy
bCwgcmVmZXJyZXIsIGNoaWxkRnJhbWUuZ2V0KCkpOwotCi0gICAgLy8gVGhlIGZyYW1lJ3Mgb25s
b2FkIGhhbmRsZXIgbWF5IGhhdmUgcmVtb3ZlZCBpdCBmcm9tIHRoZSBkb2N1bWVudC4KLSAgICBp
ZiAoIWNoaWxkRnJhbWUtPnRyZWUoKS5wYXJlbnQoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0KICAgICByZXR1cm4gY2hpbGRGcmFtZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgK
aW5kZXggZDNhNzNhNTEzOTFmYzI2ZGEyZmRhOTBhMDg1NTBmZGY2NGYyZGUwMS4uYjhlN2M3ZGU0
OTNhNTczZDA1YWZjMTVhMGU4ZTY5NzQ4YTExMzdmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oCkBAIC0xNzcsOCArMTc3LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBjYW5DYWNoZVBhZ2Uo
KSBjb25zdCBvdmVycmlkZTsKIAotICAgIFJlZlB0cjxXZWJDb3JlOjpGcmFtZT4gY3JlYXRlRnJh
bWUoY29uc3QgVVJMJiwgY29uc3QgV1RGOjpTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkhUTUxGcmFt
ZU93bmVyRWxlbWVudCYsCi0gICAgICAgIGNvbnN0IFdURjo6U3RyaW5nJiByZWZlcnJlcikgb3Zl
cnJpZGU7CisgICAgUmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBXVEY6
OlN0cmluZyYgbmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50Jikgb3ZlcnJpZGU7
CiAgICAgUmVmUHRyPFdlYkNvcmU6OldpZGdldD4gY3JlYXRlUGx1Z2luKGNvbnN0IFdlYkNvcmU6
OkludFNpemUmLCBXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0
IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgY29uc3Qg
V1RGOjpTdHJpbmcmLCBib29sIGxvYWRNYW51YWxseSkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZWRp
cmVjdERhdGFUb1BsdWdpbihXZWJDb3JlOjpXaWRnZXQmKSBvdmVycmlkZTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397652</attachid>
            <date>2020-04-27 00:31:31 -0700</date>
            <delta_ts>2020-04-27 01:04:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211051-20200427093129.patch</filename>
            <type>text/plain</type>
            <size>27023</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzc5ZjYzMDQxNWEwNDI2
NDQ5NWE4MzA0MTg3YzU2M2FiNDdjMGZkMC4uZGUyYTI5NTgyNTUxYjg5N2VkYzcwN2Y4NDRkMmE4
ZGQ3MDljMGUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTA0LTI3ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWFrZSBsb2FkVVJMSW50b0NoaWxk
RnJhbWUgcHJpdmF0ZSBhbmQgbm9uLWV4cG9ydGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEwNTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIGxvYWRVUkxJbnRvQ2hpbGRGcmFtZSBwcml2YXRl
IGFuZCBub24tZXhwb3J0ZWQgdG8gcmVkdWNlIHRoZSBhbW91bnQgb2YgcHVibGljIEFQSSBmdW5j
dGlvbnMKKyAgICAgICAgdGhhdCBzdGFydCBsb2Fkcy4gSW4gb3JkZXIgdG8gZG8gdGhpcyBsb2Fk
VVJMSW50b0NoaWxkRnJhbWUgaXMgYmVpbmcgY2FsbGVkIGZyb20gU3ViZnJhbWVMb2FkZXIKKyAg
ICAgICAgYW5kIFN1YmZyYW1lTG9hZGVyIGlzIG1hZGUgYW4gaW5uZXIgY2xhc3Mgb2YgRnJhbWVM
b2FkZXIuIEJlY2F1c2UgdGhpcyBzaW1wbGlmaWVzIGNyZWF0ZUZyYW1lIChhbmQKKyAgICAgICAg
bWFrZXMgY3JlYXRlRnJhbWUgYmVoYXZlIHN0cmljdGx5IGxpa2UgaXRzIG5hbWUpIHVybCBhbmQg
cmVmZXJyZXIgZG8gbm90IGhhdmUgdG8gYmUgcGFzc2VkLgorCisgICAgICAgICogaHRtbC9IVE1M
T2JqZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6
cGFyYW1ldGVyc0ZvclBsdWdpbik6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFtZSk6
CisgICAgICAgICogbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBs
b2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQu
aDoKKyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcik6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OmNsZWFyKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6cmVxdWVzdEZyYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6cmVzb3VyY2VXaWxs
VXNlUGx1Z2luKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRl
cjo6cGx1Z2luSXNMb2FkYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6U3Vi
ZnJhbWVMb2FkZXI6OnJlcXVlc3RQbHVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OlN1YmZyYW1lTG9hZGVyOjpyZXF1ZXN0T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6Y3JlYXRlSmF2YUFwcGxldFdpZGdldCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OmxvYWRPclJlZGlyZWN0
U3ViZnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVy
Ojpsb2FkU3ViZnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OlN1YmZyYW1l
TG9hZGVyOjpzaG91bGRVc2VQbHVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OlN1YmZyYW1lTG9hZGVyOjpsb2FkUGx1Z2luKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyOjpTdWJmcmFtZUxvYWRlcjo6Y29tcGxldGVVUkwgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVyOjpzaG91bGRDb252ZXJ0SW52YWxpZFVSTHNU
b0JsYW5rIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpTdWJmcmFt
ZUxvYWRlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6Y2xl
YXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OnJlcXVlc3RG
cmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6cmVzb3Vy
Y2VXaWxsVXNlUGx1Z2luKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9h
ZGVyOjpwbHVnaW5Jc0xvYWRhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN1YmZy
YW1lTG9hZGVyOjpyZXF1ZXN0UGx1Z2luKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN1
YmZyYW1lTG9hZGVyOjpyZXF1ZXN0T2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlN1YmZyYW1lTG9hZGVyOjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpsb2FkT3JSZWRpcmVjdFN1YmZyYW1lKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpsb2FkU3ViZnJhbWUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OnNob3VsZFVzZVBsdWdp
bik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6bG9hZFBsdWdp
bik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6Y29tcGxldGVV
UkwgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OnNo
b3VsZENvbnZlcnRJbnZhbGlkVVJMc1RvQmxhbmsgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAq
IGxvYWRlci9TdWJmcmFtZUxvYWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2Fk
ZXI6OmNvbnRhaW5zUGx1Z2lucyBjb25zdCk6IERlbGV0ZWQuCisKIDIwMjAtMDQtMjYgIENhdGhp
ZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIGZhc3Qvc2Nyb2xsaW5n
L3Njcm9sbC1iZWhhdmlvci1pbnZhbGlkYXRlLWlmLWRpc2FibGVkLmh0bWwgaXMgYSBmbGFreSBm
YWlsdXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDFjNjYyMTQ1M2M1NDQ3ZTlmMDA4MDIzYzk5ZDU5ZTE3N2I1MGM3
M2EuLjJiYTY3NGM5ZWEyOTIzNjIwYzA5NzdmNDM1OTRiM2I2MGVjZWVkZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMjAtMDQtMjcgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4K
KworICAgICAgICBNYWtlIGxvYWRVUkxJbnRvQ2hpbGRGcmFtZSBwcml2YXRlIGFuZCBub24tZXhw
b3J0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
MTA1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
YXB0IGNyZWF0ZUZyYW1lIHRvIHN0cmljdGx5IGNyZWF0ZSBhIHN1YmZyYW1lIGFuZAorICAgICAg
ICBub3QgbG9hZCBhbnl0aGluZy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxv
YWRlckNsaWVudDo6Y3JlYXRlRnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAyMC0wNC0yNSAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBpbnRlcm5hbCBp
T1MgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZTUwY2ExMzVjMTU2Mzg4
MzhiMjE5NWE1YzE2MGZkYjZiMjc1NjQ4OC4uMzczZmVhYzFmOWEwNGEyNjYwYTY4NmU0ODQyNWJm
ZjY3Mjc1ZDQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIwLTA0LTI3ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWFr
ZSBsb2FkVVJMSW50b0NoaWxkRnJhbWUgcHJpdmF0ZSBhbmQgbm9uLWV4cG9ydGVkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEwNTEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGFwdCBjcmVhdGVGcmFt
ZSB0byBzdHJpY3RseSBjcmVhdGUgYSBzdWJmcmFtZSBhbmQKKyAgICAgICAgbm90IGxvYWQgYW55
dGhpbmcuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgorICAg
ICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZyYW1lKToKKwogMjAyMC0wNC0yNSAg
QWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFBy
ZXBhcmUgdG8gcmVtb3ZlIGF1dG9tYXRpYyBVUkwtPlN0cmluZyBjb252ZXJzaW9uIG9wZXJhdG9y
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IGVjMzBmMjMxMmM1MDBhNTk1Mzk5NWRl
YmE0MzAxY2I0MTZjNzgxMjguLjY5YTU0NGFmZDgwNGZmOGFhN2U0YWI2NjUxMDA2YzZiMDNlODcw
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0w
NC0yNyAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIE1ha2UgbG9hZFVS
TEludG9DaGlsZEZyYW1lIHByaXZhdGUgYW5kIG5vbi1leHBvcnRlZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMDUxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRhcHQgY3JlYXRlRnJhbWUgdG8gc3Ry
aWN0bHkgY3JlYXRlIGEgc3ViZnJhbWUgYW5kCisgICAgICAgIG5vdCBsb2FkIGFueXRoaW5nLgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAg
ICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZyYW1lKToKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDIwLTA0LTI1ICBEYXJpbiBB
ZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIFVSTCB0byB1c2UgU3RyaW5n
VmlldyB3aGVuIHJldHVybmluZyBzdWJzdHJpbmdzIG9mIHRoZSBVUkwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKaW5kZXggOTIxNWM3ZTVhYzNmYWUxODkzYjFmMjg5
Y2MxOTZiN2IxNGVhMjE0Yi4uZGFiOWFmNTAxZmIwM2IzYjhmZDNmYmM3ZTk4ZjkzMzJlMjhlOTc5
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKQEAgLTIwNiw3
ICsyMDYsNyBAQCB2b2lkIEhUTUxPYmplY3RFbGVtZW50OjpwYXJhbWV0ZXJzRm9yUGx1Z2luKFZl
Y3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBWZWN0b3I8UwogICAgIC8vIGlmIHdlIGtub3cgdGhh
dCByZXNvdXJjZSBwb2ludHMgdG8gYSBwbHVnLWluLgogCiAgICAgaWYgKHVybC5pc0VtcHR5KCkg
JiYgIXVybFBhcmFtZXRlci5pc0VtcHR5KCkpIHsKLSAgICAgICAgU3ViZnJhbWVMb2FkZXImIGxv
YWRlciA9IGRvY3VtZW50KCkuZnJhbWUoKS0+bG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKTsKKyAg
ICAgICAgYXV0byYgbG9hZGVyID0gZG9jdW1lbnQoKS5mcmFtZSgpLT5sb2FkZXIoKS5zdWJmcmFt
ZUxvYWRlcigpOwogICAgICAgICBpZiAobG9hZGVyLnJlc291cmNlV2lsbFVzZVBsdWdpbih1cmxQ
YXJhbWV0ZXIsIHNlcnZpY2VUeXBlKSkKICAgICAgICAgICAgIHVybCA9IHVybFBhcmFtZXRlcjsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGU5ODA0ODQx
ZDc0ODNlYjcyNGY3NTQ2NjMwYzZmZGU3YjMxMmE0NTMuLjc5YjBiMzE5MzEwOTk5ZWU5MzhjNDY1
YjUxODM1MTBmNTk1Mjc1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3Bw
CkBAIC01MjEsNyArNTIxLDcgQEAgUmVmPERvY3VtZW50TG9hZGVyPiBFbXB0eUZyYW1lTG9hZGVy
Q2xpZW50OjpjcmVhdGVEb2N1bWVudExvYWRlcihjb25zdCBSZXNvdXJjZVIKICAgICByZXR1cm4g
RG9jdW1lbnRMb2FkZXI6OmNyZWF0ZShyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSk7CiB9CiAKLVJl
ZlB0cjxGcmFtZT4gRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJiwgSFRNTEZyYW1lT3duZXJFbGVtZW50JiwgY29uc3QgU3RyaW5nJikK
K1JlZlB0cjxGcmFtZT4gRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29uc3Qg
U3RyaW5nJiwgSFRNTEZyYW1lT3duZXJFbGVtZW50JikKIHsKICAgICByZXR1cm4gbnVsbHB0cjsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCmlu
ZGV4IGFlZTc3ZTMzZWRmNTI3NWZhNTNkMDI0ZDRiNzliMWQ4NDQxODQ3YTMuLmFiMmUwMjQ3ZmMx
ZDI2ZDU4YzA4ZDkxNjJmOTkxNmRjMmY5ZmNjMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTc1LDcgKzE3NSw3IEBAIGNsYXNzIFdF
QkNPUkVfRVhQT1JUIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJhbWVMb2FkZXJD
bGllbnQgewogICAgIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCgpIGZpbmFsIHsgfQog
ICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luJiwgY29uc3QgVVJM
JikgZmluYWwgeyB9CiAgICAgdm9pZCBkaWREZXRlY3RYU1MoY29uc3QgVVJMJiwgYm9vbCkgZmlu
YWwgeyB9Ci0gICAgUmVmUHRyPEZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBVUkwmLCBjb25zdCBT
dHJpbmcmLCBIVE1MRnJhbWVPd25lckVsZW1lbnQmLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAg
ICBSZWZQdHI8RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0IFN0cmluZyYsIEhUTUxGcmFtZU93bmVy
RWxlbWVudCYpIGZpbmFsOwogICAgIFJlZlB0cjxXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBJ
bnRTaXplJiwgSFRNTFBsdWdJbkVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiwgYm9vbCkgZmluYWw7
CiAgICAgUmVmUHRyPFdpZGdldD4gY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJbnRTaXpl
JiwgSFRNTEFwcGxldEVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmgKaW5kZXggOTI2YzZjYWQ5MjE3NDljYWJjMmU1Y2JjOWUzYTE3MjI0MzVmZjM0OS4uOTZk
MDJlZTM1NmI4MzA4YjI0YzM0ODRlMGNkMzM3OGRhZmFhYjc0ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmgKQEAgLTY5LDYgKzY5LDcgQEAgY2xhc3MgRG9jdW1lbnRMb2FkZXI7CiBj
bGFzcyBFdmVudDsKIGNsYXNzIEZvcm1TdGF0ZTsKIGNsYXNzIEZvcm1TdWJtaXNzaW9uOworY2xh
c3MgRnJhbWU7CiBjbGFzcyBGcmFtZUxvYWRSZXF1ZXN0OwogY2xhc3MgRnJhbWVMb2FkZXJDbGll
bnQ7CiBjbGFzcyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0OwpAQCAtODQsNyArODUsNiBAQCBjbGFz
cyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogY2xhc3MgU2VyaWFs
aXplZFNjcmlwdFZhbHVlOwogY2xhc3MgU2hhcmVkQnVmZmVyOwotY2xhc3MgU3ViZnJhbWVMb2Fk
ZXI7CiBjbGFzcyBTdWJzdGl0dXRlRGF0YTsKIAogZW51bSBjbGFzcyBOZXdMb2FkSW5Qcm9ncmVz
cyA6IGJvb2w7CkBAIC0xMTUsMTMgKzExNSwxNCBAQCBwdWJsaWM6CiAgICAgUG9saWN5Q2hlY2tl
ciYgcG9saWN5Q2hlY2tlcigpIGNvbnN0IHsgcmV0dXJuICptX3BvbGljeUNoZWNrZXI7IH0KICAg
ICBIaXN0b3J5Q29udHJvbGxlciYgaGlzdG9yeSgpIGNvbnN0IHsgcmV0dXJuICptX2hpc3Rvcnk7
IH0KICAgICBSZXNvdXJjZUxvYWROb3RpZmllciYgbm90aWZpZXIoKSBjb25zdCB7IHJldHVybiBt
X25vdGlmaWVyOyB9CisKKyAgICBjbGFzcyBTdWJmcmFtZUxvYWRlcjsKICAgICBTdWJmcmFtZUxv
YWRlciYgc3ViZnJhbWVMb2FkZXIoKSBjb25zdCB7IHJldHVybiAqbV9zdWJmcmFtZUxvYWRlcjsg
fQogICAgIE1peGVkQ29udGVudENoZWNrZXImIG1peGVkQ29udGVudENoZWNrZXIoKSBjb25zdCB7
IHJldHVybiBtX21peGVkQ29udGVudENoZWNrZXI7IH0KIAogICAgIHZvaWQgc2V0dXBGb3JSZXBs
YWNlKCk7CiAKICAgICAvLyBGSVhNRTogVGhlc2UgYXJlIGFsbCBmdW5jdGlvbnMgd2hpY2ggc3Rh
cnQgbG9hZHMuIFdlIGhhdmUgdG9vIG1hbnkuCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBsb2Fk
VVJMSW50b0NoaWxkRnJhbWUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcmVyLCBGcmFt
ZSopOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbG9hZEZyYW1lUmVxdWVzdChGcmFtZUxvYWRS
ZXF1ZXN0JiYsIEV2ZW50KiwgUmVmUHRyPEZvcm1TdGF0ZT4mJiwgT3B0aW9uYWw8QWRDbGlja0F0
dHJpYnV0aW9uPiYmID0gV1RGOjpudWxsb3B0KTsgLy8gQ2FsbGVkIGJ5IHN1Ym1pdEZvcm0sIGNh
bGxzIGxvYWRQb3N0UmVxdWVzdCBhbmQgbG9hZFVSTC4KIAogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgbG9hZChGcmFtZUxvYWRSZXF1ZXN0JiYpOwpAQCAtNDI1LDYgKzQyNiw4IEBAIHByaXZhdGU6
CiAgICAgZW51bSBjbGFzcyBMb2FkQ29udGludWluZ1N0YXRlIDogdWludDhfdCB7IE5vdENvbnRp
bnVpbmcsIENvbnRpbnVpbmdXaXRoUmVxdWVzdCwgQ29udGludWluZ1dpdGhIaXN0b3J5SXRlbSB9
OwogICAgIGJvb2wgc2hvdWxkVHJlYXRDdXJyZW50TG9hZEFzQ29udGludWluZ0xvYWQoKSBjb25z
dCB7IHJldHVybiBtX2N1cnJlbnRMb2FkQ29udGludWluZ1N0YXRlICE9IExvYWRDb250aW51aW5n
U3RhdGU6Ok5vdENvbnRpbnVpbmc7IH0KIAorICAgIHZvaWQgbG9hZFVSTEludG9DaGlsZEZyYW1l
KGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJlciwgRnJhbWUqKTsKKwogICAgIEZyYW1l
JiBtX2ZyYW1lOwogICAgIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4gbV9jbGllbnQ7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggYjYyNTNlN2Fh
ZjkzMWEyZTJkNjNjZWFiN2VkNGQ0NjljMDU5ZTJiOS4uMWU1NDI1ZTk0Nzc4NWYxOGJlOGI1OTk0
OGU4OTRhOGRmODMyYzllNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xp
ZW50LmgKQEAgLTI4Niw3ICsyODYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGNhbkNh
Y2hlUGFnZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29udmVydE1haW5SZXNvdXJj
ZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpID0gMDsKIAotICAgIHZpcnR1YWwgUmVmUHRyPEZyYW1l
PiBjcmVhdGVGcmFtZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIG5hbWUsIEhUTUxGcmFtZU93
bmVyRWxlbWVudCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIpID0gMDsKKyAgICB2aXJ0dWFsIFJl
ZlB0cjxGcmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgU3RyaW5nJiBuYW1lLCBIVE1MRnJhbWVPd25l
ckVsZW1lbnQmKSA9IDA7CiAgICAgdmlydHVhbCBSZWZQdHI8V2lkZ2V0PiBjcmVhdGVQbHVnaW4o
Y29uc3QgSW50U2l6ZSYsIEhUTUxQbHVnSW5FbGVtZW50JiwgY29uc3QgVVJMJiwgY29uc3QgVmVj
dG9yPFN0cmluZz4mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFN0cmluZyYsIGJvb2wg
bG9hZE1hbnVhbGx5KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2lu
KFdpZGdldCYpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZy
YW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAK
aW5kZXggMWJkM2U0MmQ0NjU1NTgzYjZkNmUyZTcxMjEwYzA2Y2FiOWUxMGE5ZS4uNzU4NGE0ZTMx
MzQ0OWIyZTY4OWU0MGI2NjI0YTNlMDM2OWUwYzNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
U3ViZnJhbWVMb2FkZXIuY3BwCkBAIC02MiwxOCArNjIsMTcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotU3ViZnJhbWVMb2FkZXI6OlN1
YmZyYW1lTG9hZGVyKEZyYW1lJiBmcmFtZSkKLSAgICA6IG1fY29udGFpbnNQbHVnaW5zKGZhbHNl
KQotICAgICwgbV9mcmFtZShmcmFtZSkKK0ZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6U3Vi
ZnJhbWVMb2FkZXIoRnJhbWUmIGZyYW1lKQorICAgIDogbV9mcmFtZShmcmFtZSkKIHsKIH0KIAot
dm9pZCBTdWJmcmFtZUxvYWRlcjo6Y2xlYXIoKQordm9pZCBGcmFtZUxvYWRlcjo6U3ViZnJhbWVM
b2FkZXI6OmNsZWFyKCkKIHsKICAgICBtX2NvbnRhaW5zUGx1Z2lucyA9IGZhbHNlOwogfQogCi1i
b29sIFN1YmZyYW1lTG9hZGVyOjpyZXF1ZXN0RnJhbWUoSFRNTEZyYW1lT3duZXJFbGVtZW50JiBv
d25lckVsZW1lbnQsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBBdG9tU3RyaW5nJiBm
cmFtZU5hbWUsIExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxv
Y2tCYWNrRm9yd2FyZExpc3QpCitib29sIEZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6cmVx
dWVzdEZyYW1lKEhUTUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXJFbGVtZW50LCBjb25zdCBTdHJp
bmcmIHVybFN0cmluZywgY29uc3QgQXRvbVN0cmluZyYgZnJhbWVOYW1lLCBMb2NrSGlzdG9yeSBs
b2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0KQogewog
ICAgIC8vIFN1cHBvcnQgZm9yIDxmcmFtZSBzcmM9ImphdmFzY3JpcHQ6c3RyaW5nIj4KICAgICBV
Ukwgc2NyaXB0VVJMOwpAQCAtMTEyLDcgKzExMSw3IEBAIGJvb2wgU3ViZnJhbWVMb2FkZXI6OnJl
cXVlc3RGcmFtZShIVE1MRnJhbWVPd25lckVsZW1lbnQmIG93bmVyRWxlbWVudCwgY29uc3QgU3Ry
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAgICAgCi1ib29sIFN1YmZyYW1lTG9hZGVyOjpyZXNvdXJj
ZVdpbGxVc2VQbHVnaW4oY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUp
Citib29sIEZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6cmVzb3VyY2VXaWxsVXNlUGx1Z2lu
KGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQogewogICAgIFVSTCBj
b21wbGV0ZWRVUkw7CiAgICAgaWYgKCF1cmwuaXNFbXB0eSgpKQpAQCAtMTIyLDcgKzEyMSw3IEBA
IGJvb2wgU3ViZnJhbWVMb2FkZXI6OnJlc291cmNlV2lsbFVzZVBsdWdpbihjb25zdCBTdHJpbmcm
IHVybCwgY29uc3QgU3RyaW5nJiBtaW1lCiAgICAgcmV0dXJuIHNob3VsZFVzZVBsdWdpbihjb21w
bGV0ZWRVUkwsIG1pbWVUeXBlLCBmYWxzZSwgdXNlRmFsbGJhY2spOwogfQogCi1ib29sIFN1YmZy
YW1lTG9hZGVyOjpwbHVnaW5Jc0xvYWRhYmxlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IG1pbWVUeXBlKQorYm9vbCBGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OnBsdWdpbklzTG9h
ZGFibGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCiB7CiAgICAgYXV0
byogZG9jdW1lbnQgPSBtX2ZyYW1lLmRvY3VtZW50KCk7CiAKQEAgLTE0OSw3ICsxNDgsNyBAQCBi
b29sIFN1YmZyYW1lTG9hZGVyOjpwbHVnaW5Jc0xvYWRhYmxlKGNvbnN0IFVSTCYgdXJsLCBjb25z
dCBTdHJpbmcmIG1pbWVUeXBlKQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFN1YmZyYW1l
TG9hZGVyOjpyZXF1ZXN0UGx1Z2luKEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQmIG93bmVyRWxlbWVu
dCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMsIGJv
b2wgdXNlRmFsbGJhY2spCitib29sIEZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6cmVxdWVz
dFBsdWdpbihIVE1MUGx1Z0luSW1hZ2VFbGVtZW50JiBvd25lckVsZW1lbnQsIGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1O
YW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzLCBib29sIHVzZUZhbGxiYWNr
KQogewogICAgIC8vIEFwcGxpY2F0aW9uIHBsdWctaW5zIGFyZSBwbHVnLWlucyBpbXBsZW1lbnRl
ZCBieSB0aGUgdXNlciBhZ2VudCwgZm9yIGV4YW1wbGUgUXQgcGx1Zy1pbnMsCiAgICAgLy8gYXMg
b3Bwb3NlZCB0byB0aGlyZC1wYXJ0eSBjb2RlIHN1Y2ggYXMgRmxhc2guIFRoZSB1c2VyIGFnZW50
IGRlY2lkZXMgd2hldGhlciBvciBub3QgdGhleSBhcmUKQEAgLTIxOCw3ICsyMTcsNyBAQCBzdGF0
aWMgdm9pZCBsb2dQbHVnaW5SZXF1ZXN0KFBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIGNvbnN0IFN0cmluZyYgdQogICAgIHBhZ2UtPnNhd1BsdWdpbihkZXNjcmlwdGlvbik7CiB9
CiAKLWJvb2wgU3ViZnJhbWVMb2FkZXI6OnJlcXVlc3RPYmplY3QoSFRNTFBsdWdJbkltYWdlRWxl
bWVudCYgb3duZXJFbGVtZW50LCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgQXRvbVN0cmluZyYg
ZnJhbWVOYW1lLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
cGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKQorYm9vbCBGcmFt
ZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OnJlcXVlc3RPYmplY3QoSFRNTFBsdWdJbkltYWdlRWxl
bWVudCYgb3duZXJFbGVtZW50LCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgQXRvbVN0cmluZyYg
ZnJhbWVOYW1lLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
cGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKQogewogICAgIGlm
ICh1cmwuaXNFbXB0eSgpICYmIG1pbWVUeXBlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwpAQCAtMjQ2LDcgKzI0NSw3IEBAIGJvb2wgU3ViZnJhbWVMb2FkZXI6OnJlcXVlc3RPYmpl
Y3QoSFRNTFBsdWdJbkltYWdlRWxlbWVudCYgb3duZXJFbGVtZW50LCBjb25zdCBTCiAgICAgcmV0
dXJuIGxvYWRPclJlZGlyZWN0U3ViZnJhbWUob3duZXJFbGVtZW50LCBjb21wbGV0ZWRVUkwsIGZy
YW1lTmFtZSwgTG9ja0hpc3Rvcnk6OlllcywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6WWVzKTsKIH0K
IAotUmVmUHRyPFdpZGdldD4gU3ViZnJhbWVMb2FkZXI6OmNyZWF0ZUphdmFBcHBsZXRXaWRnZXQo
Y29uc3QgSW50U2l6ZSYgc2l6ZSwgSFRNTEFwcGxldEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1
ZXMpCitSZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OmNyZWF0ZUph
dmFBcHBsZXRXaWRnZXQoY29uc3QgSW50U2l6ZSYgc2l6ZSwgSFRNTEFwcGxldEVsZW1lbnQmIGVs
ZW1lbnQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgcGFyYW1WYWx1ZXMpCiB7CiAgICAgU3RyaW5nIGJhc2VVUkxTdHJpbmc7CiAgICAgU3Ry
aW5nIGNvZGVCYXNlVVJMU3RyaW5nOwpAQCAtMjk2LDcgKzI5NSw3IEBAIFJlZlB0cjxXaWRnZXQ+
IFN1YmZyYW1lTG9hZGVyOjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IEludFNpemUmIHNp
emUsIEhUTUxBCiAgICAgcmV0dXJuIHdpZGdldDsKIH0KIAotRnJhbWUqIFN1YmZyYW1lTG9hZGVy
Ojpsb2FkT3JSZWRpcmVjdFN1YmZyYW1lKEhUTUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXJFbGVt
ZW50LCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IEF0b21TdHJpbmcmIGZyYW1lTmFtZSwg
TG9ja0hpc3RvcnkgbG9ja0hpc3RvcnksIExvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3
YXJkTGlzdCkKK0ZyYW1lKiBGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OmxvYWRPclJlZGly
ZWN0U3ViZnJhbWUoSFRNTEZyYW1lT3duZXJFbGVtZW50JiBvd25lckVsZW1lbnQsIGNvbnN0IFVS
TCYgcmVxdWVzdFVSTCwgY29uc3QgQXRvbVN0cmluZyYgZnJhbWVOYW1lLCBMb2NrSGlzdG9yeSBs
b2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0KQogewog
ICAgIGF1dG8mIGluaXRpYXRpbmdEb2N1bWVudCA9IG93bmVyRWxlbWVudC5kb2N1bWVudCgpOwog
CkBAIC0zMTYsNyArMzE1LDcgQEAgRnJhbWUqIFN1YmZyYW1lTG9hZGVyOjpsb2FkT3JSZWRpcmVj
dFN1YmZyYW1lKEhUTUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXJFbGVtZW4KICAgICByZXR1cm4g
b3duZXJFbGVtZW50LmNvbnRlbnRGcmFtZSgpOwogfQogCi1SZWZQdHI8RnJhbWU+IFN1YmZyYW1l
TG9hZGVyOjpsb2FkU3ViZnJhbWUoSFRNTEZyYW1lT3duZXJFbGVtZW50JiBvd25lckVsZW1lbnQs
IGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgcmVmZXJy
ZXIpCitSZWZQdHI8RnJhbWU+IEZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6bG9hZFN1YmZy
YW1lKEhUTUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXJFbGVtZW50LCBjb25zdCBVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKQogewogICAgIFJlZjxG
cmFtZT4gcHJvdGVjdChtX2ZyYW1lKTsKICAgICBhdXRvIGRvY3VtZW50ID0gbWFrZVJlZihvd25l
ckVsZW1lbnQuZG9jdW1lbnQoKSk7CkBAIC0zMzIsMTkgKzMzMSwyNSBAQCBSZWZQdHI8RnJhbWU+
IFN1YmZyYW1lTG9hZGVyOjpsb2FkU3ViZnJhbWUoSFRNTEZyYW1lT3duZXJFbGVtZW50JiBvd25l
ckVsZW1lbnQsCiAgICAgaWYgKCFtX2ZyYW1lLnBhZ2UoKSB8fCBtX2ZyYW1lLnBhZ2UoKS0+c3Vi
ZnJhbWVDb3VudCgpID49IFBhZ2U6Om1heE51bWJlck9mRnJhbWVzKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAorICAgIC8vIFByZXZlbnQgaW5pdGlhbCBlbXB0eSBkb2N1bWVudCBsb2FkIGZy
b20gdHJpZ2dlcmluZyBsb2FkIGV2ZW50cy4KKyAgICBkb2N1bWVudC0+aW5jcmVtZW50TG9hZEV2
ZW50RGVsYXlDb3VudCgpOworCisgICAgYXV0byBmcmFtZSA9IG1fZnJhbWUubG9hZGVyKCkuY2xp
ZW50KCkuY3JlYXRlRnJhbWUobmFtZSwgb3duZXJFbGVtZW50KTsKKyAgICBpZiAoIWZyYW1lKSAg
eworICAgICAgICBtX2ZyYW1lLmxvYWRlcigpLmNoZWNrQ2FsbEltcGxpY2l0Q2xvc2UoKTsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQogICAgIFJlZmVycmVyUG9saWN5IHBvbGljeSA9
IG93bmVyRWxlbWVudC5yZWZlcnJlclBvbGljeSgpOwogICAgIGlmIChwb2xpY3kgPT0gUmVmZXJy
ZXJQb2xpY3k6OkVtcHR5U3RyaW5nKQogICAgICAgICBwb2xpY3kgPSBkb2N1bWVudC0+cmVmZXJy
ZXJQb2xpY3koKTsKICAgICBTdHJpbmcgcmVmZXJyZXJUb1VzZSA9IFNlY3VyaXR5UG9saWN5Ojpn
ZW5lcmF0ZVJlZmVycmVySGVhZGVyKHBvbGljeSwgdXJsLCByZWZlcnJlcik7CiAKLSAgICAvLyBQ
cmV2ZW50IGluaXRpYWwgZW1wdHkgZG9jdW1lbnQgbG9hZCBmcm9tIHRyaWdnZXJpbmcgbG9hZCBl
dmVudHMuCi0gICAgZG9jdW1lbnQtPmluY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKLQot
ICAgIGF1dG8gZnJhbWUgPSBtX2ZyYW1lLmxvYWRlcigpLmNsaWVudCgpLmNyZWF0ZUZyYW1lKHVy
bCwgbmFtZSwgb3duZXJFbGVtZW50LCByZWZlcnJlclRvVXNlKTsKKyAgICBtX2ZyYW1lLmxvYWRl
cigpLmxvYWRVUkxJbnRvQ2hpbGRGcmFtZSh1cmwsIHJlZmVycmVyVG9Vc2UsIGZyYW1lLmdldCgp
KTsKIAogICAgIGRvY3VtZW50LT5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CiAKLSAg
ICBpZiAoIWZyYW1lKSAgeworICAgIC8vIFRoZSBmcmFtZSdzIG9ubG9hZCBoYW5kbGVyIG1heSBo
YXZlIHJlbW92ZWQgaXQgZnJvbSB0aGUgZG9jdW1lbnQuCisgICAgaWYgKCFmcmFtZSB8fCAhZnJh
bWUtPnRyZWUoKS5wYXJlbnQoKSkgewogICAgICAgICBtX2ZyYW1lLmxvYWRlcigpLmNoZWNrQ2Fs
bEltcGxpY2l0Q2xvc2UoKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpAQCAtMzgy
LDcgKzM4Nyw3IEBAIFJlZlB0cjxGcmFtZT4gU3ViZnJhbWVMb2FkZXI6OmxvYWRTdWJmcmFtZShI
VE1MRnJhbWVPd25lckVsZW1lbnQmIG93bmVyRWxlbWVudCwKICAgICByZXR1cm4gZnJhbWU7CiB9
CiAKLWJvb2wgU3ViZnJhbWVMb2FkZXI6OnNob3VsZFVzZVBsdWdpbihjb25zdCBVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBoYXNGYWxsYmFjaywgYm9vbCYgdXNlRmFsbGJh
Y2spCitib29sIEZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6c2hvdWxkVXNlUGx1Z2luKGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGhhc0ZhbGxiYWNrLCBi
b29sJiB1c2VGYWxsYmFjaykKIHsKICAgICBpZiAobV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5z
aG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudChtaW1lVHlwZSkpIHsKICAgICAgICAgdXNlRmFs
bGJhY2sgPSBmYWxzZTsKQEAgLTM5Nyw3ICs0MDIsNyBAQCBib29sIFN1YmZyYW1lTG9hZGVyOjpz
aG91bGRVc2VQbHVnaW4oY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJv
bwogICAgIHJldHVybiBvYmplY3RUeXBlID09IE9iamVjdENvbnRlbnRUeXBlOjpOb25lIHx8IG9i
amVjdFR5cGUgPT0gT2JqZWN0Q29udGVudFR5cGU6OlBsdWdJbjsKIH0KIAotYm9vbCBTdWJmcmFt
ZUxvYWRlcjo6bG9hZFBsdWdpbihIVE1MUGx1Z0luSW1hZ2VFbGVtZW50JiBwbHVnaW5FbGVtZW50
LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgVmVjdG9yPFN0
cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcywgYm9v
bCB1c2VGYWxsYmFjaykKK2Jvb2wgRnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVyOjpsb2FkUGx1
Z2luKEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQmIHBsdWdpbkVsZW1lbnQsIGNvbnN0IFVSTCYgdXJs
LCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1l
cywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzLCBib29sIHVzZUZhbGxiYWNrKQog
ewogICAgIGlmICh1c2VGYWxsYmFjaykKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDQwLDEz
ICs0NDUsMTMgQEAgYm9vbCBTdWJmcmFtZUxvYWRlcjo6bG9hZFBsdWdpbihIVE1MUGx1Z0luSW1h
Z2VFbGVtZW50JiBwbHVnaW5FbGVtZW50LCBjb25zdCBVUkwKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotVVJMIFN1YmZyYW1lTG9hZGVyOjpjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmIHVybCkgY29u
c3QKK1VSTCBGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OmNvbXBsZXRlVVJMKGNvbnN0IFN0
cmluZyYgdXJsKSBjb25zdAogewogICAgIEFTU0VSVChtX2ZyYW1lLmRvY3VtZW50KCkpOwogICAg
IHJldHVybiBtX2ZyYW1lLmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHVybCk7CiB9CiAKLWJvb2wg
U3ViZnJhbWVMb2FkZXI6OnNob3VsZENvbnZlcnRJbnZhbGlkVVJMc1RvQmxhbmsoKSBjb25zdAor
Ym9vbCBGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OnNob3VsZENvbnZlcnRJbnZhbGlkVVJM
c1RvQmxhbmsoKSBjb25zdAogewogICAgIHJldHVybiBtX2ZyYW1lLnNldHRpbmdzKCkuc2hvdWxk
Q29udmVydEludmFsaWRVUkxzVG9CbGFuaygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJh
bWVMb2FkZXIuaAppbmRleCA0NjUzZWExNzgyNDQ2ZjFjNGMyZmY4ODcyYmRiOTg2ZDAyYTYyMDY2
Li4zNmFlYWQxOTAxZDdjODg4MzhiMjdlZjRhNDM2M2Q0YjFkZTQ1NGYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuaApAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBJbnRTaXpl
OwogY2xhc3MgV2lkZ2V0OwogCiAvLyBUaGlzIGlzIGEgc2xpZ2h0IG1pc25vbWVyLiBJdCBoYW5k
bGVzIHRoZSBoaWdoZXIgbGV2ZWwgbG9naWMgb2YgbG9hZGluZyBib3RoIHN1YmZyYW1lcyBhbmQg
cGx1Z2lucy4KLWNsYXNzIFN1YmZyYW1lTG9hZGVyIHsKK2NsYXNzIEZyYW1lTG9hZGVyOjpTdWJm
cmFtZUxvYWRlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU3ViZnJhbWVMb2FkZXIpOyBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBTdWJmcmFtZUxv
YWRlcihGcmFtZSYpOwpAQCAtNzgsNyArNzgsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBzaG91
bGRDb252ZXJ0SW52YWxpZFVSTHNUb0JsYW5rKCkgY29uc3Q7CiAKLSAgICBib29sIG1fY29udGFp
bnNQbHVnaW5zOworICAgIGJvb2wgbV9jb250YWluc1BsdWdpbnMgeyBmYWxzZSB9OwogICAgIEZy
YW1lJiBtX2ZyYW1lOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXgg
OTZhNWQ5ZGEyOGY3YzUyMGIxN2QxMWQ5NjI5MjZmZjBmM2VhNjZmZS4uNDhlYTQ2ODJjMDk0NWE0
MDkwODFhYjAxODE0MWU4NjUzZWVkYmRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwCkBAIC0xNTcxLDggKzE1NzEsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpjb252
ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoRG9jdW1lbnRMb2FkZXIgKmRvYwogICAgIG1f
ZnJhbWUtPmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChkb2N1bWVudExvYWRlciwg
cmVxdWVzdCwgcmVzcG9uc2UpOwogfQogCi1SZWZQdHI8RnJhbWU+IFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpjcmVhdGVGcmFtZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBuYW1lLCBIVE1M
RnJhbWVPd25lckVsZW1lbnQmIG93bmVyRWxlbWVudCwKLSAgICBjb25zdCBTdHJpbmcmIHJlZmVy
cmVyKQorUmVmUHRyPEZyYW1lPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29u
c3QgU3RyaW5nJiBuYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQmIG93bmVyRWxlbWVudCkKIHsK
ICAgICBhdXRvKiB3ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgpOwogCkBAIC0xNTg1LDE1ICsxNTg0
LDYgQEAgUmVmUHRyPEZyYW1lPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29u
c3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbmEKICAgICBpZiAoIWNvcmVTdWJmcmFtZS0+cGFn
ZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIG1fZnJhbWUtPmNvcmVGcmFtZSgp
LT5sb2FkZXIoKS5sb2FkVVJMSW50b0NoaWxkRnJhbWUodXJsLCByZWZlcnJlciwgY29yZVN1YmZy
YW1lKTsKLQotICAgIC8vIFRoZSBmcmFtZSdzIG9ubG9hZCBoYW5kbGVyIG1heSBoYXZlIHJlbW92
ZWQgaXQgZnJvbSB0aGUgZG9jdW1lbnQuCi0gICAgaWYgKCFzdWJmcmFtZS0+Y29yZUZyYW1lKCkp
Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIEFTU0VSVChzdWJmcmFtZS0+Y29yZUZyYW1l
KCkgPT0gY29yZVN1YmZyYW1lKTsKLSAgICBpZiAoIWNvcmVTdWJmcmFtZS0+dHJlZSgpLnBhcmVu
dCgpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQogICAgIHJldHVybiBjb3JlU3ViZnJhbWU7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggZGIyN2I3N2UzZTJlZjlhNDc1
OTM5MTVlOGY1YWUwNGQ0OTVkNGFiZC4uMGY4ZWIwOTNmZjc2ZTU3NzM0MDU2ZTYzY2UzNzY3YjJl
ZjY3MDllMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTIxNCw3ICsyMTQsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgY2FuQ2FjaGVQYWdlKCkgY29uc3QgZmluYWw7CiAgICAgdm9p
ZCBjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoV2ViQ29yZTo6RG9jdW1lbnRMb2Fk
ZXIqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJikgZmluYWw7CiAKLSAgICBSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IGNyZWF0
ZUZyYW1lKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1l
T3duZXJFbGVtZW50JiwgY29uc3QgU3RyaW5nJiByZWZlcnJlcikgZmluYWw7CisgICAgUmVmUHRy
PFdlYkNvcmU6OkZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6
OkhUTUxGcmFtZU93bmVyRWxlbWVudCYpIGZpbmFsOwogCiAgICAgUmVmUHRyPFdlYkNvcmU6Oldp
ZGdldD4gY3JlYXRlUGx1Z2luKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBXZWJDb3JlOjpIVE1M
UGx1Z0luRWxlbWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mLCBjb25zdCBTdHJpbmcmLCBib29sIGxvYWRNYW51YWxseSkgZmluYWw7
CiAgICAgdm9pZCByZWRpcmVjdERhdGFUb1BsdWdpbihXZWJDb3JlOjpXaWRnZXQmKSBmaW5hbDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDcxOTBiOGNiNTAzNDI1OTg4ZWRkMzczNjQw
ODlmY2I5ODEzYThmNjkuLmEyNTVhMWNiMDBiNGUwNGY4ODE5YmNlZjY5MWIxZTY3NDdmN2Y5OWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjA1LDggKzIwNSw3IEBAIHByaXZhdGU6
CiAKICAgICB2b2lkIHNldFRpdGxlKGNvbnN0IFdlYkNvcmU6OlN0cmluZ1dpdGhEaXJlY3Rpb24m
LCBjb25zdCBVUkwmKSBmaW5hbDsKIAotICAgIFJlZlB0cjxXZWJDb3JlOjpGcmFtZT4gY3JlYXRl
RnJhbWUoY29uc3QgVVJMJiwgY29uc3QgV1RGOjpTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkhUTUxG
cmFtZU93bmVyRWxlbWVudCYsCi0gICAgICAgIGNvbnN0IFdURjo6U3RyaW5nJiByZWZlcnJlcikg
ZmluYWw7CisgICAgUmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBXVEY6
OlN0cmluZyYgbmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50JikgZmluYWw7CiAg
ICAgUmVmUHRyPFdlYkNvcmU6OldpZGdldD4gY3JlYXRlUGx1Z2luKGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmLCBXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudCYsIGNvbnN0IFVSTCYsCiAgICAgY29u
c3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBjb25z
dCBXVEY6OlN0cmluZyYsIGJvb2wpIGZpbmFsOwogICAgIHZvaWQgcmVkaXJlY3REYXRhVG9QbHVn
aW4oV2ViQ29yZTo6V2lkZ2V0JikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmlu
ZGV4IDk2YTg4OTE2NzAwN2ZjNjFlNzA5M2U5ZTRiMWVkMGFhMjkxMGFlOTEuLjZkMjljYTBhNmJh
NmQzMDQ5YWRkY2ZlNGZiMTMxNDE4MTE3ZmVkMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lm1tCkBAIC0xNjE4LDggKzE2MTgsNyBAQCBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5D
YWNoZVBhZ2UoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi1SZWZQdHI8V2ViQ29yZTo6
RnJhbWU+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFtZShjb25zdCBVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVsZW1lbnQmIG93bmVy
RWxlbWVudCwKLSAgICBjb25zdCBTdHJpbmcmIHJlZmVycmVyKQorUmVmUHRyPFdlYkNvcmU6OkZy
YW1lPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29uc3QgU3RyaW5nJiBuYW1l
LCBXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVsZW1lbnQmIG93bmVyRWxlbWVudCkKIHsKICAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAgICAgCkBAIC0xNjM5LDEyICsxNjM4LDYgQEAg
UmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUo
Y29uc3QgVVJMJiB1cmwsIGNvbnN0IFMKICAgICBpZiAoIXJlc3VsdC0+cGFnZSgpKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAKLSAgICBjb3JlKG1fd2ViRnJhbWUuZ2V0KCkpLT5sb2FkZXIo
KS5sb2FkVVJMSW50b0NoaWxkRnJhbWUodXJsLCByZWZlcnJlciwgcmVzdWx0LmdldCgpKTsKLQot
ICAgIC8vIFRoZSBmcmFtZSdzIG9ubG9hZCBoYW5kbGVyIG1heSBoYXZlIHJlbW92ZWQgaXQgZnJv
bSB0aGUgZG9jdW1lbnQuCi0gICAgaWYgKCFyZXN1bHQtPnRyZWUoKS5wYXJlbnQoKSkKLSAgICAg
ICAgcmV0dXJuIG51bGxwdHI7Ci0KICAgICByZXR1cm4gcmVzdWx0OwogCiAgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA1Mzli
ZTc3OTMwMTMwY2VkYmI4NDM4NWEyODY1OWU4ZTEwNDRmNjU2Li5mODMyNzA5OTUwMzVmMDBhMWE2
Yjg2OTIzNzk2ZjE3MDQwZGU2NWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBA
IC05ODUsOCArOTg1LDcgQEAgYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuQ2FjaGVQYWdl
KCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUmVmUHRyPEZyYW1lPiBXZWJGcmFtZUxv
YWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50JiBvd25lckVsZW1lbnQsCi0gICAgY29uc3QgU3RyaW5n
JiByZWZlcnJlcikKK1JlZlB0cjxGcmFtZT4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZy
YW1lKGNvbnN0IFN0cmluZyYgbmFtZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50JiBvd25lckVsZW1l
bnQpCiB7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUobV93ZWJGcmFtZSk7CiAgICAgQVNT
RVJUKGNvcmVGcmFtZSk7CkBAIC05OTksMTIgKzk5OCw2IEBAIFJlZlB0cjxGcmFtZT4gV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZyYW1lKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IG5hCiAgICAgY29yZUZyYW1lLT50cmVlKCkuYXBwZW5kQ2hpbGQoKmNoaWxkRnJhbWUpOwogICAg
IGNoaWxkRnJhbWUtPmluaXQoKTsKIAotICAgIGNvcmVGcmFtZS0+bG9hZGVyKCkubG9hZFVSTElu
dG9DaGlsZEZyYW1lKHVybCwgcmVmZXJyZXIsIGNoaWxkRnJhbWUuZ2V0KCkpOwotCi0gICAgLy8g
VGhlIGZyYW1lJ3Mgb25sb2FkIGhhbmRsZXIgbWF5IGhhdmUgcmVtb3ZlZCBpdCBmcm9tIHRoZSBk
b2N1bWVudC4KLSAgICBpZiAoIWNoaWxkRnJhbWUtPnRyZWUoKS5wYXJlbnQoKSkKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0KICAgICByZXR1cm4gY2hpbGRGcmFtZTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmgKaW5kZXggZDNhNzNhNTEzOTFmYzI2ZGEyZmRhOTBhMDg1NTBmZGY2NGYy
ZGUwMS4uYjhlN2M3ZGU0OTNhNTczZDA1YWZjMTVhMGU4ZTY5NzQ4YTExMzdmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oCkBAIC0xNzcsOCArMTc3LDcgQEAgcHVibGljOgogCiAgICAgYm9v
bCBjYW5DYWNoZVBhZ2UoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIFJlZlB0cjxXZWJDb3JlOjpG
cmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgVVJMJiwgY29uc3QgV1RGOjpTdHJpbmcmIG5hbWUsIFdl
YkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCYsCi0gICAgICAgIGNvbnN0IFdURjo6U3RyaW5n
JiByZWZlcnJlcikgb3ZlcnJpZGU7CisgICAgUmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBjcmVhdGVG
cmFtZShjb25zdCBXVEY6OlN0cmluZyYgbmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVt
ZW50Jikgb3ZlcnJpZGU7CiAgICAgUmVmUHRyPFdlYkNvcmU6OldpZGdldD4gY3JlYXRlUGx1Z2lu
KGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudCYsIGNv
bnN0IFVSTCYsIGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBjb25zdCBWZWN0b3I8V1RGOjpT
dHJpbmc+JiwgY29uc3QgV1RGOjpTdHJpbmcmLCBib29sIGxvYWRNYW51YWxseSkgb3ZlcnJpZGU7
CiAgICAgdm9pZCByZWRpcmVjdERhdGFUb1BsdWdpbihXZWJDb3JlOjpXaWRnZXQmKSBvdmVycmlk
ZTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397655</attachid>
            <date>2020-04-27 01:04:19 -0700</date>
            <delta_ts>2020-04-27 02:08:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211051-20200427100418.patch</filename>
            <type>text/plain</type>
            <size>27205</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzc5ZjYzMDQxNWEwNDI2
NDQ5NWE4MzA0MTg3YzU2M2FiNDdjMGZkMC4uZGUyYTI5NTgyNTUxYjg5N2VkYzcwN2Y4NDRkMmE4
ZGQ3MDljMGUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTA0LTI3ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWFrZSBsb2FkVVJMSW50b0NoaWxk
RnJhbWUgcHJpdmF0ZSBhbmQgbm9uLWV4cG9ydGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEwNTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIGxvYWRVUkxJbnRvQ2hpbGRGcmFtZSBwcml2YXRl
IGFuZCBub24tZXhwb3J0ZWQgdG8gcmVkdWNlIHRoZSBhbW91bnQgb2YgcHVibGljIEFQSSBmdW5j
dGlvbnMKKyAgICAgICAgdGhhdCBzdGFydCBsb2Fkcy4gSW4gb3JkZXIgdG8gZG8gdGhpcyBsb2Fk
VVJMSW50b0NoaWxkRnJhbWUgaXMgYmVpbmcgY2FsbGVkIGZyb20gU3ViZnJhbWVMb2FkZXIKKyAg
ICAgICAgYW5kIFN1YmZyYW1lTG9hZGVyIGlzIG1hZGUgYW4gaW5uZXIgY2xhc3Mgb2YgRnJhbWVM
b2FkZXIuIEJlY2F1c2UgdGhpcyBzaW1wbGlmaWVzIGNyZWF0ZUZyYW1lIChhbmQKKyAgICAgICAg
bWFrZXMgY3JlYXRlRnJhbWUgYmVoYXZlIHN0cmljdGx5IGxpa2UgaXRzIG5hbWUpIHVybCBhbmQg
cmVmZXJyZXIgZG8gbm90IGhhdmUgdG8gYmUgcGFzc2VkLgorCisgICAgICAgICogaHRtbC9IVE1M
T2JqZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6
cGFyYW1ldGVyc0ZvclBsdWdpbik6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFtZSk6
CisgICAgICAgICogbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBs
b2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQu
aDoKKyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcik6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OmNsZWFyKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6cmVxdWVzdEZyYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6cmVzb3VyY2VXaWxs
VXNlUGx1Z2luKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRl
cjo6cGx1Z2luSXNMb2FkYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6U3Vi
ZnJhbWVMb2FkZXI6OnJlcXVlc3RQbHVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OlN1YmZyYW1lTG9hZGVyOjpyZXF1ZXN0T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6Y3JlYXRlSmF2YUFwcGxldFdpZGdldCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OmxvYWRPclJlZGlyZWN0
U3ViZnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVy
Ojpsb2FkU3ViZnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OlN1YmZyYW1l
TG9hZGVyOjpzaG91bGRVc2VQbHVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OlN1YmZyYW1lTG9hZGVyOjpsb2FkUGx1Z2luKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyOjpTdWJmcmFtZUxvYWRlcjo6Y29tcGxldGVVUkwgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVyOjpzaG91bGRDb252ZXJ0SW52YWxpZFVSTHNU
b0JsYW5rIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpTdWJmcmFt
ZUxvYWRlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6Y2xl
YXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OnJlcXVlc3RG
cmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6cmVzb3Vy
Y2VXaWxsVXNlUGx1Z2luKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9h
ZGVyOjpwbHVnaW5Jc0xvYWRhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN1YmZy
YW1lTG9hZGVyOjpyZXF1ZXN0UGx1Z2luKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN1
YmZyYW1lTG9hZGVyOjpyZXF1ZXN0T2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlN1YmZyYW1lTG9hZGVyOjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpsb2FkT3JSZWRpcmVjdFN1YmZyYW1lKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpsb2FkU3ViZnJhbWUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OnNob3VsZFVzZVBsdWdp
bik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6bG9hZFBsdWdp
bik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6Y29tcGxldGVV
UkwgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OnNo
b3VsZENvbnZlcnRJbnZhbGlkVVJMc1RvQmxhbmsgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAq
IGxvYWRlci9TdWJmcmFtZUxvYWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2Fk
ZXI6OmNvbnRhaW5zUGx1Z2lucyBjb25zdCk6IERlbGV0ZWQuCisKIDIwMjAtMDQtMjYgIENhdGhp
ZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIGZhc3Qvc2Nyb2xsaW5n
L3Njcm9sbC1iZWhhdmlvci1pbnZhbGlkYXRlLWlmLWRpc2FibGVkLmh0bWwgaXMgYSBmbGFreSBm
YWlsdXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDFjNjYyMTQ1M2M1NDQ3ZTlmMDA4MDIzYzk5ZDU5ZTE3N2I1MGM3
M2EuLjJiYTY3NGM5ZWEyOTIzNjIwYzA5NzdmNDM1OTRiM2I2MGVjZWVkZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMjAtMDQtMjcgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4K
KworICAgICAgICBNYWtlIGxvYWRVUkxJbnRvQ2hpbGRGcmFtZSBwcml2YXRlIGFuZCBub24tZXhw
b3J0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
MTA1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
YXB0IGNyZWF0ZUZyYW1lIHRvIHN0cmljdGx5IGNyZWF0ZSBhIHN1YmZyYW1lIGFuZAorICAgICAg
ICBub3QgbG9hZCBhbnl0aGluZy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxv
YWRlckNsaWVudDo6Y3JlYXRlRnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAyMC0wNC0yNSAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBpbnRlcm5hbCBp
T1MgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZTUwY2ExMzVjMTU2Mzg4
MzhiMjE5NWE1YzE2MGZkYjZiMjc1NjQ4OC4uMzczZmVhYzFmOWEwNGEyNjYwYTY4NmU0ODQyNWJm
ZjY3Mjc1ZDQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIwLTA0LTI3ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWFr
ZSBsb2FkVVJMSW50b0NoaWxkRnJhbWUgcHJpdmF0ZSBhbmQgbm9uLWV4cG9ydGVkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEwNTEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGFwdCBjcmVhdGVGcmFt
ZSB0byBzdHJpY3RseSBjcmVhdGUgYSBzdWJmcmFtZSBhbmQKKyAgICAgICAgbm90IGxvYWQgYW55
dGhpbmcuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgorICAg
ICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZyYW1lKToKKwogMjAyMC0wNC0yNSAg
QWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFBy
ZXBhcmUgdG8gcmVtb3ZlIGF1dG9tYXRpYyBVUkwtPlN0cmluZyBjb252ZXJzaW9uIG9wZXJhdG9y
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IGVjMzBmMjMxMmM1MDBhNTk1Mzk5NWRl
YmE0MzAxY2I0MTZjNzgxMjguLjY5YTU0NGFmZDgwNGZmOGFhN2U0YWI2NjUxMDA2YzZiMDNlODcw
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0w
NC0yNyAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIE1ha2UgbG9hZFVS
TEludG9DaGlsZEZyYW1lIHByaXZhdGUgYW5kIG5vbi1leHBvcnRlZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMDUxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRhcHQgY3JlYXRlRnJhbWUgdG8gc3Ry
aWN0bHkgY3JlYXRlIGEgc3ViZnJhbWUgYW5kCisgICAgICAgIG5vdCBsb2FkIGFueXRoaW5nLgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAg
ICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZyYW1lKToKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDIwLTA0LTI1ICBEYXJpbiBB
ZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIFVSTCB0byB1c2UgU3RyaW5n
VmlldyB3aGVuIHJldHVybmluZyBzdWJzdHJpbmdzIG9mIHRoZSBVUkwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKaW5kZXggOTIxNWM3ZTVhYzNmYWUxODkzYjFmMjg5
Y2MxOTZiN2IxNGVhMjE0Yi4uZGFiOWFmNTAxZmIwM2IzYjhmZDNmYmM3ZTk4ZjkzMzJlMjhlOTc5
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKQEAgLTIwNiw3
ICsyMDYsNyBAQCB2b2lkIEhUTUxPYmplY3RFbGVtZW50OjpwYXJhbWV0ZXJzRm9yUGx1Z2luKFZl
Y3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBWZWN0b3I8UwogICAgIC8vIGlmIHdlIGtub3cgdGhh
dCByZXNvdXJjZSBwb2ludHMgdG8gYSBwbHVnLWluLgogCiAgICAgaWYgKHVybC5pc0VtcHR5KCkg
JiYgIXVybFBhcmFtZXRlci5pc0VtcHR5KCkpIHsKLSAgICAgICAgU3ViZnJhbWVMb2FkZXImIGxv
YWRlciA9IGRvY3VtZW50KCkuZnJhbWUoKS0+bG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKTsKKyAg
ICAgICAgYXV0byYgbG9hZGVyID0gZG9jdW1lbnQoKS5mcmFtZSgpLT5sb2FkZXIoKS5zdWJmcmFt
ZUxvYWRlcigpOwogICAgICAgICBpZiAobG9hZGVyLnJlc291cmNlV2lsbFVzZVBsdWdpbih1cmxQ
YXJhbWV0ZXIsIHNlcnZpY2VUeXBlKSkKICAgICAgICAgICAgIHVybCA9IHVybFBhcmFtZXRlcjsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGU5ODA0ODQx
ZDc0ODNlYjcyNGY3NTQ2NjMwYzZmZGU3YjMxMmE0NTMuLjc5YjBiMzE5MzEwOTk5ZWU5MzhjNDY1
YjUxODM1MTBmNTk1Mjc1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3Bw
CkBAIC01MjEsNyArNTIxLDcgQEAgUmVmPERvY3VtZW50TG9hZGVyPiBFbXB0eUZyYW1lTG9hZGVy
Q2xpZW50OjpjcmVhdGVEb2N1bWVudExvYWRlcihjb25zdCBSZXNvdXJjZVIKICAgICByZXR1cm4g
RG9jdW1lbnRMb2FkZXI6OmNyZWF0ZShyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSk7CiB9CiAKLVJl
ZlB0cjxGcmFtZT4gRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJiwgSFRNTEZyYW1lT3duZXJFbGVtZW50JiwgY29uc3QgU3RyaW5nJikK
K1JlZlB0cjxGcmFtZT4gRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29uc3Qg
U3RyaW5nJiwgSFRNTEZyYW1lT3duZXJFbGVtZW50JikKIHsKICAgICByZXR1cm4gbnVsbHB0cjsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCmlu
ZGV4IGFlZTc3ZTMzZWRmNTI3NWZhNTNkMDI0ZDRiNzliMWQ4NDQxODQ3YTMuLmFiMmUwMjQ3ZmMx
ZDI2ZDU4YzA4ZDkxNjJmOTkxNmRjMmY5ZmNjMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTc1LDcgKzE3NSw3IEBAIGNsYXNzIFdF
QkNPUkVfRVhQT1JUIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJhbWVMb2FkZXJD
bGllbnQgewogICAgIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCgpIGZpbmFsIHsgfQog
ICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luJiwgY29uc3QgVVJM
JikgZmluYWwgeyB9CiAgICAgdm9pZCBkaWREZXRlY3RYU1MoY29uc3QgVVJMJiwgYm9vbCkgZmlu
YWwgeyB9Ci0gICAgUmVmUHRyPEZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBVUkwmLCBjb25zdCBT
dHJpbmcmLCBIVE1MRnJhbWVPd25lckVsZW1lbnQmLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAg
ICBSZWZQdHI8RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0IFN0cmluZyYsIEhUTUxGcmFtZU93bmVy
RWxlbWVudCYpIGZpbmFsOwogICAgIFJlZlB0cjxXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBJ
bnRTaXplJiwgSFRNTFBsdWdJbkVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiwgYm9vbCkgZmluYWw7
CiAgICAgUmVmUHRyPFdpZGdldD4gY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJbnRTaXpl
JiwgSFRNTEFwcGxldEVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmgKaW5kZXggOTI2YzZjYWQ5MjE3NDljYWJjMmU1Y2JjOWUzYTE3MjI0MzVmZjM0OS4uOTZk
MDJlZTM1NmI4MzA4YjI0YzM0ODRlMGNkMzM3OGRhZmFhYjc0ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmgKQEAgLTY5LDYgKzY5LDcgQEAgY2xhc3MgRG9jdW1lbnRMb2FkZXI7CiBj
bGFzcyBFdmVudDsKIGNsYXNzIEZvcm1TdGF0ZTsKIGNsYXNzIEZvcm1TdWJtaXNzaW9uOworY2xh
c3MgRnJhbWU7CiBjbGFzcyBGcmFtZUxvYWRSZXF1ZXN0OwogY2xhc3MgRnJhbWVMb2FkZXJDbGll
bnQ7CiBjbGFzcyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0OwpAQCAtODQsNyArODUsNiBAQCBjbGFz
cyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogY2xhc3MgU2VyaWFs
aXplZFNjcmlwdFZhbHVlOwogY2xhc3MgU2hhcmVkQnVmZmVyOwotY2xhc3MgU3ViZnJhbWVMb2Fk
ZXI7CiBjbGFzcyBTdWJzdGl0dXRlRGF0YTsKIAogZW51bSBjbGFzcyBOZXdMb2FkSW5Qcm9ncmVz
cyA6IGJvb2w7CkBAIC0xMTUsMTMgKzExNSwxNCBAQCBwdWJsaWM6CiAgICAgUG9saWN5Q2hlY2tl
ciYgcG9saWN5Q2hlY2tlcigpIGNvbnN0IHsgcmV0dXJuICptX3BvbGljeUNoZWNrZXI7IH0KICAg
ICBIaXN0b3J5Q29udHJvbGxlciYgaGlzdG9yeSgpIGNvbnN0IHsgcmV0dXJuICptX2hpc3Rvcnk7
IH0KICAgICBSZXNvdXJjZUxvYWROb3RpZmllciYgbm90aWZpZXIoKSBjb25zdCB7IHJldHVybiBt
X25vdGlmaWVyOyB9CisKKyAgICBjbGFzcyBTdWJmcmFtZUxvYWRlcjsKICAgICBTdWJmcmFtZUxv
YWRlciYgc3ViZnJhbWVMb2FkZXIoKSBjb25zdCB7IHJldHVybiAqbV9zdWJmcmFtZUxvYWRlcjsg
fQogICAgIE1peGVkQ29udGVudENoZWNrZXImIG1peGVkQ29udGVudENoZWNrZXIoKSBjb25zdCB7
IHJldHVybiBtX21peGVkQ29udGVudENoZWNrZXI7IH0KIAogICAgIHZvaWQgc2V0dXBGb3JSZXBs
YWNlKCk7CiAKICAgICAvLyBGSVhNRTogVGhlc2UgYXJlIGFsbCBmdW5jdGlvbnMgd2hpY2ggc3Rh
cnQgbG9hZHMuIFdlIGhhdmUgdG9vIG1hbnkuCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBsb2Fk
VVJMSW50b0NoaWxkRnJhbWUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcmVyLCBGcmFt
ZSopOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbG9hZEZyYW1lUmVxdWVzdChGcmFtZUxvYWRS
ZXF1ZXN0JiYsIEV2ZW50KiwgUmVmUHRyPEZvcm1TdGF0ZT4mJiwgT3B0aW9uYWw8QWRDbGlja0F0
dHJpYnV0aW9uPiYmID0gV1RGOjpudWxsb3B0KTsgLy8gQ2FsbGVkIGJ5IHN1Ym1pdEZvcm0sIGNh
bGxzIGxvYWRQb3N0UmVxdWVzdCBhbmQgbG9hZFVSTC4KIAogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgbG9hZChGcmFtZUxvYWRSZXF1ZXN0JiYpOwpAQCAtNDI1LDYgKzQyNiw4IEBAIHByaXZhdGU6
CiAgICAgZW51bSBjbGFzcyBMb2FkQ29udGludWluZ1N0YXRlIDogdWludDhfdCB7IE5vdENvbnRp
bnVpbmcsIENvbnRpbnVpbmdXaXRoUmVxdWVzdCwgQ29udGludWluZ1dpdGhIaXN0b3J5SXRlbSB9
OwogICAgIGJvb2wgc2hvdWxkVHJlYXRDdXJyZW50TG9hZEFzQ29udGludWluZ0xvYWQoKSBjb25z
dCB7IHJldHVybiBtX2N1cnJlbnRMb2FkQ29udGludWluZ1N0YXRlICE9IExvYWRDb250aW51aW5n
U3RhdGU6Ok5vdENvbnRpbnVpbmc7IH0KIAorICAgIHZvaWQgbG9hZFVSTEludG9DaGlsZEZyYW1l
KGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJlciwgRnJhbWUqKTsKKwogICAgIEZyYW1l
JiBtX2ZyYW1lOwogICAgIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4gbV9jbGllbnQ7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggYjYyNTNlN2Fh
ZjkzMWEyZTJkNjNjZWFiN2VkNGQ0NjljMDU5ZTJiOS4uMWU1NDI1ZTk0Nzc4NWYxOGJlOGI1OTk0
OGU4OTRhOGRmODMyYzllNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xp
ZW50LmgKQEAgLTI4Niw3ICsyODYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGNhbkNh
Y2hlUGFnZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29udmVydE1haW5SZXNvdXJj
ZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpID0gMDsKIAotICAgIHZpcnR1YWwgUmVmUHRyPEZyYW1l
PiBjcmVhdGVGcmFtZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIG5hbWUsIEhUTUxGcmFtZU93
bmVyRWxlbWVudCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIpID0gMDsKKyAgICB2aXJ0dWFsIFJl
ZlB0cjxGcmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgU3RyaW5nJiBuYW1lLCBIVE1MRnJhbWVPd25l
ckVsZW1lbnQmKSA9IDA7CiAgICAgdmlydHVhbCBSZWZQdHI8V2lkZ2V0PiBjcmVhdGVQbHVnaW4o
Y29uc3QgSW50U2l6ZSYsIEhUTUxQbHVnSW5FbGVtZW50JiwgY29uc3QgVVJMJiwgY29uc3QgVmVj
dG9yPFN0cmluZz4mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFN0cmluZyYsIGJvb2wg
bG9hZE1hbnVhbGx5KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2lu
KFdpZGdldCYpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZy
YW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAK
aW5kZXggMWJkM2U0MmQ0NjU1NTgzYjZkNmUyZTcxMjEwYzA2Y2FiOWUxMGE5ZS4uNzU4NGE0ZTMx
MzQ0OWIyZTY4OWU0MGI2NjI0YTNlMDM2OWUwYzNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
U3ViZnJhbWVMb2FkZXIuY3BwCkBAIC02MiwxOCArNjIsMTcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotU3ViZnJhbWVMb2FkZXI6OlN1
YmZyYW1lTG9hZGVyKEZyYW1lJiBmcmFtZSkKLSAgICA6IG1fY29udGFpbnNQbHVnaW5zKGZhbHNl
KQotICAgICwgbV9mcmFtZShmcmFtZSkKK0ZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6U3Vi
ZnJhbWVMb2FkZXIoRnJhbWUmIGZyYW1lKQorICAgIDogbV9mcmFtZShmcmFtZSkKIHsKIH0KIAot
dm9pZCBTdWJmcmFtZUxvYWRlcjo6Y2xlYXIoKQordm9pZCBGcmFtZUxvYWRlcjo6U3ViZnJhbWVM
b2FkZXI6OmNsZWFyKCkKIHsKICAgICBtX2NvbnRhaW5zUGx1Z2lucyA9IGZhbHNlOwogfQogCi1i
b29sIFN1YmZyYW1lTG9hZGVyOjpyZXF1ZXN0RnJhbWUoSFRNTEZyYW1lT3duZXJFbGVtZW50JiBv
d25lckVsZW1lbnQsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBBdG9tU3RyaW5nJiBm
cmFtZU5hbWUsIExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxv
Y2tCYWNrRm9yd2FyZExpc3QpCitib29sIEZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6cmVx
dWVzdEZyYW1lKEhUTUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXJFbGVtZW50LCBjb25zdCBTdHJp
bmcmIHVybFN0cmluZywgY29uc3QgQXRvbVN0cmluZyYgZnJhbWVOYW1lLCBMb2NrSGlzdG9yeSBs
b2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0KQogewog
ICAgIC8vIFN1cHBvcnQgZm9yIDxmcmFtZSBzcmM9ImphdmFzY3JpcHQ6c3RyaW5nIj4KICAgICBV
Ukwgc2NyaXB0VVJMOwpAQCAtMTEyLDcgKzExMSw3IEBAIGJvb2wgU3ViZnJhbWVMb2FkZXI6OnJl
cXVlc3RGcmFtZShIVE1MRnJhbWVPd25lckVsZW1lbnQmIG93bmVyRWxlbWVudCwgY29uc3QgU3Ry
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAgICAgCi1ib29sIFN1YmZyYW1lTG9hZGVyOjpyZXNvdXJj
ZVdpbGxVc2VQbHVnaW4oY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUp
Citib29sIEZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6cmVzb3VyY2VXaWxsVXNlUGx1Z2lu
KGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQogewogICAgIFVSTCBj
b21wbGV0ZWRVUkw7CiAgICAgaWYgKCF1cmwuaXNFbXB0eSgpKQpAQCAtMTIyLDcgKzEyMSw3IEBA
IGJvb2wgU3ViZnJhbWVMb2FkZXI6OnJlc291cmNlV2lsbFVzZVBsdWdpbihjb25zdCBTdHJpbmcm
IHVybCwgY29uc3QgU3RyaW5nJiBtaW1lCiAgICAgcmV0dXJuIHNob3VsZFVzZVBsdWdpbihjb21w
bGV0ZWRVUkwsIG1pbWVUeXBlLCBmYWxzZSwgdXNlRmFsbGJhY2spOwogfQogCi1ib29sIFN1YmZy
YW1lTG9hZGVyOjpwbHVnaW5Jc0xvYWRhYmxlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IG1pbWVUeXBlKQorYm9vbCBGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OnBsdWdpbklzTG9h
ZGFibGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCiB7CiAgICAgYXV0
byogZG9jdW1lbnQgPSBtX2ZyYW1lLmRvY3VtZW50KCk7CiAKQEAgLTE0OSw3ICsxNDgsNyBAQCBi
b29sIFN1YmZyYW1lTG9hZGVyOjpwbHVnaW5Jc0xvYWRhYmxlKGNvbnN0IFVSTCYgdXJsLCBjb25z
dCBTdHJpbmcmIG1pbWVUeXBlKQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFN1YmZyYW1l
TG9hZGVyOjpyZXF1ZXN0UGx1Z2luKEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQmIG93bmVyRWxlbWVu
dCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMsIGJv
b2wgdXNlRmFsbGJhY2spCitib29sIEZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6cmVxdWVz
dFBsdWdpbihIVE1MUGx1Z0luSW1hZ2VFbGVtZW50JiBvd25lckVsZW1lbnQsIGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1O
YW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzLCBib29sIHVzZUZhbGxiYWNr
KQogewogICAgIC8vIEFwcGxpY2F0aW9uIHBsdWctaW5zIGFyZSBwbHVnLWlucyBpbXBsZW1lbnRl
ZCBieSB0aGUgdXNlciBhZ2VudCwgZm9yIGV4YW1wbGUgUXQgcGx1Zy1pbnMsCiAgICAgLy8gYXMg
b3Bwb3NlZCB0byB0aGlyZC1wYXJ0eSBjb2RlIHN1Y2ggYXMgRmxhc2guIFRoZSB1c2VyIGFnZW50
IGRlY2lkZXMgd2hldGhlciBvciBub3QgdGhleSBhcmUKQEAgLTIxOCw3ICsyMTcsNyBAQCBzdGF0
aWMgdm9pZCBsb2dQbHVnaW5SZXF1ZXN0KFBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIGNvbnN0IFN0cmluZyYgdQogICAgIHBhZ2UtPnNhd1BsdWdpbihkZXNjcmlwdGlvbik7CiB9
CiAKLWJvb2wgU3ViZnJhbWVMb2FkZXI6OnJlcXVlc3RPYmplY3QoSFRNTFBsdWdJbkltYWdlRWxl
bWVudCYgb3duZXJFbGVtZW50LCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgQXRvbVN0cmluZyYg
ZnJhbWVOYW1lLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
cGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKQorYm9vbCBGcmFt
ZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OnJlcXVlc3RPYmplY3QoSFRNTFBsdWdJbkltYWdlRWxl
bWVudCYgb3duZXJFbGVtZW50LCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgQXRvbVN0cmluZyYg
ZnJhbWVOYW1lLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
cGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKQogewogICAgIGlm
ICh1cmwuaXNFbXB0eSgpICYmIG1pbWVUeXBlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwpAQCAtMjQ2LDcgKzI0NSw3IEBAIGJvb2wgU3ViZnJhbWVMb2FkZXI6OnJlcXVlc3RPYmpl
Y3QoSFRNTFBsdWdJbkltYWdlRWxlbWVudCYgb3duZXJFbGVtZW50LCBjb25zdCBTCiAgICAgcmV0
dXJuIGxvYWRPclJlZGlyZWN0U3ViZnJhbWUob3duZXJFbGVtZW50LCBjb21wbGV0ZWRVUkwsIGZy
YW1lTmFtZSwgTG9ja0hpc3Rvcnk6OlllcywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6WWVzKTsKIH0K
IAotUmVmUHRyPFdpZGdldD4gU3ViZnJhbWVMb2FkZXI6OmNyZWF0ZUphdmFBcHBsZXRXaWRnZXQo
Y29uc3QgSW50U2l6ZSYgc2l6ZSwgSFRNTEFwcGxldEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1
ZXMpCitSZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OmNyZWF0ZUph
dmFBcHBsZXRXaWRnZXQoY29uc3QgSW50U2l6ZSYgc2l6ZSwgSFRNTEFwcGxldEVsZW1lbnQmIGVs
ZW1lbnQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgcGFyYW1WYWx1ZXMpCiB7CiAgICAgU3RyaW5nIGJhc2VVUkxTdHJpbmc7CiAgICAgU3Ry
aW5nIGNvZGVCYXNlVVJMU3RyaW5nOwpAQCAtMjk2LDcgKzI5NSw3IEBAIFJlZlB0cjxXaWRnZXQ+
IFN1YmZyYW1lTG9hZGVyOjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IEludFNpemUmIHNp
emUsIEhUTUxBCiAgICAgcmV0dXJuIHdpZGdldDsKIH0KIAotRnJhbWUqIFN1YmZyYW1lTG9hZGVy
Ojpsb2FkT3JSZWRpcmVjdFN1YmZyYW1lKEhUTUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXJFbGVt
ZW50LCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IEF0b21TdHJpbmcmIGZyYW1lTmFtZSwg
TG9ja0hpc3RvcnkgbG9ja0hpc3RvcnksIExvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3
YXJkTGlzdCkKK0ZyYW1lKiBGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OmxvYWRPclJlZGly
ZWN0U3ViZnJhbWUoSFRNTEZyYW1lT3duZXJFbGVtZW50JiBvd25lckVsZW1lbnQsIGNvbnN0IFVS
TCYgcmVxdWVzdFVSTCwgY29uc3QgQXRvbVN0cmluZyYgZnJhbWVOYW1lLCBMb2NrSGlzdG9yeSBs
b2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0KQogewog
ICAgIGF1dG8mIGluaXRpYXRpbmdEb2N1bWVudCA9IG93bmVyRWxlbWVudC5kb2N1bWVudCgpOwog
CkBAIC0zMTYsNyArMzE1LDcgQEAgRnJhbWUqIFN1YmZyYW1lTG9hZGVyOjpsb2FkT3JSZWRpcmVj
dFN1YmZyYW1lKEhUTUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXJFbGVtZW4KICAgICByZXR1cm4g
b3duZXJFbGVtZW50LmNvbnRlbnRGcmFtZSgpOwogfQogCi1SZWZQdHI8RnJhbWU+IFN1YmZyYW1l
TG9hZGVyOjpsb2FkU3ViZnJhbWUoSFRNTEZyYW1lT3duZXJFbGVtZW50JiBvd25lckVsZW1lbnQs
IGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgcmVmZXJy
ZXIpCitSZWZQdHI8RnJhbWU+IEZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6bG9hZFN1YmZy
YW1lKEhUTUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXJFbGVtZW50LCBjb25zdCBVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKQogewogICAgIFJlZjxG
cmFtZT4gcHJvdGVjdChtX2ZyYW1lKTsKICAgICBhdXRvIGRvY3VtZW50ID0gbWFrZVJlZihvd25l
ckVsZW1lbnQuZG9jdW1lbnQoKSk7CkBAIC0zMzIsMTkgKzMzMSwyNSBAQCBSZWZQdHI8RnJhbWU+
IFN1YmZyYW1lTG9hZGVyOjpsb2FkU3ViZnJhbWUoSFRNTEZyYW1lT3duZXJFbGVtZW50JiBvd25l
ckVsZW1lbnQsCiAgICAgaWYgKCFtX2ZyYW1lLnBhZ2UoKSB8fCBtX2ZyYW1lLnBhZ2UoKS0+c3Vi
ZnJhbWVDb3VudCgpID49IFBhZ2U6Om1heE51bWJlck9mRnJhbWVzKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAorICAgIC8vIFByZXZlbnQgaW5pdGlhbCBlbXB0eSBkb2N1bWVudCBsb2FkIGZy
b20gdHJpZ2dlcmluZyBsb2FkIGV2ZW50cy4KKyAgICBkb2N1bWVudC0+aW5jcmVtZW50TG9hZEV2
ZW50RGVsYXlDb3VudCgpOworCisgICAgYXV0byBmcmFtZSA9IG1fZnJhbWUubG9hZGVyKCkuY2xp
ZW50KCkuY3JlYXRlRnJhbWUobmFtZSwgb3duZXJFbGVtZW50KTsKKyAgICBpZiAoIWZyYW1lKSAg
eworICAgICAgICBtX2ZyYW1lLmxvYWRlcigpLmNoZWNrQ2FsbEltcGxpY2l0Q2xvc2UoKTsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQogICAgIFJlZmVycmVyUG9saWN5IHBvbGljeSA9
IG93bmVyRWxlbWVudC5yZWZlcnJlclBvbGljeSgpOwogICAgIGlmIChwb2xpY3kgPT0gUmVmZXJy
ZXJQb2xpY3k6OkVtcHR5U3RyaW5nKQogICAgICAgICBwb2xpY3kgPSBkb2N1bWVudC0+cmVmZXJy
ZXJQb2xpY3koKTsKICAgICBTdHJpbmcgcmVmZXJyZXJUb1VzZSA9IFNlY3VyaXR5UG9saWN5Ojpn
ZW5lcmF0ZVJlZmVycmVySGVhZGVyKHBvbGljeSwgdXJsLCByZWZlcnJlcik7CiAKLSAgICAvLyBQ
cmV2ZW50IGluaXRpYWwgZW1wdHkgZG9jdW1lbnQgbG9hZCBmcm9tIHRyaWdnZXJpbmcgbG9hZCBl
dmVudHMuCi0gICAgZG9jdW1lbnQtPmluY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKLQot
ICAgIGF1dG8gZnJhbWUgPSBtX2ZyYW1lLmxvYWRlcigpLmNsaWVudCgpLmNyZWF0ZUZyYW1lKHVy
bCwgbmFtZSwgb3duZXJFbGVtZW50LCByZWZlcnJlclRvVXNlKTsKKyAgICBtX2ZyYW1lLmxvYWRl
cigpLmxvYWRVUkxJbnRvQ2hpbGRGcmFtZSh1cmwsIHJlZmVycmVyVG9Vc2UsIGZyYW1lLmdldCgp
KTsKIAogICAgIGRvY3VtZW50LT5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CiAKLSAg
ICBpZiAoIWZyYW1lKSAgeworICAgIC8vIFRoZSBmcmFtZSdzIG9ubG9hZCBoYW5kbGVyIG1heSBo
YXZlIHJlbW92ZWQgaXQgZnJvbSB0aGUgZG9jdW1lbnQuCisgICAgaWYgKCFmcmFtZSB8fCAhZnJh
bWUtPnRyZWUoKS5wYXJlbnQoKSkgewogICAgICAgICBtX2ZyYW1lLmxvYWRlcigpLmNoZWNrQ2Fs
bEltcGxpY2l0Q2xvc2UoKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpAQCAtMzgy
LDcgKzM4Nyw3IEBAIFJlZlB0cjxGcmFtZT4gU3ViZnJhbWVMb2FkZXI6OmxvYWRTdWJmcmFtZShI
VE1MRnJhbWVPd25lckVsZW1lbnQmIG93bmVyRWxlbWVudCwKICAgICByZXR1cm4gZnJhbWU7CiB9
CiAKLWJvb2wgU3ViZnJhbWVMb2FkZXI6OnNob3VsZFVzZVBsdWdpbihjb25zdCBVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBoYXNGYWxsYmFjaywgYm9vbCYgdXNlRmFsbGJh
Y2spCitib29sIEZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6c2hvdWxkVXNlUGx1Z2luKGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGhhc0ZhbGxiYWNrLCBi
b29sJiB1c2VGYWxsYmFjaykKIHsKICAgICBpZiAobV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5z
aG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudChtaW1lVHlwZSkpIHsKICAgICAgICAgdXNlRmFs
bGJhY2sgPSBmYWxzZTsKQEAgLTM5Nyw3ICs0MDIsNyBAQCBib29sIFN1YmZyYW1lTG9hZGVyOjpz
aG91bGRVc2VQbHVnaW4oY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJv
bwogICAgIHJldHVybiBvYmplY3RUeXBlID09IE9iamVjdENvbnRlbnRUeXBlOjpOb25lIHx8IG9i
amVjdFR5cGUgPT0gT2JqZWN0Q29udGVudFR5cGU6OlBsdWdJbjsKIH0KIAotYm9vbCBTdWJmcmFt
ZUxvYWRlcjo6bG9hZFBsdWdpbihIVE1MUGx1Z0luSW1hZ2VFbGVtZW50JiBwbHVnaW5FbGVtZW50
LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgVmVjdG9yPFN0
cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcywgYm9v
bCB1c2VGYWxsYmFjaykKK2Jvb2wgRnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVyOjpsb2FkUGx1
Z2luKEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQmIHBsdWdpbkVsZW1lbnQsIGNvbnN0IFVSTCYgdXJs
LCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1l
cywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzLCBib29sIHVzZUZhbGxiYWNrKQog
ewogICAgIGlmICh1c2VGYWxsYmFjaykKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDQwLDEz
ICs0NDUsMTMgQEAgYm9vbCBTdWJmcmFtZUxvYWRlcjo6bG9hZFBsdWdpbihIVE1MUGx1Z0luSW1h
Z2VFbGVtZW50JiBwbHVnaW5FbGVtZW50LCBjb25zdCBVUkwKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotVVJMIFN1YmZyYW1lTG9hZGVyOjpjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmIHVybCkgY29u
c3QKK1VSTCBGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OmNvbXBsZXRlVVJMKGNvbnN0IFN0
cmluZyYgdXJsKSBjb25zdAogewogICAgIEFTU0VSVChtX2ZyYW1lLmRvY3VtZW50KCkpOwogICAg
IHJldHVybiBtX2ZyYW1lLmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHVybCk7CiB9CiAKLWJvb2wg
U3ViZnJhbWVMb2FkZXI6OnNob3VsZENvbnZlcnRJbnZhbGlkVVJMc1RvQmxhbmsoKSBjb25zdAor
Ym9vbCBGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OnNob3VsZENvbnZlcnRJbnZhbGlkVVJM
c1RvQmxhbmsoKSBjb25zdAogewogICAgIHJldHVybiBtX2ZyYW1lLnNldHRpbmdzKCkuc2hvdWxk
Q29udmVydEludmFsaWRVUkxzVG9CbGFuaygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJh
bWVMb2FkZXIuaAppbmRleCA0NjUzZWExNzgyNDQ2ZjFjNGMyZmY4ODcyYmRiOTg2ZDAyYTYyMDY2
Li5hMmNlOWI5NjAwNzY1ZTQyNjE4YzJlNmI0NDA4ZjA5ZjM2MzA3MTUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuaApAQCAtMzAsNyArMzAsNyBAQAogCiAjcHJhZ21hIG9u
Y2UKIAotI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRl
ci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC00OCw3ICs0OCw3IEBAIGNs
YXNzIEludFNpemU7CiBjbGFzcyBXaWRnZXQ7CiAKIC8vIFRoaXMgaXMgYSBzbGlnaHQgbWlzbm9t
ZXIuIEl0IGhhbmRsZXMgdGhlIGhpZ2hlciBsZXZlbCBsb2dpYyBvZiBsb2FkaW5nIGJvdGggc3Vi
ZnJhbWVzIGFuZCBwbHVnaW5zLgotY2xhc3MgU3ViZnJhbWVMb2FkZXIgeworY2xhc3MgRnJhbWVM
b2FkZXI6OlN1YmZyYW1lTG9hZGVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTdWJmcmFt
ZUxvYWRlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIGV4cGxpY2l0
IFN1YmZyYW1lTG9hZGVyKEZyYW1lJik7CkBAIC03OCw3ICs3OCw3IEBAIHByaXZhdGU6CiAKICAg
ICBib29sIHNob3VsZENvbnZlcnRJbnZhbGlkVVJMc1RvQmxhbmsoKSBjb25zdDsKIAotICAgIGJv
b2wgbV9jb250YWluc1BsdWdpbnM7CisgICAgYm9vbCBtX2NvbnRhaW5zUGx1Z2lucyB7IGZhbHNl
IH07CiAgICAgRnJhbWUmIG1fZnJhbWU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcAppbmRleCA5NmE1ZDlkYTI4ZjdjNTIwYjE3ZDExZDk2MjkyNmZmMGYzZWE2NmZlLi40OGVh
NDY4MmMwOTQ1YTQwOTA4MWFiMDE4MTQxZTg2NTNlZWRiZGE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKQEAgLTE1NzEsOCArMTU3MSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChEb2N1bWVudExvYWRlciAq
ZG9jCiAgICAgbV9mcmFtZS0+Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKGRvY3Vt
ZW50TG9hZGVyLCByZXF1ZXN0LCByZXNwb25zZSk7CiB9CiAKLVJlZlB0cjxGcmFtZT4gV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZyYW1lKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IG5hbWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXJFbGVtZW50LAotICAgIGNvbnN0IFN0
cmluZyYgcmVmZXJyZXIpCitSZWZQdHI8RnJhbWU+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVh
dGVGcmFtZShjb25zdCBTdHJpbmcmIG5hbWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXJF
bGVtZW50KQogewogICAgIGF1dG8qIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CiAKQEAgLTE1
ODUsMTUgKzE1ODQsNiBAQCBSZWZQdHI8RnJhbWU+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVh
dGVGcmFtZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBuYQogICAgIGlmICghY29yZVN1
YmZyYW1lLT5wYWdlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgbV9mcmFtZS0+
Y29yZUZyYW1lKCktPmxvYWRlcigpLmxvYWRVUkxJbnRvQ2hpbGRGcmFtZSh1cmwsIHJlZmVycmVy
LCBjb3JlU3ViZnJhbWUpOwotCi0gICAgLy8gVGhlIGZyYW1lJ3Mgb25sb2FkIGhhbmRsZXIgbWF5
IGhhdmUgcmVtb3ZlZCBpdCBmcm9tIHRoZSBkb2N1bWVudC4KLSAgICBpZiAoIXN1YmZyYW1lLT5j
b3JlRnJhbWUoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgQVNTRVJUKHN1YmZyYW1l
LT5jb3JlRnJhbWUoKSA9PSBjb3JlU3ViZnJhbWUpOwotICAgIGlmICghY29yZVN1YmZyYW1lLT50
cmVlKCkucGFyZW50KCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCiAgICAgcmV0dXJuIGNv
cmVTdWJmcmFtZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBkYjI3Yjc3
ZTNlMmVmOWE0NzU5MzkxNWU4ZjVhZTA0ZDQ5NWQ0YWJkLi4wZjhlYjA5M2ZmNzZlNTc3MzQwNTZl
NjNjZTM3NjdiMmVmNjcwOWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjE0
LDcgKzIxNCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBjYW5DYWNoZVBhZ2UoKSBjb25zdCBmaW5h
bDsKICAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChXZWJDb3JlOjpE
b2N1bWVudExvYWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBmaW5hbDsKIAotICAgIFJlZlB0cjxXZWJDb3JlOjpG
cmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3Jl
OjpIVE1MRnJhbWVPd25lckVsZW1lbnQmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKSBmaW5hbDsK
KyAgICBSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0IFN0cmluZyYgbmFt
ZSwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50JikgZmluYWw7CiAKICAgICBSZWZQdHI8
V2ViQ29yZTo6V2lkZ2V0PiBjcmVhdGVQbHVnaW4oY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIFdl
YkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50JiwgY29uc3QgVVJMJiwgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFN0cmluZyYsIGJvb2wgbG9hZE1hbnVh
bGx5KSBmaW5hbDsKICAgICB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2luKFdlYkNvcmU6OldpZGdl
dCYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggNzE5MGI4Y2I1MDM0MjU5
ODhlZGQzNzM2NDA4OWZjYjk4MTNhOGY2OS4uYTI1NWExY2IwMGI0ZTA0Zjg4MTliY2VmNjkxYjFl
Njc0N2Y3Zjk5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yMDUsOCArMjA1LDcg
QEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2V0VGl0bGUoY29uc3QgV2ViQ29yZTo6U3RyaW5nV2l0
aERpcmVjdGlvbiYsIGNvbnN0IFVSTCYpIGZpbmFsOwogCi0gICAgUmVmUHRyPFdlYkNvcmU6OkZy
YW1lPiBjcmVhdGVGcmFtZShjb25zdCBVUkwmLCBjb25zdCBXVEY6OlN0cmluZyYgbmFtZSwgV2Vi
Q29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50JiwKLSAgICAgICAgY29uc3QgV1RGOjpTdHJpbmcm
IHJlZmVycmVyKSBmaW5hbDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IGNyZWF0ZUZyYW1l
KGNvbnN0IFdURjo6U3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVsZW1lbnQm
KSBmaW5hbDsKICAgICBSZWZQdHI8V2ViQ29yZTo6V2lkZ2V0PiBjcmVhdGVQbHVnaW4oY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYsIFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50JiwgY29uc3QgVVJM
JiwKICAgICBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFdURjo6U3Ry
aW5nPiYsIGNvbnN0IFdURjo6U3RyaW5nJiwgYm9vbCkgZmluYWw7CiAgICAgdm9pZCByZWRpcmVj
dERhdGFUb1BsdWdpbihXZWJDb3JlOjpXaWRnZXQmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQubW0KaW5kZXggOTZhODg5MTY3MDA3ZmM2MWU3MDkzZTllNGIxZWQwYWEyOTEwYWU5MS4u
NmQyOWNhMGE2YmE2ZDMwNDlhZGRjZmU0ZmIxMzE0MTgxMTdmZWQyOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQubW0KQEAgLTE2MTgsOCArMTYxOCw3IEBAIGJvb2wgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmNhbkNhY2hlUGFnZSgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVJlZlB0
cjxXZWJDb3JlOjpGcmFtZT4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZyYW1lKGNvbnN0
IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxl
bWVudCYgb3duZXJFbGVtZW50LAotICAgIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIpCitSZWZQdHI8
V2ViQ29yZTo6RnJhbWU+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFtZShjb25zdCBT
dHJpbmcmIG5hbWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXJFbGVtZW50
KQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKICAgICAKQEAgLTE2MzksMTIg
KzE2MzgsNiBAQCBSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpj
cmVhdGVGcmFtZShjb25zdCBVUkwmIHVybCwgY29uc3QgUwogICAgIGlmICghcmVzdWx0LT5wYWdl
KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogIAotICAgIGNvcmUobV93ZWJGcmFtZS5nZXQo
KSktPmxvYWRlcigpLmxvYWRVUkxJbnRvQ2hpbGRGcmFtZSh1cmwsIHJlZmVycmVyLCByZXN1bHQu
Z2V0KCkpOwotCi0gICAgLy8gVGhlIGZyYW1lJ3Mgb25sb2FkIGhhbmRsZXIgbWF5IGhhdmUgcmVt
b3ZlZCBpdCBmcm9tIHRoZSBkb2N1bWVudC4KLSAgICBpZiAoIXJlc3VsdC0+dHJlZSgpLnBhcmVu
dCgpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQogICAgIHJldHVybiByZXN1bHQ7CiAKICAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CmluZGV4IDUzOWJlNzc5MzAxMzBjZWRiYjg0Mzg1YTI4NjU5ZThlMTA0NGY2NTYuLmY4MzI3MDk5
NTAzNWYwMGExYTZiODY5MjM3OTZmMTcwNDBkZTY1YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAKQEAgLTk4NSw4ICs5ODUsNyBAQCBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpj
YW5DYWNoZVBhZ2UoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi1SZWZQdHI8RnJhbWU+
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFtZShjb25zdCBVUkwmIHVybCwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQmIG93bmVyRWxlbWVudCwKLSAgICBj
b25zdCBTdHJpbmcmIHJlZmVycmVyKQorUmVmUHRyPEZyYW1lPiBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6Y3JlYXRlRnJhbWUoY29uc3QgU3RyaW5nJiBuYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQm
IG93bmVyRWxlbWVudCkKIHsKICAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShtX3dlYkZyYW1l
KTsKICAgICBBU1NFUlQoY29yZUZyYW1lKTsKQEAgLTk5OSwxMiArOTk4LDYgQEAgUmVmUHRyPEZy
YW1lPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgbmEKICAgICBjb3JlRnJhbWUtPnRyZWUoKS5hcHBlbmRDaGlsZCgqY2hpbGRG
cmFtZSk7CiAgICAgY2hpbGRGcmFtZS0+aW5pdCgpOwogCi0gICAgY29yZUZyYW1lLT5sb2FkZXIo
KS5sb2FkVVJMSW50b0NoaWxkRnJhbWUodXJsLCByZWZlcnJlciwgY2hpbGRGcmFtZS5nZXQoKSk7
Ci0KLSAgICAvLyBUaGUgZnJhbWUncyBvbmxvYWQgaGFuZGxlciBtYXkgaGF2ZSByZW1vdmVkIGl0
IGZyb20gdGhlIGRvY3VtZW50LgotICAgIGlmICghY2hpbGRGcmFtZS0+dHJlZSgpLnBhcmVudCgp
KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQogICAgIHJldHVybiBjaGlsZEZyYW1lOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBkM2E3M2E1MTM5MWZjMjZkYTJmZGE5MGEw
ODU1MGZkZjY0ZjJkZTAxLi5iOGU3YzdkZTQ5M2E1NzNkMDVhZmMxNWEwZThlNjk3NDhhMTEzN2Y2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTE3Nyw4ICsxNzcsNyBAQCBwdWJsaWM6
CiAKICAgICBib29sIGNhbkNhY2hlUGFnZSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgUmVmUHRy
PFdlYkNvcmU6OkZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBVUkwmLCBjb25zdCBXVEY6OlN0cmlu
ZyYgbmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50JiwKLSAgICAgICAgY29uc3Qg
V1RGOjpTdHJpbmcmIHJlZmVycmVyKSBvdmVycmlkZTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6RnJh
bWU+IGNyZWF0ZUZyYW1lKGNvbnN0IFdURjo6U3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpIVE1MRnJh
bWVPd25lckVsZW1lbnQmKSBvdmVycmlkZTsKICAgICBSZWZQdHI8V2ViQ29yZTo6V2lkZ2V0PiBj
cmVhdGVQbHVnaW4oY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIFdlYkNvcmU6OkhUTUxQbHVnSW5F
bGVtZW50JiwgY29uc3QgVVJMJiwgY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIGNvbnN0IFZl
Y3RvcjxXVEY6OlN0cmluZz4mLCBjb25zdCBXVEY6OlN0cmluZyYsIGJvb2wgbG9hZE1hbnVhbGx5
KSBvdmVycmlkZTsKICAgICB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2luKFdlYkNvcmU6OldpZGdl
dCYpIG92ZXJyaWRlOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397661</attachid>
            <date>2020-04-27 02:08:45 -0700</date>
            <delta_ts>2020-04-27 05:23:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211051-20200427110844.patch</filename>
            <type>text/plain</type>
            <size>27193</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzc5ZjYzMDQxNWEwNDI2
NDQ5NWE4MzA0MTg3YzU2M2FiNDdjMGZkMC4uMmNlZDNiM2UxOGM4YTM3NmUxMzJmYTc4ODc1MjY0
MjU5ZGE2NmU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTA0LTI3ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWFrZSBsb2FkVVJMSW50b0NoaWxk
RnJhbWUgcHJpdmF0ZSBhbmQgbm9uLWV4cG9ydGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEwNTEKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBBZGxlci4KKworICAgICAgICBNYWtlIGxvYWRVUkxJbnRvQ2hpbGRGcmFtZSBwcml2YXRlIGFu
ZCBub24tZXhwb3J0ZWQgdG8gcmVkdWNlIHRoZSBhbW91bnQgb2YgcHVibGljIEFQSSBmdW5jdGlv
bnMKKyAgICAgICAgdGhhdCBzdGFydCBsb2Fkcy4gSW4gb3JkZXIgdG8gZG8gdGhpcyBsb2FkVVJM
SW50b0NoaWxkRnJhbWUgaXMgYmVpbmcgY2FsbGVkIGZyb20gU3ViZnJhbWVMb2FkZXIKKyAgICAg
ICAgYW5kIFN1YmZyYW1lTG9hZGVyIGlzIG1hZGUgYW4gaW5uZXIgY2xhc3Mgb2YgRnJhbWVMb2Fk
ZXIuIEJlY2F1c2UgdGhpcyBzaW1wbGlmaWVzIGNyZWF0ZUZyYW1lIChhbmQKKyAgICAgICAgbWFr
ZXMgY3JlYXRlRnJhbWUgYmVoYXZlIHN0cmljdGx5IGxpa2UgaXRzIG5hbWUpIHVybCBhbmQgcmVm
ZXJyZXIgZG8gbm90IGhhdmUgdG8gYmUgcGFzc2VkLgorCisgICAgICAgICogaHRtbC9IVE1MT2Jq
ZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6cGFy
YW1ldGVyc0ZvclBsdWdpbik6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFtZSk6Cisg
ICAgICAgICogbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBsb2Fk
ZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoK
KyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcik6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OmNsZWFyKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6cmVxdWVzdEZyYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6cmVzb3VyY2VXaWxsVXNl
UGx1Z2luKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6
cGx1Z2luSXNMb2FkYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6U3ViZnJh
bWVMb2FkZXI6OnJlcXVlc3RQbHVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OlN1YmZyYW1lTG9hZGVyOjpyZXF1ZXN0T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6Y3JlYXRlSmF2YUFwcGxldFdpZGdldCk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OmxvYWRPclJlZGlyZWN0U3Vi
ZnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVyOjps
b2FkU3ViZnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9h
ZGVyOjpzaG91bGRVc2VQbHVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OlN1
YmZyYW1lTG9hZGVyOjpsb2FkUGx1Z2luKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
OjpTdWJmcmFtZUxvYWRlcjo6Y29tcGxldGVVUkwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVyOjpzaG91bGRDb252ZXJ0SW52YWxpZFVSTHNUb0Js
YW5rIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpTdWJmcmFtZUxv
YWRlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6Y2xlYXIp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OnJlcXVlc3RGcmFt
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6cmVzb3VyY2VX
aWxsVXNlUGx1Z2luKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVy
OjpwbHVnaW5Jc0xvYWRhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN1YmZyYW1l
TG9hZGVyOjpyZXF1ZXN0UGx1Z2luKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN1YmZy
YW1lTG9hZGVyOjpyZXF1ZXN0T2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN1
YmZyYW1lTG9hZGVyOjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpsb2FkT3JSZWRpcmVjdFN1YmZyYW1lKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpsb2FkU3ViZnJhbWUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OnNob3VsZFVzZVBsdWdpbik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6bG9hZFBsdWdpbik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6Y29tcGxldGVVUkwg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OnNob3Vs
ZENvbnZlcnRJbnZhbGlkVVJMc1RvQmxhbmsgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGxv
YWRlci9TdWJmcmFtZUxvYWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6
OmNvbnRhaW5zUGx1Z2lucyBjb25zdCk6IERlbGV0ZWQuCisKIDIwMjAtMDQtMjYgIENhdGhpZSBD
aGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL3Nj
cm9sbC1iZWhhdmlvci1pbnZhbGlkYXRlLWlmLWRpc2FibGVkLmh0bWwgaXMgYSBmbGFreSBmYWls
dXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IDFjNjYyMTQ1M2M1NDQ3ZTlmMDA4MDIzYzk5ZDU5ZTE3N2I1MGM3M2Eu
LjZlZjdkZmEzOGQ4MzI1MjM0NmFhNGZhZTllM2I0N2E1MGU0OGVmNGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMjAtMDQtMjcgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBNYWtlIGxvYWRVUkxJbnRvQ2hpbGRGcmFtZSBwcml2YXRlIGFuZCBub24tZXhwb3J0
ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA1
MQorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIEFkYXB0IGNy
ZWF0ZUZyYW1lIHRvIHN0cmljdGx5IGNyZWF0ZSBhIHN1YmZyYW1lIGFuZAorICAgICAgICBub3Qg
bG9hZCBhbnl0aGluZy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNs
aWVudDo6Y3JlYXRlRnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAyMC0wNC0yNSAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBpbnRlcm5hbCBpT1MgYnVp
bGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZTUwY2ExMzVjMTU2Mzg4MzhiMjE5
NWE1YzE2MGZkYjZiMjc1NjQ4OC4uMDkxOTQ2YTBiZjRlMmM1MGI5M2U2YjBhNjVlZmM1OGVjNTA3
ZjYxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIw
LTA0LTI3ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWFrZSBsb2Fk
VVJMSW50b0NoaWxkRnJhbWUgcHJpdmF0ZSBhbmQgbm9uLWV4cG9ydGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEwNTEKKworICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBBZGFwdCBjcmVhdGVGcmFtZSB0byBzdHJp
Y3RseSBjcmVhdGUgYSBzdWJmcmFtZSBhbmQKKyAgICAgICAgbm90IGxvYWQgYW55dGhpbmcuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgorICAgICAgICAoV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZyYW1lKToKKwogMjAyMC0wNC0yNSAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFByZXBhcmUgdG8g
cmVtb3ZlIGF1dG9tYXRpYyBVUkwtPlN0cmluZyBjb252ZXJzaW9uIG9wZXJhdG9ycwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IGVjMzBmMjMxMmM1MDBhNTk1Mzk5NWRlYmE0MzAxY2I0
MTZjNzgxMjguLjExYTFjZmVlNDQxMzQ3NTlkOTkyNzRmMzY2YjUwZWQ1ZTMzYWE0NmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wNC0yNyAgUm9i
IEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIE1ha2UgbG9hZFVSTEludG9DaGls
ZEZyYW1lIHByaXZhdGUgYW5kIG5vbi1leHBvcnRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMDUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCisKKyAgICAgICAgQWRhcHQgY3JlYXRlRnJhbWUgdG8gc3RyaWN0bHkgY3JlYXRl
IGEgc3ViZnJhbWUgYW5kCisgICAgICAgIG5vdCBsb2FkIGFueXRoaW5nLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZyYW1lKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDIwLTA0LTI1ICBEYXJpbiBBZGxlciAgPGRhcmlu
QGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIFVSTCB0byB1c2UgU3RyaW5nVmlldyB3aGVuIHJl
dHVybmluZyBzdWJzdHJpbmdzIG9mIHRoZSBVUkwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2Jq
ZWN0RWxlbWVudC5jcHAKaW5kZXggOTIxNWM3ZTVhYzNmYWUxODkzYjFmMjg5Y2MxOTZiN2IxNGVh
MjE0Yi4uZGFiOWFmNTAxZmIwM2IzYjhmZDNmYmM3ZTk4ZjkzMzJlMjhlOTc5MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKQEAgLTIwNiw3ICsyMDYsNyBAQCB2
b2lkIEhUTUxPYmplY3RFbGVtZW50OjpwYXJhbWV0ZXJzRm9yUGx1Z2luKFZlY3RvcjxTdHJpbmc+
JiBwYXJhbU5hbWVzLCBWZWN0b3I8UwogICAgIC8vIGlmIHdlIGtub3cgdGhhdCByZXNvdXJjZSBw
b2ludHMgdG8gYSBwbHVnLWluLgogCiAgICAgaWYgKHVybC5pc0VtcHR5KCkgJiYgIXVybFBhcmFt
ZXRlci5pc0VtcHR5KCkpIHsKLSAgICAgICAgU3ViZnJhbWVMb2FkZXImIGxvYWRlciA9IGRvY3Vt
ZW50KCkuZnJhbWUoKS0+bG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKTsKKyAgICAgICAgYXV0byYg
bG9hZGVyID0gZG9jdW1lbnQoKS5mcmFtZSgpLT5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpOwog
ICAgICAgICBpZiAobG9hZGVyLnJlc291cmNlV2lsbFVzZVBsdWdpbih1cmxQYXJhbWV0ZXIsIHNl
cnZpY2VUeXBlKSkKICAgICAgICAgICAgIHVybCA9IHVybFBhcmFtZXRlcjsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGU5ODA0ODQxZDc0ODNlYjcyNGY3
NTQ2NjMwYzZmZGU3YjMxMmE0NTMuLjc5YjBiMzE5MzEwOTk5ZWU5MzhjNDY1YjUxODM1MTBmNTk1
Mjc1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01MjEsNyAr
NTIxLDcgQEAgUmVmPERvY3VtZW50TG9hZGVyPiBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpjcmVh
dGVEb2N1bWVudExvYWRlcihjb25zdCBSZXNvdXJjZVIKICAgICByZXR1cm4gRG9jdW1lbnRMb2Fk
ZXI6OmNyZWF0ZShyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSk7CiB9CiAKLVJlZlB0cjxGcmFtZT4g
RW1wdHlGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29uc3QgVVJMJiwgY29uc3QgU3Ry
aW5nJiwgSFRNTEZyYW1lT3duZXJFbGVtZW50JiwgY29uc3QgU3RyaW5nJikKK1JlZlB0cjxGcmFt
ZT4gRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29uc3QgU3RyaW5nJiwgSFRN
TEZyYW1lT3duZXJFbGVtZW50JikKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGFlZTc3ZTMz
ZWRmNTI3NWZhNTNkMDI0ZDRiNzliMWQ4NDQxODQ3YTMuLmFiMmUwMjQ3ZmMxZDI2ZDU4YzA4ZDkx
NjJmOTkxNmRjMmY5ZmNjMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJh
bWVMb2FkZXJDbGllbnQuaApAQCAtMTc1LDcgKzE3NSw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JU
IEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQgewogICAg
IHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCgpIGZpbmFsIHsgfQogICAgIHZvaWQgZGlk
UnVuSW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luJiwgY29uc3QgVVJMJikgZmluYWwgeyB9
CiAgICAgdm9pZCBkaWREZXRlY3RYU1MoY29uc3QgVVJMJiwgYm9vbCkgZmluYWwgeyB9Ci0gICAg
UmVmUHRyPEZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmLCBIVE1M
RnJhbWVPd25lckVsZW1lbnQmLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAgICBSZWZQdHI8RnJh
bWU+IGNyZWF0ZUZyYW1lKGNvbnN0IFN0cmluZyYsIEhUTUxGcmFtZU93bmVyRWxlbWVudCYpIGZp
bmFsOwogICAgIFJlZlB0cjxXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiwgSFRN
TFBsdWdJbkVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiwgYm9vbCkgZmluYWw7CiAgICAgUmVmUHRy
PFdpZGdldD4gY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJbnRTaXplJiwgSFRNTEFwcGxl
dEVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXgg
OTI2YzZjYWQ5MjE3NDljYWJjMmU1Y2JjOWUzYTE3MjI0MzVmZjM0OS4uOTZkMDJlZTM1NmI4MzA4
YjI0YzM0ODRlMGNkMzM3OGRhZmFhYjc0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmgKQEAgLTY5LDYgKzY5LDcgQEAgY2xhc3MgRG9jdW1lbnRMb2FkZXI7CiBjbGFzcyBFdmVudDsK
IGNsYXNzIEZvcm1TdGF0ZTsKIGNsYXNzIEZvcm1TdWJtaXNzaW9uOworY2xhc3MgRnJhbWU7CiBj
bGFzcyBGcmFtZUxvYWRSZXF1ZXN0OwogY2xhc3MgRnJhbWVMb2FkZXJDbGllbnQ7CiBjbGFzcyBG
cmFtZU5ldHdvcmtpbmdDb250ZXh0OwpAQCAtODQsNyArODUsNiBAQCBjbGFzcyBSZXNvdXJjZVJl
cXVlc3Q7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZh
bHVlOwogY2xhc3MgU2hhcmVkQnVmZmVyOwotY2xhc3MgU3ViZnJhbWVMb2FkZXI7CiBjbGFzcyBT
dWJzdGl0dXRlRGF0YTsKIAogZW51bSBjbGFzcyBOZXdMb2FkSW5Qcm9ncmVzcyA6IGJvb2w7CkBA
IC0xMTUsMTMgKzExNSwxNCBAQCBwdWJsaWM6CiAgICAgUG9saWN5Q2hlY2tlciYgcG9saWN5Q2hl
Y2tlcigpIGNvbnN0IHsgcmV0dXJuICptX3BvbGljeUNoZWNrZXI7IH0KICAgICBIaXN0b3J5Q29u
dHJvbGxlciYgaGlzdG9yeSgpIGNvbnN0IHsgcmV0dXJuICptX2hpc3Rvcnk7IH0KICAgICBSZXNv
dXJjZUxvYWROb3RpZmllciYgbm90aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX25vdGlmaWVyOyB9
CisKKyAgICBjbGFzcyBTdWJmcmFtZUxvYWRlcjsKICAgICBTdWJmcmFtZUxvYWRlciYgc3ViZnJh
bWVMb2FkZXIoKSBjb25zdCB7IHJldHVybiAqbV9zdWJmcmFtZUxvYWRlcjsgfQogICAgIE1peGVk
Q29udGVudENoZWNrZXImIG1peGVkQ29udGVudENoZWNrZXIoKSBjb25zdCB7IHJldHVybiBtX21p
eGVkQ29udGVudENoZWNrZXI7IH0KIAogICAgIHZvaWQgc2V0dXBGb3JSZXBsYWNlKCk7CiAKICAg
ICAvLyBGSVhNRTogVGhlc2UgYXJlIGFsbCBmdW5jdGlvbnMgd2hpY2ggc3RhcnQgbG9hZHMuIFdl
IGhhdmUgdG9vIG1hbnkuCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBsb2FkVVJMSW50b0NoaWxk
RnJhbWUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcmVyLCBGcmFtZSopOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgbG9hZEZyYW1lUmVxdWVzdChGcmFtZUxvYWRSZXF1ZXN0JiYsIEV2
ZW50KiwgUmVmUHRyPEZvcm1TdGF0ZT4mJiwgT3B0aW9uYWw8QWRDbGlja0F0dHJpYnV0aW9uPiYm
ID0gV1RGOjpudWxsb3B0KTsgLy8gQ2FsbGVkIGJ5IHN1Ym1pdEZvcm0sIGNhbGxzIGxvYWRQb3N0
UmVxdWVzdCBhbmQgbG9hZFVSTC4KIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbG9hZChGcmFt
ZUxvYWRSZXF1ZXN0JiYpOwpAQCAtNDI1LDYgKzQyNiw4IEBAIHByaXZhdGU6CiAgICAgZW51bSBj
bGFzcyBMb2FkQ29udGludWluZ1N0YXRlIDogdWludDhfdCB7IE5vdENvbnRpbnVpbmcsIENvbnRp
bnVpbmdXaXRoUmVxdWVzdCwgQ29udGludWluZ1dpdGhIaXN0b3J5SXRlbSB9OwogICAgIGJvb2wg
c2hvdWxkVHJlYXRDdXJyZW50TG9hZEFzQ29udGludWluZ0xvYWQoKSBjb25zdCB7IHJldHVybiBt
X2N1cnJlbnRMb2FkQ29udGludWluZ1N0YXRlICE9IExvYWRDb250aW51aW5nU3RhdGU6Ok5vdENv
bnRpbnVpbmc7IH0KIAorICAgIHZvaWQgbG9hZFVSTEludG9DaGlsZEZyYW1lKGNvbnN0IFVSTCYs
IGNvbnN0IFN0cmluZyYgcmVmZXJlciwgRnJhbWUqKTsKKwogICAgIEZyYW1lJiBtX2ZyYW1lOwog
ICAgIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4gbV9jbGllbnQ7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggYjYyNTNlN2FhZjkzMWEyZTJkNjNj
ZWFiN2VkNGQ0NjljMDU5ZTJiOS4uMWU1NDI1ZTk0Nzc4NWYxOGJlOGI1OTk0OGU4OTRhOGRmODMy
YzllNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTI4
Niw3ICsyODYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGNhbkNhY2hlUGFnZSgpIGNv
bnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25s
b2FkKERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYpID0gMDsKIAotICAgIHZpcnR1YWwgUmVmUHRyPEZyYW1lPiBjcmVhdGVGcmFt
ZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIG5hbWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCYs
IGNvbnN0IFN0cmluZyYgcmVmZXJyZXIpID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxGcmFtZT4g
Y3JlYXRlRnJhbWUoY29uc3QgU3RyaW5nJiBuYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQmKSA9
IDA7CiAgICAgdmlydHVhbCBSZWZQdHI8V2lkZ2V0PiBjcmVhdGVQbHVnaW4oY29uc3QgSW50U2l6
ZSYsIEhUTUxQbHVnSW5FbGVtZW50JiwgY29uc3QgVVJMJiwgY29uc3QgVmVjdG9yPFN0cmluZz4m
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFN0cmluZyYsIGJvb2wgbG9hZE1hbnVhbGx5
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2luKFdpZGdldCYpID0g
MDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKaW5kZXggMWJkM2U0
MmQ0NjU1NTgzYjZkNmUyZTcxMjEwYzA2Y2FiOWUxMGE5ZS4uNzU4NGE0ZTMxMzQ0OWIyZTY4OWU0
MGI2NjI0YTNlMDM2OWUwYzNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1
YmZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2Fk
ZXIuY3BwCkBAIC02MiwxOCArNjIsMTcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogdXNp
bmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotU3ViZnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVy
KEZyYW1lJiBmcmFtZSkKLSAgICA6IG1fY29udGFpbnNQbHVnaW5zKGZhbHNlKQotICAgICwgbV9m
cmFtZShmcmFtZSkKK0ZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXIo
RnJhbWUmIGZyYW1lKQorICAgIDogbV9mcmFtZShmcmFtZSkKIHsKIH0KIAotdm9pZCBTdWJmcmFt
ZUxvYWRlcjo6Y2xlYXIoKQordm9pZCBGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OmNsZWFy
KCkKIHsKICAgICBtX2NvbnRhaW5zUGx1Z2lucyA9IGZhbHNlOwogfQogCi1ib29sIFN1YmZyYW1l
TG9hZGVyOjpyZXF1ZXN0RnJhbWUoSFRNTEZyYW1lT3duZXJFbGVtZW50JiBvd25lckVsZW1lbnQs
IGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBBdG9tU3RyaW5nJiBmcmFtZU5hbWUsIExv
Y2tIaXN0b3J5IGxvY2tIaXN0b3J5LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2Fy
ZExpc3QpCitib29sIEZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6cmVxdWVzdEZyYW1lKEhU
TUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXJFbGVtZW50LCBjb25zdCBTdHJpbmcmIHVybFN0cmlu
ZywgY29uc3QgQXRvbVN0cmluZyYgZnJhbWVOYW1lLCBMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSwg
TG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0KQogewogICAgIC8vIFN1cHBv
cnQgZm9yIDxmcmFtZSBzcmM9ImphdmFzY3JpcHQ6c3RyaW5nIj4KICAgICBVUkwgc2NyaXB0VVJM
OwpAQCAtMTEyLDcgKzExMSw3IEBAIGJvb2wgU3ViZnJhbWVMb2FkZXI6OnJlcXVlc3RGcmFtZShI
VE1MRnJhbWVPd25lckVsZW1lbnQmIG93bmVyRWxlbWVudCwgY29uc3QgU3RyCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAgICAgCi1ib29sIFN1YmZyYW1lTG9hZGVyOjpyZXNvdXJjZVdpbGxVc2VQbHVn
aW4oY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCitib29sIEZyYW1l
TG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6cmVzb3VyY2VXaWxsVXNlUGx1Z2luKGNvbnN0IFN0cmlu
ZyYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQogewogICAgIFVSTCBjb21wbGV0ZWRVUkw7
CiAgICAgaWYgKCF1cmwuaXNFbXB0eSgpKQpAQCAtMTIyLDcgKzEyMSw3IEBAIGJvb2wgU3ViZnJh
bWVMb2FkZXI6OnJlc291cmNlV2lsbFVzZVBsdWdpbihjb25zdCBTdHJpbmcmIHVybCwgY29uc3Qg
U3RyaW5nJiBtaW1lCiAgICAgcmV0dXJuIHNob3VsZFVzZVBsdWdpbihjb21wbGV0ZWRVUkwsIG1p
bWVUeXBlLCBmYWxzZSwgdXNlRmFsbGJhY2spOwogfQogCi1ib29sIFN1YmZyYW1lTG9hZGVyOjpw
bHVnaW5Jc0xvYWRhYmxlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQor
Ym9vbCBGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OnBsdWdpbklzTG9hZGFibGUoY29uc3Qg
VVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCiB7CiAgICAgYXV0byogZG9jdW1lbnQg
PSBtX2ZyYW1lLmRvY3VtZW50KCk7CiAKQEAgLTE0OSw3ICsxNDgsNyBAQCBib29sIFN1YmZyYW1l
TG9hZGVyOjpwbHVnaW5Jc0xvYWRhYmxlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1p
bWVUeXBlKQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFN1YmZyYW1lTG9hZGVyOjpyZXF1
ZXN0UGx1Z2luKEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQmIG93bmVyRWxlbWVudCwgY29uc3QgVVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJh
bU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMsIGJvb2wgdXNlRmFsbGJh
Y2spCitib29sIEZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6cmVxdWVzdFBsdWdpbihIVE1M
UGx1Z0luSW1hZ2VFbGVtZW50JiBvd25lckVsZW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBT
dHJpbmcmIG1pbWVUeXBlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzLCBib29sIHVzZUZhbGxiYWNrKQogewogICAgIC8v
IEFwcGxpY2F0aW9uIHBsdWctaW5zIGFyZSBwbHVnLWlucyBpbXBsZW1lbnRlZCBieSB0aGUgdXNl
ciBhZ2VudCwgZm9yIGV4YW1wbGUgUXQgcGx1Zy1pbnMsCiAgICAgLy8gYXMgb3Bwb3NlZCB0byB0
aGlyZC1wYXJ0eSBjb2RlIHN1Y2ggYXMgRmxhc2guIFRoZSB1c2VyIGFnZW50IGRlY2lkZXMgd2hl
dGhlciBvciBub3QgdGhleSBhcmUKQEAgLTIxOCw3ICsyMTcsNyBAQCBzdGF0aWMgdm9pZCBsb2dQ
bHVnaW5SZXF1ZXN0KFBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0
cmluZyYgdQogICAgIHBhZ2UtPnNhd1BsdWdpbihkZXNjcmlwdGlvbik7CiB9CiAKLWJvb2wgU3Vi
ZnJhbWVMb2FkZXI6OnJlcXVlc3RPYmplY3QoSFRNTFBsdWdJbkltYWdlRWxlbWVudCYgb3duZXJF
bGVtZW50LCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgQXRvbVN0cmluZyYgZnJhbWVOYW1lLCBj
b25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKQorYm9vbCBGcmFtZUxvYWRlcjo6U3Vi
ZnJhbWVMb2FkZXI6OnJlcXVlc3RPYmplY3QoSFRNTFBsdWdJbkltYWdlRWxlbWVudCYgb3duZXJF
bGVtZW50LCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgQXRvbVN0cmluZyYgZnJhbWVOYW1lLCBj
b25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKQogewogICAgIGlmICh1cmwuaXNFbXB0
eSgpICYmIG1pbWVUeXBlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjQ2
LDcgKzI0NSw3IEBAIGJvb2wgU3ViZnJhbWVMb2FkZXI6OnJlcXVlc3RPYmplY3QoSFRNTFBsdWdJ
bkltYWdlRWxlbWVudCYgb3duZXJFbGVtZW50LCBjb25zdCBTCiAgICAgcmV0dXJuIGxvYWRPclJl
ZGlyZWN0U3ViZnJhbWUob3duZXJFbGVtZW50LCBjb21wbGV0ZWRVUkwsIGZyYW1lTmFtZSwgTG9j
a0hpc3Rvcnk6OlllcywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6WWVzKTsKIH0KIAotUmVmUHRyPFdp
ZGdldD4gU3ViZnJhbWVMb2FkZXI6OmNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgSW50U2l6
ZSYgc2l6ZSwgSFRNTEFwcGxldEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMpCitSZWZQdHI8
V2lkZ2V0PiBGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OmNyZWF0ZUphdmFBcHBsZXRXaWRn
ZXQoY29uc3QgSW50U2l6ZSYgc2l6ZSwgSFRNTEFwcGxldEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1W
YWx1ZXMpCiB7CiAgICAgU3RyaW5nIGJhc2VVUkxTdHJpbmc7CiAgICAgU3RyaW5nIGNvZGVCYXNl
VVJMU3RyaW5nOwpAQCAtMjk2LDcgKzI5NSw3IEBAIFJlZlB0cjxXaWRnZXQ+IFN1YmZyYW1lTG9h
ZGVyOjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IEludFNpemUmIHNpemUsIEhUTUxBCiAg
ICAgcmV0dXJuIHdpZGdldDsKIH0KIAotRnJhbWUqIFN1YmZyYW1lTG9hZGVyOjpsb2FkT3JSZWRp
cmVjdFN1YmZyYW1lKEhUTUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXJFbGVtZW50LCBjb25zdCBV
UkwmIHJlcXVlc3RVUkwsIGNvbnN0IEF0b21TdHJpbmcmIGZyYW1lTmFtZSwgTG9ja0hpc3Rvcnkg
bG9ja0hpc3RvcnksIExvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCkKK0Zy
YW1lKiBGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OmxvYWRPclJlZGlyZWN0U3ViZnJhbWUo
SFRNTEZyYW1lT3duZXJFbGVtZW50JiBvd25lckVsZW1lbnQsIGNvbnN0IFVSTCYgcmVxdWVzdFVS
TCwgY29uc3QgQXRvbVN0cmluZyYgZnJhbWVOYW1lLCBMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSwg
TG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0KQogewogICAgIGF1dG8mIGlu
aXRpYXRpbmdEb2N1bWVudCA9IG93bmVyRWxlbWVudC5kb2N1bWVudCgpOwogCkBAIC0zMTYsNyAr
MzE1LDcgQEAgRnJhbWUqIFN1YmZyYW1lTG9hZGVyOjpsb2FkT3JSZWRpcmVjdFN1YmZyYW1lKEhU
TUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXJFbGVtZW4KICAgICByZXR1cm4gb3duZXJFbGVtZW50
LmNvbnRlbnRGcmFtZSgpOwogfQogCi1SZWZQdHI8RnJhbWU+IFN1YmZyYW1lTG9hZGVyOjpsb2Fk
U3ViZnJhbWUoSFRNTEZyYW1lT3duZXJFbGVtZW50JiBvd25lckVsZW1lbnQsIGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIpCitSZWZQdHI8
RnJhbWU+IEZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6bG9hZFN1YmZyYW1lKEhUTUxGcmFt
ZU93bmVyRWxlbWVudCYgb3duZXJFbGVtZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKQogewogICAgIFJlZjxGcmFtZT4gcHJvdGVj
dChtX2ZyYW1lKTsKICAgICBhdXRvIGRvY3VtZW50ID0gbWFrZVJlZihvd25lckVsZW1lbnQuZG9j
dW1lbnQoKSk7CkBAIC0zMzIsMTkgKzMzMSwyNSBAQCBSZWZQdHI8RnJhbWU+IFN1YmZyYW1lTG9h
ZGVyOjpsb2FkU3ViZnJhbWUoSFRNTEZyYW1lT3duZXJFbGVtZW50JiBvd25lckVsZW1lbnQsCiAg
ICAgaWYgKCFtX2ZyYW1lLnBhZ2UoKSB8fCBtX2ZyYW1lLnBhZ2UoKS0+c3ViZnJhbWVDb3VudCgp
ID49IFBhZ2U6Om1heE51bWJlck9mRnJhbWVzKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAor
ICAgIC8vIFByZXZlbnQgaW5pdGlhbCBlbXB0eSBkb2N1bWVudCBsb2FkIGZyb20gdHJpZ2dlcmlu
ZyBsb2FkIGV2ZW50cy4KKyAgICBkb2N1bWVudC0+aW5jcmVtZW50TG9hZEV2ZW50RGVsYXlDb3Vu
dCgpOworCisgICAgYXV0byBmcmFtZSA9IG1fZnJhbWUubG9hZGVyKCkuY2xpZW50KCkuY3JlYXRl
RnJhbWUobmFtZSwgb3duZXJFbGVtZW50KTsKKyAgICBpZiAoIWZyYW1lKSAgeworICAgICAgICBt
X2ZyYW1lLmxvYWRlcigpLmNoZWNrQ2FsbEltcGxpY2l0Q2xvc2UoKTsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgfQogICAgIFJlZmVycmVyUG9saWN5IHBvbGljeSA9IG93bmVyRWxlbWVu
dC5yZWZlcnJlclBvbGljeSgpOwogICAgIGlmIChwb2xpY3kgPT0gUmVmZXJyZXJQb2xpY3k6OkVt
cHR5U3RyaW5nKQogICAgICAgICBwb2xpY3kgPSBkb2N1bWVudC0+cmVmZXJyZXJQb2xpY3koKTsK
ICAgICBTdHJpbmcgcmVmZXJyZXJUb1VzZSA9IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZVJlZmVy
cmVySGVhZGVyKHBvbGljeSwgdXJsLCByZWZlcnJlcik7CiAKLSAgICAvLyBQcmV2ZW50IGluaXRp
YWwgZW1wdHkgZG9jdW1lbnQgbG9hZCBmcm9tIHRyaWdnZXJpbmcgbG9hZCBldmVudHMuCi0gICAg
ZG9jdW1lbnQtPmluY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKLQotICAgIGF1dG8gZnJh
bWUgPSBtX2ZyYW1lLmxvYWRlcigpLmNsaWVudCgpLmNyZWF0ZUZyYW1lKHVybCwgbmFtZSwgb3du
ZXJFbGVtZW50LCByZWZlcnJlclRvVXNlKTsKKyAgICBtX2ZyYW1lLmxvYWRlcigpLmxvYWRVUkxJ
bnRvQ2hpbGRGcmFtZSh1cmwsIHJlZmVycmVyVG9Vc2UsIGZyYW1lLmdldCgpKTsKIAogICAgIGRv
Y3VtZW50LT5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CiAKLSAgICBpZiAoIWZyYW1l
KSAgeworICAgIC8vIFRoZSBmcmFtZSdzIG9ubG9hZCBoYW5kbGVyIG1heSBoYXZlIHJlbW92ZWQg
aXQgZnJvbSB0aGUgZG9jdW1lbnQuCisgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPnRyZWUoKS5w
YXJlbnQoKSkgewogICAgICAgICBtX2ZyYW1lLmxvYWRlcigpLmNoZWNrQ2FsbEltcGxpY2l0Q2xv
c2UoKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpAQCAtMzgyLDcgKzM4Nyw3IEBA
IFJlZlB0cjxGcmFtZT4gU3ViZnJhbWVMb2FkZXI6OmxvYWRTdWJmcmFtZShIVE1MRnJhbWVPd25l
ckVsZW1lbnQmIG93bmVyRWxlbWVudCwKICAgICByZXR1cm4gZnJhbWU7CiB9CiAKLWJvb2wgU3Vi
ZnJhbWVMb2FkZXI6OnNob3VsZFVzZVBsdWdpbihjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSwgYm9vbCBoYXNGYWxsYmFjaywgYm9vbCYgdXNlRmFsbGJhY2spCitib29sIEZy
YW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6c2hvdWxkVXNlUGx1Z2luKGNvbnN0IFVSTCYgdXJs
LCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGhhc0ZhbGxiYWNrLCBib29sJiB1c2VGYWxs
YmFjaykKIHsKICAgICBpZiAobV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5zaG91bGRBbHdheXNV
c2VQbHVnaW5Eb2N1bWVudChtaW1lVHlwZSkpIHsKICAgICAgICAgdXNlRmFsbGJhY2sgPSBmYWxz
ZTsKQEAgLTM5Nyw3ICs0MDIsNyBAQCBib29sIFN1YmZyYW1lTG9hZGVyOjpzaG91bGRVc2VQbHVn
aW4oY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvbwogICAgIHJldHVy
biBvYmplY3RUeXBlID09IE9iamVjdENvbnRlbnRUeXBlOjpOb25lIHx8IG9iamVjdFR5cGUgPT0g
T2JqZWN0Q29udGVudFR5cGU6OlBsdWdJbjsKIH0KIAotYm9vbCBTdWJmcmFtZUxvYWRlcjo6bG9h
ZFBsdWdpbihIVE1MUGx1Z0luSW1hZ2VFbGVtZW50JiBwbHVnaW5FbGVtZW50LCBjb25zdCBVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFt
TmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcywgYm9vbCB1c2VGYWxsYmFj
aykKK2Jvb2wgRnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVyOjpsb2FkUGx1Z2luKEhUTUxQbHVn
SW5JbWFnZUVsZW1lbnQmIHBsdWdpbkVsZW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVj
dG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzLCBib29sIHVzZUZhbGxiYWNrKQogewogICAgIGlmICh1
c2VGYWxsYmFjaykKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDQwLDEzICs0NDUsMTMgQEAg
Ym9vbCBTdWJmcmFtZUxvYWRlcjo6bG9hZFBsdWdpbihIVE1MUGx1Z0luSW1hZ2VFbGVtZW50JiBw
bHVnaW5FbGVtZW50LCBjb25zdCBVUkwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotVVJMIFN1YmZy
YW1lTG9hZGVyOjpjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmIHVybCkgY29uc3QKK1VSTCBGcmFt
ZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OmNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYgdXJsKSBj
b25zdAogewogICAgIEFTU0VSVChtX2ZyYW1lLmRvY3VtZW50KCkpOwogICAgIHJldHVybiBtX2Zy
YW1lLmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHVybCk7CiB9CiAKLWJvb2wgU3ViZnJhbWVMb2Fk
ZXI6OnNob3VsZENvbnZlcnRJbnZhbGlkVVJMc1RvQmxhbmsoKSBjb25zdAorYm9vbCBGcmFtZUxv
YWRlcjo6U3ViZnJhbWVMb2FkZXI6OnNob3VsZENvbnZlcnRJbnZhbGlkVVJMc1RvQmxhbmsoKSBj
b25zdAogewogICAgIHJldHVybiBtX2ZyYW1lLnNldHRpbmdzKCkuc2hvdWxkQ29udmVydEludmFs
aWRVUkxzVG9CbGFuaygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1
YmZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuaApp
bmRleCA0NjUzZWExNzgyNDQ2ZjFjNGMyZmY4ODcyYmRiOTg2ZDAyYTYyMDY2Li5hMmNlOWI5NjAw
NzY1ZTQyNjE4YzJlNmI0NDA4ZjA5ZjM2MzA3MTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3Vi
ZnJhbWVMb2FkZXIuaApAQCAtMzAsNyArMzAsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1
ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC00OCw3ICs0OCw3IEBAIGNsYXNzIEludFNpemU7
CiBjbGFzcyBXaWRnZXQ7CiAKIC8vIFRoaXMgaXMgYSBzbGlnaHQgbWlzbm9tZXIuIEl0IGhhbmRs
ZXMgdGhlIGhpZ2hlciBsZXZlbCBsb2dpYyBvZiBsb2FkaW5nIGJvdGggc3ViZnJhbWVzIGFuZCBw
bHVnaW5zLgotY2xhc3MgU3ViZnJhbWVMb2FkZXIgeworY2xhc3MgRnJhbWVMb2FkZXI6OlN1YmZy
YW1lTG9hZGVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTdWJmcmFtZUxvYWRlcik7IFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIGV4cGxpY2l0IFN1YmZyYW1lTG9h
ZGVyKEZyYW1lJik7CkBAIC03OCw3ICs3OCw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIHNob3Vs
ZENvbnZlcnRJbnZhbGlkVVJMc1RvQmxhbmsoKSBjb25zdDsKIAotICAgIGJvb2wgbV9jb250YWlu
c1BsdWdpbnM7CisgICAgYm9vbCBtX2NvbnRhaW5zUGx1Z2lucyB7IGZhbHNlIH07CiAgICAgRnJh
bWUmIG1fZnJhbWU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA5
NmE1ZDlkYTI4ZjdjNTIwYjE3ZDExZDk2MjkyNmZmMGYzZWE2NmZlLi40OGVhNDY4MmMwOTQ1YTQw
OTA4MWFiMDE4MTQxZTg2NTNlZWRiZGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKQEAgLTE1NzEsOCArMTU3MSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNvbnZl
cnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChEb2N1bWVudExvYWRlciAqZG9jCiAgICAgbV9m
cmFtZS0+Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKGRvY3VtZW50TG9hZGVyLCBy
ZXF1ZXN0LCByZXNwb25zZSk7CiB9CiAKLVJlZlB0cjxGcmFtZT4gV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmNyZWF0ZUZyYW1lKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG5hbWUsIEhUTUxG
cmFtZU93bmVyRWxlbWVudCYgb3duZXJFbGVtZW50LAotICAgIGNvbnN0IFN0cmluZyYgcmVmZXJy
ZXIpCitSZWZQdHI8RnJhbWU+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFtZShjb25z
dCBTdHJpbmcmIG5hbWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXJFbGVtZW50KQogewog
ICAgIGF1dG8qIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CiAKQEAgLTE1ODUsMTUgKzE1ODQs
NiBAQCBSZWZQdHI8RnJhbWU+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFtZShjb25z
dCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBuYQogICAgIGlmICghY29yZVN1YmZyYW1lLT5wYWdl
KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgbV9mcmFtZS0+Y29yZUZyYW1lKCkt
PmxvYWRlcigpLmxvYWRVUkxJbnRvQ2hpbGRGcmFtZSh1cmwsIHJlZmVycmVyLCBjb3JlU3ViZnJh
bWUpOwotCi0gICAgLy8gVGhlIGZyYW1lJ3Mgb25sb2FkIGhhbmRsZXIgbWF5IGhhdmUgcmVtb3Zl
ZCBpdCBmcm9tIHRoZSBkb2N1bWVudC4KLSAgICBpZiAoIXN1YmZyYW1lLT5jb3JlRnJhbWUoKSkK
LSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgQVNTRVJUKHN1YmZyYW1lLT5jb3JlRnJhbWUo
KSA9PSBjb3JlU3ViZnJhbWUpOwotICAgIGlmICghY29yZVN1YmZyYW1lLT50cmVlKCkucGFyZW50
KCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCiAgICAgcmV0dXJuIGNvcmVTdWJmcmFtZTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBkYjI3Yjc3ZTNlMmVmOWE0NzU5
MzkxNWU4ZjVhZTA0ZDQ5NWQ0YWJkLi4wZjhlYjA5M2ZmNzZlNTc3MzQwNTZlNjNjZTM3NjdiMmVm
NjcwOWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjE0LDcgKzIxNCw3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBjYW5DYWNoZVBhZ2UoKSBjb25zdCBmaW5hbDsKICAgICB2b2lk
IGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChXZWJDb3JlOjpEb2N1bWVudExvYWRl
ciosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmKSBmaW5hbDsKIAotICAgIFJlZlB0cjxXZWJDb3JlOjpGcmFtZT4gY3JlYXRl
RnJhbWUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpIVE1MRnJhbWVP
d25lckVsZW1lbnQmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKSBmaW5hbDsKKyAgICBSZWZQdHI8
V2ViQ29yZTo6RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6
SFRNTEZyYW1lT3duZXJFbGVtZW50JikgZmluYWw7CiAKICAgICBSZWZQdHI8V2ViQ29yZTo6V2lk
Z2V0PiBjcmVhdGVQbHVnaW4oY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIFdlYkNvcmU6OkhUTUxQ
bHVnSW5FbGVtZW50JiwgY29uc3QgVVJMJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFN0cmluZyYsIGJvb2wgbG9hZE1hbnVhbGx5KSBmaW5hbDsK
ICAgICB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2luKFdlYkNvcmU6OldpZGdldCYpIGZpbmFsOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggNzE5MGI4Y2I1MDM0MjU5ODhlZGQzNzM2NDA4
OWZjYjk4MTNhOGY2OS4uYTI1NWExY2IwMGI0ZTA0Zjg4MTliY2VmNjkxYjFlNjc0N2Y3Zjk5ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yMDUsOCArMjA1LDcgQEAgcHJpdmF0ZToK
IAogICAgIHZvaWQgc2V0VGl0bGUoY29uc3QgV2ViQ29yZTo6U3RyaW5nV2l0aERpcmVjdGlvbiYs
IGNvbnN0IFVSTCYpIGZpbmFsOwogCi0gICAgUmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBjcmVhdGVG
cmFtZShjb25zdCBVUkwmLCBjb25zdCBXVEY6OlN0cmluZyYgbmFtZSwgV2ViQ29yZTo6SFRNTEZy
YW1lT3duZXJFbGVtZW50JiwKLSAgICAgICAgY29uc3QgV1RGOjpTdHJpbmcmIHJlZmVycmVyKSBm
aW5hbDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0IFdURjo6
U3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVsZW1lbnQmKSBmaW5hbDsKICAg
ICBSZWZQdHI8V2ViQ29yZTo6V2lkZ2V0PiBjcmVhdGVQbHVnaW4oY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYsIFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50JiwgY29uc3QgVVJMJiwKICAgICBjb25z
dCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIGNvbnN0
IFdURjo6U3RyaW5nJiwgYm9vbCkgZmluYWw7CiAgICAgdm9pZCByZWRpcmVjdERhdGFUb1BsdWdp
bihXZWJDb3JlOjpXaWRnZXQmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5k
ZXggOTZhODg5MTY3MDA3ZmM2MWU3MDkzZTllNGIxZWQwYWEyOTEwYWU5MS4uNmQyOWNhMGE2YmE2
ZDMwNDlhZGRjZmU0ZmIxMzE0MTgxMTdmZWQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW0KQEAgLTE2MTgsOCArMTYxOCw3IEBAIGJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbkNh
Y2hlUGFnZSgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVJlZlB0cjxXZWJDb3JlOjpG
cmFtZT4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZyYW1lKGNvbnN0IFVSTCYgdXJsLCBj
b25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXJF
bGVtZW50LAotICAgIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIpCitSZWZQdHI8V2ViQ29yZTo6RnJh
bWU+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFtZShjb25zdCBTdHJpbmcmIG5hbWUs
IFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXJFbGVtZW50KQogewogICAgIEJF
R0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKICAgICAKQEAgLTE2MzksMTIgKzE2MzgsNiBAQCBS
ZWZQdHI8V2ViQ29yZTo6RnJhbWU+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFtZShj
b25zdCBVUkwmIHVybCwgY29uc3QgUwogICAgIGlmICghcmVzdWx0LT5wYWdlKCkpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogIAotICAgIGNvcmUobV93ZWJGcmFtZS5nZXQoKSktPmxvYWRlcigp
LmxvYWRVUkxJbnRvQ2hpbGRGcmFtZSh1cmwsIHJlZmVycmVyLCByZXN1bHQuZ2V0KCkpOwotCi0g
ICAgLy8gVGhlIGZyYW1lJ3Mgb25sb2FkIGhhbmRsZXIgbWF5IGhhdmUgcmVtb3ZlZCBpdCBmcm9t
IHRoZSBkb2N1bWVudC4KLSAgICBpZiAoIXJlc3VsdC0+dHJlZSgpLnBhcmVudCgpKQotICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLQogICAgIHJldHVybiByZXN1bHQ7CiAKICAgICBFTkRfQkxPQ0tf
T0JKQ19FWENFUFRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDUzOWJl
Nzc5MzAxMzBjZWRiYjg0Mzg1YTI4NjU5ZThlMTA0NGY2NTYuLmY4MzI3MDk5NTAzNWYwMGExYTZi
ODY5MjM3OTZmMTcwNDBkZTY1YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAg
LTk4NSw4ICs5ODUsNyBAQCBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5DYWNoZVBhZ2Uo
KSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi1SZWZQdHI8RnJhbWU+IFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpjcmVhdGVGcmFtZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBuYW1l
LCBIVE1MRnJhbWVPd25lckVsZW1lbnQmIG93bmVyRWxlbWVudCwKLSAgICBjb25zdCBTdHJpbmcm
IHJlZmVycmVyKQorUmVmUHRyPEZyYW1lPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJh
bWUoY29uc3QgU3RyaW5nJiBuYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQmIG93bmVyRWxlbWVu
dCkKIHsKICAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShtX3dlYkZyYW1lKTsKICAgICBBU1NF
UlQoY29yZUZyYW1lKTsKQEAgLTk5OSwxMiArOTk4LDYgQEAgUmVmUHRyPEZyYW1lPiBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
bmEKICAgICBjb3JlRnJhbWUtPnRyZWUoKS5hcHBlbmRDaGlsZCgqY2hpbGRGcmFtZSk7CiAgICAg
Y2hpbGRGcmFtZS0+aW5pdCgpOwogCi0gICAgY29yZUZyYW1lLT5sb2FkZXIoKS5sb2FkVVJMSW50
b0NoaWxkRnJhbWUodXJsLCByZWZlcnJlciwgY2hpbGRGcmFtZS5nZXQoKSk7Ci0KLSAgICAvLyBU
aGUgZnJhbWUncyBvbmxvYWQgaGFuZGxlciBtYXkgaGF2ZSByZW1vdmVkIGl0IGZyb20gdGhlIGRv
Y3VtZW50LgotICAgIGlmICghY2hpbGRGcmFtZS0+dHJlZSgpLnBhcmVudCgpKQotICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLQogICAgIHJldHVybiBjaGlsZEZyYW1lOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaAppbmRleCBkM2E3M2E1MTM5MWZjMjZkYTJmZGE5MGEwODU1MGZkZjY0ZjJk
ZTAxLi5iOGU3YzdkZTQ5M2E1NzNkMDVhZmMxNWEwZThlNjk3NDhhMTEzN2Y2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmgKQEAgLTE3Nyw4ICsxNzcsNyBAQCBwdWJsaWM6CiAKICAgICBib29s
IGNhbkNhY2hlUGFnZSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgUmVmUHRyPFdlYkNvcmU6OkZy
YW1lPiBjcmVhdGVGcmFtZShjb25zdCBVUkwmLCBjb25zdCBXVEY6OlN0cmluZyYgbmFtZSwgV2Vi
Q29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50JiwKLSAgICAgICAgY29uc3QgV1RGOjpTdHJpbmcm
IHJlZmVycmVyKSBvdmVycmlkZTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IGNyZWF0ZUZy
YW1lKGNvbnN0IFdURjo6U3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVsZW1l
bnQmKSBvdmVycmlkZTsKICAgICBSZWZQdHI8V2ViQ29yZTo6V2lkZ2V0PiBjcmVhdGVQbHVnaW4o
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50JiwgY29u
c3QgVVJMJiwgY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIGNvbnN0IFZlY3RvcjxXVEY6OlN0
cmluZz4mLCBjb25zdCBXVEY6OlN0cmluZyYsIGJvb2wgbG9hZE1hbnVhbGx5KSBvdmVycmlkZTsK
ICAgICB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2luKFdlYkNvcmU6OldpZGdldCYpIG92ZXJyaWRl
OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397673</attachid>
            <date>2020-04-27 05:23:45 -0700</date>
            <delta_ts>2020-04-27 05:55:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211051-20200427142343.patch</filename>
            <type>text/plain</type>
            <size>27002</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzc5ZjYzMDQxNWEwNDI2
NDQ5NWE4MzA0MTg3YzU2M2FiNDdjMGZkMC4uMmNlZDNiM2UxOGM4YTM3NmUxMzJmYTc4ODc1MjY0
MjU5ZGE2NmU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTA0LTI3ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWFrZSBsb2FkVVJMSW50b0NoaWxk
RnJhbWUgcHJpdmF0ZSBhbmQgbm9uLWV4cG9ydGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEwNTEKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBBZGxlci4KKworICAgICAgICBNYWtlIGxvYWRVUkxJbnRvQ2hpbGRGcmFtZSBwcml2YXRlIGFu
ZCBub24tZXhwb3J0ZWQgdG8gcmVkdWNlIHRoZSBhbW91bnQgb2YgcHVibGljIEFQSSBmdW5jdGlv
bnMKKyAgICAgICAgdGhhdCBzdGFydCBsb2Fkcy4gSW4gb3JkZXIgdG8gZG8gdGhpcyBsb2FkVVJM
SW50b0NoaWxkRnJhbWUgaXMgYmVpbmcgY2FsbGVkIGZyb20gU3ViZnJhbWVMb2FkZXIKKyAgICAg
ICAgYW5kIFN1YmZyYW1lTG9hZGVyIGlzIG1hZGUgYW4gaW5uZXIgY2xhc3Mgb2YgRnJhbWVMb2Fk
ZXIuIEJlY2F1c2UgdGhpcyBzaW1wbGlmaWVzIGNyZWF0ZUZyYW1lIChhbmQKKyAgICAgICAgbWFr
ZXMgY3JlYXRlRnJhbWUgYmVoYXZlIHN0cmljdGx5IGxpa2UgaXRzIG5hbWUpIHVybCBhbmQgcmVm
ZXJyZXIgZG8gbm90IGhhdmUgdG8gYmUgcGFzc2VkLgorCisgICAgICAgICogaHRtbC9IVE1MT2Jq
ZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6cGFy
YW1ldGVyc0ZvclBsdWdpbik6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFtZSk6Cisg
ICAgICAgICogbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBsb2Fk
ZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoK
KyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcik6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OmNsZWFyKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6cmVxdWVzdEZyYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6cmVzb3VyY2VXaWxsVXNl
UGx1Z2luKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6
cGx1Z2luSXNMb2FkYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6U3ViZnJh
bWVMb2FkZXI6OnJlcXVlc3RQbHVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OlN1YmZyYW1lTG9hZGVyOjpyZXF1ZXN0T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6Y3JlYXRlSmF2YUFwcGxldFdpZGdldCk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OmxvYWRPclJlZGlyZWN0U3Vi
ZnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVyOjps
b2FkU3ViZnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9h
ZGVyOjpzaG91bGRVc2VQbHVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OlN1
YmZyYW1lTG9hZGVyOjpsb2FkUGx1Z2luKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
OjpTdWJmcmFtZUxvYWRlcjo6Y29tcGxldGVVUkwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVyOjpzaG91bGRDb252ZXJ0SW52YWxpZFVSTHNUb0Js
YW5rIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpTdWJmcmFtZUxv
YWRlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6Y2xlYXIp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OnJlcXVlc3RGcmFt
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6cmVzb3VyY2VX
aWxsVXNlUGx1Z2luKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVy
OjpwbHVnaW5Jc0xvYWRhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN1YmZyYW1l
TG9hZGVyOjpyZXF1ZXN0UGx1Z2luKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN1YmZy
YW1lTG9hZGVyOjpyZXF1ZXN0T2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN1
YmZyYW1lTG9hZGVyOjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpsb2FkT3JSZWRpcmVjdFN1YmZyYW1lKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpsb2FkU3ViZnJhbWUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OnNob3VsZFVzZVBsdWdpbik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6bG9hZFBsdWdpbik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6Y29tcGxldGVVUkwg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OnNob3Vs
ZENvbnZlcnRJbnZhbGlkVVJMc1RvQmxhbmsgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGxv
YWRlci9TdWJmcmFtZUxvYWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6
OmNvbnRhaW5zUGx1Z2lucyBjb25zdCk6IERlbGV0ZWQuCisKIDIwMjAtMDQtMjYgIENhdGhpZSBD
aGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL3Nj
cm9sbC1iZWhhdmlvci1pbnZhbGlkYXRlLWlmLWRpc2FibGVkLmh0bWwgaXMgYSBmbGFreSBmYWls
dXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IDFjNjYyMTQ1M2M1NDQ3ZTlmMDA4MDIzYzk5ZDU5ZTE3N2I1MGM3M2Eu
LjZlZjdkZmEzOGQ4MzI1MjM0NmFhNGZhZTllM2I0N2E1MGU0OGVmNGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMjAtMDQtMjcgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBNYWtlIGxvYWRVUkxJbnRvQ2hpbGRGcmFtZSBwcml2YXRlIGFuZCBub24tZXhwb3J0
ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA1
MQorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIEFkYXB0IGNy
ZWF0ZUZyYW1lIHRvIHN0cmljdGx5IGNyZWF0ZSBhIHN1YmZyYW1lIGFuZAorICAgICAgICBub3Qg
bG9hZCBhbnl0aGluZy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNs
aWVudDo6Y3JlYXRlRnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAyMC0wNC0yNSAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBpbnRlcm5hbCBpT1MgYnVp
bGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZTUwY2ExMzVjMTU2Mzg4MzhiMjE5
NWE1YzE2MGZkYjZiMjc1NjQ4OC4uMDkxOTQ2YTBiZjRlMmM1MGI5M2U2YjBhNjVlZmM1OGVjNTA3
ZjYxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIw
LTA0LTI3ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTWFrZSBsb2Fk
VVJMSW50b0NoaWxkRnJhbWUgcHJpdmF0ZSBhbmQgbm9uLWV4cG9ydGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEwNTEKKworICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBBZGFwdCBjcmVhdGVGcmFtZSB0byBzdHJp
Y3RseSBjcmVhdGUgYSBzdWJmcmFtZSBhbmQKKyAgICAgICAgbm90IGxvYWQgYW55dGhpbmcuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgorICAgICAgICAoV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZyYW1lKToKKwogMjAyMC0wNC0yNSAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFByZXBhcmUgdG8g
cmVtb3ZlIGF1dG9tYXRpYyBVUkwtPlN0cmluZyBjb252ZXJzaW9uIG9wZXJhdG9ycwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IGVjMzBmMjMxMmM1MDBhNTk1Mzk5NWRlYmE0MzAxY2I0
MTZjNzgxMjguLjExYTFjZmVlNDQxMzQ3NTlkOTkyNzRmMzY2YjUwZWQ1ZTMzYWE0NmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wNC0yNyAgUm9i
IEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIE1ha2UgbG9hZFVSTEludG9DaGls
ZEZyYW1lIHByaXZhdGUgYW5kIG5vbi1leHBvcnRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMDUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCisKKyAgICAgICAgQWRhcHQgY3JlYXRlRnJhbWUgdG8gc3RyaWN0bHkgY3JlYXRl
IGEgc3ViZnJhbWUgYW5kCisgICAgICAgIG5vdCBsb2FkIGFueXRoaW5nLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZyYW1lKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDIwLTA0LTI1ICBEYXJpbiBBZGxlciAgPGRhcmlu
QGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIFVSTCB0byB1c2UgU3RyaW5nVmlldyB3aGVuIHJl
dHVybmluZyBzdWJzdHJpbmdzIG9mIHRoZSBVUkwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2Jq
ZWN0RWxlbWVudC5jcHAKaW5kZXggOTIxNWM3ZTVhYzNmYWUxODkzYjFmMjg5Y2MxOTZiN2IxNGVh
MjE0Yi4uZGFiOWFmNTAxZmIwM2IzYjhmZDNmYmM3ZTk4ZjkzMzJlMjhlOTc5MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKQEAgLTIwNiw3ICsyMDYsNyBAQCB2
b2lkIEhUTUxPYmplY3RFbGVtZW50OjpwYXJhbWV0ZXJzRm9yUGx1Z2luKFZlY3RvcjxTdHJpbmc+
JiBwYXJhbU5hbWVzLCBWZWN0b3I8UwogICAgIC8vIGlmIHdlIGtub3cgdGhhdCByZXNvdXJjZSBw
b2ludHMgdG8gYSBwbHVnLWluLgogCiAgICAgaWYgKHVybC5pc0VtcHR5KCkgJiYgIXVybFBhcmFt
ZXRlci5pc0VtcHR5KCkpIHsKLSAgICAgICAgU3ViZnJhbWVMb2FkZXImIGxvYWRlciA9IGRvY3Vt
ZW50KCkuZnJhbWUoKS0+bG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKTsKKyAgICAgICAgYXV0byYg
bG9hZGVyID0gZG9jdW1lbnQoKS5mcmFtZSgpLT5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpOwog
ICAgICAgICBpZiAobG9hZGVyLnJlc291cmNlV2lsbFVzZVBsdWdpbih1cmxQYXJhbWV0ZXIsIHNl
cnZpY2VUeXBlKSkKICAgICAgICAgICAgIHVybCA9IHVybFBhcmFtZXRlcjsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGU5ODA0ODQxZDc0ODNlYjcyNGY3
NTQ2NjMwYzZmZGU3YjMxMmE0NTMuLjc5YjBiMzE5MzEwOTk5ZWU5MzhjNDY1YjUxODM1MTBmNTk1
Mjc1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01MjEsNyAr
NTIxLDcgQEAgUmVmPERvY3VtZW50TG9hZGVyPiBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpjcmVh
dGVEb2N1bWVudExvYWRlcihjb25zdCBSZXNvdXJjZVIKICAgICByZXR1cm4gRG9jdW1lbnRMb2Fk
ZXI6OmNyZWF0ZShyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSk7CiB9CiAKLVJlZlB0cjxGcmFtZT4g
RW1wdHlGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29uc3QgVVJMJiwgY29uc3QgU3Ry
aW5nJiwgSFRNTEZyYW1lT3duZXJFbGVtZW50JiwgY29uc3QgU3RyaW5nJikKK1JlZlB0cjxGcmFt
ZT4gRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29uc3QgU3RyaW5nJiwgSFRN
TEZyYW1lT3duZXJFbGVtZW50JikKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGFlZTc3ZTMz
ZWRmNTI3NWZhNTNkMDI0ZDRiNzliMWQ4NDQxODQ3YTMuLmFiMmUwMjQ3ZmMxZDI2ZDU4YzA4ZDkx
NjJmOTkxNmRjMmY5ZmNjMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJh
bWVMb2FkZXJDbGllbnQuaApAQCAtMTc1LDcgKzE3NSw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JU
IEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQgewogICAg
IHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCgpIGZpbmFsIHsgfQogICAgIHZvaWQgZGlk
UnVuSW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luJiwgY29uc3QgVVJMJikgZmluYWwgeyB9
CiAgICAgdm9pZCBkaWREZXRlY3RYU1MoY29uc3QgVVJMJiwgYm9vbCkgZmluYWwgeyB9Ci0gICAg
UmVmUHRyPEZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmLCBIVE1M
RnJhbWVPd25lckVsZW1lbnQmLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAgICBSZWZQdHI8RnJh
bWU+IGNyZWF0ZUZyYW1lKGNvbnN0IFN0cmluZyYsIEhUTUxGcmFtZU93bmVyRWxlbWVudCYpIGZp
bmFsOwogICAgIFJlZlB0cjxXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiwgSFRN
TFBsdWdJbkVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiwgYm9vbCkgZmluYWw7CiAgICAgUmVmUHRy
PFdpZGdldD4gY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJbnRTaXplJiwgSFRNTEFwcGxl
dEVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXgg
OTI2YzZjYWQ5MjE3NDljYWJjMmU1Y2JjOWUzYTE3MjI0MzVmZjM0OS4uODUxYWFkM2U0NmFhNWNl
OTI3NTRhOTgzODUyOTQ0MWEzNWE2NDdkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmgKQEAgLTg0LDcgKzg0LDYgQEAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3Vy
Y2VSZXNwb25zZTsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIGNsYXNzIFNoYXJlZEJ1
ZmZlcjsKLWNsYXNzIFN1YmZyYW1lTG9hZGVyOwogY2xhc3MgU3Vic3RpdHV0ZURhdGE7CiAKIGVu
dW0gY2xhc3MgTmV3TG9hZEluUHJvZ3Jlc3MgOiBib29sOwpAQCAtMTE1LDEzICsxMTQsMTQgQEAg
cHVibGljOgogICAgIFBvbGljeUNoZWNrZXImIHBvbGljeUNoZWNrZXIoKSBjb25zdCB7IHJldHVy
biAqbV9wb2xpY3lDaGVja2VyOyB9CiAgICAgSGlzdG9yeUNvbnRyb2xsZXImIGhpc3RvcnkoKSBj
b25zdCB7IHJldHVybiAqbV9oaXN0b3J5OyB9CiAgICAgUmVzb3VyY2VMb2FkTm90aWZpZXImIG5v
dGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9ub3RpZmllcjsgfQorCisgICAgY2xhc3MgU3ViZnJh
bWVMb2FkZXI7CiAgICAgU3ViZnJhbWVMb2FkZXImIHN1YmZyYW1lTG9hZGVyKCkgY29uc3QgeyBy
ZXR1cm4gKm1fc3ViZnJhbWVMb2FkZXI7IH0KICAgICBNaXhlZENvbnRlbnRDaGVja2VyJiBtaXhl
ZENvbnRlbnRDaGVja2VyKCkgY29uc3QgeyByZXR1cm4gbV9taXhlZENvbnRlbnRDaGVja2VyOyB9
CiAKICAgICB2b2lkIHNldHVwRm9yUmVwbGFjZSgpOwogCiAgICAgLy8gRklYTUU6IFRoZXNlIGFy
ZSBhbGwgZnVuY3Rpb25zIHdoaWNoIHN0YXJ0IGxvYWRzLiBXZSBoYXZlIHRvbyBtYW55LgotICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgbG9hZFVSTEludG9DaGlsZEZyYW1lKGNvbnN0IFVSTCYsIGNv
bnN0IFN0cmluZyYgcmVmZXJlciwgRnJhbWUqKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGxv
YWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdCYmLCBFdmVudCosIFJlZlB0cjxGb3JtU3Rh
dGU+JiYsIE9wdGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4mJiA9IFdURjo6bnVsbG9wdCk7IC8v
IENhbGxlZCBieSBzdWJtaXRGb3JtLCBjYWxscyBsb2FkUG9zdFJlcXVlc3QgYW5kIGxvYWRVUkwu
CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGxvYWQoRnJhbWVMb2FkUmVxdWVzdCYmKTsKQEAg
LTQyNSw2ICs0MjUsOCBAQCBwcml2YXRlOgogICAgIGVudW0gY2xhc3MgTG9hZENvbnRpbnVpbmdT
dGF0ZSA6IHVpbnQ4X3QgeyBOb3RDb250aW51aW5nLCBDb250aW51aW5nV2l0aFJlcXVlc3QsIENv
bnRpbnVpbmdXaXRoSGlzdG9yeUl0ZW0gfTsKICAgICBib29sIHNob3VsZFRyZWF0Q3VycmVudExv
YWRBc0NvbnRpbnVpbmdMb2FkKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50TG9hZENvbnRpbnVp
bmdTdGF0ZSAhPSBMb2FkQ29udGludWluZ1N0YXRlOjpOb3RDb250aW51aW5nOyB9CiAKKyAgICB2
b2lkIGxvYWRVUkxJbnRvQ2hpbGRGcmFtZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHJlZmVy
ZXIsIEZyYW1lKik7CisKICAgICBGcmFtZSYgbV9mcmFtZTsKICAgICBVbmlxdWVSZWY8RnJhbWVM
b2FkZXJDbGllbnQ+IG1fY2xpZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ckNsaWVudC5oCmluZGV4IGI2MjUzZTdhYWY5MzFhMmUyZDYzY2VhYjdlZDRkNDY5YzA1OWUyYjku
LjFlNTQyNWU5NDc3ODVmMThiZThiNTk5NDhlODk0YThkZjgzMmM5ZTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yODYsNyArMjg2LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBjYW5DYWNoZVBhZ2UoKSBjb25zdCA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChEb2N1bWVudExvYWRlcios
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSA9IDA7CiAK
LSAgICB2aXJ0dWFsIFJlZlB0cjxGcmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgVVJMJiwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQmLCBjb25zdCBTdHJpbmcmIHJlZmVy
cmVyKSA9IDA7CisgICAgdmlydHVhbCBSZWZQdHI8RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0IFN0
cmluZyYgbmFtZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50JikgPSAwOwogICAgIHZpcnR1YWwgUmVm
UHRyPFdpZGdldD4gY3JlYXRlUGx1Z2luKGNvbnN0IEludFNpemUmLCBIVE1MUGx1Z0luRWxlbWVu
dCYsIGNvbnN0IFVSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mLCBjb25zdCBTdHJpbmcmLCBib29sIGxvYWRNYW51YWxseSkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCByZWRpcmVjdERhdGFUb1BsdWdpbihXaWRnZXQmKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCmluZGV4IDFiZDNlNDJkNDY1NTU4M2I2ZDZlMmU3MTIx
MGMwNmNhYjllMTBhOWUuLjc1ODRhNGUzMTM0NDliMmU2ODllNDBiNjYyNGEzZTAzNjllMGMzZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcApAQCAtNjIsMTggKzYy
LDE3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CiAKLVN1YmZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcihGcmFtZSYgZnJhbWUpCi0gICAg
OiBtX2NvbnRhaW5zUGx1Z2lucyhmYWxzZSkKLSAgICAsIG1fZnJhbWUoZnJhbWUpCitGcmFtZUxv
YWRlcjo6U3ViZnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVyKEZyYW1lJiBmcmFtZSkKKyAgICA6
IG1fZnJhbWUoZnJhbWUpCiB7CiB9CiAKLXZvaWQgU3ViZnJhbWVMb2FkZXI6OmNsZWFyKCkKK3Zv
aWQgRnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVyOjpjbGVhcigpCiB7CiAgICAgbV9jb250YWlu
c1BsdWdpbnMgPSBmYWxzZTsKIH0KIAotYm9vbCBTdWJmcmFtZUxvYWRlcjo6cmVxdWVzdEZyYW1l
KEhUTUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXJFbGVtZW50LCBjb25zdCBTdHJpbmcmIHVybFN0
cmluZywgY29uc3QgQXRvbVN0cmluZyYgZnJhbWVOYW1lLCBMb2NrSGlzdG9yeSBsb2NrSGlzdG9y
eSwgTG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0KQorYm9vbCBGcmFtZUxv
YWRlcjo6U3ViZnJhbWVMb2FkZXI6OnJlcXVlc3RGcmFtZShIVE1MRnJhbWVPd25lckVsZW1lbnQm
IG93bmVyRWxlbWVudCwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IEF0b21TdHJpbmcm
IGZyYW1lTmFtZSwgTG9ja0hpc3RvcnkgbG9ja0hpc3RvcnksIExvY2tCYWNrRm9yd2FyZExpc3Qg
bG9ja0JhY2tGb3J3YXJkTGlzdCkKIHsKICAgICAvLyBTdXBwb3J0IGZvciA8ZnJhbWUgc3JjPSJq
YXZhc2NyaXB0OnN0cmluZyI+CiAgICAgVVJMIHNjcmlwdFVSTDsKQEAgLTExMiw3ICsxMTEsNyBA
QCBib29sIFN1YmZyYW1lTG9hZGVyOjpyZXF1ZXN0RnJhbWUoSFRNTEZyYW1lT3duZXJFbGVtZW50
JiBvd25lckVsZW1lbnQsIGNvbnN0IFN0cgogICAgIHJldHVybiB0cnVlOwogfQogICAgIAotYm9v
bCBTdWJmcmFtZUxvYWRlcjo6cmVzb3VyY2VXaWxsVXNlUGx1Z2luKGNvbnN0IFN0cmluZyYgdXJs
LCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQorYm9vbCBGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2Fk
ZXI6OnJlc291cmNlV2lsbFVzZVBsdWdpbihjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSkKIHsKICAgICBVUkwgY29tcGxldGVkVVJMOwogICAgIGlmICghdXJsLmlzRW1w
dHkoKSkKQEAgLTEyMiw3ICsxMjEsNyBAQCBib29sIFN1YmZyYW1lTG9hZGVyOjpyZXNvdXJjZVdp
bGxVc2VQbHVnaW4oY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZQogICAgIHJl
dHVybiBzaG91bGRVc2VQbHVnaW4oY29tcGxldGVkVVJMLCBtaW1lVHlwZSwgZmFsc2UsIHVzZUZh
bGxiYWNrKTsKIH0KIAotYm9vbCBTdWJmcmFtZUxvYWRlcjo6cGx1Z2luSXNMb2FkYWJsZShjb25z
dCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKK2Jvb2wgRnJhbWVMb2FkZXI6OlN1
YmZyYW1lTG9hZGVyOjpwbHVnaW5Jc0xvYWRhYmxlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIG1pbWVUeXBlKQogewogICAgIGF1dG8qIGRvY3VtZW50ID0gbV9mcmFtZS5kb2N1bWVudCgp
OwogCkBAIC0xNDksNyArMTQ4LDcgQEAgYm9vbCBTdWJmcmFtZUxvYWRlcjo6cGx1Z2luSXNMb2Fk
YWJsZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBTdWJmcmFtZUxvYWRlcjo6cmVxdWVzdFBsdWdpbihIVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50JiBvd25lckVsZW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IG1pbWVUeXBlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVjdG9y
PFN0cmluZz4mIHBhcmFtVmFsdWVzLCBib29sIHVzZUZhbGxiYWNrKQorYm9vbCBGcmFtZUxvYWRl
cjo6U3ViZnJhbWVMb2FkZXI6OnJlcXVlc3RQbHVnaW4oSFRNTFBsdWdJbkltYWdlRWxlbWVudCYg
b3duZXJFbGVtZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJh
bVZhbHVlcywgYm9vbCB1c2VGYWxsYmFjaykKIHsKICAgICAvLyBBcHBsaWNhdGlvbiBwbHVnLWlu
cyBhcmUgcGx1Zy1pbnMgaW1wbGVtZW50ZWQgYnkgdGhlIHVzZXIgYWdlbnQsIGZvciBleGFtcGxl
IFF0IHBsdWctaW5zLAogICAgIC8vIGFzIG9wcG9zZWQgdG8gdGhpcmQtcGFydHkgY29kZSBzdWNo
IGFzIEZsYXNoLiBUaGUgdXNlciBhZ2VudCBkZWNpZGVzIHdoZXRoZXIgb3Igbm90IHRoZXkgYXJl
CkBAIC0yMTgsNyArMjE3LDcgQEAgc3RhdGljIHZvaWQgbG9nUGx1Z2luUmVxdWVzdChQYWdlKiBw
YWdlLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIHUKICAgICBwYWdlLT5z
YXdQbHVnaW4oZGVzY3JpcHRpb24pOwogfQogCi1ib29sIFN1YmZyYW1lTG9hZGVyOjpyZXF1ZXN0
T2JqZWN0KEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQmIG93bmVyRWxlbWVudCwgY29uc3QgU3RyaW5n
JiB1cmwsIGNvbnN0IEF0b21TdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBwYXJhbVZhbHVlcykKK2Jvb2wgRnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVyOjpyZXF1ZXN0
T2JqZWN0KEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQmIG93bmVyRWxlbWVudCwgY29uc3QgU3RyaW5n
JiB1cmwsIGNvbnN0IEF0b21TdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBwYXJhbVZhbHVlcykKIHsKICAgICBpZiAodXJsLmlzRW1wdHkoKSAmJiBtaW1lVHlwZS5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI0Niw3ICsyNDUsNyBAQCBib29sIFN1
YmZyYW1lTG9hZGVyOjpyZXF1ZXN0T2JqZWN0KEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQmIG93bmVy
RWxlbWVudCwgY29uc3QgUwogICAgIHJldHVybiBsb2FkT3JSZWRpcmVjdFN1YmZyYW1lKG93bmVy
RWxlbWVudCwgY29tcGxldGVkVVJMLCBmcmFtZU5hbWUsIExvY2tIaXN0b3J5OjpZZXMsIExvY2tC
YWNrRm9yd2FyZExpc3Q6Olllcyk7CiB9CiAKLVJlZlB0cjxXaWRnZXQ+IFN1YmZyYW1lTG9hZGVy
OjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IEludFNpemUmIHNpemUsIEhUTUxBcHBsZXRF
bGVtZW50JiBlbGVtZW50LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKQorUmVmUHRyPFdpZGdldD4gRnJhbWVMb2FkZXI6
OlN1YmZyYW1lTG9hZGVyOjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IEludFNpemUmIHNp
emUsIEhUTUxBcHBsZXRFbGVtZW50JiBlbGVtZW50LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFy
YW1OYW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKQogewogICAgIFN0cmlu
ZyBiYXNlVVJMU3RyaW5nOwogICAgIFN0cmluZyBjb2RlQmFzZVVSTFN0cmluZzsKQEAgLTI5Niw3
ICsyOTUsNyBAQCBSZWZQdHI8V2lkZ2V0PiBTdWJmcmFtZUxvYWRlcjo6Y3JlYXRlSmF2YUFwcGxl
dFdpZGdldChjb25zdCBJbnRTaXplJiBzaXplLCBIVE1MQQogICAgIHJldHVybiB3aWRnZXQ7CiB9
CiAKLUZyYW1lKiBTdWJmcmFtZUxvYWRlcjo6bG9hZE9yUmVkaXJlY3RTdWJmcmFtZShIVE1MRnJh
bWVPd25lckVsZW1lbnQmIG93bmVyRWxlbWVudCwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBjb25z
dCBBdG9tU3RyaW5nJiBmcmFtZU5hbWUsIExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5LCBMb2NrQmFj
a0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QpCitGcmFtZSogRnJhbWVMb2FkZXI6OlN1
YmZyYW1lTG9hZGVyOjpsb2FkT3JSZWRpcmVjdFN1YmZyYW1lKEhUTUxGcmFtZU93bmVyRWxlbWVu
dCYgb3duZXJFbGVtZW50LCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IEF0b21TdHJpbmcm
IGZyYW1lTmFtZSwgTG9ja0hpc3RvcnkgbG9ja0hpc3RvcnksIExvY2tCYWNrRm9yd2FyZExpc3Qg
bG9ja0JhY2tGb3J3YXJkTGlzdCkKIHsKICAgICBhdXRvJiBpbml0aWF0aW5nRG9jdW1lbnQgPSBv
d25lckVsZW1lbnQuZG9jdW1lbnQoKTsKIApAQCAtMzE2LDcgKzMxNSw3IEBAIEZyYW1lKiBTdWJm
cmFtZUxvYWRlcjo6bG9hZE9yUmVkaXJlY3RTdWJmcmFtZShIVE1MRnJhbWVPd25lckVsZW1lbnQm
IG93bmVyRWxlbWVuCiAgICAgcmV0dXJuIG93bmVyRWxlbWVudC5jb250ZW50RnJhbWUoKTsKIH0K
IAotUmVmUHRyPEZyYW1lPiBTdWJmcmFtZUxvYWRlcjo6bG9hZFN1YmZyYW1lKEhUTUxGcmFtZU93
bmVyRWxlbWVudCYgb3duZXJFbGVtZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKQorUmVmUHRyPEZyYW1lPiBGcmFtZUxvYWRlcjo6
U3ViZnJhbWVMb2FkZXI6OmxvYWRTdWJmcmFtZShIVE1MRnJhbWVPd25lckVsZW1lbnQmIG93bmVy
RWxlbWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiByZWZlcnJlcikKIHsKICAgICBSZWY8RnJhbWU+IHByb3RlY3QobV9mcmFtZSk7CiAgICAgYXV0
byBkb2N1bWVudCA9IG1ha2VSZWYob3duZXJFbGVtZW50LmRvY3VtZW50KCkpOwpAQCAtMzMyLDE5
ICszMzEsMjUgQEAgUmVmUHRyPEZyYW1lPiBTdWJmcmFtZUxvYWRlcjo6bG9hZFN1YmZyYW1lKEhU
TUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXJFbGVtZW50LAogICAgIGlmICghbV9mcmFtZS5wYWdl
KCkgfHwgbV9mcmFtZS5wYWdlKCktPnN1YmZyYW1lQ291bnQoKSA+PSBQYWdlOjptYXhOdW1iZXJP
ZkZyYW1lcykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKKyAgICAvLyBQcmV2ZW50IGluaXRp
YWwgZW1wdHkgZG9jdW1lbnQgbG9hZCBmcm9tIHRyaWdnZXJpbmcgbG9hZCBldmVudHMuCisgICAg
ZG9jdW1lbnQtPmluY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKKworICAgIGF1dG8gZnJh
bWUgPSBtX2ZyYW1lLmxvYWRlcigpLmNsaWVudCgpLmNyZWF0ZUZyYW1lKG5hbWUsIG93bmVyRWxl
bWVudCk7CisgICAgaWYgKCFmcmFtZSkgIHsKKyAgICAgICAgbV9mcmFtZS5sb2FkZXIoKS5jaGVj
a0NhbGxJbXBsaWNpdENsb3NlKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KICAg
ICBSZWZlcnJlclBvbGljeSBwb2xpY3kgPSBvd25lckVsZW1lbnQucmVmZXJyZXJQb2xpY3koKTsK
ICAgICBpZiAocG9saWN5ID09IFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmluZykKICAgICAgICAg
cG9saWN5ID0gZG9jdW1lbnQtPnJlZmVycmVyUG9saWN5KCk7CiAgICAgU3RyaW5nIHJlZmVycmVy
VG9Vc2UgPSBTZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVSZWZlcnJlckhlYWRlcihwb2xpY3ksIHVy
bCwgcmVmZXJyZXIpOwogCi0gICAgLy8gUHJldmVudCBpbml0aWFsIGVtcHR5IGRvY3VtZW50IGxv
YWQgZnJvbSB0cmlnZ2VyaW5nIGxvYWQgZXZlbnRzLgotICAgIGRvY3VtZW50LT5pbmNyZW1lbnRM
b2FkRXZlbnREZWxheUNvdW50KCk7Ci0KLSAgICBhdXRvIGZyYW1lID0gbV9mcmFtZS5sb2FkZXIo
KS5jbGllbnQoKS5jcmVhdGVGcmFtZSh1cmwsIG5hbWUsIG93bmVyRWxlbWVudCwgcmVmZXJyZXJU
b1VzZSk7CisgICAgbV9mcmFtZS5sb2FkZXIoKS5sb2FkVVJMSW50b0NoaWxkRnJhbWUodXJsLCBy
ZWZlcnJlclRvVXNlLCBmcmFtZS5nZXQoKSk7CiAKICAgICBkb2N1bWVudC0+ZGVjcmVtZW50TG9h
ZEV2ZW50RGVsYXlDb3VudCgpOwogCi0gICAgaWYgKCFmcmFtZSkgIHsKKyAgICAvLyBUaGUgZnJh
bWUncyBvbmxvYWQgaGFuZGxlciBtYXkgaGF2ZSByZW1vdmVkIGl0IGZyb20gdGhlIGRvY3VtZW50
LgorICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT50cmVlKCkucGFyZW50KCkpIHsKICAgICAgICAg
bV9mcmFtZS5sb2FkZXIoKS5jaGVja0NhbGxJbXBsaWNpdENsb3NlKCk7CiAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIH0KQEAgLTM4Miw3ICszODcsNyBAQCBSZWZQdHI8RnJhbWU+IFN1YmZy
YW1lTG9hZGVyOjpsb2FkU3ViZnJhbWUoSFRNTEZyYW1lT3duZXJFbGVtZW50JiBvd25lckVsZW1l
bnQsCiAgICAgcmV0dXJuIGZyYW1lOwogfQogCi1ib29sIFN1YmZyYW1lTG9hZGVyOjpzaG91bGRV
c2VQbHVnaW4oY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgaGFz
RmFsbGJhY2ssIGJvb2wmIHVzZUZhbGxiYWNrKQorYm9vbCBGcmFtZUxvYWRlcjo6U3ViZnJhbWVM
b2FkZXI6OnNob3VsZFVzZVBsdWdpbihjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSwgYm9vbCBoYXNGYWxsYmFjaywgYm9vbCYgdXNlRmFsbGJhY2spCiB7CiAgICAgaWYgKG1f
ZnJhbWUubG9hZGVyKCkuY2xpZW50KCkuc2hvdWxkQWx3YXlzVXNlUGx1Z2luRG9jdW1lbnQobWlt
ZVR5cGUpKSB7CiAgICAgICAgIHVzZUZhbGxiYWNrID0gZmFsc2U7CkBAIC0zOTcsNyArNDAyLDcg
QEAgYm9vbCBTdWJmcmFtZUxvYWRlcjo6c2hvdWxkVXNlUGx1Z2luKGNvbnN0IFVSTCYgdXJsLCBj
b25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib28KICAgICByZXR1cm4gb2JqZWN0VHlwZSA9PSBPYmpl
Y3RDb250ZW50VHlwZTo6Tm9uZSB8fCBvYmplY3RUeXBlID09IE9iamVjdENvbnRlbnRUeXBlOjpQ
bHVnSW47CiB9CiAKLWJvb2wgU3ViZnJhbWVMb2FkZXI6OmxvYWRQbHVnaW4oSFRNTFBsdWdJbklt
YWdlRWxlbWVudCYgcGx1Z2luRWxlbWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
bWltZVR5cGUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgcGFyYW1WYWx1ZXMsIGJvb2wgdXNlRmFsbGJhY2spCitib29sIEZyYW1lTG9hZGVy
OjpTdWJmcmFtZUxvYWRlcjo6bG9hZFBsdWdpbihIVE1MUGx1Z0luSW1hZ2VFbGVtZW50JiBwbHVn
aW5FbGVtZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZh
bHVlcywgYm9vbCB1c2VGYWxsYmFjaykKIHsKICAgICBpZiAodXNlRmFsbGJhY2spCiAgICAgICAg
IHJldHVybiBmYWxzZTsKQEAgLTQ0MCwxMyArNDQ1LDEzIEBAIGJvb2wgU3ViZnJhbWVMb2FkZXI6
OmxvYWRQbHVnaW4oSFRNTFBsdWdJbkltYWdlRWxlbWVudCYgcGx1Z2luRWxlbWVudCwgY29uc3Qg
VVJMCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVVSTCBTdWJmcmFtZUxvYWRlcjo6Y29tcGxldGVV
UkwoY29uc3QgU3RyaW5nJiB1cmwpIGNvbnN0CitVUkwgRnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9h
ZGVyOjpjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmIHVybCkgY29uc3QKIHsKICAgICBBU1NFUlQo
bV9mcmFtZS5kb2N1bWVudCgpKTsKICAgICByZXR1cm4gbV9mcmFtZS5kb2N1bWVudCgpLT5jb21w
bGV0ZVVSTCh1cmwpOwogfQogCi1ib29sIFN1YmZyYW1lTG9hZGVyOjpzaG91bGRDb252ZXJ0SW52
YWxpZFVSTHNUb0JsYW5rKCkgY29uc3QKK2Jvb2wgRnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVy
OjpzaG91bGRDb252ZXJ0SW52YWxpZFVSTHNUb0JsYW5rKCkgY29uc3QKIHsKICAgICByZXR1cm4g
bV9mcmFtZS5zZXR0aW5ncygpLnNob3VsZENvbnZlcnRJbnZhbGlkVVJMc1RvQmxhbmsoKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmgKaW5kZXggNDY1M2VhMTc4MjQ0NmYx
YzRjMmZmODg3MmJkYjk4NmQwMmE2MjA2Ni4uYTJjZTliOTYwMDc2NWU0MjYxOGMyZTZiNDQwOGYw
OWYzNjMwNzE1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9h
ZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmgKQEAgLTMw
LDcgKzMwLDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVz
LmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgog
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgpAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBJbnRTaXplOwogY2xhc3MgV2lkZ2V0OwogCiAv
LyBUaGlzIGlzIGEgc2xpZ2h0IG1pc25vbWVyLiBJdCBoYW5kbGVzIHRoZSBoaWdoZXIgbGV2ZWwg
bG9naWMgb2YgbG9hZGluZyBib3RoIHN1YmZyYW1lcyBhbmQgcGx1Z2lucy4KLWNsYXNzIFN1YmZy
YW1lTG9hZGVyIHsKK2NsYXNzIEZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlciB7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoU3ViZnJhbWVMb2FkZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBTdWJmcmFtZUxvYWRlcihGcmFtZSYpOwpAQCAtNzgs
NyArNzgsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBzaG91bGRDb252ZXJ0SW52YWxpZFVSTHNU
b0JsYW5rKCkgY29uc3Q7CiAKLSAgICBib29sIG1fY29udGFpbnNQbHVnaW5zOworICAgIGJvb2wg
bV9jb250YWluc1BsdWdpbnMgeyBmYWxzZSB9OwogICAgIEZyYW1lJiBtX2ZyYW1lOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggOTZhNWQ5ZGEyOGY3YzUyMGIxN2Qx
MWQ5NjI5MjZmZjBmM2VhNjZmZS4uNDhlYTQ2ODJjMDk0NWE0MDkwODFhYjAxODE0MWU4NjUzZWVk
YmRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0xNTcxLDggKzE1NzEs
NyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRv
RG93bmxvYWQoRG9jdW1lbnRMb2FkZXIgKmRvYwogICAgIG1fZnJhbWUtPmNvbnZlcnRNYWluUmVz
b3VyY2VMb2FkVG9Eb3dubG9hZChkb2N1bWVudExvYWRlciwgcmVxdWVzdCwgcmVzcG9uc2UpOwog
fQogCi1SZWZQdHI8RnJhbWU+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFtZShjb25z
dCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBuYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQmIG93
bmVyRWxlbWVudCwKLSAgICBjb25zdCBTdHJpbmcmIHJlZmVycmVyKQorUmVmUHRyPEZyYW1lPiBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29uc3QgU3RyaW5nJiBuYW1lLCBIVE1M
RnJhbWVPd25lckVsZW1lbnQmIG93bmVyRWxlbWVudCkKIHsKICAgICBhdXRvKiB3ZWJQYWdlID0g
bV9mcmFtZS0+cGFnZSgpOwogCkBAIC0xNTg1LDE1ICsxNTg0LDYgQEAgUmVmUHRyPEZyYW1lPiBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0
cmluZyYgbmEKICAgICBpZiAoIWNvcmVTdWJmcmFtZS0+cGFnZSgpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAotICAgIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5sb2FkVVJMSW50
b0NoaWxkRnJhbWUodXJsLCByZWZlcnJlciwgY29yZVN1YmZyYW1lKTsKLQotICAgIC8vIFRoZSBm
cmFtZSdzIG9ubG9hZCBoYW5kbGVyIG1heSBoYXZlIHJlbW92ZWQgaXQgZnJvbSB0aGUgZG9jdW1l
bnQuCi0gICAgaWYgKCFzdWJmcmFtZS0+Y29yZUZyYW1lKCkpCi0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIEFTU0VSVChzdWJmcmFtZS0+Y29yZUZyYW1lKCkgPT0gY29yZVN1YmZyYW1lKTsK
LSAgICBpZiAoIWNvcmVTdWJmcmFtZS0+dHJlZSgpLnBhcmVudCgpKQotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLQogICAgIHJldHVybiBjb3JlU3ViZnJhbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmgKaW5kZXggZGIyN2I3N2UzZTJlZjlhNDc1OTM5MTVlOGY1YWUwNGQ0OTVkNGFi
ZC4uMGY4ZWIwOTNmZjc2ZTU3NzM0MDU2ZTYzY2UzNzY3YjJlZjY3MDllMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmgKQEAgLTIxNCw3ICsyMTQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
Y2FuQ2FjaGVQYWdlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBjb252ZXJ0TWFpblJlc291cmNl
TG9hZFRvRG93bmxvYWQoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgZmluYWw7
CiAKLSAgICBSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0IFVSTCYsIGNv
bnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50JiwgY29uc3Qg
U3RyaW5nJiByZWZlcnJlcikgZmluYWw7CisgICAgUmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBjcmVh
dGVGcmFtZShjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVu
dCYpIGZpbmFsOwogCiAgICAgUmVmUHRyPFdlYkNvcmU6OldpZGdldD4gY3JlYXRlUGx1Z2luKGNv
bnN0IFdlYkNvcmU6OkludFNpemUmLCBXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudCYsIGNvbnN0
IFVSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25z
dCBTdHJpbmcmLCBib29sIGxvYWRNYW51YWxseSkgZmluYWw7CiAgICAgdm9pZCByZWRpcmVjdERh
dGFUb1BsdWdpbihXZWJDb3JlOjpXaWRnZXQmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oCmluZGV4IDcxOTBiOGNiNTAzNDI1OTg4ZWRkMzczNjQwODlmY2I5ODEzYThmNjkuLmEyNTVh
MWNiMDBiNGUwNGY4ODE5YmNlZjY5MWIxZTY3NDdmN2Y5OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaApAQCAtMjA1LDggKzIwNSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNldFRpdGxl
KGNvbnN0IFdlYkNvcmU6OlN0cmluZ1dpdGhEaXJlY3Rpb24mLCBjb25zdCBVUkwmKSBmaW5hbDsK
IAotICAgIFJlZlB0cjxXZWJDb3JlOjpGcmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgVVJMJiwgY29u
c3QgV1RGOjpTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCYsCi0g
ICAgICAgIGNvbnN0IFdURjo6U3RyaW5nJiByZWZlcnJlcikgZmluYWw7CisgICAgUmVmUHRyPFdl
YkNvcmU6OkZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBXVEY6OlN0cmluZyYgbmFtZSwgV2ViQ29y
ZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50JikgZmluYWw7CiAgICAgUmVmUHRyPFdlYkNvcmU6Oldp
ZGdldD4gY3JlYXRlUGx1Z2luKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBXZWJDb3JlOjpIVE1M
UGx1Z0luRWxlbWVudCYsIGNvbnN0IFVSTCYsCiAgICAgY29uc3QgVmVjdG9yPFdURjo6U3RyaW5n
PiYsIGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBjb25zdCBXVEY6OlN0cmluZyYsIGJvb2wp
IGZpbmFsOwogICAgIHZvaWQgcmVkaXJlY3REYXRhVG9QbHVnaW4oV2ViQ29yZTo6V2lkZ2V0Jikg
ZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDk2YTg4OTE2NzAwN2ZjNjFl
NzA5M2U5ZTRiMWVkMGFhMjkxMGFlOTEuLjZkMjljYTBhNmJhNmQzMDQ5YWRkY2ZlNGZiMTMxNDE4
MTE3ZmVkMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC0xNjE4LDggKzE2MTgs
NyBAQCBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5DYWNoZVBhZ2UoKSBjb25zdAogICAg
IHJldHVybiB0cnVlOwogfQogCi1SZWZQdHI8V2ViQ29yZTo6RnJhbWU+IFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpjcmVhdGVGcmFtZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBuYW1lLCBX
ZWJDb3JlOjpIVE1MRnJhbWVPd25lckVsZW1lbnQmIG93bmVyRWxlbWVudCwKLSAgICBjb25zdCBT
dHJpbmcmIHJlZmVycmVyKQorUmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBXZWJGcmFtZUxvYWRlckNs
aWVudDo6Y3JlYXRlRnJhbWUoY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpIVE1MRnJhbWVP
d25lckVsZW1lbnQmIG93bmVyRWxlbWVudCkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7CiAgICAgCkBAIC0xNjM5LDEyICsxNjM4LDYgQEAgUmVmUHRyPFdlYkNvcmU6OkZyYW1l
PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFMKICAgICBpZiAoIXJlc3VsdC0+cGFnZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAK
LSAgICBjb3JlKG1fd2ViRnJhbWUuZ2V0KCkpLT5sb2FkZXIoKS5sb2FkVVJMSW50b0NoaWxkRnJh
bWUodXJsLCByZWZlcnJlciwgcmVzdWx0LmdldCgpKTsKLQotICAgIC8vIFRoZSBmcmFtZSdzIG9u
bG9hZCBoYW5kbGVyIG1heSBoYXZlIHJlbW92ZWQgaXQgZnJvbSB0aGUgZG9jdW1lbnQuCi0gICAg
aWYgKCFyZXN1bHQtPnRyZWUoKS5wYXJlbnQoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0K
ICAgICByZXR1cm4gcmVzdWx0OwogCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA1MzliZTc3OTMwMTMwY2VkYmI4NDM4NWEy
ODY1OWU4ZTEwNDRmNjU2Li5mODMyNzA5OTUwMzVmMDBhMWE2Yjg2OTIzNzk2ZjE3MDQwZGU2NWIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC05ODUsOCArOTg1LDcgQEAgYm9v
bCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuQ2FjaGVQYWdlKCkgY29uc3QKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotUmVmUHRyPEZyYW1lPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJh
bWUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbmFtZSwgSFRNTEZyYW1lT3duZXJFbGVt
ZW50JiBvd25lckVsZW1lbnQsCi0gICAgY29uc3QgU3RyaW5nJiByZWZlcnJlcikKK1JlZlB0cjxG
cmFtZT4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZyYW1lKGNvbnN0IFN0cmluZyYgbmFt
ZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50JiBvd25lckVsZW1lbnQpCiB7CiAgICAgRnJhbWUqIGNv
cmVGcmFtZSA9IGNvcmUobV93ZWJGcmFtZSk7CiAgICAgQVNTRVJUKGNvcmVGcmFtZSk7CkBAIC05
OTksMTIgKzk5OCw2IEBAIFJlZlB0cjxGcmFtZT4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0
ZUZyYW1lKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG5hCiAgICAgY29yZUZyYW1lLT50
cmVlKCkuYXBwZW5kQ2hpbGQoKmNoaWxkRnJhbWUpOwogICAgIGNoaWxkRnJhbWUtPmluaXQoKTsK
IAotICAgIGNvcmVGcmFtZS0+bG9hZGVyKCkubG9hZFVSTEludG9DaGlsZEZyYW1lKHVybCwgcmVm
ZXJyZXIsIGNoaWxkRnJhbWUuZ2V0KCkpOwotCi0gICAgLy8gVGhlIGZyYW1lJ3Mgb25sb2FkIGhh
bmRsZXIgbWF5IGhhdmUgcmVtb3ZlZCBpdCBmcm9tIHRoZSBkb2N1bWVudC4KLSAgICBpZiAoIWNo
aWxkRnJhbWUtPnRyZWUoKS5wYXJlbnQoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KICAg
ICByZXR1cm4gY2hpbGRGcmFtZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXgg
ZDNhNzNhNTEzOTFmYzI2ZGEyZmRhOTBhMDg1NTBmZGY2NGYyZGUwMS4uYjhlN2M3ZGU0OTNhNTcz
ZDA1YWZjMTVhMGU4ZTY5NzQ4YTExMzdmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBA
IC0xNzcsOCArMTc3LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBjYW5DYWNoZVBhZ2UoKSBjb25z
dCBvdmVycmlkZTsKIAotICAgIFJlZlB0cjxXZWJDb3JlOjpGcmFtZT4gY3JlYXRlRnJhbWUoY29u
c3QgVVJMJiwgY29uc3QgV1RGOjpTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVy
RWxlbWVudCYsCi0gICAgICAgIGNvbnN0IFdURjo6U3RyaW5nJiByZWZlcnJlcikgb3ZlcnJpZGU7
CisgICAgUmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBXVEY6OlN0cmlu
ZyYgbmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50Jikgb3ZlcnJpZGU7CiAgICAg
UmVmUHRyPFdlYkNvcmU6OldpZGdldD4gY3JlYXRlUGx1Z2luKGNvbnN0IFdlYkNvcmU6OkludFNp
emUmLCBXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IFZlY3Rv
cjxXVEY6OlN0cmluZz4mLCBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgY29uc3QgV1RGOjpT
dHJpbmcmLCBib29sIGxvYWRNYW51YWxseSkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZWRpcmVjdERh
dGFUb1BsdWdpbihXZWJDb3JlOjpXaWRnZXQmKSBvdmVycmlkZTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>