<?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>144035</bug_id>
          
          <creation_ts>2015-04-21 20:16:29 -0700</creation_ts>
          <short_desc>Create RenderRubyText for &lt;rt&gt; only when the parent renderer is a RenderRuby.</short_desc>
          <delta_ts>2015-04-22 19:18:07 -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>Layout and Rendering</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1087299</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2015-04-21 20:16:29 -0700</bug_when>
    <thetext>Otherwise create a generic renderer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087310</commentid>
    <comment_count>1</comment_count>
      <attachid>251299</attachid>
    <who name="alan">zalan</who>
    <bug_when>2015-04-21 20:48:24 -0700</bug_when>
    <thetext>Created attachment 251299
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087311</commentid>
    <comment_count>2</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2015-04-21 20:48:39 -0700</bug_when>
    <thetext>EWSing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087322</commentid>
    <comment_count>3</comment_count>
      <attachid>251301</attachid>
    <who name="alan">zalan</who>
    <bug_when>2015-04-21 22:23:12 -0700</bug_when>
    <thetext>Created attachment 251301
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087379</commentid>
    <comment_count>4</comment_count>
      <attachid>251317</attachid>
    <who name="alan">zalan</who>
    <bug_when>2015-04-22 08:18:09 -0700</bug_when>
    <thetext>Created attachment 251317
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087410</commentid>
    <comment_count>5</comment_count>
      <attachid>251326</attachid>
    <who name="alan">zalan</who>
    <bug_when>2015-04-22 09:20:25 -0700</bug_when>
    <thetext>Created attachment 251326
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087426</commentid>
    <comment_count>6</comment_count>
      <attachid>251326</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-22 09:46:36 -0700</bug_when>
    <thetext>Comment on attachment 251326
Patch

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

We have similar requirements in tables, but this seems like a different way of resolving the problem. Could you double check that we can’t do this the way we do it for tables? I guess in the case of tables, if there is no table for the cell, it creates an anonymous table.

&gt; Source/WebCore/ChangeLog:8
&gt; +        RenderRubyText requires its parent to be RenderRubyRun.

Sounds like a simple straightforward fix. You’d just have to pass the context in to the function creating the renderer.

&gt; Source/WebCore/ChangeLog:10
&gt; +        This patch also moves ruby renderer initialization logic from RenderElement::createFor() to
&gt; +        HTMLRTElement::createElementRenderer() and HTMLRubyElement::createElementRenderer.

Doing this seems to have a significant additional refactoring cost, not required for the bug fix above. Are you sure this is the best way to accomplish this? Why do we need to combine these two changes? Could we get the insertion position in to RenderElement::createFor without changing the arguments to createElementRenderer? If not, could we at least do it without adding the two new DOM classes? That seems like an acceptable additional change, but easily separable from the main change. Is that simply to avoid adding an argument to RenderElement::createFor?

&gt; Source/WebCore/html/HTMLRTElement.h:37
&gt; +class HTMLRTElement final : public HTMLElement {

I know this sounds strange, but generally if the element class is not visible in the DOM, then we don’t use the HTML prefix on it. We’d just call this RubyTextElement as a way to remind us that there is no DOM class named HTMLRTElement. I guess it’s OK to not do that here.

&gt; Source/WebCore/html/HTMLRTElement.h:55
&gt; +inline RenderPtr&lt;RenderElement&gt; HTMLRTElement::createElementRenderer(Ref&lt;RenderStyle&gt;&amp;&amp; style, const RenderTreePosition&amp; insertionPosition)

Given that this is a virtual function, it doesn’t seem valuable to mark it inline and put it in a header. I guess you just wanted to save the trouble of having a .cpp file?

&gt; Source/WebCore/html/HTMLRTElement.h:58
&gt; +    if (isRuby(&amp;insertionPosition.parent()))

Why is the &quot;&amp;&quot; needed here? Can we overload isRuby so it works on a reference?

&gt; Source/WebCore/html/HTMLRubyElement.h:34
&gt; +class HTMLRubyElement final : public HTMLElement {

I know this sounds strange, but generally if the element class is not visible in the DOM, then we don’t use the HTML prefix on it. We’d just call this RubyElement as a way to remind us that there is no DOM class named HTMLRubyElement. I guess it’s OK to not do that here.

&gt; Source/WebCore/html/HTMLRubyElement.h:52
&gt; +inline RenderPtr&lt;RenderElement&gt; HTMLRubyElement::createElementRenderer(Ref&lt;RenderStyle&gt;&amp;&amp; style, const RenderTreePosition&amp; insertionPosition)

Given that this is a virtual function, it doesn’t seem valuable to mark it inline and put it in a header. I guess you just wanted to save the trouble of having a .cpp file?

&gt; Source/WebCore/html/HTMLRubyElement.h:54
&gt; +    if (style.get().display() == INLINE)

The syntax style-&gt;display() also works on a Ref.

&gt; Source/WebCore/style/RenderTreePosition.cpp:53
&gt; +RenderTreePosition::RenderTreePosition(RenderView&amp; root)
&gt; +    : m_parent(root)
&gt; +    , m_hasValidNextSibling(true)
&gt; +{
&gt; +}
&gt; +
&gt; +RenderTreePosition::RenderTreePosition(RenderElement&amp; parent)
&gt; +    : m_parent(parent)
&gt; +{
&gt; +}
&gt; +
&gt; +RenderTreePosition::RenderTreePosition(RenderElement&amp; parent, RenderObject* nextSibling)
&gt; +    : m_parent(parent)
&gt; +    , m_nextSibling(nextSibling)
&gt; +    , m_hasValidNextSibling(true)
&gt; +{
&gt; +}

I think these constructors should be inlined.

&gt; Source/WebCore/style/RenderTreePosition.h:41
&gt; +    RenderElement&amp; parent() { return m_parent; }
&gt; +    const RenderElement&amp; parent() const { return m_parent; }

Doesn’t make sense that a const RenderTreePosition yields up a const RenderElement&amp;; I think even a const RenderTreePosition could just yield a RenderElement&amp;. After all, the const-ness of the position is about whether the position is the same, and seems to have no bearing on whether the element itself can be modified.

&gt; Source/WebCore/style/RenderTreePosition.h:64
&gt; +};
&gt; +
&gt; +
&gt; +inline bool RenderTreePosition::canInsert(RenderElement&amp; renderer) const

Extra blank line here. Should just be one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087431</commentid>
    <comment_count>7</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-04-22 10:01:20 -0700</bug_when>
    <thetext>Having these ruby-specific cases in RenderElement::createFor is already pretty ugly and passing the context uglifies it further. That&apos;s why I suggested that we might want to refactor along these lines. If we need a minimal easy-to-merge fix then this really should be done in two steps.

You should add radar number (if any) here and to the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087559</commentid>
    <comment_count>8</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2015-04-22 13:21:39 -0700</bug_when>
    <thetext>&gt; Doing this seems to have a significant additional refactoring cost, not
&gt; required for the bug fix above. Are you sure this is the best way to
&gt; accomplish this? Why do we need to combine these two changes? Could we get
bug 144058

&gt; I know this sounds strange, but generally if the element class is not
&gt; visible in the DOM, then we don’t use the HTML prefix on it. We’d just call
&gt; this RubyTextElement as a way to remind us that there is no DOM class named
&gt; HTMLRTElement. I guess it’s OK to not do that here.
Fixed. I actually prefer RubyTextElement to HTMLRTElement.

&gt; 
&gt; &gt; Source/WebCore/html/HTMLRTElement.h:55
&gt; &gt; +inline RenderPtr&lt;RenderElement&gt; HTMLRTElement::createElementRenderer(Ref&lt;RenderStyle&gt;&amp;&amp; style, const RenderTreePosition&amp; insertionPosition)
&gt; 
&gt; Given that this is a virtual function, it doesn’t seem valuable to mark it
&gt; inline and put it in a header. I guess you just wanted to save the trouble
&gt; of having a .cpp file?
Fixed. (added .cpp)

&gt; &gt; Source/WebCore/html/HTMLRubyElement.h:34
&gt; &gt; +class HTMLRubyElement final : public HTMLElement {
&gt; 
&gt; I know this sounds strange, but generally if the element class is not
&gt; visible in the DOM, then we don’t use the HTML prefix on it. We’d just call
&gt; this RubyElement as a way to remind us that there is no DOM class named
&gt; HTMLRubyElement. I guess it’s OK to not do that here.
Fixed.

&gt; 
&gt; &gt; Source/WebCore/html/HTMLRubyElement.h:52
&gt; &gt; +inline RenderPtr&lt;RenderElement&gt; HTMLRubyElement::createElementRenderer(Ref&lt;RenderStyle&gt;&amp;&amp; style, const RenderTreePosition&amp; insertionPosition)
&gt; 
&gt; Given that this is a virtual function, it doesn’t seem valuable to mark it
&gt; inline and put it in a header. I guess you just wanted to save the trouble
&gt; of having a .cpp file?
Fixed. (added .cpp)

&gt; 
&gt; &gt; Source/WebCore/html/HTMLRubyElement.h:54
&gt; &gt; +    if (style.get().display() == INLINE)
&gt; 
&gt; The syntax style-&gt;display() also works on a Ref.
Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087610</commentid>
    <comment_count>9</comment_count>
      <attachid>251374</attachid>
    <who name="alan">zalan</who>
    <bug_when>2015-04-22 15:28:10 -0700</bug_when>
    <thetext>Created attachment 251374
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087611</commentid>
    <comment_count>10</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2015-04-22 15:29:31 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebCore/html/HTMLRTElement.h:58
&gt; &gt; +    if (isRuby(&amp;insertionPosition.parent()))
&gt; 
&gt; Why is the &quot;&amp;&quot; needed here? Can we overload isRuby so it works on a
&gt; reference?
Fixed.

&gt; &gt; Source/WebCore/style/RenderTreePosition.cpp:53
&gt; &gt; +RenderTreePosition::RenderTreePosition(RenderView&amp; root)
&gt; &gt; +    : m_parent(root)
&gt; &gt; +    , m_hasValidNextSibling(true)
&gt; &gt; +{
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +RenderTreePosition::RenderTreePosition(RenderElement&amp; parent)
&gt; &gt; +    : m_parent(parent)
&gt; &gt; +{
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +RenderTreePosition::RenderTreePosition(RenderElement&amp; parent, RenderObject* nextSibling)
&gt; &gt; +    : m_parent(parent)
&gt; &gt; +    , m_nextSibling(nextSibling)
&gt; &gt; +    , m_hasValidNextSibling(true)
&gt; &gt; +{
&gt; &gt; +}
&gt; 
&gt; I think these constructors should be inlined.
Fixed.

&gt; 
&gt; &gt; Source/WebCore/style/RenderTreePosition.h:41
&gt; &gt; +    RenderElement&amp; parent() { return m_parent; }
&gt; &gt; +    const RenderElement&amp; parent() const { return m_parent; }
&gt; 
&gt; Doesn’t make sense that a const RenderTreePosition yields up a const
&gt; RenderElement&amp;; I think even a const RenderTreePosition could just yield a
&gt; RenderElement&amp;. After all, the const-ness of the position is about whether
&gt; the position is the same, and seems to have no bearing on whether the
&gt; element itself can be modified.
Fixed.

&gt; 
&gt; &gt; Source/WebCore/style/RenderTreePosition.h:64
&gt; &gt; +};
&gt; &gt; +
&gt; &gt; +
&gt; &gt; +inline bool RenderTreePosition::canInsert(RenderElement&amp; renderer) const
&gt; 
&gt; Extra blank line here. Should just be one.
Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087695</commentid>
    <comment_count>11</comment_count>
      <attachid>251374</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-22 19:18:03 -0700</bug_when>
    <thetext>Comment on attachment 251374
Patch

Clearing flags on attachment: 251374

Committed r183160: &lt;http://trac.webkit.org/changeset/183160&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087696</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-22 19:18:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251299</attachid>
            <date>2015-04-21 20:48:24 -0700</date>
            <delta_ts>2015-04-21 22:23:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144035-20150421204721.patch</filename>
            <type>text/plain</type>
            <size>156163</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzMDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWI4MjM3NmZiMDg1YzFm
ZWYzMjZlNTMyZTZkOGEwOTAxZTdmMDAzYS4uNDE4MWZlNDNjNTM1MmUyYWEwYWRjMzM3NTQxZmMz
MGVkMjEyNzVhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1NyBAQAorMjAxNS0wNC0yMSAgWmFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIENyZWF0ZSBSZW5kZXJSdWJ5
VGV4dCBmb3IgPHJ0PiBvbmx5IHdoZW4gdGhlIHBhcmVudCByZW5kZXJlciBpcyBhIFJlbmRlclJ1
YnkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQw
MzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
OiBmYXN0L3J1YnkvcnVieS1ydC13aXRoLXJlZ2lvbi1jcmFzaC5odG1sCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMvUGx1Z2luUmVwbGFjZW1l
bnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1l
bnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1l
bnQubW06CisgICAgICAgIChXZWJDb3JlOjpRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudDo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMvWW91VHViZVBs
dWdpblJlcGxhY2VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OllvdVR1YmVQbHVnaW5SZXBs
YWNlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdp
bnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50Lmg6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogZG9t
L0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxBcHBsZXRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxBcHBsZXRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgor
ICAgICAgICAqIGh0bWwvSFRNTEFwcGxldEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxB
dHRhY2htZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQXR0YWNobWVudEVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9IVE1MQXR0YWNo
bWVudEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxCUkVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEJSRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAg
ICAgKiBodG1sL0hUTUxCUkVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxCdXR0b25FbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxCdXR0b25FbGVtZW50OjpjcmVhdGVFbGVt
ZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxD
YW52YXNFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRN
TENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV0YWlsc0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcik6CisgICAgICAgICogaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaDoKKyAgICAgICAgKiBo
dG1sL0hUTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEZpZWxkU2V0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBodG1s
L0hUTUxGaWVsZFNldEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZUVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZUVsZW1lbnQuaDoKKyAgICAgICAgKiBo
dG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1l
U2V0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxG
cmFtZVNldEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxJRnJhbWVFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVy
ZXIpOgorICAgICAgICAqIGh0bWwvSFRNTElGcmFtZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1s
L0hUTUxJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVu
dDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxJbWFnZUVsZW1l
bnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTElucHV0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAg
KiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwv
SFRNTE1ldGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWV0ZXJFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRNTE1ldGVyRWxlbWVu
dC5oOgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAg
ICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbklt
YWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdl
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MUHJvZ3Jlc3NFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIp
OgorICAgICAgICAqIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwv
SFRNTFJURWxlbWVudC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRh
Y2htZW50RWxlbWVudC5oLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFJURWxlbWVudDo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxSdWJ5RWxlbWVudC5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5oLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFJ1YnlFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgor
ICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFNlbGVjdEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFN1bW1hcnlFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFRhZ05hbWVzLmluOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oOgor
ICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MVmlkZW9FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwv
SFRNTFZpZGVvRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFdCUkVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFdCUkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6
CisgICAgICAgICogaHRtbC9IVE1MV0JSRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvc2hhZG93
L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRldGFpbHNNYXJr
ZXJDb250cm9sOjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvc2hhZG93
L0RldGFpbHNNYXJrZXJDb250cm9sLmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sRWxlbWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVGltZWxpbmVD
b250YWluZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRh
aW5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sRWxlbWVudHMuaDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZXRlclNo
YWRvd0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWV0ZXJJbm5lckVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlByb2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTbGlkZXJUaHVtYkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0Q29udHJvbElubmVyQ29udGFpbmVyOjpjcmVhdGVFbGVtZW50UmVuZGVy
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1RleHRDb250cm9sSW5u
ZXJFbGVtZW50cy5oOgorICAgICAgICAqIGh0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0
dG9uRWxlbWVudE1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUNvbnRyb2xzQnV0dG9u
RWxlbWVudE1hYzo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBodG1sL3NoYWRv
dy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuaDoKKyAgICAgICAgKiBodG1sL3No
YWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYzo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToK
KyAgICAgICAgKiBodG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmg6
CisgICAgICAgICogaHRtbC90cmFjay9WVFRDdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VlRU
Q3VlQm94OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvdHJhY2svVlRU
Q3VlLmg6CisgICAgICAgICogbWF0aG1sL01hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBtYXRobWwvTWF0aE1MSW5saW5lQ29udGFpbmVy
RWxlbWVudC5oOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNYXRoTUxNYXRoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToK
KyAgICAgICAgKiBtYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuaDoKKyAgICAgICAgKiBtYXRobWwv
TWF0aE1MTWVuY2xvc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hdGhNTE1lbmNs
b3NlRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBtYXRobWwvTWF0
aE1MTWVuY2xvc2VFbGVtZW50Lmg6CisgICAgICAgICogbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWF0aE1MU2VsZWN0RWxlbWVudDo6Y3JlYXRlRWxl
bWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBtYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5oOgor
ICAgICAgICAqIG1hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNYXRoTUxUZXh0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBt
YXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNsb25lKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJF
bGVtZW50OjpjcmVhdGVGb3IpOgorICAgICAgICAqIHN0eWxlL1JlbmRlclRyZWVQb3NpdGlvbi5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZVBvc2l0aW9uOjpSZW5kZXJU
cmVlUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZVBvc2l0aW9uOjpjb21w
dXRlTmV4dFNpYmxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZVBvc2l0aW9uOjpp
bnZhbGlkYXRlTmV4dFNpYmxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZVBvc2l0
aW9uOjpwcmV2aW91c1NpYmxpbmdSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
cmVlUG9zaXRpb246Om5leHRTaWJsaW5nUmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVHJlZVBvc2l0aW9uOjppc1JlbmRlcmVyUmVwYXJlbnRlZCk6CisgICAgICAgICogc3R5bGUv
UmVuZGVyVHJlZVBvc2l0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJl
ZVBvc2l0aW9uOjpwYXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZVBvc2l0aW9u
OjpjYW5JbnNlcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZVBvc2l0aW9uOjppbnNl
cnQpOgorICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGU6OmNyZWF0ZVJlbmRlcmVySWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGU6OmludmFsaWRhdGVXaGl0ZXNwYWNlT25seVRleHRTaWJsaW5nc0FmdGVyQXR0YWNoSWZO
ZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OnRleHRSZW5kZXJlcklzTmVlZGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSZW5kZXJUcmVlUG9zaXRpb246OnBhcmVudCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6aXNSZW5kZXJlclJlcGFyZW50ZWQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6Om5leHRTaWJsaW5nUmVuZGVyZXIpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJlbmRlclRyZWVQb3NpdGlvbjo6UmVu
ZGVyVHJlZVBvc2l0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSZW5k
ZXJUcmVlUG9zaXRpb246OmNhbkluc2VydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6UmVuZGVyVHJlZVBvc2l0aW9uOjppbnNlcnQpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGU6OlJlbmRlclRyZWVQb3NpdGlvbjo6Y29tcHV0ZU5leHRTaWJsaW5nKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSZW5kZXJUcmVlUG9zaXRpb246OmludmFs
aWRhdGVOZXh0U2libGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6cHJl
dmlvdXNTaWJsaW5nUmVuZGVyZXIpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdBRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKToKKyAgICAgICAgKiBzdmcvU1ZHQUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHQWx0
R2x5cGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FsdEdseXBoRWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBzdmcvU1ZHQWx0R2x5cGhFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQ2lyY2xlRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBz
dmcvU1ZHQ2lyY2xlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdDbGlwUGF0aEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ2xpcFBhdGhFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaDoKKyAgICAgICAg
KiBzdmcvU1ZHRGVmc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRGVmc0VsZW1l
bnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR0RlZnNFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0VsbGlwc2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAq
IHN2Zy9TVkdFbGxpcHNlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpbHRlckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaDoKKyAgICAgICAgKiBz
dmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKToKKyAgICAgICAgKiBzdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzLmg6CisgICAgICAgICogc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oOgorICAgICAg
ICAqIHN2Zy9TVkdHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdHRWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBzdmcvU1ZHR0VsZW1lbnQuaDoKKyAg
ICAgICAgKiBzdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0dyYXBoaWNzRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBzdmcv
U1ZHR3JhcGhpY3NFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cik6CisgICAgICAgICogc3ZnL1NWR0ltYWdlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdM
aW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGluZWFyR3Jh
ZGllbnRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdM
aW5lYXJHcmFkaWVudEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXJrZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdNYXJrZXJFbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR01hc2tFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hc2tFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdNYXNrRWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdQYXRoRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXRoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBzdmcvU1ZHUGF0
aEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUGF0dGVybkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6Cisg
ICAgICAgICogc3ZnL1NWR1BhdHRlcm5FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1JhZGlh
bEdyYWRpZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdSYWRpYWxHcmFkaWVu
dEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR1JhZGlh
bEdyYWRpZW50RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdSZWN0RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdSZWN0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToK
KyAgICAgICAgKiBzdmcvU1ZHUmVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdTVkdFbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR1N0b3BFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0b3BFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdTdG9wRWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdTd2l0Y2hFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1N3aXRjaEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NW
R1N3aXRjaEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdTeW1ib2xFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIp
OgorICAgICAgICAqIHN2Zy9TVkdTeW1ib2xFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1RS
ZWZFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RSZWZFbGVtZW50OjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdUUmVmRWxlbWVudC5oOgorICAgICAg
ICAqIHN2Zy9TVkdUU3BhbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVFNwYW5F
bGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdUU3BhbkVs
ZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHVGV4dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHVGV4dEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICog
c3ZnL1NWR1RleHRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0UGF0aEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oOgorICAgICAgICAq
IHN2Zy9TVkdVc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQuaDoK
KwogMjAxNS0wNC0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IE1ha2UgVmVjdG9yKGNvbnN0IFZlY3RvcjxULCBvdGhlckNhcGFjaXR5LCBvdGhlck92ZXJmbG93
QmVoYXZpb3VyPiYpIGNvbnN0cnVjdG9yIGV4cGxpY2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IDNkZjk0ZWYzOTRhZmE4ZmU1MzA0NjM4MTNkZDEyOGMwZWZlMGFjNTYuLmNiNGZjNWYxZTMyMDYw
OWFlMTU5Y2EzMjFjNjM3ZGZjMzE2ZWUwZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yNTM4
LDYgKzI1MzgsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgc3RvcmFnZS9TdG9yYWdlTmFt
ZXNwYWNlUHJvdmlkZXIuY3BwCiAKICAgICBzdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3BwCisg
ICAgc3R5bGUvUmVuZGVyVHJlZVBvc2l0aW9uLmNwcAogICAgIHN0eWxlL1N0eWxlRm9udFNpemVG
dW5jdGlvbnMuY3BwCiAgICAgc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwCiAgICAg
c3R5bGUvU3R5bGVSZXNvbHZlVHJlZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcGx1Z2lucy9QbHVnaW5SZXBsYWNlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wbHVnaW5zL1BsdWdpblJlcGxhY2VtZW50LmgKaW5kZXggMDFjOTBiODY4YWNlZmFkZmE2ZjJi
ZWNmM2RkZjU0NjY2MTRmZDJlZi4uZGU3ODQzNDBmYzA0NTI1ZGY0ZTMyNGI5YTYyMjg1MDU3ZmI5
MjMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1BsdWdpblJl
cGxhY2VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1BsdWdpblJl
cGxhY2VtZW50LmgKQEAgLTM5LDYgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
SFRNTFBsdWdJbkVsZW1lbnQ7CiBjbGFzcyBSZW5kZXJFbGVtZW50OwogY2xhc3MgUmVuZGVyU3R5
bGU7CitjbGFzcyBSZW5kZXJUcmVlUG9zaXRpb247CiBjbGFzcyBTaGFkb3dSb290OwogY2xhc3Mg
VVJMOwogCkBAIC01MCw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEpTQzo6SlNPYmpl
Y3QqIHNjcmlwdE9iamVjdCgpIHsgcmV0dXJuIDA7IH0KIAogICAgIHZpcnR1YWwgYm9vbCB3aWxs
Q3JlYXRlUmVuZGVyZXIoKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihIVE1MUGx1Z0luRWxlbWVudCYs
IFJlZjxSZW5kZXJTdHlsZT4mJikgPSAwOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihIVE1MUGx1Z0luRWxlbWVudCYsIFJlZjxSZW5k
ZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgPSAwOwogCiBwcm90ZWN0ZWQ6
CiAgICAgUGx1Z2luUmVwbGFjZW1lbnQoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmgKaW5kZXgg
YjBjNWVjMTc4MjRjZmY1ZDIzZjdkNThiOWM4ZWEwZDhiODI1NTRjZC4uOWE5NzJhYWZmMWYyMTAw
ODE1ZGRlYWVkYzUzODIyYWY4YWM0N2IxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmgKQEAgLTU0
LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSlNDOjpKU09iamVjdCogc2NyaXB0T2Jq
ZWN0KCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9zY3JpcHRPYmplY3Q7IH0KIAogICAgIHZpcnR1YWwg
Ym9vbCB3aWxsQ3JlYXRlUmVuZGVyZXIoKSBvdmVycmlkZSB7IHJldHVybiBtX21lZGlhRWxlbWVu
dDsgfQotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihIVE1MUGx1Z0luRWxlbWVudCYsIFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKEhUTUxQbHVnSW5FbGVtZW50JiwgUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJU
cmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIAogICAgIEhUTUxWaWRlb0VsZW1lbnQqIHBhcmVudEVs
ZW1lbnQoKSB7IHJldHVybiBtX21lZGlhRWxlbWVudC5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFj
ZW1lbnQubW0KaW5kZXggYWM3NGZmNjEyMmZkOTY5MjRkZjM0MzNjOTMzYTdmN2M2M2M5ZTkzMy4u
ZDQ2Yjc3MDZiMjc2MGJlZWJiZGYyNTRmYjJlYmFkNGY4OWRlNDBjZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBs
YWNlbWVudC5tbQpAQCAtMTMwLDEyICsxMzAsMTIgQEAgUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1l
bnQ6On5RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudCgpCiAgICAgbV9tZWRpYUVsZW1lbnQgPSBu
dWxscHRyOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gUXVpY2tUaW1lUGx1Z2luUmVw
bGFjZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihIVE1MUGx1Z0luRWxlbWVudCYgcGx1Z2lu
LCBSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gUXVp
Y2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihIVE1MUGx1Z0lu
RWxlbWVudCYgcGx1Z2luLCBSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRy
ZWVQb3NpdGlvbiYgaW5zZXJ0aW9uUG9zaXRpb24pCiB7CiAgICAgQVNTRVJUX1VOVVNFRChwbHVn
aW4sIG1fcGFyZW50RWxlbWVudCA9PSAmcGx1Z2luKTsKIAogICAgIGlmIChtX21lZGlhRWxlbWVu
dCkKLSAgICAgICAgcmV0dXJuIG1fbWVkaWFFbGVtZW50LT5jcmVhdGVFbGVtZW50UmVuZGVyZXIo
V1RGOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBtX21lZGlhRWxlbWVudC0+Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKFdURjo6bW92ZShzdHlsZSksIGluc2VydGlvblBvc2l0aW9uKTsKIAog
ICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcAppbmRleCBhMDQyOTMz
ZDYxMDQ5MTJkNTlmOGVjZjIwNzNmZGYyZTc5ZGY4NDEzLi44Zjk2YzlmMDI4YzcyOGZkYTAzYmI1
MGE3ZWU5NmJhZmMzZGE5MDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Bs
dWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcApAQCAtNjcsMTQgKzY3
LDE0IEBAIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6WW91VHViZVBsdWdpblJlcGxhY2VtZW50
KEhUTUxQbHVnSW5FbGVtZW50JiBwbHVnaW4sIGNvCiAgICAgICAgIG1fYXR0cmlidXRlcy5hZGQo
cGFyYW1OYW1lc1tpXSwgcGFyYW1WYWx1ZXNbaV0pOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gWW91VHViZVBsdWdpblJlcGxhY2VtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoSFRN
TFBsdWdJbkVsZW1lbnQmIHBsdWdpbiwgUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKEhUTUxQbHVnSW5FbGVtZW50JiBwbHVnaW4sIFJlZjxSZW5kZXJTdHlsZT4mJiBz
dHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJiBpbnNlcnRpb25Qb3NpdGlvbikKIHsKICAg
ICBBU1NFUlRfVU5VU0VEKHBsdWdpbiwgbV9wYXJlbnRFbGVtZW50ID09ICZwbHVnaW4pOwogCiAg
ICAgaWYgKCFtX2VtYmVkU2hhZG93RWxlbWVudCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgCi0gICAgcmV0dXJuIG1fZW1iZWRTaGFkb3dFbGVtZW50LT5jcmVhdGVFbGVtZW50UmVuZGVy
ZXIoV1RGOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIG1fZW1iZWRTaGFkb3dFbGVtZW50LT5j
cmVhdGVFbGVtZW50UmVuZGVyZXIoV1RGOjptb3ZlKHN0eWxlKSwgaW5zZXJ0aW9uUG9zaXRpb24p
OwogfQogCiBib29sIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6aW5zdGFsbFJlcGxhY2VtZW50
KFNoYWRvd1Jvb3QqIHJvb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Bs
dWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmgKaW5kZXggZWYwOGYzZDVmYTg4MzFk
NzE0NWZiMGY2ZDIwOTI2ZDNiODhiNjMwZC4uYWQ5ZjAzOTI3ZmFmY2MxYzBjNTVmYWNmYjFiNjdh
OTJjYjNmMTQ4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lv
dVR1YmVQbHVnaW5SZXBsYWNlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1
Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuaApAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRl
OgogICAgIFN0cmluZyB5b3VUdWJlVVJMKGNvbnN0IFN0cmluZyYgcmF3VVJMKTsKICAgICAKICAg
ICB2aXJ0dWFsIGJvb2wgd2lsbENyZWF0ZVJlbmRlcmVyKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9l
bWJlZFNoYWRvd0VsZW1lbnQ7IH0KLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoSFRNTFBsdWdJbkVsZW1lbnQmLCBSZWY8UmVuZGVyU3R5
bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihIVE1MUGx1Z0luRWxlbWVudCYsIFJlZjxSZW5kZXJTdHlsZT4m
JiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgCiAgICAgSFRNTFBs
dWdJbkVsZW1lbnQqIG1fcGFyZW50RWxlbWVudDsKICAgICBSZWZQdHI8WW91VHViZUVtYmVkU2hh
ZG93RWxlbWVudD4gbV9lbWJlZFNoYWRvd0VsZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODdkMmU3NzhiNGNlNzJkNTEw
ZjkxOTQ0NWYxMmU1YjNjYWFlMzAwNy4uN2Y5ZWQyZGQwOTM0NWFjMjEwMWIyMWNkYmQ1NDE4MWJk
YzI2ZTJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMjExMSw2ICsyMTExLDEwIEBACiAJCTU4MDM3MTYxMUE2NkYwMEEwMEJB
RjUxOSAvKiBDbGlwUmVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1ODAzNzE1RjFBNjZGMDBBMDBCQUY1MTkgLyogQ2xpcFJlY3QuY3BwICovOyB9
OwogCQk1ODAzNzE2MjFBNjZGMDBBMDBCQUY1MTkgLyogQ2xpcFJlY3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU4MDM3MTYwMUE2NkYwMEEwMEJBRjUx
OSAvKiBDbGlwUmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTU4MDM3MTY0MUE2NkYxRDMwMEJBRjUxOSAvKiBMYXllckZyYWdtZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1ODAzNzE2MzFBNjZG
MUQzMDBCQUY1MTkgLyogTGF5ZXJGcmFnbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTU4MjA1RDgxMUFFNkZBNUEwMDhFNjdCQyAvKiBSZW5k
ZXJUcmVlUG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU4MjA1RDgwMUFFNkZBNUEwMDhFNjdCQyAvKiBSZW5kZXJUcmVlUG9zaXRpb24uaCAq
LzsgfTsKKwkJNTgyMDVEODMxQUU3MDkwMTAwOEU2N0JDIC8qIEhUTUxSdWJ5RWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTgyMDVEODIxQUU3
MDkwMTAwOEU2N0JDIC8qIEhUTUxSdWJ5RWxlbWVudC5oICovOyB9OworCQk1ODIwNUQ4NTFBRTcw
QUZBMDA4RTY3QkMgLyogSFRNTFJURWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTgyMDVEODQxQUU3MEFGQTAwOEU2N0JDIC8qIEhUTUxSVEVs
ZW1lbnQuaCAqLzsgfTsKKwkJNTgyMDVEODcxQUU3MzZEMjAwOEU2N0JDIC8qIFJlbmRlclRyZWVQ
b3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1ODIwNUQ4NjFBRTczNkQyMDA4RTY3QkMgLyogUmVuZGVyVHJlZVBvc2l0aW9uLmNwcCAqLzsg
fTsKIAkJNTgyQ0IwNTMxQTc4QTE0QjAwQUZGQ0M0IC8qIFNpbXBsZUxpbmVMYXlvdXRUZXh0RnJh
Z21lbnRJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTgyQ0IwNTIxQTc4QTE0QjAwQUZGQ0M0IC8qIFNpbXBsZUxpbmVMYXlvdXRUZXh0RnJh
Z21lbnRJdGVyYXRvci5oICovOyB9OwogCQk1ODJDQjA1NTFBNzhBMkIyMDBBRkZDQzQgLyogU2lt
cGxlTGluZUxheW91dFRleHRGcmFnbWVudEl0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU4MkNCMDU0MUE3OEEyQjIwMEFGRkNDNCAvKiBT
aW1wbGVMaW5lTGF5b3V0VGV4dEZyYWdtZW50SXRlcmF0b3IuY3BwICovOyB9OwogCQk1ODVENkRG
QzFBMTUzNTU2MDBGQTRGMTIgLyogU2ltcGxlTGluZUxheW91dFJlc29sdmVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU4NUQ2REZCMUExNTM1NTYw
MEZBNEYxMiAvKiBTaW1wbGVMaW5lTGF5b3V0UmVzb2x2ZXIuY3BwICovOyB9OwpAQCAtOTMxMiw2
ICs5MzE2LDEwIEBACiAJCTU4MDM3MTVGMUE2NkYwMEEwMEJBRjUxOSAvKiBDbGlwUmVjdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDbGlwUmVjdC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU4MDM3MTYwMUE2NkYwMEEwMEJBRjUxOSAvKiBDbGlw
UmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDbGlwUmVjdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1ODAzNzE2MzFBNjZGMUQzMDBCQUY1MTkgLyogTGF5
ZXJGcmFnbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXllckZyYWdt
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU4MjA1RDgwMUFFNkZBNUEwMDhF
NjdCQyAvKiBSZW5kZXJUcmVlUG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVuZGVyVHJlZVBvc2l0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTU4MjA1RDgyMUFFNzA5MDEwMDhFNjdCQyAvKiBIVE1MUnVieUVsZW1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFJ1YnlFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTU4MjA1RDg0MUFFNzBBRkEwMDhFNjdCQyAvKiBIVE1MUlRFbGVtZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxSVEVsZW1lbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTgyMDVEODYxQUU3MzZEMjAwOEU2N0JDIC8qIFJl
bmRlclRyZWVQb3NpdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZW5kZXJUcmVlUG9zaXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
ODJDQjA1MjFBNzhBMTRCMDBBRkZDQzQgLyogU2ltcGxlTGluZUxheW91dFRleHRGcmFnbWVudEl0
ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNpbXBsZUxpbmVMYXlv
dXRUZXh0RnJhZ21lbnRJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
ODJDQjA1NDFBNzhBMkIyMDBBRkZDQzQgLyogU2ltcGxlTGluZUxheW91dFRleHRGcmFnbWVudEl0
ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNpbXBsZUxp
bmVMYXlvdXRUZXh0RnJhZ21lbnRJdGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU4NUQ2REZCMUExNTM1NTYwMEZBNEYxMiAvKiBTaW1wbGVMaW5lTGF5b3V0UmVzb2x2
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2ltcGxlTGluZUxh
eW91dFJlc29sdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3ODc1LDYg
KzE3ODgzLDggQEAKIAkJOTNFRUMxRUMwOUMyODc3NzAwQzUxNUQxIC8qIGh0bWwgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTU4MjA1RDg0MUFFNzBBRkEw
MDhFNjdCQyAvKiBIVE1MUlRFbGVtZW50LmggKi8sCisJCQkJNTgyMDVEODIxQUU3MDkwMTAwOEU2
N0JDIC8qIEhUTUxSdWJ5RWxlbWVudC5oICovLAogCQkJCTQ5NDg0RkFFMTAyQ0YwMUUwMDE4N0RE
MyAvKiBjYW52YXMgKi8sCiAJCQkJMUE4OEE5MDExNzU1M0NENzAwMEM3NEY5IC8qIGZvcm1zICov
LAogCQkJCTk3QzFGNTUxMTIyODU1ODgwMEVERTYxNiAvKiBwYXJzZXIgKi8sCkBAIC0yMjIyNiw2
ICsyMjIzNiw4IEBACiAJCUU0NzYzRDRBMTdCMjcwNDkwMEQzNTIwNiAvKiBzdHlsZSAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNTgyMDVEODAxQUU2RkE1
QTAwOEU2N0JDIC8qIFJlbmRlclRyZWVQb3NpdGlvbi5oICovLAorCQkJCTU4MjA1RDg2MUFFNzM2
RDIwMDhFNjdCQyAvKiBSZW5kZXJUcmVlUG9zaXRpb24uY3BwICovLAogCQkJCTFDMDEwNkZFMTky
NTk0REYwMDhBNDIwMSAvKiBJbmxpbmVUZXh0Qm94U3R5bGUuY3BwICovLAogCQkJCTFDMDEwNkZG
MTkyNTk0REYwMDhBNDIwMSAvKiBJbmxpbmVUZXh0Qm94U3R5bGUuaCAqLywKIAkJCQlFNEQ1OEVC
NjE3QjRFRDg5MDBDQkRDQTggLyogU3R5bGVGb250U2l6ZUZ1bmN0aW9ucy5jcHAgKi8sCkBAIC0y
NDc4OCw2ICsyNDgwMCw3IEBACiAJCQkJQThFQTdDQUYwQTE5MkI5QzAwQThFRjVGIC8qIEhUTUxI
UkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzFERTI3MEExNTJBQzgwMEIxMkE2OCAv
KiBIVE1MSHRtbEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzFERTJBMEExNTJBQzgw
MEIxMkE2OCAvKiBIVE1MSUZyYW1lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTgyMDVE
ODMxQUU3MDkwMTAwOEU2N0JDIC8qIEhUTUxSdWJ5RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQThFQTdEMkQwQTE5Mzg1NTAwQThFRjVGIC8qIEhUTUxJbWFnZUVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUExOUQ5MzRCMUFBMTFCMUUwMEI0NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9u
Q29udGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTdEMkIwQTE5Mzg1NTAwQThF
RjVGIC8qIEhUTUxJbWFnZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjM3Niw2ICsyNjM4
OSw3IEBACiAJCQkJQ0QzQTQ5NjUxN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlckxpc3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCUNENjQxRUI0MTgxOEY1RUQwMEVFNEM0MSAvKiBTb3VyY2VC
dWZmZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM4QjVBQjE4MDQ3RkYxMDAxNkU2
ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCBpbiBIZWFkZXJzICovLAorCQkJCTU4
MjA1RDgxMUFFNkZBNUEwMDhFNjdCQyAvKiBSZW5kZXJUcmVlUG9zaXRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUNEQzhCNUFEMTgwNEFFNUQwMDE2RTY4NSAvKiBTb3VyY2VCdWZmZXJQcml2YXRl
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NEE4MUY0MjBGQzdFMDI3MDA5NTUzMDAgLyog
U291cmNlR3JhcGhpYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc2MzA2RDgxN0UxNDlEMDAwNUE3
QzRFIC8qIFNvdXJjZUluZm8uaCBpbiBIZWFkZXJzICovLApAQCAtMjY4MzcsNiArMjY4NTEsNyBA
QAogCQkJCTBGNTRERDA5MTg4MUQ1RjUwMDNFRURCQiAvKiBUb3VjaEV2ZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjU0REQwQTE4ODFENUY1MDAzRUVEQkIgLyogVG91Y2hMaXN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwNzAzMzRENzE0NTlGRkQ1MDA4RDhENDUgLyogVHJhY2tCYXNlLmggaW4g
SGVhZGVycyAqLywKKwkJCQk1ODIwNUQ4NTFBRTcwQUZBMDA4RTY3QkMgLyogSFRNTFJURWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4OEUwQzIxNzE1Q0UyNjAwNjU4RDk4IC8qIFRyYWNr
TGlzdEJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFOTEzRDgwMTgxRUY5MjQwMERDQjA5RSAv
KiBUcmFja1ByaXZhdGVCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRkFDMzBGRTE4NEZCMTQ1
MDA4QzRGMUUgLyogVHJhaWxpbmdPYmplY3RzLmggaW4gSGVhZGVycyAqLywKQEAgLTI3NjE0LDYg
KzI3NjI5LDcgQEAKIAkJCQlCQ0MwNjU4MDBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdExp
c3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODUwMzFCM0YwQTQ0RUZDNzAwRjk5MkUwIC8qIENs
aXBib2FyZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNERUE3NjM1MTQ2MEI3MUEwMDhC
MzFGMSAvKiBDbG9jay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1ODIwNUQ4NzFBRTczNkQyMDA4
RTY3QkMgLyogUmVuZGVyVHJlZVBvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNERUE3
NjM0MTQ2MEI1NkYwMDhCMzFGMSAvKiBDbG9ja0dlbmVyaWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOUJEOEE5NUExOEJFRkM3NjAwOTg3RTlBIC8qIENvbGxlY3Rpb25JbmRleENhY2hlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUIyNzUzNTY2MEIwNTM4MTQwMDJDRTY0RiAvKiBDb2xvci5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBmOTZmYWNiZWIzZTA3Mzcy
NWFkMDgzMjI2YjVmZDlhMTRjMmY5NjE5Li5iMjM4ZDgxOGNhZDE4NDdjZGVhNTMwNDI3NTVjNzZm
Y2YyNzI5OGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xNDk2LDcgKzE0OTYsNyBAQCBi
b29sIEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQog
ICAgIHJldHVybiBzdHlsZS5kaXNwbGF5KCkgIT0gTk9ORTsKIH0KIAotUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+
JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gRWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikKIHsKICAgICByZXR1cm4gUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKCp0aGlzLCBXVEY6
Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IGRiZjNiNmNiMzY2NTVmMDRk
OWE2N2ZlMTU0NmY3MTRmYjU0NzhjY2EuLjVhNjg3YjAxZmE0MjNhNjg5MDczMjE5NjE2N2QyNTk3
NjQ2MDU3MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtNDksNiArNDksNyBAQCBjbGFzcyBQbGF0
Zm9ybU1vdXNlRXZlbnQ7CiBjbGFzcyBQbGF0Zm9ybVdoZWVsRXZlbnQ7CiBjbGFzcyBQc2V1ZG9F
bGVtZW50OwogY2xhc3MgUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQ7CitjbGFzcyBSZW5kZXJUcmVl
UG9zaXRpb247CiBjbGFzcyBTaGFkb3dSb290OwogCiBlbnVtIFNwZWxsY2hlY2tBdHRyaWJ1dGVT
dGF0ZSB7CkBAIC0yNDIsNyArMjQzLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGNv
cHlOb25BdHRyaWJ1dGVQcm9wZXJ0aWVzRnJvbUVsZW1lbnQoY29uc3QgRWxlbWVudCYpIHsgfQog
Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJik7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVu
ZGVyVHJlZVBvc2l0aW9uJik7CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29u
c3QgUmVuZGVyU3R5bGUmKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFNoYWRvd1Jvb3QqIHNoYWRv
d1Jvb3QoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxl
dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5jcHAK
aW5kZXggNTFmY2YyZTVkOWI1YWE0YWQ5YjViNDlhNjc4Y2MyYTg5MTBjMDQ1MS4uNWI1ZWE2ODhj
MjFkOGE4MDAyY2JlM2ZmZTI4ZDBiMWYzOThhZjBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQXBwbGV0RWxlbWVudC5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgYm9vbCBIVE1MQXBwbGV0RWxl
bWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAgICAgcmV0
dXJuIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOwogfQog
Ci1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEFwcGxldEVsZW1lbnQ6OmNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gSFRNTEFwcGxldEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVy
U3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgaWYgKCFj
YW5FbWJlZEphdmEoKSkKICAgICAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigq
dGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBcHBsZXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVt
ZW50LmgKaW5kZXggZjBkYzkyMDc3ZjhlYTE4MjI5ODUwMjk2N2Y3NmRhNDdlYjRhNGM3Zi4uZWE4
OTQxZTU4NGIyMWNjMzUzYWE4MTJjMGJiNWM0NmVlYWU3ZmI1MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFwcGxldEVsZW1lbnQuaApAQCAtMzcsNyArMzcsNyBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgCiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNO
ZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYm
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRp
b24mKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgUmVuZGVyV2lkZ2V0KiByZW5kZXJXaWRnZXRM
b2FkaW5nUGx1Z2luKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVdp
ZGdldChQbHVnaW5DcmVhdGlvbk9wdGlvbikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5jcHAKaW5kZXggODRkODE2ZTNkMDUzMzlkNmI5MmZm
NjRhNTcxNWIzODE5Y2YwYWJkMi4uMmYyNjFhNTkyZWI4NzZkYjVjY2FjYzRiNmQ5YmI4N2Q4YjYz
ZTczZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0YWNobWVudEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dGFjaG1lbnRFbGVtZW50LmNw
cApAQCAtNTEsNyArNTEsNyBAQCBSZWY8SFRNTEF0dGFjaG1lbnRFbGVtZW50PiBIVE1MQXR0YWNo
bWVudEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YQogICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEhUTUxBdHRhY2htZW50RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwog
fQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEF0dGFjaG1lbnRFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IEhUTUxBdHRhY2htZW50RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsK
ICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyQXR0YWNobWVudD4oKnRoaXMsIFdURjo6
bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0
YWNobWVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dGFjaG1lbnRFbGVt
ZW50LmgKaW5kZXggNTgyOTY4NzUwMDAyY2QyMDEwYjE3OTFmNGE4ODQ4ZDNlMTYyMmYyMy4uNDZh
MzRlZDkxZWYxMjljMDY4MzdkYTI4Njc2NjZlYjcyMjY0MmU0OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQXR0YWNobWVudEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5oCkBAIC00Niw3ICs0Niw3IEBAIHByaXZhdGU6
CiAgICAgSFRNTEF0dGFjaG1lbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogICAgIHZpcnR1YWwgfkhUTUxBdHRhY2htZW50RWxlbWVudCgpOwogCi0gICAgdmlydHVh
bCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5k
ZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVy
VHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2VsZWN0
T25Nb3VzZURvd24oKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29s
IGNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuY3BwCmluZGV4IDViOTU4ZTY1OTcwZmVj
MWQyN2Q2YWRlNzU2ZGMzMGU1ZmIxOTIxM2MuLjViYmNmZjdmNGMzMjEzOGQyNmYwNWY3NThiOThk
NTA3ZjQ4ZDg3ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQlJFbGVtZW50LmNwcApAQCAtNzAs
NyArNzAsNyBAQCB2b2lkIEhUTUxCUkVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlv
bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYQogICAgICAgICBIVE1MRWxlbWVudDo6
Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7
CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MQlJFbGVtZW50OjpjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgaWYgKHN0eWxl
LmdldCgpLmhhc0NvbnRlbnQoKSkKICAgICAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0
ZUZvcigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxCUkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVu
dC5oCmluZGV4IGY0NTMzODRjNWFmNmI5Mzc5MjY2ZDg5OWNhYmQ4NDAyNTM3NjJjODguLjIzZTRm
ZWZjNjc2OGNkNDMxYmJiZjhmNTZjOTNiOTljOGQyYTU3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEJSRWxlbWVudC5oCkBAIC00MSw3ICs0MSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29s
IGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5
bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVy
cmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRv
bkVsZW1lbnQuY3BwCmluZGV4IDcwODRkZWRlYzVhYTlkM2Q0Y2YwZDgzMTNkODFiZjkxOTMwNWZl
OTIuLjk2M2ZkODBjNmUxYThmZGQ1OWEyZWJjZmYxY2I3OTJjY2I1OTg3ZWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCkBAIC01Niw3ICs1Niw3IEBAIHZvaWQg
SFRNTEJ1dHRvbkVsZW1lbnQ6OnNldFR5cGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKQogICAg
IHNldEF0dHJpYnV0ZSh0eXBlQXR0ciwgdHlwZSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBIVE1MQnV0dG9uRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJT
dHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MQnV0dG9uRWxlbWVu
dDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3Qg
UmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVy
QnV0dG9uPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCdXR0b25FbGVtZW50LmgKaW5kZXggZmFkZjc4NWU5YjYyODkwMmZhMzE0MmExYTUxZDQ0M2Yz
YmFhZjNkZC4uNWQ3ZGY4MDYyMDdhYTExN2RmODI4NzllYWEyODM3ZmQ1MWJjYzFhYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBwcml2
YXRlOgogCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgp
IGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAK
ICAgICAvLyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50IGFsd2F5cyBjcmVhdGVzIG9uZSwgYnV0IGJ1
dHRvbnMgZG9uJ3QgbmVlZCBpdC4KICAgICB2aXJ0dWFsIGJvb2wgYWx3YXlzQ3JlYXRlVXNlckFn
ZW50U2hhZG93Um9vdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IGU5NDY3MmYxZGM2MmQ4MjQ5
NGE1NWY1ZTZiZTNiNDIwN2RjZWY0ZjAuLmIyMmQ4YzE3NDQ3NmQ5N2ZkOTdjZTAzMDA5YjAxYmQy
MGNhOGNhNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBA
IC0xMDYsNyArMTA2LDcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3QKICAgICBIVE1MRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVy
U3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTENhbnZhc0VsZW1l
bnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0
IFJlbmRlclRyZWVQb3NpdGlvbiYgaW5zZXJ0aW9uUG9zaXRpb24pCiB7CiAgICAgRnJhbWUqIGZy
YW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwogICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+c2NyaXB0
KCkuY2FuRXhlY3V0ZVNjcmlwdHMoTm90QWJvdXRUb0V4ZWN1dGVTY3JpcHQpKSB7CkBAIC0xMTUs
NyArMTE1LDcgQEAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxDYW52YXNFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWwKICAgICB9CiAKICAgICBtX3JlbmRl
cmVySXNDYW52YXMgPSBmYWxzZTsKLSAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OmNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihXVEY6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihXVEY6Om1vdmUoc3R5bGUpLCBpbnNlcnRpb25Qb3NpdGlvbik7
CiB9CiAKIGJvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OmNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCBlNDlhYzUz
NmNmY2RmODQyNjQ2MmEwOTVkNGNhMDdjNzVkMDViNTQyLi44ZWYwZWVlOWI3MGMyOGFjYmFkMDMw
OTdmNzhjNWJjODk4MDM0OTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
YW52YXNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5oCkBAIC0xNDEsNyArMTQxLDcgQEAgcHJpdmF0ZToKICAgICBIVE1MQ2FudmFzRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3Zl
cnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHls
ZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFs
IGJvb2wgY2FuQ29udGFpblJhbmdlRW5kUG9pbnQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIGJvb2wgY2FuU3RhcnRTZWxlY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAppbmRleCA0NDU3NGJlYmIyNGEzY2NiYjBi
MTkyNDA0MTU1NGYyNTExMmFlNGI5Li5lZDNmY2RlMWExMjZmYjRjYWNlNDQ1OGYxNmRjNGIzZmRh
ZjFmNzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCkBA
IC0xMTEsNyArMTExLDcgQEAgSFRNTERldGFpbHNFbGVtZW50OjpIVE1MRGV0YWlsc0VsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGQKICAgICBBU1NFUlQoaGFz
VGFnTmFtZShkZXRhaWxzVGFnKSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1M
RGV0YWlsc0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYg
c3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTERldGFpbHNFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJU
cmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJCbG9ja0Zs
b3c+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxE
ZXRhaWxzRWxlbWVudC5oCmluZGV4IGRiZmZjNWYzZDE2OGFjYWFiNWQ1YTNhNDU2YjljZjhmZjgx
MGRhYjQuLjE4ZDI2NTVjYTRmMzQ2MjE4YmU5ZTZkNzZiYjM2OTg4MzVjNDYyMWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaApAQCAtMzUsNyArMzUsNyBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIEhUTUxEZXRhaWxzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25z
dCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuY3BwCmluZGV4IGE2NjEyMzcwZWI4MzQzOTdhYmMwZDQ5ZmJhMWY3NjBlYzI2
NjQzN2MuLjgwZGRlNmJhMTY1MjQ2MGExOGZhODcwZWY4YzRjZThkM2EyMmE4MDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC04ODAsNyArODgwLDcgQEAgYm9vbCBIVE1MRWxl
bWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAgICAgcmV0
dXJuIFN0eWxlZEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOwogfQogCi1SZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gSFRNTEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEVsZW1l
bnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0
IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0
ZUZvcigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50
LmgKaW5kZXggNzk0OWQ2MjE2ZTJjOWUwNWU1Y2JhNTBjYjkwZjU3NjNlYjRjYjI5OS4uZGUyYjhi
MzhiNzcyNGZkZTZiMDQ1ZGZjMWZkNzJhMjcxN2I4M2ZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuaApAQCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpZUZvcmJpZHNJbnNl
cnRIVE1MKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJy
aWRlOwogCiAgICAgSFRNTEZvcm1FbGVtZW50KiBmb3JtKCkgY29uc3QgeyByZXR1cm4gdmlydHVh
bEZvcm0oKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNl
dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNw
cAppbmRleCBhMTMzYTUwOGMzNjc2NjhjM2ZlOWFkNzE2ODk2OTUxZDdlN2VjMDFjLi5hYzMzMmU4
NzAyMjYxOGMyZTQ5M2I2OTc3YjA4M2Q1NWFiODZhZDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKQEAgLTE0OSw3ICsxNDksNyBAQCBjb25zdCBBdG9t
aWNTdHJpbmcmIEhUTUxGaWVsZFNldEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiAg
ICAgcmV0dXJuIGZpZWxkc2V0OwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEZp
ZWxkU2V0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBz
dHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MRmllbGRTZXRFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJU
cmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJGaWVsZHNl
dD4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
aWVsZFNldEVsZW1lbnQuaAppbmRleCA2YmM2ZTFjYmY0MDk3OTc2MWM4ZjRmMjBmNzg4NzAzYTgx
ZDBjMjE2Li4wZDRlMzY3MDZmMTZhYzBlYmRjYmVjMDY4OWM5NDBiZWVjZDlkN2Y1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaApAQCAtNTEsNyArNTEsNyBAQCBw
cml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIGlzRW51bWVyYXRhYmxlKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29u
c3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5k
ZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlV2lsbFZhbGlkYXRlKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZWRBdHRyaWJ1dGVDaGFu
Z2VkKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmNwcApp
bmRleCA5ZGIwMjU1MGRkNGUzMDkwMWI0MDg4M2U4NjU4MmY3ZWM4MjBjZmZkLi5hZjFhNTIyYmNh
YzkyMzQyOGEwNTlhMDFlMmRhZDlmY2I3Y2Y1YzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZyYW1lRWxlbWVudC5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgYm9vbCBIVE1MRnJhbWVFbGVtZW50
OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikKICAgICByZXR1cm4gaXNVUkxB
bGxvd2VkKCk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MRnJhbWVFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxGcmFtZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7
CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckZyYW1lPigqdGhpcywgV1RGOjptb3Zl
KHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5oCmluZGV4IGNh
MGFmNzQwZDk2OWVjZGQ0Yjg2Y2MzZjg1Mjk1ZjI5ZjUxMmRiZjQuLjg3Njg4YzA3ZTEzNDQyNjc4
ZTFjOTlmN2E4NjM1YzVmN2E1MWM4NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZyYW1lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxl
bWVudC5oCkBAIC00Miw3ICs0Miw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZEF0
dGFjaFJlbmRlcmVycygpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNO
ZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYm
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRp
b24mKSBvdmVycmlkZTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcAppbmRleCA2NzY2N2Q1NTQy
YzZkY2JkMjRjNWY2YThjYzYzOTdhOWYyMGQ0ZmY5Li4xYjdkZDE4ZDRmNzA0NmZlZjgyOTAwMmY3
NzA3Y2FjYTAwYzQ5ZjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZVNldEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxl
bWVudC5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBAQCBib29sIEhUTUxGcmFtZVNldEVsZW1lbnQ6OnJl
bmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogICAgIHJldHVybiBzdHls
ZS5pc1N0eWxlQXZhaWxhYmxlKCk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1M
RnJhbWVTZXRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYm
IHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxGcmFtZVNldEVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpCiB7CiAgICAgaWYgKHN0eWxlLmdldCgpLmhhc0NvbnRlbnQoKSkKICAg
ICAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgV1RGOjptb3ZlKHN0
eWxlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCmluZGV4IGZi
YjNjYTA2YmFlY2MzZDQ2ZDdmNDZiMzk1MmM0NTM5MGY3NWJkYWIuLjZjZDg1ZGM0N2E1OGIxZTc1
NThhYzA2Y2UwMWFhODRkNjk2ZTEwMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZyYW1lU2V0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1l
U2V0RWxlbWVudC5oCkBAIC01Niw3ICs1Niw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZv
aWQgd2lsbEF0dGFjaFJlbmRlcmVycygpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCByZW5k
ZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJT
dHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJl
ZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVu
dEhhbmRsZXIoRXZlbnQqKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJh
bWVFbGVtZW50LmNwcAppbmRleCA1MzdkMjNlNDRjMDhmZmI0NTVkNDgzODJkNDI5NmQzOGY0NDNi
NmU3Li5lOWQ1NzU5NWVjOWRjNzc5ZTU4MzgwZTQ4ZWNlNTRjNjY0OTM0ZDdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcApAQCAtODksNyArODksNyBAQCBib29s
IEhUTUxJRnJhbWVFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBz
dHlsZSkKICAgICByZXR1cm4gaXNVUkxBbGxvd2VkKCkgJiYgc3R5bGUuZGlzcGxheSgpICE9IE5P
TkU7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MSUZyYW1lRWxlbWVudDo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBIVE1MSUZyYW1lRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAg
ICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVySUZyYW1lPigqdGhpcywgV1RGOjptb3ZlKHN0
eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgKaW5kZXggNTg4
OWExOWEwMWY1N2E3Mjk1YTNkNzRiNjA0NTIzNjExMTI1N2JkMi4uYTJkYmQ1NjRlMWRiZmM5MzY4
MzU1NGYwZTcwZGFhODkzMjJkMDYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSUZyYW1lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVs
ZW1lbnQuaApAQCAtNDQsNyArNDQsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBjb2xs
ZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBvdmVycmlkZTsKIAog
ICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3Zl
cnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHls
ZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFn
ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcApp
bmRleCA4OTk1NGNmNDM1OTc1YjM1YzU3NjlhZDdmY2ZlMGExMzM1ODFiOTc3Li42MmVhNmZjMWM2
OGVkZWYwZWU2YjFmNjk3OGRhODE1MDUwYjc5YmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEltYWdlRWxlbWVudC5jcHAKQEAgLTIwMSw3ICsyMDEsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcm
IEhUTUxJbWFnZUVsZW1lbnQ6OmFsdFRleHQoKSBjb25zdAogICAgIHJldHVybiBmYXN0R2V0QXR0
cmlidXRlKHRpdGxlQXR0cik7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MSW1h
Z2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxl
KQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxJbWFnZUVsZW1lbnQ6OmNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3Np
dGlvbiYpCiB7CiAgICAgaWYgKHN0eWxlLmdldCgpLmhhc0NvbnRlbnQoKSkKICAgICAgICAgcmV0
dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCmluZGV4IDA4YjliYTg1Mzg1MjY2YzU1
YzY2ZGZhODYxMzU3ZGZlMTM4YTIxM2YuLmYwNjU4NDlmMDY1MzE3MjhjYThkNTEwMTAyN2MwOWE5
M2I5N2I2MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCkBAIC0xMDEs
NyArMTAxLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJl
c2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJp
bmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZv
aWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxl
bWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9u
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRCZXN0Rml0VVJMQW5kRFBSRnJvbUltYWdlQ2FuZGlk
YXRlKGNvbnN0IEltYWdlQ2FuZGlkYXRlJik7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuU3RhcnRT
ZWxlY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwCmluZGV4IGVjMjQ3Y2U5OGYyYmY4MDNjNmUzZmMxZTMxNzFjODQxMTcxMGM5MGMu
LjdlMDM3YTkzODA0Mzk1ZTRmOGQ0ZmExNjU4MjM3NjVmMDRmNzg2Y2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtNzcxLDcgKzc3MSw3IEBAIGJvb2wgSFRN
TElucHV0RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUp
CiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5yZW5kZXJlcklzTmVlZGVkKCkgJiYgSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOwogfQogCi1SZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gSFRNTElucHV0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1M
SW5wdXRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0
eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBtX2lucHV0VHlw
ZS0+Y3JlYXRlSW5wdXRSZW5kZXJlcihXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggMjBkYjk2MTRjN2FkZGRkNTZiM2ExOTdlYTc3
NzE0Mzc3ZTA0YjgzZS4uOWIyNzUwNDE5YjRmYzg3Mjk2OTkwZjJmZWM4NThlNTBlOWVkOGFkYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTIwMCw3ICsyMDAsNyBA
QCBwdWJsaWM6CiAgICAgYm9vbCBjYW5IYXZlU2VsZWN0aW9uKCkgY29uc3Q7CiAKICAgICB2aXJ0
dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIGZp
bmFsOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwg
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVy
U3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlIGZpbmFsOwogICAg
IHZpcnR1YWwgdm9pZCB3aWxsQXR0YWNoUmVuZGVyZXJzKCkgb3ZlcnJpZGUgZmluYWw7CiAgICAg
dmlydHVhbCB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZp
cnR1YWwgdm9pZCBkaWREZXRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZSBmaW5hbDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDY0MDRkNDM0YjhjZTZmYWI3ZDZj
NjI2OTA4ODdkZjQxZDFmYjZmY2EuLmU3YjRkZmE4MGEwYzMyYjlhODU5MjA0MThhMDgyMzUyYTRm
ZGU2ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNTc0
LDcgKzU3NCw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAgICAgcmV0dXJuIGNvbnRyb2xzKCkgJiYgSFRNTEVsZW1l
bnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gSFRNTE1lZGlhRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHls
ZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MTWVkaWFFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5k
ZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNZWRp
YT4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuaAppbmRleCAxNDA5ZTZiMGI2MDc0MTExZTYxY2I5MWE2Mzc1MzY5ZDY2YTFjMWU4
Li4wNmE0OGNlNjUzNWI2MTg3ODA2NzhhMzk2MGUzMDVhMjA1MTQ5Y2EwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNDgxLDcgKzQ4MSw3IEBAIHByb3RlY3RlZDoK
ICAgICB2b2lkIGVuZElnbm9yaW5nVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMoKTsKICNlbmRp
ZgogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4m
JiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKICNpZiBFTkFCTEUoTUVE
SUFfQ09OVFJPTFNfU0NSSVBUKQogICAgIGJvb2wgbWVkaWFDb250cm9sc0RlcGVuZE9uUGFnZVNj
YWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYUNvbnRyb2xzRGVwZW5kT25QYWdlU2Nh
bGVGYWN0b3I7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCmluZGV4
IDBkYWQ0MGFiOGZjNjAxN2Q5Yzg4MDE0OWI4N2QxOWVkNWI4ZGU0ZjUuLjIyYjJmMzk4MWUzOTUy
Mzc5M2Y1ZTJiMzFlNmNjNWQyOGJmYTc3ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0
ZXJFbGVtZW50LmNwcApAQCAtNTcsNyArNTcsNyBAQCBSZWY8SFRNTE1ldGVyRWxlbWVudD4gSFRN
TE1ldGVyRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvYwog
ICAgIHJldHVybiBtZXRlcjsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxNZXRl
ckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUp
CitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTE1ldGVyRWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikKIHsKICAgICBpZiAoIWRvY3VtZW50KCkucGFnZSgpLT50aGVtZSgpLnN1cHBvcnRzTWV0
ZXIoc3R5bGUuZ2V0KCkuYXBwZWFyYW5jZSgpKSkKICAgICAgICAgcmV0dXJuIFJlbmRlckVsZW1l
bnQ6OmNyZWF0ZUZvcigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1ldGVyRWxlbWVudC5oCmluZGV4IDU0YWI5ZmNhOTgyYTAyYmE3YjIxYjQ2ODUwYTJmZWU0
MTc2YzkwMDAuLmQyMzY0YjE3YzBkZmU1NDA1YTRkZGIyZGQ5MGFiNTIxNjIyOTA3ZjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5oCkBAIC03MCw3ICs3MCw3IEBAIHByaXZh
dGU6CiAKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydExhYmVscygpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25z
dCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCmluZGV4IDBmNDEyYjJkMzEyZmEyZDJhNzEzOWIz
NmFmODBhZjY5NmVkZGRmMzAuLjIyMDQ2ZWE4NDM1NTZjNDgwZjEzYjc5NTYzMmU3OTNjZmE3NDNh
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCkBAIC0yOTEs
MTAgKzI5MSwxMCBAQCBOUE9iamVjdCogSFRNTFBsdWdJbkVsZW1lbnQ6OmdldE5QT2JqZWN0KCkK
IAogI2VuZGlmIC8qIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKSAqLwogCi1SZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gSFRNTFBsdWdJbkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFBs
dWdJbkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5
bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYgaW5zZXJ0aW9uUG9zaXRpb24pCiB7CiAgICAg
aWYgKG1fcGx1Z2luUmVwbGFjZW1lbnQgJiYgbV9wbHVnaW5SZXBsYWNlbWVudC0+d2lsbENyZWF0
ZVJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVybiBtX3BsdWdpblJlcGxhY2VtZW50LT5jcmVhdGVF
bGVtZW50UmVuZGVyZXIoKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOworICAgICAgICByZXR1cm4g
bV9wbHVnaW5SZXBsYWNlbWVudC0+Y3JlYXRlRWxlbWVudFJlbmRlcmVyKCp0aGlzLCBXVEY6Om1v
dmUoc3R5bGUpLCBpbnNlcnRpb25Qb3NpdGlvbik7CiAKICAgICByZXR1cm4gY3JlYXRlUmVuZGVy
ZXI8UmVuZGVyRW1iZWRkZWRPYmplY3Q+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaAppbmRleCA4YTc1YmJlNzViOGIxZmJj
MGJhOWY4MjMyNjllYzhmZWNhZjJkNWRjLi42Mjk0ZDE0ZGRkZjg2MGNiYmJhZDY4NmUxMmVmY2Mx
MTdmN2Y2NmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oCkBAIC0x
MDMsNyArMTAzLDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRI
YW5kbGVyKEV2ZW50Kikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgcmVxdWVzdE9iamVj
dChjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgVmVjdG9y
PFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcyk7
Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwg
Y29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCopIG92ZXJyaWRlOwogCiAgICAgLy8g
U3ViY2xhc3NlcyBzaG91bGQgdXNlIGd1YXJkZWREaXNwYXRjaEJlZm9yZUxvYWRFdmVudCBpbnN0
ZWFkIG9mIGNhbGxpbmcgZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQgZGlyZWN0bHkuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAppbmRleCA4M2YxYjdl
NjBlNzMxOTNhZWQwMWMxN2Y1MTRhZTBiNWQ5MDBjMzYzLi4xMTkwNTEzYTlmZGU0MzE3NmE1Y2Zh
NGEzNmY0ODIyMTliMTMwYWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJ
bkltYWdlRWxlbWVudC5jcHAKQEAgLTE4OSwxMiArMTg5LDEyIEBAIGJvb2wgSFRNTFBsdWdJbklt
YWdlRWxlbWVudDo6d291bGRMb2FkQXNOZXRzY2FwZVBsdWdpbihjb25zdCBTdHJpbmcmIHVybCwg
Y29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBI
VE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0
eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNv
bnN0IFJlbmRlclRyZWVQb3NpdGlvbiYgaW5zZXJ0aW9uUG9zaXRpb24pCiB7CiAgICAgQVNTRVJU
KCFkb2N1bWVudCgpLmluUGFnZUNhY2hlKCkpOwogCiAgICAgaWYgKGRpc3BsYXlTdGF0ZSgpID49
IFByZXBhcmluZ1BsdWdpblJlcGxhY2VtZW50KQotICAgICAgICByZXR1cm4gSFRNTFBsdWdJbkVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihXVEY6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAg
cmV0dXJuIEhUTUxQbHVnSW5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoV1RGOjptb3Zl
KHN0eWxlKSwgaW5zZXJ0aW9uUG9zaXRpb24pOwogCiAgICAgLy8gT25jZSBhIFBsdWdJbiBFbGVt
ZW50IGNyZWF0ZXMgaXRzIHJlbmRlcmVyLCBpdCBuZWVkcyB0byBiZSB0b2xkIHdoZW4gdGhlIERv
Y3VtZW50IGdvZXMKICAgICAvLyBpbmFjdGl2ZSBvciByZWFjdGl2YXRlcyBzbyBpdCBjYW4gY2xl
YXIgdGhlIHJlbmRlcmVyIGJlZm9yZSBnb2luZyBpbnRvIHRoZSBwYWdlIGNhY2hlLgpAQCAtMjE4
LDcgKzIxOCw3IEBAIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlCiAgICAgaWYgKGlzSW1hZ2VUeXBl
KCkpCiAgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJJbWFnZT4oKnRoaXMsIFdU
Rjo6bW92ZShzdHlsZSkpOwogCi0gICAgcmV0dXJuIEhUTUxQbHVnSW5FbGVtZW50OjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIoV1RGOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIEhUTUxQbHVnSW5F
bGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoV1RGOjptb3ZlKHN0eWxlKSwgaW5zZXJ0aW9u
UG9zaXRpb24pOwogfQogCiBib29sIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmNoaWxkU2hvdWxk
Q3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYgY2hpbGQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oCmluZGV4IDlmMjhlMmVlODZkMWE5MmE3YWQy
YTg1ZDFlYzE3Y2RkMjVlYjY4YzEuLmUwNDk1Yjc0ZDI0YzdhZTdhNzVkNmFlNDVkM2FjNDZlODVm
M2I1MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5o
CkBAIC0xMTcsNyArMTE3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoUGFy
c2luZ0NoaWxkcmVuKCkgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIGRpZEFkZFVz
ZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCopIG92ZXJyaWRlIGZpbmFsOwogCi0gICAgdmly
dHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxS
ZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVu
ZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxk
Q3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
Ym9vbCB3aWxsUmVjYWxjU3R5bGUoU3R5bGU6OkNoYW5nZSkgb3ZlcnJpZGUgZmluYWw7CiAgICAg
dmlydHVhbCB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIG92ZXJyaWRlIGZpbmFsOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKaW5kZXggMDEyYzZkZjEyOTgx
MGM3NGRjNmY0NGE2MjA0NGY1MzNkZWRkZDdjMy4uODdmMGUzNzBjYTAyYzNhYzliYjE0NmZiOWJk
MDc2ZWJiNGE0ODUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jl
c3NFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1l
bnQuY3BwCkBAIC01Niw3ICs1Niw3IEBAIFJlZjxIVE1MUHJvZ3Jlc3NFbGVtZW50PiBIVE1MUHJv
Z3Jlc3NFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtCiAgICAgcmV0
dXJuIHByb2dyZXNzOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFByb2dyZXNz
RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkK
K1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9z
aXRpb24mKQogewogICAgIGlmICghc3R5bGUuZ2V0KCkuaGFzQXBwZWFyYW5jZSgpKQogICAgICAg
ICByZXR1cm4gUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgKaW5kZXggZjdkYzBj
MGFhMjM0N2IzZjI2MmZmOTEzODA1ZDcwYjJjNjhiNWE1ZC4uYjdiNDVhNTlhYWQ5NDU0YjgxMmZh
MDNkMDM4OWVlNWE4YTMyMzFhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UHJvZ3Jlc3NFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NF
bGVtZW50LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkQXBwZWFySW5kZXRlcm1pbmF0ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0TGFiZWxzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAg
dmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3Qg
UmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hv
dWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIFJlbmRl
clByb2dyZXNzKiByZW5kZXJQcm9ncmVzcygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxSVEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFJU
RWxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3MjA1NWRlN2U0MWQ0YTE0NjZkMDUyNDFlZmUxZDJjMTAx
NjIyZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxSVEVsZW1l
bnQuaApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBIVE1MUlRFbGVtZW50
X2gKKyNkZWZpbmUgSFRNTFJURWxlbWVudF9oCisKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIlJlbmRlclJ1YnkuaCIKKyNpbmNsdWRl
ICJSZW5kZXJSdWJ5VGV4dC5oIgorI2luY2x1ZGUgIlJlbmRlclRyZWVQb3NpdGlvbi5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEhUTUxSVEVsZW1lbnQgZmluYWwgOiBwdWJsaWMg
SFRNTEVsZW1lbnQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8SFRNTFJURWxlbWVudD4gY3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxSVEVsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgSFRNTFJURWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgICAgIDogSFRN
TEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCisgICAgeworICAgICAgICBBU1NFUlQoaGFzVGFn
TmFtZShIVE1MTmFtZXM6OnJ0VGFnKSk7CisgICAgfQorCisgICAgdmlydHVhbCBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwg
Y29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7Cit9OworCisKK2lubGluZSBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFJURWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJiBpbnNl
cnRpb25Qb3NpdGlvbikKK3sKKyAgICAvLyA/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/IHJlbmRlciB0cmVl
IHN0cnVjdHVyZSByZXF1aXJlcyBibGFoIGJsYWggdHJlYXQgPHJ0PiBhcyBydWJ5IHRleHQgT05M
WSBpZiB0aGUgcGFyZW50IGlzIHJ1YnkuCisgICAgaWYgKGlzUnVieSgmaW5zZXJ0aW9uUG9zaXRp
b24ucGFyZW50KCkpKQorICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyUnVieVRl
eHQ+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihXVEY6Om1vdmUoc3R5bGUpLCBpbnNlcnRpb25Qb3NpdGlvbik7
Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxS
dWJ5RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUnVieUVsZW1lbnQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lNDI3Mzg1MTUxNjU3YWUzNGM2YmFlZjA5NTQ4YTI4ZDUyZmY2ZjcwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUnVieUVsZW1lbnQuaApAQCAtMCww
ICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBIVE1MUnVieUVsZW1lbnRfaAorI2RlZmlu
ZSBIVE1MUnVieUVsZW1lbnRfaAorCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJSZW5kZXJSdWJ5LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSFRNTFJ1YnlF
bGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPEhUTUxSdWJ5RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEhUTUxSdWJ5RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIH0KKworcHJpdmF0ZToK
KyAgICBIVE1MUnVieUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmIGRvY3VtZW50KQorICAgICAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQor
ICAgIHsKKyAgICAgICAgQVNTRVJUKGhhc1RhZ05hbWUoSFRNTE5hbWVzOjpydWJ5VGFnKSk7Cisg
ICAgfQorCisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikg
b3ZlcnJpZGU7Cit9OworCisKK2lubGluZSBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFJ1
YnlFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxl
LCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mIGluc2VydGlvblBvc2l0aW9uKQoreworICAgIGlm
IChzdHlsZS5nZXQoKS5kaXNwbGF5KCkgPT0gSU5MSU5FKQorICAgICAgICByZXR1cm4gY3JlYXRl
UmVuZGVyZXI8UmVuZGVyUnVieUFzSW5saW5lPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7Cisg
ICAgaWYgKHN0eWxlLmdldCgpLmRpc3BsYXkoKSA9PSBCTE9DSyB8fCBzdHlsZS5nZXQoKS5kaXNw
bGF5KCkgPT0gSU5MSU5FX0JMT0NLKQorICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVu
ZGVyUnVieUFzQmxvY2s+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gSFRN
TEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihXVEY6Om1vdmUoc3R5bGUpLCBpbnNlcnRp
b25Qb3NpdGlvbik7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuY3BwCmluZGV4IDhiODc5M2FmYmNlODQ1NGU4MmI2NDgxNzkwNTZhODk5NTU4
YWUyNTQuLmQ1MDVmM2YxMGEwYzQ4NTI0NDU4Yjk0NTRkNGVlYmQ0Yzk1N2Q3NzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCkBAIC0zNTAsNyArMzUwLDcgQEAg
Ym9vbCBIVE1MU2VsZWN0RWxlbWVudDo6Y2FuU2VsZWN0QWxsKCkgY29uc3QKICAgICByZXR1cm4g
IXVzZXNNZW51TGlzdCgpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFNlbGVj
dEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUp
CitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFNlbGVjdEVsZW1lbnQ6OmNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3Np
dGlvbiYpCiB7CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBpZiAodXNlc01lbnVMaXN0KCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKaW5kZXggODg3YTA2YTZiMGVmZjY0
MTMzOTNmNzU3MGNlMDE0ZDI0M2ZjNzY0Mi4uYTE1NWRmMGFiNzkwMTlhYjViYTE2MmNmODZkNWQ5
MDUwNDJmYTUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaApAQCAt
MTM4LDcgKzEzOCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9u
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZp
cnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBv
dmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0
eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkgb3ZlcnJpZGU7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgcmVzZXQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFN1bW1hcnlFbGVtZW50LmNwcAppbmRleCBhMDFjMDEyM2FlZTc4ZWRmMDYwZDY1NjRkNmNjYThm
ODNlMzBhODMxLi4xYzRjYzNiOTY5NzRlYzMyODcwYjgxMjE4MWQ5NmQ0MTVlZTRlMjM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCkBAIC02NSw3ICs2NSw3
IEBAIEhUTUxTdW1tYXJ5RWxlbWVudDo6SFRNTFN1bW1hcnlFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoc3VtbWFy
eVRhZykpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFN1bW1hcnlFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikK
IHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyQmxvY2tGbG93PigqdGhpcywgV1RG
Ojptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
dW1tYXJ5RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQu
aAppbmRleCAyMzNhYTQyZWRkNjVmMjlmMTZmOGVkNWQ2OGY3YTY4ZDBjNzAwNDNmLi40ODA5Y2U0
NDU1YzRjNDQ2N2RkMGE5N2QzYTUxYjYwNTU5NmY2Mjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFN1bW1hcnlFbGVtZW50LmgKQEAgLTM3LDcgKzM3LDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBIVE1MU3VtbWFyeUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7
CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYm
LCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wg
Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBvdmVycmlkZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgppbmRleCAwZDA5ODVkMGNmZjhjMmFhODE1MTkz
NjAxNDhhZDJhNWQ1OTc2MzIyLi5kZWY1ODhhYzAxY2E5MzRlNTgyZGMyNzI1YmUwOGM0NTdhMWI0
NzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgpAQCAtMTAzLDkgKzEwMyw5IEBA
IHByb2dyZXNzIGludGVyZmFjZU5hbWU9SFRNTFByb2dyZXNzRWxlbWVudAogcSBpbnRlcmZhY2VO
YW1lPUhUTUxRdW90ZUVsZW1lbnQKIHJiIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIHJwIGlu
dGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKLXJ0IGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKK3J0
IGludGVyZmFjZU5hbWU9SFRNTFJURWxlbWVudCwgSlNJbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50
CiBydGMgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotcnVieSBpbnRlcmZhY2VOYW1lPUhUTUxF
bGVtZW50CitydWJ5IGludGVyZmFjZU5hbWU9SFRNTFJ1YnlFbGVtZW50LCBKU0ludGVyZmFjZU5h
bWU9SFRNTEVsZW1lbnQKIHMgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogc2FtcCBpbnRlcmZh
Y2VOYW1lPUhUTUxFbGVtZW50CiBzY3JpcHQgY29uc3RydWN0b3JOZWVkc0NyZWF0ZWRCeVBhcnNl
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKaW5kZXggYmIz
YjQ1MmRhYWYzNWUzMzhmMGRkYzlmN2E1NzVhMjQ4ZTJlZDliZC4uNGE5NjRmOGZhZjc2NWM5OGU4
YmJmYjlkZjQ0YjVhYjI2YWQ1ZTk3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEFyZWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
QXJlYUVsZW1lbnQuY3BwCkBAIC0yMDksNyArMjA5LDcgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
aWMKICAgICAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5h
bWUsIHZhbHVlKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxUZXh0QXJlYUVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFRleHRBcmVhRWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyVGV4dENvbnRyb2xNdWx0
aUxpbmU+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEFyZWFFbGVtZW50LmgKaW5kZXggZDQ1NmYxYmE3NWIwZDhlZWJjZTA4NjkzNTU2MjUx
NGFhZTRjNDAwNC4uYzM1OGNjMTAzMDFmMTgyN2IxZjljMDhhYjFkZGUzOGQ2NDIwZDU3YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKQEAgLTEwMSw3ICsxMDEs
NyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBi
b29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxl
U3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBib29sIGFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYsIGJv
b2wpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZXNldCgpIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgYm9vbCBoYXNDdXN0b21Gb2N1c0xvZ2ljKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAppbmRleCBhZjJhNTk4ODk1Yzk4OGM2MzE1
MzU4MmJkOTM1MTNlMzcwMDczN2VjLi4yOTlkNzI0OTFkYWZiM2MzZjM4MzFjYWZlOTBlN2YwNjRh
NmU2OTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKQEAgLTY4
LDcgKzY4LDcgQEAgYm9vbCBIVE1MVmlkZW9FbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0
IFJlbmRlclN0eWxlJiBzdHlsZSkKICAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OnJlbmRlcmVySXNO
ZWVkZWQoc3R5bGUpOyAKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxWaWRlb0Vs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFZpZGVvRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9u
JikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyVmlkZW8+KCp0aGlzLCBXVEY6
Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZp
ZGVvRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKaW5k
ZXggOWYzZDE5Y2M0MmMzMzQwN2FjNGEzOGJjOTJmMWY5ZjcyNzVmNTY2OC4uZThkNmNkOTAwNjYy
Mjk3ZGNjMzc3Zjc2YjliNGMwNWVkMGM2NTgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlk
ZW9FbGVtZW50LmgKQEAgLTc2LDcgKzc2LDcgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkRGlz
cGxheVBvc3RlckltYWdlKCkgY29uc3QgeyByZXR1cm4gZGlzcGxheU1vZGUoKSA9PSBQb3N0ZXIg
fHwgZGlzcGxheU1vZGUoKSA9PSBQb3N0ZXJXYWl0aW5nRm9yVmlkZW87IH0KIAogICAgIFVSTCBw
b3N0ZXJJbWFnZVVSTCgpIGNvbnN0OwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRl
OwogCiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogICAgIGJvb2wgd2Via2l0
U3VwcG9ydHNQcmVzZW50YXRpb25Nb2RlKGNvbnN0IFN0cmluZyYpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MV0JSRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxXQlJFbGVtZW50LmNwcAppbmRleCBmZjFkYjZkOTY3MGU4NzQ3M2VhNGZhZTE1
YzM5N2U1MTVlOTlkMGI3Li40ZTllNjMwZjM0ZWQ0ZWM2MzE3ZmY5NjM1MzMzZjE1ZTdmM2IwZWNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxXQlJFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxXQlJFbGVtZW50LmNwcApAQCAtNDQsNyArNDQsNyBA
QCBIVE1MV0JSRWxlbWVudDo6SFRNTFdCUkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIEFTU0VSVChoYXNUYWdOYW1lKHdiclRhZykp
OwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFdCUkVsZW1lbnQ6OmNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gSFRNTFdCUkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVy
U3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJu
IGNyZWF0ZVJlbmRlcmVyPFJlbmRlckxpbmVCcmVhaz4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MV0JSRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MV0JSRWxlbWVudC5oCmluZGV4IDM1MjMzM2Y4ZThkNGE4
NjNjNWE1ZmZjYzY3NTM5MWY2NzFkYmJjMTQuLjcwNDc1MTZhNzBiOWVhMjg5NDAyYmI2YzUwZmYw
YTk5ZDNkMGE0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFdCUkVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxXQlJFbGVtZW50LmgKQEAgLTM3LDcg
KzM3LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MV0JSRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJy
aWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwCmluZGV4IGI0OTZhOTA0ZWEz
ZDZmOTM1YTljMDY0M2JlOGVjY2U1ZTllYzg3NzUuLjY3NmIxZWNmZmY5YmQzODZkNDJhOWU5MjI2
ZWNkMWNkOGNhNGVmMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Rl
dGFpbHNNYXJrZXJDb250cm9sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
ZXRhaWxzTWFya2VyQ29udHJvbC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgRGV0YWlsc01hcmtlckNv
bnRyb2w6OkRldGFpbHNNYXJrZXJDb250cm9sKERvY3VtZW50JiBkb2N1bWVudCkKICAgICBzZXRQ
c2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LWRldGFpbHMtbWFya2VyIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
RGV0YWlsc01hcmtlckNvbnRyb2w6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gRGV0YWlsc01hcmtlckNvbnRy
b2w6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0
IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRl
ckRldGFpbHNNYXJrZXI+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5oCmluZGV4IDQ3YWIw
ZDMzZjc5NTVjOWFkZTA0ODAyOTRkNjZiZjE2ODBiZTJkOGEuLjFlMmM1NTRlMzdkODQyNDJmMDk0
NjIyMTQ5YTA4ZGRlZGZmMWRjNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvRGV0YWlsc01hcmtlckNvbnRyb2wuaApAQCAtMzQsNyArMzQsNyBAQAogCiAjaW5jbHVkZSAi
SFRNTERpdkVsZW1lbnQuaCIKIAotbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIFdlYkNv
cmUgeyAKIAogY2xhc3MgRGV0YWlsc01hcmtlckNvbnRyb2wgZmluYWwgOiBwdWJsaWMgSFRNTERp
dkVsZW1lbnQgewogcHVibGljOgpAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIERldGFpbHNNYXJrZXJDb250cm9sKERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIFJlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9z
aXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmluZGV4IDJkMzNiODE2ODhlMDFl
NjUzYTBkMjQ2NmJlNTgxMDRjMzU5MDA2NDAuLjlhNzBiNDBiZWY2OWJiZmI2Y2Q3ZjE2MGE1YmQz
YTI5YThiYTZjNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlh
Q29udHJvbEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTMxMCw3ICszMTAsNyBAQCB2b2lkIE1lZGlhQ29udHJv
bFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6c2V0VGltZURpc3BsYXlzSGlkZGVuKGJvb2wgaGlk
ZGVuKQogICAgIH0KIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1lZGlhQ29udHJvbFRp
bWVsaW5lQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJT
dHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xUaW1l
bGluZUNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNy
ZWF0ZVJlbmRlcmVyPFJlbmRlck1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyPigqdGhpcywg
V1RGOjptb3ZlKHN0eWxlKSk7CiB9CkBAIC0zMzAsNyArMzMwLDcgQEAgUGFzc1JlZlB0cjxNZWRp
YUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xWb2x1bWVT
bGlkZXJDb24KICAgICByZXR1cm4gZWxlbWVudC5yZWxlYXNlKCk7CiB9CiAKLVJlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJl
bmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1l
ZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CkBA
IC0xMDg4LDcgKzEwODgsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRh
aW5lckVsZW1lbnQ+IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lcgogICAgIHJldHVybiBl
bGVtZW50LnJlbGVhc2UoKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWVkaWFDb250
cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxS
ZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICBy
ZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudD4oKnRo
aXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmgKaW5kZXggMzljOTk5MGFmYjljZDY5ZDE3MGIwMDA0
MThhY2Y2MjdjNWYyNjU0OS4uMzAxNDgyODFlOGNiMGJiYmNiZDJhMTNjNmQzMGYzODQyZGU1Zjc0
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxl
bWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVt
ZW50cy5oCkBAIC0xMTAsNyArMTEwLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNp
dCBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQoRG9jdW1lbnQmKTsKIAotICAg
IHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0
IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogfTsKIAogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQpAQCAtMTI4LDcgKzEyOCw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFs
IHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIG92ZXJyaWRlOwogCi0gICAgdmlydHVh
bCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5k
ZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVy
VHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiB9OwogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCkBAIC00NTYsNyArNDU2LDcgQEAgcHJpdmF0ZToKIAogICAgIGV4cGxpY2l0IE1lZGlh
Q29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQoRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1
YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEltYWdl
PiBjcmVhdGVUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkltYWdlKCkgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIHRleHRUcmFja1JlcHJlc2VudGF0aW9uQm91bmRzQ2hhbmdlZChjb25zdCBJbnRS
ZWN0Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZXRlclNoYWRvd0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJT
aGFkb3dFbGVtZW50LmNwcAppbmRleCA0MGJkZTExOThiZjRmYWU3NzAxNjU3M2FmYTFjMzk3NTg3
MWZlZjA3Li40MzExYTcwNTllNzhjNDU0MTkzNTlkZDFhZDUzN2FiMmJjNzY5NDAyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5jcHAKQEAg
LTczLDcgKzczLDcgQEAgYm9vbCBNZXRlcklubmVyRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChj
b25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAgICAgcmV0dXJuIHJlbmRlciAmJiAhcmVuZGVyLT50
aGVtZSgpLnN1cHBvcnRzTWV0ZXIocmVuZGVyLT5zdHlsZSgpLmFwcGVhcmFuY2UoKSkgJiYgSFRN
TERpdkVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOwogfQogCi1SZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gTWV0ZXJJbm5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWV0ZXJJbm5l
ckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUs
IGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVy
PFJlbmRlck1ldGVyPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5oCmluZGV4IGU3ZDVlNjFlZjQy
MmJiY2ZjOWE1Mzc4NWNiYThmYmQxNWJmMDg5ZWQuLjNmMTUxZGE1NTA3YmNhYWU2Nzg5OTBmODk0
YTM3NDA0OThhODZlNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
dGVyU2hhZG93RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVy
U2hhZG93RWxlbWVudC5oCkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAgTWV0ZXJJbm5l
ckVsZW1lbnQoRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVk
KGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikg
b3ZlcnJpZGU7CiB9OwogCiBpbmxpbmUgUGFzc1JlZlB0cjxNZXRlcklubmVyRWxlbWVudD4gTWV0
ZXJJbm5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcAppbmRleCAz
MjllZjU2YjVjMTE3MDk3Y2U3M2RkZTdhNmZmYTBiNjBiMjIxNDFmLi42OTI3YjRhNzAxMjU0ZjE2
OWZiMGUyMjMyMTIwM2MzMWZhM2FkMTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgUHJv
Z3Jlc3NJbm5lckVsZW1lbnQ6OlByb2dyZXNzSW5uZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVu
dCkKIHsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFByb2dyZXNzSW5uZXJFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IFByb2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24m
KQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJQcm9ncmVzcz4oKnRoaXMsIFdU
Rjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Q
cm9ncmVzc1NoYWRvd0VsZW1lbnQuaAppbmRleCAzNDAxZmQyNWZjNmQ5Yzk5ZmM0NzAzNjZhY2Iw
OWE5M2E1MWQwZjBmLi5kZGEzZDdmMTZkYWY5YzEyODUxNWJkMmE2NTVkNDA4YWQ4ODFlYWEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1l
bnQuaApAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFByb2dyZXNzSW5u
ZXJFbGVtZW50KERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYp
IG92ZXJyaWRlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
U2xpZGVyVGh1bWJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRl
clRodW1iRWxlbWVudC5jcHAKaW5kZXggNTQ3MDE2NWM5MzQ3ZWI4ZDZiMzVkZDRiMjFlZjQ0NjU4
MWM2NzZhZi4uNjgxNGE1MmIzZGIxYWI4NTk1OGU4MWUzOWM1OTYyYTAyMzAxYTY1MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCkBA
IC0yMTQsNyArMjE0LDcgQEAgdm9pZCBTbGlkZXJUaHVtYkVsZW1lbnQ6OnNldFBvc2l0aW9uRnJv
bVZhbHVlKCkKICAgICAgICAgcmVuZGVyZXIoKS0+c2V0TmVlZHNMYXlvdXQoKTsKIH0KIAotUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNsaWRlclRodW1iRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBTbGlkZXJUaHVtYkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNy
ZWF0ZVJlbmRlcmVyPFJlbmRlclNsaWRlclRodW1iPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7
CiB9CkBAIC02MTUsNyArNjE1LDcgQEAgUGFzc1JlZlB0cjxTbGlkZXJDb250YWluZXJFbGVtZW50
PiBTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3UKICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFNsaWRlckNvbnRhaW5lckVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAot
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAg
ICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU2xpZGVyQ29udGFpbmVyPigqdGhpcywgV1RG
Ojptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9TbGlkZXJUaHVtYkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRl
clRodW1iRWxlbWVudC5oCmluZGV4IDg5ZTdkYzMxZGIwYjU0ZWQ4MDEwZmVhODRkMTk0MzM5MTI5
ODMzOTEuLmRlODYzOTI1Y2RjZmIzNTliNDg5MjNmODVkNDlhYTBjY2FjZGY2MTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCkBAIC02MSw3
ICs2MSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU2xpZGVyVGh1bWJFbGVtZW50KERvY3Vt
ZW50Jik7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0
eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IFJlZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVu
KERvY3VtZW50Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzRGlzYWJsZWRGb3JtQ29u
dHJvbCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBtYXRjaGVzUmVhZFdyaXRl
UHNldWRvQ2xhc3MoKSBjb25zdCBvdmVycmlkZTsKQEAgLTEzMSw3ICsxMzEsNyBAQCBwdWJsaWM6
CiAKIHByaXZhdGU6CiAgICAgU2xpZGVyQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCYpOwotICAg
IHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0
IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWlj
U3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0IG92ZXJyaWRlOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5j
cHAKaW5kZXggZDNkYjkzNjRjYTk0MTRkZjYzYTI0ODZmY2ZhMjdiNWM4ZjAxMjI1NS4uNTliZGYw
MWI4YWJlZDQ1ZGU1OWE3NmVkYzQ2MGM0MWY2OTY3OTA2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCkBAIC01
Niw3ICs1Niw3IEBAIFBhc3NSZWZQdHI8VGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcj4gVGV4dENv
bnRyb2xJbm5lckNvbnRhaW5lcjo6Y3JlYXRlKERvY3VtZW50CiAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBUZXh0Q29udHJvbElubmVyQ29udGFpbmVyKGRvY3VtZW50KSk7CiB9CiAgICAgCi1SZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcjo6Y3JlYXRlRWxl
bWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBUZXh0Q29udHJvbElubmVyQ29udGFpbmVyOjpjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewog
ICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJUZXh0Q29udHJvbElubmVyQ29udGFpbmVy
PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CkBAIC0xMTAsNyArMTEwLDcgQEAgdm9pZCBU
ZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2
ZW50KQogICAgICAgICBIVE1MRGl2RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7
CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1l
bnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVl
UG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJUZXh0Q29udHJv
bElubmVyQmxvY2s+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgKaW5kZXgg
YjI0NzUzNjEyMWRjNWVhNmMyZWY1ZGFiMGU4MzllYzY5MGVlOTU0Zi4uNjY3NGE5ZWRkODVhNzRl
MWNhYzc1ODVkOWVhNDBiMzc3MjM5MmFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgKQEAgLTM5LDcgKzM5LDcgQEAg
cHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRleHRDb250cm9sSW5uZXJDb250YWluZXI+
IGNyZWF0ZShEb2N1bWVudCYpOwogcHJvdGVjdGVkOgogICAgIFRleHRDb250cm9sSW5uZXJDb250
YWluZXIoRG9jdW1lbnQmKTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVm
PFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIH07
CiAKIGNsYXNzIFRleHRDb250cm9sSW5uZXJFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxEaXZF
bGVtZW50IHsKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFRleHRD
b250cm9sSW5uZXJUZXh0RWxlbWVudChEb2N1bWVudCYpOwotICAgIHZpcnR1YWwgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlv
biYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgUmVmUHRyPFJlbmRlclN0eWxlPiBjdXN0b21TdHls
ZUZvclJlbmRlcmVyKFJlbmRlclN0eWxlJiBwYXJlbnRTdHlsZSkgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCBib29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1RleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMu
Y3BwCmluZGV4IDY5NzIzYThkMDFjMTRhNGZlNzVlYjVmN2JjMjc1OTQ5ODgxNzlhMzMuLjlhNmQ0
NDM5NDNiNzMzMWQzM2ZhOTAxZGZlYjNmZWFkMzdlZTk4ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNCdXR0b25F
bGVtZW50TWFjLmNwcApAQCAtMTI1LDcgKzEyNSw3IEBAIHZvaWQgSW1hZ2VDb250cm9sc0J1dHRv
bkVsZW1lbnRNYWM6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogICAgIEhUTUxE
aXZFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKIH0KIAotUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjOjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjOjpjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewog
ICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJJbWFnZUNvbnRyb2xzQnV0dG9uPigqdGhp
cywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5oCmluZGV4
IDUzZDcyYjE4MzM4OWJjMjEwY2JjNjg0OTQ3MmZhNjAzYTFhMGU0NmYuLjEzNGZjMjA4YzdkYjE0
Y2UyNTMzZWI5NDQ3NDNiMDdkOGQ2MTk0NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5o
CkBAIC00Miw3ICs0Miw3IEBAIHByaXZhdGU6CiAgICAgSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1l
bnRNYWMoRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVy
KEV2ZW50Kikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAK
ICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCmlu
ZGV4IGQ1MjcxZWNlYWM0YzY4MGEzYzRhNGJmZjlhNDBhMzMyZjY0OGU4ZDQuLmI2ZWVjY2MwYjQx
ZWMwYmY0OTQ0ZjhmZmY1MjVmYjhhMTI5OGIzZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMu
Y3BwCkBAIC0xMDIsNyArMTAyLDcgQEAgSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjOjp+SW1h
Z2VDb250cm9sc1Jvb3RFbGVtZW50TWFjKCkKIHsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYzo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBJbWFnZUNv
bnRyb2xzUm9vdEVsZW1lbnRNYWM6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNy
ZWF0ZVJlbmRlcmVyPFJlbmRlckltYWdlQ29udHJvbHM+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUp
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNv
bnRyb2xzUm9vdEVsZW1lbnRNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9J
bWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuaAppbmRleCA2MGVjNTMzMzg1M2ViOTU1MGI0NjBj
ODQ3ZTZkMzljNjNmNjE1YThmLi5lMjNmNGUxZmQ5M2IzZjk4YzJkZTlmMzdhNjAyMTZlYzIwOWY2
Njg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250
cm9sc1Jvb3RFbGVtZW50TWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFj
L0ltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5oCkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjKERvY3VtZW50Jik7CiAK
LSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBj
b25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAppbmRleCA1ZjJlYTg1NDBk
ZTBhMWFiNTMwNTAyNzYyNWU3YTI0MjFkODllY2QxLi41YjM1OTJkMTZkNDRjMTE0NTRhMWIzOWI0
NjRjYTFjNTZkMzNlYmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZU
VEN1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCkBAIC0y
MzQsNyArMjM0LDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBWVFRDdWVCb3g6OnZ0dEN1ZUJveFNo
YWRvd1BzZXVkb0lkKCkKICAgICByZXR1cm4gdHJhY2tEaXNwbGF5Qm94U2hhZG93UHNldWRvSWQ7
CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBWVFRDdWVCb3g6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gVlRUQ3VlQm94OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0
eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5k
ZXJlcjxSZW5kZXJWVFRDdWU+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZUVEN1ZS5oCmluZGV4IGNjMWRmYmM1NWIwMDA5ZWVmN2QwOTk5MmE0NTkyMTM2
OTIxOWZlNmMuLmU1MGRjNzE5ZGQyMzk3Njg5Mjk1NmY4YjgyOTM3MmFiNWFmMDY4NGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9WVFRDdWUuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiBwcm90
ZWN0ZWQ6CiAgICAgVlRUQ3VlQm94KERvY3VtZW50JiwgVlRUQ3VlJik7CiAKLSAgICB2aXJ0dWFs
IFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRl
clN0eWxlPiYmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBS
ZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZSBmaW5hbDsKIAogICAgIFZUVEN1ZSYgbV9jdWU7
CiAgICAgaW50IG1fZm9udFNpemVGcm9tQ2FwdGlvblVzZXJQcmVmczsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmNwcAppbmRl
eCA1OWQ1MzU2MjY4ZjhhNDliNzAzMTdlYWE2NTJmNmJiNmFjY2Q2ODU4Li4wY2Y1MDViZTk1OGYy
N2U0NDlhZWY2MDNlNjlmOWVkYjNlZWM1MTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9t
YXRobWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbWF0aG1sL01hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuY3BwCkBAIC02OSw3ICs2OSw3
IEBAIHZvaWQgTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNv
bnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiAgICAgTWF0aE1MRWxlbWVudDo6Y2hpbGRyZW5DaGFu
Z2VkKGNoYW5nZSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxJbmxpbmVD
b250YWluZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYm
IHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1hdGhNTElubGluZUNvbnRhaW5lckVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNv
bnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgaWYgKGhhc1RhZ05hbWUoYW5ub3RhdGlv
bl94bWxUYWcpKQogICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MUm93
PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9t
YXRobWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbWF0
aG1sL01hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuaAppbmRleCAyOTM2OTM2ZmI4YTIxZGEx
ZjgyYTExODAzZmY3NGZhNzNhOWExODhhLi5kNGMzYmJjM2E3ODg2YjIyYmNiYTI3N2Q2YTkzOWEw
ODQ5NDUzZWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MSW5saW5l
Q29udGFpbmVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxJbmxp
bmVDb250YWluZXJFbGVtZW50LmgKQEAgLTQzLDcgKzQzLDcgQEAgcHJvdGVjdGVkOgogICAgIHZv
aWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJik7CiAKIHByaXZhdGU6Ci0gICAg
dmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3Qg
UmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiB9OwogICAgIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5jcHAKaW5kZXggYmRhMTBjMjk2YWU0MWMwZjA5
MDRmODc2ODk5YmVhNjE3MjIyYmIxYy4uZjBjYWFiYzcxOTBjMTRkODcyNTFmNzU5MTg3ZTNkYjFm
NDllNzE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuY3Bw
CkBAIC00Myw3ICs0Myw3IEBAIFJlZjxNYXRoTUxNYXRoRWxlbWVudD4gTWF0aE1MTWF0aEVsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBECiAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgTWF0aE1MTWF0aEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAot
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1hdGhNTE1hdGhFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IE1hdGhNTE1hdGhFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0
eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBj
cmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxNYXRoPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oCmluZGV4IDRhNDEw
MzEwYmQ4MTIyNDY0OTcwN2I0MzhkNTU1ZWY0MzgyOWM3ZWEuLjA0ZWM2OWNiZDYzZjNiZmMwNjBm
Yzc0YjVhMmFjMjUxMDI0ZGNhZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9N
YXRoTUxNYXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRo
RWxlbWVudC5oCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTWF0aE1M
TWF0aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKIAot
ICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNv
bnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogfTsKICAgICAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5jcHAKaW5kZXggMzhjZjlk
ODFjNTY2YmI2MWYyYjcxZGJhMzY2ZWQ0NWM5ZTc2ZDM1Ni4uZDZkYTNiMzU5YzEyMDcyZTIyMWNm
OGFhYjIxMGY5ZWJjNWJmYmZjOCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTE1lbmNsb3NlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhN
TE1lbmNsb3NlRWxlbWVudC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgUmVmPE1hdGhNTE1lbmNsb3Nl
RWxlbWVudD4gTWF0aE1MTWVuY2xvc2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGEKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNYXRoTUxNZW5jbG9zZUVsZW1lbnQodGFn
TmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1hdGhNTE1l
bmNsb3NlRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBz
dHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxNZW5jbG9zZUVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpCiB7ICAgIAogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJN
YXRoTUxNZW5jbG9zZT4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5oCmluZGV4IGMyN2E0Mzk2Y2E0NzM4
NTU0ZTkxMTI1NjhmNmUxNzM3Zjg5YjNhMWEuLjVmNDQyYzM5NDA4NDIxYTk4MjkwNGI0MTBjNDc1
YjA0ODcyZTUwODMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNZW5j
bG9zZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VF
bGVtZW50LmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIE1hdGhN
TE1lbmNsb3NlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKLSAgICB2
aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVm
PFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBS
ZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50
YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRp
ZXMmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5j
cHAKaW5kZXggMDg3ZGZlNjVjNmNhMzliNDE2YjcyODcyYjM1ZWYxM2Y2NDg3MTgwMy4uNWZmYzA2
OWQ0MTEwMzM1OGU5M2YxNDM1Mjk1MzBkNjY1YmRiZWRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmNwcApAQCAtNTEsNyArNTEsNyBAQCBSZWY8TWF0
aE1MU2VsZWN0RWxlbWVudD4gTWF0aE1MU2VsZWN0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1hdGhNTFNlbGVjdEVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IE1hdGhNTFNlbGVjdEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWF0aE1MU2VsZWN0RWxlbWVu
dDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3Qg
UmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVy
TWF0aE1MUm93PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuaAppbmRleCAyMmE2Y2NiNWY1NTc3NzkyZGMxODRm
YzQyNzUxMjVmMzRhOGIxYjhkLi40MjYzYmIzMjZmN2U5MmI3ZmQ1NDhhYzA1MWNjOTQxY2FiYmRi
NWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmgKQEAg
LTQwLDcgKzQwLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIE1hdGhNTFNlbGVjdEVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKLSAgICB2aXJ0dWFs
IFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRl
clN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJU
cmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENy
ZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5jcHAKaW5kZXggMjcxZDY5MmY3NTYxNjUwNDBk
NGFhNGEyOWIyNzcxNTRhMjdhMzg4ZC4uNGQ3YzFjYTg2YWVjZTFiZTE0MzM5ZGJiODhmZWNkYjI0
ZTM1NzBhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuY3Bw
CkBAIC03NSwxNCArNzUsMTQgQEAgdm9pZCBNYXRoTUxUZXh0RWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3QKICAgICBNYXRoTUxF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKLVJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBNYXRoTUxUZXh0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxS
ZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxUZXh0
RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwg
Y29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJiBpbnNlcnRpb25Qb3NpdGlvbikKIHsKICAgICBpZiAo
aGFzVGFnTmFtZShNYXRoTUxOYW1lczo6bW9UYWcpKQogICAgICAgICByZXR1cm4gY3JlYXRlUmVu
ZGVyZXI8UmVuZGVyTWF0aE1MT3BlcmF0b3I+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKICAg
ICBpZiAoaGFzVGFnTmFtZShNYXRoTUxOYW1lczo6bXNwYWNlVGFnKSkKICAgICAgICAgcmV0dXJu
IGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTFNwYWNlPigqdGhpcywgV1RGOjptb3ZlKHN0eWxl
KSk7CiAgICAgaWYgKGhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6OmFubm90YXRpb25UYWcpKQotICAg
ICAgICByZXR1cm4gTWF0aE1MRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFdURjo6bW92
ZShzdHlsZSkpOworICAgICAgICByZXR1cm4gTWF0aE1MRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKFdURjo6bW92ZShzdHlsZSksIGluc2VydGlvblBvc2l0aW9uKTsKIAogICAgIEFTU0VS
VChoYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptaVRhZykgfHwgaGFzVGFnTmFtZShNYXRoTUxOYW1l
czo6bW5UYWcpIHx8IGhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6Om1zVGFnKSB8fCBoYXNUYWdOYW1l
KE1hdGhNTE5hbWVzOjptdGV4dFRhZykpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9t
YXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxU
ZXh0RWxlbWVudC5oCmluZGV4IDY5YjA1NzRiOTFkZjUwYzUyZjdlZjg2NmYzOGJmYTg5NTk3Y2Q4
ZTIuLjFkNWY1Nzg1OGNkZTAzZGYyOTM5ZTNlOTdmZDYwOWYwOTI2MDZjMTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oCkBAIC00Miw3ICs0Miw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgTWF0aE1MVGV4dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUm
KSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29u
c3QgQ2hpbGRDaGFuZ2UmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwCmluZGV4IDVlYzMxNjk2OGZkYzQ2YzY1YzI1YjdmNDI5ODcwNjYzYjcxM2I0NzYu
LjAwYWU2NGQzNWQ1OWQ1M2U0MDFiMTQ0MTIxNWY1N2EwYjZjZjlkZjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtNjIsNiArNjIsNyBAQAogI2luY2x1ZGUg
IlJlbmRlclRhYmxlQ2VsbC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRGcmFnbWVudC5oIgogI2lu
Y2x1ZGUgIlJlbmRlclRoZW1lLmgiCisjaW5jbHVkZSAiUmVuZGVyVHJlZVBvc2l0aW9uLmgiCiAj
aW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNWR1RleHRSdW5SZW5kZXJpbmdDb250
ZXh0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTM4NSw3ICszODYsOCBAQCBSZW5kZXJQ
dHI8UmVuZGVyQmxvY2s+IFJlbmRlckJsb2NrOjpjbG9uZSgpIGNvbnN0CiAgICAgICAgIGNsb25l
QmxvY2sgPSBSZW5kZXJQdHI8UmVuZGVyQmxvY2s+KGNyZWF0ZUFub255bW91c0Jsb2NrKCkpOwog
ICAgICAgICBjbG9uZUJsb2NrLT5zZXRDaGlsZHJlbklubGluZShjaGlsZHJlbklubGluZSgpKTsK
ICAgICB9IGVsc2UgewotICAgICAgICBjbG9uZUJsb2NrID0gc3RhdGljX3BvaW50ZXJfY2FzdDxS
ZW5kZXJCbG9jaz4oZWxlbWVudCgpLT5jcmVhdGVFbGVtZW50UmVuZGVyZXIoc3R5bGUoKSkpOwor
ICAgICAgICBSZW5kZXJUcmVlUG9zaXRpb24gaW5zZXJ0aW9uUG9zaXRpb24oKnBhcmVudCgpKTsK
KyAgICAgICAgY2xvbmVCbG9jayA9IHN0YXRpY19wb2ludGVyX2Nhc3Q8UmVuZGVyQmxvY2s+KGVs
ZW1lbnQoKS0+Y3JlYXRlRWxlbWVudFJlbmRlcmVyKHN0eWxlKCksIGluc2VydGlvblBvc2l0aW9u
KSk7CiAgICAgICAgIGNsb25lQmxvY2stPmluaXRpYWxpemVTdHlsZSgpOwogCiAgICAgICAgIC8v
IFRoaXMgdGFrZXMgY2FyZSBvZiBzZXR0aW5nIHRoZSByaWdodCB2YWx1ZSBvZiBjaGlsZHJlbklu
bGluZSBpbiBjYXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAK
aW5kZXggN2FmOTZlMTY1YmVmMGU0OTYzODExZGVmNjI3MzFkNjY4ZTQwZjQ3ZS4uZDU4NGYyY2Mz
MzEzNjRlMzdhZDE1Y2E3YTIyNzE0ZjM5NWMxODAxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbGVtZW50LmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIlJlbmRl
ckZsZXhpYmxlQm94LmgiCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRlICJSZW5k
ZXJJbWFnZVJlc291cmNlU3R5bGVJbWFnZS5oIgorI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgog
I2luY2x1ZGUgIlJlbmRlckl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNp
bmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKQEAgLTUwLDggKzUxLDYgQEAKICNpbmNs
dWRlICJSZW5kZXJMaXN0SXRlbS5oIgogI2luY2x1ZGUgIlJlbmRlck5hbWVkRmxvd1RocmVhZC5o
IgogI2luY2x1ZGUgIlJlbmRlclJlZ2lvbi5oIgotI2luY2x1ZGUgIlJlbmRlclJ1YnkuaCIKLSNp
bmNsdWRlICJSZW5kZXJSdWJ5VGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclRhYmxlQ2FwdGlvbi5o
IgogI2luY2x1ZGUgIlJlbmRlclRhYmxlQ2VsbC5oIgogI2luY2x1ZGUgIlJlbmRlclRhYmxlQ29s
LmgiCkBAIC0xNTcsMTYgKzE1Niw2IEBAIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBSZW5kZXJF
bGVtZW50OjpjcmVhdGVGb3IoRWxlbWVudCYgZWxlbWVudCwgUmVmPFJlbmRlclN0CiAgICAgICAg
IGltYWdlLT5zZXRJc0dlbmVyYXRlZENvbnRlbnQoKTsKICAgICAgICAgcmV0dXJuIFdURjo6bW92
ZShpbWFnZSk7CiAgICAgfQotCi0gICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShIVE1MTmFtZXM6
OnJ1YnlUYWcpKSB7Ci0gICAgICAgIGlmIChzdHlsZS5nZXQoKS5kaXNwbGF5KCkgPT0gSU5MSU5F
KQotICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclJ1YnlBc0lubGluZT4o
ZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSk7Ci0gICAgICAgIGlmIChzdHlsZS5nZXQoKS5kaXNw
bGF5KCkgPT0gQkxPQ0sgfHwgc3R5bGUuZ2V0KCkuZGlzcGxheSgpID09IElOTElORV9CTE9DSykK
LSAgICAgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJSdWJ5QXNCbG9jaz4oZWxl
bWVudCwgV1RGOjptb3ZlKHN0eWxlKSk7Ci0gICAgfQotICAgIC8vIHRyZWF0IDxydD4gYXMgcnVi
eSB0ZXh0IE9OTFkgaWYgdGhlIHBhcmVudCBpcyBydWJ5LgotICAgIGlmIChlbGVtZW50Lmhhc1Rh
Z05hbWUoSFRNTE5hbWVzOjpydFRhZykgJiYgZWxlbWVudC5wYXJlbnRFbGVtZW50KCkgJiYgaXNS
dWJ5KGVsZW1lbnQucGFyZW50RWxlbWVudCgpLT5yZW5kZXJlcigpKSkKLSAgICAgICAgcmV0dXJu
IGNyZWF0ZVJlbmRlcmVyPFJlbmRlclJ1YnlUZXh0PihlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUp
KTsKICAgICBzd2l0Y2ggKHN0eWxlLmdldCgpLmRpc3BsYXkoKSkgewogICAgIGNhc2UgTk9ORToK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9SZW5kZXJUcmVlUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUmVuZGVyVHJl
ZVBvc2l0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNTE2MDE0ZGUyNTQ4ZjExMDUwOTc2ZGY5MjVjN2Vl
OWU0MzNjNmY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUmVuZGVy
VHJlZVBvc2l0aW9uLmNwcApAQCAtMCwwICsxLDExNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW5kZXJUcmVlUG9zaXRpb24uaCIKKworI2luY2x1ZGUg
Ik5vZGVSZW5kZXJpbmdUcmF2ZXJzYWwuaCIKKyNpbmNsdWRlICJQc2V1ZG9FbGVtZW50LmgiCisj
aW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1JlbmRlclRyZWVQb3NpdGlvbjo6UmVuZGVyVHJlZVBvc2l0aW9u
KFJlbmRlclZpZXcmIHJvb3QpCisgICAgOiBtX3BhcmVudChyb290KQorICAgICwgbV9oYXNWYWxp
ZE5leHRTaWJsaW5nKHRydWUpCit7Cit9CisKK1JlbmRlclRyZWVQb3NpdGlvbjo6UmVuZGVyVHJl
ZVBvc2l0aW9uKFJlbmRlckVsZW1lbnQmIHBhcmVudCkKKyAgICA6IG1fcGFyZW50KHBhcmVudCkK
K3sKK30KKworUmVuZGVyVHJlZVBvc2l0aW9uOjpSZW5kZXJUcmVlUG9zaXRpb24oUmVuZGVyRWxl
bWVudCYgcGFyZW50LCBSZW5kZXJPYmplY3QqIG5leHRTaWJsaW5nKQorICAgIDogbV9wYXJlbnQo
cGFyZW50KQorICAgICwgbV9uZXh0U2libGluZyhuZXh0U2libGluZykKKyAgICAsIG1faGFzVmFs
aWROZXh0U2libGluZyh0cnVlKQoreworfQorCit2b2lkIFJlbmRlclRyZWVQb3NpdGlvbjo6Y29t
cHV0ZU5leHRTaWJsaW5nKGNvbnN0IE5vZGUmIG5vZGUpCit7CisgICAgQVNTRVJUKCFub2RlLnJl
bmRlcmVyKCkpOworICAgIGlmIChtX2hhc1ZhbGlkTmV4dFNpYmxpbmcpIHsKKyAgICAgICAgLy8g
U3RvcCB2YWxpZGF0aW5nIGF0IHNvbWUgcG9pbnQgc28gdGhlIGFzc2VydCBkb2Vzbid0IG1ha2Ug
dXMgTyhOXjIpIG9uIGRlYnVnIGJ1aWxkcy4KKyAgICAgICAgQVNTRVJUKG1fcGFyZW50LmlzUmVu
ZGVyVmlldygpIHx8ICsrbV9hc3NlcnRpb25MaW1pdENvdW50ZXIgPiAyMCB8fCBuZXh0U2libGlu
Z1JlbmRlcmVyKG5vZGUsIG1fcGFyZW50KSA9PSBtX25leHRTaWJsaW5nKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBtX25leHRTaWJsaW5nID0gbmV4dFNpYmxpbmdSZW5kZXJlcihub2Rl
LCBtX3BhcmVudCk7CisgICAgbV9oYXNWYWxpZE5leHRTaWJsaW5nID0gdHJ1ZTsKKworfQorCit2
b2lkIFJlbmRlclRyZWVQb3NpdGlvbjo6aW52YWxpZGF0ZU5leHRTaWJsaW5nKGNvbnN0IFJlbmRl
ck9iamVjdCYgc2libGluZ1JlbmRlcmVyKQoreworICAgIGlmICghbV9oYXNWYWxpZE5leHRTaWJs
aW5nKQorICAgICAgICByZXR1cm47CisgICAgaWYgKG1fbmV4dFNpYmxpbmcgPT0gJnNpYmxpbmdS
ZW5kZXJlcikKKyAgICAgICAgbV9oYXNWYWxpZE5leHRTaWJsaW5nID0gZmFsc2U7Cit9CisKK1Jl
bmRlck9iamVjdCogUmVuZGVyVHJlZVBvc2l0aW9uOjpwcmV2aW91c1NpYmxpbmdSZW5kZXJlcihj
b25zdCBUZXh0JiB0ZXh0Tm9kZSkKK3sKKyAgICBpZiAodGV4dE5vZGUucmVuZGVyZXIoKSkKKyAg
ICAgICAgcmV0dXJuIHRleHROb2RlLnJlbmRlcmVyKCktPnByZXZpb3VzU2libGluZygpOworICAg
IGZvciAoTm9kZSogc2libGluZyA9IE5vZGVSZW5kZXJpbmdUcmF2ZXJzYWw6OnByZXZpb3VzU2li
bGluZygmdGV4dE5vZGUpOyBzaWJsaW5nOyBzaWJsaW5nID0gTm9kZVJlbmRlcmluZ1RyYXZlcnNh
bDo6cHJldmlvdXNTaWJsaW5nKHNpYmxpbmcpKSB7CisgICAgICAgIFJlbmRlck9iamVjdCogcmVu
ZGVyZXIgPSBzaWJsaW5nLT5yZW5kZXJlcigpOworICAgICAgICBpZiAocmVuZGVyZXIgJiYgIVJl
bmRlclRyZWVQb3NpdGlvbjo6aXNSZW5kZXJlclJlcGFyZW50ZWQoKnJlbmRlcmVyKSkKKyAgICAg
ICAgICAgIHJldHVybiByZW5kZXJlcjsKKyAgICB9CisgICAgaWYgKFBzZXVkb0VsZW1lbnQqIGJl
Zm9yZSA9IHRleHROb2RlLnBhcmVudEVsZW1lbnQoKS0+YmVmb3JlUHNldWRvRWxlbWVudCgpKQor
ICAgICAgICByZXR1cm4gYmVmb3JlLT5yZW5kZXJlcigpOworICAgIHJldHVybiBudWxscHRyOwor
fQorCitSZW5kZXJPYmplY3QqIFJlbmRlclRyZWVQb3NpdGlvbjo6bmV4dFNpYmxpbmdSZW5kZXJl
cihjb25zdCBOb2RlJiBub2RlLCBjb25zdCBSZW5kZXJFbGVtZW50JiBwYXJlbnRSZW5kZXJlcikK
K3sKKyAgICBpZiAoIXBhcmVudFJlbmRlcmVyLmVsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgaWYgKG5vZGUuaXNBZnRlclBzZXVkb0VsZW1lbnQoKSkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgTm9kZSogc2libGluZyA9IG5vZGUuaXNCZWZvcmVQc2V1ZG9FbGVt
ZW50KCkgPyBOb2RlUmVuZGVyaW5nVHJhdmVyc2FsOjpmaXJzdENoaWxkKHBhcmVudFJlbmRlcmVy
LmVsZW1lbnQoKSkgOiBOb2RlUmVuZGVyaW5nVHJhdmVyc2FsOjpuZXh0U2libGluZygmbm9kZSk7
CisgICAgZm9yICg7IHNpYmxpbmc7IHNpYmxpbmcgPSBOb2RlUmVuZGVyaW5nVHJhdmVyc2FsOjpu
ZXh0U2libGluZyhzaWJsaW5nKSkgeworICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0g
c2libGluZy0+cmVuZGVyZXIoKTsKKyAgICAgICAgaWYgKHJlbmRlcmVyICYmICFpc1JlbmRlcmVy
UmVwYXJlbnRlZCgqcmVuZGVyZXIpKQorICAgICAgICAgICAgcmV0dXJuIHJlbmRlcmVyOworICAg
IH0KKyAgICBpZiAoUHNldWRvRWxlbWVudCogYWZ0ZXIgPSBwYXJlbnRSZW5kZXJlci5lbGVtZW50
KCktPmFmdGVyUHNldWRvRWxlbWVudCgpKQorICAgICAgICByZXR1cm4gYWZ0ZXItPnJlbmRlcmVy
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgUmVuZGVyVHJlZVBvc2l0aW9uOjpp
c1JlbmRlcmVyUmVwYXJlbnRlZChjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQoreworICAg
IGlmICghcmVuZGVyZXIubm9kZSgpLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBpZiAocmVuZGVyZXIuc3R5bGUoKS5oYXNGbG93SW50bygpKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1JlbmRlclRyZWVQb3NpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvUmVuZGVyVHJlZVBvc2l0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWZiMTUxM2Y0ZGFlMGZlYzljYTc0
MTQ1ZGY2ZmMzYzY1YTJmZTk1MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1JlbmRlclRyZWVQb3NpdGlvbi5oCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFJlbmRlclRyZWVQb3NpdGlvbl9oCisjZGVmaW5lIFJlbmRlclRyZWVQb3NpdGlvbl9o
CisKKyNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlbmRlclRyZWVQb3NpdGlvbiB7CitwdWJs
aWM6CisgICAgZXhwbGljaXQgUmVuZGVyVHJlZVBvc2l0aW9uKFJlbmRlclZpZXcmKTsKKyAgICBl
eHBsaWNpdCBSZW5kZXJUcmVlUG9zaXRpb24oUmVuZGVyRWxlbWVudCYgcGFyZW50KTsKKyAgICBS
ZW5kZXJUcmVlUG9zaXRpb24oUmVuZGVyRWxlbWVudCYgcGFyZW50LCBSZW5kZXJPYmplY3QqIG5l
eHRTaWJsaW5nKTsKKworICAgIFJlbmRlckVsZW1lbnQmIHBhcmVudCgpIHsgcmV0dXJuIG1fcGFy
ZW50OyB9CisgICAgY29uc3QgUmVuZGVyRWxlbWVudCYgcGFyZW50KCkgY29uc3QgeyByZXR1cm4g
bV9wYXJlbnQ7IH0KKworICAgIHZvaWQgaW5zZXJ0KFJlbmRlck9iamVjdCYpOworICAgIGJvb2wg
Y2FuSW5zZXJ0KFJlbmRlckVsZW1lbnQmKSBjb25zdDsKKyAgICBib29sIGNhbkluc2VydChSZW5k
ZXJUZXh0JikgY29uc3Q7CisKKyAgICB2b2lkIGNvbXB1dGVOZXh0U2libGluZyhjb25zdCBOb2Rl
Jik7CisgICAgdm9pZCBpbnZhbGlkYXRlTmV4dFNpYmxpbmcoY29uc3QgUmVuZGVyT2JqZWN0Jik7
CisKKyAgICBzdGF0aWMgUmVuZGVyT2JqZWN0KiBwcmV2aW91c1NpYmxpbmdSZW5kZXJlcihjb25z
dCBUZXh0Jik7CisgICAgc3RhdGljIFJlbmRlck9iamVjdCogbmV4dFNpYmxpbmdSZW5kZXJlcihj
b25zdCBOb2RlJiwgY29uc3QgUmVuZGVyRWxlbWVudCYgcGFyZW50UmVuZGVyZXIpOworICAgIHN0
YXRpYyBib29sIGlzUmVuZGVyZXJSZXBhcmVudGVkKGNvbnN0IFJlbmRlck9iamVjdCYpOworCitw
cml2YXRlOgorICAgIFJlbmRlckVsZW1lbnQmIG1fcGFyZW50OworICAgIFJlbmRlck9iamVjdCog
bV9uZXh0U2libGluZyB7IG51bGxwdHIgfTsKKyAgICBib29sIG1faGFzVmFsaWROZXh0U2libGlu
ZyB7IGZhbHNlIH07CisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIHVuc2lnbmVkIG1fYXNzZXJ0
aW9uTGltaXRDb3VudGVyIHsgMCB9OworI2VuZGlmCit9OworCisKK2lubGluZSBib29sIFJlbmRl
clRyZWVQb3NpdGlvbjo6Y2FuSW5zZXJ0KFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKSBjb25zdAor
eworICAgIEFTU0VSVCghcmVuZGVyZXIucGFyZW50KCkpOworICAgIHJldHVybiBtX3BhcmVudC5p
c0NoaWxkQWxsb3dlZChyZW5kZXJlciwgcmVuZGVyZXIuc3R5bGUoKSk7Cit9CisKK2lubGluZSBi
b29sIFJlbmRlclRyZWVQb3NpdGlvbjo6Y2FuSW5zZXJ0KFJlbmRlclRleHQmIHJlbmRlcmVyKSBj
b25zdAoreworICAgIEFTU0VSVCghcmVuZGVyZXIucGFyZW50KCkpOworICAgIHJldHVybiBtX3Bh
cmVudC5pc0NoaWxkQWxsb3dlZChyZW5kZXJlciwgbV9wYXJlbnQuc3R5bGUoKSk7Cit9CisKK2lu
bGluZSB2b2lkIFJlbmRlclRyZWVQb3NpdGlvbjo6aW5zZXJ0KFJlbmRlck9iamVjdCYgcmVuZGVy
ZXIpCit7CisgICAgQVNTRVJUKG1faGFzVmFsaWROZXh0U2libGluZyk7CisgICAgbV9wYXJlbnQu
YWRkQ2hpbGQoJnJlbmRlcmVyLCBtX25leHRTaWJsaW5nKTsKK30KKworfQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlVHJlZS5jcHAKaW5kZXggMDdlZmE1Zjk3NWVl
ZTJkYzkyMjRjOTdlYjRjMTk4MzFkOTlmM2ZjZC4uMzI0Y2ZiYTgwY2ZkMmE2MWVjNjc3ZDk0MzIw
YzY1NTk5YTg3NWQ3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNv
bHZlVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlVHJlZS5j
cHAKQEAgLTQyLDcgKzQyLDcgQEAKICNpbmNsdWRlICJSZW5kZXJGdWxsU2NyZWVuLmgiCiAjaW5j
bHVkZSAiUmVuZGVyTmFtZWRGbG93VGhyZWFkLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgot
I2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKKyNpbmNsdWRlICJSZW5kZXJUcmVlUG9zaXRpb24uaCIK
ICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtNjIsMzEgKzYyLDYgQEAgbmFtZXNwYWNl
IFN0eWxlIHsKIAogZW51bSBEZXRhY2hUeXBlIHsgTm9ybWFsRGV0YWNoLCBSZWF0dGFjaERldGFj
aCB9OwogCi1jbGFzcyBSZW5kZXJUcmVlUG9zaXRpb24gewotcHVibGljOgotICAgIGV4cGxpY2l0
IFJlbmRlclRyZWVQb3NpdGlvbihSZW5kZXJWaWV3Jik7Ci0gICAgZXhwbGljaXQgUmVuZGVyVHJl
ZVBvc2l0aW9uKFJlbmRlckVsZW1lbnQmIHBhcmVudCk7Ci0gICAgUmVuZGVyVHJlZVBvc2l0aW9u
KFJlbmRlckVsZW1lbnQmIHBhcmVudCwgUmVuZGVyT2JqZWN0KiBuZXh0U2libGluZyk7Ci0KLSAg
ICBSZW5kZXJFbGVtZW50JiBwYXJlbnQoKSB7IHJldHVybiBtX3BhcmVudDsgfQotICAgIGNvbnN0
IFJlbmRlckVsZW1lbnQmIHBhcmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50OyB9Ci0KLSAg
ICB2b2lkIGluc2VydChSZW5kZXJPYmplY3QmKTsKLSAgICBib29sIGNhbkluc2VydChSZW5kZXJF
bGVtZW50JikgY29uc3Q7Ci0gICAgYm9vbCBjYW5JbnNlcnQoUmVuZGVyVGV4dCYpIGNvbnN0Owot
Ci0gICAgdm9pZCBjb21wdXRlTmV4dFNpYmxpbmcoY29uc3QgTm9kZSYpOwotICAgIHZvaWQgaW52
YWxpZGF0ZU5leHRTaWJsaW5nKGNvbnN0IFJlbmRlck9iamVjdCYpOwotCi1wcml2YXRlOgotICAg
IFJlbmRlckVsZW1lbnQmIG1fcGFyZW50OwotICAgIFJlbmRlck9iamVjdCogbV9uZXh0U2libGlu
ZzsKLSAgICBib29sIG1faGFzVmFsaWROZXh0U2libGluZzsKLSNpZiAhQVNTRVJUX0RJU0FCTEVE
Ci0gICAgdW5zaWduZWQgbV9hc3NlcnRpb25MaW1pdENvdW50ZXI7Ci0jZW5kaWYKLX07Ci0KIHN0
YXRpYyB2b2lkIGF0dGFjaFJlbmRlclRyZWUoRWxlbWVudCYsIFJlbmRlclN0eWxlJiBpbmhlcml0
ZWRTdHlsZSwgUmVuZGVyVHJlZVBvc2l0aW9uJiwgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4pOwog
c3RhdGljIHZvaWQgYXR0YWNoVGV4dFJlbmRlcmVyKFRleHQmLCBSZW5kZXJUcmVlUG9zaXRpb24m
KTsKIHN0YXRpYyB2b2lkIGRldGFjaFJlbmRlclRyZWUoRWxlbWVudCYsIERldGFjaFR5cGUpOwpA
QCAtMTUwLDEwMCArMTI1LDYgQEAgQ2hhbmdlIGRldGVybWluZUNoYW5nZShjb25zdCBSZW5kZXJT
dHlsZSYgczEsIGNvbnN0IFJlbmRlclN0eWxlJiBzMikKICAgICByZXR1cm4gTm9DaGFuZ2U7CiB9
CiAKLXN0YXRpYyBib29sIGlzUmVuZGVyZXJSZXBhcmVudGVkKGNvbnN0IFJlbmRlck9iamVjdCog
cmVuZGVyZXIpCi17Ci0gICAgaWYgKCFyZW5kZXJlci0+bm9kZSgpLT5pc0VsZW1lbnROb2RlKCkp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAocmVuZGVyZXItPnN0eWxlKCkuaGFzRmxv
d0ludG8oKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1z
dGF0aWMgUmVuZGVyT2JqZWN0KiBuZXh0U2libGluZ1JlbmRlcmVyKGNvbnN0IE5vZGUmIG5vZGUs
IGNvbnN0IFJlbmRlckVsZW1lbnQmIHBhcmVudFJlbmRlcmVyKQotewotICAgIGlmICghcGFyZW50
UmVuZGVyZXIuZWxlbWVudCgpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBpZiAobm9k
ZS5pc0FmdGVyUHNldWRvRWxlbWVudCgpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBO
b2RlKiBzaWJsaW5nID0gbm9kZS5pc0JlZm9yZVBzZXVkb0VsZW1lbnQoKSA/IE5vZGVSZW5kZXJp
bmdUcmF2ZXJzYWw6OmZpcnN0Q2hpbGQocGFyZW50UmVuZGVyZXIuZWxlbWVudCgpKSA6IE5vZGVS
ZW5kZXJpbmdUcmF2ZXJzYWw6Om5leHRTaWJsaW5nKCZub2RlKTsKLSAgICBmb3IgKDsgc2libGlu
Zzsgc2libGluZyA9IE5vZGVSZW5kZXJpbmdUcmF2ZXJzYWw6Om5leHRTaWJsaW5nKHNpYmxpbmcp
KSB7Ci0gICAgICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBzaWJsaW5nLT5yZW5kZXJlcigp
OwotICAgICAgICBpZiAocmVuZGVyZXIgJiYgIWlzUmVuZGVyZXJSZXBhcmVudGVkKHJlbmRlcmVy
KSkKLSAgICAgICAgICAgIHJldHVybiByZW5kZXJlcjsKLSAgICB9Ci0gICAgaWYgKFBzZXVkb0Vs
ZW1lbnQqIGFmdGVyID0gcGFyZW50UmVuZGVyZXIuZWxlbWVudCgpLT5hZnRlclBzZXVkb0VsZW1l
bnQoKSkKLSAgICAgICAgcmV0dXJuIGFmdGVyLT5yZW5kZXJlcigpOwotICAgIHJldHVybiBudWxs
cHRyOwotfQotCi1SZW5kZXJUcmVlUG9zaXRpb246OlJlbmRlclRyZWVQb3NpdGlvbihSZW5kZXJW
aWV3JiByb290KQotICAgIDogbV9wYXJlbnQocm9vdCkKLSAgICAsIG1fbmV4dFNpYmxpbmcobnVs
bHB0cikKLSAgICAsIG1faGFzVmFsaWROZXh0U2libGluZyh0cnVlKQotI2lmICFBU1NFUlRfRElT
QUJMRUQKLSAgICAsIG1fYXNzZXJ0aW9uTGltaXRDb3VudGVyKDApCi0jZW5kaWYKLXsKLX0KLQot
UmVuZGVyVHJlZVBvc2l0aW9uOjpSZW5kZXJUcmVlUG9zaXRpb24oUmVuZGVyRWxlbWVudCYgcGFy
ZW50KQotICAgIDogbV9wYXJlbnQocGFyZW50KQotICAgICwgbV9uZXh0U2libGluZyhudWxscHRy
KQotICAgICwgbV9oYXNWYWxpZE5leHRTaWJsaW5nKGZhbHNlKQotI2lmICFBU1NFUlRfRElTQUJM
RUQKLSAgICAsIG1fYXNzZXJ0aW9uTGltaXRDb3VudGVyKDApCi0jZW5kaWYKLXsKLX0KLQotUmVu
ZGVyVHJlZVBvc2l0aW9uOjpSZW5kZXJUcmVlUG9zaXRpb24oUmVuZGVyRWxlbWVudCYgcGFyZW50
LCBSZW5kZXJPYmplY3QqIG5leHRTaWJsaW5nKQotICAgIDogbV9wYXJlbnQocGFyZW50KQotICAg
ICwgbV9uZXh0U2libGluZyhuZXh0U2libGluZykKLSAgICAsIG1faGFzVmFsaWROZXh0U2libGlu
Zyh0cnVlKQotI2lmICFBU1NFUlRfRElTQUJMRUQKLSAgICAsIG1fYXNzZXJ0aW9uTGltaXRDb3Vu
dGVyKDApCi0jZW5kaWYKLXsKLX0KLQotYm9vbCBSZW5kZXJUcmVlUG9zaXRpb246OmNhbkluc2Vy
dChSZW5kZXJFbGVtZW50JiByZW5kZXJlcikgY29uc3QKLXsKLSAgICBBU1NFUlQoIXJlbmRlcmVy
LnBhcmVudCgpKTsKLSAgICByZXR1cm4gbV9wYXJlbnQuaXNDaGlsZEFsbG93ZWQocmVuZGVyZXIs
IHJlbmRlcmVyLnN0eWxlKCkpOwotfQotCi1ib29sIFJlbmRlclRyZWVQb3NpdGlvbjo6Y2FuSW5z
ZXJ0KFJlbmRlclRleHQmIHJlbmRlcmVyKSBjb25zdAotewotICAgIEFTU0VSVCghcmVuZGVyZXIu
cGFyZW50KCkpOwotICAgIHJldHVybiBtX3BhcmVudC5pc0NoaWxkQWxsb3dlZChyZW5kZXJlciwg
bV9wYXJlbnQuc3R5bGUoKSk7Ci19Ci0KLXZvaWQgUmVuZGVyVHJlZVBvc2l0aW9uOjppbnNlcnQo
UmVuZGVyT2JqZWN0JiByZW5kZXJlcikKLXsKLSAgICBBU1NFUlQobV9oYXNWYWxpZE5leHRTaWJs
aW5nKTsKLSAgICBtX3BhcmVudC5hZGRDaGlsZCgmcmVuZGVyZXIsIG1fbmV4dFNpYmxpbmcpOwot
fQotCi12b2lkIFJlbmRlclRyZWVQb3NpdGlvbjo6Y29tcHV0ZU5leHRTaWJsaW5nKGNvbnN0IE5v
ZGUmIG5vZGUpCi17Ci0gICAgQVNTRVJUKCFub2RlLnJlbmRlcmVyKCkpOwotICAgIGlmIChtX2hh
c1ZhbGlkTmV4dFNpYmxpbmcpIHsKLSAgICAgICAgLy8gU3RvcCB2YWxpZGF0aW5nIGF0IHNvbWUg
cG9pbnQgc28gdGhlIGFzc2VydCBkb2Vzbid0IG1ha2UgdXMgTyhOXjIpIG9uIGRlYnVnIGJ1aWxk
cy4KLSAgICAgICAgQVNTRVJUKG1fcGFyZW50LmlzUmVuZGVyVmlldygpIHx8ICsrbV9hc3NlcnRp
b25MaW1pdENvdW50ZXIgPiAyMCB8fCBuZXh0U2libGluZ1JlbmRlcmVyKG5vZGUsIG1fcGFyZW50
KSA9PSBtX25leHRTaWJsaW5nKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBtX25leHRT
aWJsaW5nID0gbmV4dFNpYmxpbmdSZW5kZXJlcihub2RlLCBtX3BhcmVudCk7Ci0gICAgbV9oYXNW
YWxpZE5leHRTaWJsaW5nID0gdHJ1ZTsKLX0KLQotdm9pZCBSZW5kZXJUcmVlUG9zaXRpb246Omlu
dmFsaWRhdGVOZXh0U2libGluZyhjb25zdCBSZW5kZXJPYmplY3QmIHNpYmxpbmdSZW5kZXJlcikK
LXsKLSAgICBpZiAoIW1faGFzVmFsaWROZXh0U2libGluZykKLSAgICAgICAgcmV0dXJuOwotICAg
IGlmIChtX25leHRTaWJsaW5nID09ICZzaWJsaW5nUmVuZGVyZXIpCi0gICAgICAgIG1faGFzVmFs
aWROZXh0U2libGluZyA9IGZhbHNlOwotfQotCiBzdGF0aWMgYm9vbCBzaG91bGRDcmVhdGVSZW5k
ZXJlcihjb25zdCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBSZW5kZXJFbGVtZW50JiBwYXJlbnRS
ZW5kZXJlcikKIHsKICAgICBpZiAoIWVsZW1lbnQuZG9jdW1lbnQoKS5zaG91bGRDcmVhdGVSZW5k
ZXJlcnMoKSkKQEAgLTMwMyw3ICsxODQsNyBAQCBzdGF0aWMgdm9pZCBjcmVhdGVSZW5kZXJlcklm
TmVlZGVkKEVsZW1lbnQmIGVsZW1lbnQsIFJlbmRlclN0eWxlJiBpbmhlcml0ZWRTdHlsZQogICAg
ICAgICA/IFJlbmRlclRyZWVQb3NpdGlvbigqcGFyZW50Rmxvd1JlbmRlcmVyLCBwYXJlbnRGbG93
UmVuZGVyZXItPm5leHRSZW5kZXJlckZvckVsZW1lbnQoZWxlbWVudCkpCiAgICAgICAgIDogcmVu
ZGVyVHJlZVBvc2l0aW9uOwogCi0gICAgUmVuZGVyRWxlbWVudCogbmV3UmVuZGVyZXIgPSBlbGVt
ZW50LmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihzdHlsZS5yZWxlYXNlTm9uTnVsbCgpKS5sZWFrUHRy
KCk7CisgICAgUmVuZGVyRWxlbWVudCogbmV3UmVuZGVyZXIgPSBlbGVtZW50LmNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihzdHlsZS5yZWxlYXNlTm9uTnVsbCgpLCBpbnNlcnRpb25Qb3NpdGlvbikubGVh
a1B0cigpOwogICAgIGlmICghbmV3UmVuZGVyZXIpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAo
IWluc2VydGlvblBvc2l0aW9uLmNhbkluc2VydCgqbmV3UmVuZGVyZXIpKSB7CkBAIC0zMzYsMjAg
KzIxNyw2IEBAIHN0YXRpYyB2b2lkIGNyZWF0ZVJlbmRlcmVySWZOZWVkZWQoRWxlbWVudCYgZWxl
bWVudCwgUmVuZGVyU3R5bGUmIGluaGVyaXRlZFN0eWxlCiAgICAgaW5zZXJ0aW9uUG9zaXRpb24u
aW5zZXJ0KCpuZXdSZW5kZXJlcik7CiB9CiAKLXN0YXRpYyBSZW5kZXJPYmplY3QqIHByZXZpb3Vz
U2libGluZ1JlbmRlcmVyKGNvbnN0IFRleHQmIHRleHROb2RlKQotewotICAgIGlmICh0ZXh0Tm9k
ZS5yZW5kZXJlcigpKQotICAgICAgICByZXR1cm4gdGV4dE5vZGUucmVuZGVyZXIoKS0+cHJldmlv
dXNTaWJsaW5nKCk7Ci0gICAgZm9yIChOb2RlKiBzaWJsaW5nID0gTm9kZVJlbmRlcmluZ1RyYXZl
cnNhbDo6cHJldmlvdXNTaWJsaW5nKCZ0ZXh0Tm9kZSk7IHNpYmxpbmc7IHNpYmxpbmcgPSBOb2Rl
UmVuZGVyaW5nVHJhdmVyc2FsOjpwcmV2aW91c1NpYmxpbmcoc2libGluZykpIHsKLSAgICAgICAg
UmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IHNpYmxpbmctPnJlbmRlcmVyKCk7Ci0gICAgICAgIGlm
IChyZW5kZXJlciAmJiAhaXNSZW5kZXJlclJlcGFyZW50ZWQocmVuZGVyZXIpKQotICAgICAgICAg
ICAgcmV0dXJuIHJlbmRlcmVyOwotICAgIH0KLSAgICBpZiAoUHNldWRvRWxlbWVudCogYmVmb3Jl
ID0gdGV4dE5vZGUucGFyZW50RWxlbWVudCgpLT5iZWZvcmVQc2V1ZG9FbGVtZW50KCkpCi0gICAg
ICAgIHJldHVybiBiZWZvcmUtPnJlbmRlcmVyKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0K
IHN0YXRpYyB2b2lkIGludmFsaWRhdGVXaGl0ZXNwYWNlT25seVRleHRTaWJsaW5nc0FmdGVyQXR0
YWNoSWZOZWVkZWQoTm9kZSYgY3VycmVudCkKIHsKICAgICBpZiAoaXM8SW5zZXJ0aW9uUG9pbnQ+
KGN1cnJlbnQpKQpAQCAtMzYxLDcgKzIyOCw3IEBAIHN0YXRpYyB2b2lkIGludmFsaWRhdGVXaGl0
ZXNwYWNlT25seVRleHRTaWJsaW5nc0FmdGVyQXR0YWNoSWZOZWVkZWQoTm9kZSYgY3VycmVuCiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmIChpczxFbGVtZW50Pigqc2libGluZykpIHsK
ICAgICAgICAgICAgIC8vIFRleHQgcmVuZGVyZXJzIGJleW9uZCByZW5kZXJlZCBlbGVtZW50cyBj
YW4ndCBiZSBhZmZlY3RlZC4KLSAgICAgICAgICAgIGlmICghc2libGluZy0+cmVuZGVyZXIoKSB8
fCBpc1JlbmRlcmVyUmVwYXJlbnRlZChzaWJsaW5nLT5yZW5kZXJlcigpKSkKKyAgICAgICAgICAg
IGlmICghc2libGluZy0+cmVuZGVyZXIoKSB8fCBSZW5kZXJUcmVlUG9zaXRpb246OmlzUmVuZGVy
ZXJSZXBhcmVudGVkKCpzaWJsaW5nLT5yZW5kZXJlcigpKSkKICAgICAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMzkzLDcgKzI2MCw3IEBA
IHN0YXRpYyBib29sIHRleHRSZW5kZXJlcklzTmVlZGVkKGNvbnN0IFRleHQmIHRleHROb2RlLCBj
b25zdCBSZW5kZXJUcmVlUG9zaXRpb24mCiAgICAgaWYgKHBhcmVudFJlbmRlcmVyLnN0eWxlKCku
cHJlc2VydmVOZXdsaW5lKCkpIC8vIHByZS9wcmUtd3JhcC9wcmUtbGluZSBhbHdheXMgbWFrZSBy
ZW5kZXJlcnMuCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgUmVuZGVyT2JqZWN0KiBwcmV2
aW91c1JlbmRlcmVyID0gcHJldmlvdXNTaWJsaW5nUmVuZGVyZXIodGV4dE5vZGUpOworICAgIFJl
bmRlck9iamVjdCogcHJldmlvdXNSZW5kZXJlciA9IFJlbmRlclRyZWVQb3NpdGlvbjo6cHJldmlv
dXNTaWJsaW5nUmVuZGVyZXIodGV4dE5vZGUpOwogICAgIGlmIChwcmV2aW91c1JlbmRlcmVyICYm
IHByZXZpb3VzUmVuZGVyZXItPmlzQlIoKSkgLy8gPHNwYW4+PGJyLz4gPGJyLz48L3NwYW4+CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgCkBAIC00MDgsNyArMjc1LDcgQEAgc3RhdGlj
IGJvb2wgdGV4dFJlbmRlcmVySXNOZWVkZWQoY29uc3QgVGV4dCYgdGV4dE5vZGUsIGNvbnN0IFJl
bmRlclRyZWVQb3NpdGlvbiYKICAgICAgICAgUmVuZGVyT2JqZWN0KiBmaXJzdCA9IHBhcmVudFJl
bmRlcmVyLmZpcnN0Q2hpbGQoKTsKICAgICAgICAgd2hpbGUgKGZpcnN0ICYmIGZpcnN0LT5pc0Zs
b2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCiAgICAgICAgICAgICBmaXJzdCA9IGZpcnN0
LT5uZXh0U2libGluZygpOwotICAgICAgICBSZW5kZXJPYmplY3QqIG5leHRSZW5kZXJlciA9IG5l
eHRTaWJsaW5nUmVuZGVyZXIodGV4dE5vZGUsIHBhcmVudFJlbmRlcmVyKTsKKyAgICAgICAgUmVu
ZGVyT2JqZWN0KiBuZXh0UmVuZGVyZXIgPSBSZW5kZXJUcmVlUG9zaXRpb246Om5leHRTaWJsaW5n
UmVuZGVyZXIodGV4dE5vZGUsIHBhcmVudFJlbmRlcmVyKTsKICAgICAgICAgaWYgKCFmaXJzdCB8
fCBuZXh0UmVuZGVyZXIgPT0gZmlyc3QpIHsKICAgICAgICAgICAgIC8vIFdoaXRlc3BhY2UgYXQg
dGhlIHN0YXJ0IG9mIGEgYmxvY2sganVzdCBnb2VzIGF3YXkuIERvbid0IGV2ZW4gbWFrZSBhIHJl
bmRlciBvYmplY3QgZm9yIHRoaXMgdGV4dC4KICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCmluZGV4IGZhMzE3MmYxYmQ2ZjgxNjM4OTgxN2UwNDdl
YWRlMjQ1OWZkNDZmYjcuLjFhMjg0NmIwZWNiZTQ0ZmMzNGUyMzYwYTZlMjEwMzI1MzkzYzljMzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcApAQCAtMTA1LDcgKzEwNSw3IEBAIHZvaWQg
U1ZHQUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
ck5hbWUpCiAgICAgU1ZHR3JhcGhpY3NFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJO
YW1lKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0FFbGVtZW50OjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IFNWR0FFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0
eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIGlmIChwYXJl
bnROb2RlKCkgJiYgcGFyZW50Tm9kZSgpLT5pc1NWR0VsZW1lbnQoKSAmJiBkb3duY2FzdDxTVkdF
bGVtZW50PigqcGFyZW50Tm9kZSgpKS5pc1RleHRDb250ZW50KCkpCiAgICAgICAgIHJldHVybiBj
cmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdJbmxpbmU+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FFbGVtZW50LmgKaW5kZXggMjk0NjVkZGNmMTEzMWM2NjAxZDg2ZWJkMDY0
ZjRiZTRhYWQwOGU2Yy4uNWJiMTIyYjcyMjc0ZTBlMzhiMjBlZmU3Y2I3NzhjODEyZTRlNGFhMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQ
b3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJl
bmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBk
ZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbHRHbHlwaEVsZW1lbnQuY3BwCmluZGV4IGU3NDQxNWQ5YmI5MWEyZTZlYjkyMWI1ZTExZDVi
MWY2MzExYWNjMWMuLjA3Y2UzMjkxN2E1YzY3YjYwNWI0NTI1OTg3YjA3ZDA3MjZkNWQ4ODcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuY3BwCkBAIC04Miw3ICs4Miw3
IEBAIGJvb2wgU1ZHQWx0R2x5cGhFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNv
bnN0IE5vZGUmIGNoaWxkKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IFNWR0FsdEdseXBoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdB
bHRHbHlwaEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYg
c3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJl
bmRlcmVyPFJlbmRlclNWR1RTcGFuPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmgKaW5kZXggZmNjYzQxNTMyNzI0ZWE3N2Vh
YWIyMTg3YmE1YjFhNGFkMDE2ZWE0MS4uMTZmNjA2ZDhiOTkyN2JiMjRkY2IyMWRhMmI5NTgxNmU0
N2U0NGEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaApAQCAtNDcs
NyArNDcsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNWR0FsdEdseXBoRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNv
bnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFURURf
UFJPUEVSVElFUyhTVkdBbHRHbHlwaEVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xl
RWxlbWVudC5jcHAKaW5kZXggMWI4OTlmOWM3MmZlYzA0YzgzMTViMzExZTM3N2E3MjA2NDcxNThj
NS4uNGZlMjc1YTVhNzNiN2IzNWVhN2I5OTBkZWYyY2QwZWY5NGJiOTEzMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcApAQCAtOTgsNyArOTgsNyBAQCB2b2lkIFNWR0Np
cmNsZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
ck5hbWUpCiAgICAgfQogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHQ2lyY2xlRWxl
bWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1Jl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdDaXJjbGVFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24m
KQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdFbGxpcHNlPigqdGhpcywg
V1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Q2lyY2xlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaApp
bmRleCA2ODZmYmNhMDNlMzI3OTA5MmM3YjhjMWNlMDFhMjZkYTZiNzVlMzNlLi5iYmRkZDJhOTIw
MjE0NzE5ODQwYmZhMjBiNDlmM2EwZWRlMDJjYzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJj
bGVFbGVtZW50LmgKQEAgLTQzLDcgKzQzLDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9v
bCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4m
JiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKICAgICBCRUdJTl9ERUNM
QVJFX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHQ2lyY2xlRWxlbWVudCkKICAgICAgICAgREVDTEFS
RV9BTklNQVRFRF9MRU5HVEgoQ3gsIGN4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0NsaXBQYXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhF
bGVtZW50LmNwcAppbmRleCA3ZjZiZWM5NWRiZjY4ZWRiNWRiZWUwZTQ2YzU3NDk4ZjI3ZGQ2ZDUw
Li42MzZmOTE0OWRmY2E2NTI5ODY3MTQxZjgzOTY1ZWI5MDY3ZTAzN2JiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcApAQCAtMTAyLDcgKzEwMiw3IEBAIHZvaWQg
U1ZHQ2xpcFBhdGhFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNo
YW5nZSkKICAgICAgICAgb2JqZWN0LT5zZXROZWVkc0xheW91dCgpOwogfQogCi1SZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gU1ZHQ2xpcFBhdGhFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0Ns
aXBQYXRoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBz
dHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVu
ZGVyZXI8UmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmgKaW5kZXggZDNiYTZmZDQ3
M2Q5NzA1ZjZmODE2MDgwNWY1YTY4NmVkNjQ3MjFkZC4uMzk2M2ZhMGM5YzdkY2E3MDFjZTcwZmU1
NDY1OTcwMjBiN2YyODgyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQ
YXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQu
aApAQCAtNDgsNyArNDgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgb3ZlcnJpZGU7CiAKLSAgICB2
aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVm
PFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBS
ZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFU
RURfUFJPUEVSVElFUyhTVkdDbGlwUGF0aEVsZW1lbnQpCiAgICAgICAgIERFQ0xBUkVfQU5JTUFU
RURfRU5VTUVSQVRJT04oQ2xpcFBhdGhVbml0cywgY2xpcFBhdGhVbml0cywgU1ZHVW5pdFR5cGVz
OjpTVkdVbml0VHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEZWZzRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuY3BwCmluZGV4IDgz
ZTBkNmY5MDIyYjQ3MGM3NDgwYTg3OWY1ZGMyNTk0M2Q4NWI1OWQuLjg3ZDg2OTYwN2UzNDQ4NTgw
ODkzOWY4MzdhNmUyYjIwOTVhM2NhOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdEZWZzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50
LmNwcApAQCAtNTEsNyArNTEsNyBAQCBib29sIFNWR0RlZnNFbGVtZW50Ojppc1ZhbGlkKCkgY29u
c3QKICAgICByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IFNWR0RlZnNFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRl
clN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0RlZnNFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBS
ZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJT
VkdIaWRkZW5Db250YWluZXI+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0RlZnNFbGVtZW50LmgKaW5kZXggNThjYzg4N2ZmN2RjYTU0ZWJkYmFmODVkMzZkYzE3
YjhiNjRkNDllZC4uOWZhNDQwMTQxMmEwZjIxMTBjYTg2MzgyMDczNTdlMmIyOGNlNzk0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmgKQEAgLTM4LDcgKzM4LDcgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
Ym9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAot
ICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNv
bnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAgQkVHSU5fREVDTEFSRV9B
TklNQVRFRF9QUk9QRVJUSUVTKFNWR0RlZnNFbGVtZW50KQogICAgICAgICBERUNMQVJFX0FOSU1B
VEVEX0JPT0xFQU4oRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwCmluZGV4IGQz
MzM4NDE4ZDgzOGJlYWQ4YTgzMGNiNzc1YmVhMmYyYWU3OGE3NTkuLmFlMzY5NjFmZDE5MmNmODdl
ZWUzM2NkNjAwOTMzNjE4YWYwNTFiOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdFbGxpcHNlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VF
bGVtZW50LmNwcApAQCAtMTAwLDcgKzEwMCw3IEBAIHZvaWQgU1ZHRWxsaXBzZUVsZW1lbnQ6OnN2
Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgU1ZH
R3JhcGhpY3NFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKIH0KIAotUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0VsbGlwc2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IFNWR0VsbGlwc2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVh
dGVSZW5kZXJlcjxSZW5kZXJTVkdFbGxpcHNlPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCmluZGV4IDJkZjQxZWQ2ZjAxMzgw
MmFhNzcyZWQ1OWJjMTlhYmNlNzM5MmI1MWEuLmY2MmQzMmRjZWE5ZGNjOWMyMDQyMTRhN2Q0OGFj
OTFlNjA0NzM3ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCkBAIC00
Myw3ICs0Myw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZl
TGVuZ3RocygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH07CiAKLSAgICB2aXJ0dWFs
IFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRl
clN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJU
cmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFURURfUFJP
UEVSVElFUyhTVkdFbGxpcHNlRWxlbWVudCkKICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9MRU5H
VEgoQ3gsIGN4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCmluZGV4IGZl
NjU3OThmMDYyMzY2NDYwZjViODU1NGVhMGRmMjhhZTkyZWEzNmMuLjJhN2ZiM2MxODVlOWQyMmU0
MmQ1OGI4ZmVhZGVlMTkwNjgyOWRmNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGaWx0ZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxl
bWVudC5jcHAKQEAgLTE4Myw3ICsxODMsNyBAQCB2b2lkIFNWR0ZpbHRlckVsZW1lbnQ6OmNoaWxk
cmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQogICAgICAgICBvYmplY3QtPnNl
dE5lZWRzTGF5b3V0KCk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdGaWx0ZXJF
bGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQor
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0ZpbHRlckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlv
biYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1Jlc291cmNlRmlsdGVy
PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVs
ZW1lbnQuaAppbmRleCA1NjU2ZTIzY2Y2OGNiNTU5ZmIwODQ2NzBjYThmNDNiOTU1OTNkMWQ0Li42
ZmQ2YzJlNzA0YjZlOThkMmViYzBjZDk2ZGE1ZGMzZDdmNTcxMDYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGaWx0ZXJFbGVtZW50LmgKQEAgLTUzLDcgKzUzLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYp
IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5k
ZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92
ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwCmluZGV4IDA3
MGY3ZDAxYWI5NmI5YjE3YmNjOGFlY2E4YzAxM2IwY2UxYjU5NzMuLmQ4M2UwMWZlMzg2NzBlYmIz
MTdiZGI2ZjBmZDMwNDkwN2Q3MDFmYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwCkBAIC0xMzcs
NyArMTM3LDcgQEAgdm9pZCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnNl
dFN0YW5kYXJkQXR0cmlidXRlcyhGaWx0ZXJFZmZlY3QqIGYKICAgICAgICAgZmlsdGVyRWZmZWN0
LT5zZXRIYXNIZWlnaHQodHJ1ZSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHRmls
dGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVm
PFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAg
IHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdSZXNvdXJjZUZpbHRlclByaW1pdGl2ZT4o
KnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oCmluZGV4IDMxYmU1
MTRiNDBkZTU5ZTgwMTBjYTk2MWYzY2NhYzgxYTQ2MzZiODAuLjNjODZhNGQ0YzQ2OGEyNWViNTk3
MjA4YWFiNzczMWM4YWRkNWVkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgKQEAgLTU3LDcgKzU3LDcg
QEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNGaWx0ZXJFZmZlY3Qo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYm
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRp
b24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBS
ZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0
ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAppbmRl
eCA2MjQ2YjI4MTdhY2Y2MjA0NTJiMDllNjdhMDg3ZGI0NzA4NjAxYzFmLi5lYTM1NzkzYzc0ODQy
OTlmY2VhNWEwZjc3OWJmOWYyODliZDAzZjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIFNWR0Zv
cmVpZ25PYmplY3RFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lKQogICAgICAgICBSZW5kZXJTVkdSZXNvdXJjZTo6bWFya0ZvckxheW91dEFu
ZFBhcmVudFJlc291cmNlSW52YWxpZGF0aW9uKCpyZW5kZXJlcik7CiB9CiAKLVJlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBT
VkdGb3JlaWduT2JqZWN0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJT
dHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4g
Y3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHRm9yZWlnbk9iamVjdD4oKnRoaXMsIFdURjo6bW92ZShz
dHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmpl
Y3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQu
aAppbmRleCA1YjBmMmVlNmIzMzU2ZTg5MjUyYmIxNjc0NTA3NjgxYmE2MTNjMTlkLi42Yzc5NGJm
MmU1NWQwOTRlN2M0MGFmYzEzMjFjZTAxYzYxYjEzZTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaApAQCAtNDQsNyArNDQsNyBAQCBwcml2YXRlOgog
CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25z
dCBOb2RlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJp
ZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAKaW5k
ZXggMDNhZThmMzQwZTQ1YjA3MzBkNzU1NzY5NWJlYzBlYWU0OWNhY2JmMy4uNGUzZTc5MmQxZTJi
OGRmZmM3OTMxMTM0YjllMjA5ZmU3NTE4YzhiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQu
Y3BwCkBAIC04Myw3ICs4Myw3IEBAIHZvaWQgU1ZHR0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIFJlbmRlclNWR1Jlc291
cmNlOjptYXJrRm9yTGF5b3V0QW5kUGFyZW50UmVzb3VyY2VJbnZhbGlkYXRpb24oKnJlbmRlcmVy
KTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0dFbGVtZW50OjpjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IFNWR0dFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIC8vIFNWRyAxLjEg
dGVzdHN1aXRlIGV4cGxpY2l0ZWx5IHVzZXMgY29uc3RydWN0cyBsaWtlIDxnIGRpc3BsYXk9Im5v
bmUiPjxsaW5lYXJHcmFkaWVudD4KICAgICAvLyBXZSBzdGlsbCBoYXZlIHRvIGNyZWF0ZSByZW5k
ZXJlcnMgZm9yIHRoZSA8Zz4gJiA8bGluZWFyR3JhZGllbnQ+IGVsZW1lbnQsIHRob3VnaCB0aGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0dFbGVtZW50LmgKaW5kZXggODFjODgzODcxNGM2MmIwYjg2NGJhNzA3MzYz
MTM1NjdmNGRlNzUyOS4uZGU0MWJhMDIyZDk3ZGJhMGZlZTZlZTA5YWRmZjMxOTNkOWI1ZjQxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmgKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBTVkdHRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsK
IAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYs
IGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29s
IGlzVmFsaWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5jcHAKaW5kZXggNzk0N2Ex
Y2Q1ZDI4ZTAwMGRiMThiZmNhMjRkOTY5YmJkMWMwMzU2OS4uODI5MDVhZDRlYWIwMWVhYTllMTQy
YzIzZmU1MWVkMjNhNjVhYTM5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dy
YXBoaWNzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxl
bWVudC5jcHAKQEAgLTE2MSw3ICsxNjEsNyBAQCBGbG9hdFJlY3QgU1ZHR3JhcGhpY3NFbGVtZW50
OjpnZXRCQm94KFN0eWxlVXBkYXRlU3RyYXRlZ3kgc3R5bGVVcGRhdGVTdHJhdGVneSkKICAgICBy
ZXR1cm4gU1ZHVHJhbnNmb3JtYWJsZTo6Z2V0QkJveCh0aGlzLCBzdHlsZVVwZGF0ZVN0cmF0ZWd5
KTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0dyYXBoaWNzRWxlbWVudDo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBTVkdHcmFwaGljc0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAg
ICAgLy8gQnkgZGVmYXVsdCwgYW55IHN1YmNsYXNzIGlzIGV4cGVjdGVkIHRvIGRvIHBhdGgtYmFz
ZWQgZHJhd2luZwogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdQYXRoPigqdGhp
cywgV1RGOjptb3ZlKHN0eWxlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
R3JhcGhpY3NFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50
LmgKaW5kZXggZjJkM2QyZjYzNDBhMGQ2ODA5YTJlN2VkYzFkZWQwM2VmOGE0ZDQ0ZC4uNzRkNGI0
MmE3MTA1OGZlYmEyNzc2MTg4MmU4NTc0ODRiNzRmYWU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdHcmFwaGljc0VsZW1lbnQuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAKICAgICAvLyAi
YmFzZSBjbGFzcyIgbWV0aG9kcyBmb3IgYWxsIHRoZSBlbGVtZW50cyB3aGljaCByZW5kZXIgYXMg
cGF0aHMKICAgICB2aXJ0dWFsIHZvaWQgdG9DbGlwUGF0aChQYXRoJik7Ci0gICAgdmlydHVhbCBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJT
dHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJl
ZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKICAgICBTVkdHcmFwaGljc0VsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJ
bWFnZUVsZW1lbnQuY3BwCmluZGV4IGIzNjY4MTIwZGM5NGM0YTAyOTA2MGYwMmRlYTExNDkzYTgx
OTNhNTQuLmIyZTk3ZGQ3Yjk0MzIwZjE5N2U2OTEzNWQxMzcyY2UwOWM1NjA5ZDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCkBAIC0xNjAsNyArMTYwLDcgQEAgdm9pZCBT
VkdJbWFnZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUpCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLVJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBTVkdJbWFnZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHSW1hZ2VFbGVt
ZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25z
dCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5k
ZXJTVkdJbWFnZT4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ltYWdlRWxlbWVudC5oCmluZGV4IDllYTE1YTZmMGE5Mjg5NjJlZmIzMjQ4MDk4NzhlYTUwNzA0
ODA5MjkuLjNkZjU2ZWQwYzhjMjFmYmJhNDlmMDVkOWNlZmUxMDA4Zjc3Y2JkYmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2Rl
Jikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJl
bmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIAogICAg
IHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbWFnZVNvdXJjZVVSTCgpIGNvbnN0IG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhh
c2hTZXQ8VVJMPiYpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TGluZWFyR3JhZGllbnRFbGVtZW50LmNwcAppbmRleCAyNjNjMWNjZjkyMWMzNGRmY2VkNWEwY2M5
M2EyNTljMGFhNjEyNWRmLi43NTg0N2FhNTRkOGU1MTA4NDNjZjAzOGEzZjk4ZjRjNThhNzk2YjQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNw
cApAQCAtMTEzLDcgKzExMyw3IEBAIHZvaWQgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OjpzdmdB
dHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lCiAgICAgICAgIG9i
amVjdC0+c2V0TmVlZHNMYXlvdXQoKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNW
R0xpbmVhckdyYWRpZW50RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJT
dHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdMaW5lYXJHcmFkaWVu
dEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUs
IGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVy
PFJlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnQ+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUp
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaApp
bmRleCBhN2E0Njk3NjcwNWE1NTk5NDQ2ZjM5ZjkxZjU3YWFiMWFiZDMzMTVmLi5kY2ZhYmEzMWZm
NGNmYzcyMjUxMjViMjZjODcxNGUzNjRiNDkwNjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oCkBAIC00Miw3ICs0Miw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0
eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVl
UG9zaXRpb24mKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVsYXRpdmVM
ZW5ndGhzKCkgY29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNYXJrZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVt
ZW50LmNwcAppbmRleCBhZmQ0MDQ4OWJkMTRlM2E2YzM0NDdmYmI0NjBmMDY3OWIwMmIzYTdiLi40
YzJmMmNmYjhjMzE2MGNmNmQwNWU5NTYxMTU5OTAxYzYyNmQ4MzlkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwCkBAIC0yMTMsNyArMjEzLDcgQEAgdm9pZCBTVkdNYXJr
ZXJFbGVtZW50OjpzZXRPcmllbnRUb0FuZ2xlKGNvbnN0IFNWR0FuZ2xlJiBhbmdsZSkKICAgICBz
dmdBdHRyaWJ1dGVDaGFuZ2VkKG9yaWVudEFuZ2xlUHJvcGVydHlJbmZvKCktPmF0dHJpYnV0ZU5h
bWUpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHTWFya2VyRWxlbWVudDo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBTVkdNYXJrZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVm
PFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAg
IHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdSZXNvdXJjZU1hcmtlcj4oKnRoaXMsIFdU
Rjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01h
cmtlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKaW5k
ZXggYjRkMzA2MTU1ODhhMzQ1OTdjZmNiOGVkZjFiZTMyNjM3YTEzNzA3NS4uYTg4NWE0ZWRjYjBj
NDI0NzNkZDUyMjNiZjYyN2MzZGE2ZWJhZGUxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR01hcmtlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2Vy
RWxlbWVudC5oCkBAIC0xMzIsNyArMTMyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIG92ZXJyaWRl
OwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4m
JiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29s
IHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiB0
cnVlOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKaW5kZXggNmM1MDg1
MWMzNmY0ODFlNDBlZjZiZWM4YWE0ZDY5MmI5NzUwNzY5Yy4uMDQ5ZDA3MmY2NmNkODBjMTU2NTgx
YjY0MmMyNDQxYjM2YzMwMTAxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01h
c2tFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3Bw
CkBAIC0xNTcsNyArMTU3LDcgQEAgdm9pZCBTVkdNYXNrRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2Vk
KGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiAgICAgICAgIG9iamVjdC0+c2V0TmVlZHNMYXlv
dXQoKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR01hc2tFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IFNWR01hc2tFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJl
bmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBtYXNrUmVuZGVyZXIgPSBjcmVhdGVSZW5kZXJlcjxSZW5k
ZXJTVkdSZXNvdXJjZU1hc2tlcj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaAppbmRleCA0ZTU2OGUwMWE0ZmI0ZjRhNDY1NTg0OTU3
NTZiM2E5ZGVhZDUxNDU1Li44NzQ3NjgyZTcyNTM2NjAzZWU5MjQzYTMzYmZlZmRmYzEzMWJjMzQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaApAQCAtNTUsNyArNTUsNyBAQCBwcml2
YXRlOgogCiAgICAgSGFzaFNldDxSZW5kZXJMYXllcio+IG1fY2xpZW50TGF5ZXJzOwogCi0gICAg
dmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3Qg
UmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhh
c1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKaW5kZXggMWQ1YzgzMTJmNDhmMjY3MDkwMzA5
OGEwZjFjNzA4YTY4MzIwNTkwNS4uNjFkNjU2NGYwNTFmYmFjOWM0MzM4OTc4M2JjYzdlYzVhYTUy
YmQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCkBAIC0zOTEsNyArMzkx
LDcgQEAgRmxvYXRSZWN0IFNWR1BhdGhFbGVtZW50OjpnZXRCQm94KFN0eWxlVXBkYXRlU3RyYXRl
Z3kgc3R5bGVVcGRhdGVTdHJhdGVneSkKICAgICByZXR1cm4gcmVuZGVyZXItPnBhdGgoKS5ib3Vu
ZGluZ1JlY3QoKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1BhdGhFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IFNWR1BhdGhFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewog
ICAgIC8vIEJ5IGRlZmF1bHQsIGFueSBzdWJjbGFzcyBpcyBleHBlY3RlZCB0byBkbyBwYXRoLWJh
c2VkIGRyYXdpbmcKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHUGF0aD4oKnRo
aXMsIFdURjo6bW92ZShzdHlsZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BhdGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAppbmRl
eCBjMzcxZTU1OTZiYzUxODEyY2E0ZjdhZTkxYTRiOTkyZGNhYmQ1MmIzLi42MTIzY2EwNmY0OTY3
YWM4ZTViMmY3YTgwODZmODAxNWI5ZTFiOTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1l
bnQuaApAQCAtMTE2LDcgKzExNiw3IEBAIHByaXZhdGU6CiAgICAgICAgIERFQ0xBUkVfQU5JTUFU
RURfQk9PTEVBTihFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkKQogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIAotICAgIHZpcnR1
YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBOb2RlOjpJbnNlcnRpb25O
b3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwCmluZGV4IGZiMThmOGFiMjkw
NjdhMzdkNmYwZTRlNWQwOWFjNzUxNmZkNjdkMmIuLmEwN2M4NzUwYTdhYjg2NDg3ODU0ZDRjODA2
YmY4MTRlMThhZjg5ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJu
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNw
cApAQCAtMTgyLDcgKzE4Miw3IEBAIHZvaWQgU1ZHUGF0dGVybkVsZW1lbnQ6OmNoaWxkcmVuQ2hh
bmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQogICAgICAgICBvYmplY3QtPnNldE5lZWRz
TGF5b3V0KCk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdQYXR0ZXJuRWxlbWVu
dDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBTVkdQYXR0ZXJuRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikK
IHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuPigq
dGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0dGVybkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxl
bWVudC5oCmluZGV4IGM2ZTY4NGQzZjhiMDJmNjhkYTRhNzU5OTNhMzZmNjQ4YWQzN2I0ZWUuLmFm
MjkyYjVmMGJhNGUzZWNkMDllOGE2ZjI1NzU2YjhhNjczZmE0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCkBAIC02Miw3ICs2Miw3IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2Um
KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAg
dmlydHVhbCBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiB0cnVlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxH
cmFkaWVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50
RWxlbWVudC5jcHAKaW5kZXggMDk5YTBjOWM5MTIxOGM3NDNkOTQyZGQxZWVlYjdiYzI2NTU1MDA5
MS4uYzYyNTJhODYwNDMxMWZlOTZhZDgzMTAxZjA0YzY5YmU2ZWFkMjQ1YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAKQEAgLTEyNSw3ICsx
MjUsNyBAQCB2b2lkIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZQogICAgICAgICBvYmplY3QtPnNldE5lZWRz
TGF5b3V0KCk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdSYWRpYWxHcmFkaWVu
dEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUp
CitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJU
cmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdSZXNv
dXJjZVJhZGlhbEdyYWRpZW50PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgKaW5kZXggZDY0ODg5OTJm
OGY3ZjQ5NTEwYTRkZGQ2Yjk3Yjk1ZDliMzRlMDI2NC4uYzBjMzllYjQ0Y2E4N2FiNWJjMGU1NzQw
NTE2ZDE3NDkwOTE1NTJiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlh
bEdyYWRpZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFk
aWVudEVsZW1lbnQuaApAQCAtNDIsNyArNDIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5n
Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3Zl
cnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0
IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNwcAppbmRleCBlMjNh
MWU1ZDI4MzViZTY4NDg4NzVhNTc0NGViMWNiYzU1NDhkN2ExLi5iNzNiMGQ4Y2Y3MTZlOTk5Mjk2
YTFmZGQ3ODBkYjc4NDAxZmZhY2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UmVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5j
cHAKQEAgLTExMCw3ICsxMTAsNyBAQCB2b2lkIFNWR1JlY3RFbGVtZW50OjpzdmdBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIFNWR0dyYXBoaWNzRWxl
bWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CiB9CiAKLVJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBTVkdSZWN0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5k
ZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdSZWN0RWxlbWVu
dDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3Qg
UmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVy
U1ZHUmVjdD4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVj
dEVsZW1lbnQuaAppbmRleCBlZGE1MjZiZjA1ODQ0ZGM3NDEwODE4ZDY4OWQ2NTVlNzk3MTFjYjFi
Li45YTJkZDc5MDE2ODJjZWFlMDYyYmZiMmU3NGZmMTg0ZGM4MmUxMThiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUmVjdEVsZW1lbnQuaApAQCAtNDQsNyArNDQsNyBAQCBwcml2YXRlOgogCiAgICAgdmly
dHVhbCBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRl
clN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIAogICAgIEJF
R0lOX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUyhTVkdSZWN0RWxlbWVudCkKICAgICAgICAg
REVDTEFSRV9BTklNQVRFRF9MRU5HVEgoWCwgeCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTVkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50
LmNwcAppbmRleCAwZDRkODVhZjhiZGMxYzZkMTIyNDg2OTZjZTYxZTY4NTAzZjMxZjIzLi5jNjUx
NmM0MzU2OTQxMmY1ODk5MTMzOGY1MmY5MTRlODVlNmQ1NTI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1NWR0VsZW1lbnQuY3BwCkBAIC00MzksNyArNDM5LDcgQEAgYm9vbCBTVkdTVkdFbGVtZW50Ojpy
ZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKICAgICByZXR1cm4gU3R5
bGVkRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChzdHlsZSk7CiB9CiAKLVJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBTVkdTVkdFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRl
clN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1NWR0VsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJl
bmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgaWYgKGlzT3V0ZXJtb3N0U1ZHU1ZHRWxlbWVudCgp
KQogICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHUm9vdD4oKnRoaXMsIFdU
Rjo6bW92ZShzdHlsZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0Vs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgKaW5kZXggODFkOTYy
NWU4NTAwYzQ2ZDNkODU3ZmVkNmY2YjNhYTgzMGRkZmZhNy4uZDcyYjUzNGMyMmYwMGY0OTNhZGVk
ZDc2ZjZjZjY5YmZjNGYzYzAyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NW
R0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCkBAIC0x
MzQsNyArMTM0LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkTW92ZVRvTmV3RG9j
dW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRl
clN0eWxlJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhDb250
YWluZXJOb2RlJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tKENvbnRh
aW5lck5vZGUmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BF
bGVtZW50LmNwcAppbmRleCAwNTljZDRkNmFhYjY2ZjE1ZTJhZjU2NjA5YjJkMmE2Yzk4MTJjYmQ2
Li5iYmU0ZjY2MGFkMmZkMmNlMTM1MGEzZTE5MGRhYjhkMjZjZTc1ZGM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTdG9wRWxlbWVudC5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgdm9pZCBTVkdTdG9wRWxl
bWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkK
ICAgICBTVkdFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKIH0KIAotUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1N0b3BFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNW
R1N0b3BFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0
eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5k
ZXJlcjxSZW5kZXJTVkdHcmFkaWVudFN0b3A+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgKaW5kZXggN2VjZWJmZTU3ODYwOGI0YWRlYmZk
MmRjZWIxMDc2M2EyMzVjMzA0Ni4uYTgzNzQ5OGEyM2YwZmM1MTJiZWE5NzQyYWUzYThjNDQ1ZWMw
NzA5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgKQEAgLTQwLDcgKzQwLDcgQEAg
cHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCBpc0dyYWRpZW50U3RvcCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikg
b3ZlcnJpZGU7CiAKICAgICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHU3Rv
cEVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5jcHAKaW5kZXggMmVh
ZmIzY2RiYzU1MTViZGM2MTc5NzA5ZDAyMDI4OGVkODM1MjNjMC4uNDQ3NjJjYmU1Y2JiZmNkNDZm
ODRmOWJhYWEzYzNlZjI5MzRiMjRkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1N3aXRjaEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVt
ZW50LmNwcApAQCAtNjAsNyArNjAsNyBAQCBib29sIFNWR1N3aXRjaEVsZW1lbnQ6OmNoaWxkU2hv
dWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYgY2hpbGQpIGNvbnN0CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHU3dpdGNoRWxlbWVudDo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBTVkdTd2l0Y2hFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVm
PFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAg
IHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyPigq
dGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU3dpdGNoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1l
bnQuaAppbmRleCA0ZTJlNDkzZTNkOTBlNjk4MmYyNWYxZTM1YjVhOTU0ZGE1NzE3NTQ0Li5mMDhk
YTFjNTk3MDYxNWQyZTFmMTgyZTM1NDUxMmY5NWFiZjJhM2JkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTd2l0Y2hFbGVtZW50LmgKQEAgLTM4LDcgKzM4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IGJvb2wgaXNWYWxpZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlk
KCk7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0
IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlk
ZTsKIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUyhTVkdTd2l0Y2hFbGVt
ZW50KQogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX0JPT0xFQU4oRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
eW1ib2xFbGVtZW50LmNwcAppbmRleCBiYjgwOGY4YTUyYzk0MTQ2M2I1ZGVkYmIzNjZhZTE5YmMz
N2JmYTNkLi5jOGUxZGVjOGM5MzdiMGYwY2FmNzAwYTZlY2MyNzAxZWNhNzQzZTBlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuY3BwCkBAIC03NCw3ICs3NCw3IEBAIGJvb2wg
U1ZHU3ltYm9sRWxlbWVudDo6c2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0CiAgICAgcmV0
dXJuIGhhc0F0dHJpYnV0ZShTVkdOYW1lczo6dmlld0JveEF0dHIpOwogfQogCi1SZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gU1ZHU3ltYm9sRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdTeW1i
b2xFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxl
LCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJl
cjxSZW5kZXJTVkdIaWRkZW5Db250YWluZXI+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oCmluZGV4IDg4MzY1YTdhY2Y0YzY4MGYy
ZjZiMDNlYTdjYzZiOTVmNWNlOGI3OWMuLmVhMzk0YjA0OTg0Y2VlMGVlZWM2YTYxZTllNDM0YzNh
ODkwZTZlYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaApAQCAtNDEsNyAr
NDEsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJp
ZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4m
JiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJv
b2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RSZWZFbGVtZW50LmNwcAppbmRleCBjZjZiOGYyNTdiMDM5YWEzNzBiYzMyMjg1NmRh
ZmVmMjM4YWQwNDNmLi40ZWRiOTgzZGU0ODU0MTEwOTZhYjRkYWNiOTI3YWI0YTU4MmNkZDczIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKQEAgLTE5NSw3ICsxOTUsNyBAQCB2
b2lkIFNWR1RSZWZFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lKQogICAgIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQ6OnN2Z0F0dHJpYnV0
ZUNoYW5nZWQoYXR0ck5hbWUpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHVFJl
ZkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUp
CitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHVFJlZkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlv
biYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR0lubGluZT4oKnRoaXMs
IFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RSZWZFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuaAppbmRl
eCAzMDZlMmIzOTA2ZmNhM2U1YTY1ZDhjMjcxOWY1YmNkOTYwMjIxNjhjLi5iNjQ1YTQ1MDJiMmIx
NDhjYTU2YjI3Yjg2NTdmODU1YTU4ZjNiNjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVFJlZkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1l
bnQuaApAQCAtNDEsNyArNDEsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJl
bmRlclN0eWxlJikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdUU3BhbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RTcGFuRWxlbWVudC5j
cHAKaW5kZXggNjI0MzQ0Mjg4YmY4MzUyNjg1MDk0YWFkYzU1OTMxNmFmNzgyZmE5ZS4uY2E5Zjc3
ZWJhZjVlYjM4YjZjMjM3NjVhYTljZWZmMTMzODc0OTFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RTcGFuRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RTcGFuRWxlbWVudC5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgUmVmPFNWR1RTcGFuRWxlbWVudD4g
U1ZHVFNwYW5FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW0KICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdUU3BhbkVsZW1lbnQodGFnTmFtZSwgZG9j
dW1lbnQpKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1RTcGFuRWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBTVkdUU3BhbkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAg
ICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1RTcGFuPigqdGhpcywgV1RGOjptb3Zl
KHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFNwYW5FbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFNwYW5FbGVtZW50LmgKaW5kZXggMjY1M2U5
NWViMGJiMmRiMjNkZjhlNGI0YmNlZDdmODI0YWVmZjFmNy4uOWI0YWU4YWZlMzhmZjU4NDYxNmQ2
OGQxYTllMzNiNjI1M2Q2ZDU1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RT
cGFuRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUU3BhbkVsZW1lbnQuaApA
QCAtMzIsNyArMzIsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNWR1RTcGFuRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKICAgICAgICAgICAgIAotICAgIHZpcnR1
YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENy
ZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJv
b2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuY3BwCmluZGV4IDg5NTRkNjIzN2NhMzdjMWYxNjM2
MjNlZGQ0ZWM3ODY1ZGM3Y2U1MDkuLjRlNGQ5Zjg0OWM5YjI5NDdlMzljNTAyZWIyNjA5YmJhNmM5
MTQzMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmNwcApAQCAtNjQsNyArNjQs
NyBAQCBBZmZpbmVUcmFuc2Zvcm0gU1ZHVGV4dEVsZW1lbnQ6OmFuaW1hdGVkTG9jYWxUcmFuc2Zv
cm0oKSBjb25zdAogICAgIHJldHVybiBtYXRyaXg7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBTVkdUZXh0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHls
ZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdUZXh0RWxlbWVudDo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVy
VHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHVGV4
dD4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RleHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1l
bnQuaAppbmRleCBhZjE1MGE3OTA0YzU3NmNjMWI5Y2U1MmViOWM0ODU3NmI0YWNkOTFjLi4wMDc2
NjU3MzYwMzE0NjQwNTg1MzkxODNlMmVhZjAxM2EwMjAxMDA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VGV4dEVsZW1lbnQuaApAQCAtMzQsNyArMzQsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNW
R1RleHRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgdmly
dHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxS
ZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVu
ZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxk
Q3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJyaWRlOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcAppbmRleCBmNTMzYmQ5NTIzZmYxMTA3
MTA5YjA5ZDU0ZGU4MDVmZjFiZWUyMTZhLi5hMmFkMTkxZTFmYTc3NDA2ZDE1ZWM2ZDY5OTM0NzI5
ZDYyODI1NWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcApA
QCAtMTIzLDcgKzEyMyw3IEBAIHZvaWQgU1ZHVGV4dFBhdGhFbGVtZW50OjpzdmdBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBSZW5kZXJTVkdS
ZXNvdXJjZTo6bWFya0ZvckxheW91dEFuZFBhcmVudFJlc291cmNlSW52YWxpZGF0aW9uKCpyZW5k
ZXJlcik7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdUZXh0UGF0aEVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gU1ZHVGV4dFBhdGhFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQog
ewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdUZXh0UGF0aD4oKnRoaXMsIFdU
Rjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rl
eHRQYXRoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5o
CmluZGV4IGE1YWMwZGU5NTM1Zjk2YjNlOTc1YzE2Y2ZhMTc3YTZmNzZkM2JhMDEuLmUwZDBjZTAx
NTQ0OTVmNmFlMjQzODIzMGY5MzBkNDY5MTJkZjI3MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VGV4dFBhdGhFbGVtZW50LmgKQEAgLTEyOSw3ICsxMjksNyBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWlj
U3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxl
bWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9u
Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIo
Y29uc3QgTm9kZSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklz
TmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdV
c2VFbGVtZW50LmNwcAppbmRleCBhNTFlOGNhZjRmMmRhNzc1OTU0NjJmZGZlNDVlNjBmNDYzNjYy
MGI2Li42Y2E0M2U2NTQ4ZGMzMDI4NjkwOWFlNjk2ZGI1OGE1NjBlYzFiY2I5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCkBAIC0yNjEsNyArMjYxLDcgQEAgU1ZHRWxlbWVudCog
U1ZHVXNlRWxlbWVudDo6dGFyZ2V0Q2xvbmUoKSBjb25zdAogICAgIHJldHVybiBkb3duY2FzdDxT
VkdFbGVtZW50Pihyb290LT5maXJzdENoaWxkKCkpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gU1ZHVXNlRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHls
ZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdVc2VFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJU
cmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdUcmFu
c2Zvcm1hYmxlQ29udGFpbmVyPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1VzZUVsZW1lbnQuaAppbmRleCA0NzczOTIzYzU4YjFiMmVjYjM3ZjFjYzllY2E1ODM2
NGQ4NjQ1NmMyLi44ODBmN2I5NGMwMWExNmYwNjVjZWU5MjMwOTM2Njg0ZTliZmNiZjViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgKQEAgLTY0LDcgKzY0LDcgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
d2lsbEF0dGFjaFJlbmRlcmVycygpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCB0b0NsaXBQYXRoKFBhdGgmKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIGJvb2wgaGF2ZUxvYWRlZFJlcXVpcmVkUmVzb3VyY2VzKCkgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIGZpbmlzaFBhcnNpbmdDaGlsZHJlbigpIG92ZXJyaWRlOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGNkZDE2ZDNkN2NlNmQxMTkyODc2ZjU3MTI1NmI5YmQwZGQ5YWFjYzEuLmI2MmMxNDEyMzI4
NmFjMzI5MzkyYzAwNTMzNDNjYmE3ODczNmFkMTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAx
NS0wNC0yMSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIENyZWF0
ZSBSZW5kZXJSdWJ5VGV4dCBmb3IgPHJ0PiBvbmx5IHdoZW4gdGhlIHBhcmVudCByZW5kZXJlciBp
cyBhIFJlbmRlclJ1YnkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDQwMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGZhc3QvcnVieS9ydWJ5LXJ0LXdpdGgtcmVnaW9uLWNyYXNoLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ydWJ5L3J1YnktcnQtd2l0aC1yZWdpb24tY3Jhc2gu
aHRtbDogQWRkZWQuCisKIDIwMTUtMDQtMjEgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBs
ZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggaW4gSlNDOjpJbnRlcnByZXRlcjo6ZXhlY3V0ZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3J1YnktcnQtd2l0aC1yZWdpb24tY3Jhc2gt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3J1YnktcnQtd2l0aC1yZWdpb24t
Y3Jhc2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiMjU1ZTBlNTRiYzFmNGYyM2NiMzk2OTA5
MDI0OTM5ODY0YmNmNzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3J1Ynkv
cnVieS1ydC13aXRoLXJlZ2lvbi1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitQ
YXNzIGlmIG5vIGFzc2VydCBvciBjcmFzaCBpbiBEZWJ1Zy4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9ydWJ5L3J1YnktcnQtd2l0aC1yZWdpb24tY3Jhc2guaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcnVieS9ydWJ5LXJ0LXdpdGgtcmVnaW9uLWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzJhZTIwM2JmZDU3YzJmMTBjMDJkODNhMjA3MTM3NTg1MTZmMzhiMAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvcnVieS9ydWJ5LXJ0LXdpdGgtcmVnaW9uLWNyYXNoLmh0bWwK
QEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8c2Ny
aXB0PgorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOworICA8L3NjcmlwdD4KKworICA8c3R5bGU+CisJcnQgeworICAgICAgLXdlYmtpdC1m
bG93LWludG86IGZsb3dDb250ZW50OworCX0KKwkKKwlkaXYgeworCSAgLXdlYmtpdC1mbG93LWZy
b206IGZsb3dDb250ZW50OyAKKwl9CisgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRp
dj48L2Rpdj4KKyAgPHJ1Ynk+PHJ0PlBhc3MgaWYgbm8gYXNzZXJ0IG9yIGNyYXNoIGluIERlYnVn
LjwvcnQ+PC9ydWJ5PgorICA8c2NyaXB0PgorICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJTZWxl
Y3RBbGwiKTsKKyAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251301</attachid>
            <date>2015-04-21 22:23:12 -0700</date>
            <delta_ts>2015-04-22 08:18:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144035-20150421222208.patch</filename>
            <type>text/plain</type>
            <size>156188</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzMDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWI4MjM3NmZiMDg1YzFm
ZWYzMjZlNTMyZTZkOGEwOTAxZTdmMDAzYS4uNDE4MWZlNDNjNTM1MmUyYWEwYWRjMzM3NTQxZmMz
MGVkMjEyNzVhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1NyBAQAorMjAxNS0wNC0yMSAgWmFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIENyZWF0ZSBSZW5kZXJSdWJ5
VGV4dCBmb3IgPHJ0PiBvbmx5IHdoZW4gdGhlIHBhcmVudCByZW5kZXJlciBpcyBhIFJlbmRlclJ1
YnkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQw
MzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
OiBmYXN0L3J1YnkvcnVieS1ydC13aXRoLXJlZ2lvbi1jcmFzaC5odG1sCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMvUGx1Z2luUmVwbGFjZW1l
bnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1l
bnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1l
bnQubW06CisgICAgICAgIChXZWJDb3JlOjpRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudDo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMvWW91VHViZVBs
dWdpblJlcGxhY2VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OllvdVR1YmVQbHVnaW5SZXBs
YWNlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdp
bnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50Lmg6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogZG9t
L0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxBcHBsZXRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxBcHBsZXRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgor
ICAgICAgICAqIGh0bWwvSFRNTEFwcGxldEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxB
dHRhY2htZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQXR0YWNobWVudEVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9IVE1MQXR0YWNo
bWVudEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxCUkVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEJSRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAg
ICAgKiBodG1sL0hUTUxCUkVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxCdXR0b25FbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxCdXR0b25FbGVtZW50OjpjcmVhdGVFbGVt
ZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxD
YW52YXNFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRN
TENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV0YWlsc0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcik6CisgICAgICAgICogaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaDoKKyAgICAgICAgKiBo
dG1sL0hUTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEZpZWxkU2V0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBodG1s
L0hUTUxGaWVsZFNldEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZUVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZUVsZW1lbnQuaDoKKyAgICAgICAgKiBo
dG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1l
U2V0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxG
cmFtZVNldEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxJRnJhbWVFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVy
ZXIpOgorICAgICAgICAqIGh0bWwvSFRNTElGcmFtZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1s
L0hUTUxJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVu
dDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxJbWFnZUVsZW1l
bnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTElucHV0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAg
KiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwv
SFRNTE1ldGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWV0ZXJFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRNTE1ldGVyRWxlbWVu
dC5oOgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAg
ICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbklt
YWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdl
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MUHJvZ3Jlc3NFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIp
OgorICAgICAgICAqIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwv
SFRNTFJURWxlbWVudC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRh
Y2htZW50RWxlbWVudC5oLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFJURWxlbWVudDo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxSdWJ5RWxlbWVudC5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5oLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFJ1YnlFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgor
ICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFNlbGVjdEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFN1bW1hcnlFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFRhZ05hbWVzLmluOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oOgor
ICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MVmlkZW9FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwv
SFRNTFZpZGVvRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFdCUkVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFdCUkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6
CisgICAgICAgICogaHRtbC9IVE1MV0JSRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvc2hhZG93
L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRldGFpbHNNYXJr
ZXJDb250cm9sOjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvc2hhZG93
L0RldGFpbHNNYXJrZXJDb250cm9sLmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sRWxlbWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVGltZWxpbmVD
b250YWluZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRh
aW5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sRWxlbWVudHMuaDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZXRlclNo
YWRvd0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWV0ZXJJbm5lckVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlByb2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTbGlkZXJUaHVtYkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0Q29udHJvbElubmVyQ29udGFpbmVyOjpjcmVhdGVFbGVtZW50UmVuZGVy
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1RleHRDb250cm9sSW5u
ZXJFbGVtZW50cy5oOgorICAgICAgICAqIGh0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0
dG9uRWxlbWVudE1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUNvbnRyb2xzQnV0dG9u
RWxlbWVudE1hYzo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBodG1sL3NoYWRv
dy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuaDoKKyAgICAgICAgKiBodG1sL3No
YWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYzo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToK
KyAgICAgICAgKiBodG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmg6
CisgICAgICAgICogaHRtbC90cmFjay9WVFRDdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VlRU
Q3VlQm94OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvdHJhY2svVlRU
Q3VlLmg6CisgICAgICAgICogbWF0aG1sL01hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBtYXRobWwvTWF0aE1MSW5saW5lQ29udGFpbmVy
RWxlbWVudC5oOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNYXRoTUxNYXRoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToK
KyAgICAgICAgKiBtYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuaDoKKyAgICAgICAgKiBtYXRobWwv
TWF0aE1MTWVuY2xvc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hdGhNTE1lbmNs
b3NlRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBtYXRobWwvTWF0
aE1MTWVuY2xvc2VFbGVtZW50Lmg6CisgICAgICAgICogbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWF0aE1MU2VsZWN0RWxlbWVudDo6Y3JlYXRlRWxl
bWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBtYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5oOgor
ICAgICAgICAqIG1hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNYXRoTUxUZXh0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBt
YXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNsb25lKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJF
bGVtZW50OjpjcmVhdGVGb3IpOgorICAgICAgICAqIHN0eWxlL1JlbmRlclRyZWVQb3NpdGlvbi5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZVBvc2l0aW9uOjpSZW5kZXJU
cmVlUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZVBvc2l0aW9uOjpjb21w
dXRlTmV4dFNpYmxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZVBvc2l0aW9uOjpp
bnZhbGlkYXRlTmV4dFNpYmxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZVBvc2l0
aW9uOjpwcmV2aW91c1NpYmxpbmdSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
cmVlUG9zaXRpb246Om5leHRTaWJsaW5nUmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVHJlZVBvc2l0aW9uOjppc1JlbmRlcmVyUmVwYXJlbnRlZCk6CisgICAgICAgICogc3R5bGUv
UmVuZGVyVHJlZVBvc2l0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJl
ZVBvc2l0aW9uOjpwYXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZVBvc2l0aW9u
OjpjYW5JbnNlcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZVBvc2l0aW9uOjppbnNl
cnQpOgorICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGU6OmNyZWF0ZVJlbmRlcmVySWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGU6OmludmFsaWRhdGVXaGl0ZXNwYWNlT25seVRleHRTaWJsaW5nc0FmdGVyQXR0YWNoSWZO
ZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OnRleHRSZW5kZXJlcklzTmVlZGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSZW5kZXJUcmVlUG9zaXRpb246OnBhcmVudCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6aXNSZW5kZXJlclJlcGFyZW50ZWQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6Om5leHRTaWJsaW5nUmVuZGVyZXIpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJlbmRlclRyZWVQb3NpdGlvbjo6UmVu
ZGVyVHJlZVBvc2l0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSZW5k
ZXJUcmVlUG9zaXRpb246OmNhbkluc2VydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6UmVuZGVyVHJlZVBvc2l0aW9uOjppbnNlcnQpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGU6OlJlbmRlclRyZWVQb3NpdGlvbjo6Y29tcHV0ZU5leHRTaWJsaW5nKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSZW5kZXJUcmVlUG9zaXRpb246OmludmFs
aWRhdGVOZXh0U2libGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6cHJl
dmlvdXNTaWJsaW5nUmVuZGVyZXIpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdBRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKToKKyAgICAgICAgKiBzdmcvU1ZHQUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHQWx0
R2x5cGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FsdEdseXBoRWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBzdmcvU1ZHQWx0R2x5cGhFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQ2lyY2xlRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBz
dmcvU1ZHQ2lyY2xlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdDbGlwUGF0aEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ2xpcFBhdGhFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaDoKKyAgICAgICAg
KiBzdmcvU1ZHRGVmc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRGVmc0VsZW1l
bnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR0RlZnNFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0VsbGlwc2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAq
IHN2Zy9TVkdFbGxpcHNlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpbHRlckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaDoKKyAgICAgICAgKiBz
dmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKToKKyAgICAgICAgKiBzdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzLmg6CisgICAgICAgICogc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oOgorICAgICAg
ICAqIHN2Zy9TVkdHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdHRWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBzdmcvU1ZHR0VsZW1lbnQuaDoKKyAg
ICAgICAgKiBzdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0dyYXBoaWNzRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBzdmcv
U1ZHR3JhcGhpY3NFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cik6CisgICAgICAgICogc3ZnL1NWR0ltYWdlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdM
aW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGluZWFyR3Jh
ZGllbnRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdM
aW5lYXJHcmFkaWVudEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXJrZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdNYXJrZXJFbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR01hc2tFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hc2tFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdNYXNrRWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdQYXRoRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXRoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBzdmcvU1ZHUGF0
aEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUGF0dGVybkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6Cisg
ICAgICAgICogc3ZnL1NWR1BhdHRlcm5FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1JhZGlh
bEdyYWRpZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdSYWRpYWxHcmFkaWVu
dEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR1JhZGlh
bEdyYWRpZW50RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdSZWN0RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdSZWN0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToK
KyAgICAgICAgKiBzdmcvU1ZHUmVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdTVkdFbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR1N0b3BFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0b3BFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdTdG9wRWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdTd2l0Y2hFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1N3aXRjaEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NW
R1N3aXRjaEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdTeW1ib2xFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIp
OgorICAgICAgICAqIHN2Zy9TVkdTeW1ib2xFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1RS
ZWZFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RSZWZFbGVtZW50OjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdUUmVmRWxlbWVudC5oOgorICAgICAg
ICAqIHN2Zy9TVkdUU3BhbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVFNwYW5F
bGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdUU3BhbkVs
ZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHVGV4dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHVGV4dEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICog
c3ZnL1NWR1RleHRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0UGF0aEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oOgorICAgICAgICAq
IHN2Zy9TVkdVc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQuaDoK
KwogMjAxNS0wNC0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IE1ha2UgVmVjdG9yKGNvbnN0IFZlY3RvcjxULCBvdGhlckNhcGFjaXR5LCBvdGhlck92ZXJmbG93
QmVoYXZpb3VyPiYpIGNvbnN0cnVjdG9yIGV4cGxpY2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IDNkZjk0ZWYzOTRhZmE4ZmU1MzA0NjM4MTNkZDEyOGMwZWZlMGFjNTYuLmNiNGZjNWYxZTMyMDYw
OWFlMTU5Y2EzMjFjNjM3ZGZjMzE2ZWUwZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yNTM4
LDYgKzI1MzgsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgc3RvcmFnZS9TdG9yYWdlTmFt
ZXNwYWNlUHJvdmlkZXIuY3BwCiAKICAgICBzdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3BwCisg
ICAgc3R5bGUvUmVuZGVyVHJlZVBvc2l0aW9uLmNwcAogICAgIHN0eWxlL1N0eWxlRm9udFNpemVG
dW5jdGlvbnMuY3BwCiAgICAgc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwCiAgICAg
c3R5bGUvU3R5bGVSZXNvbHZlVHJlZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcGx1Z2lucy9QbHVnaW5SZXBsYWNlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wbHVnaW5zL1BsdWdpblJlcGxhY2VtZW50LmgKaW5kZXggMDFjOTBiODY4YWNlZmFkZmE2ZjJi
ZWNmM2RkZjU0NjY2MTRmZDJlZi4uZGU3ODQzNDBmYzA0NTI1ZGY0ZTMyNGI5YTYyMjg1MDU3ZmI5
MjMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1BsdWdpblJl
cGxhY2VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1BsdWdpblJl
cGxhY2VtZW50LmgKQEAgLTM5LDYgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
SFRNTFBsdWdJbkVsZW1lbnQ7CiBjbGFzcyBSZW5kZXJFbGVtZW50OwogY2xhc3MgUmVuZGVyU3R5
bGU7CitjbGFzcyBSZW5kZXJUcmVlUG9zaXRpb247CiBjbGFzcyBTaGFkb3dSb290OwogY2xhc3Mg
VVJMOwogCkBAIC01MCw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEpTQzo6SlNPYmpl
Y3QqIHNjcmlwdE9iamVjdCgpIHsgcmV0dXJuIDA7IH0KIAogICAgIHZpcnR1YWwgYm9vbCB3aWxs
Q3JlYXRlUmVuZGVyZXIoKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihIVE1MUGx1Z0luRWxlbWVudCYs
IFJlZjxSZW5kZXJTdHlsZT4mJikgPSAwOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihIVE1MUGx1Z0luRWxlbWVudCYsIFJlZjxSZW5k
ZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgPSAwOwogCiBwcm90ZWN0ZWQ6
CiAgICAgUGx1Z2luUmVwbGFjZW1lbnQoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmgKaW5kZXgg
YjBjNWVjMTc4MjRjZmY1ZDIzZjdkNThiOWM4ZWEwZDhiODI1NTRjZC4uOWE5NzJhYWZmMWYyMTAw
ODE1ZGRlYWVkYzUzODIyYWY4YWM0N2IxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmgKQEAgLTU0
LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSlNDOjpKU09iamVjdCogc2NyaXB0T2Jq
ZWN0KCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9zY3JpcHRPYmplY3Q7IH0KIAogICAgIHZpcnR1YWwg
Ym9vbCB3aWxsQ3JlYXRlUmVuZGVyZXIoKSBvdmVycmlkZSB7IHJldHVybiBtX21lZGlhRWxlbWVu
dDsgfQotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihIVE1MUGx1Z0luRWxlbWVudCYsIFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKEhUTUxQbHVnSW5FbGVtZW50JiwgUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJU
cmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIAogICAgIEhUTUxWaWRlb0VsZW1lbnQqIHBhcmVudEVs
ZW1lbnQoKSB7IHJldHVybiBtX21lZGlhRWxlbWVudC5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFj
ZW1lbnQubW0KaW5kZXggYWM3NGZmNjEyMmZkOTY5MjRkZjM0MzNjOTMzYTdmN2M2M2M5ZTkzMy4u
ZDQ2Yjc3MDZiMjc2MGJlZWJiZGYyNTRmYjJlYmFkNGY4OWRlNDBjZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBs
YWNlbWVudC5tbQpAQCAtMTMwLDEyICsxMzAsMTIgQEAgUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1l
bnQ6On5RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudCgpCiAgICAgbV9tZWRpYUVsZW1lbnQgPSBu
dWxscHRyOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gUXVpY2tUaW1lUGx1Z2luUmVw
bGFjZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihIVE1MUGx1Z0luRWxlbWVudCYgcGx1Z2lu
LCBSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gUXVp
Y2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihIVE1MUGx1Z0lu
RWxlbWVudCYgcGx1Z2luLCBSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRy
ZWVQb3NpdGlvbiYgaW5zZXJ0aW9uUG9zaXRpb24pCiB7CiAgICAgQVNTRVJUX1VOVVNFRChwbHVn
aW4sIG1fcGFyZW50RWxlbWVudCA9PSAmcGx1Z2luKTsKIAogICAgIGlmIChtX21lZGlhRWxlbWVu
dCkKLSAgICAgICAgcmV0dXJuIG1fbWVkaWFFbGVtZW50LT5jcmVhdGVFbGVtZW50UmVuZGVyZXIo
V1RGOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBtX21lZGlhRWxlbWVudC0+Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKFdURjo6bW92ZShzdHlsZSksIGluc2VydGlvblBvc2l0aW9uKTsKIAog
ICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcAppbmRleCBhMDQyOTMz
ZDYxMDQ5MTJkNTlmOGVjZjIwNzNmZGYyZTc5ZGY4NDEzLi44Zjk2YzlmMDI4YzcyOGZkYTAzYmI1
MGE3ZWU5NmJhZmMzZGE5MDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Bs
dWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcApAQCAtNjcsMTQgKzY3
LDE0IEBAIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6WW91VHViZVBsdWdpblJlcGxhY2VtZW50
KEhUTUxQbHVnSW5FbGVtZW50JiBwbHVnaW4sIGNvCiAgICAgICAgIG1fYXR0cmlidXRlcy5hZGQo
cGFyYW1OYW1lc1tpXSwgcGFyYW1WYWx1ZXNbaV0pOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gWW91VHViZVBsdWdpblJlcGxhY2VtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoSFRN
TFBsdWdJbkVsZW1lbnQmIHBsdWdpbiwgUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKEhUTUxQbHVnSW5FbGVtZW50JiBwbHVnaW4sIFJlZjxSZW5kZXJTdHlsZT4mJiBz
dHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJiBpbnNlcnRpb25Qb3NpdGlvbikKIHsKICAg
ICBBU1NFUlRfVU5VU0VEKHBsdWdpbiwgbV9wYXJlbnRFbGVtZW50ID09ICZwbHVnaW4pOwogCiAg
ICAgaWYgKCFtX2VtYmVkU2hhZG93RWxlbWVudCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgCi0gICAgcmV0dXJuIG1fZW1iZWRTaGFkb3dFbGVtZW50LT5jcmVhdGVFbGVtZW50UmVuZGVy
ZXIoV1RGOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIG1fZW1iZWRTaGFkb3dFbGVtZW50LT5j
cmVhdGVFbGVtZW50UmVuZGVyZXIoV1RGOjptb3ZlKHN0eWxlKSwgaW5zZXJ0aW9uUG9zaXRpb24p
OwogfQogCiBib29sIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6aW5zdGFsbFJlcGxhY2VtZW50
KFNoYWRvd1Jvb3QqIHJvb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Bs
dWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmgKaW5kZXggZWYwOGYzZDVmYTg4MzFk
NzE0NWZiMGY2ZDIwOTI2ZDNiODhiNjMwZC4uYWQ5ZjAzOTI3ZmFmY2MxYzBjNTVmYWNmYjFiNjdh
OTJjYjNmMTQ4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lv
dVR1YmVQbHVnaW5SZXBsYWNlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1
Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuaApAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRl
OgogICAgIFN0cmluZyB5b3VUdWJlVVJMKGNvbnN0IFN0cmluZyYgcmF3VVJMKTsKICAgICAKICAg
ICB2aXJ0dWFsIGJvb2wgd2lsbENyZWF0ZVJlbmRlcmVyKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9l
bWJlZFNoYWRvd0VsZW1lbnQ7IH0KLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoSFRNTFBsdWdJbkVsZW1lbnQmLCBSZWY8UmVuZGVyU3R5
bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihIVE1MUGx1Z0luRWxlbWVudCYsIFJlZjxSZW5kZXJTdHlsZT4m
JiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgCiAgICAgSFRNTFBs
dWdJbkVsZW1lbnQqIG1fcGFyZW50RWxlbWVudDsKICAgICBSZWZQdHI8WW91VHViZUVtYmVkU2hh
ZG93RWxlbWVudD4gbV9lbWJlZFNoYWRvd0VsZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODdkMmU3NzhiNGNlNzJkNTEw
ZjkxOTQ0NWYxMmU1YjNjYWFlMzAwNy4uN2Y5ZWQyZGQwOTM0NWFjMjEwMWIyMWNkYmQ1NDE4MWJk
YzI2ZTJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMjExMSw2ICsyMTExLDEwIEBACiAJCTU4MDM3MTYxMUE2NkYwMEEwMEJB
RjUxOSAvKiBDbGlwUmVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1ODAzNzE1RjFBNjZGMDBBMDBCQUY1MTkgLyogQ2xpcFJlY3QuY3BwICovOyB9
OwogCQk1ODAzNzE2MjFBNjZGMDBBMDBCQUY1MTkgLyogQ2xpcFJlY3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU4MDM3MTYwMUE2NkYwMEEwMEJBRjUx
OSAvKiBDbGlwUmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTU4MDM3MTY0MUE2NkYxRDMwMEJBRjUxOSAvKiBMYXllckZyYWdtZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1ODAzNzE2MzFBNjZG
MUQzMDBCQUY1MTkgLyogTGF5ZXJGcmFnbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTU4MjA1RDgxMUFFNkZBNUEwMDhFNjdCQyAvKiBSZW5k
ZXJUcmVlUG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU4MjA1RDgwMUFFNkZBNUEwMDhFNjdCQyAvKiBSZW5kZXJUcmVlUG9zaXRpb24uaCAq
LzsgfTsKKwkJNTgyMDVEODMxQUU3MDkwMTAwOEU2N0JDIC8qIEhUTUxSdWJ5RWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTgyMDVEODIxQUU3
MDkwMTAwOEU2N0JDIC8qIEhUTUxSdWJ5RWxlbWVudC5oICovOyB9OworCQk1ODIwNUQ4NTFBRTcw
QUZBMDA4RTY3QkMgLyogSFRNTFJURWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTgyMDVEODQxQUU3MEFGQTAwOEU2N0JDIC8qIEhUTUxSVEVs
ZW1lbnQuaCAqLzsgfTsKKwkJNTgyMDVEODcxQUU3MzZEMjAwOEU2N0JDIC8qIFJlbmRlclRyZWVQ
b3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1ODIwNUQ4NjFBRTczNkQyMDA4RTY3QkMgLyogUmVuZGVyVHJlZVBvc2l0aW9uLmNwcCAqLzsg
fTsKIAkJNTgyQ0IwNTMxQTc4QTE0QjAwQUZGQ0M0IC8qIFNpbXBsZUxpbmVMYXlvdXRUZXh0RnJh
Z21lbnRJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTgyQ0IwNTIxQTc4QTE0QjAwQUZGQ0M0IC8qIFNpbXBsZUxpbmVMYXlvdXRUZXh0RnJh
Z21lbnRJdGVyYXRvci5oICovOyB9OwogCQk1ODJDQjA1NTFBNzhBMkIyMDBBRkZDQzQgLyogU2lt
cGxlTGluZUxheW91dFRleHRGcmFnbWVudEl0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU4MkNCMDU0MUE3OEEyQjIwMEFGRkNDNCAvKiBT
aW1wbGVMaW5lTGF5b3V0VGV4dEZyYWdtZW50SXRlcmF0b3IuY3BwICovOyB9OwogCQk1ODVENkRG
QzFBMTUzNTU2MDBGQTRGMTIgLyogU2ltcGxlTGluZUxheW91dFJlc29sdmVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU4NUQ2REZCMUExNTM1NTYw
MEZBNEYxMiAvKiBTaW1wbGVMaW5lTGF5b3V0UmVzb2x2ZXIuY3BwICovOyB9OwpAQCAtOTMxMiw2
ICs5MzE2LDEwIEBACiAJCTU4MDM3MTVGMUE2NkYwMEEwMEJBRjUxOSAvKiBDbGlwUmVjdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDbGlwUmVjdC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU4MDM3MTYwMUE2NkYwMEEwMEJBRjUxOSAvKiBDbGlw
UmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDbGlwUmVjdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1ODAzNzE2MzFBNjZGMUQzMDBCQUY1MTkgLyogTGF5
ZXJGcmFnbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXllckZyYWdt
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU4MjA1RDgwMUFFNkZBNUEwMDhF
NjdCQyAvKiBSZW5kZXJUcmVlUG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVuZGVyVHJlZVBvc2l0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTU4MjA1RDgyMUFFNzA5MDEwMDhFNjdCQyAvKiBIVE1MUnVieUVsZW1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFJ1YnlFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTU4MjA1RDg0MUFFNzBBRkEwMDhFNjdCQyAvKiBIVE1MUlRFbGVtZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxSVEVsZW1lbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTgyMDVEODYxQUU3MzZEMjAwOEU2N0JDIC8qIFJl
bmRlclRyZWVQb3NpdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZW5kZXJUcmVlUG9zaXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
ODJDQjA1MjFBNzhBMTRCMDBBRkZDQzQgLyogU2ltcGxlTGluZUxheW91dFRleHRGcmFnbWVudEl0
ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNpbXBsZUxpbmVMYXlv
dXRUZXh0RnJhZ21lbnRJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
ODJDQjA1NDFBNzhBMkIyMDBBRkZDQzQgLyogU2ltcGxlTGluZUxheW91dFRleHRGcmFnbWVudEl0
ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNpbXBsZUxp
bmVMYXlvdXRUZXh0RnJhZ21lbnRJdGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU4NUQ2REZCMUExNTM1NTYwMEZBNEYxMiAvKiBTaW1wbGVMaW5lTGF5b3V0UmVzb2x2
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2ltcGxlTGluZUxh
eW91dFJlc29sdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3ODc1LDYg
KzE3ODgzLDggQEAKIAkJOTNFRUMxRUMwOUMyODc3NzAwQzUxNUQxIC8qIGh0bWwgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTU4MjA1RDg0MUFFNzBBRkEw
MDhFNjdCQyAvKiBIVE1MUlRFbGVtZW50LmggKi8sCisJCQkJNTgyMDVEODIxQUU3MDkwMTAwOEU2
N0JDIC8qIEhUTUxSdWJ5RWxlbWVudC5oICovLAogCQkJCTQ5NDg0RkFFMTAyQ0YwMUUwMDE4N0RE
MyAvKiBjYW52YXMgKi8sCiAJCQkJMUE4OEE5MDExNzU1M0NENzAwMEM3NEY5IC8qIGZvcm1zICov
LAogCQkJCTk3QzFGNTUxMTIyODU1ODgwMEVERTYxNiAvKiBwYXJzZXIgKi8sCkBAIC0yMjIyNiw2
ICsyMjIzNiw4IEBACiAJCUU0NzYzRDRBMTdCMjcwNDkwMEQzNTIwNiAvKiBzdHlsZSAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNTgyMDVEODAxQUU2RkE1
QTAwOEU2N0JDIC8qIFJlbmRlclRyZWVQb3NpdGlvbi5oICovLAorCQkJCTU4MjA1RDg2MUFFNzM2
RDIwMDhFNjdCQyAvKiBSZW5kZXJUcmVlUG9zaXRpb24uY3BwICovLAogCQkJCTFDMDEwNkZFMTky
NTk0REYwMDhBNDIwMSAvKiBJbmxpbmVUZXh0Qm94U3R5bGUuY3BwICovLAogCQkJCTFDMDEwNkZG
MTkyNTk0REYwMDhBNDIwMSAvKiBJbmxpbmVUZXh0Qm94U3R5bGUuaCAqLywKIAkJCQlFNEQ1OEVC
NjE3QjRFRDg5MDBDQkRDQTggLyogU3R5bGVGb250U2l6ZUZ1bmN0aW9ucy5jcHAgKi8sCkBAIC0y
NDc4OCw2ICsyNDgwMCw3IEBACiAJCQkJQThFQTdDQUYwQTE5MkI5QzAwQThFRjVGIC8qIEhUTUxI
UkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzFERTI3MEExNTJBQzgwMEIxMkE2OCAv
KiBIVE1MSHRtbEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzFERTJBMEExNTJBQzgw
MEIxMkE2OCAvKiBIVE1MSUZyYW1lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTgyMDVE
ODMxQUU3MDkwMTAwOEU2N0JDIC8qIEhUTUxSdWJ5RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQThFQTdEMkQwQTE5Mzg1NTAwQThFRjVGIC8qIEhUTUxJbWFnZUVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUExOUQ5MzRCMUFBMTFCMUUwMEI0NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9u
Q29udGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTdEMkIwQTE5Mzg1NTAwQThF
RjVGIC8qIEhUTUxJbWFnZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjM3Niw2ICsyNjM4
OSw3IEBACiAJCQkJQ0QzQTQ5NjUxN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlckxpc3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCUNENjQxRUI0MTgxOEY1RUQwMEVFNEM0MSAvKiBTb3VyY2VC
dWZmZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM4QjVBQjE4MDQ3RkYxMDAxNkU2
ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCBpbiBIZWFkZXJzICovLAorCQkJCTU4
MjA1RDgxMUFFNkZBNUEwMDhFNjdCQyAvKiBSZW5kZXJUcmVlUG9zaXRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUNEQzhCNUFEMTgwNEFFNUQwMDE2RTY4NSAvKiBTb3VyY2VCdWZmZXJQcml2YXRl
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NEE4MUY0MjBGQzdFMDI3MDA5NTUzMDAgLyog
U291cmNlR3JhcGhpYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc2MzA2RDgxN0UxNDlEMDAwNUE3
QzRFIC8qIFNvdXJjZUluZm8uaCBpbiBIZWFkZXJzICovLApAQCAtMjY4MzcsNiArMjY4NTEsNyBA
QAogCQkJCTBGNTRERDA5MTg4MUQ1RjUwMDNFRURCQiAvKiBUb3VjaEV2ZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjU0REQwQTE4ODFENUY1MDAzRUVEQkIgLyogVG91Y2hMaXN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwNzAzMzRENzE0NTlGRkQ1MDA4RDhENDUgLyogVHJhY2tCYXNlLmggaW4g
SGVhZGVycyAqLywKKwkJCQk1ODIwNUQ4NTFBRTcwQUZBMDA4RTY3QkMgLyogSFRNTFJURWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4OEUwQzIxNzE1Q0UyNjAwNjU4RDk4IC8qIFRyYWNr
TGlzdEJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFOTEzRDgwMTgxRUY5MjQwMERDQjA5RSAv
KiBUcmFja1ByaXZhdGVCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRkFDMzBGRTE4NEZCMTQ1
MDA4QzRGMUUgLyogVHJhaWxpbmdPYmplY3RzLmggaW4gSGVhZGVycyAqLywKQEAgLTI3NjE0LDYg
KzI3NjI5LDcgQEAKIAkJCQlCQ0MwNjU4MDBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdExp
c3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODUwMzFCM0YwQTQ0RUZDNzAwRjk5MkUwIC8qIENs
aXBib2FyZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNERUE3NjM1MTQ2MEI3MUEwMDhC
MzFGMSAvKiBDbG9jay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1ODIwNUQ4NzFBRTczNkQyMDA4
RTY3QkMgLyogUmVuZGVyVHJlZVBvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNERUE3
NjM0MTQ2MEI1NkYwMDhCMzFGMSAvKiBDbG9ja0dlbmVyaWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOUJEOEE5NUExOEJFRkM3NjAwOTg3RTlBIC8qIENvbGxlY3Rpb25JbmRleENhY2hlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUIyNzUzNTY2MEIwNTM4MTQwMDJDRTY0RiAvKiBDb2xvci5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBmOTZmYWNiZWIzZTA3Mzcy
NWFkMDgzMjI2YjVmZDlhMTRjMmY5NjE5Li5iMjM4ZDgxOGNhZDE4NDdjZGVhNTMwNDI3NTVjNzZm
Y2YyNzI5OGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xNDk2LDcgKzE0OTYsNyBAQCBi
b29sIEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQog
ICAgIHJldHVybiBzdHlsZS5kaXNwbGF5KCkgIT0gTk9ORTsKIH0KIAotUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+
JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gRWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikKIHsKICAgICByZXR1cm4gUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKCp0aGlzLCBXVEY6
Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IGRiZjNiNmNiMzY2NTVmMDRk
OWE2N2ZlMTU0NmY3MTRmYjU0NzhjY2EuLjVhNjg3YjAxZmE0MjNhNjg5MDczMjE5NjE2N2QyNTk3
NjQ2MDU3MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtNDksNiArNDksNyBAQCBjbGFzcyBQbGF0
Zm9ybU1vdXNlRXZlbnQ7CiBjbGFzcyBQbGF0Zm9ybVdoZWVsRXZlbnQ7CiBjbGFzcyBQc2V1ZG9F
bGVtZW50OwogY2xhc3MgUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQ7CitjbGFzcyBSZW5kZXJUcmVl
UG9zaXRpb247CiBjbGFzcyBTaGFkb3dSb290OwogCiBlbnVtIFNwZWxsY2hlY2tBdHRyaWJ1dGVT
dGF0ZSB7CkBAIC0yNDIsNyArMjQzLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGNv
cHlOb25BdHRyaWJ1dGVQcm9wZXJ0aWVzRnJvbUVsZW1lbnQoY29uc3QgRWxlbWVudCYpIHsgfQog
Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJik7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVu
ZGVyVHJlZVBvc2l0aW9uJik7CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29u
c3QgUmVuZGVyU3R5bGUmKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFNoYWRvd1Jvb3QqIHNoYWRv
d1Jvb3QoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxl
dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5jcHAK
aW5kZXggNTFmY2YyZTVkOWI1YWE0YWQ5YjViNDlhNjc4Y2MyYTg5MTBjMDQ1MS4uNWI1ZWE2ODhj
MjFkOGE4MDAyY2JlM2ZmZTI4ZDBiMWYzOThhZjBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQXBwbGV0RWxlbWVudC5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgYm9vbCBIVE1MQXBwbGV0RWxl
bWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAgICAgcmV0
dXJuIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOwogfQog
Ci1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEFwcGxldEVsZW1lbnQ6OmNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gSFRNTEFwcGxldEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVy
U3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgaWYgKCFj
YW5FbWJlZEphdmEoKSkKICAgICAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigq
dGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBcHBsZXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVt
ZW50LmgKaW5kZXggZjBkYzkyMDc3ZjhlYTE4MjI5ODUwMjk2N2Y3NmRhNDdlYjRhNGM3Zi4uZWE4
OTQxZTU4NGIyMWNjMzUzYWE4MTJjMGJiNWM0NmVlYWU3ZmI1MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFwcGxldEVsZW1lbnQuaApAQCAtMzcsNyArMzcsNyBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgCiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNO
ZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYm
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRp
b24mKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgUmVuZGVyV2lkZ2V0KiByZW5kZXJXaWRnZXRM
b2FkaW5nUGx1Z2luKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVdp
ZGdldChQbHVnaW5DcmVhdGlvbk9wdGlvbikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5jcHAKaW5kZXggODRkODE2ZTNkMDUzMzlkNmI5MmZm
NjRhNTcxNWIzODE5Y2YwYWJkMi4uMmYyNjFhNTkyZWI4NzZkYjVjY2FjYzRiNmQ5YmI4N2Q4YjYz
ZTczZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0YWNobWVudEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dGFjaG1lbnRFbGVtZW50LmNw
cApAQCAtNTEsNyArNTEsNyBAQCBSZWY8SFRNTEF0dGFjaG1lbnRFbGVtZW50PiBIVE1MQXR0YWNo
bWVudEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YQogICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEhUTUxBdHRhY2htZW50RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwog
fQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEF0dGFjaG1lbnRFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IEhUTUxBdHRhY2htZW50RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsK
ICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyQXR0YWNobWVudD4oKnRoaXMsIFdURjo6
bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0
YWNobWVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dGFjaG1lbnRFbGVt
ZW50LmgKaW5kZXggNTgyOTY4NzUwMDAyY2QyMDEwYjE3OTFmNGE4ODQ4ZDNlMTYyMmYyMy4uNDZh
MzRlZDkxZWYxMjljMDY4MzdkYTI4Njc2NjZlYjcyMjY0MmU0OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQXR0YWNobWVudEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5oCkBAIC00Niw3ICs0Niw3IEBAIHByaXZhdGU6
CiAgICAgSFRNTEF0dGFjaG1lbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogICAgIHZpcnR1YWwgfkhUTUxBdHRhY2htZW50RWxlbWVudCgpOwogCi0gICAgdmlydHVh
bCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5k
ZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVy
VHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2VsZWN0
T25Nb3VzZURvd24oKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29s
IGNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuY3BwCmluZGV4IDViOTU4ZTY1OTcwZmVj
MWQyN2Q2YWRlNzU2ZGMzMGU1ZmIxOTIxM2MuLjViYmNmZjdmNGMzMjEzOGQyNmYwNWY3NThiOThk
NTA3ZjQ4ZDg3ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQlJFbGVtZW50LmNwcApAQCAtNzAs
NyArNzAsNyBAQCB2b2lkIEhUTUxCUkVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlv
bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYQogICAgICAgICBIVE1MRWxlbWVudDo6
Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7
CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MQlJFbGVtZW50OjpjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgaWYgKHN0eWxl
LmdldCgpLmhhc0NvbnRlbnQoKSkKICAgICAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0
ZUZvcigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxCUkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVu
dC5oCmluZGV4IGY0NTMzODRjNWFmNmI5Mzc5MjY2ZDg5OWNhYmQ4NDAyNTM3NjJjODguLjIzZTRm
ZWZjNjc2OGNkNDMxYmJiZjhmNTZjOTNiOTljOGQyYTU3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEJSRWxlbWVudC5oCkBAIC00MSw3ICs0MSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29s
IGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5
bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVy
cmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRv
bkVsZW1lbnQuY3BwCmluZGV4IDcwODRkZWRlYzVhYTlkM2Q0Y2YwZDgzMTNkODFiZjkxOTMwNWZl
OTIuLjk2M2ZkODBjNmUxYThmZGQ1OWEyZWJjZmYxY2I3OTJjY2I1OTg3ZWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCkBAIC01Niw3ICs1Niw3IEBAIHZvaWQg
SFRNTEJ1dHRvbkVsZW1lbnQ6OnNldFR5cGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKQogICAg
IHNldEF0dHJpYnV0ZSh0eXBlQXR0ciwgdHlwZSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBIVE1MQnV0dG9uRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJT
dHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MQnV0dG9uRWxlbWVu
dDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3Qg
UmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVy
QnV0dG9uPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCdXR0b25FbGVtZW50LmgKaW5kZXggZmFkZjc4NWU5YjYyODkwMmZhMzE0MmExYTUxZDQ0M2Yz
YmFhZjNkZC4uNWQ3ZGY4MDYyMDdhYTExN2RmODI4NzllYWEyODM3ZmQ1MWJjYzFhYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBwcml2
YXRlOgogCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgp
IGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAK
ICAgICAvLyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50IGFsd2F5cyBjcmVhdGVzIG9uZSwgYnV0IGJ1
dHRvbnMgZG9uJ3QgbmVlZCBpdC4KICAgICB2aXJ0dWFsIGJvb2wgYWx3YXlzQ3JlYXRlVXNlckFn
ZW50U2hhZG93Um9vdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IGU5NDY3MmYxZGM2MmQ4MjQ5
NGE1NWY1ZTZiZTNiNDIwN2RjZWY0ZjAuLmIyMmQ4YzE3NDQ3NmQ5N2ZkOTdjZTAzMDA5YjAxYmQy
MGNhOGNhNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBA
IC0xMDYsNyArMTA2LDcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3QKICAgICBIVE1MRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVy
U3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTENhbnZhc0VsZW1l
bnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0
IFJlbmRlclRyZWVQb3NpdGlvbiYgaW5zZXJ0aW9uUG9zaXRpb24pCiB7CiAgICAgRnJhbWUqIGZy
YW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwogICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+c2NyaXB0
KCkuY2FuRXhlY3V0ZVNjcmlwdHMoTm90QWJvdXRUb0V4ZWN1dGVTY3JpcHQpKSB7CkBAIC0xMTUs
NyArMTE1LDcgQEAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxDYW52YXNFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWwKICAgICB9CiAKICAgICBtX3JlbmRl
cmVySXNDYW52YXMgPSBmYWxzZTsKLSAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OmNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihXVEY6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihXVEY6Om1vdmUoc3R5bGUpLCBpbnNlcnRpb25Qb3NpdGlvbik7
CiB9CiAKIGJvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OmNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCBlNDlhYzUz
NmNmY2RmODQyNjQ2MmEwOTVkNGNhMDdjNzVkMDViNTQyLi44ZWYwZWVlOWI3MGMyOGFjYmFkMDMw
OTdmNzhjNWJjODk4MDM0OTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
YW52YXNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5oCkBAIC0xNDEsNyArMTQxLDcgQEAgcHJpdmF0ZToKICAgICBIVE1MQ2FudmFzRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3Zl
cnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHls
ZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFs
IGJvb2wgY2FuQ29udGFpblJhbmdlRW5kUG9pbnQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIGJvb2wgY2FuU3RhcnRTZWxlY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAppbmRleCA0NDU3NGJlYmIyNGEzY2NiYjBi
MTkyNDA0MTU1NGYyNTExMmFlNGI5Li5lZDNmY2RlMWExMjZmYjRjYWNlNDQ1OGYxNmRjNGIzZmRh
ZjFmNzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCkBA
IC0xMTEsNyArMTExLDcgQEAgSFRNTERldGFpbHNFbGVtZW50OjpIVE1MRGV0YWlsc0VsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGQKICAgICBBU1NFUlQoaGFz
VGFnTmFtZShkZXRhaWxzVGFnKSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1M
RGV0YWlsc0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYg
c3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTERldGFpbHNFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJU
cmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJCbG9ja0Zs
b3c+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxE
ZXRhaWxzRWxlbWVudC5oCmluZGV4IGRiZmZjNWYzZDE2OGFjYWFiNWQ1YTNhNDU2YjljZjhmZjgx
MGRhYjQuLjE4ZDI2NTVjYTRmMzQ2MjE4YmU5ZTZkNzZiYjM2OTg4MzVjNDYyMWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaApAQCAtMzUsNyArMzUsNyBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIEhUTUxEZXRhaWxzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25z
dCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuY3BwCmluZGV4IGE2NjEyMzcwZWI4MzQzOTdhYmMwZDQ5ZmJhMWY3NjBlYzI2
NjQzN2MuLjgwZGRlNmJhMTY1MjQ2MGExOGZhODcwZWY4YzRjZThkM2EyMmE4MDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC04ODAsNyArODgwLDcgQEAgYm9vbCBIVE1MRWxl
bWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAgICAgcmV0
dXJuIFN0eWxlZEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOwogfQogCi1SZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gSFRNTEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEVsZW1l
bnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0
IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0
ZUZvcigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50
LmgKaW5kZXggNzk0OWQ2MjE2ZTJjOWUwNWU1Y2JhNTBjYjkwZjU3NjNlYjRjYjI5OS4uZGUyYjhi
MzhiNzcyNGZkZTZiMDQ1ZGZjMWZkNzJhMjcxN2I4M2ZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuaApAQCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpZUZvcmJpZHNJbnNl
cnRIVE1MKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJy
aWRlOwogCiAgICAgSFRNTEZvcm1FbGVtZW50KiBmb3JtKCkgY29uc3QgeyByZXR1cm4gdmlydHVh
bEZvcm0oKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNl
dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNw
cAppbmRleCBhMTMzYTUwOGMzNjc2NjhjM2ZlOWFkNzE2ODk2OTUxZDdlN2VjMDFjLi5hYzMzMmU4
NzAyMjYxOGMyZTQ5M2I2OTc3YjA4M2Q1NWFiODZhZDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKQEAgLTE0OSw3ICsxNDksNyBAQCBjb25zdCBBdG9t
aWNTdHJpbmcmIEhUTUxGaWVsZFNldEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiAg
ICAgcmV0dXJuIGZpZWxkc2V0OwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEZp
ZWxkU2V0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBz
dHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MRmllbGRTZXRFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJU
cmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJGaWVsZHNl
dD4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
aWVsZFNldEVsZW1lbnQuaAppbmRleCA2YmM2ZTFjYmY0MDk3OTc2MWM4ZjRmMjBmNzg4NzAzYTgx
ZDBjMjE2Li4wZDRlMzY3MDZmMTZhYzBlYmRjYmVjMDY4OWM5NDBiZWVjZDlkN2Y1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaApAQCAtNTEsNyArNTEsNyBAQCBw
cml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIGlzRW51bWVyYXRhYmxlKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29u
c3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5k
ZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlV2lsbFZhbGlkYXRlKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZWRBdHRyaWJ1dGVDaGFu
Z2VkKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmNwcApp
bmRleCA5ZGIwMjU1MGRkNGUzMDkwMWI0MDg4M2U4NjU4MmY3ZWM4MjBjZmZkLi5hZjFhNTIyYmNh
YzkyMzQyOGEwNTlhMDFlMmRhZDlmY2I3Y2Y1YzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZyYW1lRWxlbWVudC5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgYm9vbCBIVE1MRnJhbWVFbGVtZW50
OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikKICAgICByZXR1cm4gaXNVUkxB
bGxvd2VkKCk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MRnJhbWVFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxGcmFtZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7
CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckZyYW1lPigqdGhpcywgV1RGOjptb3Zl
KHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5oCmluZGV4IGNh
MGFmNzQwZDk2OWVjZGQ0Yjg2Y2MzZjg1Mjk1ZjI5ZjUxMmRiZjQuLjg3Njg4YzA3ZTEzNDQyNjc4
ZTFjOTlmN2E4NjM1YzVmN2E1MWM4NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZyYW1lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxl
bWVudC5oCkBAIC00Miw3ICs0Miw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZEF0
dGFjaFJlbmRlcmVycygpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNO
ZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYm
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRp
b24mKSBvdmVycmlkZTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcAppbmRleCA2NzY2N2Q1NTQy
YzZkY2JkMjRjNWY2YThjYzYzOTdhOWYyMGQ0ZmY5Li4xYjdkZDE4ZDRmNzA0NmZlZjgyOTAwMmY3
NzA3Y2FjYTAwYzQ5ZjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZVNldEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxl
bWVudC5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBAQCBib29sIEhUTUxGcmFtZVNldEVsZW1lbnQ6OnJl
bmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogICAgIHJldHVybiBzdHls
ZS5pc1N0eWxlQXZhaWxhYmxlKCk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1M
RnJhbWVTZXRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYm
IHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxGcmFtZVNldEVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpCiB7CiAgICAgaWYgKHN0eWxlLmdldCgpLmhhc0NvbnRlbnQoKSkKICAg
ICAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgV1RGOjptb3ZlKHN0
eWxlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCmluZGV4IGZi
YjNjYTA2YmFlY2MzZDQ2ZDdmNDZiMzk1MmM0NTM5MGY3NWJkYWIuLjZjZDg1ZGM0N2E1OGIxZTc1
NThhYzA2Y2UwMWFhODRkNjk2ZTEwMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZyYW1lU2V0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1l
U2V0RWxlbWVudC5oCkBAIC01Niw3ICs1Niw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZv
aWQgd2lsbEF0dGFjaFJlbmRlcmVycygpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCByZW5k
ZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJT
dHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJl
ZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVu
dEhhbmRsZXIoRXZlbnQqKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJh
bWVFbGVtZW50LmNwcAppbmRleCA1MzdkMjNlNDRjMDhmZmI0NTVkNDgzODJkNDI5NmQzOGY0NDNi
NmU3Li5lOWQ1NzU5NWVjOWRjNzc5ZTU4MzgwZTQ4ZWNlNTRjNjY0OTM0ZDdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcApAQCAtODksNyArODksNyBAQCBib29s
IEhUTUxJRnJhbWVFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBz
dHlsZSkKICAgICByZXR1cm4gaXNVUkxBbGxvd2VkKCkgJiYgc3R5bGUuZGlzcGxheSgpICE9IE5P
TkU7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MSUZyYW1lRWxlbWVudDo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBIVE1MSUZyYW1lRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAg
ICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVySUZyYW1lPigqdGhpcywgV1RGOjptb3ZlKHN0
eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgKaW5kZXggNTg4
OWExOWEwMWY1N2E3Mjk1YTNkNzRiNjA0NTIzNjExMTI1N2JkMi4uYTJkYmQ1NjRlMWRiZmM5MzY4
MzU1NGYwZTcwZGFhODkzMjJkMDYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSUZyYW1lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVs
ZW1lbnQuaApAQCAtNDQsNyArNDQsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBjb2xs
ZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBvdmVycmlkZTsKIAog
ICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3Zl
cnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHls
ZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFn
ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcApp
bmRleCA4OTk1NGNmNDM1OTc1YjM1YzU3NjlhZDdmY2ZlMGExMzM1ODFiOTc3Li42MmVhNmZjMWM2
OGVkZWYwZWU2YjFmNjk3OGRhODE1MDUwYjc5YmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEltYWdlRWxlbWVudC5jcHAKQEAgLTIwMSw3ICsyMDEsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcm
IEhUTUxJbWFnZUVsZW1lbnQ6OmFsdFRleHQoKSBjb25zdAogICAgIHJldHVybiBmYXN0R2V0QXR0
cmlidXRlKHRpdGxlQXR0cik7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MSW1h
Z2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxl
KQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxJbWFnZUVsZW1lbnQ6OmNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3Np
dGlvbiYpCiB7CiAgICAgaWYgKHN0eWxlLmdldCgpLmhhc0NvbnRlbnQoKSkKICAgICAgICAgcmV0
dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCmluZGV4IDA4YjliYTg1Mzg1MjY2YzU1
YzY2ZGZhODYxMzU3ZGZlMTM4YTIxM2YuLmYwNjU4NDlmMDY1MzE3MjhjYThkNTEwMTAyN2MwOWE5
M2I5N2I2MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCkBAIC0xMDEs
NyArMTAxLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJl
c2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJp
bmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZv
aWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxl
bWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9u
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRCZXN0Rml0VVJMQW5kRFBSRnJvbUltYWdlQ2FuZGlk
YXRlKGNvbnN0IEltYWdlQ2FuZGlkYXRlJik7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuU3RhcnRT
ZWxlY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwCmluZGV4IGVjMjQ3Y2U5OGYyYmY4MDNjNmUzZmMxZTMxNzFjODQxMTcxMGM5MGMu
LjdlMDM3YTkzODA0Mzk1ZTRmOGQ0ZmExNjU4MjM3NjVmMDRmNzg2Y2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtNzcxLDcgKzc3MSw3IEBAIGJvb2wgSFRN
TElucHV0RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUp
CiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5yZW5kZXJlcklzTmVlZGVkKCkgJiYgSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOwogfQogCi1SZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gSFRNTElucHV0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1M
SW5wdXRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0
eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBtX2lucHV0VHlw
ZS0+Y3JlYXRlSW5wdXRSZW5kZXJlcihXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggMjBkYjk2MTRjN2FkZGRkNTZiM2ExOTdlYTc3
NzE0Mzc3ZTA0YjgzZS4uOWIyNzUwNDE5YjRmYzg3Mjk2OTkwZjJmZWM4NThlNTBlOWVkOGFkYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTIwMCw3ICsyMDAsNyBA
QCBwdWJsaWM6CiAgICAgYm9vbCBjYW5IYXZlU2VsZWN0aW9uKCkgY29uc3Q7CiAKICAgICB2aXJ0
dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIGZp
bmFsOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwg
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVy
U3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlIGZpbmFsOwogICAg
IHZpcnR1YWwgdm9pZCB3aWxsQXR0YWNoUmVuZGVyZXJzKCkgb3ZlcnJpZGUgZmluYWw7CiAgICAg
dmlydHVhbCB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZp
cnR1YWwgdm9pZCBkaWREZXRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZSBmaW5hbDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDY0MDRkNDM0YjhjZTZmYWI3ZDZj
NjI2OTA4ODdkZjQxZDFmYjZmY2EuLmU3YjRkZmE4MGEwYzMyYjlhODU5MjA0MThhMDgyMzUyYTRm
ZGU2ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNTc0
LDcgKzU3NCw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAgICAgcmV0dXJuIGNvbnRyb2xzKCkgJiYgSFRNTEVsZW1l
bnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gSFRNTE1lZGlhRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHls
ZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MTWVkaWFFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5k
ZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNZWRp
YT4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuaAppbmRleCAxNDA5ZTZiMGI2MDc0MTExZTYxY2I5MWE2Mzc1MzY5ZDY2YTFjMWU4
Li4wNmE0OGNlNjUzNWI2MTg3ODA2NzhhMzk2MGUzMDVhMjA1MTQ5Y2EwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNDgxLDcgKzQ4MSw3IEBAIHByb3RlY3RlZDoK
ICAgICB2b2lkIGVuZElnbm9yaW5nVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMoKTsKICNlbmRp
ZgogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4m
JiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKICNpZiBFTkFCTEUoTUVE
SUFfQ09OVFJPTFNfU0NSSVBUKQogICAgIGJvb2wgbWVkaWFDb250cm9sc0RlcGVuZE9uUGFnZVNj
YWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYUNvbnRyb2xzRGVwZW5kT25QYWdlU2Nh
bGVGYWN0b3I7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCmluZGV4
IDBkYWQ0MGFiOGZjNjAxN2Q5Yzg4MDE0OWI4N2QxOWVkNWI4ZGU0ZjUuLjIyYjJmMzk4MWUzOTUy
Mzc5M2Y1ZTJiMzFlNmNjNWQyOGJmYTc3ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0
ZXJFbGVtZW50LmNwcApAQCAtNTcsNyArNTcsNyBAQCBSZWY8SFRNTE1ldGVyRWxlbWVudD4gSFRN
TE1ldGVyRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvYwog
ICAgIHJldHVybiBtZXRlcjsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxNZXRl
ckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUp
CitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTE1ldGVyRWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikKIHsKICAgICBpZiAoIWRvY3VtZW50KCkucGFnZSgpLT50aGVtZSgpLnN1cHBvcnRzTWV0
ZXIoc3R5bGUuZ2V0KCkuYXBwZWFyYW5jZSgpKSkKICAgICAgICAgcmV0dXJuIFJlbmRlckVsZW1l
bnQ6OmNyZWF0ZUZvcigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1ldGVyRWxlbWVudC5oCmluZGV4IDU0YWI5ZmNhOTgyYTAyYmE3YjIxYjQ2ODUwYTJmZWU0
MTc2YzkwMDAuLmQyMzY0YjE3YzBkZmU1NDA1YTRkZGIyZGQ5MGFiNTIxNjIyOTA3ZjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5oCkBAIC03MCw3ICs3MCw3IEBAIHByaXZh
dGU6CiAKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydExhYmVscygpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25z
dCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCmluZGV4IDBmNDEyYjJkMzEyZmEyZDJhNzEzOWIz
NmFmODBhZjY5NmVkZGRmMzAuLjIyMDQ2ZWE4NDM1NTZjNDgwZjEzYjc5NTYzMmU3OTNjZmE3NDNh
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCkBAIC0yOTEs
MTAgKzI5MSwxMCBAQCBOUE9iamVjdCogSFRNTFBsdWdJbkVsZW1lbnQ6OmdldE5QT2JqZWN0KCkK
IAogI2VuZGlmIC8qIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKSAqLwogCi1SZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gSFRNTFBsdWdJbkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFBs
dWdJbkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5
bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYgaW5zZXJ0aW9uUG9zaXRpb24pCiB7CiAgICAg
aWYgKG1fcGx1Z2luUmVwbGFjZW1lbnQgJiYgbV9wbHVnaW5SZXBsYWNlbWVudC0+d2lsbENyZWF0
ZVJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVybiBtX3BsdWdpblJlcGxhY2VtZW50LT5jcmVhdGVF
bGVtZW50UmVuZGVyZXIoKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOworICAgICAgICByZXR1cm4g
bV9wbHVnaW5SZXBsYWNlbWVudC0+Y3JlYXRlRWxlbWVudFJlbmRlcmVyKCp0aGlzLCBXVEY6Om1v
dmUoc3R5bGUpLCBpbnNlcnRpb25Qb3NpdGlvbik7CiAKICAgICByZXR1cm4gY3JlYXRlUmVuZGVy
ZXI8UmVuZGVyRW1iZWRkZWRPYmplY3Q+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaAppbmRleCA4YTc1YmJlNzViOGIxZmJj
MGJhOWY4MjMyNjllYzhmZWNhZjJkNWRjLi42Mjk0ZDE0ZGRkZjg2MGNiYmJhZDY4NmUxMmVmY2Mx
MTdmN2Y2NmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oCkBAIC0x
MDMsNyArMTAzLDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRI
YW5kbGVyKEV2ZW50Kikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgcmVxdWVzdE9iamVj
dChjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgVmVjdG9y
PFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcyk7
Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwg
Y29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCopIG92ZXJyaWRlOwogCiAgICAgLy8g
U3ViY2xhc3NlcyBzaG91bGQgdXNlIGd1YXJkZWREaXNwYXRjaEJlZm9yZUxvYWRFdmVudCBpbnN0
ZWFkIG9mIGNhbGxpbmcgZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQgZGlyZWN0bHkuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAppbmRleCA4M2YxYjdl
NjBlNzMxOTNhZWQwMWMxN2Y1MTRhZTBiNWQ5MDBjMzYzLi4xMTkwNTEzYTlmZGU0MzE3NmE1Y2Zh
NGEzNmY0ODIyMTliMTMwYWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJ
bkltYWdlRWxlbWVudC5jcHAKQEAgLTE4OSwxMiArMTg5LDEyIEBAIGJvb2wgSFRNTFBsdWdJbklt
YWdlRWxlbWVudDo6d291bGRMb2FkQXNOZXRzY2FwZVBsdWdpbihjb25zdCBTdHJpbmcmIHVybCwg
Y29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBI
VE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0
eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNv
bnN0IFJlbmRlclRyZWVQb3NpdGlvbiYgaW5zZXJ0aW9uUG9zaXRpb24pCiB7CiAgICAgQVNTRVJU
KCFkb2N1bWVudCgpLmluUGFnZUNhY2hlKCkpOwogCiAgICAgaWYgKGRpc3BsYXlTdGF0ZSgpID49
IFByZXBhcmluZ1BsdWdpblJlcGxhY2VtZW50KQotICAgICAgICByZXR1cm4gSFRNTFBsdWdJbkVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihXVEY6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAg
cmV0dXJuIEhUTUxQbHVnSW5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoV1RGOjptb3Zl
KHN0eWxlKSwgaW5zZXJ0aW9uUG9zaXRpb24pOwogCiAgICAgLy8gT25jZSBhIFBsdWdJbiBFbGVt
ZW50IGNyZWF0ZXMgaXRzIHJlbmRlcmVyLCBpdCBuZWVkcyB0byBiZSB0b2xkIHdoZW4gdGhlIERv
Y3VtZW50IGdvZXMKICAgICAvLyBpbmFjdGl2ZSBvciByZWFjdGl2YXRlcyBzbyBpdCBjYW4gY2xl
YXIgdGhlIHJlbmRlcmVyIGJlZm9yZSBnb2luZyBpbnRvIHRoZSBwYWdlIGNhY2hlLgpAQCAtMjE4
LDcgKzIxOCw3IEBAIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlCiAgICAgaWYgKGlzSW1hZ2VUeXBl
KCkpCiAgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJJbWFnZT4oKnRoaXMsIFdU
Rjo6bW92ZShzdHlsZSkpOwogCi0gICAgcmV0dXJuIEhUTUxQbHVnSW5FbGVtZW50OjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIoV1RGOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIEhUTUxQbHVnSW5F
bGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoV1RGOjptb3ZlKHN0eWxlKSwgaW5zZXJ0aW9u
UG9zaXRpb24pOwogfQogCiBib29sIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmNoaWxkU2hvdWxk
Q3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYgY2hpbGQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oCmluZGV4IDlmMjhlMmVlODZkMWE5MmE3YWQy
YTg1ZDFlYzE3Y2RkMjVlYjY4YzEuLmUwNDk1Yjc0ZDI0YzdhZTdhNzVkNmFlNDVkM2FjNDZlODVm
M2I1MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5o
CkBAIC0xMTcsNyArMTE3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoUGFy
c2luZ0NoaWxkcmVuKCkgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIGRpZEFkZFVz
ZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCopIG92ZXJyaWRlIGZpbmFsOwogCi0gICAgdmly
dHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxS
ZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVu
ZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxk
Q3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
Ym9vbCB3aWxsUmVjYWxjU3R5bGUoU3R5bGU6OkNoYW5nZSkgb3ZlcnJpZGUgZmluYWw7CiAgICAg
dmlydHVhbCB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIG92ZXJyaWRlIGZpbmFsOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKaW5kZXggMDEyYzZkZjEyOTgx
MGM3NGRjNmY0NGE2MjA0NGY1MzNkZWRkZDdjMy4uODdmMGUzNzBjYTAyYzNhYzliYjE0NmZiOWJk
MDc2ZWJiNGE0ODUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jl
c3NFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1l
bnQuY3BwCkBAIC01Niw3ICs1Niw3IEBAIFJlZjxIVE1MUHJvZ3Jlc3NFbGVtZW50PiBIVE1MUHJv
Z3Jlc3NFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtCiAgICAgcmV0
dXJuIHByb2dyZXNzOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFByb2dyZXNz
RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkK
K1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9z
aXRpb24mKQogewogICAgIGlmICghc3R5bGUuZ2V0KCkuaGFzQXBwZWFyYW5jZSgpKQogICAgICAg
ICByZXR1cm4gUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgKaW5kZXggZjdkYzBj
MGFhMjM0N2IzZjI2MmZmOTEzODA1ZDcwYjJjNjhiNWE1ZC4uYjdiNDVhNTlhYWQ5NDU0YjgxMmZh
MDNkMDM4OWVlNWE4YTMyMzFhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UHJvZ3Jlc3NFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NF
bGVtZW50LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkQXBwZWFySW5kZXRlcm1pbmF0ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0TGFiZWxzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAg
dmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3Qg
UmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hv
dWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIFJlbmRl
clByb2dyZXNzKiByZW5kZXJQcm9ncmVzcygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxSVEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFJU
RWxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3MjA1NWRlN2U0MWQ0YTE0NjZkMDUyNDFlZmUxZDJjMTAx
NjIyZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxSVEVsZW1l
bnQuaApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBIVE1MUlRFbGVtZW50
X2gKKyNkZWZpbmUgSFRNTFJURWxlbWVudF9oCisKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIlJlbmRlclJ1YnkuaCIKKyNpbmNsdWRl
ICJSZW5kZXJSdWJ5VGV4dC5oIgorI2luY2x1ZGUgIlJlbmRlclRyZWVQb3NpdGlvbi5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEhUTUxSVEVsZW1lbnQgZmluYWwgOiBwdWJsaWMg
SFRNTEVsZW1lbnQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8SFRNTFJURWxlbWVudD4gY3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxSVEVsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgSFRNTFJURWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgICAgIDogSFRN
TEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCisgICAgeworICAgICAgICBBU1NFUlQoaGFzVGFn
TmFtZShIVE1MTmFtZXM6OnJ0VGFnKSk7CisgICAgfQorCisgICAgdmlydHVhbCBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwg
Y29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7Cit9OworCisKK2lubGluZSBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFJURWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJiBpbnNl
cnRpb25Qb3NpdGlvbikKK3sKKyAgICAvLyA/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/IHJlbmRlciB0cmVl
IHN0cnVjdHVyZSByZXF1aXJlcyBibGFoIGJsYWggdHJlYXQgPHJ0PiBhcyBydWJ5IHRleHQgT05M
WSBpZiB0aGUgcGFyZW50IGlzIHJ1YnkuCisgICAgaWYgKGlzUnVieSgmaW5zZXJ0aW9uUG9zaXRp
b24ucGFyZW50KCkpKQorICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyUnVieVRl
eHQ+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihXVEY6Om1vdmUoc3R5bGUpLCBpbnNlcnRpb25Qb3NpdGlvbik7
Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxS
dWJ5RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUnVieUVsZW1lbnQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lNDI3Mzg1MTUxNjU3YWUzNGM2YmFlZjA5NTQ4YTI4ZDUyZmY2ZjcwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUnVieUVsZW1lbnQuaApAQCAtMCww
ICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBIVE1MUnVieUVsZW1lbnRfaAorI2RlZmlu
ZSBIVE1MUnVieUVsZW1lbnRfaAorCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJSZW5kZXJSdWJ5LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSFRNTFJ1YnlF
bGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPEhUTUxSdWJ5RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEhUTUxSdWJ5RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIH0KKworcHJpdmF0ZToK
KyAgICBIVE1MUnVieUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmIGRvY3VtZW50KQorICAgICAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQor
ICAgIHsKKyAgICAgICAgQVNTRVJUKGhhc1RhZ05hbWUoSFRNTE5hbWVzOjpydWJ5VGFnKSk7Cisg
ICAgfQorCisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikg
b3ZlcnJpZGU7Cit9OworCisKK2lubGluZSBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFJ1
YnlFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxl
LCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mIGluc2VydGlvblBvc2l0aW9uKQoreworICAgIGlm
IChzdHlsZS5nZXQoKS5kaXNwbGF5KCkgPT0gSU5MSU5FKQorICAgICAgICByZXR1cm4gY3JlYXRl
UmVuZGVyZXI8UmVuZGVyUnVieUFzSW5saW5lPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7Cisg
ICAgaWYgKHN0eWxlLmdldCgpLmRpc3BsYXkoKSA9PSBCTE9DSyB8fCBzdHlsZS5nZXQoKS5kaXNw
bGF5KCkgPT0gSU5MSU5FX0JMT0NLKQorICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVu
ZGVyUnVieUFzQmxvY2s+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gSFRN
TEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihXVEY6Om1vdmUoc3R5bGUpLCBpbnNlcnRp
b25Qb3NpdGlvbik7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuY3BwCmluZGV4IDhiODc5M2FmYmNlODQ1NGU4MmI2NDgxNzkwNTZhODk5NTU4
YWUyNTQuLmQ1MDVmM2YxMGEwYzQ4NTI0NDU4Yjk0NTRkNGVlYmQ0Yzk1N2Q3NzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCkBAIC0zNTAsNyArMzUwLDcgQEAg
Ym9vbCBIVE1MU2VsZWN0RWxlbWVudDo6Y2FuU2VsZWN0QWxsKCkgY29uc3QKICAgICByZXR1cm4g
IXVzZXNNZW51TGlzdCgpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFNlbGVj
dEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUp
CitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFNlbGVjdEVsZW1lbnQ6OmNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3Np
dGlvbiYpCiB7CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBpZiAodXNlc01lbnVMaXN0KCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKaW5kZXggODg3YTA2YTZiMGVmZjY0
MTMzOTNmNzU3MGNlMDE0ZDI0M2ZjNzY0Mi4uYTE1NWRmMGFiNzkwMTlhYjViYTE2MmNmODZkNWQ5
MDUwNDJmYTUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaApAQCAt
MTM4LDcgKzEzOCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9u
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZp
cnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBv
dmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0
eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkgb3ZlcnJpZGU7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgcmVzZXQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFN1bW1hcnlFbGVtZW50LmNwcAppbmRleCBhMDFjMDEyM2FlZTc4ZWRmMDYwZDY1NjRkNmNjYThm
ODNlMzBhODMxLi4xYzRjYzNiOTY5NzRlYzMyODcwYjgxMjE4MWQ5NmQ0MTVlZTRlMjM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCkBAIC02NSw3ICs2NSw3
IEBAIEhUTUxTdW1tYXJ5RWxlbWVudDo6SFRNTFN1bW1hcnlFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoc3VtbWFy
eVRhZykpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFN1bW1hcnlFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikK
IHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyQmxvY2tGbG93PigqdGhpcywgV1RG
Ojptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
dW1tYXJ5RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQu
aAppbmRleCAyMzNhYTQyZWRkNjVmMjlmMTZmOGVkNWQ2OGY3YTY4ZDBjNzAwNDNmLi40ODA5Y2U0
NDU1YzRjNDQ2N2RkMGE5N2QzYTUxYjYwNTU5NmY2Mjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFN1bW1hcnlFbGVtZW50LmgKQEAgLTM3LDcgKzM3LDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBIVE1MU3VtbWFyeUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7
CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYm
LCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wg
Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBvdmVycmlkZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgppbmRleCAwZDA5ODVkMGNmZjhjMmFhODE1MTkz
NjAxNDhhZDJhNWQ1OTc2MzIyLi5kZWY1ODhhYzAxY2E5MzRlNTgyZGMyNzI1YmUwOGM0NTdhMWI0
NzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgpAQCAtMTAzLDkgKzEwMyw5IEBA
IHByb2dyZXNzIGludGVyZmFjZU5hbWU9SFRNTFByb2dyZXNzRWxlbWVudAogcSBpbnRlcmZhY2VO
YW1lPUhUTUxRdW90ZUVsZW1lbnQKIHJiIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIHJwIGlu
dGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKLXJ0IGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKK3J0
IGludGVyZmFjZU5hbWU9SFRNTFJURWxlbWVudCwgSlNJbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50
CiBydGMgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotcnVieSBpbnRlcmZhY2VOYW1lPUhUTUxF
bGVtZW50CitydWJ5IGludGVyZmFjZU5hbWU9SFRNTFJ1YnlFbGVtZW50LCBKU0ludGVyZmFjZU5h
bWU9SFRNTEVsZW1lbnQKIHMgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogc2FtcCBpbnRlcmZh
Y2VOYW1lPUhUTUxFbGVtZW50CiBzY3JpcHQgY29uc3RydWN0b3JOZWVkc0NyZWF0ZWRCeVBhcnNl
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKaW5kZXggYmIz
YjQ1MmRhYWYzNWUzMzhmMGRkYzlmN2E1NzVhMjQ4ZTJlZDliZC4uNGE5NjRmOGZhZjc2NWM5OGU4
YmJmYjlkZjQ0YjVhYjI2YWQ1ZTk3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEFyZWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
QXJlYUVsZW1lbnQuY3BwCkBAIC0yMDksNyArMjA5LDcgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
aWMKICAgICAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5h
bWUsIHZhbHVlKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxUZXh0QXJlYUVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFRleHRBcmVhRWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyVGV4dENvbnRyb2xNdWx0
aUxpbmU+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEFyZWFFbGVtZW50LmgKaW5kZXggZDQ1NmYxYmE3NWIwZDhlZWJjZTA4NjkzNTU2MjUx
NGFhZTRjNDAwNC4uYzM1OGNjMTAzMDFmMTgyN2IxZjljMDhhYjFkZGUzOGQ2NDIwZDU3YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKQEAgLTEwMSw3ICsxMDEs
NyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBi
b29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxl
U3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBib29sIGFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYsIGJv
b2wpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZXNldCgpIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgYm9vbCBoYXNDdXN0b21Gb2N1c0xvZ2ljKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAppbmRleCBhZjJhNTk4ODk1Yzk4OGM2MzE1
MzU4MmJkOTM1MTNlMzcwMDczN2VjLi4yOTlkNzI0OTFkYWZiM2MzZjM4MzFjYWZlOTBlN2YwNjRh
NmU2OTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKQEAgLTY4
LDcgKzY4LDcgQEAgYm9vbCBIVE1MVmlkZW9FbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0
IFJlbmRlclN0eWxlJiBzdHlsZSkKICAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OnJlbmRlcmVySXNO
ZWVkZWQoc3R5bGUpOyAKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxWaWRlb0Vs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFZpZGVvRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9u
JikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyVmlkZW8+KCp0aGlzLCBXVEY6
Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZp
ZGVvRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKaW5k
ZXggOWYzZDE5Y2M0MmMzMzQwN2FjNGEzOGJjOTJmMWY5ZjcyNzVmNTY2OC4uZThkNmNkOTAwNjYy
Mjk3ZGNjMzc3Zjc2YjliNGMwNWVkMGM2NTgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlk
ZW9FbGVtZW50LmgKQEAgLTc2LDcgKzc2LDcgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkRGlz
cGxheVBvc3RlckltYWdlKCkgY29uc3QgeyByZXR1cm4gZGlzcGxheU1vZGUoKSA9PSBQb3N0ZXIg
fHwgZGlzcGxheU1vZGUoKSA9PSBQb3N0ZXJXYWl0aW5nRm9yVmlkZW87IH0KIAogICAgIFVSTCBw
b3N0ZXJJbWFnZVVSTCgpIGNvbnN0OwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRl
OwogCiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogICAgIGJvb2wgd2Via2l0
U3VwcG9ydHNQcmVzZW50YXRpb25Nb2RlKGNvbnN0IFN0cmluZyYpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MV0JSRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxXQlJFbGVtZW50LmNwcAppbmRleCBmZjFkYjZkOTY3MGU4NzQ3M2VhNGZhZTE1
YzM5N2U1MTVlOTlkMGI3Li40ZTllNjMwZjM0ZWQ0ZWM2MzE3ZmY5NjM1MzMzZjE1ZTdmM2IwZWNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxXQlJFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxXQlJFbGVtZW50LmNwcApAQCAtNDQsNyArNDQsNyBA
QCBIVE1MV0JSRWxlbWVudDo6SFRNTFdCUkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIEFTU0VSVChoYXNUYWdOYW1lKHdiclRhZykp
OwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFdCUkVsZW1lbnQ6OmNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gSFRNTFdCUkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVy
U3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJu
IGNyZWF0ZVJlbmRlcmVyPFJlbmRlckxpbmVCcmVhaz4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MV0JSRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MV0JSRWxlbWVudC5oCmluZGV4IDM1MjMzM2Y4ZThkNGE4
NjNjNWE1ZmZjYzY3NTM5MWY2NzFkYmJjMTQuLjcwNDc1MTZhNzBiOWVhMjg5NDAyYmI2YzUwZmYw
YTk5ZDNkMGE0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFdCUkVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxXQlJFbGVtZW50LmgKQEAgLTM3LDcg
KzM3LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MV0JSRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJy
aWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwCmluZGV4IGI0OTZhOTA0ZWEz
ZDZmOTM1YTljMDY0M2JlOGVjY2U1ZTllYzg3NzUuLjY3NmIxZWNmZmY5YmQzODZkNDJhOWU5MjI2
ZWNkMWNkOGNhNGVmMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Rl
dGFpbHNNYXJrZXJDb250cm9sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
ZXRhaWxzTWFya2VyQ29udHJvbC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgRGV0YWlsc01hcmtlckNv
bnRyb2w6OkRldGFpbHNNYXJrZXJDb250cm9sKERvY3VtZW50JiBkb2N1bWVudCkKICAgICBzZXRQ
c2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LWRldGFpbHMtbWFya2VyIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
RGV0YWlsc01hcmtlckNvbnRyb2w6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gRGV0YWlsc01hcmtlckNvbnRy
b2w6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0
IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRl
ckRldGFpbHNNYXJrZXI+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5oCmluZGV4IDQ3YWIw
ZDMzZjc5NTVjOWFkZTA0ODAyOTRkNjZiZjE2ODBiZTJkOGEuLjFlMmM1NTRlMzdkODQyNDJmMDk0
NjIyMTQ5YTA4ZGRlZGZmMWRjNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvRGV0YWlsc01hcmtlckNvbnRyb2wuaApAQCAtMzQsNyArMzQsNyBAQAogCiAjaW5jbHVkZSAi
SFRNTERpdkVsZW1lbnQuaCIKIAotbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIFdlYkNv
cmUgeyAKIAogY2xhc3MgRGV0YWlsc01hcmtlckNvbnRyb2wgZmluYWwgOiBwdWJsaWMgSFRNTERp
dkVsZW1lbnQgewogcHVibGljOgpAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIERldGFpbHNNYXJrZXJDb250cm9sKERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIFJlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9z
aXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmluZGV4IDJkMzNiODE2ODhlMDFl
NjUzYTBkMjQ2NmJlNTgxMDRjMzU5MDA2NDAuLjlhNzBiNDBiZWY2OWJiZmI2Y2Q3ZjE2MGE1YmQz
YTI5YThiYTZjNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlh
Q29udHJvbEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTMxMCw3ICszMTAsNyBAQCB2b2lkIE1lZGlhQ29udHJv
bFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6c2V0VGltZURpc3BsYXlzSGlkZGVuKGJvb2wgaGlk
ZGVuKQogICAgIH0KIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1lZGlhQ29udHJvbFRp
bWVsaW5lQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJT
dHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xUaW1l
bGluZUNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNy
ZWF0ZVJlbmRlcmVyPFJlbmRlck1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyPigqdGhpcywg
V1RGOjptb3ZlKHN0eWxlKSk7CiB9CkBAIC0zMzAsNyArMzMwLDcgQEAgUGFzc1JlZlB0cjxNZWRp
YUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xWb2x1bWVT
bGlkZXJDb24KICAgICByZXR1cm4gZWxlbWVudC5yZWxlYXNlKCk7CiB9CiAKLVJlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJl
bmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1l
ZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CkBA
IC0xMDg4LDcgKzEwODgsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRh
aW5lckVsZW1lbnQ+IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lcgogICAgIHJldHVybiBl
bGVtZW50LnJlbGVhc2UoKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWVkaWFDb250
cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxS
ZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICBy
ZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudD4oKnRo
aXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmgKaW5kZXggMzljOTk5MGFmYjljZDY5ZDE3MGIwMDA0
MThhY2Y2MjdjNWYyNjU0OS4uMzAxNDgyODFlOGNiMGJiYmNiZDJhMTNjNmQzMGYzODQyZGU1Zjc0
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxl
bWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVt
ZW50cy5oCkBAIC0xMTAsNyArMTEwLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNp
dCBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQoRG9jdW1lbnQmKTsKIAotICAg
IHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0
IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogfTsKIAogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQpAQCAtMTI4LDcgKzEyOCw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFs
IHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIG92ZXJyaWRlOwogCi0gICAgdmlydHVh
bCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5k
ZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVy
VHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiB9OwogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCkBAIC00NTYsNyArNDU2LDcgQEAgcHJpdmF0ZToKIAogICAgIGV4cGxpY2l0IE1lZGlh
Q29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQoRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1
YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEltYWdl
PiBjcmVhdGVUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkltYWdlKCkgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIHRleHRUcmFja1JlcHJlc2VudGF0aW9uQm91bmRzQ2hhbmdlZChjb25zdCBJbnRS
ZWN0Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZXRlclNoYWRvd0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJT
aGFkb3dFbGVtZW50LmNwcAppbmRleCA0MGJkZTExOThiZjRmYWU3NzAxNjU3M2FmYTFjMzk3NTg3
MWZlZjA3Li40MzExYTcwNTllNzhjNDU0MTkzNTlkZDFhZDUzN2FiMmJjNzY5NDAyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5jcHAKQEAg
LTczLDcgKzczLDcgQEAgYm9vbCBNZXRlcklubmVyRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChj
b25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAgICAgcmV0dXJuIHJlbmRlciAmJiAhcmVuZGVyLT50
aGVtZSgpLnN1cHBvcnRzTWV0ZXIocmVuZGVyLT5zdHlsZSgpLmFwcGVhcmFuY2UoKSkgJiYgSFRN
TERpdkVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOwogfQogCi1SZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gTWV0ZXJJbm5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWV0ZXJJbm5l
ckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUs
IGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVy
PFJlbmRlck1ldGVyPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5oCmluZGV4IGU3ZDVlNjFlZjQy
MmJiY2ZjOWE1Mzc4NWNiYThmYmQxNWJmMDg5ZWQuLjNmMTUxZGE1NTA3YmNhYWU2Nzg5OTBmODk0
YTM3NDA0OThhODZlNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
dGVyU2hhZG93RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVy
U2hhZG93RWxlbWVudC5oCkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAgTWV0ZXJJbm5l
ckVsZW1lbnQoRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVk
KGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikg
b3ZlcnJpZGU7CiB9OwogCiBpbmxpbmUgUGFzc1JlZlB0cjxNZXRlcklubmVyRWxlbWVudD4gTWV0
ZXJJbm5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcAppbmRleCAz
MjllZjU2YjVjMTE3MDk3Y2U3M2RkZTdhNmZmYTBiNjBiMjIxNDFmLi42OTI3YjRhNzAxMjU0ZjE2
OWZiMGUyMjMyMTIwM2MzMWZhM2FkMTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgUHJv
Z3Jlc3NJbm5lckVsZW1lbnQ6OlByb2dyZXNzSW5uZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVu
dCkKIHsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFByb2dyZXNzSW5uZXJFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IFByb2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24m
KQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJQcm9ncmVzcz4oKnRoaXMsIFdU
Rjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Q
cm9ncmVzc1NoYWRvd0VsZW1lbnQuaAppbmRleCAzNDAxZmQyNWZjNmQ5Yzk5ZmM0NzAzNjZhY2Iw
OWE5M2E1MWQwZjBmLi5kZGEzZDdmMTZkYWY5YzEyODUxNWJkMmE2NTVkNDA4YWQ4ODFlYWEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1l
bnQuaApAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFByb2dyZXNzSW5u
ZXJFbGVtZW50KERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYp
IG92ZXJyaWRlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
U2xpZGVyVGh1bWJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRl
clRodW1iRWxlbWVudC5jcHAKaW5kZXggNTQ3MDE2NWM5MzQ3ZWI4ZDZiMzVkZDRiMjFlZjQ0NjU4
MWM2NzZhZi4uNjgxNGE1MmIzZGIxYWI4NTk1OGU4MWUzOWM1OTYyYTAyMzAxYTY1MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCkBA
IC0yMTQsNyArMjE0LDcgQEAgdm9pZCBTbGlkZXJUaHVtYkVsZW1lbnQ6OnNldFBvc2l0aW9uRnJv
bVZhbHVlKCkKICAgICAgICAgcmVuZGVyZXIoKS0+c2V0TmVlZHNMYXlvdXQoKTsKIH0KIAotUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNsaWRlclRodW1iRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBTbGlkZXJUaHVtYkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNy
ZWF0ZVJlbmRlcmVyPFJlbmRlclNsaWRlclRodW1iPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7
CiB9CkBAIC02MTUsNyArNjE1LDcgQEAgUGFzc1JlZlB0cjxTbGlkZXJDb250YWluZXJFbGVtZW50
PiBTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3UKICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFNsaWRlckNvbnRhaW5lckVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAot
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAg
ICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU2xpZGVyQ29udGFpbmVyPigqdGhpcywgV1RG
Ojptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9TbGlkZXJUaHVtYkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRl
clRodW1iRWxlbWVudC5oCmluZGV4IDg5ZTdkYzMxZGIwYjU0ZWQ4MDEwZmVhODRkMTk0MzM5MTI5
ODMzOTEuLmRlODYzOTI1Y2RjZmIzNTliNDg5MjNmODVkNDlhYTBjY2FjZGY2MTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCkBAIC02MSw3
ICs2MSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU2xpZGVyVGh1bWJFbGVtZW50KERvY3Vt
ZW50Jik7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0
eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IFJlZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVu
KERvY3VtZW50Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzRGlzYWJsZWRGb3JtQ29u
dHJvbCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBtYXRjaGVzUmVhZFdyaXRl
UHNldWRvQ2xhc3MoKSBjb25zdCBvdmVycmlkZTsKQEAgLTEzMSw3ICsxMzEsNyBAQCBwdWJsaWM6
CiAKIHByaXZhdGU6CiAgICAgU2xpZGVyQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCYpOwotICAg
IHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0
IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWlj
U3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0IG92ZXJyaWRlOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5j
cHAKaW5kZXggZDNkYjkzNjRjYTk0MTRkZjYzYTI0ODZmY2ZhMjdiNWM4ZjAxMjI1NS4uNTliZGYw
MWI4YWJlZDQ1ZGU1OWE3NmVkYzQ2MGM0MWY2OTY3OTA2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCkBAIC01
Niw3ICs1Niw3IEBAIFBhc3NSZWZQdHI8VGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcj4gVGV4dENv
bnRyb2xJbm5lckNvbnRhaW5lcjo6Y3JlYXRlKERvY3VtZW50CiAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBUZXh0Q29udHJvbElubmVyQ29udGFpbmVyKGRvY3VtZW50KSk7CiB9CiAgICAgCi1SZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcjo6Y3JlYXRlRWxl
bWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBUZXh0Q29udHJvbElubmVyQ29udGFpbmVyOjpjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewog
ICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJUZXh0Q29udHJvbElubmVyQ29udGFpbmVy
PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CkBAIC0xMTAsNyArMTEwLDcgQEAgdm9pZCBU
ZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2
ZW50KQogICAgICAgICBIVE1MRGl2RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7
CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1l
bnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVl
UG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJUZXh0Q29udHJv
bElubmVyQmxvY2s+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgKaW5kZXgg
YjI0NzUzNjEyMWRjNWVhNmMyZWY1ZGFiMGU4MzllYzY5MGVlOTU0Zi4uNjY3NGE5ZWRkODVhNzRl
MWNhYzc1ODVkOWVhNDBiMzc3MjM5MmFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgKQEAgLTM5LDcgKzM5LDcgQEAg
cHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRleHRDb250cm9sSW5uZXJDb250YWluZXI+
IGNyZWF0ZShEb2N1bWVudCYpOwogcHJvdGVjdGVkOgogICAgIFRleHRDb250cm9sSW5uZXJDb250
YWluZXIoRG9jdW1lbnQmKTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVm
PFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIH07
CiAKIGNsYXNzIFRleHRDb250cm9sSW5uZXJFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxEaXZF
bGVtZW50IHsKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFRleHRD
b250cm9sSW5uZXJUZXh0RWxlbWVudChEb2N1bWVudCYpOwotICAgIHZpcnR1YWwgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlv
biYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgUmVmUHRyPFJlbmRlclN0eWxlPiBjdXN0b21TdHls
ZUZvclJlbmRlcmVyKFJlbmRlclN0eWxlJiBwYXJlbnRTdHlsZSkgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCBib29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1RleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMu
Y3BwCmluZGV4IDY5NzIzYThkMDFjMTRhNGZlNzVlYjVmN2JjMjc1OTQ5ODgxNzlhMzMuLjlhNmQ0
NDM5NDNiNzMzMWQzM2ZhOTAxZGZlYjNmZWFkMzdlZTk4ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNCdXR0b25F
bGVtZW50TWFjLmNwcApAQCAtMTI1LDcgKzEyNSw3IEBAIHZvaWQgSW1hZ2VDb250cm9sc0J1dHRv
bkVsZW1lbnRNYWM6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogICAgIEhUTUxE
aXZFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKIH0KIAotUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjOjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjOjpjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewog
ICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJJbWFnZUNvbnRyb2xzQnV0dG9uPigqdGhp
cywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5oCmluZGV4
IDUzZDcyYjE4MzM4OWJjMjEwY2JjNjg0OTQ3MmZhNjAzYTFhMGU0NmYuLjEzNGZjMjA4YzdkYjE0
Y2UyNTMzZWI5NDQ3NDNiMDdkOGQ2MTk0NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5o
CkBAIC00Miw3ICs0Miw3IEBAIHByaXZhdGU6CiAgICAgSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1l
bnRNYWMoRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVy
KEV2ZW50Kikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAK
ICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCmlu
ZGV4IGQ1MjcxZWNlYWM0YzY4MGEzYzRhNGJmZjlhNDBhMzMyZjY0OGU4ZDQuLmI2ZWVjY2MwYjQx
ZWMwYmY0OTQ0ZjhmZmY1MjVmYjhhMTI5OGIzZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMu
Y3BwCkBAIC0xMDIsNyArMTAyLDcgQEAgSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjOjp+SW1h
Z2VDb250cm9sc1Jvb3RFbGVtZW50TWFjKCkKIHsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYzo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBJbWFnZUNv
bnRyb2xzUm9vdEVsZW1lbnRNYWM6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNy
ZWF0ZVJlbmRlcmVyPFJlbmRlckltYWdlQ29udHJvbHM+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUp
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNv
bnRyb2xzUm9vdEVsZW1lbnRNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9J
bWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuaAppbmRleCA2MGVjNTMzMzg1M2ViOTU1MGI0NjBj
ODQ3ZTZkMzljNjNmNjE1YThmLi5lMjNmNGUxZmQ5M2IzZjk4YzJkZTlmMzdhNjAyMTZlYzIwOWY2
Njg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250
cm9sc1Jvb3RFbGVtZW50TWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFj
L0ltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5oCkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjKERvY3VtZW50Jik7CiAK
LSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBj
b25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAppbmRleCA1ZjJlYTg1NDBk
ZTBhMWFiNTMwNTAyNzYyNWU3YTI0MjFkODllY2QxLi41YjM1OTJkMTZkNDRjMTE0NTRhMWIzOWI0
NjRjYTFjNTZkMzNlYmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZU
VEN1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCkBAIC0y
MzQsNyArMjM0LDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBWVFRDdWVCb3g6OnZ0dEN1ZUJveFNo
YWRvd1BzZXVkb0lkKCkKICAgICByZXR1cm4gdHJhY2tEaXNwbGF5Qm94U2hhZG93UHNldWRvSWQ7
CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBWVFRDdWVCb3g6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gVlRUQ3VlQm94OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0
eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5k
ZXJlcjxSZW5kZXJWVFRDdWU+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZUVEN1ZS5oCmluZGV4IGNjMWRmYmM1NWIwMDA5ZWVmN2QwOTk5MmE0NTkyMTM2
OTIxOWZlNmMuLmU1MGRjNzE5ZGQyMzk3Njg5Mjk1NmY4YjgyOTM3MmFiNWFmMDY4NGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9WVFRDdWUuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiBwcm90
ZWN0ZWQ6CiAgICAgVlRUQ3VlQm94KERvY3VtZW50JiwgVlRUQ3VlJik7CiAKLSAgICB2aXJ0dWFs
IFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRl
clN0eWxlPiYmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBS
ZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZSBmaW5hbDsKIAogICAgIFZUVEN1ZSYgbV9jdWU7
CiAgICAgaW50IG1fZm9udFNpemVGcm9tQ2FwdGlvblVzZXJQcmVmczsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmNwcAppbmRl
eCA1OWQ1MzU2MjY4ZjhhNDliNzAzMTdlYWE2NTJmNmJiNmFjY2Q2ODU4Li4wY2Y1MDViZTk1OGYy
N2U0NDlhZWY2MDNlNjlmOWVkYjNlZWM1MTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9t
YXRobWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbWF0aG1sL01hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuY3BwCkBAIC02OSw3ICs2OSw3
IEBAIHZvaWQgTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNv
bnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiAgICAgTWF0aE1MRWxlbWVudDo6Y2hpbGRyZW5DaGFu
Z2VkKGNoYW5nZSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxJbmxpbmVD
b250YWluZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYm
IHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1hdGhNTElubGluZUNvbnRhaW5lckVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNv
bnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgaWYgKGhhc1RhZ05hbWUoYW5ub3RhdGlv
bl94bWxUYWcpKQogICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MUm93
PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9t
YXRobWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbWF0
aG1sL01hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuaAppbmRleCAyOTM2OTM2ZmI4YTIxZGEx
ZjgyYTExODAzZmY3NGZhNzNhOWExODhhLi5kNGMzYmJjM2E3ODg2YjIyYmNiYTI3N2Q2YTkzOWEw
ODQ5NDUzZWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MSW5saW5l
Q29udGFpbmVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxJbmxp
bmVDb250YWluZXJFbGVtZW50LmgKQEAgLTQzLDcgKzQzLDcgQEAgcHJvdGVjdGVkOgogICAgIHZv
aWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJik7CiAKIHByaXZhdGU6Ci0gICAg
dmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3Qg
UmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiB9OwogICAgIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5jcHAKaW5kZXggYmRhMTBjMjk2YWU0MWMwZjA5
MDRmODc2ODk5YmVhNjE3MjIyYmIxYy4uZjBjYWFiYzcxOTBjMTRkODcyNTFmNzU5MTg3ZTNkYjFm
NDllNzE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuY3Bw
CkBAIC00Myw3ICs0Myw3IEBAIFJlZjxNYXRoTUxNYXRoRWxlbWVudD4gTWF0aE1MTWF0aEVsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBECiAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgTWF0aE1MTWF0aEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAot
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1hdGhNTE1hdGhFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IE1hdGhNTE1hdGhFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0
eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBj
cmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxNYXRoPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oCmluZGV4IDRhNDEw
MzEwYmQ4MTIyNDY0OTcwN2I0MzhkNTU1ZWY0MzgyOWM3ZWEuLjA0ZWM2OWNiZDYzZjNiZmMwNjBm
Yzc0YjVhMmFjMjUxMDI0ZGNhZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9N
YXRoTUxNYXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRo
RWxlbWVudC5oCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTWF0aE1M
TWF0aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKIAot
ICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNv
bnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogfTsKICAgICAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5jcHAKaW5kZXggMzhjZjlk
ODFjNTY2YmI2MWYyYjcxZGJhMzY2ZWQ0NWM5ZTc2ZDM1Ni4uZDZkYTNiMzU5YzEyMDcyZTIyMWNm
OGFhYjIxMGY5ZWJjNWJmYmZjOCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTE1lbmNsb3NlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhN
TE1lbmNsb3NlRWxlbWVudC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgUmVmPE1hdGhNTE1lbmNsb3Nl
RWxlbWVudD4gTWF0aE1MTWVuY2xvc2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGEKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNYXRoTUxNZW5jbG9zZUVsZW1lbnQodGFn
TmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1hdGhNTE1l
bmNsb3NlRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBz
dHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxNZW5jbG9zZUVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpCiB7ICAgIAogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJN
YXRoTUxNZW5jbG9zZT4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5oCmluZGV4IGMyN2E0Mzk2Y2E0NzM4
NTU0ZTkxMTI1NjhmNmUxNzM3Zjg5YjNhMWEuLjVmNDQyYzM5NDA4NDIxYTk4MjkwNGI0MTBjNDc1
YjA0ODcyZTUwODMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNZW5j
bG9zZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VF
bGVtZW50LmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIE1hdGhN
TE1lbmNsb3NlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKLSAgICB2
aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVm
PFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBS
ZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50
YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRp
ZXMmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5j
cHAKaW5kZXggMDg3ZGZlNjVjNmNhMzliNDE2YjcyODcyYjM1ZWYxM2Y2NDg3MTgwMy4uNWZmYzA2
OWQ0MTEwMzM1OGU5M2YxNDM1Mjk1MzBkNjY1YmRiZWRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmNwcApAQCAtNTEsNyArNTEsNyBAQCBSZWY8TWF0
aE1MU2VsZWN0RWxlbWVudD4gTWF0aE1MU2VsZWN0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1hdGhNTFNlbGVjdEVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IE1hdGhNTFNlbGVjdEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWF0aE1MU2VsZWN0RWxlbWVu
dDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3Qg
UmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVy
TWF0aE1MUm93PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuaAppbmRleCAyMmE2Y2NiNWY1NTc3NzkyZGMxODRm
YzQyNzUxMjVmMzRhOGIxYjhkLi40MjYzYmIzMjZmN2U5MmI3ZmQ1NDhhYzA1MWNjOTQxY2FiYmRi
NWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmgKQEAg
LTQwLDcgKzQwLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIE1hdGhNTFNlbGVjdEVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKLSAgICB2aXJ0dWFs
IFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRl
clN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJU
cmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENy
ZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5jcHAKaW5kZXggMjcxZDY5MmY3NTYxNjUwNDBk
NGFhNGEyOWIyNzcxNTRhMjdhMzg4ZC4uNGQ3YzFjYTg2YWVjZTFiZTE0MzM5ZGJiODhmZWNkYjI0
ZTM1NzBhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuY3Bw
CkBAIC03NSwxNCArNzUsMTQgQEAgdm9pZCBNYXRoTUxUZXh0RWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3QKICAgICBNYXRoTUxF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKLVJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBNYXRoTUxUZXh0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxS
ZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxUZXh0
RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwg
Y29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJiBpbnNlcnRpb25Qb3NpdGlvbikKIHsKICAgICBpZiAo
aGFzVGFnTmFtZShNYXRoTUxOYW1lczo6bW9UYWcpKQogICAgICAgICByZXR1cm4gY3JlYXRlUmVu
ZGVyZXI8UmVuZGVyTWF0aE1MT3BlcmF0b3I+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKICAg
ICBpZiAoaGFzVGFnTmFtZShNYXRoTUxOYW1lczo6bXNwYWNlVGFnKSkKICAgICAgICAgcmV0dXJu
IGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTFNwYWNlPigqdGhpcywgV1RGOjptb3ZlKHN0eWxl
KSk7CiAgICAgaWYgKGhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6OmFubm90YXRpb25UYWcpKQotICAg
ICAgICByZXR1cm4gTWF0aE1MRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFdURjo6bW92
ZShzdHlsZSkpOworICAgICAgICByZXR1cm4gTWF0aE1MRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKFdURjo6bW92ZShzdHlsZSksIGluc2VydGlvblBvc2l0aW9uKTsKIAogICAgIEFTU0VS
VChoYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptaVRhZykgfHwgaGFzVGFnTmFtZShNYXRoTUxOYW1l
czo6bW5UYWcpIHx8IGhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6Om1zVGFnKSB8fCBoYXNUYWdOYW1l
KE1hdGhNTE5hbWVzOjptdGV4dFRhZykpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9t
YXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxU
ZXh0RWxlbWVudC5oCmluZGV4IDY5YjA1NzRiOTFkZjUwYzUyZjdlZjg2NmYzOGJmYTg5NTk3Y2Q4
ZTIuLjFkNWY1Nzg1OGNkZTAzZGYyOTM5ZTNlOTdmZDYwOWYwOTI2MDZjMTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oCkBAIC00Miw3ICs0Miw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgTWF0aE1MVGV4dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUm
KSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29u
c3QgQ2hpbGRDaGFuZ2UmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwCmluZGV4IDVlYzMxNjk2OGZkYzQ2YzY1YzI1YjdmNDI5ODcwNjYzYjcxM2I0NzYu
LjAwYWU2NGQzNWQ1OWQ1M2U0MDFiMTQ0MTIxNWY1N2EwYjZjZjlkZjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtNjIsNiArNjIsNyBAQAogI2luY2x1ZGUg
IlJlbmRlclRhYmxlQ2VsbC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRGcmFnbWVudC5oIgogI2lu
Y2x1ZGUgIlJlbmRlclRoZW1lLmgiCisjaW5jbHVkZSAiUmVuZGVyVHJlZVBvc2l0aW9uLmgiCiAj
aW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNWR1RleHRSdW5SZW5kZXJpbmdDb250
ZXh0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTM4NSw3ICszODYsOCBAQCBSZW5kZXJQ
dHI8UmVuZGVyQmxvY2s+IFJlbmRlckJsb2NrOjpjbG9uZSgpIGNvbnN0CiAgICAgICAgIGNsb25l
QmxvY2sgPSBSZW5kZXJQdHI8UmVuZGVyQmxvY2s+KGNyZWF0ZUFub255bW91c0Jsb2NrKCkpOwog
ICAgICAgICBjbG9uZUJsb2NrLT5zZXRDaGlsZHJlbklubGluZShjaGlsZHJlbklubGluZSgpKTsK
ICAgICB9IGVsc2UgewotICAgICAgICBjbG9uZUJsb2NrID0gc3RhdGljX3BvaW50ZXJfY2FzdDxS
ZW5kZXJCbG9jaz4oZWxlbWVudCgpLT5jcmVhdGVFbGVtZW50UmVuZGVyZXIoc3R5bGUoKSkpOwor
ICAgICAgICBSZW5kZXJUcmVlUG9zaXRpb24gaW5zZXJ0aW9uUG9zaXRpb24oKnBhcmVudCgpKTsK
KyAgICAgICAgY2xvbmVCbG9jayA9IHN0YXRpY19wb2ludGVyX2Nhc3Q8UmVuZGVyQmxvY2s+KGVs
ZW1lbnQoKS0+Y3JlYXRlRWxlbWVudFJlbmRlcmVyKHN0eWxlKCksIGluc2VydGlvblBvc2l0aW9u
KSk7CiAgICAgICAgIGNsb25lQmxvY2stPmluaXRpYWxpemVTdHlsZSgpOwogCiAgICAgICAgIC8v
IFRoaXMgdGFrZXMgY2FyZSBvZiBzZXR0aW5nIHRoZSByaWdodCB2YWx1ZSBvZiBjaGlsZHJlbklu
bGluZSBpbiBjYXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAK
aW5kZXggN2FmOTZlMTY1YmVmMGU0OTYzODExZGVmNjI3MzFkNjY4ZTQwZjQ3ZS4uZDU4NGYyY2Mz
MzEzNjRlMzdhZDE1Y2E3YTIyNzE0ZjM5NWMxODAxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbGVtZW50LmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIlJlbmRl
ckZsZXhpYmxlQm94LmgiCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRlICJSZW5k
ZXJJbWFnZVJlc291cmNlU3R5bGVJbWFnZS5oIgorI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgog
I2luY2x1ZGUgIlJlbmRlckl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNp
bmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKQEAgLTUwLDggKzUxLDYgQEAKICNpbmNs
dWRlICJSZW5kZXJMaXN0SXRlbS5oIgogI2luY2x1ZGUgIlJlbmRlck5hbWVkRmxvd1RocmVhZC5o
IgogI2luY2x1ZGUgIlJlbmRlclJlZ2lvbi5oIgotI2luY2x1ZGUgIlJlbmRlclJ1YnkuaCIKLSNp
bmNsdWRlICJSZW5kZXJSdWJ5VGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclRhYmxlQ2FwdGlvbi5o
IgogI2luY2x1ZGUgIlJlbmRlclRhYmxlQ2VsbC5oIgogI2luY2x1ZGUgIlJlbmRlclRhYmxlQ29s
LmgiCkBAIC0xNTcsMTYgKzE1Niw2IEBAIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBSZW5kZXJF
bGVtZW50OjpjcmVhdGVGb3IoRWxlbWVudCYgZWxlbWVudCwgUmVmPFJlbmRlclN0CiAgICAgICAg
IGltYWdlLT5zZXRJc0dlbmVyYXRlZENvbnRlbnQoKTsKICAgICAgICAgcmV0dXJuIFdURjo6bW92
ZShpbWFnZSk7CiAgICAgfQotCi0gICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShIVE1MTmFtZXM6
OnJ1YnlUYWcpKSB7Ci0gICAgICAgIGlmIChzdHlsZS5nZXQoKS5kaXNwbGF5KCkgPT0gSU5MSU5F
KQotICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclJ1YnlBc0lubGluZT4o
ZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSk7Ci0gICAgICAgIGlmIChzdHlsZS5nZXQoKS5kaXNw
bGF5KCkgPT0gQkxPQ0sgfHwgc3R5bGUuZ2V0KCkuZGlzcGxheSgpID09IElOTElORV9CTE9DSykK
LSAgICAgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJSdWJ5QXNCbG9jaz4oZWxl
bWVudCwgV1RGOjptb3ZlKHN0eWxlKSk7Ci0gICAgfQotICAgIC8vIHRyZWF0IDxydD4gYXMgcnVi
eSB0ZXh0IE9OTFkgaWYgdGhlIHBhcmVudCBpcyBydWJ5LgotICAgIGlmIChlbGVtZW50Lmhhc1Rh
Z05hbWUoSFRNTE5hbWVzOjpydFRhZykgJiYgZWxlbWVudC5wYXJlbnRFbGVtZW50KCkgJiYgaXNS
dWJ5KGVsZW1lbnQucGFyZW50RWxlbWVudCgpLT5yZW5kZXJlcigpKSkKLSAgICAgICAgcmV0dXJu
IGNyZWF0ZVJlbmRlcmVyPFJlbmRlclJ1YnlUZXh0PihlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUp
KTsKICAgICBzd2l0Y2ggKHN0eWxlLmdldCgpLmRpc3BsYXkoKSkgewogICAgIGNhc2UgTk9ORToK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9SZW5kZXJUcmVlUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUmVuZGVyVHJl
ZVBvc2l0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43N2M4YWMwZWM5NzdlYjkxYzg0YWFlNTgzZWYwNzlh
MzE5YzU1OTQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUmVuZGVy
VHJlZVBvc2l0aW9uLmNwcApAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW5kZXJUcmVlUG9zaXRpb24uaCIKKworI2luY2x1ZGUg
Ik5vZGVSZW5kZXJpbmdUcmF2ZXJzYWwuaCIKKyNpbmNsdWRlICJQc2V1ZG9FbGVtZW50LmgiCisj
aW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgorI2luY2x1
ZGUgIlNoYWRvd1Jvb3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZW5kZXJUcmVlUG9z
aXRpb246OlJlbmRlclRyZWVQb3NpdGlvbihSZW5kZXJWaWV3JiByb290KQorICAgIDogbV9wYXJl
bnQocm9vdCkKKyAgICAsIG1faGFzVmFsaWROZXh0U2libGluZyh0cnVlKQoreworfQorCitSZW5k
ZXJUcmVlUG9zaXRpb246OlJlbmRlclRyZWVQb3NpdGlvbihSZW5kZXJFbGVtZW50JiBwYXJlbnQp
CisgICAgOiBtX3BhcmVudChwYXJlbnQpCit7Cit9CisKK1JlbmRlclRyZWVQb3NpdGlvbjo6UmVu
ZGVyVHJlZVBvc2l0aW9uKFJlbmRlckVsZW1lbnQmIHBhcmVudCwgUmVuZGVyT2JqZWN0KiBuZXh0
U2libGluZykKKyAgICA6IG1fcGFyZW50KHBhcmVudCkKKyAgICAsIG1fbmV4dFNpYmxpbmcobmV4
dFNpYmxpbmcpCisgICAgLCBtX2hhc1ZhbGlkTmV4dFNpYmxpbmcodHJ1ZSkKK3sKK30KKwordm9p
ZCBSZW5kZXJUcmVlUG9zaXRpb246OmNvbXB1dGVOZXh0U2libGluZyhjb25zdCBOb2RlJiBub2Rl
KQoreworICAgIEFTU0VSVCghbm9kZS5yZW5kZXJlcigpKTsKKyAgICBpZiAobV9oYXNWYWxpZE5l
eHRTaWJsaW5nKSB7CisgICAgICAgIC8vIFN0b3AgdmFsaWRhdGluZyBhdCBzb21lIHBvaW50IHNv
IHRoZSBhc3NlcnQgZG9lc24ndCBtYWtlIHVzIE8oTl4yKSBvbiBkZWJ1ZyBidWlsZHMuCisgICAg
ICAgIEFTU0VSVChtX3BhcmVudC5pc1JlbmRlclZpZXcoKSB8fCArK21fYXNzZXJ0aW9uTGltaXRD
b3VudGVyID4gMjAgfHwgbmV4dFNpYmxpbmdSZW5kZXJlcihub2RlLCBtX3BhcmVudCkgPT0gbV9u
ZXh0U2libGluZyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbV9uZXh0U2libGluZyA9
IG5leHRTaWJsaW5nUmVuZGVyZXIobm9kZSwgbV9wYXJlbnQpOworICAgIG1faGFzVmFsaWROZXh0
U2libGluZyA9IHRydWU7CisKK30KKwordm9pZCBSZW5kZXJUcmVlUG9zaXRpb246OmludmFsaWRh
dGVOZXh0U2libGluZyhjb25zdCBSZW5kZXJPYmplY3QmIHNpYmxpbmdSZW5kZXJlcikKK3sKKyAg
ICBpZiAoIW1faGFzVmFsaWROZXh0U2libGluZykKKyAgICAgICAgcmV0dXJuOworICAgIGlmICht
X25leHRTaWJsaW5nID09ICZzaWJsaW5nUmVuZGVyZXIpCisgICAgICAgIG1faGFzVmFsaWROZXh0
U2libGluZyA9IGZhbHNlOworfQorCitSZW5kZXJPYmplY3QqIFJlbmRlclRyZWVQb3NpdGlvbjo6
cHJldmlvdXNTaWJsaW5nUmVuZGVyZXIoY29uc3QgVGV4dCYgdGV4dE5vZGUpCit7CisgICAgaWYg
KHRleHROb2RlLnJlbmRlcmVyKCkpCisgICAgICAgIHJldHVybiB0ZXh0Tm9kZS5yZW5kZXJlcigp
LT5wcmV2aW91c1NpYmxpbmcoKTsKKyAgICBmb3IgKE5vZGUqIHNpYmxpbmcgPSBOb2RlUmVuZGVy
aW5nVHJhdmVyc2FsOjpwcmV2aW91c1NpYmxpbmcoJnRleHROb2RlKTsgc2libGluZzsgc2libGlu
ZyA9IE5vZGVSZW5kZXJpbmdUcmF2ZXJzYWw6OnByZXZpb3VzU2libGluZyhzaWJsaW5nKSkgewor
ICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gc2libGluZy0+cmVuZGVyZXIoKTsKKyAg
ICAgICAgaWYgKHJlbmRlcmVyICYmICFSZW5kZXJUcmVlUG9zaXRpb246OmlzUmVuZGVyZXJSZXBh
cmVudGVkKCpyZW5kZXJlcikpCisgICAgICAgICAgICByZXR1cm4gcmVuZGVyZXI7CisgICAgfQor
ICAgIGlmIChQc2V1ZG9FbGVtZW50KiBiZWZvcmUgPSB0ZXh0Tm9kZS5wYXJlbnRFbGVtZW50KCkt
PmJlZm9yZVBzZXVkb0VsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGJlZm9yZS0+cmVuZGVyZXIo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVuZGVyT2JqZWN0KiBSZW5kZXJUcmVlUG9z
aXRpb246Om5leHRTaWJsaW5nUmVuZGVyZXIoY29uc3QgTm9kZSYgbm9kZSwgY29uc3QgUmVuZGVy
RWxlbWVudCYgcGFyZW50UmVuZGVyZXIpCit7CisgICAgaWYgKCFwYXJlbnRSZW5kZXJlci5lbGVt
ZW50KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmIChub2RlLmlzQWZ0ZXJQc2V1
ZG9FbGVtZW50KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIE5vZGUqIHNpYmxpbmcg
PSBub2RlLmlzQmVmb3JlUHNldWRvRWxlbWVudCgpID8gTm9kZVJlbmRlcmluZ1RyYXZlcnNhbDo6
Zmlyc3RDaGlsZChwYXJlbnRSZW5kZXJlci5lbGVtZW50KCkpIDogTm9kZVJlbmRlcmluZ1RyYXZl
cnNhbDo6bmV4dFNpYmxpbmcoJm5vZGUpOworICAgIGZvciAoOyBzaWJsaW5nOyBzaWJsaW5nID0g
Tm9kZVJlbmRlcmluZ1RyYXZlcnNhbDo6bmV4dFNpYmxpbmcoc2libGluZykpIHsKKyAgICAgICAg
UmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IHNpYmxpbmctPnJlbmRlcmVyKCk7CisgICAgICAgIGlm
IChyZW5kZXJlciAmJiAhaXNSZW5kZXJlclJlcGFyZW50ZWQoKnJlbmRlcmVyKSkKKyAgICAgICAg
ICAgIHJldHVybiByZW5kZXJlcjsKKyAgICB9CisgICAgaWYgKFBzZXVkb0VsZW1lbnQqIGFmdGVy
ID0gcGFyZW50UmVuZGVyZXIuZWxlbWVudCgpLT5hZnRlclBzZXVkb0VsZW1lbnQoKSkKKyAgICAg
ICAgcmV0dXJuIGFmdGVyLT5yZW5kZXJlcigpOworICAgIHJldHVybiBudWxscHRyOworfQorCiti
b29sIFJlbmRlclRyZWVQb3NpdGlvbjo6aXNSZW5kZXJlclJlcGFyZW50ZWQoY29uc3QgUmVuZGVy
T2JqZWN0JiByZW5kZXJlcikKK3sKKyAgICBpZiAoIXJlbmRlcmVyLm5vZGUoKS0+aXNFbGVtZW50
Tm9kZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKHJlbmRlcmVyLnN0eWxlKCku
aGFzRmxvd0ludG8oKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SZW5kZXJUcmVlUG9zaXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1JlbmRlclRyZWVQb3NpdGlvbi5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjVmYjE1MTNmNGRhZTBmZWM5Y2E3NDE0NWRmNmZjM2M2NWEyZmU5NTEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SZW5kZXJUcmVlUG9zaXRpb24uaApAQCAtMCww
ICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSZW5kZXJUcmVlUG9zaXRpb25faAorI2Rl
ZmluZSBSZW5kZXJUcmVlUG9zaXRpb25faAorCisjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgor
I2luY2x1ZGUgIlJlbmRlclRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBS
ZW5kZXJUcmVlUG9zaXRpb24geworcHVibGljOgorICAgIGV4cGxpY2l0IFJlbmRlclRyZWVQb3Np
dGlvbihSZW5kZXJWaWV3Jik7CisgICAgZXhwbGljaXQgUmVuZGVyVHJlZVBvc2l0aW9uKFJlbmRl
ckVsZW1lbnQmIHBhcmVudCk7CisgICAgUmVuZGVyVHJlZVBvc2l0aW9uKFJlbmRlckVsZW1lbnQm
IHBhcmVudCwgUmVuZGVyT2JqZWN0KiBuZXh0U2libGluZyk7CisKKyAgICBSZW5kZXJFbGVtZW50
JiBwYXJlbnQoKSB7IHJldHVybiBtX3BhcmVudDsgfQorICAgIGNvbnN0IFJlbmRlckVsZW1lbnQm
IHBhcmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50OyB9CisKKyAgICB2b2lkIGluc2VydChS
ZW5kZXJPYmplY3QmKTsKKyAgICBib29sIGNhbkluc2VydChSZW5kZXJFbGVtZW50JikgY29uc3Q7
CisgICAgYm9vbCBjYW5JbnNlcnQoUmVuZGVyVGV4dCYpIGNvbnN0OworCisgICAgdm9pZCBjb21w
dXRlTmV4dFNpYmxpbmcoY29uc3QgTm9kZSYpOworICAgIHZvaWQgaW52YWxpZGF0ZU5leHRTaWJs
aW5nKGNvbnN0IFJlbmRlck9iamVjdCYpOworCisgICAgc3RhdGljIFJlbmRlck9iamVjdCogcHJl
dmlvdXNTaWJsaW5nUmVuZGVyZXIoY29uc3QgVGV4dCYpOworICAgIHN0YXRpYyBSZW5kZXJPYmpl
Y3QqIG5leHRTaWJsaW5nUmVuZGVyZXIoY29uc3QgTm9kZSYsIGNvbnN0IFJlbmRlckVsZW1lbnQm
IHBhcmVudFJlbmRlcmVyKTsKKyAgICBzdGF0aWMgYm9vbCBpc1JlbmRlcmVyUmVwYXJlbnRlZChj
b25zdCBSZW5kZXJPYmplY3QmKTsKKworcHJpdmF0ZToKKyAgICBSZW5kZXJFbGVtZW50JiBtX3Bh
cmVudDsKKyAgICBSZW5kZXJPYmplY3QqIG1fbmV4dFNpYmxpbmcgeyBudWxscHRyIH07CisgICAg
Ym9vbCBtX2hhc1ZhbGlkTmV4dFNpYmxpbmcgeyBmYWxzZSB9OworI2lmICFBU1NFUlRfRElTQUJM
RUQKKyAgICB1bnNpZ25lZCBtX2Fzc2VydGlvbkxpbWl0Q291bnRlciB7IDAgfTsKKyNlbmRpZgor
fTsKKworCitpbmxpbmUgYm9vbCBSZW5kZXJUcmVlUG9zaXRpb246OmNhbkluc2VydChSZW5kZXJF
bGVtZW50JiByZW5kZXJlcikgY29uc3QKK3sKKyAgICBBU1NFUlQoIXJlbmRlcmVyLnBhcmVudCgp
KTsKKyAgICByZXR1cm4gbV9wYXJlbnQuaXNDaGlsZEFsbG93ZWQocmVuZGVyZXIsIHJlbmRlcmVy
LnN0eWxlKCkpOworfQorCitpbmxpbmUgYm9vbCBSZW5kZXJUcmVlUG9zaXRpb246OmNhbkluc2Vy
dChSZW5kZXJUZXh0JiByZW5kZXJlcikgY29uc3QKK3sKKyAgICBBU1NFUlQoIXJlbmRlcmVyLnBh
cmVudCgpKTsKKyAgICByZXR1cm4gbV9wYXJlbnQuaXNDaGlsZEFsbG93ZWQocmVuZGVyZXIsIG1f
cGFyZW50LnN0eWxlKCkpOworfQorCitpbmxpbmUgdm9pZCBSZW5kZXJUcmVlUG9zaXRpb246Omlu
c2VydChSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQoreworICAgIEFTU0VSVChtX2hhc1ZhbGlkTmV4
dFNpYmxpbmcpOworICAgIG1fcGFyZW50LmFkZENoaWxkKCZyZW5kZXJlciwgbV9uZXh0U2libGlu
Zyk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVJlc29sdmVUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZVRy
ZWUuY3BwCmluZGV4IDA3ZWZhNWY5NzVlZWUyZGM5MjI0Yzk3ZWI0YzE5ODMxZDk5ZjNmY2QuLjMy
NGNmYmE4MGNmZDJhNjFlYzY3N2Q5NDMyMGM2NTU5OWE4NzVkN2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuY3BwCkBAIC00Miw3ICs0Miw3IEBACiAjaW5jbHVkZSAi
UmVuZGVyRnVsbFNjcmVlbi5oIgogI2luY2x1ZGUgIlJlbmRlck5hbWVkRmxvd1RocmVhZC5oIgog
I2luY2x1ZGUgIlJlbmRlclRleHQuaCIKLSNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCisjaW5jbHVk
ZSAiUmVuZGVyVHJlZVBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5j
bHVkZSAiUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAg
LTYyLDMxICs2Miw2IEBAIG5hbWVzcGFjZSBTdHlsZSB7CiAKIGVudW0gRGV0YWNoVHlwZSB7IE5v
cm1hbERldGFjaCwgUmVhdHRhY2hEZXRhY2ggfTsKIAotY2xhc3MgUmVuZGVyVHJlZVBvc2l0aW9u
IHsKLXB1YmxpYzoKLSAgICBleHBsaWNpdCBSZW5kZXJUcmVlUG9zaXRpb24oUmVuZGVyVmlldyYp
OwotICAgIGV4cGxpY2l0IFJlbmRlclRyZWVQb3NpdGlvbihSZW5kZXJFbGVtZW50JiBwYXJlbnQp
OwotICAgIFJlbmRlclRyZWVQb3NpdGlvbihSZW5kZXJFbGVtZW50JiBwYXJlbnQsIFJlbmRlck9i
amVjdCogbmV4dFNpYmxpbmcpOwotCi0gICAgUmVuZGVyRWxlbWVudCYgcGFyZW50KCkgeyByZXR1
cm4gbV9wYXJlbnQ7IH0KLSAgICBjb25zdCBSZW5kZXJFbGVtZW50JiBwYXJlbnQoKSBjb25zdCB7
IHJldHVybiBtX3BhcmVudDsgfQotCi0gICAgdm9pZCBpbnNlcnQoUmVuZGVyT2JqZWN0Jik7Ci0g
ICAgYm9vbCBjYW5JbnNlcnQoUmVuZGVyRWxlbWVudCYpIGNvbnN0OwotICAgIGJvb2wgY2FuSW5z
ZXJ0KFJlbmRlclRleHQmKSBjb25zdDsKLQotICAgIHZvaWQgY29tcHV0ZU5leHRTaWJsaW5nKGNv
bnN0IE5vZGUmKTsKLSAgICB2b2lkIGludmFsaWRhdGVOZXh0U2libGluZyhjb25zdCBSZW5kZXJP
YmplY3QmKTsKLQotcHJpdmF0ZToKLSAgICBSZW5kZXJFbGVtZW50JiBtX3BhcmVudDsKLSAgICBS
ZW5kZXJPYmplY3QqIG1fbmV4dFNpYmxpbmc7Ci0gICAgYm9vbCBtX2hhc1ZhbGlkTmV4dFNpYmxp
bmc7Ci0jaWYgIUFTU0VSVF9ESVNBQkxFRAotICAgIHVuc2lnbmVkIG1fYXNzZXJ0aW9uTGltaXRD
b3VudGVyOwotI2VuZGlmCi19OwotCiBzdGF0aWMgdm9pZCBhdHRhY2hSZW5kZXJUcmVlKEVsZW1l
bnQmLCBSZW5kZXJTdHlsZSYgaW5oZXJpdGVkU3R5bGUsIFJlbmRlclRyZWVQb3NpdGlvbiYsIFBh
c3NSZWZQdHI8UmVuZGVyU3R5bGU+KTsKIHN0YXRpYyB2b2lkIGF0dGFjaFRleHRSZW5kZXJlcihU
ZXh0JiwgUmVuZGVyVHJlZVBvc2l0aW9uJik7CiBzdGF0aWMgdm9pZCBkZXRhY2hSZW5kZXJUcmVl
KEVsZW1lbnQmLCBEZXRhY2hUeXBlKTsKQEAgLTE1MCwxMDAgKzEyNSw2IEBAIENoYW5nZSBkZXRl
cm1pbmVDaGFuZ2UoY29uc3QgUmVuZGVyU3R5bGUmIHMxLCBjb25zdCBSZW5kZXJTdHlsZSYgczIp
CiAgICAgcmV0dXJuIE5vQ2hhbmdlOwogfQogCi1zdGF0aWMgYm9vbCBpc1JlbmRlcmVyUmVwYXJl
bnRlZChjb25zdCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQotewotICAgIGlmICghcmVuZGVyZXIt
Pm5vZGUoKS0+aXNFbGVtZW50Tm9kZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYg
KHJlbmRlcmVyLT5zdHlsZSgpLmhhc0Zsb3dJbnRvKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwot
ICAgIHJldHVybiBmYWxzZTsKLX0KLQotc3RhdGljIFJlbmRlck9iamVjdCogbmV4dFNpYmxpbmdS
ZW5kZXJlcihjb25zdCBOb2RlJiBub2RlLCBjb25zdCBSZW5kZXJFbGVtZW50JiBwYXJlbnRSZW5k
ZXJlcikKLXsKLSAgICBpZiAoIXBhcmVudFJlbmRlcmVyLmVsZW1lbnQoKSkKLSAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0gICAgaWYgKG5vZGUuaXNBZnRlclBzZXVkb0VsZW1lbnQoKSkKLSAgICAg
ICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgTm9kZSogc2libGluZyA9IG5vZGUuaXNCZWZvcmVQc2V1
ZG9FbGVtZW50KCkgPyBOb2RlUmVuZGVyaW5nVHJhdmVyc2FsOjpmaXJzdENoaWxkKHBhcmVudFJl
bmRlcmVyLmVsZW1lbnQoKSkgOiBOb2RlUmVuZGVyaW5nVHJhdmVyc2FsOjpuZXh0U2libGluZygm
bm9kZSk7Ci0gICAgZm9yICg7IHNpYmxpbmc7IHNpYmxpbmcgPSBOb2RlUmVuZGVyaW5nVHJhdmVy
c2FsOjpuZXh0U2libGluZyhzaWJsaW5nKSkgewotICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRl
cmVyID0gc2libGluZy0+cmVuZGVyZXIoKTsKLSAgICAgICAgaWYgKHJlbmRlcmVyICYmICFpc1Jl
bmRlcmVyUmVwYXJlbnRlZChyZW5kZXJlcikpCi0gICAgICAgICAgICByZXR1cm4gcmVuZGVyZXI7
Ci0gICAgfQotICAgIGlmIChQc2V1ZG9FbGVtZW50KiBhZnRlciA9IHBhcmVudFJlbmRlcmVyLmVs
ZW1lbnQoKS0+YWZ0ZXJQc2V1ZG9FbGVtZW50KCkpCi0gICAgICAgIHJldHVybiBhZnRlci0+cmVu
ZGVyZXIoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQotUmVuZGVyVHJlZVBvc2l0aW9uOjpS
ZW5kZXJUcmVlUG9zaXRpb24oUmVuZGVyVmlldyYgcm9vdCkKLSAgICA6IG1fcGFyZW50KHJvb3Qp
Ci0gICAgLCBtX25leHRTaWJsaW5nKG51bGxwdHIpCi0gICAgLCBtX2hhc1ZhbGlkTmV4dFNpYmxp
bmcodHJ1ZSkKLSNpZiAhQVNTRVJUX0RJU0FCTEVECi0gICAgLCBtX2Fzc2VydGlvbkxpbWl0Q291
bnRlcigwKQotI2VuZGlmCi17Ci19Ci0KLVJlbmRlclRyZWVQb3NpdGlvbjo6UmVuZGVyVHJlZVBv
c2l0aW9uKFJlbmRlckVsZW1lbnQmIHBhcmVudCkKLSAgICA6IG1fcGFyZW50KHBhcmVudCkKLSAg
ICAsIG1fbmV4dFNpYmxpbmcobnVsbHB0cikKLSAgICAsIG1faGFzVmFsaWROZXh0U2libGluZyhm
YWxzZSkKLSNpZiAhQVNTRVJUX0RJU0FCTEVECi0gICAgLCBtX2Fzc2VydGlvbkxpbWl0Q291bnRl
cigwKQotI2VuZGlmCi17Ci19Ci0KLVJlbmRlclRyZWVQb3NpdGlvbjo6UmVuZGVyVHJlZVBvc2l0
aW9uKFJlbmRlckVsZW1lbnQmIHBhcmVudCwgUmVuZGVyT2JqZWN0KiBuZXh0U2libGluZykKLSAg
ICA6IG1fcGFyZW50KHBhcmVudCkKLSAgICAsIG1fbmV4dFNpYmxpbmcobmV4dFNpYmxpbmcpCi0g
ICAgLCBtX2hhc1ZhbGlkTmV4dFNpYmxpbmcodHJ1ZSkKLSNpZiAhQVNTRVJUX0RJU0FCTEVECi0g
ICAgLCBtX2Fzc2VydGlvbkxpbWl0Q291bnRlcigwKQotI2VuZGlmCi17Ci19Ci0KLWJvb2wgUmVu
ZGVyVHJlZVBvc2l0aW9uOjpjYW5JbnNlcnQoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpIGNvbnN0
Ci17Ci0gICAgQVNTRVJUKCFyZW5kZXJlci5wYXJlbnQoKSk7Ci0gICAgcmV0dXJuIG1fcGFyZW50
LmlzQ2hpbGRBbGxvd2VkKHJlbmRlcmVyLCByZW5kZXJlci5zdHlsZSgpKTsKLX0KLQotYm9vbCBS
ZW5kZXJUcmVlUG9zaXRpb246OmNhbkluc2VydChSZW5kZXJUZXh0JiByZW5kZXJlcikgY29uc3QK
LXsKLSAgICBBU1NFUlQoIXJlbmRlcmVyLnBhcmVudCgpKTsKLSAgICByZXR1cm4gbV9wYXJlbnQu
aXNDaGlsZEFsbG93ZWQocmVuZGVyZXIsIG1fcGFyZW50LnN0eWxlKCkpOwotfQotCi12b2lkIFJl
bmRlclRyZWVQb3NpdGlvbjo6aW5zZXJ0KFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCi17Ci0gICAg
QVNTRVJUKG1faGFzVmFsaWROZXh0U2libGluZyk7Ci0gICAgbV9wYXJlbnQuYWRkQ2hpbGQoJnJl
bmRlcmVyLCBtX25leHRTaWJsaW5nKTsKLX0KLQotdm9pZCBSZW5kZXJUcmVlUG9zaXRpb246OmNv
bXB1dGVOZXh0U2libGluZyhjb25zdCBOb2RlJiBub2RlKQotewotICAgIEFTU0VSVCghbm9kZS5y
ZW5kZXJlcigpKTsKLSAgICBpZiAobV9oYXNWYWxpZE5leHRTaWJsaW5nKSB7Ci0gICAgICAgIC8v
IFN0b3AgdmFsaWRhdGluZyBhdCBzb21lIHBvaW50IHNvIHRoZSBhc3NlcnQgZG9lc24ndCBtYWtl
IHVzIE8oTl4yKSBvbiBkZWJ1ZyBidWlsZHMuCi0gICAgICAgIEFTU0VSVChtX3BhcmVudC5pc1Jl
bmRlclZpZXcoKSB8fCArK21fYXNzZXJ0aW9uTGltaXRDb3VudGVyID4gMjAgfHwgbmV4dFNpYmxp
bmdSZW5kZXJlcihub2RlLCBtX3BhcmVudCkgPT0gbV9uZXh0U2libGluZyk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0gICAgbV9uZXh0U2libGluZyA9IG5leHRTaWJsaW5nUmVuZGVyZXIobm9k
ZSwgbV9wYXJlbnQpOwotICAgIG1faGFzVmFsaWROZXh0U2libGluZyA9IHRydWU7Ci19Ci0KLXZv
aWQgUmVuZGVyVHJlZVBvc2l0aW9uOjppbnZhbGlkYXRlTmV4dFNpYmxpbmcoY29uc3QgUmVuZGVy
T2JqZWN0JiBzaWJsaW5nUmVuZGVyZXIpCi17Ci0gICAgaWYgKCFtX2hhc1ZhbGlkTmV4dFNpYmxp
bmcpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAobV9uZXh0U2libGluZyA9PSAmc2libGluZ1Jl
bmRlcmVyKQotICAgICAgICBtX2hhc1ZhbGlkTmV4dFNpYmxpbmcgPSBmYWxzZTsKLX0KLQogc3Rh
dGljIGJvb2wgc2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgRWxlbWVudCYgZWxlbWVudCwgY29u
c3QgUmVuZGVyRWxlbWVudCYgcGFyZW50UmVuZGVyZXIpCiB7CiAgICAgaWYgKCFlbGVtZW50LmRv
Y3VtZW50KCkuc2hvdWxkQ3JlYXRlUmVuZGVyZXJzKCkpCkBAIC0zMDMsNyArMTg0LDcgQEAgc3Rh
dGljIHZvaWQgY3JlYXRlUmVuZGVyZXJJZk5lZWRlZChFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJT
dHlsZSYgaW5oZXJpdGVkU3R5bGUKICAgICAgICAgPyBSZW5kZXJUcmVlUG9zaXRpb24oKnBhcmVu
dEZsb3dSZW5kZXJlciwgcGFyZW50Rmxvd1JlbmRlcmVyLT5uZXh0UmVuZGVyZXJGb3JFbGVtZW50
KGVsZW1lbnQpKQogICAgICAgICA6IHJlbmRlclRyZWVQb3NpdGlvbjsKIAotICAgIFJlbmRlckVs
ZW1lbnQqIG5ld1JlbmRlcmVyID0gZWxlbWVudC5jcmVhdGVFbGVtZW50UmVuZGVyZXIoc3R5bGUu
cmVsZWFzZU5vbk51bGwoKSkubGVha1B0cigpOworICAgIFJlbmRlckVsZW1lbnQqIG5ld1JlbmRl
cmVyID0gZWxlbWVudC5jcmVhdGVFbGVtZW50UmVuZGVyZXIoc3R5bGUucmVsZWFzZU5vbk51bGwo
KSwgaW5zZXJ0aW9uUG9zaXRpb24pLmxlYWtQdHIoKTsKICAgICBpZiAoIW5ld1JlbmRlcmVyKQog
ICAgICAgICByZXR1cm47CiAgICAgaWYgKCFpbnNlcnRpb25Qb3NpdGlvbi5jYW5JbnNlcnQoKm5l
d1JlbmRlcmVyKSkgewpAQCAtMzM2LDIwICsyMTcsNiBAQCBzdGF0aWMgdm9pZCBjcmVhdGVSZW5k
ZXJlcklmTmVlZGVkKEVsZW1lbnQmIGVsZW1lbnQsIFJlbmRlclN0eWxlJiBpbmhlcml0ZWRTdHls
ZQogICAgIGluc2VydGlvblBvc2l0aW9uLmluc2VydCgqbmV3UmVuZGVyZXIpOwogfQogCi1zdGF0
aWMgUmVuZGVyT2JqZWN0KiBwcmV2aW91c1NpYmxpbmdSZW5kZXJlcihjb25zdCBUZXh0JiB0ZXh0
Tm9kZSkKLXsKLSAgICBpZiAodGV4dE5vZGUucmVuZGVyZXIoKSkKLSAgICAgICAgcmV0dXJuIHRl
eHROb2RlLnJlbmRlcmVyKCktPnByZXZpb3VzU2libGluZygpOwotICAgIGZvciAoTm9kZSogc2li
bGluZyA9IE5vZGVSZW5kZXJpbmdUcmF2ZXJzYWw6OnByZXZpb3VzU2libGluZygmdGV4dE5vZGUp
OyBzaWJsaW5nOyBzaWJsaW5nID0gTm9kZVJlbmRlcmluZ1RyYXZlcnNhbDo6cHJldmlvdXNTaWJs
aW5nKHNpYmxpbmcpKSB7Ci0gICAgICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBzaWJsaW5n
LT5yZW5kZXJlcigpOwotICAgICAgICBpZiAocmVuZGVyZXIgJiYgIWlzUmVuZGVyZXJSZXBhcmVu
dGVkKHJlbmRlcmVyKSkKLSAgICAgICAgICAgIHJldHVybiByZW5kZXJlcjsKLSAgICB9Ci0gICAg
aWYgKFBzZXVkb0VsZW1lbnQqIGJlZm9yZSA9IHRleHROb2RlLnBhcmVudEVsZW1lbnQoKS0+YmVm
b3JlUHNldWRvRWxlbWVudCgpKQotICAgICAgICByZXR1cm4gYmVmb3JlLT5yZW5kZXJlcigpOwot
ICAgIHJldHVybiBudWxscHRyOwotfQotCiBzdGF0aWMgdm9pZCBpbnZhbGlkYXRlV2hpdGVzcGFj
ZU9ubHlUZXh0U2libGluZ3NBZnRlckF0dGFjaElmTmVlZGVkKE5vZGUmIGN1cnJlbnQpCiB7CiAg
ICAgaWYgKGlzPEluc2VydGlvblBvaW50PihjdXJyZW50KSkKQEAgLTM2MSw3ICsyMjgsNyBAQCBz
dGF0aWMgdm9pZCBpbnZhbGlkYXRlV2hpdGVzcGFjZU9ubHlUZXh0U2libGluZ3NBZnRlckF0dGFj
aElmTmVlZGVkKE5vZGUmIGN1cnJlbgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAo
aXM8RWxlbWVudD4oKnNpYmxpbmcpKSB7CiAgICAgICAgICAgICAvLyBUZXh0IHJlbmRlcmVycyBi
ZXlvbmQgcmVuZGVyZWQgZWxlbWVudHMgY2FuJ3QgYmUgYWZmZWN0ZWQuCi0gICAgICAgICAgICBp
ZiAoIXNpYmxpbmctPnJlbmRlcmVyKCkgfHwgaXNSZW5kZXJlclJlcGFyZW50ZWQoc2libGluZy0+
cmVuZGVyZXIoKSkpCisgICAgICAgICAgICBpZiAoIXNpYmxpbmctPnJlbmRlcmVyKCkgfHwgUmVu
ZGVyVHJlZVBvc2l0aW9uOjppc1JlbmRlcmVyUmVwYXJlbnRlZCgqc2libGluZy0+cmVuZGVyZXIo
KSkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KQEAgLTM5Myw3ICsyNjAsNyBAQCBzdGF0aWMgYm9vbCB0ZXh0UmVuZGVyZXJJc05lZWRl
ZChjb25zdCBUZXh0JiB0ZXh0Tm9kZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJgogICAgIGlm
IChwYXJlbnRSZW5kZXJlci5zdHlsZSgpLnByZXNlcnZlTmV3bGluZSgpKSAvLyBwcmUvcHJlLXdy
YXAvcHJlLWxpbmUgYWx3YXlzIG1ha2UgcmVuZGVyZXJzLgogICAgICAgICByZXR1cm4gdHJ1ZTsK
IAotICAgIFJlbmRlck9iamVjdCogcHJldmlvdXNSZW5kZXJlciA9IHByZXZpb3VzU2libGluZ1Jl
bmRlcmVyKHRleHROb2RlKTsKKyAgICBSZW5kZXJPYmplY3QqIHByZXZpb3VzUmVuZGVyZXIgPSBS
ZW5kZXJUcmVlUG9zaXRpb246OnByZXZpb3VzU2libGluZ1JlbmRlcmVyKHRleHROb2RlKTsKICAg
ICBpZiAocHJldmlvdXNSZW5kZXJlciAmJiBwcmV2aW91c1JlbmRlcmVyLT5pc0JSKCkpIC8vIDxz
cGFuPjxici8+IDxici8+PC9zcGFuPgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIApA
QCAtNDA4LDcgKzI3NSw3IEBAIHN0YXRpYyBib29sIHRleHRSZW5kZXJlcklzTmVlZGVkKGNvbnN0
IFRleHQmIHRleHROb2RlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mCiAgICAgICAgIFJlbmRl
ck9iamVjdCogZmlyc3QgPSBwYXJlbnRSZW5kZXJlci5maXJzdENoaWxkKCk7CiAgICAgICAgIHdo
aWxlIChmaXJzdCAmJiBmaXJzdC0+aXNGbG9hdGluZ09yT3V0T2ZGbG93UG9zaXRpb25lZCgpKQog
ICAgICAgICAgICAgZmlyc3QgPSBmaXJzdC0+bmV4dFNpYmxpbmcoKTsKLSAgICAgICAgUmVuZGVy
T2JqZWN0KiBuZXh0UmVuZGVyZXIgPSBuZXh0U2libGluZ1JlbmRlcmVyKHRleHROb2RlLCBwYXJl
bnRSZW5kZXJlcik7CisgICAgICAgIFJlbmRlck9iamVjdCogbmV4dFJlbmRlcmVyID0gUmVuZGVy
VHJlZVBvc2l0aW9uOjpuZXh0U2libGluZ1JlbmRlcmVyKHRleHROb2RlLCBwYXJlbnRSZW5kZXJl
cik7CiAgICAgICAgIGlmICghZmlyc3QgfHwgbmV4dFJlbmRlcmVyID09IGZpcnN0KSB7CiAgICAg
ICAgICAgICAvLyBXaGl0ZXNwYWNlIGF0IHRoZSBzdGFydCBvZiBhIGJsb2NrIGp1c3QgZ29lcyBh
d2F5LiBEb24ndCBldmVuIG1ha2UgYSByZW5kZXIgb2JqZWN0IGZvciB0aGlzIHRleHQuCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcAppbmRleCBm
YTMxNzJmMWJkNmY4MTYzODk4MTdlMDQ3ZWFkZTI0NTlmZDQ2ZmI3Li4xYTI4NDZiMGVjYmU0NGZj
MzRlMjM2MGE2ZTIxMDMyNTM5M2M5YzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAK
QEAgLTEwNSw3ICsxMDUsNyBAQCB2b2lkIFNWR0FFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6
c3ZnQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBTVkdBRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4m
JiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdBRWxlbWVudDo6Y3JlYXRlRWxl
bWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBv
c2l0aW9uJikKIHsKICAgICBpZiAocGFyZW50Tm9kZSgpICYmIHBhcmVudE5vZGUoKS0+aXNTVkdF
bGVtZW50KCkgJiYgZG93bmNhc3Q8U1ZHRWxlbWVudD4oKnBhcmVudE5vZGUoKSkuaXNUZXh0Q29u
dGVudCgpKQogICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHSW5saW5lPigq
dGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oCmluZGV4IDI5
NDY1ZGRjZjExMzFjNjYwMWQ4NmViZDA2NGY0YmU0YWFkMDhlNmMuLjViYjEyMmI3MjI3NGUwZTM4
YjIwZWZlN2NiNzc4YzgxMmU0ZTRhYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oCkBAIC00
Niw3ICs0Niw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3Zl
cnJpZGU7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0
eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmNwcAppbmRleCBlNzQ0
MTVkOWJiOTFhMmU2ZWI5MjFiNWUxMWQ1YjFmNjMxMWFjYzFjLi4wN2NlMzI5MTdhNWM2N2I2MDVi
NDUyNTk4N2IwN2QwNzI2ZDVkODg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QWx0R2x5cGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhF
bGVtZW50LmNwcApAQCAtODIsNyArODIsNyBAQCBib29sIFNWR0FsdEdseXBoRWxlbWVudDo6Y2hp
bGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJiBjaGlsZCkgY29uc3QKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdBbHRHbHlwaEVsZW1l
bnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHQWx0R2x5cGhFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24m
KQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdUU3Bhbj4oKnRoaXMsIFdU
Rjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fs
dEdseXBoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5o
CmluZGV4IGZjY2M0MTUzMjcyNGVhNzdlYWFiMjE4N2JhNWIxYTRhZDAxNmVhNDEuLjE2ZjYwNmQ4
Yjk5MjdiYjI0ZGNiMjFkYTJiOTU4MTZlNDdlNDRhMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QWx0R2x5cGhFbGVtZW50LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICBTVkdBbHRHbHlwaEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAK
LSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBj
b25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2hp
bGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qgb3ZlcnJpZGU7CiAKICAg
ICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHQWx0R2x5cGhFbGVtZW50KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwCmluZGV4IDFiODk5ZjljNzJmZWMw
NGM4MzE1YjMxMWUzNzdhNzIwNjQ3MTU4YzUuLjRmZTI3NWE1YTczYjdiMzVlYTdiOTkwZGVmMmNk
MGVmOTRiYjkxMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAKQEAg
LTk4LDcgKzk4LDcgQEAgdm9pZCBTVkdDaXJjbGVFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIH0KIH0KIAotUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IFNWR0NpcmNsZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHQ2lyY2xl
RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwg
Y29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8
UmVuZGVyU1ZHRWxsaXBzZT4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgKaW5kZXggNjg2ZmJjYTAzZTMyNzkwOTJjN2I4YzFjZTAx
YTI2ZGE2Yjc1ZTMzZS4uYmJkZGQyYTkyMDIxNDcxOTg0MGJmYTIwYjQ5ZjNhMGVkZTAyY2M0MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCkBAIC00Myw3ICs0Myw3IEBAIHBy
aXZhdGU6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92
ZXJyaWRlOwogCiAgICAgQkVHSU5fREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0NpcmNs
ZUVsZW1lbnQpCiAgICAgICAgIERFQ0xBUkVfQU5JTUFURURfTEVOR1RIKEN4LCBjeCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHAKaW5kZXggN2Y2YmVjOTVkYmY2OGVk
YjVkYmVlMGU0NmM1NzQ5OGYyN2RkNmQ1MC4uNjM2ZjkxNDlkZmNhNjUyOTg2NzE0MWY4Mzk2NWVi
OTA2N2UwMzdiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHAK
QEAgLTEwMiw3ICsxMDIsNyBAQCB2b2lkIFNWR0NsaXBQYXRoRWxlbWVudDo6Y2hpbGRyZW5DaGFu
Z2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiAgICAgICAgIG9iamVjdC0+c2V0TmVlZHNM
YXlvdXQoKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0NsaXBQYXRoRWxlbWVu
dDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBTVkdDbGlwUGF0aEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYp
CiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcj4o
KnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRo
RWxlbWVudC5oCmluZGV4IGQzYmE2ZmQ0NzNkOTcwNWY2ZjgxNjA4MDVmNWE2ODZlZDY0NzIxZGQu
LjM5NjNmYTBjOWM3ZGNhNzAxY2U3MGZlNTQ2NTk3MDIwYjdmMjg4MjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENo
YW5nZSYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAK
ICAgICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHQ2xpcFBhdGhFbGVtZW50
KQogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX0VOVU1FUkFUSU9OKENsaXBQYXRoVW5pdHMsIGNs
aXBQYXRoVW5pdHMsIFNWR1VuaXRUeXBlczo6U1ZHVW5pdFR5cGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0RlZnNFbGVtZW50LmNwcAppbmRleCA4M2UwZDZmOTAyMmI0NzBjNzQ4MGE4NzlmNWRjMjU5NDNk
ODViNTlkLi44N2Q4Njk2MDdlMzQ0ODU4MDg5MzlmODM3YTZlMmIyMDk1YTNjYTllIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgYm9vbCBTVkdE
ZWZzRWxlbWVudDo6aXNWYWxpZCgpIGNvbnN0CiAgICAgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlk
KCk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdEZWZzRWxlbWVudDo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBTVkdEZWZzRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5k
ZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1
cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyPigqdGhpcywgV1RGOjpt
b3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0Vs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5oCmluZGV4IDU4Y2M4
ODdmZjdkY2E1NGViZGJhZjg1ZDM2ZGMxN2I4YjY0ZDQ5ZWQuLjlmYTQ0MDE0MTJhMGYyMTEwY2E4
NjM4MjA3MzU3ZTJiMjhjZTc5NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdE
ZWZzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5oCkBA
IC0zOCw3ICszOCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25z
dCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlk
ZTsKIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUyhTVkdEZWZzRWxlbWVu
dCkKICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9CT09MRUFOKEV4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Vs
bGlwc2VFbGVtZW50LmNwcAppbmRleCBkMzMzODQxOGQ4MzhiZWFkOGE4MzBjYjc3NWJlYTJmMmFl
NzhhNzU5Li5hZTM2OTYxZmQxOTJjZjg3ZWVlMzNjZDYwMDkzMzYxOGFmMDUxYjhjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAKQEAgLTEwMCw3ICsxMDAsNyBAQCB2
b2lkIFNWR0VsbGlwc2VFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJOYW1lKQogICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hh
bmdlZChhdHRyTmFtZSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdFbGxpcHNl
RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkK
K1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdFbGxpcHNlRWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHRWxsaXBzZT4oKnRo
aXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0VsbGlwc2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1l
bnQuaAppbmRleCAyZGY0MWVkNmYwMTM4MDJhYTc3MmVkNTliYzE5YWJjZTczOTJiNTFhLi5mNjJk
MzJkY2VhOWRjYzljMjA0MjE0YTdkNDhhYzkxZTYwNDczNzgwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRWxsaXBzZUVsZW1lbnQuaApAQCAtNDMsNyArNDMsNyBAQCBwcml2YXRlOgogCiAgICAgdmly
dHVhbCBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biB0cnVlOyB9OwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5k
ZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKICAgICBC
RUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHRWxsaXBzZUVsZW1lbnQpCiAgICAg
ICAgIERFQ0xBUkVfQU5JTUFURURfTEVOR1RIKEN4LCBjeCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
aWx0ZXJFbGVtZW50LmNwcAppbmRleCBmZTY1Nzk4ZjA2MjM2NjQ2MGY1Yjg1NTRlYTBkZjI4YWU5
MmVhMzZjLi4yYTdmYjNjMTg1ZTlkMjJlNDJkNThiOGZlYWRlZTE5MDY4MjlkZjVkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCkBAIC0xODMsNyArMTgzLDcgQEAgdm9p
ZCBTVkdGaWx0ZXJFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNo
YW5nZSkKICAgICAgICAgb2JqZWN0LT5zZXROZWVkc0xheW91dCgpOwogfQogCi1SZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gU1ZHRmlsdGVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdGaWx0
ZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxl
LCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJl
cjxSZW5kZXJTVkdSZXNvdXJjZUZpbHRlcj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgKaW5kZXggNTY1NmUyM2NmNjhjYjU1OWZi
MDg0NjcwY2E4ZjQzYjk1NTkzZDFkNC4uNmZkNmMyZTcwNGI2ZTk4ZDJlYmMwY2Q5NmRhNWRjM2Q3
ZjU3MTA2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCkBAIC01Myw3ICs1
Myw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNo
YW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+
JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3Np
dGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRl
cmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCBzZWxm
SGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzLmNwcAppbmRleCAwNzBmN2QwMWFiOTZiOWIxN2JjYzhhZWNhOGMwMTNiMGNl
MWI1OTczLi5kODNlMDFmZTM4NjcwZWJiMzE3YmRiNmYwZmQzMDQ5MDdkNzAxZmExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzLmNwcApAQCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQgU1ZHRmlsdGVyUHJpbWl0
aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpzZXRTdGFuZGFyZEF0dHJpYnV0ZXMoRmlsdGVyRWZmZWN0
KiBmCiAgICAgICAgIGZpbHRlckVmZmVjdC0+c2V0SGFzSGVpZ2h0KHRydWUpOwogfQogCi1SZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVz
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVu
ZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZH
UmVzb3VyY2VGaWx0ZXJQcmltaXRpdmU+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0
dHJpYnV0ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFy
ZEF0dHJpYnV0ZXMuaAppbmRleCAzMWJlNTE0YjQwZGU1OWU4MDEwY2E5NjFmM2NjYWM4MWE0NjM2
YjgwLi4zYzg2YTRkNGM0NjhhMjVlYjU5NzIwOGFhYjc3MzFjOGFkZDVlZDYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlcy5oCkBAIC01Nyw3ICs1Nyw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgdmly
dHVhbCBib29sIGlzRmlsdGVyRWZmZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4m
JiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29s
IHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3Jl
aWduT2JqZWN0RWxlbWVudC5jcHAKaW5kZXggNjI0NmIyODE3YWNmNjIwNDUyYjA5ZTY3YTA4N2Ri
NDcwODYwMWMxZi4uZWEzNTc5M2M3NDg0Mjk5ZmNlYTVhMGY3NzliZjlmMjg5YmQwM2Y2MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCkBAIC0x
MjIsNyArMTIyLDcgQEAgdm9pZCBTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6c3ZnQXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgUmVuZGVyU1ZH
UmVzb3VyY2U6Om1hcmtGb3JMYXlvdXRBbmRQYXJlbnRSZXNvdXJjZUludmFsaWRhdGlvbigqcmVu
ZGVyZXIpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHRm9yZWlnbk9iamVjdEVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OmNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQ
b3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR0ZvcmVpZ25P
YmplY3Q+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKaW5kZXggNWIwZjJlZTZiMzM1NmU4OTI1MmJiMTY3
NDUwNzY4MWJhNjEzYzE5ZC4uNmM3OTRiZjJlNTVkMDk0ZTdjNDBhZmMxMzIxY2UwMWM2MWIxM2U3
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKQEAg
LTQ0LDcgKzQ0LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVl
ZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGNoaWxk
U2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZp
cnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJl
bmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHNlbGZIYXNS
ZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHR0VsZW1lbnQuY3BwCmluZGV4IDAzYWU4ZjM0MGU0NWIwNzMwZDc1NTc2OTViZWMw
ZWFlNDljYWNiZjMuLjRlM2U3OTJkMWUyYjhkZmZjNzkzMTEzNGI5ZTIwOWZlNzUxOGM4YmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcApAQCAtODMsNyArODMsNyBAQCB2b2lkIFNWR0dF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1l
KQogICAgICAgICBSZW5kZXJTVkdSZXNvdXJjZTo6bWFya0ZvckxheW91dEFuZFBhcmVudFJlc291
cmNlSW52YWxpZGF0aW9uKCpyZW5kZXJlcik7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBTVkdHRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBz
dHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdHRWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikKIHsKICAgICAvLyBTVkcgMS4xIHRlc3RzdWl0ZSBleHBsaWNpdGVseSB1c2VzIGNvbnN0
cnVjdHMgbGlrZSA8ZyBkaXNwbGF5PSJub25lIj48bGluZWFyR3JhZGllbnQ+CiAgICAgLy8gV2Ug
c3RpbGwgaGF2ZSB0byBjcmVhdGUgcmVuZGVyZXJzIGZvciB0aGUgPGc+ICYgPGxpbmVhckdyYWRp
ZW50PiBlbGVtZW50LCB0aG91Z2ggdGhlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHR0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5oCmluZGV4IDgx
Yzg4Mzg3MTRjNjJiMGI4NjRiYTcwNzM2MzEzNTY3ZjRkZTc1MjkuLmRlNDFiYTAyMmQ5N2RiYTBm
ZWU2ZWUwOWFkZmYzMTkzZDliNWY0MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdHRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5oCkBAIC0z
Niw3ICszNiw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU1ZHR0VsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVy
cmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGlj
c0VsZW1lbnQuY3BwCmluZGV4IDc5NDdhMWNkNWQyOGUwMDBkYjE4YmZjYTI0ZDk2OWJiZDFjMDM1
NjkuLjgyOTA1YWQ0ZWFiMDFlYWE5ZTE0MmMyM2ZlNTFlZDIzYTY1YWEzOTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwCkBAIC0xNjEsNyArMTYxLDcgQEAgRmxv
YXRSZWN0IFNWR0dyYXBoaWNzRWxlbWVudDo6Z2V0QkJveChTdHlsZVVwZGF0ZVN0cmF0ZWd5IHN0
eWxlVXBkYXRlU3RyYXRlZ3kpCiAgICAgcmV0dXJuIFNWR1RyYW5zZm9ybWFibGU6OmdldEJCb3go
dGhpcywgc3R5bGVVcGRhdGVTdHJhdGVneSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBTVkdHcmFwaGljc0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHR3JhcGhpY3NFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBS
ZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIC8vIEJ5IGRlZmF1bHQsIGFueSBzdWJjbGFzcyBp
cyBleHBlY3RlZCB0byBkbyBwYXRoLWJhc2VkIGRyYXdpbmcKICAgICByZXR1cm4gY3JlYXRlUmVu
ZGVyZXI8UmVuZGVyU1ZHUGF0aD4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5oCmluZGV4IGYyZDNkMmY2MzQwYTBkNjgwOWEyZTdl
ZGMxZGVkMDNlZjhhNGQ0NGQuLjc0ZDRiNDJhNzEwNThmZWJhMjc3NjE4ODJlODU3NDg0Yjc0ZmFl
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmgKQEAgLTUxLDcgKzUx
LDcgQEAgcHVibGljOgogCiAgICAgLy8gImJhc2UgY2xhc3MiIG1ldGhvZHMgZm9yIGFsbCB0aGUg
ZWxlbWVudHMgd2hpY2ggcmVuZGVyIGFzIHBhdGhzCiAgICAgdmlydHVhbCB2b2lkIHRvQ2xpcFBh
dGgoUGF0aCYpOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVy
U3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiBwcm90ZWN0
ZWQ6CiAgICAgU1ZHR3JhcGhpY3NFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAppbmRleCBiMzY2ODEyMGRj
OTRjNGEwMjkwNjBmMDJkZWExMTQ5M2E4MTkzYTU0Li5iMmU5N2RkN2I5NDMyMGYxOTdlNjkxMzVk
MTM3MmNlMDljNTYwOWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcApA
QCAtMTYwLDcgKzE2MCw3IEBAIHZvaWQgU1ZHSW1hZ2VFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHSW1hZ2VFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IFNWR0ltYWdlRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxS
ZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICBy
ZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHSW1hZ2U+KCp0aGlzLCBXVEY6Om1vdmUoc3R5
bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAppbmRleCA5ZWExNWE2ZjBh
OTI4OTYyZWZiMzI0ODA5ODc4ZWE1MDcwNDgwOTI5Li4zZGY1NmVkMGM4YzIxZmJiYTQ5ZjA1ZDlj
ZWZlMTAwOGY3N2NiZGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oCkBAIC00
OSw3ICs0OSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZEF0dGFjaFJlbmRlcmVy
cygpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBp
bnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHls
ZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBv
c2l0aW9uJikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgaW1h
Z2VTb3VyY2VVUkwoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkU3VicmVz
b3VyY2VBdHRyaWJ1dGVVUkxzKExpc3RIYXNoU2V0PFVSTD4mKSBjb25zdCBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAKaW5kZXgg
MjYzYzFjY2Y5MjFjMzRkZmNlZDVhMGNjOTNhMjU5YzBhYTYxMjVkZi4uNzU4NDdhYTU0ZDhlNTEw
ODQzY2YwMzhhM2Y5OGY0YzU4YTc5NmI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAKQEAgLTExMyw3ICsxMTMsNyBAQCB2b2lkIFNWR0xp
bmVhckdyYWRpZW50RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyTmFtZQogICAgICAgICBvYmplY3QtPnNldE5lZWRzTGF5b3V0KCk7CiB9CiAKLVJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6OmNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewog
ICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50
PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TGluZWFyR3JhZGllbnRFbGVtZW50LmgKaW5kZXggYTdhNDY5NzY3MDVhNTU5OTQ0NmYzOWY5MWY1
N2FhYjFhYmQzMzE1Zi4uZGNmYWJhMzFmZjRjZmM3MjI1MTI1YjI2Yzg3MTRlMzY0YjQ5MDYxMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaApAQCAt
NDIsNyArNDIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92
ZXJyaWRlOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxl
bWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJT
dHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0
dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKaW5kZXggYWZkNDA0ODliZDE0ZTNhNmMz
NDQ3ZmJiNDYwZjA2NzliMDJiM2E3Yi4uNGMyZjJjZmI4YzMxNjBjZjZkMDVlOTU2MTE1OTkwMWM2
MjZkODM5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcApAQCAtMjEz
LDcgKzIxMyw3IEBAIHZvaWQgU1ZHTWFya2VyRWxlbWVudDo6c2V0T3JpZW50VG9BbmdsZShjb25z
dCBTVkdBbmdsZSYgYW5nbGUpCiAgICAgc3ZnQXR0cmlidXRlQ2hhbmdlZChvcmllbnRBbmdsZVBy
b3BlcnR5SW5mbygpLT5hdHRyaWJ1dGVOYW1lKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IFNWR01hcmtlckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHTWFya2VyRWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVu
ZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZH
UmVzb3VyY2VNYXJrZXI+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTWFya2VyRWxlbWVudC5oCmluZGV4IGI0ZDMwNjE1NTg4YTM0NTk3Y2ZjYjhlZGYxYmUz
MjYzN2ExMzcwNzUuLmE4ODVhNGVkY2IwYzQyNDczZGQ1MjIzYmY2MjdjM2RhNmViYWRlMTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaApAQCAtMTMyLDcgKzEzMiw3IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29u
c3QgQ2hpbGRDaGFuZ2UmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0
eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCBib29sIHNlbGZI
YXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFz
a0VsZW1lbnQuY3BwCmluZGV4IDZjNTA4NTFjMzZmNDgxZTQwZWY2YmVjOGFhNGQ2OTJiOTc1MDc2
OWMuLjA0OWQwNzJmNjZjZDgwYzE1NjU4MWI2NDJjMjQ0MWIzNmMzMDEwMTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcApAQCAtMTU3LDcgKzE1Nyw3IEBAIHZvaWQgU1ZHTWFz
a0VsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQogICAg
ICAgICBvYmplY3QtPnNldE5lZWRzTGF5b3V0KCk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBTVkdNYXNrRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHls
ZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdNYXNrRWxlbWVudDo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVy
VHJlZVBvc2l0aW9uJikKIHsKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gbWFza1JlbmRl
cmVyID0gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI+KCp0aGlzLCBXVEY6
Om1vdmUoc3R5bGUpKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdN
YXNrRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgKaW5kZXgg
NGU1NjhlMDFhNGZiNGY0YTQ2NTU4NDk1NzU2YjNhOWRlYWQ1MTQ1NS4uODc0NzY4MmU3MjUzNjYw
M2VlOTI0M2EzM2JmZWZkZmMxMzFiYzM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01hc2tFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50
LmgKQEAgLTU1LDcgKzU1LDcgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hTZXQ8UmVuZGVyTGF5ZXIq
PiBtX2NsaWVudExheWVyczsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwog
CiAgICAgdmlydHVhbCBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCmlu
ZGV4IDFkNWM4MzEyZjQ4ZjI2NzA5MDMwOThhMGYxYzcwOGE2ODMyMDU5MDUuLjYxZDY1NjRmMDUx
ZmJhYzljNDMzODk3ODNiY2M3ZWM1YWE1MmJkOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhF
bGVtZW50LmNwcApAQCAtMzkxLDcgKzM5MSw3IEBAIEZsb2F0UmVjdCBTVkdQYXRoRWxlbWVudDo6
Z2V0QkJveChTdHlsZVVwZGF0ZVN0cmF0ZWd5IHN0eWxlVXBkYXRlU3RyYXRlZ3kpCiAgICAgcmV0
dXJuIHJlbmRlcmVyLT5wYXRoKCkuYm91bmRpbmdSZWN0KCk7CiB9CiAKLVJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBTVkdQYXRoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5k
ZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdQYXRoRWxlbWVu
dDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3Qg
UmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICAvLyBCeSBkZWZhdWx0LCBhbnkgc3ViY2xhc3Mg
aXMgZXhwZWN0ZWQgdG8gZG8gcGF0aC1iYXNlZCBkcmF3aW5nCiAgICAgcmV0dXJuIGNyZWF0ZVJl
bmRlcmVyPFJlbmRlclNWR1BhdGg+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BhdGhFbGVtZW50LmgKaW5kZXggYzM3MWU1NTk2YmM1MTgxMmNhNGY3YWU5MWE0Yjk5
MmRjYWJkNTJiMy4uNjEyM2NhMDZmNDk2N2FjOGU1YjJmN2E4MDg2ZjgwMTViOWUxYjk0MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmgKQEAgLTExNiw3ICsxMTYsNyBAQCBwcml2YXRl
OgogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX0JPT0xFQU4oRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKICAgICBFTkRfREVDTEFSRV9BTklNQVRF
RF9QUk9QRVJUSUVTCiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJl
bmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIAogICAg
IHZpcnR1YWwgTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8o
Q29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShD
b250YWluZXJOb2RlJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0dGVybkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVt
ZW50LmNwcAppbmRleCBmYjE4ZjhhYjI5MDY3YTM3ZDZmMGU0ZTVkMDlhYzc1MTZmZDY3ZDJiLi5h
MDdjODc1MGE3YWI4NjQ4Nzg1NGQ0YzgwNmJmODE0ZTE4YWY4OWY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAKQEAgLTE4Miw3ICsxODIsNyBAQCB2b2lkIFNWR1Bh
dHRlcm5FbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkK
ICAgICAgICAgb2JqZWN0LT5zZXROZWVkc0xheW91dCgpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gU1ZHUGF0dGVybkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHUGF0dGVybkVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNv
bnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJl
bmRlclNWR1Jlc291cmNlUGF0dGVybj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaAppbmRleCBjNmU2ODRkM2Y4YjAyZjY4ZGE0
YTc1OTkzYTM2ZjY0OGFkMzdiNGVlLi5hZjI5MmI1ZjBiYTRlM2VjZDA5ZThhNmYyNTc1NmI4YTY3
M2ZhNDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaApAQCAtNjIsNyAr
NjIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5D
aGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFJlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9z
aXRpb24mKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5n
dGhzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCmluZGV4IDA5OWEwYzljOTEyMThj
NzQzZDk0MmRkMWVlZWI3YmMyNjU1NTAwOTEuLmM2MjUyYTg2MDQzMTFmZTk2YWQ4MzEwMWYwNGM2
OWJlNmVhZDI0NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFk
aWVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVu
dEVsZW1lbnQuY3BwCkBAIC0xMjUsNyArMTI1LDcgQEAgdm9pZCBTVkdSYWRpYWxHcmFkaWVudEVs
ZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUK
ICAgICAgICAgb2JqZWN0LT5zZXROZWVkc0xheW91dCgpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1Jh
ZGlhbEdyYWRpZW50RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHls
ZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3Jl
YXRlUmVuZGVyZXI8UmVuZGVyU1ZHUmVzb3VyY2VSYWRpYWxHcmFkaWVudD4oKnRoaXMsIFdURjo6
bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlh
bEdyYWRpZW50RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50
RWxlbWVudC5oCmluZGV4IGQ2NDg4OTkyZjhmN2Y0OTUxMGE0ZGRkNmI5N2I5NWQ5YjM0ZTAyNjQu
LmMwYzM5ZWI0NGNhODdhYjViYzBlNTc0MDUxNmQxNzQ5MDkxNTUyYmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgKQEAgLTQyLDcgKzQyLDcgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBz
dmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAotICAg
IHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0
IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHNlbGZI
YXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdS
ZWN0RWxlbWVudC5jcHAKaW5kZXggZTIzYTFlNWQyODM1YmU2ODQ4ODc1YTU3NDRlYjFjYmM1NTQ4
ZDdhMS4uYjczYjBkOGNmNzE2ZTk5OTI5NmExZmRkNzgwZGI3ODQwMWZmYWNhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwCkBAIC0xMTAsNyArMTEwLDcgQEAgdm9pZCBTVkdS
ZWN0RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSkKICAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0ck5h
bWUpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHUmVjdEVsZW1lbnQ6OmNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gU1ZHUmVjdEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0
dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1JlY3Q+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUp
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmgKaW5kZXggZWRhNTI2YmYwNTg0NGRj
NzQxMDgxOGQ2ODlkNjU1ZTc5NzExY2IxYi4uOWEyZGQ3OTAxNjgyY2VhZTA2MmJmYjJlNzRmZjE4
NGRjODJlMTE4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmgKQEAgLTQ0LDcgKzQ0
LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhz
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4m
Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikgb3ZlcnJpZGU7CiAKICAgICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMo
U1ZHUmVjdEVsZW1lbnQpCiAgICAgICAgIERFQ0xBUkVfQU5JTUFURURfTEVOR1RIKFgsIHgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKaW5kZXggMGQ0ZDg1YWY4YmRjMWM2ZDEyMjQ4
Njk2Y2U2MWU2ODUwM2YzMWYyMy4uYzY1MTZjNDM1Njk0MTJmNTg5OTEzMzhmNTJmOTE0ZTg1ZTZk
NTUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcApAQCAtNDM5LDcgKzQzOSw3
IEBAIGJvb2wgU1ZHU1ZHRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUpCiAgICAgcmV0dXJuIFN0eWxlZEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5
bGUpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHU1ZHRWxlbWVudDo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBTVkdTVkdFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRl
clN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIGlmIChp
c091dGVybW9zdFNWR1NWR0VsZW1lbnQoKSkKICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVy
PFJlbmRlclNWR1Jvb3Q+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U1ZHRWxlbWVudC5oCmluZGV4IDgxZDk2MjVlODUwMGM0NmQzZDg1N2ZlZDZmNmIzYWE4MzBkZGZm
YTcuLmQ3MmI1MzRjMjJmMDBmNDkzYWRlZGQ3NmY2Y2Y2OWJmYzRmM2MwMmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1NWR0VsZW1lbnQuaApAQCAtMTM0LDcgKzEzNCw3IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCB2b2lkIGRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgcmVu
ZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwg
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVy
U3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRy
ZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9u
UmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdm9pZCByZW1vdmVkRnJvbShDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5jcHAKaW5kZXggMDU5Y2Q0ZDZhYWI2NmYx
NWUyYWY1NjYwOWIyZDJhNmM5ODEyY2JkNi4uYmJlNGY2NjBhZDJmZDJjZTEzNTBhM2UxOTBkYWI4
ZDI2Y2U3NWRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCkBAIC03Niw3
ICs3Niw3IEBAIHZvaWQgU1ZHU3RvcEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgU1ZHRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hh
bmdlZChhdHRyTmFtZSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdTdG9wRWxl
bWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1Jl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdTdG9wRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikK
IHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHR3JhZGllbnRTdG9wPigqdGhp
cywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU3RvcEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5oCmlu
ZGV4IDdlY2ViZmU1Nzg2MDhiNGFkZWJmZDJkY2ViMTA3NjNhMjM1YzMwNDYuLmE4Mzc0OThhMjNm
MGZjNTEyYmVhOTc0MmFlM2E4YzQ0NWVjMDcwOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTdG9wRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxl
bWVudC5oCkBAIC00MCw3ICs0MCw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNH
cmFkaWVudFN0b3AoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0
dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJl
bmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5k
ZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05l
ZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwogCiAgICAgQkVHSU5fREVDTEFSRV9B
TklNQVRFRF9QUk9QRVJUSUVTKFNWR1N0b3BFbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3
aXRjaEVsZW1lbnQuY3BwCmluZGV4IDJlYWZiM2NkYmM1NTE1YmRjNjE3OTcwOWQwMjAyODhlZDgz
NTIzYzAuLjQ0NzYyY2JlNWNiYmZjZDQ2Zjg0ZjliYWFhM2MzZWYyOTM0YjI0ZGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgYm9vbCBT
VkdTd2l0Y2hFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmIGNo
aWxkKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IFNWR1N3aXRjaEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHU3dpdGNoRWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVu
ZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZH
VHJhbnNmb3JtYWJsZUNvbnRhaW5lcj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmgKaW5kZXggNGUyZTQ5M2UzZDkwZTY5ODJmMjVm
MWUzNWI1YTk1NGRhNTcxNzU0NC4uZjA4ZGExYzU5NzA2MTVkMmUxZjE4MmUzNTQ1MTJmOTVhYmYy
YTNiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5oCkBAIC0zOCw3ICszOCw3
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRT
aG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmly
dHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxS
ZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVu
ZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKICAgICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVE
X1BST1BFUlRJRVMoU1ZHU3dpdGNoRWxlbWVudCkKICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9C
T09MRUFOKEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAKaW5kZXggYmI4MDhmOGE1
MmM5NDE0NjNiNWRlZGJiMzY2YWUxOWJjMzdiZmEzZC4uYzhlMWRlYzhjOTM3YjBmMGNhZjcwMGE2
ZWNjMjcwMWVjYTc0M2UwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJv
bEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmNw
cApAQCAtNzQsNyArNzQsNyBAQCBib29sIFNWR1N5bWJvbEVsZW1lbnQ6OnNlbGZIYXNSZWxhdGl2
ZUxlbmd0aHMoKSBjb25zdAogICAgIHJldHVybiBoYXNBdHRyaWJ1dGUoU1ZHTmFtZXM6OnZpZXdC
b3hBdHRyKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1N5bWJvbEVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gU1ZHU3ltYm9sRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsK
ICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyPigqdGhp
cywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU3ltYm9sRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQu
aAppbmRleCA4ODM2NWE3YWNmNGM2ODBmMmY2YjAzZWE3Y2M2Yjk1ZjVjZThiNzljLi5lYTM5NGIw
NDk4NGNlZTBlZWVjNmE2MWU5ZTQzNGMzYTg5MGU2ZWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
eW1ib2xFbGVtZW50LmgKQEAgLTQxLDcgKzQxLDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwg
dm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3Ry
aW5nJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92
ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25z
dCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKaW5kZXggY2Y2
YjhmMjU3YjAzOWFhMzcwYmMzMjI4NTZkYWZlZjIzOGFkMDQzZi4uNGVkYjk4M2RlNDg1NDExMDk2
YWI0ZGFjYjkyN2FiNGE1ODJjZGQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RSZWZFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQu
Y3BwCkBAIC0xOTUsNyArMTk1LDcgQEAgdm9pZCBTVkdUUmVmRWxlbWVudDo6c3ZnQXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICBTVkdUZXh0UG9zaXRp
b25pbmdFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKIH0KIAotUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IFNWR1RSZWZFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1RS
ZWZFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxl
LCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJl
cjxSZW5kZXJTVkdJbmxpbmU+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RSZWZFbGVtZW50LmgKaW5kZXggMzA2ZTJiMzkwNmZjYTNlNWE2NWQ4YzI3MTlmNWJj
ZDk2MDIyMTY4Yy4uYjY0NWE0NTAyYjJiMTQ4Y2E1NmIyN2I4NjU3Zjg1NWE1OGYzYjYwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmgKQEAgLTQxLDcgKzQxLDcgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwg
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVy
U3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRy
ZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0
ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wg
cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFNwYW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUU3BhbkVsZW1lbnQuY3BwCmluZGV4IDYyNDM0NDI4OGJmODM1MjY4NTA5NGFh
ZGM1NTkzMTZhZjc4MmZhOWUuLmNhOWY3N2ViYWY1ZWIzOGI2YzIzNzY1YWE5Y2VmZjEzMzg3NDkx
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUU3BhbkVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUU3BhbkVsZW1lbnQuY3BwCkBAIC0zOCw3ICszOCw3
IEBAIFJlZjxTVkdUU3BhbkVsZW1lbnQ+IFNWR1RTcGFuRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
VFNwYW5FbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBTVkdUU3BhbkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVy
U3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHVFNwYW5FbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBS
ZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJT
VkdUU3Bhbj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RTcGFuRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RT
cGFuRWxlbWVudC5oCmluZGV4IDI2NTNlOTVlYjBiYjJkYjIzZGY4ZTRiNGJjZWQ3ZjgyNGFlZmYx
ZjcuLjliNGFlOGFmZTM4ZmY1ODQ2MTZkNjhkMWE5ZTMzYjYyNTNkNmQ1NWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUU3BhbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVFNwYW5FbGVtZW50LmgKQEAgLTMyLDcgKzMyLDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBTVkdUU3BhbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7
CiAgICAgICAgICAgICAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJl
bmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVy
U3R5bGUmKSBvdmVycmlkZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VGV4dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmNwcApp
bmRleCA4OTU0ZDYyMzdjYTM3YzFmMTYzNjIzZWRkNGVjNzg2NWRjN2NlNTA5Li40ZTRkOWY4NDlj
OWIyOTQ3ZTM5YzUwMmViMjYwOWJiYTZjOTE0MzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVGV4dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
RWxlbWVudC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgQWZmaW5lVHJhbnNmb3JtIFNWR1RleHRFbGVt
ZW50OjphbmltYXRlZExvY2FsVHJhbnNmb3JtKCkgY29uc3QKICAgICByZXR1cm4gbWF0cml4Owog
fQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHVGV4dEVsZW1lbnQ6OmNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gU1ZHVGV4dEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNy
ZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1RleHQ+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmgKaW5kZXggYWYxNTBhNzkwNGM1NzZjYzFiOWNl
NTJlYjljNDg1NzZiNGFjZDkxYy4uMDA3NjY1NzM2MDMxNDY0MDU4NTM5MTgzZTJlYWYwMTNhMDIw
MTAwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmgKQEAgLTM0LDcgKzM0LDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBTVkdUZXh0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25z
dCBvdmVycmlkZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
UGF0aEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5j
cHAKaW5kZXggZjUzM2JkOTUyM2ZmMTEwNzEwOWIwOWQ1NGRlODA1ZmYxYmVlMjE2YS4uYTJhZDE5
MWUxZmE3NzQwNmQxNWVjNmQ2OTkzNDcyOWQ2MjgyNTVkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RleHRQYXRoRWxlbWVudC5jcHAKQEAgLTEyMyw3ICsxMjMsNyBAQCB2b2lkIFNWR1RleHRQ
YXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSkKICAgICAgICAgUmVuZGVyU1ZHUmVzb3VyY2U6Om1hcmtGb3JMYXlvdXRBbmRQYXJlbnRS
ZXNvdXJjZUludmFsaWRhdGlvbigqcmVuZGVyZXIpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gU1ZHVGV4dFBhdGhFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRl
clN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1RleHRQYXRoRWxl
bWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29u
c3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVu
ZGVyU1ZHVGV4dFBhdGg+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaAppbmRleCBhNWFjMGRlOTUzNWY5NmIzZTk3NWMxNmNm
YTE3N2E2Zjc2ZDNiYTAxLi5lMGQwY2UwMTU0NDk1ZjZhZTI0MzgyMzBmOTMwZDQ2OTEyZGYyNzFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oCkBAIC0xMjksNyArMTI5
LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsK
IAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYs
IGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBj
aGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJy
aWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKaW5kZXggYTUxZThjYWY0ZjJk
YTc3NTk1NDYyZmRmZTQ1ZTYwZjQ2MzY2MjBiNi4uNmNhNDNlNjU0OGRjMzAyODY5MDlhZTY5NmRi
NThhNTYwZWMxYmNiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcApAQCAtMjYx
LDcgKzI2MSw3IEBAIFNWR0VsZW1lbnQqIFNWR1VzZUVsZW1lbnQ6OnRhcmdldENsb25lKCkgY29u
c3QKICAgICByZXR1cm4gZG93bmNhc3Q8U1ZHRWxlbWVudD4ocm9vdC0+Zmlyc3RDaGlsZCgpKTsK
IH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1VzZUVsZW1lbnQ6OmNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gU1ZHVXNlRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHls
ZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3Jl
YXRlUmVuZGVyZXI8UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcj4oKnRoaXMsIFdURjo6
bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgKaW5kZXggNDc3Mzky
M2M1OGIxYjJlY2IzN2YxY2M5ZWNhNTgzNjRkODY0NTZjMi4uODgwZjdiOTRjMDFhMTZmMDY1Y2Vl
OTIzMDkzNjY4NGU5YmZjYmY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Vz
ZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCkBAIC02
NCw3ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxBdHRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZTsK
LSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBj
b25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgdG9D
bGlwUGF0aChQYXRoJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGhhdmVMb2FkZWRSZXF1
aXJlZFJlc291cmNlcygpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hQYXJzaW5n
Q2hpbGRyZW4oKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjZGQxNmQzZDdjZTZkMTE5Mjg3NmY1NzEyNTZi
OWJkMGRkOWFhY2MxLi5iNjJjMTQxMjMyODZhYzMyOTM5MmMwMDUzMzQzY2JhNzg3MzZhZDEwIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTUtMDQtMjEgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFw
cGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgUmVuZGVyUnVieVRleHQgZm9yIDxydD4gb25seSB3
aGVuIHRoZSBwYXJlbnQgcmVuZGVyZXIgaXMgYSBSZW5kZXJSdWJ5LgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MDM1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3J1YnkvcnVieS1ydC13aXRo
LXJlZ2lvbi1jcmFzaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcnVieS9y
dWJ5LXJ0LXdpdGgtcmVnaW9uLWNyYXNoLmh0bWw6IEFkZGVkLgorCiAyMDE1LTA0LTIxICBNaWNo
YWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIENyYXNoIGluIEpTQzo6
SW50ZXJwcmV0ZXI6OmV4ZWN1dGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcnVieS9y
dWJ5LXJ0LXdpdGgtcmVnaW9uLWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
cnVieS9ydWJ5LXJ0LXdpdGgtcmVnaW9uLWNyYXNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
YjI1NWUwZTU0YmMxZjRmMjNjYjM5NjkwOTAyNDkzOTg2NGJjZjczCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3J1YnktcnQtd2l0aC1yZWdpb24tY3Jhc2gtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorUGFzcyBpZiBubyBhc3NlcnQgb3IgY3Jhc2ggaW4gRGVi
dWcuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcnVieS9ydWJ5LXJ0LXdpdGgtcmVn
aW9uLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3J1YnkvcnVieS1ydC13aXRoLXJlZ2lv
bi1jcmFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyYWUyMDNiZmQ1N2MyZjEwYzAyZDgzYTIwNzEzNzU4
NTE2ZjM4YjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3J1YnkvcnVieS1y
dC13aXRoLXJlZ2lvbi1jcmFzaC5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgPHNjcmlwdD4KKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgPC9zY3JpcHQ+CisKKyAgPHN0eWxl
PgorCXJ0IHsKKyAgICAgIC13ZWJraXQtZmxvdy1pbnRvOiBmbG93Q29udGVudDsKKwl9CisJCisJ
ZGl2IHsKKwkgIC13ZWJraXQtZmxvdy1mcm9tOiBmbG93Q29udGVudDsgCisJfQorICA8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXY+PC9kaXY+CisgIDxydWJ5PjxydD5QYXNzIGlmIG5v
IGFzc2VydCBvciBjcmFzaCBpbiBEZWJ1Zy48L3J0PjwvcnVieT4KKyAgPHNjcmlwdD4KKyAgICBk
b2N1bWVudC5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7CisgIDwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251317</attachid>
            <date>2015-04-22 08:18:09 -0700</date>
            <delta_ts>2015-04-22 09:20:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144035-20150422081706.patch</filename>
            <type>text/plain</type>
            <size>158523</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzMDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWI4MjM3NmZiMDg1YzFm
ZWYzMjZlNTMyZTZkOGEwOTAxZTdmMDAzYS4uZDNiNGNiYjFjMDlhYTFhNTM2YzA0Mjc5ZjdkZWFj
MDJjYzY2ZjRmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1OSBAQAorMjAxNS0wNC0yMiAgWmFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIENyZWF0ZSBSZW5kZXJSdWJ5
VGV4dCBmb3IgPHJ0PiBvbmx5IHdoZW4gdGhlIHBhcmVudCByZW5kZXJlciBpcyBhIFJlbmRlclJ1
YnkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQw
MzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
OiBmYXN0L3J1YnkvcnVieS1ydC13aXRoLXJlZ2lvbi1jcmFzaC5odG1sCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMvUGx1Z2luUmVwbGFjZW1l
bnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1l
bnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1l
bnQubW06CisgICAgICAgIChXZWJDb3JlOjpRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudDo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMvWW91VHViZVBs
dWdpblJlcGxhY2VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OllvdVR1YmVQbHVnaW5SZXBs
YWNlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdp
bnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50Lmg6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL0hUTUxBcHBsZXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxB
cHBsZXRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRN
TEFwcGxldEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQXR0YWNobWVudEVsZW1lbnQ6OmNyZWF0ZUVsZW1l
bnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9IVE1MQXR0YWNobWVudEVsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxCUkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEJS
RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxCUkVs
ZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxCdXR0b25FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAg
ICAgICAqIGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxDYW52
YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MRGV0YWlsc0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICog
aHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIp
OgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxGaWVs
ZFNldEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZpZWxkU2V0RWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxGaWVsZFNldEVsZW1l
bnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEZyYW1lRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAg
KiBodG1sL0hUTUxGcmFtZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZVNldEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lU2V0RWxlbWVudDo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxJRnJhbWVFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0
bWwvSFRNTElGcmFtZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbWFnZUVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxJbWFnZUVsZW1lbnQuaDoKKyAgICAgICAgKiBo
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxl
bWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVs
ZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0
bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1ldGVyRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWV0ZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRNTE1ldGVyRWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9IVE1MUGx1Z0lu
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
UHJvZ3Jlc3NFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwv
SFRNTFByb2dyZXNzRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFJURWxlbWVudC5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5oLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFJURWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToK
KyAgICAgICAgKiBodG1sL0hUTUxSdWJ5RWxlbWVudC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5oLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFJ1YnlFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5oOgorICAgICAgICAqIGh0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAg
ICAgKiBodG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRhZ05h
bWVzLmluOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgor
ICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRN
TFZpZGVvRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvSFRNTFdCUkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFdCUkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9I
VE1MV0JSRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250
cm9sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRldGFpbHNNYXJrZXJDb250cm9sOjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250
cm9sLmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVm9s
dW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OmNyZWF0
ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxl
bWVudHMuaDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWV0ZXJJbm5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cik6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50Lmg6CisgICAgICAg
ICogaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlByb2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwv
c2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJU
aHVtYkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpT
bGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAq
IGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvc2hhZG93
L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q29u
dHJvbElubmVyQ29udGFpbmVyOjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIp
OgorICAgICAgICAqIGh0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oOgorICAg
ICAgICAqIGh0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYzo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9s
c0J1dHRvbkVsZW1lbnRNYWMuaDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250
cm9sc1Jvb3RFbGVtZW50TWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQ29udHJvbHNS
b290RWxlbWVudE1hYzo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBodG1sL3No
YWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmg6CisgICAgICAgICogaHRtbC90
cmFjay9WVFRDdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VlRUQ3VlQm94OjpjcmVhdGVFbGVt
ZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvdHJhY2svVlRUQ3VlLmg6CisgICAgICAgICog
bWF0aG1sL01hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToK
KyAgICAgICAgKiBtYXRobWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5oOgorICAgICAg
ICAqIG1hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXRo
TUxNYXRoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBtYXRobWwv
TWF0aE1MTWF0aEVsZW1lbnQuaDoKKyAgICAgICAgKiBtYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hdGhNTE1lbmNsb3NlRWxlbWVudDo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBtYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50
Lmg6CisgICAgICAgICogbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWF0aE1MU2VsZWN0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAg
ICAgICAgKiBtYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5oOgorICAgICAgICAqIG1hdGhtbC9N
YXRoTUxUZXh0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxUZXh0RWxlbWVu
dDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBtYXRobWwvTWF0aE1MVGV4dEVs
ZW1lbnQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNsb25lKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3Ip
OgorICAgICAgICAqIHN0eWxlL1JlbmRlclRyZWVQb3NpdGlvbi5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVHJlZVBvc2l0aW9uOjpSZW5kZXJUcmVlUG9zaXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZVBvc2l0aW9uOjpjb21wdXRlTmV4dFNpYmxpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZVBvc2l0aW9uOjppbnZhbGlkYXRlTmV4dFNpYmxp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZVBvc2l0aW9uOjpwcmV2aW91c1NpYmxp
bmdSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlUG9zaXRpb246Om5leHRT
aWJsaW5nUmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZVBvc2l0aW9uOjpp
c1JlbmRlcmVyUmVwYXJlbnRlZCk6CisgICAgICAgICogc3R5bGUvUmVuZGVyVHJlZVBvc2l0aW9u
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZVBvc2l0aW9uOjpwYXJlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZVBvc2l0aW9uOjpjYW5JbnNlcnQpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZVBvc2l0aW9uOjppbnNlcnQpOgorICAgICAgICAqIHN0
eWxlL1N0eWxlUmVzb2x2ZVRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OmNyZWF0
ZVJlbmRlcmVySWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OmludmFsaWRhdGVX
aGl0ZXNwYWNlT25seVRleHRTaWJsaW5nc0FmdGVyQXR0YWNoSWZOZWVkZWQpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OnRleHRSZW5kZXJlcklzTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlOjpSZW5kZXJUcmVlUG9zaXRpb246OnBhcmVudCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZTo6aXNSZW5kZXJlclJlcGFyZW50ZWQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6Om5leHRTaWJsaW5nUmVuZGVyZXIpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OlJlbmRlclRyZWVQb3NpdGlvbjo6UmVuZGVyVHJlZVBvc2l0aW9uKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSZW5kZXJUcmVlUG9zaXRpb246OmNh
bkluc2VydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UmVuZGVyVHJlZVBv
c2l0aW9uOjppbnNlcnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJlbmRl
clRyZWVQb3NpdGlvbjo6Y29tcHV0ZU5leHRTaWJsaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlOjpSZW5kZXJUcmVlUG9zaXRpb246OmludmFsaWRhdGVOZXh0U2libGluZyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6cHJldmlvdXNTaWJsaW5nUmVuZGVy
ZXIpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdBRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBz
dmcvU1ZHQUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FsdEdseXBoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKToKKyAgICAgICAgKiBzdmcvU1ZHQWx0R2x5cGhFbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR0NpcmNsZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ2lyY2xlRWxlbWVu
dDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBzdmcvU1ZHQ2lyY2xlRWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQ2xpcFBhdGhFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAg
ICAqIHN2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRGVmc0VsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRGVmc0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR0RlZnNFbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR0VsbGlwc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsbGlwc2VFbGVt
ZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdFbGxpcHNlRWxl
bWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0ZpbHRlckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAg
ICogc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRmlsdGVyUHJpbWl0
aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpbHRlclBy
aW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAg
ICAgKiBzdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmg6CisgICAgICAg
ICogc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0ZvcmVpZ25PYmplY3RFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAq
IHN2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdHRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdHRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKToKKyAgICAgICAgKiBzdmcvU1ZHR0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHR3Jh
cGhpY3NFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0dyYXBoaWNzRWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBzdmcvU1ZHR3JhcGhpY3NFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdJbWFnZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogc3Zn
L1NWR0ltYWdlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1l
bnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdNYXJrZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAq
IHN2Zy9TVkdNYXJrZXJFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR01hc2tFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hc2tFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVy
ZXIpOgorICAgICAgICAqIHN2Zy9TVkdNYXNrRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdQ
YXRoRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBzdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0
dGVybkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR1Bh
dHRlcm5FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6OmNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5o
OgorICAgICAgICAqIHN2Zy9TVkdSZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdSZWN0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBzdmcvU1ZH
UmVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAg
ICAqIHN2Zy9TVkdTVkdFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1N0b3BFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0b3BFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVy
ZXIpOgorICAgICAgICAqIHN2Zy9TVkdTdG9wRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdT
d2l0Y2hFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N3aXRjaEVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaDoK
KyAgICAgICAgKiBzdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdTeW1ib2xFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9T
VkdTeW1ib2xFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1RSZWZFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1RSZWZFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgor
ICAgICAgICAqIHN2Zy9TVkdUUmVmRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdUU3BhbkVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVFNwYW5FbGVtZW50OjpjcmVhdGVFbGVt
ZW50UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdUU3BhbkVsZW1lbnQuaDoKKyAgICAgICAg
KiBzdmcvU1ZHVGV4dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dEVsZW1l
bnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR1RleHRFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdUZXh0UGF0aEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAg
ICogc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcik6CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQuaDoKKwogMjAxNS0wNC0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgVmVjdG9yKGNvbnN0
IFZlY3RvcjxULCBvdGhlckNhcGFjaXR5LCBvdGhlck92ZXJmbG93QmVoYXZpb3VyPiYpIGNvbnN0
cnVjdG9yIGV4cGxpY2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDNkZjk0ZWYzOTRhZmE4ZmU1
MzA0NjM4MTNkZDEyOGMwZWZlMGFjNTYuLmNiNGZjNWYxZTMyMDYwOWFlMTU5Y2EzMjFjNjM3ZGZj
MzE2ZWUwZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yNTM4LDYgKzI1MzgsNyBAQCBzZXQo
V2ViQ29yZV9TT1VSQ0VTCiAgICAgc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuY3Bw
CiAKICAgICBzdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3BwCisgICAgc3R5bGUvUmVuZGVyVHJl
ZVBvc2l0aW9uLmNwcAogICAgIHN0eWxlL1N0eWxlRm9udFNpemVGdW5jdGlvbnMuY3BwCiAgICAg
c3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwCiAgICAgc3R5bGUvU3R5bGVSZXNvbHZl
VHJlZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9QbHVn
aW5SZXBsYWNlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1BsdWdpblJl
cGxhY2VtZW50LmgKaW5kZXggMDFjOTBiODY4YWNlZmFkZmE2ZjJiZWNmM2RkZjU0NjY2MTRmZDJl
Zi4uZGU3ODQzNDBmYzA0NTI1ZGY0ZTMyNGI5YTYyMjg1MDU3ZmI5MjMxNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1BsdWdpblJlcGxhY2VtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1BsdWdpblJlcGxhY2VtZW50LmgKQEAgLTM5
LDYgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSFRNTFBsdWdJbkVsZW1lbnQ7
CiBjbGFzcyBSZW5kZXJFbGVtZW50OwogY2xhc3MgUmVuZGVyU3R5bGU7CitjbGFzcyBSZW5kZXJU
cmVlUG9zaXRpb247CiBjbGFzcyBTaGFkb3dSb290OwogY2xhc3MgVVJMOwogCkBAIC01MCw3ICs1
MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEpTQzo6SlNPYmplY3QqIHNjcmlwdE9iamVjdCgp
IHsgcmV0dXJuIDA7IH0KIAogICAgIHZpcnR1YWwgYm9vbCB3aWxsQ3JlYXRlUmVuZGVyZXIoKSB7
IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihIVE1MUGx1Z0luRWxlbWVudCYsIFJlZjxSZW5kZXJTdHlsZT4m
JikgPSAwOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihIVE1MUGx1Z0luRWxlbWVudCYsIFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3Qg
UmVuZGVyVHJlZVBvc2l0aW9uJikgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgUGx1Z2luUmVwbGFj
ZW1lbnQoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9R
dWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVn
aW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmgKaW5kZXggYjBjNWVjMTc4MjRjZmY1ZDIz
ZjdkNThiOWM4ZWEwZDhiODI1NTRjZC4uOWE5NzJhYWZmMWYyMTAwODE1ZGRlYWVkYzUzODIyYWY4
YWM0N2IxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNr
VGltZVBsdWdpblJlcGxhY2VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVn
aW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgSlNDOjpKU09iamVjdCogc2NyaXB0T2JqZWN0KCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9zY3JpcHRPYmplY3Q7IH0KIAogICAgIHZpcnR1YWwgYm9vbCB3aWxsQ3JlYXRlUmVu
ZGVyZXIoKSBvdmVycmlkZSB7IHJldHVybiBtX21lZGlhRWxlbWVudDsgfQotICAgIHZpcnR1YWwg
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihIVE1MUGx1Z0lu
RWxlbWVudCYsIFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKEhUTUxQbHVnSW5FbGVt
ZW50JiwgUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVy
cmlkZTsKIAogICAgIEhUTUxWaWRlb0VsZW1lbnQqIHBhcmVudEVsZW1lbnQoKSB7IHJldHVybiBt
X21lZGlhRWxlbWVudC5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KaW5kZXggYWM3
NGZmNjEyMmZkOTY5MjRkZjM0MzNjOTMzYTdmN2M2M2M5ZTkzMy4uZDQ2Yjc3MDZiMjc2MGJlZWJi
ZGYyNTRmYjJlYmFkNGY4OWRlNDBjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQpAQCAtMTMw
LDEyICsxMzAsMTIgQEAgUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQ6On5RdWlja1RpbWVQbHVn
aW5SZXBsYWNlbWVudCgpCiAgICAgbV9tZWRpYUVsZW1lbnQgPSBudWxscHRyOwogfQogCi1SZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQ6OmNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihIVE1MUGx1Z0luRWxlbWVudCYgcGx1Z2luLCBSZWY8UmVuZGVyU3R5bGU+
JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gUXVpY2tUaW1lUGx1Z2luUmVwbGFj
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihIVE1MUGx1Z0luRWxlbWVudCYgcGx1Z2luLCBS
ZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYgaW5zZXJ0
aW9uUG9zaXRpb24pCiB7CiAgICAgQVNTRVJUX1VOVVNFRChwbHVnaW4sIG1fcGFyZW50RWxlbWVu
dCA9PSAmcGx1Z2luKTsKIAogICAgIGlmIChtX21lZGlhRWxlbWVudCkKLSAgICAgICAgcmV0dXJu
IG1fbWVkaWFFbGVtZW50LT5jcmVhdGVFbGVtZW50UmVuZGVyZXIoV1RGOjptb3ZlKHN0eWxlKSk7
CisgICAgICAgIHJldHVybiBtX21lZGlhRWxlbWVudC0+Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFdU
Rjo6bW92ZShzdHlsZSksIGluc2VydGlvblBvc2l0aW9uKTsKIAogICAgIHJldHVybiBudWxscHRy
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQ
bHVnaW5SZXBsYWNlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91
VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcAppbmRleCBhMDQyOTMzZDYxMDQ5MTJkNTlmOGVjZjIw
NzNmZGYyZTc5ZGY4NDEzLi44Zjk2YzlmMDI4YzcyOGZkYTAzYmI1MGE3ZWU5NmJhZmMzZGE5MDVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdp
blJlcGxhY2VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91
VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcApAQCAtNjcsMTQgKzY3LDE0IEBAIFlvdVR1YmVQbHVn
aW5SZXBsYWNlbWVudDo6WW91VHViZVBsdWdpblJlcGxhY2VtZW50KEhUTUxQbHVnSW5FbGVtZW50
JiBwbHVnaW4sIGNvCiAgICAgICAgIG1fYXR0cmlidXRlcy5hZGQocGFyYW1OYW1lc1tpXSwgcGFy
YW1WYWx1ZXNbaV0pOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gWW91VHViZVBsdWdp
blJlcGxhY2VtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoSFRNTFBsdWdJbkVsZW1lbnQmIHBs
dWdpbiwgUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKEhUTUxQbHVn
SW5FbGVtZW50JiBwbHVnaW4sIFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVy
VHJlZVBvc2l0aW9uJiBpbnNlcnRpb25Qb3NpdGlvbikKIHsKICAgICBBU1NFUlRfVU5VU0VEKHBs
dWdpbiwgbV9wYXJlbnRFbGVtZW50ID09ICZwbHVnaW4pOwogCiAgICAgaWYgKCFtX2VtYmVkU2hh
ZG93RWxlbWVudCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCi0gICAgcmV0dXJuIG1f
ZW1iZWRTaGFkb3dFbGVtZW50LT5jcmVhdGVFbGVtZW50UmVuZGVyZXIoV1RGOjptb3ZlKHN0eWxl
KSk7CisgICAgcmV0dXJuIG1fZW1iZWRTaGFkb3dFbGVtZW50LT5jcmVhdGVFbGVtZW50UmVuZGVy
ZXIoV1RGOjptb3ZlKHN0eWxlKSwgaW5zZXJ0aW9uUG9zaXRpb24pOwogfQogCiBib29sIFlvdVR1
YmVQbHVnaW5SZXBsYWNlbWVudDo6aW5zdGFsbFJlcGxhY2VtZW50KFNoYWRvd1Jvb3QqIHJvb3Qp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdp
blJlcGxhY2VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBs
dWdpblJlcGxhY2VtZW50LmgKaW5kZXggZWYwOGYzZDVmYTg4MzFkNzE0NWZiMGY2ZDIwOTI2ZDNi
ODhiNjMwZC4uYWQ5ZjAzOTI3ZmFmY2MxYzBjNTVmYWNmYjFiNjdhOTJjYjNmMTQ4OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2lu
UmVwbGFjZW1lbnQuaApAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyB5b3VU
dWJlVVJMKGNvbnN0IFN0cmluZyYgcmF3VVJMKTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgd2ls
bENyZWF0ZVJlbmRlcmVyKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9lbWJlZFNoYWRvd0VsZW1lbnQ7
IH0KLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoSFRNTFBsdWdJbkVsZW1lbnQmLCBSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihIVE1MUGx1Z0luRWxlbWVudCYsIFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJl
ZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgCiAgICAgSFRNTFBsdWdJbkVsZW1lbnQqIG1fcGFy
ZW50RWxlbWVudDsKICAgICBSZWZQdHI8WW91VHViZUVtYmVkU2hhZG93RWxlbWVudD4gbV9lbWJl
ZFNoYWRvd0VsZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvagppbmRleCAzZWJlNmI5MTczMzY4ZGNkZTU3ZDllMTMyYmYyNzNmZWU0OTQyNTA3
Li5jMWY4YzgyYWVkNjMyYTYwNmQ5ZTFhYmMwY2FmMmMyMGJhZDdjZmZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTE3OTk4LDYgKzE3
OTk4LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHN0b3JhZ2VcU3RvcmFnZU1hcC5j
cHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxzdG9yYWdlXFN0b3JhZ2VOYW1lc3Bh
Y2VQcm92aWRlci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxzdHlsZVxJbmxp
bmVUZXh0Qm94U3R5bGUuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cc3R5bGVc
UmVuZGVyVHJlZVBvc2l0aW9uLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHN0
eWxlXFN0eWxlRm9udFNpemVGdW5jdGlvbnMuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cc3R5bGVcU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwIiAvPgogICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cc3R5bGVcU3R5bGVSZXNvbHZlVHJlZS5jcHAiIC8+CkBAIC0yMTYzMSw2
ICsyMTYzMiw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxzdG9yYWdlXFN0b3JhZ2VO
YW1lc3BhY2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHN0b3JhZ2VcU3RvcmFn
ZU5hbWVzcGFjZVByb3ZpZGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxzdHls
ZVxJbmxpbmVUZXh0Qm94U3R5bGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHN0
eWxlXFJlbmRlclRyZWVQb3NpdGlvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
c3R5bGVcU3R5bGVGb250U2l6ZUZ1bmN0aW9ucy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cc3R5bGVcU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHN0eWxlXFN0eWxlUmVzb2x2ZVRyZWUuaCIgLz4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRl
eCBlMmJhMmU2YTUwZDNlOWU0MDZmYzZjMGEyOGQ5MTdjZjA3NWYyODJmLi5hOTM5NDMyYjA0ZjY1
Yjc4M2JkNWMzMTY4MDY4Mjc4ZGI4NmExNjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC02NjE2LDYgKzY2
MTYsOSBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cc3R5bGVcSW5saW5lVGV4dEJveFN0
eWxlLmNwcCI+CiAgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgor
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cc3R5bGVcUmVuZGVyVHJlZVBvc2l0aW9uLmNwcCI+
CisgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cc3R5bGVcU3R5bGVGb250U2l6ZUZ1bmN0aW9ucy5jcHAiPgogICAg
ICAgPEZpbHRlcj5jc3M8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTE0MDEyLDYgKzE0
MDE1LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxJbmxpbmVTdHlsZVNoZWV0
T3duZXIuaCI+CiAgICAgICA8RmlsdGVyPmRvbTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgor
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cc3R5bGVcUmVuZGVyVHJlZVBvc2l0aW9uLmgiPgor
ICAgICAgPEZpbHRlcj5jc3M8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHN0eWxlXFN0eWxlUmVzb2x2ZVRyZWUuaCI+CiAgICAgICA8RmlsdGVy
PmNzczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDg3ZDJlNzc4YjRjZTcyZDUxMGY5
MTk0NDVmMTJlNWIzY2FhZTMwMDcuLjdmOWVkMmRkMDkzNDVhYzIxMDFiMjFjZGJkNTQxODFiZGMy
NmUyZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTIxMTEsNiArMjExMSwxMCBAQAogCQk1ODAzNzE2MTFBNjZGMDBBMDBCQUY1
MTkgLyogQ2xpcFJlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTgwMzcxNUYxQTY2RjAwQTAwQkFGNTE5IC8qIENsaXBSZWN0LmNwcCAqLzsgfTsK
IAkJNTgwMzcxNjIxQTY2RjAwQTAwQkFGNTE5IC8qIENsaXBSZWN0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1ODAzNzE2MDFBNjZGMDBBMDBCQUY1MTkg
LyogQ2xpcFJlY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk1ODAzNzE2NDFBNjZGMUQzMDBCQUY1MTkgLyogTGF5ZXJGcmFnbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTgwMzcxNjMxQTY2RjFE
MzAwQkFGNTE5IC8qIExheWVyRnJhZ21lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk1ODIwNUQ4MTFBRTZGQTVBMDA4RTY3QkMgLyogUmVuZGVy
VHJlZVBvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1ODIwNUQ4MDFBRTZGQTVBMDA4RTY3QkMgLyogUmVuZGVyVHJlZVBvc2l0aW9uLmggKi87
IH07CisJCTU4MjA1RDgzMUFFNzA5MDEwMDhFNjdCQyAvKiBIVE1MUnVieUVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU4MjA1RDgyMUFFNzA5
MDEwMDhFNjdCQyAvKiBIVE1MUnVieUVsZW1lbnQuaCAqLzsgfTsKKwkJNTgyMDVEODUxQUU3MEFG
QTAwOEU2N0JDIC8qIEhUTUxSVEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU4MjA1RDg0MUFFNzBBRkEwMDhFNjdCQyAvKiBIVE1MUlRFbGVt
ZW50LmggKi87IH07CisJCTU4MjA1RDg3MUFFNzM2RDIwMDhFNjdCQyAvKiBSZW5kZXJUcmVlUG9z
aXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTgyMDVEODYxQUU3MzZEMjAwOEU2N0JDIC8qIFJlbmRlclRyZWVQb3NpdGlvbi5jcHAgKi87IH07
CiAJCTU4MkNCMDUzMUE3OEExNEIwMEFGRkNDNCAvKiBTaW1wbGVMaW5lTGF5b3V0VGV4dEZyYWdt
ZW50SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU4MkNCMDUyMUE3OEExNEIwMEFGRkNDNCAvKiBTaW1wbGVMaW5lTGF5b3V0VGV4dEZyYWdt
ZW50SXRlcmF0b3IuaCAqLzsgfTsKIAkJNTgyQ0IwNTUxQTc4QTJCMjAwQUZGQ0M0IC8qIFNpbXBs
ZUxpbmVMYXlvdXRUZXh0RnJhZ21lbnRJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1ODJDQjA1NDFBNzhBMkIyMDBBRkZDQzQgLyogU2lt
cGxlTGluZUxheW91dFRleHRGcmFnbWVudEl0ZXJhdG9yLmNwcCAqLzsgfTsKIAkJNTg1RDZERkMx
QTE1MzU1NjAwRkE0RjEyIC8qIFNpbXBsZUxpbmVMYXlvdXRSZXNvbHZlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1ODVENkRGQjFBMTUzNTU2MDBG
QTRGMTIgLyogU2ltcGxlTGluZUxheW91dFJlc29sdmVyLmNwcCAqLzsgfTsKQEAgLTkzMTIsNiAr
OTMxNiwxMCBAQAogCQk1ODAzNzE1RjFBNjZGMDBBMDBCQUY1MTkgLyogQ2xpcFJlY3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2xpcFJlY3QuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1ODAzNzE2MDFBNjZGMDBBMDBCQUY1MTkgLyogQ2xpcFJl
Y3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2xpcFJlY3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTgwMzcxNjMxQTY2RjFEMzAwQkFGNTE5IC8qIExheWVy
RnJhZ21lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5ZXJGcmFnbWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1ODIwNUQ4MDFBRTZGQTVBMDA4RTY3
QkMgLyogUmVuZGVyVHJlZVBvc2l0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbmRlclRyZWVQb3NpdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
ODIwNUQ4MjFBRTcwOTAxMDA4RTY3QkMgLyogSFRNTFJ1YnlFbGVtZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxSdWJ5RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1ODIwNUQ4NDFBRTcwQUZBMDA4RTY3QkMgLyogSFRNTFJURWxlbWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MUlRFbGVtZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU4MjA1RDg2MUFFNzM2RDIwMDhFNjdCQyAvKiBSZW5k
ZXJUcmVlUG9zaXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVuZGVyVHJlZVBvc2l0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTgy
Q0IwNTIxQTc4QTE0QjAwQUZGQ0M0IC8qIFNpbXBsZUxpbmVMYXlvdXRUZXh0RnJhZ21lbnRJdGVy
YXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaW1wbGVMaW5lTGF5b3V0
VGV4dEZyYWdtZW50SXRlcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTgy
Q0IwNTQxQTc4QTJCMjAwQUZGQ0M0IC8qIFNpbXBsZUxpbmVMYXlvdXRUZXh0RnJhZ21lbnRJdGVy
YXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaW1wbGVMaW5l
TGF5b3V0VGV4dEZyYWdtZW50SXRlcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1ODVENkRGQjFBMTUzNTU2MDBGQTRGMTIgLyogU2ltcGxlTGluZUxheW91dFJlc29sdmVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNpbXBsZUxpbmVMYXlv
dXRSZXNvbHZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzg3NSw2ICsx
Nzg4Myw4IEBACiAJCTkzRUVDMUVDMDlDMjg3NzcwMEM1MTVEMSAvKiBodG1sICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1ODIwNUQ4NDFBRTcwQUZBMDA4
RTY3QkMgLyogSFRNTFJURWxlbWVudC5oICovLAorCQkJCTU4MjA1RDgyMUFFNzA5MDEwMDhFNjdC
QyAvKiBIVE1MUnVieUVsZW1lbnQuaCAqLywKIAkJCQk0OTQ4NEZBRTEwMkNGMDFFMDAxODdERDMg
LyogY2FudmFzICovLAogCQkJCTFBODhBOTAxMTc1NTNDRDcwMDBDNzRGOSAvKiBmb3JtcyAqLywK
IAkJCQk5N0MxRjU1MTEyMjg1NTg4MDBFREU2MTYgLyogcGFyc2VyICovLApAQCAtMjIyMjYsNiAr
MjIyMzYsOCBAQAogCQlFNDc2M0Q0QTE3QjI3MDQ5MDBEMzUyMDYgLyogc3R5bGUgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTU4MjA1RDgwMUFFNkZBNUEw
MDhFNjdCQyAvKiBSZW5kZXJUcmVlUG9zaXRpb24uaCAqLywKKwkJCQk1ODIwNUQ4NjFBRTczNkQy
MDA4RTY3QkMgLyogUmVuZGVyVHJlZVBvc2l0aW9uLmNwcCAqLywKIAkJCQkxQzAxMDZGRTE5MjU5
NERGMDA4QTQyMDEgLyogSW5saW5lVGV4dEJveFN0eWxlLmNwcCAqLywKIAkJCQkxQzAxMDZGRjE5
MjU5NERGMDA4QTQyMDEgLyogSW5saW5lVGV4dEJveFN0eWxlLmggKi8sCiAJCQkJRTRENThFQjYx
N0I0RUQ4OTAwQ0JEQ0E4IC8qIFN0eWxlRm9udFNpemVGdW5jdGlvbnMuY3BwICovLApAQCAtMjQ3
ODgsNiArMjQ4MDAsNyBAQAogCQkJCUE4RUE3Q0FGMEExOTJCOUMwMEE4RUY1RiAvKiBIVE1MSFJF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODcxREUyNzBBMTUyQUM4MDBCMTJBNjggLyog
SFRNTEh0bWxFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODcxREUyQTBBMTUyQUM4MDBC
MTJBNjggLyogSFRNTElGcmFtZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTU4MjA1RDgz
MUFFNzA5MDEwMDhFNjdCQyAvKiBIVE1MUnVieUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4RUE3RDJEMEExOTM4NTUwMEE4RUY1RiAvKiBIVE1MSW1hZ2VFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBMTlEOTM0QjFBQTExQjFFMDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNv
bnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE3RDJCMEExOTM4NTUwMEE4RUY1
RiAvKiBIVE1MSW1hZ2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjYzNzYsNiArMjYzODks
NyBAQAogCQkJCUNEM0E0OTY1MTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXJMaXN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDRDY0MUVCNDE4MThGNUVEMDBFRTRDNDEgLyogU291cmNlQnVm
ZmVyUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDOEI1QUIxODA0N0ZGMTAwMTZFNjg1
IC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmggaW4gSGVhZGVycyAqLywKKwkJCQk1ODIw
NUQ4MTFBRTZGQTVBMDA4RTY3QkMgLyogUmVuZGVyVHJlZVBvc2l0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDREM4QjVBRDE4MDRBRTVEMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUNs
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODRBODFGNDIwRkM3RTAyNzAwOTU1MzAwIC8qIFNv
dXJjZUdyYXBoaWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3NjMwNkQ4MTdFMTQ5RDAwMDVBN0M0
RSAvKiBTb3VyY2VJbmZvLmggaW4gSGVhZGVycyAqLywKQEAgLTI2ODM3LDYgKzI2ODUxLDcgQEAK
IAkJCQkwRjU0REQwOTE4ODFENUY1MDAzRUVEQkIgLyogVG91Y2hFdmVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY1NEREMEExODgxRDVGNTAwM0VFREJCIC8qIFRvdWNoTGlzdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDcwMzM0RDcxNDU5RkZENTAwOEQ4RDQ1IC8qIFRyYWNrQmFzZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNTgyMDVEODUxQUU3MEFGQTAwOEU2N0JDIC8qIEhUTUxSVEVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJFODhFMEMyMTcxNUNFMjYwMDY1OEQ5OCAvKiBUcmFja0xp
c3RCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRTkxM0Q4MDE4MUVGOTI0MDBEQ0IwOUUgLyog
VHJhY2tQcml2YXRlQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkZBQzMwRkUxODRGQjE0NTAw
OEM0RjFFIC8qIFRyYWlsaW5nT2JqZWN0cy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzYxNCw2ICsy
NzYyOSw3IEBACiAJCQkJQkNDMDY1ODAwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3RMaXN0
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1MDMxQjNGMEE0NEVGQzcwMEY5OTJFMCAvKiBDbGlw
Ym9hcmRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREVBNzYzNTE0NjBCNzFBMDA4QjMx
RjEgLyogQ2xvY2suY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTgyMDVEODcxQUU3MzZEMjAwOEU2
N0JDIC8qIFJlbmRlclRyZWVQb3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREVBNzYz
NDE0NjBCNTZGMDA4QjMxRjEgLyogQ2xvY2tHZW5lcmljLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTlCRDhBOTVBMThCRUZDNzYwMDk4N0U5QSAvKiBDb2xsZWN0aW9uSW5kZXhDYWNoZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCMjc1MzU2NjBCMDUzODE0MDAyQ0U2NEYgLyogQ29sb3IuY3BwIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggZjk2ZmFjYmViM2UwNzM3MjVh
ZDA4MzIyNmI1ZmQ5YTE0YzJmOTYxOS4uYjIzOGQ4MThjYWQxODQ3Y2RlYTUzMDQyNzU1Yzc2ZmNm
MjcyOThmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTQ5Niw3ICsxNDk2LDcgQEAgYm9v
bCBFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKICAg
ICByZXR1cm4gc3R5bGUuZGlzcGxheSgpICE9IE5PTkU7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYm
IHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlv
biYpCiB7CiAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgV1RGOjpt
b3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCBkYmYzYjZjYjM2NjU1ZjA0ZDlh
NjdmZTE1NDZmNzE0ZmI1NDc4Y2NhLi41YTY4N2IwMWZhNDIzYTY4OTA3MzIxOTYxNjdkMjU5NzY0
NjA1NzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgY2xhc3MgUGxhdGZv
cm1Nb3VzZUV2ZW50OwogY2xhc3MgUGxhdGZvcm1XaGVlbEV2ZW50OwogY2xhc3MgUHNldWRvRWxl
bWVudDsKIGNsYXNzIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50OworY2xhc3MgUmVuZGVyVHJlZVBv
c2l0aW9uOwogY2xhc3MgU2hhZG93Um9vdDsKIAogZW51bSBTcGVsbGNoZWNrQXR0cmlidXRlU3Rh
dGUgewpAQCAtMjQyLDcgKzI0Myw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBjb3B5
Tm9uQXR0cmlidXRlUHJvcGVydGllc0Zyb21FbGVtZW50KGNvbnN0IEVsZW1lbnQmKSB7IH0KIAot
ICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYpOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpOwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0
IFJlbmRlclN0eWxlJik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBTaGFkb3dSb290KiBzaGFkb3dS
b290KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCmlu
ZGV4IDUxZmNmMmU1ZDliNWFhNGFkOWI1YjQ5YTY3OGNjMmE4OTEwYzA0NTEuLjViNWVhNjg4YzIx
ZDhhODAwMmNiZTNmZmUyOGQwYjFmMzk4YWYwYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEFwcGxldEVsZW1lbnQuY3BwCkBAIC03NSw3ICs3NSw3IEBAIGJvb2wgSFRNTEFwcGxldEVsZW1l
bnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogICAgIHJldHVy
biBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKHN0eWxlKTsKIH0KIAot
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxBcHBsZXRFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IEhUTUxBcHBsZXRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0
eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIGlmICghY2Fu
RW1iZWRKYXZhKCkpCiAgICAgICAgIHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRo
aXMsIFdURjo6bW92ZShzdHlsZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQXBwbGV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVu
dC5oCmluZGV4IGYwZGM5MjA3N2Y4ZWExODIyOTg1MDI5NjdmNzZkYTQ3ZWI0YTRjN2YuLmVhODk0
MWU1ODRiMjFjYzM1M2FhODEyYzBiYjVjNDZlZWFlN2ZiNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBcHBsZXRFbGVtZW50LmgKQEAgLTM3LDcgKzM3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21p
Y1N0cmluZyYpIG92ZXJyaWRlOwogICAgIAogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVl
ZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxl
bWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9u
Jikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIFJlbmRlcldpZGdldCogcmVuZGVyV2lkZ2V0TG9h
ZGluZ1BsdWdpbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVXaWRn
ZXQoUGx1Z2luQ3JlYXRpb25PcHRpb24pIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQXR0YWNobWVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQXR0YWNobWVudEVsZW1lbnQuY3BwCmluZGV4IDg0ZDgxNmUzZDA1MzM5ZDZiOTJmZjY0
YTU3MTViMzgxOWNmMGFiZDIuLjJmMjYxYTU5MmViODc2ZGI1Y2NhY2M0YjZkOWJiODdkOGI2M2U3
M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dGFjaG1lbnRFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5jcHAK
QEAgLTUxLDcgKzUxLDcgQEAgUmVmPEhUTUxBdHRhY2htZW50RWxlbWVudD4gSFRNTEF0dGFjaG1l
bnRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGEKICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBIVE1MQXR0YWNobWVudEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0K
IAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxBdHRhY2htZW50RWxlbWVudDo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBIVE1MQXR0YWNobWVudEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAg
ICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckF0dGFjaG1lbnQ+KCp0aGlzLCBXVEY6Om1v
dmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dGFj
aG1lbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVu
dC5oCmluZGV4IDU4Mjk2ODc1MDAwMmNkMjAxMGIxNzkxZjRhODg0OGQzZTE2MjJmMjMuLjQ2YTM0
ZWQ5MWVmMTI5YzA2ODM3ZGEyODY3NjY2ZWI3MjI2NDJlNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEF0dGFjaG1lbnRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQXR0YWNobWVudEVsZW1lbnQuaApAQCAtNDYsNyArNDYsNyBAQCBwcml2YXRlOgog
ICAgIEhUTUxBdHRhY2htZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQm
KTsKICAgICB2aXJ0dWFsIH5IVE1MQXR0YWNobWVudEVsZW1lbnQoKTsKIAotICAgIHZpcnR1YWwg
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVy
U3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRy
ZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHNob3VsZFNlbGVjdE9u
TW91c2VEb3duKCkgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBj
YW5Db250YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQlJFbGVtZW50LmNwcAppbmRleCA1Yjk1OGU2NTk3MGZlYzFk
MjdkNmFkZTc1NmRjMzBlNWZiMTkyMTNjLi41YmJjZmY3ZjRjMzIxMzhkMjZmMDVmNzU4Yjk4ZDUw
N2Y0OGQ4N2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5jcHAKQEAgLTcwLDcg
KzcwLDcgQEAgdm9pZCBIVE1MQlJFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25B
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmEKICAgICAgICAgSFRNTEVsZW1lbnQ6OmNv
bGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwog
fQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEJSRWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBIVE1MQlJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIGlmIChzdHlsZS5n
ZXQoKS5oYXNDb250ZW50KCkpCiAgICAgICAgIHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVhdGVG
b3IoKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQlJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQu
aAppbmRleCBmNDUzMzg0YzVhZjZiOTM3OTI2NmQ4OTljYWJkODQwMjUzNzYyYzg4Li4yM2U0ZmVm
YzY3NjhjZDQzMWJiYmY4ZjU2YzkzYjk5YzhkMmE1NzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxCUkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxC
UkVsZW1lbnQuaApAQCAtNDEsNyArNDEsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBp
c1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxl
UHJvcGVydGllcyYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJp
ZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQnV0dG9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25F
bGVtZW50LmNwcAppbmRleCA3MDg0ZGVkZWM1YWE5ZDNkNGNmMGQ4MzEzZDgxYmY5MTkzMDVmZTky
Li45NjNmZDgwYzZlMWE4ZmRkNTlhMmViY2ZmMWNiNzkyY2NiNTk4N2VhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcApAQCAtNTYsNyArNTYsNyBAQCB2b2lkIEhU
TUxCdXR0b25FbGVtZW50OjpzZXRUeXBlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSkKICAgICBz
ZXRBdHRyaWJ1dGUodHlwZUF0dHIsIHR5cGUpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gSFRNTEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEJ1dHRvbkVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJl
bmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckJ1
dHRvbj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QnV0dG9uRWxlbWVudC5oCmluZGV4IGZhZGY3ODVlOWI2Mjg5MDJmYTMxNDJhMWE1MWQ0NDNmM2Jh
YWYzZGQuLjVkN2RmODA2MjA3YWExMTdkZjgyODc5ZWFhMjgzN2ZkNTFiY2MxYWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHJpdmF0
ZToKIAogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBj
b25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAg
ICAgLy8gSFRNTEZvcm1Db250cm9sRWxlbWVudCBhbHdheXMgY3JlYXRlcyBvbmUsIGJ1dCBidXR0
b25zIGRvbid0IG5lZWQgaXQuCiAgICAgdmlydHVhbCBib29sIGFsd2F5c0NyZWF0ZVVzZXJBZ2Vu
dFNoYWRvd1Jvb3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAppbmRleCBlOTQ2NzJmMWRjNjJkODI0OTRh
NTVmNWU2YmUzYjQyMDdkY2VmNGYwLi5iMjJkOGMxNzQ0NzZkOTdmZDk3Y2UwMzAwOWIwMWJkMjBj
YThjYTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApAQCAt
MTA2LDcgKzEwNiw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0CiAgICAgSFRNTEVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0
eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxDYW52YXNFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBS
ZW5kZXJUcmVlUG9zaXRpb24mIGluc2VydGlvblBvc2l0aW9uKQogewogICAgIEZyYW1lKiBmcmFt
ZSA9IGRvY3VtZW50KCkuZnJhbWUoKTsKICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPnNjcmlwdCgp
LmNhbkV4ZWN1dGVTY3JpcHRzKE5vdEFib3V0VG9FeGVjdXRlU2NyaXB0KSkgewpAQCAtMTE1LDcg
KzExNSw3IEBAIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MQ2FudmFzRWxlbWVudDo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsCiAgICAgfQogCiAgICAgbV9yZW5kZXJl
cklzQ2FudmFzID0gZmFsc2U7Ci0gICAgcmV0dXJuIEhUTUxFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIoV1RGOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIEhUTUxFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIoV1RGOjptb3ZlKHN0eWxlKSwgaW5zZXJ0aW9uUG9zaXRpb24pOwog
fQogCiBib29sIEhUTUxDYW52YXNFbGVtZW50OjpjYW5Db250YWluUmFuZ2VFbmRQb2ludCgpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKaW5kZXggZTQ5YWM1MzZj
ZmNkZjg0MjY0NjJhMDk1ZDRjYTA3Yzc1ZDA1YjU0Mi4uOGVmMGVlZTliNzBjMjhhY2JhZDAzMDk3
Zjc4YzViYzg5ODAzNDk1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQu
aApAQCAtMTQxLDcgKzE0MSw3IEBAIHByaXZhdGU6CiAgICAgSFRNTENhbnZhc0VsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJy
aWRlOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+
JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBi
b29sIGNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCBib29sIGNhblN0YXJ0U2VsZWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKaW5kZXggNDQ1NzRiZWJiMjRhM2NjYmIwYjE5
MjQwNDE1NTRmMjUxMTJhZTRiOS4uZWQzZmNkZTFhMTI2ZmI0Y2FjZTQ0NThmMTZkYzRiM2ZkYWYx
Zjc0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcApAQCAt
MTExLDcgKzExMSw3IEBAIEhUTUxEZXRhaWxzRWxlbWVudDo6SFRNTERldGFpbHNFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkCiAgICAgQVNTRVJUKGhhc1Rh
Z05hbWUoZGV0YWlsc1RhZykpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTERl
dGFpbHNFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0
eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxEZXRhaWxzRWxlbWVudDo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJl
ZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyQmxvY2tGbG93
PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0
YWlsc0VsZW1lbnQuaAppbmRleCBkYmZmYzVmM2QxNjhhY2FhYjVkNWEzYTQ1NmI5Y2Y4ZmY4MTBk
YWI0Li4xOGQyNjU1Y2E0ZjM0NjIxOGJlOWU2ZDc2YmIzNjk4ODM1YzQ2MjFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgKQEAgLTM1LDcgKzM1LDcgQEAgcHVibGlj
OgogcHJpdmF0ZToKICAgICBIVE1MRGV0YWlsc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJl
bmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmNwcAppbmRleCBhNjYxMjM3MGViODM0Mzk3YWJjMGQ0OWZiYTFmNzYwZWMyNjY0
MzdjLi44MGRkZTZiYTE2NTI0NjBhMThmYTg3MGVmOGM0Y2U4ZDNhMjJhODAwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtODgwLDcgKzg4MCw3IEBAIGJvb2wgSFRNTEVsZW1l
bnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogICAgIHJldHVy
biBTdHlsZWRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKHN0eWxlKTsKIH0KIAotUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IEhUTUxFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJl
bmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBS
ZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVhdGVG
b3IoKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5o
CmluZGV4IDc5NDlkNjIxNmUyYzllMDVlNWNiYTUwY2I5MGY1NzYzZWI0Y2IyOTkuLmRlMmI4YjM4
Yjc3MjRmZGU2YjA0NWRmYzFmZDcyYTI3MTdiODNmZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmgKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogICAgIGJvb2wgaWVGb3JiaWRzSW5zZXJ0
SFRNTCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3Qg
UmVuZGVyU3R5bGUmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlk
ZTsKIAogICAgIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpIGNvbnN0IHsgcmV0dXJuIHZpcnR1YWxG
b3JtKCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAK
aW5kZXggYTEzM2E1MDhjMzY3NjY4YzNmZTlhZDcxNjg5Njk1MWQ3ZTdlYzAxYy4uYWMzMzJlODcw
MjI2MThjMmU0OTNiNjk3N2IwODNkNTVhYjg2YWQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCkBAIC0xNDksNyArMTQ5LDcgQEAgY29uc3QgQXRvbWlj
U3RyaW5nJiBIVE1MRmllbGRTZXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogICAg
IHJldHVybiBmaWVsZHNldDsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxGaWVs
ZFNldEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5
bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEZpZWxkU2V0RWxlbWVudDo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJl
ZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyRmllbGRzZXQ+
KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmll
bGRTZXRFbGVtZW50LmgKaW5kZXggNmJjNmUxY2JmNDA5Nzk3NjFjOGY0ZjIwZjc4ODcwM2E4MWQw
YzIxNi4uMGQ0ZTM2NzA2ZjE2YWMwZWJkY2JlYzA2ODljOTQwYmVlY2Q5ZDdmNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmgKQEAgLTUxLDcgKzUxLDcgQEAgcHJp
dmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCBpc0VudW1lcmF0YWJsZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0
IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVy
U3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZVdpbGxWYWxpZGF0ZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpc2FibGVkQXR0cmlidXRlQ2hhbmdl
ZCgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5jcHAKaW5k
ZXggOWRiMDI1NTBkZDRlMzA5MDFiNDA4ODNlODY1ODJmN2VjODIwY2ZmZC4uYWYxYTUyMmJjYWM5
MjM0MjhhMDU5YTAxZTJkYWQ5ZmNiN2NmNWMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRnJhbWVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
cmFtZUVsZW1lbnQuY3BwCkBAIC01Myw3ICs1Myw3IEBAIGJvb2wgSFRNTEZyYW1lRWxlbWVudDo6
cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpCiAgICAgcmV0dXJuIGlzVVJMQWxs
b3dlZCgpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEZyYW1lRWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBIVE1MRnJhbWVFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewog
ICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJGcmFtZT4oKnRoaXMsIFdURjo6bW92ZShz
dHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuaAppbmRleCBjYTBh
Zjc0MGQ5NjllY2RkNGI4NmNjM2Y4NTI5NWYyOWY1MTJkYmY0Li44NzY4OGMwN2UxMzQ0MjY3OGUx
Yzk5ZjdhODYzNWM1ZjdhNTFjODY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGcmFtZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1l
bnQuaApAQCAtNDIsNyArNDIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRBdHRh
Y2hSZW5kZXJlcnMoKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVl
ZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxl
bWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9u
Jikgb3ZlcnJpZGU7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAKaW5kZXggNjc2NjdkNTU0MmM2
ZGNiZDI0YzVmNmE4Y2M2Mzk3YTlmMjBkNGZmOS4uMWI3ZGQxOGQ0ZjcwNDZmZWY4MjkwMDJmNzcw
N2NhY2EwMGM0OWY5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVT
ZXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1l
bnQuY3BwCkBAIC0xNTcsNyArMTU3LDcgQEAgYm9vbCBIVE1MRnJhbWVTZXRFbGVtZW50OjpyZW5k
ZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKICAgICByZXR1cm4gc3R5bGUu
aXNTdHlsZUF2YWlsYWJsZSgpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEZy
YW1lU2V0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBz
dHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MRnJhbWVTZXRFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJU
cmVlUG9zaXRpb24mKQogewogICAgIGlmIChzdHlsZS5nZXQoKS5oYXNDb250ZW50KCkpCiAgICAg
ICAgIHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIFdURjo6bW92ZShzdHls
ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaAppbmRleCBmYmIz
Y2EwNmJhZWNjM2Q0NmQ3ZjQ2YjM5NTJjNDUzOTBmNzViZGFiLi42Y2Q4NWRjNDdhNThiMWU3NTU4
YWMwNmNlMDFhYTg0ZDY5NmUxMDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGcmFtZVNldEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNl
dEVsZW1lbnQuaApAQCAtNTYsNyArNTYsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lk
IHdpbGxBdHRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVy
ZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQ
b3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRI
YW5kbGVyKEV2ZW50Kikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1l
RWxlbWVudC5jcHAKaW5kZXggNTM3ZDIzZTQ0YzA4ZmZiNDU1ZDQ4MzgyZDQyOTZkMzhmNDQzYjZl
Ny4uZTlkNTc1OTVlYzlkYzc3OWU1ODM4MGU0OGVjZTU0YzY2NDkzNGQ3YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgYm9vbCBI
VE1MSUZyYW1lRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5
bGUpCiAgICAgcmV0dXJuIGlzVVJMQWxsb3dlZCgpICYmIHN0eWxlLmRpc3BsYXkoKSAhPSBOT05F
OwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTElGcmFtZUVsZW1lbnQ6OmNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gSFRNTElGcmFtZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAg
cmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlcklGcmFtZT4oKnRoaXMsIFdURjo6bW92ZShzdHls
ZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCmluZGV4IDU4ODlh
MTlhMDFmNTdhNzI5NWEzZDc0YjYwNDUyMzYxMTEyNTdiZDIuLmEyZGJkNTY0ZTFkYmZjOTM2ODM1
NTRmMGU3MGRhYTg5MzIyZDA2MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElGcmFtZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVt
ZW50LmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY29sbGVj
dFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiAKICAg
ICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJy
aWRlOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+
JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKaW5k
ZXggODk5NTRjZjQzNTk3NWIzNWM1NzY5YWQ3ZmNmZTBhMTMzNTgxYjk3Ny4uNjJlYTZmYzFjNjhl
ZGVmMGVlNmIxZjY5NzhkYTgxNTA1MGI3OWJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bWFnZUVsZW1lbnQuY3BwCkBAIC0yMDEsNyArMjAxLDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBI
VE1MSW1hZ2VFbGVtZW50OjphbHRUZXh0KCkgY29uc3QKICAgICByZXR1cm4gZmFzdEdldEF0dHJp
YnV0ZSh0aXRsZUF0dHIpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEltYWdl
RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkK
K1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MSW1hZ2VFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRp
b24mKQogewogICAgIGlmIChzdHlsZS5nZXQoKS5oYXNDb250ZW50KCkpCiAgICAgICAgIHJldHVy
biBSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAppbmRleCAwOGI5YmE4NTM4NTI2NmM1NWM2
NmRmYTg2MTM1N2RmZTEzOGEyMTNmLi5mMDY1ODQ5ZjA2NTMxNzI4Y2E4ZDUxMDEwMjdjMDlhOTNi
OTdiNjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaApAQCAtMTAxLDcg
KzEwMSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNl
bnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5n
JiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lk
IGRpZEF0dGFjaFJlbmRlcmVycygpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYp
IG92ZXJyaWRlOwogICAgIHZvaWQgc2V0QmVzdEZpdFVSTEFuZERQUkZyb21JbWFnZUNhbmRpZGF0
ZShjb25zdCBJbWFnZUNhbmRpZGF0ZSYpOwogCiAgICAgdmlydHVhbCBib29sIGNhblN0YXJ0U2Vs
ZWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmNwcAppbmRleCBlYzI0N2NlOThmMmJmODAzYzZlM2ZjMWUzMTcxYzg0MTE3MTBjOTBjLi43
ZTAzN2E5MzgwNDM5NWU0ZjhkNGZhMTY1ODIzNzY1ZjA0Zjc4NmNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTc3MSw3ICs3NzEsNyBAQCBib29sIEhUTUxJ
bnB1dEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQog
ICAgIHJldHVybiBtX2lucHV0VHlwZS0+cmVuZGVyZXJJc05lZWRlZCgpICYmIEhUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKHN0eWxlKTsKIH0KIAotUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTElu
cHV0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHls
ZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gbV9pbnB1dFR5cGUt
PmNyZWF0ZUlucHV0UmVuZGVyZXIoV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDIwZGI5NjE0YzdhZGRkZDU2YjNhMTk3ZWE3Nzcx
NDM3N2UwNGI4M2UuLjliMjc1MDQxOWI0ZmM4NzI5Njk5MGYyZmVjODU4ZTUwZTllZDhhZGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0yMDAsNyArMjAwLDcgQEAg
cHVibGljOgogICAgIGJvb2wgY2FuSGF2ZVNlbGVjdGlvbigpIGNvbnN0OwogCiAgICAgdmlydHVh
bCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSBmaW5h
bDsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0
eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZSBmaW5hbDsKICAgICB2
aXJ0dWFsIHZvaWQgd2lsbEF0dGFjaFJlbmRlcmVycygpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkRGV0YWNoUmVuZGVyZXJzKCkgb3ZlcnJpZGUgZmluYWw7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA2NDA0ZDQzNGI4Y2U2ZmFiN2Q2YzYy
NjkwODg3ZGY0MWQxZmI2ZmNhLi5lN2I0ZGZhODBhMGMzMmI5YTg1OTIwNDE4YTA4MjM1MmE0ZmRl
NmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTU3NCw3
ICs1NzQsNyBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3Qg
UmVuZGVyU3R5bGUmIHN0eWxlKQogICAgIHJldHVybiBjb250cm9scygpICYmIEhUTUxFbGVtZW50
OjpyZW5kZXJlcklzTmVlZGVkKHN0eWxlKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IEhUTUxNZWRpYUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+
JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTE1lZGlhRWxlbWVudDo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVy
VHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWVkaWE+
KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmgKaW5kZXggMTQwOWU2YjBiNjA3NDExMWU2MWNiOTFhNjM3NTM2OWQ2NmExYzFlOC4u
MDZhNDhjZTY1MzViNjE4NzgwNjc4YTM5NjBlMzA1YTIwNTE0OWNhMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTQ4MSw3ICs0ODEsNyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdm9pZCBlbmRJZ25vcmluZ1RyYWNrRGlzcGxheVVwZGF0ZVJlcXVlc3RzKCk7CiAjZW5kaWYK
IAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYs
IGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAjaWYgRU5BQkxFKE1FRElB
X0NPTlRST0xTX1NDUklQVCkKICAgICBib29sIG1lZGlhQ29udHJvbHNEZXBlbmRPblBhZ2VTY2Fs
ZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFDb250cm9sc0RlcGVuZE9uUGFnZVNjYWxl
RmFjdG9yOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcAppbmRleCAw
ZGFkNDBhYjhmYzYwMTdkOWM4ODAxNDliODdkMTllZDViOGRlNGY1Li4yMmIyZjM5ODFlMzk1MjM3
OTNmNWUyYjMxZTZjYzVkMjhiZmE3NzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZXRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVy
RWxlbWVudC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgUmVmPEhUTUxNZXRlckVsZW1lbnQ+IEhUTUxN
ZXRlckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2MKICAg
ICByZXR1cm4gbWV0ZXI7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MTWV0ZXJF
bGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQor
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxNZXRlckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlv
biYpCiB7CiAgICAgaWYgKCFkb2N1bWVudCgpLnBhZ2UoKS0+dGhlbWUoKS5zdXBwb3J0c01ldGVy
KHN0eWxlLmdldCgpLmFwcGVhcmFuY2UoKSkpCiAgICAgICAgIHJldHVybiBSZW5kZXJFbGVtZW50
OjpjcmVhdGVGb3IoKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZXRlckVsZW1lbnQuaAppbmRleCA1NGFiOWZjYTk4MmEwMmJhN2IyMWI0Njg1MGEyZmVlNDE3
NmM5MDAwLi5kMjM2NGIxN2MwZGZlNTQwNWE0ZGRiMmRkOTBhYjUyMTYyMjkwN2Y0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaApAQCAtNzAsNyArNzAsNyBAQCBwcml2YXRl
OgogCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRMYWJlbHMoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJl
bmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAppbmRleCAwZjQxMmIyZDMxMmZhMmQyYTcxMzliMzZh
ZjgwYWY2OTZlZGRkZjMwLi4yMjA0NmVhODQzNTU2YzQ4MGYxM2I3OTU2MzJlNzkzY2ZhNzQzYTk5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcApAQCAtMjkxLDEw
ICsyOTEsMTAgQEAgTlBPYmplY3QqIEhUTUxQbHVnSW5FbGVtZW50OjpnZXROUE9iamVjdCgpCiAK
ICNlbmRpZiAvKiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkgKi8KIAotUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IEhUTUxQbHVnSW5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVm
PFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxQbHVn
SW5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxl
LCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mIGluc2VydGlvblBvc2l0aW9uKQogewogICAgIGlm
IChtX3BsdWdpblJlcGxhY2VtZW50ICYmIG1fcGx1Z2luUmVwbGFjZW1lbnQtPndpbGxDcmVhdGVS
ZW5kZXJlcigpKQotICAgICAgICByZXR1cm4gbV9wbHVnaW5SZXBsYWNlbWVudC0+Y3JlYXRlRWxl
bWVudFJlbmRlcmVyKCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIG1f
cGx1Z2luUmVwbGFjZW1lbnQtPmNyZWF0ZUVsZW1lbnRSZW5kZXJlcigqdGhpcywgV1RGOjptb3Zl
KHN0eWxlKSwgaW5zZXJ0aW9uUG9zaXRpb24pOwogCiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVy
PFJlbmRlckVtYmVkZGVkT2JqZWN0PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgKaW5kZXggOGE3NWJiZTc1YjhiMWZiYzBi
YTlmODIzMjY5ZWM4ZmVjYWYyZDVkYy4uNjI5NGQxNGRkZGY4NjBjYmJiYWQ2ODZlMTJlZmNjMTE3
ZjdmNjZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaApAQCAtMTAz
LDcgKzEwMyw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFu
ZGxlcihFdmVudCopIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHJlcXVlc3RPYmplY3Qo
Y29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMpOwot
ICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNv
bnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRB
ZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QqKSBvdmVycmlkZTsKIAogICAgIC8vIFN1
YmNsYXNzZXMgc2hvdWxkIHVzZSBndWFyZGVkRGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQgaW5zdGVh
ZCBvZiBjYWxsaW5nIGRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50IGRpcmVjdGx5LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKaW5kZXggODNmMWI3ZTYw
ZTczMTkzYWVkMDFjMTdmNTE0YWUwYjVkOTAwYzM2My4uMTE5MDUxM2E5ZmRlNDMxNzZhNWNmYTRh
MzZmNDgyMjE5YjEzMGFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1
Z0luSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5J
bWFnZUVsZW1lbnQuY3BwCkBAIC0xODksMTIgKzE4OSwxMiBAQCBib29sIEhUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQ6OndvdWxkTG9hZEFzTmV0c2NhcGVQbHVnaW4oY29uc3QgU3RyaW5nJiB1cmwsIGNv
bnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRN
TFBsdWdJbkltYWdlRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHls
ZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25z
dCBSZW5kZXJUcmVlUG9zaXRpb24mIGluc2VydGlvblBvc2l0aW9uKQogewogICAgIEFTU0VSVCgh
ZG9jdW1lbnQoKS5pblBhZ2VDYWNoZSgpKTsKIAogICAgIGlmIChkaXNwbGF5U3RhdGUoKSA+PSBQ
cmVwYXJpbmdQbHVnaW5SZXBsYWNlbWVudCkKLSAgICAgICAgcmV0dXJuIEhUTUxQbHVnSW5FbGVt
ZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoV1RGOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJl
dHVybiBIVE1MUGx1Z0luRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFdURjo6bW92ZShz
dHlsZSksIGluc2VydGlvblBvc2l0aW9uKTsKIAogICAgIC8vIE9uY2UgYSBQbHVnSW4gRWxlbWVu
dCBjcmVhdGVzIGl0cyByZW5kZXJlciwgaXQgbmVlZHMgdG8gYmUgdG9sZCB3aGVuIHRoZSBEb2N1
bWVudCBnb2VzCiAgICAgLy8gaW5hY3RpdmUgb3IgcmVhY3RpdmF0ZXMgc28gaXQgY2FuIGNsZWFy
IHRoZSByZW5kZXJlciBiZWZvcmUgZ29pbmcgaW50byB0aGUgcGFnZSBjYWNoZS4KQEAgLTIxOCw3
ICsyMTgsNyBAQCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFBsdWdJbkltYWdlRWxlbWVu
dDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZQogICAgIGlmIChpc0ltYWdlVHlwZSgp
KQogICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVySW1hZ2U+KCp0aGlzLCBXVEY6
Om1vdmUoc3R5bGUpKTsKIAotICAgIHJldHVybiBIVE1MUGx1Z0luRWxlbWVudDo6Y3JlYXRlRWxl
bWVudFJlbmRlcmVyKFdURjo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBIVE1MUGx1Z0luRWxl
bWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFdURjo6bW92ZShzdHlsZSksIGluc2VydGlvblBv
c2l0aW9uKTsKIH0KIAogYm9vbCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjaGlsZFNob3VsZENy
ZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmIGNoaWxkKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaAppbmRleCA5ZjI4ZTJlZTg2ZDFhOTJhN2FkMmE4
NWQxZWMxN2NkZDI1ZWI2OGMxLi5lMDQ5NWI3NGQyNGM3YWU3YTc1ZDZhZTQ1ZDNhYzQ2ZTg1ZjNi
NTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaApA
QCAtMTE3LDcgKzExNyw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGZpbmlzaFBhcnNp
bmdDaGlsZHJlbigpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRVc2Vy
QWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QqKSBvdmVycmlkZSBmaW5hbDsKIAotICAgIHZpcnR1
YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENy
ZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJv
b2wgd2lsbFJlY2FsY1N0eWxlKFN0eWxlOjpDaGFuZ2UpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZSBmaW5hbDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCmluZGV4IDAxMmM2ZGYxMjk4MTBj
NzRkYzZmNDRhNjIwNDRmNTMzZGVkZGQ3YzMuLjg3ZjBlMzcwY2EwMmMzYWM5YmIxNDZmYjliZDA3
NmViYjRhNDg1MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNz
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50
LmNwcApAQCAtNTYsNyArNTYsNyBAQCBSZWY8SFRNTFByb2dyZXNzRWxlbWVudD4gSFRNTFByb2dy
ZXNzRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbQogICAgIHJldHVy
biBwcm9ncmVzczsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxQcm9ncmVzc0Vs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFByb2dyZXNzRWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikKIHsKICAgICBpZiAoIXN0eWxlLmdldCgpLmhhc0FwcGVhcmFuY2UoKSkKICAgICAgICAg
cmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCmluZGV4IGY3ZGMwYzBh
YTIzNDdiM2YyNjJmZjkxMzgwNWQ3MGIyYzY4YjVhNWQuLmI3YjQ1YTU5YWFkOTQ1NGI4MTJmYTAz
ZDAzODllZTVhOGEzMjMxYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBy
b2dyZXNzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxl
bWVudC5oCkBAIC01Miw3ICs1Miw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZEFwcGVhckluZGV0ZXJtaW5hdGUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wg
c3VwcG9ydExhYmVscygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZp
cnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJl
bmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3Vs
ZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKICAgICBSZW5kZXJQ
cm9ncmVzcyogcmVuZGVyUHJvZ3Jlc3MoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUlRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxSVEVs
ZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iNzIwNTVkZTdlNDFkNGExNDY2ZDA1MjQxZWZlMWQyYzEwMTYy
MmUxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUlRFbGVtZW50
LmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSFRNTFJURWxlbWVudF9o
CisjZGVmaW5lIEhUTUxSVEVsZW1lbnRfaAorCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJSZW5kZXJSdWJ5LmgiCisjaW5jbHVkZSAi
UmVuZGVyUnVieVRleHQuaCIKKyNpbmNsdWRlICJSZW5kZXJUcmVlUG9zaXRpb24uaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBIVE1MUlRFbGVtZW50IGZpbmFsIDogcHVibGljIEhU
TUxFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEhUTUxSVEVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MUlRFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIEhUTUxSVEVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorICAgICAgICA6IEhUTUxF
bGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQorICAgIHsKKyAgICAgICAgQVNTRVJUKGhhc1RhZ05h
bWUoSFRNTE5hbWVzOjpydFRhZykpOworICAgIH0KKworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNv
bnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOworfTsKKworCitpbmxpbmUgUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxSVEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYgaW5zZXJ0
aW9uUG9zaXRpb24pCit7CisgICAgLy8gPz8/Pz8/Pz8/Pz8/Pz8/Pz8/PyByZW5kZXIgdHJlZSBz
dHJ1Y3R1cmUgcmVxdWlyZXMgYmxhaCBibGFoIHRyZWF0IDxydD4gYXMgcnVieSB0ZXh0IE9OTFkg
aWYgdGhlIHBhcmVudCBpcyBydWJ5LgorICAgIGlmIChpc1J1YnkoJmluc2VydGlvblBvc2l0aW9u
LnBhcmVudCgpKSkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclJ1YnlUZXh0
PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIEhUTUxFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIoV1RGOjptb3ZlKHN0eWxlKSwgaW5zZXJ0aW9uUG9zaXRpb24pOwor
fQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUnVi
eUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFJ1YnlFbGVtZW50LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTQyNzM4NTE1MTY1N2FlMzRjNmJhZWYwOTU0OGEyOGQ1MmZmNmY3MAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFJ1YnlFbGVtZW50LmgKQEAgLTAsMCAr
MSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSFRNTFJ1YnlFbGVtZW50X2gKKyNkZWZpbmUg
SFRNTFJ1YnlFbGVtZW50X2gKKworI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisjaW5jbHVkZSAi
UmVuZGVyUnVieS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEhUTUxSdWJ5RWxl
bWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxIVE1MUnVieUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYgZG9jdW1lbnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBI
VE1MUnVieUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICB9CisKK3ByaXZhdGU6Cisg
ICAgSFRNTFJ1YnlFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bWVudCkKKyAgICAgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKKyAg
ICB7CisgICAgICAgIEFTU0VSVChoYXNUYWdOYW1lKEhUTUxOYW1lczo6cnVieVRhZykpOworICAg
IH0KKworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92
ZXJyaWRlOworfTsKKworCitpbmxpbmUgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxSdWJ5
RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwg
Y29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJiBpbnNlcnRpb25Qb3NpdGlvbikKK3sKKyAgICBpZiAo
c3R5bGUuZ2V0KCkuZGlzcGxheSgpID09IElOTElORSkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJl
bmRlcmVyPFJlbmRlclJ1YnlBc0lubGluZT4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOworICAg
IGlmIChzdHlsZS5nZXQoKS5kaXNwbGF5KCkgPT0gQkxPQ0sgfHwgc3R5bGUuZ2V0KCkuZGlzcGxh
eSgpID09IElOTElORV9CTE9DSykKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRl
clJ1YnlBc0Jsb2NrPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIEhUTUxF
bGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoV1RGOjptb3ZlKHN0eWxlKSwgaW5zZXJ0aW9u
UG9zaXRpb24pOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmNwcAppbmRleCA4Yjg3OTNhZmJjZTg0NTRlODJiNjQ4MTc5MDU2YTg5OTU1OGFl
MjU0Li5kNTA1ZjNmMTBhMGM0ODUyNDQ1OGI5NDU0ZDRlZWJkNGM5NTdkNzcwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApAQCAtMzUwLDcgKzM1MCw3IEBAIGJv
b2wgSFRNTFNlbGVjdEVsZW1lbnQ6OmNhblNlbGVjdEFsbCgpIGNvbnN0CiAgICAgcmV0dXJuICF1
c2VzTWVudUxpc3QoKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxTZWxlY3RF
bGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQor
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxTZWxlY3RFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRp
b24mKQogewogI2lmICFQTEFURk9STShJT1MpCiAgICAgaWYgKHVzZXNNZW51TGlzdCgpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCmluZGV4IDg4N2EwNmE2YjBlZmY2NDEz
MzkzZjc1NzBjZTAxNGQyNDNmYzc2NDIuLmExNTVkZjBhYjc5MDE5YWI1YmExNjJjZjg2ZDVkOTA1
MDQyZmE1MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKQEAgLTEz
OCw3ICsxMzgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0
dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHls
ZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBi
b29sIGFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wpIG92ZXJyaWRlOwogCiAgICAg
dmlydHVhbCB2b2lkIHJlc2V0KCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
dW1tYXJ5RWxlbWVudC5jcHAKaW5kZXggYTAxYzAxMjNhZWU3OGVkZjA2MGQ2NTY0ZDZjY2E4Zjgz
ZTMwYTgzMS4uMWM0Y2MzYjk2OTc0ZWMzMjg3MGI4MTIxODFkOTZkNDE1ZWU0ZTIzNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcApAQCAtNjUsNyArNjUsNyBA
QCBIVE1MU3VtbWFyeUVsZW1lbnQ6OkhUTUxTdW1tYXJ5RWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZAogICAgIEFTU0VSVChoYXNUYWdOYW1lKHN1bW1hcnlU
YWcpKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxTdW1tYXJ5RWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBIVE1MU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7
CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckJsb2NrRmxvdz4oKnRoaXMsIFdURjo6
bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3Vt
bWFyeUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmgK
aW5kZXggMjMzYWE0MmVkZDY1ZjI5ZjE2ZjhlZDVkNjhmN2E2OGQwYzcwMDQzZi4uNDgwOWNlNDQ1
NWM0YzQ0NjdkZDBhOTdkM2E1MWI2MDU1OTZmNjI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTdW1tYXJ5RWxlbWVudC5oCkBAIC0zNyw3ICszNyw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAg
ICAgSFRNTFN1bW1hcnlFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwog
Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwg
Y29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGNo
aWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kikgb3ZlcnJpZGU7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KaW5kZXggMGQwOTg1ZDBjZmY4YzJhYTgxNTE5MzYw
MTQ4YWQyYTVkNTk3NjMyMi4uZGVmNTg4YWMwMWNhOTM0ZTU4MmRjMjcyNWJlMDhjNDU3YTFiNDc3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KQEAgLTEwMyw5ICsxMDMsOSBAQCBw
cm9ncmVzcyBpbnRlcmZhY2VOYW1lPUhUTUxQcm9ncmVzc0VsZW1lbnQKIHEgaW50ZXJmYWNlTmFt
ZT1IVE1MUXVvdGVFbGVtZW50CiByYiBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBycCBpbnRl
cmZhY2VOYW1lPUhUTUxFbGVtZW50Ci1ydCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CitydCBp
bnRlcmZhY2VOYW1lPUhUTUxSVEVsZW1lbnQsIEpTSW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAog
cnRjIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKLXJ1YnkgaW50ZXJmYWNlTmFtZT1IVE1MRWxl
bWVudAorcnVieSBpbnRlcmZhY2VOYW1lPUhUTUxSdWJ5RWxlbWVudCwgSlNJbnRlcmZhY2VOYW1l
PUhUTUxFbGVtZW50CiBzIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIHNhbXAgaW50ZXJmYWNl
TmFtZT1IVE1MRWxlbWVudAogc2NyaXB0IGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCmluZGV4IGJiM2I0
NTJkYWFmMzVlMzM4ZjBkZGM5ZjdhNTc1YTI0OGUyZWQ5YmQuLjRhOTY0ZjhmYWY3NjVjOThlOGJi
ZmI5ZGY0NGI1YWIyNmFkNWU5NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFy
ZWFFbGVtZW50LmNwcApAQCAtMjA5LDcgKzIwOSw3IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWlj
CiAgICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1l
LCB2YWx1ZSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MVGV4dEFyZWFFbGVt
ZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlv
biYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclRleHRDb250cm9sTXVsdGlM
aW5lPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5oCmluZGV4IGQ0NTZmMWJhNzViMGQ4ZWViY2UwODY5MzU1NjI1MTRh
YWU0YzQwMDQuLmMzNThjYzEwMzAxZjE4MjdiMWY5YzA4YWIxZGRlMzhkNjQyMGQ1N2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCkBAIC0xMDEsNyArMTAxLDcg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9v
bCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0
eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmLCBib29s
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzZXQoKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIGJvb2wgaGFzQ3VzdG9tRm9jdXNMb2dpYygpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKaW5kZXggYWYyYTU5ODg5NWM5ODhjNjMxNTM1
ODJiZDkzNTEzZTM3MDA3MzdlYy4uMjk5ZDcyNDkxZGFmYjNjM2YzODMxY2FmZTkwZTdmMDY0YTZl
NjkxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCkBAIC02OCw3
ICs2OCw3IEBAIGJvb2wgSFRNTFZpZGVvRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBS
ZW5kZXJTdHlsZSYgc3R5bGUpCiAgICAgcmV0dXJuIEhUTUxFbGVtZW50OjpyZW5kZXJlcklzTmVl
ZGVkKHN0eWxlKTsgCiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MVmlkZW9FbGVt
ZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxWaWRlb0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYp
CiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclZpZGVvPigqdGhpcywgV1RGOjpt
b3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRl
b0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCmluZGV4
IDlmM2QxOWNjNDJjMzM0MDdhYzRhMzhiYzkyZjFmOWY3Mjc1ZjU2NjguLmU4ZDZjZDkwMDY2MjI5
N2RjYzM3N2Y3NmI5YjRjMDVlZDBjNjU4MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFZpZGVvRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVv
RWxlbWVudC5oCkBAIC03Niw3ICs3Niw3IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZERpc3Bs
YXlQb3N0ZXJJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIGRpc3BsYXlNb2RlKCkgPT0gUG9zdGVyIHx8
IGRpc3BsYXlNb2RlKCkgPT0gUG9zdGVyV2FpdGluZ0ZvclZpZGVvOyB9CiAKICAgICBVUkwgcG9z
dGVySW1hZ2VVUkwoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsK
IAogI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKICAgICBib29sIHdlYmtpdFN1
cHBvcnRzUHJlc2VudGF0aW9uTW9kZShjb25zdCBTdHJpbmcmKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFdCUkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MV0JSRWxlbWVudC5jcHAKaW5kZXggZmYxZGI2ZDk2NzBlODc0NzNlYTRmYWUxNWMz
OTdlNTE1ZTk5ZDBiNy4uNGU5ZTYzMGYzNGVkNGVjNjMxN2ZmOTYzNTMzM2YxNWU3ZjNiMGVjZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MV0JSRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MV0JSRWxlbWVudC5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAg
SFRNTFdCUkVsZW1lbnQ6OkhUTUxXQlJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICBBU1NFUlQoaGFzVGFnTmFtZSh3YnJUYWcpKTsK
IH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxXQlJFbGVtZW50OjpjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IEhUTUxXQlJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0
eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBj
cmVhdGVSZW5kZXJlcjxSZW5kZXJMaW5lQnJlYWs+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFdCUkVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFdCUkVsZW1lbnQuaAppbmRleCAzNTIzMzNmOGU4ZDRhODYz
YzVhNWZmY2M2NzUzOTFmNjcxZGJiYzE0Li43MDQ3NTE2YTcwYjllYTI4OTQwMmJiNmM1MGZmMGE5
OWQzZDBhNDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxXQlJFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MV0JSRWxlbWVudC5oCkBAIC0zNyw3ICsz
Nyw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTFdCUkVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlk
ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcAppbmRleCBiNDk2YTkwNGVhM2Q2
ZjkzNWE5YzA2NDNiZThlY2NlNWU5ZWM4Nzc1Li42NzZiMWVjZmZmOWJkMzg2ZDQyYTllOTIyNmVj
ZDFjZDhjYTRlZjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRh
aWxzTWFya2VyQ29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0
YWlsc01hcmtlckNvbnRyb2wuY3BwCkBAIC01MCw3ICs1MCw3IEBAIERldGFpbHNNYXJrZXJDb250
cm9sOjpEZXRhaWxzTWFya2VyQ29udHJvbChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgc2V0UHNl
dWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1kZXRhaWxzLW1hcmtlciIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IERl
dGFpbHNNYXJrZXJDb250cm9sOjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IERldGFpbHNNYXJrZXJDb250cm9s
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBS
ZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJE
ZXRhaWxzTWFya2VyPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuaAppbmRleCA0N2FiMGQz
M2Y3OTU1YzlhZGUwNDgwMjk0ZDY2YmYxNjgwYmUyZDhhLi4xZTJjNTU0ZTM3ZDg0MjQyZjA5NDYy
MjE0OWEwOGRkZWRmZjFkYzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9EZXRhaWxzTWFya2VyQ29udHJvbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0RldGFpbHNNYXJrZXJDb250cm9sLmgKQEAgLTM0LDcgKzM0LDcgQEAKIAogI2luY2x1ZGUgIkhU
TUxEaXZFbGVtZW50LmgiCiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBXZWJDb3Jl
IHsgCiAKIGNsYXNzIERldGFpbHNNYXJrZXJDb250cm9sIGZpbmFsIDogcHVibGljIEhUTUxEaXZF
bGVtZW50IHsKIHB1YmxpYzoKQEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICBEZXRhaWxzTWFya2VyQ29udHJvbChEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4m
Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3Qg
UmVuZGVyU3R5bGUmKSBvdmVycmlkZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAppbmRleCAyZDMzYjgxNjg4ZTAxZTY1
M2EwZDI0NjZiZTU4MTA0YzM1OTAwNjQwLi45YTcwYjQwYmVmNjliYmZiNmNkN2YxNjBhNWJkM2Ey
OWE4YmE2Yzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sRWxlbWVudHMuY3BwCkBAIC0zMTAsNyArMzEwLDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xU
aW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6OnNldFRpbWVEaXNwbGF5c0hpZGRlbihib29sIGhpZGRl
bikKICAgICB9CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xUaW1l
bGluZUNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWVkaWFDb250cm9sVGltZWxp
bmVDb250YWluZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVh
dGVSZW5kZXJlcjxSZW5kZXJNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lcj4oKnRoaXMsIFdU
Rjo6bW92ZShzdHlsZSkpOwogfQpAQCAtMzMwLDcgKzMzMCw3IEBAIFBhc3NSZWZQdHI8TWVkaWFD
b250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudD4gTWVkaWFDb250cm9sVm9sdW1lU2xp
ZGVyQ29uCiAgICAgcmV0dXJuIGVsZW1lbnQucmVsZWFzZSgpOwogfQogCi1SZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5k
ZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNZWRp
YVZvbHVtZVNsaWRlckNvbnRhaW5lcj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpAQCAt
MTA4OCw3ICsxMDg4LDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWlu
ZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXIKICAgICByZXR1cm4gZWxl
bWVudC5yZWxlYXNlKCk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNZWRpYUNvbnRy
b2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJl
bmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1lZGlhQ29udHJv
bFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0
dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ+KCp0aGlz
LCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCmluZGV4IDM5Yzk5OTBhZmI5Y2Q2OWQxNzBiMDAwNDE4
YWNmNjI3YzVmMjY1NDkuLjMwMTQ4MjgxZThjYjBiYmJjYmQyYTEzYzZkMzBmMzg0MmRlNWY3NGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1l
bnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVu
dHMuaApAQCAtMTEwLDcgKzExMCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQg
TWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50KERvY3VtZW50Jik7CiAKLSAgICB2
aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVm
PFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBS
ZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIH07CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KQEAgLTEyOCw3ICsxMjgsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2
b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwg
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVy
U3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRy
ZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogfTsKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQpAQCAtNDU2LDcgKzQ1Niw3IEBAIHByaXZhdGU6CiAKICAgICBleHBsaWNpdCBNZWRpYUNv
bnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50KERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFs
IFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRl
clN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJU
cmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJbWFnZT4g
Y3JlYXRlVGV4dFRyYWNrUmVwcmVzZW50YXRpb25JbWFnZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdm9pZCB0ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkJvdW5kc0NoYW5nZWQoY29uc3QgSW50UmVj
dCYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0
ZXJTaGFkb3dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hh
ZG93RWxlbWVudC5jcHAKaW5kZXggNDBiZGUxMTk4YmY0ZmFlNzcwMTY1NzNhZmExYzM5NzU4NzFm
ZWYwNy4uNDMxMWE3MDU5ZTc4YzQ1NDE5MzU5ZGQxYWQ1MzdhYjJiYzc2OTQwMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwCkBAIC03
Myw3ICs3Myw3IEBAIGJvb2wgTWV0ZXJJbm5lckVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29u
c3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogICAgIHJldHVybiByZW5kZXIgJiYgIXJlbmRlci0+dGhl
bWUoKS5zdXBwb3J0c01ldGVyKHJlbmRlci0+c3R5bGUoKS5hcHBlYXJhbmNlKCkpICYmIEhUTUxE
aXZFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKHN0eWxlKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IE1ldGVySW5uZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJl
bmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1ldGVySW5uZXJF
bGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBj
b25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxS
ZW5kZXJNZXRlcj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuaAppbmRleCBlN2Q1ZTYxZWY0MjJi
YmNmYzlhNTM3ODVjYmE4ZmJkMTViZjA4OWVkLi4zZjE1MWRhNTUwN2JjYWFlNjc4OTkwZjg5NGEz
NzQwNDk4YTg2ZTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRl
clNoYWRvd0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNo
YWRvd0VsZW1lbnQuaApAQCAtNTksNyArNTksNyBAQCBwcml2YXRlOgogICAgIE1ldGVySW5uZXJF
bGVtZW50KERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChj
b25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92
ZXJyaWRlOwogfTsKIAogaW5saW5lIFBhc3NSZWZQdHI8TWV0ZXJJbm5lckVsZW1lbnQ+IE1ldGVy
SW5uZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHAKaW5kZXggMzI5
ZWY1NmI1YzExNzA5N2NlNzNkZGU3YTZmZmEwYjYwYjIyMTQxZi4uNjkyN2I0YTcwMTI1NGYxNjlm
YjBlMjIzMjEyMDNjMzFmYTNhZDE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwCkBAIC02MCw3ICs2MCw3IEBAIFByb2dy
ZXNzSW5uZXJFbGVtZW50OjpQcm9ncmVzc0lubmVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQp
CiB7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBQcm9ncmVzc0lubmVyRWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBQcm9ncmVzc0lubmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikK
IHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyUHJvZ3Jlc3M+KCp0aGlzLCBXVEY6
Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1Byb2dyZXNzU2hhZG93RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJv
Z3Jlc3NTaGFkb3dFbGVtZW50LmgKaW5kZXggMzQwMWZkMjVmYzZkOWM5OWZjNDcwMzY2YWNiMDlh
OTNhNTFkMGYwZi4uZGRhM2Q3ZjE2ZGFmOWMxMjg1MTViZDJhNjU1ZDQwOGFkODgxZWFhMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50
LmgKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBQcm9ncmVzc0lubmVy
RWxlbWVudChEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBv
dmVycmlkZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Ns
aWRlclRodW1iRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJU
aHVtYkVsZW1lbnQuY3BwCmluZGV4IDU0NzAxNjVjOTM0N2ViOGQ2YjM1ZGQ0YjIxZWY0NDY1ODFj
Njc2YWYuLjY4MTRhNTJiM2RiMWFiODU5NThlODFlMzljNTk2MmEwMjMwMWE2NTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcApAQCAt
MjE0LDcgKzIxNCw3IEBAIHZvaWQgU2xpZGVyVGh1bWJFbGVtZW50OjpzZXRQb3NpdGlvbkZyb21W
YWx1ZSgpCiAgICAgICAgIHJlbmRlcmVyKCktPnNldE5lZWRzTGF5b3V0KCk7CiB9CiAKLVJlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBTbGlkZXJUaHVtYkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
U2xpZGVyVGh1bWJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVh
dGVSZW5kZXJlcjxSZW5kZXJTbGlkZXJUaHVtYj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwog
fQpAQCAtNjE1LDcgKzYxNSw3IEBAIFBhc3NSZWZQdHI8U2xpZGVyQ29udGFpbmVyRWxlbWVudD4g
U2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1CiAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBTbGlkZXJDb250YWluZXJFbGVtZW50KGRvY3VtZW50KSk7CiB9CiAKLVJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAg
cmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNsaWRlckNvbnRhaW5lcj4oKnRoaXMsIFdURjo6
bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
U2xpZGVyVGh1bWJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJU
aHVtYkVsZW1lbnQuaAppbmRleCA4OWU3ZGMzMWRiMGI1NGVkODAxMGZlYTg0ZDE5NDMzOTEyOTgz
MzkxLi5kZTg2MzkyNWNkY2ZiMzU5YjQ4OTIzZjg1ZDQ5YWEwY2NhY2RmNjEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaApAQCAtNjEsNyAr
NjEsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNsaWRlclRodW1iRWxlbWVudChEb2N1bWVu
dCYpOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHls
ZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBS
ZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihE
b2N1bWVudCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc0Rpc2FibGVkRm9ybUNvbnRy
b2woKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgbWF0Y2hlc1JlYWRXcml0ZVBz
ZXVkb0NsYXNzKCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC0xMzEsNyArMTMxLDcgQEAgcHVibGljOgog
CiBwcml2YXRlOgogICAgIFNsaWRlckNvbnRhaW5lckVsZW1lbnQoRG9jdW1lbnQmKTsKLSAgICB2
aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVm
PFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBS
ZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0
cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdCBvdmVycmlkZTsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3Bw
CmluZGV4IGQzZGI5MzY0Y2E5NDE0ZGY2M2EyNDg2ZmNmYTI3YjVjOGYwMTIyNTUuLjU5YmRmMDFi
OGFiZWQ0NWRlNTlhNzZlZGM0NjBjNDFmNjk2NzkwNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcApAQCAtNTYs
NyArNTYsNyBAQCBQYXNzUmVmUHRyPFRleHRDb250cm9sSW5uZXJDb250YWluZXI+IFRleHRDb250
cm9sSW5uZXJDb250YWluZXI6OmNyZWF0ZShEb2N1bWVudAogICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcihkb2N1bWVudCkpOwogfQogICAgIAotUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IFRleHRDb250cm9sSW5uZXJDb250YWluZXI6OmNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcjo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAg
ICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcj4o
KnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpAQCAtMTEwLDcgKzExMCw3IEBAIHZvaWQgVGV4
dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVu
dCkKICAgICAgICAgSFRNTERpdkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwog
fQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6Y3JlYXRlRWxl
bWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBv
c2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyVGV4dENvbnRyb2xJ
bm5lckJsb2NrPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oCmluZGV4IGIy
NDc1MzYxMjFkYzVlYTZjMmVmNWRhYjBlODM5ZWM2OTBlZTk1NGYuLjY2NzRhOWVkZDg1YTc0ZTFj
YWM3NTg1ZDllYTQwYjM3NzIzOTJhYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oCkBAIC0zOSw3ICszOSw3IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0Q29udHJvbElubmVyQ29udGFpbmVyPiBj
cmVhdGUoRG9jdW1lbnQmKTsKIHByb3RlY3RlZDoKICAgICBUZXh0Q29udHJvbElubmVyQ29udGFp
bmVyKERvY3VtZW50Jik7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxS
ZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiB9Owog
CiBjbGFzcyBUZXh0Q29udHJvbElubmVyRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRGl2RWxl
bWVudCB7CkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBUZXh0Q29u
dHJvbElubmVyVGV4dEVsZW1lbnQoRG9jdW1lbnQmKTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24m
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFJlZlB0cjxSZW5kZXJTdHlsZT4gY3VzdG9tU3R5bGVG
b3JSZW5kZXJlcihSZW5kZXJTdHlsZSYgcGFyZW50U3R5bGUpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgYm9vbCBpc01vdXNlRm9jdXNhYmxlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNw
cAppbmRleCA2OTcyM2E4ZDAxYzE0YTRmZTc1ZWI1ZjdiYzI3NTk0OTg4MTc5YTMzLi45YTZkNDQz
OTQzYjczMzFkMzNmYTkwMWRmZWIzZmVhZDM3ZWU5OGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxl
bWVudE1hYy5jcHAKQEAgLTEyNSw3ICsxMjUsNyBAQCB2b2lkIEltYWdlQ29udHJvbHNCdXR0b25F
bGVtZW50TWFjOjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAgICBIVE1MRGl2
RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CiB9CiAKLVJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYzo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYzo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAg
ICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVySW1hZ2VDb250cm9sc0J1dHRvbj4oKnRoaXMs
IFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvbWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuaAppbmRleCA1
M2Q3MmIxODMzODliYzIxMGNiYzY4NDk0NzJmYTYwM2ExYTBlNDZmLi4xMzRmYzIwOGM3ZGIxNGNl
MjUzM2ViOTQ0NzQzYjA3ZDhkNjE5NDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuaApA
QCAtNDIsNyArNDIsNyBAQCBwcml2YXRlOgogICAgIEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50
TWFjKERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihF
dmVudCopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAg
ICAgdmlydHVhbCBib29sIGlzSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiB0cnVlOyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcAppbmRl
eCBkNTI3MWVjZWFjNGM2ODBhM2M0YTRiZmY5YTQwYTMzMmY2NDhlOGQ0Li5iNmVlY2NjMGI0MWVj
MGJmNDk0NGY4ZmZmNTI1ZmI4YTEyOThiM2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNw
cApAQCAtMTAyLDcgKzEwMiw3IEBAIEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYzo6fkltYWdl
Q29udHJvbHNSb290RWxlbWVudE1hYygpCiB7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWM6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSW1hZ2VDb250
cm9sc1Jvb3RFbGVtZW50TWFjOjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVh
dGVSZW5kZXJlcjxSZW5kZXJJbWFnZUNvbnRyb2xzPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250
cm9sc1Jvb3RFbGVtZW50TWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1h
Z2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmgKaW5kZXggNjBlYzUzMzM4NTNlYjk1NTBiNDYwYzg0
N2U2ZDM5YzYzZjYxNWE4Zi4uZTIzZjRlMWZkOTNiM2Y5OGMyZGU5ZjM3YTYwMjE2ZWMyMDlmNjY4
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJv
bHNSb290RWxlbWVudE1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9J
bWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuaApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYyhEb2N1bWVudCYpOwogCi0g
ICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29u
c3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKaW5kZXggNWYyZWE4NTQwZGUw
YTFhYjUzMDUwMjc2MjVlN2EyNDIxZDg5ZWNkMS4uNWIzNTkyZDE2ZDQ0YzExNDU0YTFiMzliNDY0
Y2ExYzU2ZDMzZWJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRD
dWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcApAQCAtMjM0
LDcgKzIzNCw3IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgVlRUQ3VlQm94Ojp2dHRDdWVCb3hTaGFk
b3dQc2V1ZG9JZCgpCiAgICAgcmV0dXJuIHRyYWNrRGlzcGxheUJveFNoYWRvd1BzZXVkb0lkOwog
fQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gVlRUQ3VlQm94OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IFZUVEN1ZUJveDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHls
ZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVy
ZXI8UmVuZGVyVlRUQ3VlPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9WVFRDdWUuaAppbmRleCBjYzFkZmJjNTViMDAwOWVlZjdkMDk5OTJhNDU5MjEzNjky
MTlmZTZjLi5lNTBkYzcxOWRkMjM5NzY4OTI5NTZmOGI4MjkzNzJhYjVhZjA2ODRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVlRUQ3VlLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogcHJvdGVj
dGVkOgogICAgIFZUVEN1ZUJveChEb2N1bWVudCYsIFZUVEN1ZSYpOwogCi0gICAgdmlydHVhbCBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJT
dHlsZT4mJikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVu
ZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGUgZmluYWw7CiAKICAgICBWVFRDdWUmIG1fY3VlOwog
ICAgIGludCBtX2ZvbnRTaXplRnJvbUNhcHRpb25Vc2VyUHJlZnM7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5jcHAKaW5kZXgg
NTlkNTM1NjI2OGY4YTQ5YjcwMzE3ZWFhNjUyZjZiYjZhY2NkNjg1OC4uMGNmNTA1YmU5NThmMjdl
NDQ5YWVmNjAzZTY5ZjllZGIzZWVjNTE0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0
aG1sL01hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L21hdGhtbC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmNwcApAQCAtNjksNyArNjksNyBA
QCB2b2lkIE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25z
dCBDaGlsZENoYW5nZSYgY2hhbmdlKQogICAgIE1hdGhNTEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdl
ZChjaGFuZ2UpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWF0aE1MSW5saW5lQ29u
dGFpbmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBz
dHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxJbmxpbmVDb250YWluZXJFbGVt
ZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25z
dCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIGlmIChoYXNUYWdOYW1lKGFubm90YXRpb25f
eG1sVGFnKSkKICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTFJvdz4o
KnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0
aG1sL01hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL21hdGht
bC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmgKaW5kZXggMjkzNjkzNmZiOGEyMWRhMWY4
MmExMTgwM2ZmNzRmYTczYTlhMTg4YS4uZDRjM2JiYzNhNzg4NmIyMmJjYmEyNzdkNmE5MzlhMDg0
OTQ1M2VhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTElubGluZUNv
bnRhaW5lckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MSW5saW5l
Q29udGFpbmVyRWxlbWVudC5oCkBAIC00Myw3ICs0Myw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lk
IGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpOwogCiBwcml2YXRlOgotICAgIHZp
cnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJl
bmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogfTsKICAgICAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuY3BwCmluZGV4IGJkYTEwYzI5NmFlNDFjMGYwOTA0
Zjg3Njg5OWJlYTYxNzIyMmJiMWMuLmYwY2FhYmM3MTkwYzE0ZDg3MjUxZjc1OTE4N2UzZGIxZjQ5
ZTcxODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmNwcApA
QCAtNDMsNyArNDMsNyBAQCBSZWY8TWF0aE1MTWF0aEVsZW1lbnQ+IE1hdGhNTE1hdGhFbGVtZW50
OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRAogICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IE1hdGhNTE1hdGhFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLVJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxNYXRoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBNYXRoTUxNYXRoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHls
ZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3Jl
YXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MTWF0aD4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuaAppbmRleCA0YTQxMDMx
MGJkODEyMjQ2NDk3MDdiNDM4ZDU1NWVmNDM4MjljN2VhLi4wNGVjNjljYmQ2M2YzYmZjMDYwZmM3
NGI1YTJhYzI1MTAyNGRjYWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0
aE1MTWF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0aEVs
ZW1lbnQuaApAQCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIE1hdGhNTE1h
dGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CiAKLSAg
ICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25z
dCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIH07CiAgICAgCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuY3BwCmluZGV4IDM4Y2Y5ZDgx
YzU2NmJiNjFmMmI3MWRiYTM2NmVkNDVjOWU3NmQzNTYuLmQ2ZGEzYjM1OWMxMjA3MmUyMjFjZjhh
YWIyMTBmOWViYzViZmJmYzggMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRo
TUxNZW5jbG9zZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxN
ZW5jbG9zZUVsZW1lbnQuY3BwCkBAIC01MCw3ICs1MCw3IEBAIFJlZjxNYXRoTUxNZW5jbG9zZUVs
ZW1lbnQ+IE1hdGhNTE1lbmNsb3NlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWF0aE1MTWVuY2xvc2VFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxNZW5j
bG9zZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5
bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWF0aE1MTWVuY2xvc2VFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJU
cmVlUG9zaXRpb24mKQogeyAgICAKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0
aE1MTWVuY2xvc2U+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaAppbmRleCBjMjdhNDM5NmNhNDczODU1
NGU5MTEyNTY4ZjZlMTczN2Y4OWIzYTFhLi41ZjQ0MmMzOTQwODQyMWE5ODI5MDRiNDEwYzQ3NWIw
NDg3MmU1MDgzIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xv
c2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxl
bWVudC5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBNYXRoTUxN
ZW5jbG9zZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7Ci0gICAgdmly
dHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxS
ZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVu
ZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0
aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVz
Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGZpbmlzaFBhcnNpbmdDaGlsZHJlbigpIG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuY3Bw
CmluZGV4IDA4N2RmZTY1YzZjYTM5YjQxNmI3Mjg3MmIzNWVmMTNmNjQ4NzE4MDMuLjVmZmMwNjlk
NDExMDMzNThlOTNmMTQzNTI5NTMwZDY2NWJkYmVkZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9t
YXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgUmVmPE1hdGhN
TFNlbGVjdEVsZW1lbnQ+IE1hdGhNTFNlbGVjdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW0KICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNYXRoTUxTZWxlY3RFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBN
YXRoTUxTZWxlY3RFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1hdGhNTFNlbGVjdEVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJl
bmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1h
dGhNTFJvdz4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL21h
dGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmgKaW5kZXggMjJhNmNjYjVmNTU3Nzc5MmRjMTg0ZmM0
Mjc1MTI1ZjM0YThiMWI4ZC4uNDI2M2JiMzI2ZjdlOTJiN2ZkNTQ4YWMwNTFjYzk0MWNhYmJkYjVj
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5oCkBAIC00
MCw3ICs0MCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBNYXRoTUxTZWxlY3RFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7Ci0gICAgdmlydHVhbCBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJT
dHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJl
ZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVh
dGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9tYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuY3BwCmluZGV4IDI3MWQ2OTJmNzU2MTY1MDQwZDRh
YTRhMjliMjc3MTU0YTI3YTM4OGQuLjRkN2MxY2E4NmFlY2UxYmUxNDMzOWRiYjg4ZmVjZGIyNGUz
NTcwYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcApA
QCAtNzUsMTQgKzc1LDE0IEBAIHZvaWQgTWF0aE1MVGV4dEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0CiAgICAgTWF0aE1MRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gTWF0aE1MVGV4dEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWF0aE1MVGV4dEVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNv
bnN0IFJlbmRlclRyZWVQb3NpdGlvbiYgaW5zZXJ0aW9uUG9zaXRpb24pCiB7CiAgICAgaWYgKGhh
c1RhZ05hbWUoTWF0aE1MTmFtZXM6Om1vVGFnKSkKICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRl
cmVyPFJlbmRlck1hdGhNTE9wZXJhdG9yPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiAgICAg
aWYgKGhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6Om1zcGFjZVRhZykpCiAgICAgICAgIHJldHVybiBj
cmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxTcGFjZT4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkp
OwogICAgIGlmIChoYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjphbm5vdGF0aW9uVGFnKSkKLSAgICAg
ICAgcmV0dXJuIE1hdGhNTEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihXVEY6Om1vdmUo
c3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIE1hdGhNTEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihXVEY6Om1vdmUoc3R5bGUpLCBpbnNlcnRpb25Qb3NpdGlvbik7CiAKICAgICBBU1NFUlQo
aGFzVGFnTmFtZShNYXRoTUxOYW1lczo6bWlUYWcpIHx8IGhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6
Om1uVGFnKSB8fCBoYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptc1RhZykgfHwgaGFzVGFnTmFtZShN
YXRoTUxOYW1lczo6bXRleHRUYWcpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0
aG1sL01hdGhNTFRleHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVGV4
dEVsZW1lbnQuaAppbmRleCA2OWIwNTc0YjkxZGY1MGM1MmY3ZWY4NjZmMzhiZmE4OTU5N2NkOGUy
Li4xZDVmNTc4NThjZGUwM2RmMjkzOWUzZTk3ZmQ2MDlmMDkyNjA2YzEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9tYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuaApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIE1hdGhNTFRleHRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikg
Y29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0
IENoaWxkQ2hhbmdlJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcAppbmRleCA1ZWMzMTY5NjhmZGM0NmM2NWMyNWI3ZjQyOTg3MDY2M2I3MTNiNDc2Li4w
MGFlNjRkMzVkNTlkNTNlNDAxYjE0NDEyMTVmNTdhMGI2Y2Y5ZGY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTYyLDYgKzYyLDcgQEAKICNpbmNsdWRlICJS
ZW5kZXJUYWJsZUNlbGwuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0RnJhZ21lbnQuaCIKICNpbmNs
dWRlICJSZW5kZXJUaGVtZS5oIgorI2luY2x1ZGUgIlJlbmRlclRyZWVQb3NpdGlvbi5oIgogI2lu
Y2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4
dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC0zODUsNyArMzg2LDggQEAgUmVuZGVyUHRy
PFJlbmRlckJsb2NrPiBSZW5kZXJCbG9jazo6Y2xvbmUoKSBjb25zdAogICAgICAgICBjbG9uZUJs
b2NrID0gUmVuZGVyUHRyPFJlbmRlckJsb2NrPihjcmVhdGVBbm9ueW1vdXNCbG9jaygpKTsKICAg
ICAgICAgY2xvbmVCbG9jay0+c2V0Q2hpbGRyZW5JbmxpbmUoY2hpbGRyZW5JbmxpbmUoKSk7CiAg
ICAgfSBlbHNlIHsKLSAgICAgICAgY2xvbmVCbG9jayA9IHN0YXRpY19wb2ludGVyX2Nhc3Q8UmVu
ZGVyQmxvY2s+KGVsZW1lbnQoKS0+Y3JlYXRlRWxlbWVudFJlbmRlcmVyKHN0eWxlKCkpKTsKKyAg
ICAgICAgUmVuZGVyVHJlZVBvc2l0aW9uIGluc2VydGlvblBvc2l0aW9uKCpwYXJlbnQoKSk7Cisg
ICAgICAgIGNsb25lQmxvY2sgPSBzdGF0aWNfcG9pbnRlcl9jYXN0PFJlbmRlckJsb2NrPihlbGVt
ZW50KCktPmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihzdHlsZSgpLCBpbnNlcnRpb25Qb3NpdGlvbikp
OwogICAgICAgICBjbG9uZUJsb2NrLT5pbml0aWFsaXplU3R5bGUoKTsKIAogICAgICAgICAvLyBU
aGlzIHRha2VzIGNhcmUgb2Ygc2V0dGluZyB0aGUgcmlnaHQgdmFsdWUgb2YgY2hpbGRyZW5Jbmxp
bmUgaW4gY2FzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCmlu
ZGV4IDdhZjk2ZTE2NWJlZjBlNDk2MzgxMWRlZjYyNzMxZDY2OGU0MGY0N2UuLmQ1ODRmMmNjMzMx
MzY0ZTM3YWQxNWNhN2EyMjcxNGYzOTVjMTgwMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJSZW5kZXJG
bGV4aWJsZUJveC5oIgogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVy
SW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2UuaCIKKyNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNp
bmNsdWRlICJSZW5kZXJJdGVyYXRvci5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5j
bHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCkBAIC01MCw4ICs1MSw2IEBACiAjaW5jbHVk
ZSAiUmVuZGVyTGlzdEl0ZW0uaCIKICNpbmNsdWRlICJSZW5kZXJOYW1lZEZsb3dUaHJlYWQuaCIK
ICNpbmNsdWRlICJSZW5kZXJSZWdpb24uaCIKLSNpbmNsdWRlICJSZW5kZXJSdWJ5LmgiCi0jaW5j
bHVkZSAiUmVuZGVyUnVieVRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJUYWJsZUNhcHRpb24uaCIK
ICNpbmNsdWRlICJSZW5kZXJUYWJsZUNlbGwuaCIKICNpbmNsdWRlICJSZW5kZXJUYWJsZUNvbC5o
IgpAQCAtMTU3LDE2ICsxNTYsNiBAQCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gUmVuZGVyRWxl
bWVudDo6Y3JlYXRlRm9yKEVsZW1lbnQmIGVsZW1lbnQsIFJlZjxSZW5kZXJTdAogICAgICAgICBp
bWFnZS0+c2V0SXNHZW5lcmF0ZWRDb250ZW50KCk7CiAgICAgICAgIHJldHVybiBXVEY6Om1vdmUo
aW1hZ2UpOwogICAgIH0KLQotICAgIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpy
dWJ5VGFnKSkgewotICAgICAgICBpZiAoc3R5bGUuZ2V0KCkuZGlzcGxheSgpID09IElOTElORSkK
LSAgICAgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJSdWJ5QXNJbmxpbmU+KGVs
ZW1lbnQsIFdURjo6bW92ZShzdHlsZSkpOwotICAgICAgICBpZiAoc3R5bGUuZ2V0KCkuZGlzcGxh
eSgpID09IEJMT0NLIHx8IHN0eWxlLmdldCgpLmRpc3BsYXkoKSA9PSBJTkxJTkVfQkxPQ0spCi0g
ICAgICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyUnVieUFzQmxvY2s+KGVsZW1l
bnQsIFdURjo6bW92ZShzdHlsZSkpOwotICAgIH0KLSAgICAvLyB0cmVhdCA8cnQ+IGFzIHJ1Ynkg
dGV4dCBPTkxZIGlmIHRoZSBwYXJlbnQgaXMgcnVieS4KLSAgICBpZiAoZWxlbWVudC5oYXNUYWdO
YW1lKEhUTUxOYW1lczo6cnRUYWcpICYmIGVsZW1lbnQucGFyZW50RWxlbWVudCgpICYmIGlzUnVi
eShlbGVtZW50LnBhcmVudEVsZW1lbnQoKS0+cmVuZGVyZXIoKSkpCi0gICAgICAgIHJldHVybiBj
cmVhdGVSZW5kZXJlcjxSZW5kZXJSdWJ5VGV4dD4oZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxlKSk7
CiAgICAgc3dpdGNoIChzdHlsZS5nZXQoKS5kaXNwbGF5KCkpIHsKICAgICBjYXNlIE5PTkU6CiAg
ICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUv
UmVuZGVyVHJlZVBvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1JlbmRlclRyZWVQ
b3NpdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzdjOGFjMGVjOTc3ZWI5MWM4NGFhZTU4M2VmMDc5YTMx
OWM1NTk0MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1JlbmRlclRy
ZWVQb3NpdGlvbi5jcHAKQEAgLTAsMCArMSwxMTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUmVuZGVyVHJlZVBvc2l0aW9uLmgiCisKKyNpbmNsdWRlICJO
b2RlUmVuZGVyaW5nVHJhdmVyc2FsLmgiCisjaW5jbHVkZSAiUHNldWRvRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIlJlbmRlck9iamVjdC5oIgorI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKKyNpbmNsdWRl
ICJTaGFkb3dSb290LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVuZGVyVHJlZVBvc2l0
aW9uOjpSZW5kZXJUcmVlUG9zaXRpb24oUmVuZGVyVmlldyYgcm9vdCkKKyAgICA6IG1fcGFyZW50
KHJvb3QpCisgICAgLCBtX2hhc1ZhbGlkTmV4dFNpYmxpbmcodHJ1ZSkKK3sKK30KKworUmVuZGVy
VHJlZVBvc2l0aW9uOjpSZW5kZXJUcmVlUG9zaXRpb24oUmVuZGVyRWxlbWVudCYgcGFyZW50KQor
ICAgIDogbV9wYXJlbnQocGFyZW50KQoreworfQorCitSZW5kZXJUcmVlUG9zaXRpb246OlJlbmRl
clRyZWVQb3NpdGlvbihSZW5kZXJFbGVtZW50JiBwYXJlbnQsIFJlbmRlck9iamVjdCogbmV4dFNp
YmxpbmcpCisgICAgOiBtX3BhcmVudChwYXJlbnQpCisgICAgLCBtX25leHRTaWJsaW5nKG5leHRT
aWJsaW5nKQorICAgICwgbV9oYXNWYWxpZE5leHRTaWJsaW5nKHRydWUpCit7Cit9CisKK3ZvaWQg
UmVuZGVyVHJlZVBvc2l0aW9uOjpjb21wdXRlTmV4dFNpYmxpbmcoY29uc3QgTm9kZSYgbm9kZSkK
K3sKKyAgICBBU1NFUlQoIW5vZGUucmVuZGVyZXIoKSk7CisgICAgaWYgKG1faGFzVmFsaWROZXh0
U2libGluZykgeworICAgICAgICAvLyBTdG9wIHZhbGlkYXRpbmcgYXQgc29tZSBwb2ludCBzbyB0
aGUgYXNzZXJ0IGRvZXNuJ3QgbWFrZSB1cyBPKE5eMikgb24gZGVidWcgYnVpbGRzLgorICAgICAg
ICBBU1NFUlQobV9wYXJlbnQuaXNSZW5kZXJWaWV3KCkgfHwgKyttX2Fzc2VydGlvbkxpbWl0Q291
bnRlciA+IDIwIHx8IG5leHRTaWJsaW5nUmVuZGVyZXIobm9kZSwgbV9wYXJlbnQpID09IG1fbmV4
dFNpYmxpbmcpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fbmV4dFNpYmxpbmcgPSBu
ZXh0U2libGluZ1JlbmRlcmVyKG5vZGUsIG1fcGFyZW50KTsKKyAgICBtX2hhc1ZhbGlkTmV4dFNp
YmxpbmcgPSB0cnVlOworCit9CisKK3ZvaWQgUmVuZGVyVHJlZVBvc2l0aW9uOjppbnZhbGlkYXRl
TmV4dFNpYmxpbmcoY29uc3QgUmVuZGVyT2JqZWN0JiBzaWJsaW5nUmVuZGVyZXIpCit7CisgICAg
aWYgKCFtX2hhc1ZhbGlkTmV4dFNpYmxpbmcpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAobV9u
ZXh0U2libGluZyA9PSAmc2libGluZ1JlbmRlcmVyKQorICAgICAgICBtX2hhc1ZhbGlkTmV4dFNp
YmxpbmcgPSBmYWxzZTsKK30KKworUmVuZGVyT2JqZWN0KiBSZW5kZXJUcmVlUG9zaXRpb246OnBy
ZXZpb3VzU2libGluZ1JlbmRlcmVyKGNvbnN0IFRleHQmIHRleHROb2RlKQoreworICAgIGlmICh0
ZXh0Tm9kZS5yZW5kZXJlcigpKQorICAgICAgICByZXR1cm4gdGV4dE5vZGUucmVuZGVyZXIoKS0+
cHJldmlvdXNTaWJsaW5nKCk7CisgICAgZm9yIChOb2RlKiBzaWJsaW5nID0gTm9kZVJlbmRlcmlu
Z1RyYXZlcnNhbDo6cHJldmlvdXNTaWJsaW5nKCZ0ZXh0Tm9kZSk7IHNpYmxpbmc7IHNpYmxpbmcg
PSBOb2RlUmVuZGVyaW5nVHJhdmVyc2FsOjpwcmV2aW91c1NpYmxpbmcoc2libGluZykpIHsKKyAg
ICAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IHNpYmxpbmctPnJlbmRlcmVyKCk7CisgICAg
ICAgIGlmIChyZW5kZXJlciAmJiAhUmVuZGVyVHJlZVBvc2l0aW9uOjppc1JlbmRlcmVyUmVwYXJl
bnRlZCgqcmVuZGVyZXIpKQorICAgICAgICAgICAgcmV0dXJuIHJlbmRlcmVyOworICAgIH0KKyAg
ICBpZiAoUHNldWRvRWxlbWVudCogYmVmb3JlID0gdGV4dE5vZGUucGFyZW50RWxlbWVudCgpLT5i
ZWZvcmVQc2V1ZG9FbGVtZW50KCkpCisgICAgICAgIHJldHVybiBiZWZvcmUtPnJlbmRlcmVyKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlbmRlck9iamVjdCogUmVuZGVyVHJlZVBvc2l0
aW9uOjpuZXh0U2libGluZ1JlbmRlcmVyKGNvbnN0IE5vZGUmIG5vZGUsIGNvbnN0IFJlbmRlckVs
ZW1lbnQmIHBhcmVudFJlbmRlcmVyKQoreworICAgIGlmICghcGFyZW50UmVuZGVyZXIuZWxlbWVu
dCgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAobm9kZS5pc0FmdGVyUHNldWRv
RWxlbWVudCgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBOb2RlKiBzaWJsaW5nID0g
bm9kZS5pc0JlZm9yZVBzZXVkb0VsZW1lbnQoKSA/IE5vZGVSZW5kZXJpbmdUcmF2ZXJzYWw6OmZp
cnN0Q2hpbGQocGFyZW50UmVuZGVyZXIuZWxlbWVudCgpKSA6IE5vZGVSZW5kZXJpbmdUcmF2ZXJz
YWw6Om5leHRTaWJsaW5nKCZub2RlKTsKKyAgICBmb3IgKDsgc2libGluZzsgc2libGluZyA9IE5v
ZGVSZW5kZXJpbmdUcmF2ZXJzYWw6Om5leHRTaWJsaW5nKHNpYmxpbmcpKSB7CisgICAgICAgIFJl
bmRlck9iamVjdCogcmVuZGVyZXIgPSBzaWJsaW5nLT5yZW5kZXJlcigpOworICAgICAgICBpZiAo
cmVuZGVyZXIgJiYgIWlzUmVuZGVyZXJSZXBhcmVudGVkKCpyZW5kZXJlcikpCisgICAgICAgICAg
ICByZXR1cm4gcmVuZGVyZXI7CisgICAgfQorICAgIGlmIChQc2V1ZG9FbGVtZW50KiBhZnRlciA9
IHBhcmVudFJlbmRlcmVyLmVsZW1lbnQoKS0+YWZ0ZXJQc2V1ZG9FbGVtZW50KCkpCisgICAgICAg
IHJldHVybiBhZnRlci0+cmVuZGVyZXIoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworYm9v
bCBSZW5kZXJUcmVlUG9zaXRpb246OmlzUmVuZGVyZXJSZXBhcmVudGVkKGNvbnN0IFJlbmRlck9i
amVjdCYgcmVuZGVyZXIpCit7CisgICAgaWYgKCFyZW5kZXJlci5ub2RlKCktPmlzRWxlbWVudE5v
ZGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChyZW5kZXJlci5zdHlsZSgpLmhh
c0Zsb3dJbnRvKCkpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBmYWxzZTsKK30K
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUmVuZGVyVHJlZVBvc2l0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SZW5kZXJUcmVlUG9zaXRpb24uaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41ZmIxNTEzZjRkYWUwZmVjOWNhNzQxNDVkZjZmYzNjNjVhMmZlOTUxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUmVuZGVyVHJlZVBvc2l0aW9uLmgKQEAgLTAsMCAr
MSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUmVuZGVyVHJlZVBvc2l0aW9uX2gKKyNkZWZp
bmUgUmVuZGVyVHJlZVBvc2l0aW9uX2gKKworI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKKyNp
bmNsdWRlICJSZW5kZXJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVu
ZGVyVHJlZVBvc2l0aW9uIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBSZW5kZXJUcmVlUG9zaXRp
b24oUmVuZGVyVmlldyYpOworICAgIGV4cGxpY2l0IFJlbmRlclRyZWVQb3NpdGlvbihSZW5kZXJF
bGVtZW50JiBwYXJlbnQpOworICAgIFJlbmRlclRyZWVQb3NpdGlvbihSZW5kZXJFbGVtZW50JiBw
YXJlbnQsIFJlbmRlck9iamVjdCogbmV4dFNpYmxpbmcpOworCisgICAgUmVuZGVyRWxlbWVudCYg
cGFyZW50KCkgeyByZXR1cm4gbV9wYXJlbnQ7IH0KKyAgICBjb25zdCBSZW5kZXJFbGVtZW50JiBw
YXJlbnQoKSBjb25zdCB7IHJldHVybiBtX3BhcmVudDsgfQorCisgICAgdm9pZCBpbnNlcnQoUmVu
ZGVyT2JqZWN0Jik7CisgICAgYm9vbCBjYW5JbnNlcnQoUmVuZGVyRWxlbWVudCYpIGNvbnN0Owor
ICAgIGJvb2wgY2FuSW5zZXJ0KFJlbmRlclRleHQmKSBjb25zdDsKKworICAgIHZvaWQgY29tcHV0
ZU5leHRTaWJsaW5nKGNvbnN0IE5vZGUmKTsKKyAgICB2b2lkIGludmFsaWRhdGVOZXh0U2libGlu
Zyhjb25zdCBSZW5kZXJPYmplY3QmKTsKKworICAgIHN0YXRpYyBSZW5kZXJPYmplY3QqIHByZXZp
b3VzU2libGluZ1JlbmRlcmVyKGNvbnN0IFRleHQmKTsKKyAgICBzdGF0aWMgUmVuZGVyT2JqZWN0
KiBuZXh0U2libGluZ1JlbmRlcmVyKGNvbnN0IE5vZGUmLCBjb25zdCBSZW5kZXJFbGVtZW50JiBw
YXJlbnRSZW5kZXJlcik7CisgICAgc3RhdGljIGJvb2wgaXNSZW5kZXJlclJlcGFyZW50ZWQoY29u
c3QgUmVuZGVyT2JqZWN0Jik7CisKK3ByaXZhdGU6CisgICAgUmVuZGVyRWxlbWVudCYgbV9wYXJl
bnQ7CisgICAgUmVuZGVyT2JqZWN0KiBtX25leHRTaWJsaW5nIHsgbnVsbHB0ciB9OworICAgIGJv
b2wgbV9oYXNWYWxpZE5leHRTaWJsaW5nIHsgZmFsc2UgfTsKKyNpZiAhQVNTRVJUX0RJU0FCTEVE
CisgICAgdW5zaWduZWQgbV9hc3NlcnRpb25MaW1pdENvdW50ZXIgeyAwIH07CisjZW5kaWYKK307
CisKKworaW5saW5lIGJvb2wgUmVuZGVyVHJlZVBvc2l0aW9uOjpjYW5JbnNlcnQoUmVuZGVyRWxl
bWVudCYgcmVuZGVyZXIpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFyZW5kZXJlci5wYXJlbnQoKSk7
CisgICAgcmV0dXJuIG1fcGFyZW50LmlzQ2hpbGRBbGxvd2VkKHJlbmRlcmVyLCByZW5kZXJlci5z
dHlsZSgpKTsKK30KKworaW5saW5lIGJvb2wgUmVuZGVyVHJlZVBvc2l0aW9uOjpjYW5JbnNlcnQo
UmVuZGVyVGV4dCYgcmVuZGVyZXIpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFyZW5kZXJlci5wYXJl
bnQoKSk7CisgICAgcmV0dXJuIG1fcGFyZW50LmlzQ2hpbGRBbGxvd2VkKHJlbmRlcmVyLCBtX3Bh
cmVudC5zdHlsZSgpKTsKK30KKworaW5saW5lIHZvaWQgUmVuZGVyVHJlZVBvc2l0aW9uOjppbnNl
cnQoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKK3sKKyAgICBBU1NFUlQobV9oYXNWYWxpZE5leHRT
aWJsaW5nKTsKKyAgICBtX3BhcmVudC5hZGRDaGlsZCgmcmVuZGVyZXIsIG1fbmV4dFNpYmxpbmcp
OworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVSZXNvbHZlVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVUcmVl
LmNwcAppbmRleCAwN2VmYTVmOTc1ZWVlMmRjOTIyNGM5N2ViNGMxOTgzMWQ5OWYzZmNkLi4zMjRj
ZmJhODBjZmQyYTYxZWM2NzdkOTQzMjBjNjU1OTlhODc1ZDdmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZVJlc29sdmVUcmVlLmNwcApAQCAtNDIsNyArNDIsNyBAQAogI2luY2x1ZGUgIlJl
bmRlckZ1bGxTY3JlZW4uaCIKICNpbmNsdWRlICJSZW5kZXJOYW1lZEZsb3dUaHJlYWQuaCIKICNp
bmNsdWRlICJSZW5kZXJUZXh0LmgiCi0jaW5jbHVkZSAiUmVuZGVyVmlldy5oIgorI2luY2x1ZGUg
IlJlbmRlclRyZWVQb3NpdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2luY2x1
ZGUgIlJlc291cmNlTG9hZFNjaGVkdWxlci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC02
MiwzMSArNjIsNiBAQCBuYW1lc3BhY2UgU3R5bGUgewogCiBlbnVtIERldGFjaFR5cGUgeyBOb3Jt
YWxEZXRhY2gsIFJlYXR0YWNoRGV0YWNoIH07CiAKLWNsYXNzIFJlbmRlclRyZWVQb3NpdGlvbiB7
Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgUmVuZGVyVHJlZVBvc2l0aW9uKFJlbmRlclZpZXcmKTsK
LSAgICBleHBsaWNpdCBSZW5kZXJUcmVlUG9zaXRpb24oUmVuZGVyRWxlbWVudCYgcGFyZW50KTsK
LSAgICBSZW5kZXJUcmVlUG9zaXRpb24oUmVuZGVyRWxlbWVudCYgcGFyZW50LCBSZW5kZXJPYmpl
Y3QqIG5leHRTaWJsaW5nKTsKLQotICAgIFJlbmRlckVsZW1lbnQmIHBhcmVudCgpIHsgcmV0dXJu
IG1fcGFyZW50OyB9Ci0gICAgY29uc3QgUmVuZGVyRWxlbWVudCYgcGFyZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9wYXJlbnQ7IH0KLQotICAgIHZvaWQgaW5zZXJ0KFJlbmRlck9iamVjdCYpOwotICAg
IGJvb2wgY2FuSW5zZXJ0KFJlbmRlckVsZW1lbnQmKSBjb25zdDsKLSAgICBib29sIGNhbkluc2Vy
dChSZW5kZXJUZXh0JikgY29uc3Q7Ci0KLSAgICB2b2lkIGNvbXB1dGVOZXh0U2libGluZyhjb25z
dCBOb2RlJik7Ci0gICAgdm9pZCBpbnZhbGlkYXRlTmV4dFNpYmxpbmcoY29uc3QgUmVuZGVyT2Jq
ZWN0Jik7Ci0KLXByaXZhdGU6Ci0gICAgUmVuZGVyRWxlbWVudCYgbV9wYXJlbnQ7Ci0gICAgUmVu
ZGVyT2JqZWN0KiBtX25leHRTaWJsaW5nOwotICAgIGJvb2wgbV9oYXNWYWxpZE5leHRTaWJsaW5n
OwotI2lmICFBU1NFUlRfRElTQUJMRUQKLSAgICB1bnNpZ25lZCBtX2Fzc2VydGlvbkxpbWl0Q291
bnRlcjsKLSNlbmRpZgotfTsKLQogc3RhdGljIHZvaWQgYXR0YWNoUmVuZGVyVHJlZShFbGVtZW50
JiwgUmVuZGVyU3R5bGUmIGluaGVyaXRlZFN0eWxlLCBSZW5kZXJUcmVlUG9zaXRpb24mLCBQYXNz
UmVmUHRyPFJlbmRlclN0eWxlPik7CiBzdGF0aWMgdm9pZCBhdHRhY2hUZXh0UmVuZGVyZXIoVGV4
dCYsIFJlbmRlclRyZWVQb3NpdGlvbiYpOwogc3RhdGljIHZvaWQgZGV0YWNoUmVuZGVyVHJlZShF
bGVtZW50JiwgRGV0YWNoVHlwZSk7CkBAIC0xNTAsMTAwICsxMjUsNiBAQCBDaGFuZ2UgZGV0ZXJt
aW5lQ2hhbmdlKGNvbnN0IFJlbmRlclN0eWxlJiBzMSwgY29uc3QgUmVuZGVyU3R5bGUmIHMyKQog
ICAgIHJldHVybiBOb0NoYW5nZTsKIH0KIAotc3RhdGljIGJvb2wgaXNSZW5kZXJlclJlcGFyZW50
ZWQoY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKLXsKLSAgICBpZiAoIXJlbmRlcmVyLT5u
b2RlKCktPmlzRWxlbWVudE5vZGUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChy
ZW5kZXJlci0+c3R5bGUoKS5oYXNGbG93SW50bygpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICByZXR1cm4gZmFsc2U7Ci19Ci0KLXN0YXRpYyBSZW5kZXJPYmplY3QqIG5leHRTaWJsaW5nUmVu
ZGVyZXIoY29uc3QgTm9kZSYgbm9kZSwgY29uc3QgUmVuZGVyRWxlbWVudCYgcGFyZW50UmVuZGVy
ZXIpCi17Ci0gICAgaWYgKCFwYXJlbnRSZW5kZXJlci5lbGVtZW50KCkpCi0gICAgICAgIHJldHVy
biBudWxscHRyOwotICAgIGlmIChub2RlLmlzQWZ0ZXJQc2V1ZG9FbGVtZW50KCkpCi0gICAgICAg
IHJldHVybiBudWxscHRyOwotICAgIE5vZGUqIHNpYmxpbmcgPSBub2RlLmlzQmVmb3JlUHNldWRv
RWxlbWVudCgpID8gTm9kZVJlbmRlcmluZ1RyYXZlcnNhbDo6Zmlyc3RDaGlsZChwYXJlbnRSZW5k
ZXJlci5lbGVtZW50KCkpIDogTm9kZVJlbmRlcmluZ1RyYXZlcnNhbDo6bmV4dFNpYmxpbmcoJm5v
ZGUpOwotICAgIGZvciAoOyBzaWJsaW5nOyBzaWJsaW5nID0gTm9kZVJlbmRlcmluZ1RyYXZlcnNh
bDo6bmV4dFNpYmxpbmcoc2libGluZykpIHsKLSAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJl
ciA9IHNpYmxpbmctPnJlbmRlcmVyKCk7Ci0gICAgICAgIGlmIChyZW5kZXJlciAmJiAhaXNSZW5k
ZXJlclJlcGFyZW50ZWQocmVuZGVyZXIpKQotICAgICAgICAgICAgcmV0dXJuIHJlbmRlcmVyOwot
ICAgIH0KLSAgICBpZiAoUHNldWRvRWxlbWVudCogYWZ0ZXIgPSBwYXJlbnRSZW5kZXJlci5lbGVt
ZW50KCktPmFmdGVyUHNldWRvRWxlbWVudCgpKQotICAgICAgICByZXR1cm4gYWZ0ZXItPnJlbmRl
cmVyKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KLVJlbmRlclRyZWVQb3NpdGlvbjo6UmVu
ZGVyVHJlZVBvc2l0aW9uKFJlbmRlclZpZXcmIHJvb3QpCi0gICAgOiBtX3BhcmVudChyb290KQot
ICAgICwgbV9uZXh0U2libGluZyhudWxscHRyKQotICAgICwgbV9oYXNWYWxpZE5leHRTaWJsaW5n
KHRydWUpCi0jaWYgIUFTU0VSVF9ESVNBQkxFRAotICAgICwgbV9hc3NlcnRpb25MaW1pdENvdW50
ZXIoMCkKLSNlbmRpZgotewotfQotCi1SZW5kZXJUcmVlUG9zaXRpb246OlJlbmRlclRyZWVQb3Np
dGlvbihSZW5kZXJFbGVtZW50JiBwYXJlbnQpCi0gICAgOiBtX3BhcmVudChwYXJlbnQpCi0gICAg
LCBtX25leHRTaWJsaW5nKG51bGxwdHIpCi0gICAgLCBtX2hhc1ZhbGlkTmV4dFNpYmxpbmcoZmFs
c2UpCi0jaWYgIUFTU0VSVF9ESVNBQkxFRAotICAgICwgbV9hc3NlcnRpb25MaW1pdENvdW50ZXIo
MCkKLSNlbmRpZgotewotfQotCi1SZW5kZXJUcmVlUG9zaXRpb246OlJlbmRlclRyZWVQb3NpdGlv
bihSZW5kZXJFbGVtZW50JiBwYXJlbnQsIFJlbmRlck9iamVjdCogbmV4dFNpYmxpbmcpCi0gICAg
OiBtX3BhcmVudChwYXJlbnQpCi0gICAgLCBtX25leHRTaWJsaW5nKG5leHRTaWJsaW5nKQotICAg
ICwgbV9oYXNWYWxpZE5leHRTaWJsaW5nKHRydWUpCi0jaWYgIUFTU0VSVF9ESVNBQkxFRAotICAg
ICwgbV9hc3NlcnRpb25MaW1pdENvdW50ZXIoMCkKLSNlbmRpZgotewotfQotCi1ib29sIFJlbmRl
clRyZWVQb3NpdGlvbjo6Y2FuSW5zZXJ0KFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKSBjb25zdAot
ewotICAgIEFTU0VSVCghcmVuZGVyZXIucGFyZW50KCkpOwotICAgIHJldHVybiBtX3BhcmVudC5p
c0NoaWxkQWxsb3dlZChyZW5kZXJlciwgcmVuZGVyZXIuc3R5bGUoKSk7Ci19Ci0KLWJvb2wgUmVu
ZGVyVHJlZVBvc2l0aW9uOjpjYW5JbnNlcnQoUmVuZGVyVGV4dCYgcmVuZGVyZXIpIGNvbnN0Ci17
Ci0gICAgQVNTRVJUKCFyZW5kZXJlci5wYXJlbnQoKSk7Ci0gICAgcmV0dXJuIG1fcGFyZW50Lmlz
Q2hpbGRBbGxvd2VkKHJlbmRlcmVyLCBtX3BhcmVudC5zdHlsZSgpKTsKLX0KLQotdm9pZCBSZW5k
ZXJUcmVlUG9zaXRpb246Omluc2VydChSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQotewotICAgIEFT
U0VSVChtX2hhc1ZhbGlkTmV4dFNpYmxpbmcpOwotICAgIG1fcGFyZW50LmFkZENoaWxkKCZyZW5k
ZXJlciwgbV9uZXh0U2libGluZyk7Ci19Ci0KLXZvaWQgUmVuZGVyVHJlZVBvc2l0aW9uOjpjb21w
dXRlTmV4dFNpYmxpbmcoY29uc3QgTm9kZSYgbm9kZSkKLXsKLSAgICBBU1NFUlQoIW5vZGUucmVu
ZGVyZXIoKSk7Ci0gICAgaWYgKG1faGFzVmFsaWROZXh0U2libGluZykgewotICAgICAgICAvLyBT
dG9wIHZhbGlkYXRpbmcgYXQgc29tZSBwb2ludCBzbyB0aGUgYXNzZXJ0IGRvZXNuJ3QgbWFrZSB1
cyBPKE5eMikgb24gZGVidWcgYnVpbGRzLgotICAgICAgICBBU1NFUlQobV9wYXJlbnQuaXNSZW5k
ZXJWaWV3KCkgfHwgKyttX2Fzc2VydGlvbkxpbWl0Q291bnRlciA+IDIwIHx8IG5leHRTaWJsaW5n
UmVuZGVyZXIobm9kZSwgbV9wYXJlbnQpID09IG1fbmV4dFNpYmxpbmcpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotICAgIG1fbmV4dFNpYmxpbmcgPSBuZXh0U2libGluZ1JlbmRlcmVyKG5vZGUs
IG1fcGFyZW50KTsKLSAgICBtX2hhc1ZhbGlkTmV4dFNpYmxpbmcgPSB0cnVlOwotfQotCi12b2lk
IFJlbmRlclRyZWVQb3NpdGlvbjo6aW52YWxpZGF0ZU5leHRTaWJsaW5nKGNvbnN0IFJlbmRlck9i
amVjdCYgc2libGluZ1JlbmRlcmVyKQotewotICAgIGlmICghbV9oYXNWYWxpZE5leHRTaWJsaW5n
KQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKG1fbmV4dFNpYmxpbmcgPT0gJnNpYmxpbmdSZW5k
ZXJlcikKLSAgICAgICAgbV9oYXNWYWxpZE5leHRTaWJsaW5nID0gZmFsc2U7Ci19Ci0KIHN0YXRp
YyBib29sIHNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0
IFJlbmRlckVsZW1lbnQmIHBhcmVudFJlbmRlcmVyKQogewogICAgIGlmICghZWxlbWVudC5kb2N1
bWVudCgpLnNob3VsZENyZWF0ZVJlbmRlcmVycygpKQpAQCAtMzAzLDcgKzE4NCw3IEBAIHN0YXRp
YyB2b2lkIGNyZWF0ZVJlbmRlcmVySWZOZWVkZWQoRWxlbWVudCYgZWxlbWVudCwgUmVuZGVyU3R5
bGUmIGluaGVyaXRlZFN0eWxlCiAgICAgICAgID8gUmVuZGVyVHJlZVBvc2l0aW9uKCpwYXJlbnRG
bG93UmVuZGVyZXIsIHBhcmVudEZsb3dSZW5kZXJlci0+bmV4dFJlbmRlcmVyRm9yRWxlbWVudChl
bGVtZW50KSkKICAgICAgICAgOiByZW5kZXJUcmVlUG9zaXRpb247CiAKLSAgICBSZW5kZXJFbGVt
ZW50KiBuZXdSZW5kZXJlciA9IGVsZW1lbnQuY3JlYXRlRWxlbWVudFJlbmRlcmVyKHN0eWxlLnJl
bGVhc2VOb25OdWxsKCkpLmxlYWtQdHIoKTsKKyAgICBSZW5kZXJFbGVtZW50KiBuZXdSZW5kZXJl
ciA9IGVsZW1lbnQuY3JlYXRlRWxlbWVudFJlbmRlcmVyKHN0eWxlLnJlbGVhc2VOb25OdWxsKCks
IGluc2VydGlvblBvc2l0aW9uKS5sZWFrUHRyKCk7CiAgICAgaWYgKCFuZXdSZW5kZXJlcikKICAg
ICAgICAgcmV0dXJuOwogICAgIGlmICghaW5zZXJ0aW9uUG9zaXRpb24uY2FuSW5zZXJ0KCpuZXdS
ZW5kZXJlcikpIHsKQEAgLTMzNiwyMCArMjE3LDYgQEAgc3RhdGljIHZvaWQgY3JlYXRlUmVuZGVy
ZXJJZk5lZWRlZChFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJTdHlsZSYgaW5oZXJpdGVkU3R5bGUK
ICAgICBpbnNlcnRpb25Qb3NpdGlvbi5pbnNlcnQoKm5ld1JlbmRlcmVyKTsKIH0KIAotc3RhdGlj
IFJlbmRlck9iamVjdCogcHJldmlvdXNTaWJsaW5nUmVuZGVyZXIoY29uc3QgVGV4dCYgdGV4dE5v
ZGUpCi17Ci0gICAgaWYgKHRleHROb2RlLnJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVybiB0ZXh0
Tm9kZS5yZW5kZXJlcigpLT5wcmV2aW91c1NpYmxpbmcoKTsKLSAgICBmb3IgKE5vZGUqIHNpYmxp
bmcgPSBOb2RlUmVuZGVyaW5nVHJhdmVyc2FsOjpwcmV2aW91c1NpYmxpbmcoJnRleHROb2RlKTsg
c2libGluZzsgc2libGluZyA9IE5vZGVSZW5kZXJpbmdUcmF2ZXJzYWw6OnByZXZpb3VzU2libGlu
ZyhzaWJsaW5nKSkgewotICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gc2libGluZy0+
cmVuZGVyZXIoKTsKLSAgICAgICAgaWYgKHJlbmRlcmVyICYmICFpc1JlbmRlcmVyUmVwYXJlbnRl
ZChyZW5kZXJlcikpCi0gICAgICAgICAgICByZXR1cm4gcmVuZGVyZXI7Ci0gICAgfQotICAgIGlm
IChQc2V1ZG9FbGVtZW50KiBiZWZvcmUgPSB0ZXh0Tm9kZS5wYXJlbnRFbGVtZW50KCktPmJlZm9y
ZVBzZXVkb0VsZW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIGJlZm9yZS0+cmVuZGVyZXIoKTsKLSAg
ICByZXR1cm4gbnVsbHB0cjsKLX0KLQogc3RhdGljIHZvaWQgaW52YWxpZGF0ZVdoaXRlc3BhY2VP
bmx5VGV4dFNpYmxpbmdzQWZ0ZXJBdHRhY2hJZk5lZWRlZChOb2RlJiBjdXJyZW50KQogewogICAg
IGlmIChpczxJbnNlcnRpb25Qb2ludD4oY3VycmVudCkpCkBAIC0zNjEsNyArMjI4LDcgQEAgc3Rh
dGljIHZvaWQgaW52YWxpZGF0ZVdoaXRlc3BhY2VPbmx5VGV4dFNpYmxpbmdzQWZ0ZXJBdHRhY2hJ
Zk5lZWRlZChOb2RlJiBjdXJyZW4KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKGlz
PEVsZW1lbnQ+KCpzaWJsaW5nKSkgewogICAgICAgICAgICAgLy8gVGV4dCByZW5kZXJlcnMgYmV5
b25kIHJlbmRlcmVkIGVsZW1lbnRzIGNhbid0IGJlIGFmZmVjdGVkLgotICAgICAgICAgICAgaWYg
KCFzaWJsaW5nLT5yZW5kZXJlcigpIHx8IGlzUmVuZGVyZXJSZXBhcmVudGVkKHNpYmxpbmctPnJl
bmRlcmVyKCkpKQorICAgICAgICAgICAgaWYgKCFzaWJsaW5nLT5yZW5kZXJlcigpIHx8IFJlbmRl
clRyZWVQb3NpdGlvbjo6aXNSZW5kZXJlclJlcGFyZW50ZWQoKnNpYmxpbmctPnJlbmRlcmVyKCkp
KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CkBAIC0zOTMsNyArMjYwLDcgQEAgc3RhdGljIGJvb2wgdGV4dFJlbmRlcmVySXNOZWVkZWQo
Y29uc3QgVGV4dCYgdGV4dE5vZGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYKICAgICBpZiAo
cGFyZW50UmVuZGVyZXIuc3R5bGUoKS5wcmVzZXJ2ZU5ld2xpbmUoKSkgLy8gcHJlL3ByZS13cmFw
L3ByZS1saW5lIGFsd2F5cyBtYWtlIHJlbmRlcmVycy4KICAgICAgICAgcmV0dXJuIHRydWU7CiAK
LSAgICBSZW5kZXJPYmplY3QqIHByZXZpb3VzUmVuZGVyZXIgPSBwcmV2aW91c1NpYmxpbmdSZW5k
ZXJlcih0ZXh0Tm9kZSk7CisgICAgUmVuZGVyT2JqZWN0KiBwcmV2aW91c1JlbmRlcmVyID0gUmVu
ZGVyVHJlZVBvc2l0aW9uOjpwcmV2aW91c1NpYmxpbmdSZW5kZXJlcih0ZXh0Tm9kZSk7CiAgICAg
aWYgKHByZXZpb3VzUmVuZGVyZXIgJiYgcHJldmlvdXNSZW5kZXJlci0+aXNCUigpKSAvLyA8c3Bh
bj48YnIvPiA8YnIvPjwvc3Bhbj4KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAKQEAg
LTQwOCw3ICsyNzUsNyBAQCBzdGF0aWMgYm9vbCB0ZXh0UmVuZGVyZXJJc05lZWRlZChjb25zdCBU
ZXh0JiB0ZXh0Tm9kZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJgogICAgICAgICBSZW5kZXJP
YmplY3QqIGZpcnN0ID0gcGFyZW50UmVuZGVyZXIuZmlyc3RDaGlsZCgpOwogICAgICAgICB3aGls
ZSAoZmlyc3QgJiYgZmlyc3QtPmlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQoKSkKICAg
ICAgICAgICAgIGZpcnN0ID0gZmlyc3QtPm5leHRTaWJsaW5nKCk7Ci0gICAgICAgIFJlbmRlck9i
amVjdCogbmV4dFJlbmRlcmVyID0gbmV4dFNpYmxpbmdSZW5kZXJlcih0ZXh0Tm9kZSwgcGFyZW50
UmVuZGVyZXIpOworICAgICAgICBSZW5kZXJPYmplY3QqIG5leHRSZW5kZXJlciA9IFJlbmRlclRy
ZWVQb3NpdGlvbjo6bmV4dFNpYmxpbmdSZW5kZXJlcih0ZXh0Tm9kZSwgcGFyZW50UmVuZGVyZXIp
OwogICAgICAgICBpZiAoIWZpcnN0IHx8IG5leHRSZW5kZXJlciA9PSBmaXJzdCkgewogICAgICAg
ICAgICAgLy8gV2hpdGVzcGFjZSBhdCB0aGUgc3RhcnQgb2YgYSBibG9jayBqdXN0IGdvZXMgYXdh
eS4gRG9uJ3QgZXZlbiBtYWtlIGEgcmVuZGVyIG9iamVjdCBmb3IgdGhpcyB0ZXh0LgogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKaW5kZXggZmEz
MTcyZjFiZDZmODE2Mzg5ODE3ZTA0N2VhZGUyNDU5ZmQ0NmZiNy4uMWEyODQ2YjBlY2JlNDRmYzM0
ZTIzNjBhNmUyMTAzMjUzOTNjOWMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCkBA
IC0xMDUsNyArMTA1LDcgQEAgdm9pZCBTVkdBRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OnN2
Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gU1ZHQUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYg
c3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHQUVsZW1lbnQ6OmNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3Np
dGlvbiYpCiB7CiAgICAgaWYgKHBhcmVudE5vZGUoKSAmJiBwYXJlbnROb2RlKCktPmlzU1ZHRWxl
bWVudCgpICYmIGRvd25jYXN0PFNWR0VsZW1lbnQ+KCpwYXJlbnROb2RlKCkpLmlzVGV4dENvbnRl
bnQoKSkKICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR0lubGluZT4oKnRo
aXMsIFdURjo6bW92ZShzdHlsZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaAppbmRleCAyOTQ2
NWRkY2YxMTMxYzY2MDFkODZlYmQwNjRmNGJlNGFhZDA4ZTZjLi41YmIxMjJiNzIyNzRlMGUzOGIy
MGVmZTdjYjc3OGM4MTJlNGU0YWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaApAQCAtNDYs
NyArNDYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJy
aWRlOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHls
ZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBi
b29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJyaWRl
OwogCiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5jcHAKaW5kZXggZTc0NDE1
ZDliYjkxYTJlNmViOTIxYjVlMTFkNWIxZjYzMTFhY2MxYy4uMDdjZTMyOTE3YTVjNjdiNjA1YjQ1
MjU5ODdiMDdkMDcyNmQ1ZDg4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fs
dEdseXBoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxl
bWVudC5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgYm9vbCBTVkdBbHRHbHlwaEVsZW1lbnQ6OmNoaWxk
U2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYgY2hpbGQpIGNvbnN0CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHQWx0R2x5cGhFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IFNWR0FsdEdseXBoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikK
IHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHVFNwYW4+KCp0aGlzLCBXVEY6
Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRH
bHlwaEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaApp
bmRleCBmY2NjNDE1MzI3MjRlYTc3ZWFhYjIxODdiYTViMWE0YWQwMTZlYTQxLi4xNmY2MDZkOGI5
OTI3YmIyNGRjYjIxZGEyYjk1ODE2ZTQ3ZTQ0YTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fs
dEdseXBoRWxlbWVudC5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
U1ZHQWx0R2x5cGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0g
ICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29u
c3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGNoaWxk
U2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAg
QkVHSU5fREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0FsdEdseXBoRWxlbWVudCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcAppbmRleCAxYjg5OWY5YzcyZmVjMDRj
ODMxNWIzMTFlMzc3YTcyMDY0NzE1OGM1Li40ZmUyNzVhNWE3M2I3YjM1ZWE3Yjk5MGRlZjJjZDBl
Zjk0YmI5MTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwCkBAIC05
OCw3ICs5OCw3IEBAIHZvaWQgU1ZHQ2lyY2xlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICB9CiB9CiAKLVJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBTVkdDaXJjbGVFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJl
bmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0NpcmNsZUVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNv
bnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJl
bmRlclNWR0VsbGlwc2U+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQ2lyY2xlRWxlbWVudC5oCmluZGV4IDY4NmZiY2EwM2UzMjc5MDkyYzdiOGMxY2UwMWEy
NmRhNmI3NWUzM2UuLmJiZGRkMmE5MjAyMTQ3MTk4NDBiZmEyMGI0OWYzYTBlZGUwMmNjNDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaApAQCAtNDMsNyArNDMsNyBAQCBwcml2
YXRlOgogCiAgICAgdmlydHVhbCBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVy
cmlkZTsKIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUyhTVkdDaXJjbGVF
bGVtZW50KQogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX0xFTkdUSChDeCwgY3gpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCmluZGV4IDdmNmJlYzk1ZGJmNjhlZGI1
ZGJlZTBlNDZjNTc0OThmMjdkZDZkNTAuLjYzNmY5MTQ5ZGZjYTY1Mjk4NjcxNDFmODM5NjVlYjkw
NjdlMDM3YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCkBA
IC0xMDIsNyArMTAyLDcgQEAgdm9pZCBTVkdDbGlwUGF0aEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdl
ZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQogICAgICAgICBvYmplY3QtPnNldE5lZWRzTGF5
b3V0KCk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdDbGlwUGF0aEVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gU1ZHQ2xpcFBhdGhFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQog
ewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXI+KCp0
aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVs
ZW1lbnQuaAppbmRleCBkM2JhNmZkNDczZDk3MDVmNmY4MTYwODA1ZjVhNjg2ZWQ2NDcyMWRkLi4z
OTYzZmEwYzljN2RjYTcwMWNlNzBmZTU0NjU5NzAyMGI3ZjI4ODIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oCkBAIC00OCw3ICs0OCw3IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFu
Z2UmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAg
ICAgQkVHSU5fREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0NsaXBQYXRoRWxlbWVudCkK
ICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9FTlVNRVJBVElPTihDbGlwUGF0aFVuaXRzLCBjbGlw
UGF0aFVuaXRzLCBTVkdVbml0VHlwZXM6OlNWR1VuaXRUeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdE
ZWZzRWxlbWVudC5jcHAKaW5kZXggODNlMGQ2ZjkwMjJiNDcwYzc0ODBhODc5ZjVkYzI1OTQzZDg1
YjU5ZC4uODdkODY5NjA3ZTM0NDg1ODA4OTM5ZjgzN2E2ZTJiMjA5NWEzY2E5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuY3BwCkBAIC01MSw3ICs1MSw3IEBAIGJvb2wgU1ZHRGVm
c0VsZW1lbnQ6OmlzVmFsaWQoKSBjb25zdAogICAgIHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgp
OwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHRGVmc0VsZW1lbnQ6OmNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gU1ZHRGVmc0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVy
U3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJu
IGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lcj4oKnRoaXMsIFdURjo6bW92
ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RlZnNFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuaAppbmRleCA1OGNjODg3
ZmY3ZGNhNTRlYmRiYWY4NWQzNmRjMTdiOGI2NGQ0OWVkLi45ZmE0NDAxNDEyYTBmMjExMGNhODYz
ODIwNzM1N2UyYjI4Y2U3OTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVm
c0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuaApAQCAt
MzgsNyArMzgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7
CiAKICAgICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHRGVmc0VsZW1lbnQp
CiAgICAgICAgIERFQ0xBUkVfQU5JTUFURURfQk9PTEVBTihFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxp
cHNlRWxlbWVudC5jcHAKaW5kZXggZDMzMzg0MThkODM4YmVhZDhhODMwY2I3NzViZWEyZjJhZTc4
YTc1OS4uYWUzNjk2MWZkMTkyY2Y4N2VlZTMzY2Q2MDA5MzM2MThhZjA1MWI4YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwCkBAIC0xMDAsNyArMTAwLDcgQEAgdm9p
ZCBTVkdFbGxpcHNlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyTmFtZSkKICAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoYXR0ck5hbWUpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHRWxsaXBzZUVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHRWxsaXBzZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlv
biYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR0VsbGlwc2U+KCp0aGlz
LCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdFbGxpcHNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50
LmgKaW5kZXggMmRmNDFlZDZmMDEzODAyYWE3NzJlZDU5YmMxOWFiY2U3MzkyYjUxYS4uZjYyZDMy
ZGNlYTlkY2M5YzIwNDIxNGE3ZDQ4YWM5MWU2MDQ3Mzc4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0VsbGlwc2VFbGVtZW50LmgKQEAgLTQzLDcgKzQzLDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1
YWwgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVy
U3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAgQkVH
SU5fREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0VsbGlwc2VFbGVtZW50KQogICAgICAg
ICBERUNMQVJFX0FOSU1BVEVEX0xFTkdUSChDeCwgY3gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmls
dGVyRWxlbWVudC5jcHAKaW5kZXggZmU2NTc5OGYwNjIzNjY0NjBmNWI4NTU0ZWEwZGYyOGFlOTJl
YTM2Yy4uMmE3ZmIzYzE4NWU5ZDIyZTQyZDU4YjhmZWFkZWUxOTA2ODI5ZGY1ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcApAQCAtMTgzLDcgKzE4Myw3IEBAIHZvaWQg
U1ZHRmlsdGVyRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFu
Z2UpCiAgICAgICAgIG9iamVjdC0+c2V0TmVlZHNMYXlvdXQoKTsKIH0KIAotUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IFNWR0ZpbHRlckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHRmlsdGVy
RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwg
Y29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8
UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCmluZGV4IDU2NTZlMjNjZjY4Y2I1NTlmYjA4
NDY3MGNhOGY0M2I5NTU5M2QxZDQuLjZmZDZjMmU3MDRiNmU5OGQyZWJjMGNkOTZkYTVkYzNkN2Y1
NzEwNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaApAQCAtNTMsNyArNTMs
NyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFu
Z2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYm
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRp
b24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJl
cihjb25zdCBOb2RlJikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhh
c1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlcy5jcHAKaW5kZXggMDcwZjdkMDFhYjk2YjliMTdiY2M4YWVjYThjMDEzYjBjZTFi
NTk3My4uZDgzZTAxZmUzODY3MGViYjMxN2JkYjZmMGZkMzA0OTA3ZDcwMWZhMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlcy5jcHAKQEAgLTEzNyw3ICsxMzcsNyBAQCB2b2lkIFNWR0ZpbHRlclByaW1pdGl2
ZVN0YW5kYXJkQXR0cmlidXRlczo6c2V0U3RhbmRhcmRBdHRyaWJ1dGVzKEZpbHRlckVmZmVjdCog
ZgogICAgICAgICBmaWx0ZXJFZmZlY3QtPnNldEhhc0hlaWdodCh0cnVlKTsKIH0KIAotUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1Jl
c291cmNlRmlsdGVyUHJpbWl0aXZlPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRB
dHRyaWJ1dGVzLmgKaW5kZXggMzFiZTUxNGI0MGRlNTllODAxMGNhOTYxZjNjY2FjODFhNDYzNmI4
MC4uM2M4NmE0ZDRjNDY4YTI1ZWI1OTcyMDhhYWI3NzMxYzhhZGQ1ZWQ2MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXMuaApAQCAtNTcsNyArNTcsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZpcnR1
YWwgYm9vbCBpc0ZpbHRlckVmZmVjdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0K
IAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYs
IGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBy
ZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWln
bk9iamVjdEVsZW1lbnQuY3BwCmluZGV4IDYyNDZiMjgxN2FjZjYyMDQ1MmIwOWU2N2EwODdkYjQ3
MDg2MDFjMWYuLmVhMzU3OTNjNzQ4NDI5OWZjZWE1YTBmNzc5YmY5ZjI4OWJkMDNmNjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcApAQCAtMTIy
LDcgKzEyMiw3IEBAIHZvaWQgU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNo
YW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIFJlbmRlclNWR1Jl
c291cmNlOjptYXJrRm9yTGF5b3V0QW5kUGFyZW50UmVzb3VyY2VJbnZhbGlkYXRpb24oKnJlbmRl
cmVyKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9z
aXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdGb3JlaWduT2Jq
ZWN0PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGb3JlaWduT2JqZWN0RWxlbWVudC5oCmluZGV4IDViMGYyZWU2YjMzNTZlODkyNTJiYjE2NzQ1
MDc2ODFiYTYxM2MxOWQuLjZjNzk0YmYyZTU1ZDA5NGU3YzQwYWZjMTMyMWNlMDFjNjFiMTNlN2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oCkBAIC00
NCw3ICs0NCw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRl
ZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNo
b3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0
dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJl
bmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5k
ZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVs
YXRpdmVMZW5ndGhzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0dFbGVtZW50LmNwcAppbmRleCAwM2FlOGYzNDBlNDViMDczMGQ3NTU3Njk1YmVjMGVh
ZTQ5Y2FjYmYzLi40ZTNlNzkyZDFlMmI4ZGZmYzc5MzExMzRiOWUyMDlmZTc1MThjOGJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAKQEAgLTgzLDcgKzgzLDcgQEAgdm9pZCBTVkdHRWxl
bWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkK
ICAgICAgICAgUmVuZGVyU1ZHUmVzb3VyY2U6Om1hcmtGb3JMYXlvdXRBbmRQYXJlbnRSZXNvdXJj
ZUludmFsaWRhdGlvbigqcmVuZGVyZXIpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
U1ZHR0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5
bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHR0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlv
biYpCiB7CiAgICAgLy8gU1ZHIDEuMSB0ZXN0c3VpdGUgZXhwbGljaXRlbHkgdXNlcyBjb25zdHJ1
Y3RzIGxpa2UgPGcgZGlzcGxheT0ibm9uZSI+PGxpbmVhckdyYWRpZW50PgogICAgIC8vIFdlIHN0
aWxsIGhhdmUgdG8gY3JlYXRlIHJlbmRlcmVycyBmb3IgdGhlIDxnPiAmIDxsaW5lYXJHcmFkaWVu
dD4gZWxlbWVudCwgdGhvdWdoIHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0dFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuaAppbmRleCA4MWM4
ODM4NzE0YzYyYjBiODY0YmE3MDczNjMxMzU2N2Y0ZGU3NTI5Li5kZTQxYmEwMjJkOTdkYmEwZmVl
NmVlMDlhZGZmMzE5M2Q5YjVmNDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
R0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuaApAQCAtMzYs
NyArMzYsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNWR0dFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJp
ZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0dyYXBoaWNzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NF
bGVtZW50LmNwcAppbmRleCA3OTQ3YTFjZDVkMjhlMDAwZGIxOGJmY2EyNGQ5NjliYmQxYzAzNTY5
Li44MjkwNWFkNGVhYjAxZWFhOWUxNDJjMjNmZTUxZWQyM2E2NWFhMzk0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcApAQCAtMTYxLDcgKzE2MSw3IEBAIEZsb2F0
UmVjdCBTVkdHcmFwaGljc0VsZW1lbnQ6OmdldEJCb3goU3R5bGVVcGRhdGVTdHJhdGVneSBzdHls
ZVVwZGF0ZVN0cmF0ZWd5KQogICAgIHJldHVybiBTVkdUcmFuc2Zvcm1hYmxlOjpnZXRCQm94KHRo
aXMsIHN0eWxlVXBkYXRlU3RyYXRlZ3kpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
U1ZHR3JhcGhpY3NFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0dyYXBoaWNzRWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVu
ZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICAvLyBCeSBkZWZhdWx0LCBhbnkgc3ViY2xhc3MgaXMg
ZXhwZWN0ZWQgdG8gZG8gcGF0aC1iYXNlZCBkcmF3aW5nCiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRl
cmVyPFJlbmRlclNWR1BhdGg+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuaAppbmRleCBmMmQzZDJmNjM0MGEwZDY4MDlhMmU3ZWRj
MWRlZDAzZWY4YTRkNDRkLi43NGQ0YjQyYTcxMDU4ZmViYTI3NzYxODgyZTg1NzQ4NGI3NGZhZTlk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5oCkBAIC01MSw3ICs1MSw3
IEBAIHB1YmxpYzoKIAogICAgIC8vICJiYXNlIGNsYXNzIiBtZXRob2RzIGZvciBhbGwgdGhlIGVs
ZW1lbnRzIHdoaWNoIHJlbmRlciBhcyBwYXRocwogICAgIHZpcnR1YWwgdm9pZCB0b0NsaXBQYXRo
KFBhdGgmKTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0
eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIAogcHJvdGVjdGVk
OgogICAgIFNWR0dyYXBoaWNzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKaW5kZXggYjM2NjgxMjBkYzk0
YzRhMDI5MDYwZjAyZGVhMTE0OTNhODE5M2E1NC4uYjJlOTdkZDdiOTQzMjBmMTk3ZTY5MTM1ZDEz
NzJjZTA5YzU2MDlkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKQEAg
LTE2MCw3ICsxNjAsNyBAQCB2b2lkIFNWR0ltYWdlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0ltYWdlRWxlbWVudDo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBTVkdJbWFnZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0
dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR0ltYWdlPigqdGhpcywgV1RGOjptb3ZlKHN0eWxl
KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgKaW5kZXggOWVhMTVhNmYwYTky
ODk2MmVmYjMyNDgwOTg3OGVhNTA3MDQ4MDkyOS4uM2RmNTZlZDBjOGMyMWZiYmE0OWYwNWQ5Y2Vm
ZTEwMDhmNzdjYmRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaApAQCAtNDks
NyArNDksNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMo
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5z
ZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+
JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3Np
dGlvbiYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGltYWdl
U291cmNlVVJMKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGFkZFN1YnJlc291
cmNlQXR0cmlidXRlVVJMcyhMaXN0SGFzaFNldDxVUkw+JikgY29uc3Qgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCmluZGV4IDI2
M2MxY2NmOTIxYzM0ZGZjZWQ1YTBjYzkzYTI1OWMwYWE2MTI1ZGYuLjc1ODQ3YWE1NGQ4ZTUxMDg0
M2NmMDM4YTNmOThmNGM1OGE3OTZiNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
aW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCkBAIC0xMTMsNyArMTEzLDcgQEAgdm9pZCBTVkdMaW5l
YXJHcmFkaWVudEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0ck5hbWUKICAgICAgICAgb2JqZWN0LT5zZXROZWVkc0xheW91dCgpOwogfQogCi1SZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OjpjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAg
ICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudD4o
KnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xp
bmVhckdyYWRpZW50RWxlbWVudC5oCmluZGV4IGE3YTQ2OTc2NzA1YTU1OTk0NDZmMzlmOTFmNTdh
YWIxYWJkMzMxNWYuLmRjZmFiYTMxZmY0Y2ZjNzIyNTEyNWIyNmM4NzE0ZTM2NGI0OTA2MTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKQEAgLTQy
LDcgKzQyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVy
cmlkZTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVh
bCBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwCmluZGV4IGFmZDQwNDg5YmQxNGUzYTZjMzQ0
N2ZiYjQ2MGYwNjc5YjAyYjNhN2IuLjRjMmYyY2ZiOGMzMTYwY2Y2ZDA1ZTk1NjExNTk5MDFjNjI2
ZDgzOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKQEAgLTIxMyw3
ICsyMTMsNyBAQCB2b2lkIFNWR01hcmtlckVsZW1lbnQ6OnNldE9yaWVudFRvQW5nbGUoY29uc3Qg
U1ZHQW5nbGUmIGFuZ2xlKQogICAgIHN2Z0F0dHJpYnV0ZUNoYW5nZWQob3JpZW50QW5nbGVQcm9w
ZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBTVkdNYXJrZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR01hcmtlckVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1Jl
c291cmNlTWFya2VyPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01hcmtlckVsZW1lbnQuaAppbmRleCBiNGQzMDYxNTU4OGEzNDU5N2NmY2I4ZWRmMWJlMzI2
MzdhMTM3MDc1Li5hODg1YTRlZGNiMGM0MjQ3M2RkNTIyM2JmNjI3YzNkYTZlYmFkZTE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0
IENoaWxkQ2hhbmdlJikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHls
ZSYpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFz
UmVsYXRpdmVMZW5ndGhzKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tF
bGVtZW50LmNwcAppbmRleCA2YzUwODUxYzM2ZjQ4MWU0MGVmNmJlYzhhYTRkNjkyYjk3NTA3Njlj
Li4wNDlkMDcyZjY2Y2Q4MGMxNTY1ODFiNjQyYzI0NDFiMzZjMzAxMDE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBAQCB2b2lkIFNWR01hc2tF
bGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKICAgICAg
ICAgb2JqZWN0LT5zZXROZWVkc0xheW91dCgpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gU1ZHTWFza0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+
JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHTWFza0VsZW1lbnQ6OmNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRy
ZWVQb3NpdGlvbiYpCiB7CiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IG1hc2tSZW5kZXJl
ciA9IGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1Jlc291cmNlTWFza2VyPigqdGhpcywgV1RGOjpt
b3ZlKHN0eWxlKSk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFz
a0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oCmluZGV4IDRl
NTY4ZTAxYTRmYjRmNGE0NjU1ODQ5NTc1NmIzYTlkZWFkNTE0NTUuLjg3NDc2ODJlNzI1MzY2MDNl
ZTkyNDNhMzNiZmVmZGZjMTMxYmMzNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNYXNrRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5o
CkBAIC01NSw3ICs1NSw3IEBAIHByaXZhdGU6CiAKICAgICBIYXNoU2V0PFJlbmRlckxheWVyKj4g
bV9jbGllbnRMYXllcnM7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVm
PFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIAog
ICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gdHJ1ZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0
aEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAppbmRl
eCAxZDVjODMxMmY0OGYyNjcwOTAzMDk4YTBmMWM3MDhhNjgzMjA1OTA1Li42MWQ2NTY0ZjA1MWZi
YWM5YzQzMzg5NzgzYmNjN2VjNWFhNTJiZDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxl
bWVudC5jcHAKQEAgLTM5MSw3ICszOTEsNyBAQCBGbG9hdFJlY3QgU1ZHUGF0aEVsZW1lbnQ6Omdl
dEJCb3goU3R5bGVVcGRhdGVTdHJhdGVneSBzdHlsZVVwZGF0ZVN0cmF0ZWd5KQogICAgIHJldHVy
biByZW5kZXJlci0+cGF0aCgpLmJvdW5kaW5nUmVjdCgpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gU1ZHUGF0aEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVy
U3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHUGF0aEVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJl
bmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgLy8gQnkgZGVmYXVsdCwgYW55IHN1YmNsYXNzIGlz
IGV4cGVjdGVkIHRvIGRvIHBhdGgtYmFzZWQgZHJhd2luZwogICAgIHJldHVybiBjcmVhdGVSZW5k
ZXJlcjxSZW5kZXJTVkdQYXRoPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXRoRWxlbWVudC5oCmluZGV4IGMzNzFlNTU5NmJjNTE4MTJjYTRmN2FlOTFhNGI5OTJk
Y2FiZDUyYjMuLjYxMjNjYTA2ZjQ5NjdhYzhlNWIyZjdhODA4NmY4MDE1YjllMWI5NDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCkBAIC0xMTYsNyArMTE2LDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9CT09MRUFOKEV4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURf
UFJPUEVSVElFUwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5k
ZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKICAgICB2
aXJ0dWFsIE5vZGU6Okluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENv
bnRhaW5lck5vZGUmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29u
dGFpbmVyTm9kZSYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BhdHRlcm5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVu
dC5jcHAKaW5kZXggZmIxOGY4YWIyOTA2N2EzN2Q2ZjBlNGU1ZDA5YWM3NTE2ZmQ2N2QyYi4uYTA3
Yzg3NTBhN2FiODY0ODc4NTRkNGM4MDZiZjgxNGUxOGFmODlmOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwCkBAIC0xODIsNyArMTgyLDcgQEAgdm9pZCBTVkdQYXR0
ZXJuRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiAg
ICAgICAgIG9iamVjdC0+c2V0TmVlZHNMYXlvdXQoKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IFNWR1BhdHRlcm5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRl
clN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1BhdHRlcm5FbGVt
ZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25z
dCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5k
ZXJTVkdSZXNvdXJjZVBhdHRlcm4+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgKaW5kZXggYzZlNjg0ZDNmOGIwMmY2OGRhNGE3
NTk5M2EzNmY2NDhhZDM3YjRlZS4uYWYyOTJiNWYwYmE0ZTNlY2QwOWU4YTZmMjU3NTZiOGE2NzNm
YTQ3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgKQEAgLTYyLDcgKzYy
LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hh
bmdlZChjb25zdCBDaGlsZENoYW5nZSYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4m
Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3Ro
cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcAppbmRleCAwOTlhMGM5YzkxMjE4Yzc0
M2Q5NDJkZDFlZWViN2JjMjY1NTUwMDkxLi5jNjI1MmE4NjA0MzExZmU5NmFkODMxMDFmMDRjNjli
ZTZlYWQyNDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGll
bnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50LmNwcApAQCAtMTI1LDcgKzEyNSw3IEBAIHZvaWQgU1ZHUmFkaWFsR3JhZGllbnRFbGVt
ZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lCiAg
ICAgICAgIG9iamVjdC0+c2V0TmVlZHNMYXlvdXQoKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdSYWRp
YWxHcmFkaWVudEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+
JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0
ZVJlbmRlcmVyPFJlbmRlclNWR1Jlc291cmNlUmFkaWFsR3JhZGllbnQ+KCp0aGlzLCBXVEY6Om1v
dmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxH
cmFkaWVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVs
ZW1lbnQuaAppbmRleCBkNjQ4ODk5MmY4ZjdmNDk1MTBhNGRkZDZiOTdiOTVkOWIzNGUwMjY0Li5j
MGMzOWViNDRjYTg3YWI1YmMwZTU3NDA1MTZkMTc0OTA5MTU1MmJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCkBAIC00Miw3ICs0Miw3IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc3Zn
QXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKLSAgICB2
aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVm
PFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBS
ZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFz
UmVsYXRpdmVMZW5ndGhzKCkgY29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVj
dEVsZW1lbnQuY3BwCmluZGV4IGUyM2ExZTVkMjgzNWJlNjg0ODg3NWE1NzQ0ZWIxY2JjNTU0OGQ3
YTEuLmI3M2IwZDhjZjcxNmU5OTkyOTZhMWZkZDc4MGRiNzg0MDFmZmFjYWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNwcApAQCAtMTEwLDcgKzExMCw3IEBAIHZvaWQgU1ZHUmVj
dEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5h
bWUpCiAgICAgU1ZHR3JhcGhpY3NFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1l
KTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1JlY3RFbGVtZW50OjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IFNWR1JlY3RFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRl
clN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVy
biBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdSZWN0PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oCmluZGV4IGVkYTUyNmJmMDU4NDRkYzc0
MTA4MThkNjg5ZDY1NWU3OTcxMWNiMWIuLjlhMmRkNzkwMTY4MmNlYWUwNjJiZmIyZTc0ZmYxODRk
YzgyZTExOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oCkBAIC00NCw3ICs0NCw3
IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3Rocygp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlv
biYpIG92ZXJyaWRlOwogCiAgICAgQkVHSU5fREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTKFNW
R1JlY3RFbGVtZW50KQogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX0xFTkdUSChYLCB4KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCmluZGV4IDBkNGQ4NWFmOGJkYzFjNmQxMjI0ODY5
NmNlNjFlNjg1MDNmMzFmMjMuLmM2NTE2YzQzNTY5NDEyZjU4OTkxMzM4ZjUyZjkxNGU4NWU2ZDU1
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKQEAgLTQzOSw3ICs0MzksNyBA
QCBib29sIFNWR1NWR0VsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUm
IHN0eWxlKQogICAgIHJldHVybiBTdHlsZWRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKHN0eWxl
KTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1NWR0VsZW1lbnQ6OmNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gU1ZHU1ZHRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJT
dHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICBpZiAoaXNP
dXRlcm1vc3RTVkdTVkdFbGVtZW50KCkpCiAgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxS
ZW5kZXJTVkdSb290PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NW
R0VsZW1lbnQuaAppbmRleCA4MWQ5NjI1ZTg1MDBjNDZkM2Q4NTdmZWQ2ZjZiM2FhODMwZGRmZmE3
Li5kNzJiNTM0YzIyZjAwZjQ5M2FkZWRkNzZmNmNmNjliZmM0ZjNjMDJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTVkdFbGVtZW50LmgKQEAgLTEzNCw3ICsxMzQsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCogb2xkRG9jdW1lbnQpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHJlbmRl
cmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0
eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVl
UG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNhdGlvblJl
cXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCmluZGV4IDA1OWNkNGQ2YWFiNjZmMTVl
MmFmNTY2MDliMmQyYTZjOTgxMmNiZDYuLmJiZTRmNjYwYWQyZmQyY2UxMzUwYTNlMTkwZGFiOGQy
NmNlNzVkYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNwcApAQCAtNzYsNyAr
NzYsNyBAQCB2b2lkIFNWR1N0b3BFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIFNWR0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoYXR0ck5hbWUpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHU3RvcEVsZW1l
bnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHU3RvcEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7
CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR0dyYWRpZW50U3RvcD4oKnRoaXMs
IFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1N0b3BFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuaAppbmRl
eCA3ZWNlYmZlNTc4NjA4YjRhZGViZmQyZGNlYjEwNzYzYTIzNWMzMDQ2Li5hODM3NDk4YTIzZjBm
YzUxMmJlYTk3NDJhZTNhOGM0NDVlYzA3MDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU3RvcEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1l
bnQuaApAQCAtNDAsNyArNDAsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIGlzR3Jh
ZGllbnRTdG9wKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVh
bCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5k
ZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVy
VHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVk
ZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZTsKIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5J
TUFURURfUFJPUEVSVElFUyhTVkdTdG9wRWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0
Y2hFbGVtZW50LmNwcAppbmRleCAyZWFmYjNjZGJjNTUxNWJkYzYxNzk3MDlkMDIwMjg4ZWQ4MzUy
M2MwLi40NDc2MmNiZTVjYmJmY2Q0NmY4NGY5YmFhYTNjM2VmMjkzNGIyNGRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuY3BwCkBAIC02MCw3ICs2MCw3IEBAIGJvb2wgU1ZH
U3dpdGNoRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJiBjaGls
ZCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBTVkdTd2l0Y2hFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1N3aXRjaEVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1Ry
YW5zZm9ybWFibGVDb250YWluZXI+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5oCmluZGV4IDRlMmU0OTNlM2Q5MGU2OTgyZjI1ZjFl
MzViNWE5NTRkYTU3MTc1NDQuLmYwOGRhMWM1OTcwNjE1ZDJlMWYxODJlMzU0NTEyZjk1YWJmMmEz
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaApAQCAtMzgsNyArMzgsNyBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQogCiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hv
dWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1
YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAgQkVHSU5fREVDTEFSRV9BTklNQVRFRF9Q
Uk9QRVJUSUVTKFNWR1N3aXRjaEVsZW1lbnQpCiAgICAgICAgIERFQ0xBUkVfQU5JTUFURURfQk9P
TEVBTihFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuY3BwCmluZGV4IGJiODA4ZjhhNTJj
OTQxNDYzYjVkZWRiYjM2NmFlMTliYzM3YmZhM2QuLmM4ZTFkZWM4YzkzN2IwZjBjYWY3MDBhNmVj
YzI3MDFlY2E3NDNlMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAK
QEAgLTc0LDcgKzc0LDcgQEAgYm9vbCBTVkdTeW1ib2xFbGVtZW50OjpzZWxmSGFzUmVsYXRpdmVM
ZW5ndGhzKCkgY29uc3QKICAgICByZXR1cm4gaGFzQXR0cmlidXRlKFNWR05hbWVzOjp2aWV3Qm94
QXR0cik7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdTeW1ib2xFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IFNWR1N5bWJvbEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAg
ICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lcj4oKnRoaXMs
IFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1N5bWJvbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgK
aW5kZXggODgzNjVhN2FjZjRjNjgwZjJmNmIwM2VhN2NjNmI5NWY1Y2U4Yjc5Yy4uZWEzOTRiMDQ5
ODRjZWUwZWVlYzZhNjFlOWU0MzRjM2E4OTBlNmViZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3lt
Ym9sRWxlbWVudC5oCkBAIC00MSw3ICs0MSw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZv
aWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmlu
ZyYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVy
cmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Qg
b3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCmluZGV4IGNmNmI4
ZjI1N2IwMzlhYTM3MGJjMzIyODU2ZGFmZWYyMzhhZDA0M2YuLjRlZGI5ODNkZTQ4NTQxMTA5NmFi
NGRhY2I5MjdhYjRhNTgyY2RkNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
UmVmRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNw
cApAQCAtMTk1LDcgKzE5NSw3IEBAIHZvaWQgU1ZHVFJlZkVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNo
YW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgU1ZHVGV4dFBvc2l0aW9u
aW5nRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CiB9CiAKLVJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBTVkdUUmVmRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdUUmVm
RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwg
Y29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8
UmVuZGVyU1ZHSW5saW5lPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUUmVmRWxlbWVudC5oCmluZGV4IDMwNmUyYjM5MDZmY2EzZTVhNjVkOGMyNzE5ZjViY2Q5
NjAyMjE2OGMuLmI2NDVhNDUwMmIyYjE0OGNhNTZiMjdiODY1N2Y4NTVhNThmM2I2MDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5oCkBAIC00MSw3ICs0MSw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0
eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVl
UG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVS
ZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHJl
bmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RTcGFuRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVFNwYW5FbGVtZW50LmNwcAppbmRleCA2MjQzNDQyODhiZjgzNTI2ODUwOTRhYWRj
NTU5MzE2YWY3ODJmYTllLi5jYTlmNzdlYmFmNWViMzhiNmMyMzc2NWFhOWNlZmYxMzM4NzQ5MWM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFNwYW5FbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFNwYW5FbGVtZW50LmNwcApAQCAtMzgsNyArMzgsNyBA
QCBSZWY8U1ZHVFNwYW5FbGVtZW50PiBTVkdUU3BhbkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1RT
cGFuRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gU1ZHVFNwYW5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0
eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1RTcGFuRWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVu
ZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZH
VFNwYW4+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUU3BhbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUU3Bh
bkVsZW1lbnQuaAppbmRleCAyNjUzZTk1ZWIwYmIyZGIyM2RmOGU0YjRiY2VkN2Y4MjRhZWZmMWY3
Li45YjRhZThhZmUzOGZmNTg0NjE2ZDY4ZDFhOWUzM2I2MjUzZDZkNTVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFNwYW5FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RTcGFuRWxlbWVudC5oCkBAIC0zMiw3ICszMiw3IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgU1ZHVFNwYW5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwog
ICAgICAgICAgICAgCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5k
ZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0
eWxlJikgb3ZlcnJpZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rl
eHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5jcHAKaW5k
ZXggODk1NGQ2MjM3Y2EzN2MxZjE2MzYyM2VkZDRlYzc4NjVkYzdjZTUwOS4uNGU0ZDlmODQ5Yzli
Mjk0N2UzOWM1MDJlYjI2MDliYmE2YzkxNDMwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RleHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVs
ZW1lbnQuY3BwCkBAIC02NCw3ICs2NCw3IEBAIEFmZmluZVRyYW5zZm9ybSBTVkdUZXh0RWxlbWVu
dDo6YW5pbWF0ZWRMb2NhbFRyYW5zZm9ybSgpIGNvbnN0CiAgICAgcmV0dXJuIG1hdHJpeDsKIH0K
IAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1RleHRFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IFNWR1RleHRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVh
dGVSZW5kZXJlcjxSZW5kZXJTVkdUZXh0PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oCmluZGV4IGFmMTUwYTc5MDRjNTc2Y2MxYjljZTUy
ZWI5YzQ4NTc2YjRhY2Q5MWMuLjAwNzY2NTczNjAzMTQ2NDA1ODUzOTE4M2UyZWFmMDEzYTAyMDEw
MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oCkBAIC0zNCw3ICszNCw3IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgU1ZHVGV4dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJl
bmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qg
b3ZlcnJpZGU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBh
dGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3Bw
CmluZGV4IGY1MzNiZDk1MjNmZjExMDcxMDliMDlkNTRkZTgwNWZmMWJlZTIxNmEuLmEyYWQxOTFl
MWZhNzc0MDZkMTVlYzZkNjk5MzQ3MjlkNjI4MjU1ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdUZXh0UGF0aEVsZW1lbnQuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCBTVkdUZXh0UGF0
aEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5h
bWUpCiAgICAgICAgIFJlbmRlclNWR1Jlc291cmNlOjptYXJrRm9yTGF5b3V0QW5kUGFyZW50UmVz
b3VyY2VJbnZhbGlkYXRpb24oKnJlbmRlcmVyKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IFNWR1RleHRQYXRoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJT
dHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdUZXh0UGF0aEVsZW1l
bnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0
IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRl
clNWR1RleHRQYXRoPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVGV4dFBhdGhFbGVtZW50LmgKaW5kZXggYTVhYzBkZTk1MzVmOTZiM2U5NzVjMTZjZmEx
NzdhNmY3NmQzYmEwMS4uZTBkMGNlMDE1NDQ5NWY2YWUyNDM4MjMwZjkzMGQ0NjkxMmRmMjcxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaApAQCAtMTI5LDcgKzEyOSw3
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAK
LSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBj
b25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2hp
bGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlk
ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCmluZGV4IGE1MWU4Y2FmNGYyZGE3
NzU5NTQ2MmZkZmU0NWU2MGY0NjM2NjIwYjYuLjZjYTQzZTY1NDhkYzMwMjg2OTA5YWU2OTZkYjU4
YTU2MGVjMWJjYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKQEAgLTI2MSw3
ICsyNjEsNyBAQCBTVkdFbGVtZW50KiBTVkdVc2VFbGVtZW50Ojp0YXJnZXRDbG9uZSgpIGNvbnN0
CiAgICAgcmV0dXJuIGRvd25jYXN0PFNWR0VsZW1lbnQ+KHJvb3QtPmZpcnN0Q2hpbGQoKSk7CiB9
CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdVc2VFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IFNWR1VzZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+
JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0
ZVJlbmRlcmVyPFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI+KCp0aGlzLCBXVEY6Om1v
dmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCmluZGV4IDQ3NzM5MjNj
NThiMWIyZWNiMzdmMWNjOWVjYTU4MzY0ZDg2NDU2YzIuLjg4MGY3Yjk0YzAxYTE2ZjA2NWNlZTky
MzA5MzY2ODRlOWJmY2JmNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaApAQCAtNjQs
NyArNjQsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsQXR0YWNoUmVuZGVyZXJzKCkgb3ZlcnJpZGU7Ci0g
ICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29u
c3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHRvQ2xp
cFBhdGgoUGF0aCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBoYXZlTG9hZGVkUmVxdWly
ZWRSZXNvdXJjZXMoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoUGFyc2luZ0No
aWxkcmVuKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2RkMTZkM2Q3Y2U2ZDExOTI4NzZmNTcxMjU2Yjli
ZDBkZDlhYWNjMS4uYjYyYzE0MTIzMjg2YWMzMjkzOTJjMDA1MzM0M2NiYTc4NzM2YWQxMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDE1LTA0LTIxICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIFJlbmRlclJ1YnlUZXh0IGZvciA8cnQ+IG9ubHkgd2hl
biB0aGUgcGFyZW50IHJlbmRlcmVyIGlzIGEgUmVuZGVyUnVieS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDAzNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9ydWJ5L3J1YnktcnQtd2l0aC1y
ZWdpb24tY3Jhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3J1YnkvcnVi
eS1ydC13aXRoLXJlZ2lvbi1jcmFzaC5odG1sOiBBZGRlZC4KKwogMjAxNS0wNC0yMSAgTWljaGFl
bCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCBpbiBKU0M6Oklu
dGVycHJldGVyOjpleGVjdXRlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3J1YnkvcnVi
eS1ydC13aXRoLXJlZ2lvbi1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3J1
YnkvcnVieS1ydC13aXRoLXJlZ2lvbi1jcmFzaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGIy
NTVlMGU1NGJjMWY0ZjIzY2IzOTY5MDkwMjQ5Mzk4NjRiY2Y3MwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvcnVieS9ydWJ5LXJ0LXdpdGgtcmVnaW9uLWNyYXNoLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDIgQEAKK1Bhc3MgaWYgbm8gYXNzZXJ0IG9yIGNyYXNoIGluIERlYnVn
LgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3J1YnkvcnVieS1ydC13aXRoLXJlZ2lv
bi1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3J1YnktcnQtd2l0aC1yZWdpb24t
Y3Jhc2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmFlMjAzYmZkNTdjMmYxMGMwMmQ4M2EyMDcxMzc1ODUx
NmYzOGIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3J1YnktcnQt
d2l0aC1yZWdpb24tY3Jhc2guaHRtbApAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+CisgIDxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgIDwvc2NyaXB0PgorCisgIDxzdHlsZT4K
KwlydCB7CisgICAgICAtd2Via2l0LWZsb3ctaW50bzogZmxvd0NvbnRlbnQ7CisJfQorCQorCWRp
diB7CisJICAtd2Via2l0LWZsb3ctZnJvbTogZmxvd0NvbnRlbnQ7IAorCX0KKyAgPC9zdHlsZT4K
KzwvaGVhZD4KKzxib2R5PgorICA8ZGl2PjwvZGl2PgorICA8cnVieT48cnQ+UGFzcyBpZiBubyBh
c3NlcnQgb3IgY3Jhc2ggaW4gRGVidWcuPC9ydD48L3J1Ynk+CisgIDxzY3JpcHQ+CisgICAgZG9j
dW1lbnQuZXhlY0NvbW1hbmQoIlNlbGVjdEFsbCIpOworICA8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251326</attachid>
            <date>2015-04-22 09:20:25 -0700</date>
            <delta_ts>2015-04-22 15:28:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144035-20150422091922.patch</filename>
            <type>text/plain</type>
            <size>158821</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzMDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWI4MjM3NmZiMDg1YzFm
ZWYzMjZlNTMyZTZkOGEwOTAxZTdmMDAzYS4uYTg5NGZlYjBlYjU0MDVmYjM0MDE3ZTg1ZWJiYzgz
OWQ4YWRmZGRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2MyBAQAorMjAxNS0wNC0yMiAgWmFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIENyZWF0ZSBSZW5kZXJSdWJ5
VGV4dCBmb3IgPHJ0PiBvbmx5IHdoZW4gdGhlIHBhcmVudCByZW5kZXJlciBpcyBhIFJlbmRlclJ1
YnkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQw
MzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5k
ZXJSdWJ5VGV4dCByZXF1aXJlcyBpdHMgcGFyZW50IHRvIGJlIFJlbmRlclJ1YnlSdW4uCisgICAg
ICAgIFRoaXMgcGF0Y2ggYWxzbyBtb3ZlcyBydWJ5IHJlbmRlcmVyIGluaXRpYWxpemF0aW9uIGxv
Z2ljIGZyb20gUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKCkgdG8KKyAgICAgICAgSFRNTFJURWxl
bWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKCkgYW5kIEhUTUxSdWJ5RWxlbWVudDo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyLgorCisgICAgICAgIFRlc3Q6IGZhc3QvcnVieS9ydWJ5LXJ0LXdpdGgt
cmVnaW9uLWNyYXNoLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAq
IE1vZHVsZXMvcGx1Z2lucy9QbHVnaW5SZXBsYWNlbWVudC5oOgorICAgICAgICAqIE1vZHVsZXMv
cGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5oOgorICAgICAgICAqIE1vZHVsZXMv
cGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbToKKyAgICAgICAgKFdlYkNvcmU6
OlF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAg
ICAgICAqIE1vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6WW91VHViZVBsdWdpblJlcGxhY2VtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIpOgorICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1l
bnQuaDoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAg
ICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToK
KyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEFwcGxldEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFwcGxldEVsZW1lbnQ6OmNyZWF0ZUVsZW1l
bnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTEF0dGFjaG1lbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxBdHRhY2htZW50RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBo
dG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEJSRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQlJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRNTEJSRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwv
SFRNTEJ1dHRvbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEJ1dHRvbkVsZW1l
bnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9IVE1MQnV0dG9uRWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAg
ICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTERldGFp
bHNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEZXRhaWxzRWxlbWVudDo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxEZXRhaWxzRWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9IVE1MRWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MRmllbGRTZXRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgor
ICAgICAgICAqIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRN
TEZyYW1lRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRnJhbWVFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRNTEZyYW1lRWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MRnJhbWVTZXRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAg
ICAqIGh0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTElGcmFt
ZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElGcmFtZUVsZW1lbnQ6OmNyZWF0
ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oOgor
ICAgICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MSW1hZ2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwv
SFRNTEltYWdlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVy
ZXIpOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6Cisg
ICAgICAgICogaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZXRlckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9I
VE1MTWV0ZXJFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5FbGVtZW50Lmg6CisgICAgICAgICogaHRt
bC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVn
SW5JbWFnZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9I
VE1MUGx1Z0luSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MUHJvZ3Jlc3NFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50Lmg6Cisg
ICAgICAgICogaHRtbC9IVE1MUlRFbGVtZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEF0dGFjaG1lbnRFbGVtZW50LmguCisgICAgICAgIChXZWJDb3JlOjpIVE1MUlRF
bGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRNTFJ1YnlF
bGVtZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dGFjaG1lbnRF
bGVtZW50LmguCisgICAgICAgIChXZWJDb3JlOjpIVE1MUnVieUVsZW1lbnQ6OmNyZWF0ZUVsZW1l
bnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToK
KyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1M
U3VtbWFyeUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFN1bW1hcnlFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRNTFN1bW1hcnlFbGVt
ZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGFnTmFtZXMuaW46CisgICAgICAgICogaHRtbC9I
VE1MVGV4dEFyZWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFy
ZWFFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6Cisg
ICAgICAgICogaHRtbC9IVE1MVmlkZW9FbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MV0JS
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MV0JSRWxlbWVudDo6Y3JlYXRlRWxl
bWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxXQlJFbGVtZW50Lmg6CisgICAgICAg
ICogaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RGV0YWlsc01hcmtlckNvbnRyb2w6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAg
ICogaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuaDoKKyAgICAgICAgKiBodG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNv
bnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9s
VGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAg
ICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oOgorICAgICAgICAqIGh0bWwv
c2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZXRlcklu
bmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBodG1sL3NoYWRv
dy9NZXRlclNoYWRvd0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9Qcm9ncmVzc1No
YWRvd0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NJbm5lckVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9zaGFkb3cvUHJvZ3Jlc3NT
aGFkb3dFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNsaWRlclRodW1iRWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb250cm9sSW5uZXJDb250YWluZXI6OmNyZWF0
ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q29udHJvbElubmVyVGV4
dEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9zaGFkb3cv
VGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvbWFjL0lt
YWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
Q29udHJvbHNCdXR0b25FbGVtZW50TWFjOjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5oOgorICAg
ICAgICAqIGh0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjOjpjcmVhdGVFbGVt
ZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9v
dEVsZW1lbnRNYWMuaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1ZUVEN1ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpWVFRDdWVCb3g6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICog
aHRtbC90cmFjay9WVFRDdWUuaDoKKyAgICAgICAgKiBtYXRobWwvTWF0aE1MSW5saW5lQ29udGFp
bmVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxJbmxpbmVDb250YWluZXJF
bGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxJ
bmxpbmVDb250YWluZXJFbGVtZW50Lmg6CisgICAgICAgICogbWF0aG1sL01hdGhNTE1hdGhFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hdGhNTE1hdGhFbGVtZW50OjpjcmVhdGVFbGVt
ZW50UmVuZGVyZXIpOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oOgorICAg
ICAgICAqIG1hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWF0aE1MTWVuY2xvc2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAg
ICAqIG1hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaDoKKyAgICAgICAgKiBtYXRobWwvTWF0
aE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxTZWxlY3RFbGVt
ZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxTZWxl
Y3RFbGVtZW50Lmg6CisgICAgICAgICogbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1hdGhNTFRleHRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIp
OgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y2xv
bmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcik6CisgICAgICAgICogc3R5bGUvUmVuZGVy
VHJlZVBvc2l0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlUG9z
aXRpb246OlJlbmRlclRyZWVQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVl
UG9zaXRpb246OmNvbXB1dGVOZXh0U2libGluZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
cmVlUG9zaXRpb246OmludmFsaWRhdGVOZXh0U2libGluZyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUcmVlUG9zaXRpb246OnByZXZpb3VzU2libGluZ1JlbmRlcmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRyZWVQb3NpdGlvbjo6bmV4dFNpYmxpbmdSZW5kZXJlcik6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUcmVlUG9zaXRpb246OmlzUmVuZGVyZXJSZXBhcmVudGVkKToKKyAg
ICAgICAgKiBzdHlsZS9SZW5kZXJUcmVlUG9zaXRpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUcmVlUG9zaXRpb246OnBhcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUcmVlUG9zaXRpb246OmNhbkluc2VydCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVl
UG9zaXRpb246Omluc2VydCk6CisgICAgICAgICogc3R5bGUvU3R5bGVSZXNvbHZlVHJlZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6Y3JlYXRlUmVuZGVyZXJJZk5lZWRlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZTo6aW52YWxpZGF0ZVdoaXRlc3BhY2VPbmx5VGV4dFNpYmxpbmdz
QWZ0ZXJBdHRhY2hJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6dGV4dFJlbmRl
cmVySXNOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJlbmRlclRyZWVQb3NpdGlv
bjo6cGFyZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjppc1JlbmRlcmVy
UmVwYXJlbnRlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6bmV4dFNpYmxp
bmdSZW5kZXJlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UmVuZGVyVHJl
ZVBvc2l0aW9uOjpSZW5kZXJUcmVlUG9zaXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGU6OlJlbmRlclRyZWVQb3NpdGlvbjo6Y2FuSW5zZXJ0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlOjpSZW5kZXJUcmVlUG9zaXRpb246Omluc2VydCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UmVuZGVyVHJlZVBvc2l0aW9uOjpjb21wdXRlTmV4
dFNpYmxpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJlbmRlclRyZWVQ
b3NpdGlvbjo6aW52YWxpZGF0ZU5leHRTaWJsaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlOjpwcmV2aW91c1NpYmxpbmdSZW5kZXJlcik6IERlbGV0ZWQuCisgICAgICAgICog
c3ZnL1NWR0FFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdBRWxlbWVudC5oOgorICAgICAg
ICAqIHN2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQWx0
R2x5cGhFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdB
bHRHbHlwaEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdDaXJjbGVFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIp
OgorICAgICAgICAqIHN2Zy9TVkdDaXJjbGVFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0Ns
aXBQYXRoRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdDbGlwUGF0aEVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR0NsaXBQYXRoRWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9TVkdEZWZzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdEZWZzRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBzdmcv
U1ZHRGVmc0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHRWxsaXBzZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cik6CisgICAgICAgICogc3ZnL1NWR0VsbGlwc2VFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R0ZpbHRlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVyRWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBzdmcvU1ZHRmlsdGVyRWxlbWVudC5o
OgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVz
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXMuaDoKKyAgICAgICAgKiBzdmcvU1ZHRm9yZWlnbk9iamVjdEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0dFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0dFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdH
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHR3JhcGhpY3NFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgor
ICAgICAgICAqIHN2Zy9TVkdHcmFwaGljc0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHSW1h
Z2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlRWxlbWVudDo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBzdmcvU1ZHSW1hZ2VFbGVtZW50Lmg6CisgICAg
ICAgICogc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAg
ICAgICogc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdN
YXJrZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hcmtlckVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR01hcmtlckVsZW1lbnQuaDoK
KyAgICAgICAgKiBzdmcvU1ZHTWFza0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TWFza0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR01h
c2tFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAg
ICAqIHN2Zy9TVkdQYXRoRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdQYXR0ZXJuRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXR0ZXJuRWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKToKKyAgICAgICAgKiBzdmcvU1ZHUGF0dGVybkVsZW1lbnQuaDoKKyAgICAgICAg
KiBzdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1JhZGlhbEdyYWRpZW50RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAg
KiBzdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1JlY3RF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3RFbGVtZW50OjpjcmVhdGVFbGVt
ZW50UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdSZWN0RWxlbWVudC5oOgorICAgICAgICAq
IHN2Zy9TVkdTVkdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR1NWR0VsZW1lbnQuaDoK
KyAgICAgICAgKiBzdmcvU1ZHU3RvcEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
U3RvcEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR1N0
b3BFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1N3aXRjaEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHU3dpdGNoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAg
ICAgICAgKiBzdmcvU1ZHU3dpdGNoRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdTeW1ib2xF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N5bWJvbEVsZW1lbnQ6OmNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBzdmcvU1ZHVFJlZkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVFJlZkVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR1RSZWZFbGVt
ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1RTcGFuRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdUU3BhbkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICog
c3ZnL1NWR1RTcGFuRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdUZXh0RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVy
KToKKyAgICAgICAgKiBzdmcvU1ZHVGV4dEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHVGV4
dFBhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRQYXRoRWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBzdmcvU1ZHVGV4dFBhdGhFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHVXNlRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBzdmcvU1ZH
VXNlRWxlbWVudC5oOgorCiAyMDE1LTA0LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgTWFrZSBWZWN0b3IoY29uc3QgVmVjdG9yPFQsIG90aGVyQ2FwYWNpdHks
IG90aGVyT3ZlcmZsb3dCZWhhdmlvdXI+JikgY29uc3RydWN0b3IgZXhwbGljaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKaW5kZXggM2RmOTRlZjM5NGFmYThmZTUzMDQ2MzgxM2RkMTI4YzBlZmUwYWM1Ni4u
Y2I0ZmM1ZjFlMzIwNjA5YWUxNTljYTMyMWM2MzdkZmMzMTZlZTBkNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTI1MzgsNiArMjUzOCw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBzdG9y
YWdlL1N0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5jcHAKIAogICAgIHN0eWxlL0lubGluZVRleHRC
b3hTdHlsZS5jcHAKKyAgICBzdHlsZS9SZW5kZXJUcmVlUG9zaXRpb24uY3BwCiAgICAgc3R5bGUv
U3R5bGVGb250U2l6ZUZ1bmN0aW9ucy5jcHAKICAgICBzdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1
bWVudC5jcHAKICAgICBzdHlsZS9TdHlsZVJlc29sdmVUcmVlLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1BsdWdpblJlcGxhY2VtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUGx1Z2luUmVwbGFjZW1lbnQuaAppbmRleCAwMWM5MGI4
NjhhY2VmYWRmYTZmMmJlY2YzZGRmNTQ2NjYxNGZkMmVmLi5kZTc4NDM0MGZjMDQ1MjVkZjRlMzI0
YjlhNjIyODUwNTdmYjkyMzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Bs
dWdpbnMvUGx1Z2luUmVwbGFjZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Bs
dWdpbnMvUGx1Z2luUmVwbGFjZW1lbnQuaApAQCAtMzksNiArMzksNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBIVE1MUGx1Z0luRWxlbWVudDsKIGNsYXNzIFJlbmRlckVsZW1lbnQ7CiBj
bGFzcyBSZW5kZXJTdHlsZTsKK2NsYXNzIFJlbmRlclRyZWVQb3NpdGlvbjsKIGNsYXNzIFNoYWRv
d1Jvb3Q7CiBjbGFzcyBVUkw7CiAKQEAgLTUwLDcgKzUxLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgSlNDOjpKU09iamVjdCogc2NyaXB0T2JqZWN0KCkgeyByZXR1cm4gMDsgfQogCiAgICAgdmly
dHVhbCBib29sIHdpbGxDcmVhdGVSZW5kZXJlcigpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmly
dHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKEhUTUxQ
bHVnSW5FbGVtZW50JiwgUmVmPFJlbmRlclN0eWxlPiYmKSA9IDA7CisgICAgdmlydHVhbCBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKEhUTUxQbHVnSW5FbGVt
ZW50JiwgUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSA9IDA7
CiAKIHByb3RlY3RlZDoKICAgICBQbHVnaW5SZXBsYWNlbWVudCgpIHsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFj
ZW1lbnQuaAppbmRleCBiMGM1ZWMxNzgyNGNmZjVkMjNmN2Q1OGI5YzhlYTBkOGI4MjU1NGNkLi45
YTk3MmFhZmYxZjIxMDA4MTVkZGVhZWRjNTM4MjJhZjhhYzQ3YjE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFj
ZW1lbnQuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBKU0M6OkpTT2Jq
ZWN0KiBzY3JpcHRPYmplY3QoKSBvdmVycmlkZSB7IHJldHVybiBtX3NjcmlwdE9iamVjdDsgfQog
CiAgICAgdmlydHVhbCBib29sIHdpbGxDcmVhdGVSZW5kZXJlcigpIG92ZXJyaWRlIHsgcmV0dXJu
IG1fbWVkaWFFbGVtZW50OyB9Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKEhUTUxQbHVnSW5FbGVtZW50JiwgUmVmPFJlbmRlclN0eWxl
PiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVh
dGVFbGVtZW50UmVuZGVyZXIoSFRNTFBsdWdJbkVsZW1lbnQmLCBSZWY8UmVuZGVyU3R5bGU+JiYs
IGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAgSFRNTFZpZGVvRWxl
bWVudCogcGFyZW50RWxlbWVudCgpIHsgcmV0dXJuIG1fbWVkaWFFbGVtZW50LmdldCgpOyB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVn
aW5SZXBsYWNlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1Rp
bWVQbHVnaW5SZXBsYWNlbWVudC5tbQppbmRleCBhYzc0ZmY2MTIyZmQ5NjkyNGRmMzQzM2M5MzNh
N2Y3YzYzYzllOTMzLi5kNDZiNzcwNmIyNzYwYmVlYmJkZjI1NGZiMmViYWQ0Zjg5ZGU0MGNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2lu
UmVwbGFjZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNr
VGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCkBAIC0xMzAsMTIgKzEzMCwxMiBAQCBRdWlja1RpbWVQ
bHVnaW5SZXBsYWNlbWVudDo6flF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50KCkKICAgICBtX21l
ZGlhRWxlbWVudCA9IG51bGxwdHI7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBRdWlj
a1RpbWVQbHVnaW5SZXBsYWNlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKEhUTUxQbHVnSW5F
bGVtZW50JiBwbHVnaW4sIFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKEhUTUxQbHVnSW5FbGVtZW50JiBwbHVnaW4sIFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwg
Y29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJiBpbnNlcnRpb25Qb3NpdGlvbikKIHsKICAgICBBU1NF
UlRfVU5VU0VEKHBsdWdpbiwgbV9wYXJlbnRFbGVtZW50ID09ICZwbHVnaW4pOwogCiAgICAgaWYg
KG1fbWVkaWFFbGVtZW50KQotICAgICAgICByZXR1cm4gbV9tZWRpYUVsZW1lbnQtPmNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihXVEY6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIG1fbWVkaWFF
bGVtZW50LT5jcmVhdGVFbGVtZW50UmVuZGVyZXIoV1RGOjptb3ZlKHN0eWxlKSwgaW5zZXJ0aW9u
UG9zaXRpb24pOwogCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3Bw
CmluZGV4IGEwNDI5MzNkNjEwNDkxMmQ1OWY4ZWNmMjA3M2ZkZjJlNzlkZjg0MTMuLjhmOTZjOWYw
MjhjNzI4ZmRhMDNiYjUwYTdlZTk2YmFmYzNkYTkwNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3Bw
CkBAIC02NywxNCArNjcsMTQgQEAgWW91VHViZVBsdWdpblJlcGxhY2VtZW50OjpZb3VUdWJlUGx1
Z2luUmVwbGFjZW1lbnQoSFRNTFBsdWdJbkVsZW1lbnQmIHBsdWdpbiwgY28KICAgICAgICAgbV9h
dHRyaWJ1dGVzLmFkZChwYXJhbU5hbWVzW2ldLCBwYXJhbVZhbHVlc1tpXSk7CiB9CiAKLVJlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQ6OmNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihIVE1MUGx1Z0luRWxlbWVudCYgcGx1Z2luLCBSZWY8UmVuZGVyU3R5bGU+JiYg
c3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gWW91VHViZVBsdWdpblJlcGxhY2VtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoSFRNTFBsdWdJbkVsZW1lbnQmIHBsdWdpbiwgUmVmPFJl
bmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mIGluc2VydGlvblBv
c2l0aW9uKQogewogICAgIEFTU0VSVF9VTlVTRUQocGx1Z2luLCBtX3BhcmVudEVsZW1lbnQgPT0g
JnBsdWdpbik7CiAKICAgICBpZiAoIW1fZW1iZWRTaGFkb3dFbGVtZW50KQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICAKLSAgICByZXR1cm4gbV9lbWJlZFNoYWRvd0VsZW1lbnQtPmNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihXVEY6Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gbV9lbWJlZFNo
YWRvd0VsZW1lbnQtPmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihXVEY6Om1vdmUoc3R5bGUpLCBpbnNl
cnRpb25Qb3NpdGlvbik7CiB9CiAKIGJvb2wgWW91VHViZVBsdWdpblJlcGxhY2VtZW50OjppbnN0
YWxsUmVwbGFjZW1lbnQoU2hhZG93Um9vdCogcm9vdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuaAppbmRleCBl
ZjA4ZjNkNWZhODgzMWQ3MTQ1ZmIwZjZkMjA5MjZkM2I4OGI2MzBkLi5hZDlmMDM5MjdmYWZjYzFj
MGM1NWZhY2ZiMWI2N2E5MmNiM2YxNDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5oCkBAIC02MCw3ICs2
MCw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIHlvdVR1YmVVUkwoY29uc3QgU3RyaW5nJiByYXdV
UkwpOwogICAgIAogICAgIHZpcnR1YWwgYm9vbCB3aWxsQ3JlYXRlUmVuZGVyZXIoKSBvdmVycmlk
ZSB7IHJldHVybiBtX2VtYmVkU2hhZG93RWxlbWVudDsgfQotICAgIHZpcnR1YWwgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihIVE1MUGx1Z0luRWxlbWVudCYs
IFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKEhUTUxQbHVnSW5FbGVtZW50JiwgUmVm
PFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAg
ICAKICAgICBIVE1MUGx1Z0luRWxlbWVudCogbV9wYXJlbnRFbGVtZW50OwogICAgIFJlZlB0cjxZ
b3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50PiBtX2VtYmVkU2hhZG93RWxlbWVudDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDNlYmU2Yjkx
NzMzNjhkY2RlNTdkOWUxMzJiZjI3M2ZlZTQ5NDI1MDcuLmMxZjhjODJhZWQ2MzJhNjA2ZDllMWFi
YzBjYWYyYzIwYmFkN2NmZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvagpAQCAtMTc5OTgsNiArMTc5OTgsNyBAQAogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cc3RvcmFnZVxTdG9yYWdlTWFwLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHN0b3JhZ2VcU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHN0eWxlXElubGluZVRleHRCb3hTdHlsZS5jcHAiIC8+Cisg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxzdHlsZVxSZW5kZXJUcmVlUG9zaXRpb24uY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cc3R5bGVcU3R5bGVGb250U2l6ZUZ1bmN0aW9u
cy5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxzdHlsZVxTdHlsZVJlc29sdmVG
b3JEb2N1bWVudC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxzdHlsZVxTdHls
ZVJlc29sdmVUcmVlLmNwcCIgLz4KQEAgLTIxNjMxLDYgKzIxNjMyLDcgQEAKICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHN0b3JhZ2VcU3RvcmFnZU5hbWVzcGFjZS5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cc3RvcmFnZVxTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHN0eWxlXElubGluZVRleHRCb3hTdHlsZS5oIiAv
PgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cc3R5bGVcUmVuZGVyVHJlZVBvc2l0aW9uLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxzdHlsZVxTdHlsZUZvbnRTaXplRnVuY3Rp
b25zLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxzdHlsZVxTdHlsZVJlc29sdmVG
b3JEb2N1bWVudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cc3R5bGVcU3R5bGVS
ZXNvbHZlVHJlZS5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IGUyYmEyZTZhNTBkM2U5ZTQwNmZjNmMw
YTI4ZDkxN2NmMDc1ZjI4MmYuLmE5Mzk0MzJiMDRmNjViNzgzYmQ1YzMxNjgwNjgyNzhkYjg2YTE2
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTY2MTYsNiArNjYxNiw5IEBACiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxzdHlsZVxJbmxpbmVUZXh0Qm94U3R5bGUuY3BwIj4KICAgICAgIDxGaWx0ZXI+
Y3NzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxzdHlsZVxSZW5kZXJUcmVlUG9zaXRpb24uY3BwIj4KKyAgICAgIDxGaWx0ZXI+Y3NzPC9GaWx0
ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxzdHlsZVxT
dHlsZUZvbnRTaXplRnVuY3Rpb25zLmNwcCI+CiAgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgog
ICAgIDwvQ2xDb21waWxlPgpAQCAtMTQwMTIsNiArMTQwMTUsOSBAQAogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZG9tXElubGluZVN0eWxlU2hlZXRPd25lci5oIj4KICAgICAgIDxGaWx0ZXI+
ZG9tPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxzdHlsZVxSZW5kZXJUcmVlUG9zaXRpb24uaCI+CisgICAgICA8RmlsdGVyPmNzczwvRmlsdGVy
PgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cc3R5bGVcU3R5
bGVSZXNvbHZlVHJlZS5oIj4KICAgICAgIDxGaWx0ZXI+Y3NzPC9GaWx0ZXI+CiAgICAgPC9DbElu
Y2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggODdkMmU3NzhiNGNlNzJkNTEwZjkxOTQ0NWYxMmU1YjNjYWFlMzAwNy4uN2Y5
ZWQyZGQwOTM0NWFjMjEwMWIyMWNkYmQ1NDE4MWJkYzI2ZTJmOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjExMSw2ICsyMTEx
LDEwIEBACiAJCTU4MDM3MTYxMUE2NkYwMEEwMEJBRjUxOSAvKiBDbGlwUmVjdC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1ODAzNzE1RjFBNjZGMDBB
MDBCQUY1MTkgLyogQ2xpcFJlY3QuY3BwICovOyB9OwogCQk1ODAzNzE2MjFBNjZGMDBBMDBCQUY1
MTkgLyogQ2xpcFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU4MDM3MTYwMUE2NkYwMEEwMEJBRjUxOSAvKiBDbGlwUmVjdC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU4MDM3MTY0MUE2NkYxRDMw
MEJBRjUxOSAvKiBMYXllckZyYWdtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1ODAzNzE2MzFBNjZGMUQzMDBCQUY1MTkgLyogTGF5ZXJGcmFnbWVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU4
MjA1RDgxMUFFNkZBNUEwMDhFNjdCQyAvKiBSZW5kZXJUcmVlUG9zaXRpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU4MjA1RDgwMUFFNkZBNUEwMDhF
NjdCQyAvKiBSZW5kZXJUcmVlUG9zaXRpb24uaCAqLzsgfTsKKwkJNTgyMDVEODMxQUU3MDkwMTAw
OEU2N0JDIC8qIEhUTUxSdWJ5RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTgyMDVEODIxQUU3MDkwMTAwOEU2N0JDIC8qIEhUTUxSdWJ5RWxl
bWVudC5oICovOyB9OworCQk1ODIwNUQ4NTFBRTcwQUZBMDA4RTY3QkMgLyogSFRNTFJURWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTgyMDVE
ODQxQUU3MEFGQTAwOEU2N0JDIC8qIEhUTUxSVEVsZW1lbnQuaCAqLzsgfTsKKwkJNTgyMDVEODcx
QUU3MzZEMjAwOEU2N0JDIC8qIFJlbmRlclRyZWVQb3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1ODIwNUQ4NjFBRTczNkQyMDA4RTY3QkMg
LyogUmVuZGVyVHJlZVBvc2l0aW9uLmNwcCAqLzsgfTsKIAkJNTgyQ0IwNTMxQTc4QTE0QjAwQUZG
Q0M0IC8qIFNpbXBsZUxpbmVMYXlvdXRUZXh0RnJhZ21lbnRJdGVyYXRvci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTgyQ0IwNTIxQTc4QTE0QjAwQUZG
Q0M0IC8qIFNpbXBsZUxpbmVMYXlvdXRUZXh0RnJhZ21lbnRJdGVyYXRvci5oICovOyB9OwogCQk1
ODJDQjA1NTFBNzhBMkIyMDBBRkZDQzQgLyogU2ltcGxlTGluZUxheW91dFRleHRGcmFnbWVudEl0
ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU4MkNCMDU0MUE3OEEyQjIwMEFGRkNDNCAvKiBTaW1wbGVMaW5lTGF5b3V0VGV4dEZyYWdtZW50
SXRlcmF0b3IuY3BwICovOyB9OwogCQk1ODVENkRGQzFBMTUzNTU2MDBGQTRGMTIgLyogU2ltcGxl
TGluZUxheW91dFJlc29sdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU4NUQ2REZCMUExNTM1NTYwMEZBNEYxMiAvKiBTaW1wbGVMaW5lTGF5b3V0
UmVzb2x2ZXIuY3BwICovOyB9OwpAQCAtOTMxMiw2ICs5MzE2LDEwIEBACiAJCTU4MDM3MTVGMUE2
NkYwMEEwMEJBRjUxOSAvKiBDbGlwUmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBDbGlwUmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU4
MDM3MTYwMUE2NkYwMEEwMEJBRjUxOSAvKiBDbGlwUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDbGlwUmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
ODAzNzE2MzFBNjZGMUQzMDBCQUY1MTkgLyogTGF5ZXJGcmFnbWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBMYXllckZyYWdtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTU4MjA1RDgwMUFFNkZBNUEwMDhFNjdCQyAvKiBSZW5kZXJUcmVlUG9zaXRpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVHJlZVBvc2l0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU4MjA1RDgyMUFFNzA5MDEwMDhFNjdCQyAv
KiBIVE1MUnVieUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRN
TFJ1YnlFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU4MjA1RDg0MUFF
NzBBRkEwMDhFNjdCQyAvKiBIVE1MUlRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEhUTUxSVEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTgyMDVEODYxQUU3MzZEMjAwOEU2N0JDIC8qIFJlbmRlclRyZWVQb3NpdGlvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUcmVlUG9zaXRpb24uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1ODJDQjA1MjFBNzhBMTRCMDBBRkZDQzQgLyog
U2ltcGxlTGluZUxheW91dFRleHRGcmFnbWVudEl0ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNpbXBsZUxpbmVMYXlvdXRUZXh0RnJhZ21lbnRJdGVyYXRvci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1ODJDQjA1NDFBNzhBMkIyMDBBRkZDQzQgLyog
U2ltcGxlTGluZUxheW91dFRleHRGcmFnbWVudEl0ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNpbXBsZUxpbmVMYXlvdXRUZXh0RnJhZ21lbnRJdGVyYXRv
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU4NUQ2REZCMUExNTM1NTYwMEZB
NEYxMiAvKiBTaW1wbGVMaW5lTGF5b3V0UmVzb2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU2ltcGxlTGluZUxheW91dFJlc29sdmVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3ODc1LDYgKzE3ODgzLDggQEAKIAkJOTNFRUMxRUMwOUMy
ODc3NzAwQzUxNUQxIC8qIGh0bWwgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAorCQkJCTU4MjA1RDg0MUFFNzBBRkEwMDhFNjdCQyAvKiBIVE1MUlRFbGVtZW50Lmgg
Ki8sCisJCQkJNTgyMDVEODIxQUU3MDkwMTAwOEU2N0JDIC8qIEhUTUxSdWJ5RWxlbWVudC5oICov
LAogCQkJCTQ5NDg0RkFFMTAyQ0YwMUUwMDE4N0REMyAvKiBjYW52YXMgKi8sCiAJCQkJMUE4OEE5
MDExNzU1M0NENzAwMEM3NEY5IC8qIGZvcm1zICovLAogCQkJCTk3QzFGNTUxMTIyODU1ODgwMEVE
RTYxNiAvKiBwYXJzZXIgKi8sCkBAIC0yMjIyNiw2ICsyMjIzNiw4IEBACiAJCUU0NzYzRDRBMTdC
MjcwNDkwMEQzNTIwNiAvKiBzdHlsZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCisJCQkJNTgyMDVEODAxQUU2RkE1QTAwOEU2N0JDIC8qIFJlbmRlclRyZWVQb3Np
dGlvbi5oICovLAorCQkJCTU4MjA1RDg2MUFFNzM2RDIwMDhFNjdCQyAvKiBSZW5kZXJUcmVlUG9z
aXRpb24uY3BwICovLAogCQkJCTFDMDEwNkZFMTkyNTk0REYwMDhBNDIwMSAvKiBJbmxpbmVUZXh0
Qm94U3R5bGUuY3BwICovLAogCQkJCTFDMDEwNkZGMTkyNTk0REYwMDhBNDIwMSAvKiBJbmxpbmVU
ZXh0Qm94U3R5bGUuaCAqLywKIAkJCQlFNEQ1OEVCNjE3QjRFRDg5MDBDQkRDQTggLyogU3R5bGVG
b250U2l6ZUZ1bmN0aW9ucy5jcHAgKi8sCkBAIC0yNDc4OCw2ICsyNDgwMCw3IEBACiAJCQkJQThF
QTdDQUYwQTE5MkI5QzAwQThFRjVGIC8qIEhUTUxIUkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE4NzFERTI3MEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MSHRtbEVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4NzFERTJBMEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MSUZyYW1lRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTgyMDVEODMxQUU3MDkwMTAwOEU2N0JDIC8qIEhUTUxS
dWJ5RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTdEMkQwQTE5Mzg1NTAwQThFRjVG
IC8qIEhUTUxJbWFnZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUExOUQ5MzRCMUFBMTFC
MUUwMEI0NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQThFQTdEMkIwQTE5Mzg1NTAwQThFRjVGIC8qIEhUTUxJbWFnZUxvYWRlci5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNjM3Niw2ICsyNjM4OSw3IEBACiAJCQkJQ0QzQTQ5NjUxN0E5RDAx
QjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUNENjQx
RUI0MTgxOEY1RUQwMEVFNEM0MSAvKiBTb3VyY2VCdWZmZXJQcml2YXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDREM4QjVBQjE4MDQ3RkYxMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakMuaCBpbiBIZWFkZXJzICovLAorCQkJCTU4MjA1RDgxMUFFNkZBNUEwMDhFNjdCQyAvKiBS
ZW5kZXJUcmVlUG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzhCNUFEMTgwNEFFNUQw
MDE2RTY4NSAvKiBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk4NEE4MUY0MjBGQzdFMDI3MDA5NTUzMDAgLyogU291cmNlR3JhcGhpYy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDc2MzA2RDgxN0UxNDlEMDAwNUE3QzRFIC8qIFNvdXJjZUluZm8uaCBpbiBIZWFk
ZXJzICovLApAQCAtMjY4MzcsNiArMjY4NTEsNyBAQAogCQkJCTBGNTRERDA5MTg4MUQ1RjUwMDNF
RURCQiAvKiBUb3VjaEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU0REQwQTE4ODFENUY1
MDAzRUVEQkIgLyogVG91Y2hMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzAzMzRENzE0NTlG
RkQ1MDA4RDhENDUgLyogVHJhY2tCYXNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk1ODIwNUQ4NTFB
RTcwQUZBMDA4RTY3QkMgLyogSFRNTFJURWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4
OEUwQzIxNzE1Q0UyNjAwNjU4RDk4IC8qIFRyYWNrTGlzdEJhc2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJFOTEzRDgwMTgxRUY5MjQwMERDQjA5RSAvKiBUcmFja1ByaXZhdGVCYXNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGRkFDMzBGRTE4NEZCMTQ1MDA4QzRGMUUgLyogVHJhaWxpbmdPYmplY3Rz
LmggaW4gSGVhZGVycyAqLywKQEAgLTI3NjE0LDYgKzI3NjI5LDcgQEAKIAkJCQlCQ0MwNjU4MDBG
M0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdExpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
ODUwMzFCM0YwQTQ0RUZDNzAwRjk5MkUwIC8qIENsaXBib2FyZEV2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUNERUE3NjM1MTQ2MEI3MUEwMDhCMzFGMSAvKiBDbG9jay5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk1ODIwNUQ4NzFBRTczNkQyMDA4RTY3QkMgLyogUmVuZGVyVHJlZVBvc2l0aW9u
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNERUE3NjM0MTQ2MEI1NkYwMDhCMzFGMSAvKiBDbG9j
a0dlbmVyaWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOUJEOEE5NUExOEJFRkM3NjAwOTg3RTlB
IC8qIENvbGxlY3Rpb25JbmRleENhY2hlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTY2
MEIwNTM4MTQwMDJDRTY0RiAvKiBDb2xvci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcAppbmRleCBmOTZmYWNiZWIzZTA3MzcyNWFkMDgzMjI2YjVmZDlhMTRjMmY5NjE5Li5i
MjM4ZDgxOGNhZDE4NDdjZGVhNTMwNDI3NTVjNzZmY2YyNzI5OGZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCkBAIC0xNDk2LDcgKzE0OTYsNyBAQCBib29sIEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVk
ZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogICAgIHJldHVybiBzdHlsZS5kaXNwbGF5KCkg
IT0gTk9ORTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEVsZW1lbnQ6OmNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4m
JiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gUmVuZGVy
RWxlbWVudDo6Y3JlYXRlRm9yKCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5oCmluZGV4IGRiZjNiNmNiMzY2NTVmMDRkOWE2N2ZlMTU0NmY3MTRmYjU0NzhjY2EuLjVh
Njg3YjAxZmE0MjNhNjg5MDczMjE5NjE2N2QyNTk3NjQ2MDU3MjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aApAQCAtNDksNiArNDksNyBAQCBjbGFzcyBQbGF0Zm9ybU1vdXNlRXZlbnQ7CiBjbGFzcyBQbGF0
Zm9ybVdoZWVsRXZlbnQ7CiBjbGFzcyBQc2V1ZG9FbGVtZW50OwogY2xhc3MgUmVuZGVyTmFtZWRG
bG93RnJhZ21lbnQ7CitjbGFzcyBSZW5kZXJUcmVlUG9zaXRpb247CiBjbGFzcyBTaGFkb3dSb290
OwogCiBlbnVtIFNwZWxsY2hlY2tBdHRyaWJ1dGVTdGF0ZSB7CkBAIC0yNDIsNyArMjQzLDcgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGNvcHlOb25BdHRyaWJ1dGVQcm9wZXJ0aWVzRnJv
bUVsZW1lbnQoY29uc3QgRWxlbWVudCYpIHsgfQogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJik7Cisg
ICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJik7CiAgICAgdmly
dHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKTsKIAogICAgIFdF
QkNPUkVfRVhQT1JUIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QoKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5jcHAKaW5kZXggNTFmY2YyZTVkOWI1YWE0YWQ5YjVi
NDlhNjc4Y2MyYTg5MTBjMDQ1MS4uNWI1ZWE2ODhjMjFkOGE4MDAyY2JlM2ZmZTI4ZDBiMWYzOThh
ZjBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5jcHAKQEAgLTc1
LDcgKzc1LDcgQEAgYm9vbCBIVE1MQXBwbGV0RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAgICAgcmV0dXJuIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6
OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
SFRNTEFwcGxldEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+
JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEFwcGxldEVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpCiB7CiAgICAgaWYgKCFjYW5FbWJlZEphdmEoKSkKICAgICAgICAgcmV0
dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmgKaW5kZXggZjBkYzkyMDc3ZjhlYTE4
MjI5ODUwMjk2N2Y3NmRhNDdlYjRhNGM3Zi4uZWE4OTQxZTU4NGIyMWNjMzUzYWE4MTJjMGJiNWM0
NmVlYWU3ZmI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuaApAQCAt
MzcsNyArMzcsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAg
CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBv
dmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0
eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIAogICAgIHZpcnR1
YWwgUmVuZGVyV2lkZ2V0KiByZW5kZXJXaWRnZXRMb2FkaW5nUGx1Z2luKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVdpZGdldChQbHVnaW5DcmVhdGlvbk9wdGlvbikg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5j
cHAKaW5kZXggODRkODE2ZTNkMDUzMzlkNmI5MmZmNjRhNTcxNWIzODE5Y2YwYWJkMi4uMmYyNjFh
NTkyZWI4NzZkYjVjY2FjYzRiNmQ5YmI4N2Q4YjYzZTczZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQXR0YWNobWVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEF0dGFjaG1lbnRFbGVtZW50LmNwcApAQCAtNTEsNyArNTEsNyBAQCBSZWY8SFRN
TEF0dGFjaG1lbnRFbGVtZW50PiBIVE1MQXR0YWNobWVudEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxBdHRhY2htZW50
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gSFRNTEF0dGFjaG1lbnRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRl
clN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxBdHRhY2htZW50
RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwg
Y29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8
UmVuZGVyQXR0YWNobWVudD4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0YWNobWVudEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEF0dGFjaG1lbnRFbGVtZW50LmgKaW5kZXggNTgyOTY4NzUwMDAyY2Qy
MDEwYjE3OTFmNGE4ODQ4ZDNlMTYyMmYyMy4uNDZhMzRlZDkxZWYxMjljMDY4MzdkYTI4Njc2NjZl
YjcyMjY0MmU0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0YWNobWVu
dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVu
dC5oCkBAIC00Niw3ICs0Niw3IEBAIHByaXZhdGU6CiAgICAgSFRNTEF0dGFjaG1lbnRFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAgIHZpcnR1YWwgfkhUTUxBdHRh
Y2htZW50RWxlbWVudCgpOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAK
ICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2VsZWN0T25Nb3VzZURvd24oKSBvdmVycmlkZSB7IHJl
dHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIGNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEJSRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVs
ZW1lbnQuY3BwCmluZGV4IDViOTU4ZTY1OTcwZmVjMWQyN2Q2YWRlNzU2ZGMzMGU1ZmIxOTIxM2Mu
LjViYmNmZjdmNGMzMjEzOGQyNmYwNWY3NThiOThkNTA3ZjQ4ZDg3ZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQlJFbGVtZW50LmNwcApAQCAtNzAsNyArNzAsNyBAQCB2b2lkIEhUTUxCUkVsZW1l
bnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYQogICAgICAgICBIVE1MRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9u
QXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBIVE1MQlJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxCUkVsZW1lbnQ6OmNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRy
ZWVQb3NpdGlvbiYpCiB7CiAgICAgaWYgKHN0eWxlLmdldCgpLmhhc0NvbnRlbnQoKSkKICAgICAg
ICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgV1RGOjptb3ZlKHN0eWxl
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5oCmluZGV4IGY0NTMzODRjNWFmNmI5Mzc5
MjY2ZDg5OWNhYmQ4NDAyNTM3NjJjODguLjIzZTRmZWZjNjc2OGNkNDMxYmJiZjhmNTZjOTNiOTlj
OGQyYTU3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5oCkBAIC00MSw3ICs0MSw3
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgY29s
bGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiAK
LSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBj
b25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCmluZGV4IDcwODRkZWRl
YzVhYTlkM2Q0Y2YwZDgzMTNkODFiZjkxOTMwNWZlOTIuLjk2M2ZkODBjNmUxYThmZGQ1OWEyZWJj
ZmYxY2I3OTJjY2I1OTg3ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1
dHRvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1l
bnQuY3BwCkBAIC01Niw3ICs1Niw3IEBAIHZvaWQgSFRNTEJ1dHRvbkVsZW1lbnQ6OnNldFR5cGUo
Y29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKQogICAgIHNldEF0dHJpYnV0ZSh0eXBlQXR0ciwgdHlw
ZSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MQnV0dG9uRWxlbWVudDo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBIVE1MQnV0dG9uRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAg
ICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyQnV0dG9uPigqdGhpcywgV1RGOjptb3ZlKHN0
eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmgKaW5kZXggZmFk
Zjc4NWU5YjYyODkwMmZhMzE0MmExYTUxZDQ0M2YzYmFhZjNkZC4uNWQ3ZGY4MDYyMDdhYTExN2Rm
ODI4NzllYWEyODM3ZmQ1MWJjYzFhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQnV0dG9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVs
ZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBjb25zdCBB
dG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmly
dHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxS
ZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVu
ZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKICAgICAvLyBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50IGFsd2F5cyBjcmVhdGVzIG9uZSwgYnV0IGJ1dHRvbnMgZG9uJ3QgbmVlZCBpdC4KICAgICB2
aXJ0dWFsIGJvb2wgYWx3YXlzQ3JlYXRlVXNlckFnZW50U2hhZG93Um9vdCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1l
bnQuY3BwCmluZGV4IGU5NDY3MmYxZGM2MmQ4MjQ5NGE1NWY1ZTZiZTNiNDIwN2RjZWY0ZjAuLmIy
MmQ4YzE3NDQ3NmQ5N2ZkOTdjZTAzMDA5YjAxYmQyMGNhOGNhNjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC0xMDYsNyArMTA2LDcgQEAgdm9pZCBIVE1M
Q2FudmFzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbWljU3QKICAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFs
dWUpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTENhbnZhc0VsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYgaW5zZXJ0
aW9uUG9zaXRpb24pCiB7CiAgICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwog
ICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+c2NyaXB0KCkuY2FuRXhlY3V0ZVNjcmlwdHMoTm90QWJv
dXRUb0V4ZWN1dGVTY3JpcHQpKSB7CkBAIC0xMTUsNyArMTE1LDcgQEAgUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJl
bmRlclN0eWwKICAgICB9CiAKICAgICBtX3JlbmRlcmVySXNDYW52YXMgPSBmYWxzZTsKLSAgICBy
ZXR1cm4gSFRNTEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihXVEY6Om1vdmUoc3R5bGUp
KTsKKyAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihXVEY6Om1v
dmUoc3R5bGUpLCBpbnNlcnRpb25Qb3NpdGlvbik7CiB9CiAKIGJvb2wgSFRNTENhbnZhc0VsZW1l
bnQ6OmNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENhbnZhc0VsZW1lbnQuaAppbmRleCBlNDlhYzUzNmNmY2RmODQyNjQ2MmEwOTVkNGNhMDdjNzVk
MDViNTQyLi44ZWYwZWVlOWI3MGMyOGFjYmFkMDMwOTdmNzhjNWJjODk4MDM0OTU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCkBAIC0xNDEsNyArMTQxLDcgQEAgcHJp
dmF0ZToKICAgICBIVE1MQ2FudmFzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4m
Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ29udGFpblJhbmdlRW5kUG9p
bnQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2FuU3RhcnRTZWxlY3Rpb24o
KSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERl
dGFpbHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50
LmNwcAppbmRleCA0NDU3NGJlYmIyNGEzY2NiYjBiMTkyNDA0MTU1NGYyNTExMmFlNGI5Li5lZDNm
Y2RlMWExMjZmYjRjYWNlNDQ1OGYxNmRjNGIzZmRhZjFmNzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCkBAIC0xMTEsNyArMTExLDcgQEAgSFRNTERldGFp
bHNFbGVtZW50OjpIVE1MRGV0YWlsc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQmIGQKICAgICBBU1NFUlQoaGFzVGFnTmFtZShkZXRhaWxzVGFnKSk7CiB9CiAK
LVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MRGV0YWlsc0VsZW1lbnQ6OmNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gSFRNTERldGFpbHNFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRl
clN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVy
biBjcmVhdGVSZW5kZXJlcjxSZW5kZXJCbG9ja0Zsb3c+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUp
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oCmluZGV4IGRiZmZj
NWYzZDE2OGFjYWFiNWQ1YTNhNDU2YjljZjhmZjgxMGRhYjQuLjE4ZDI2NTVjYTRmMzQ2MjE4YmU5
ZTZkNzZiYjM2OTg4MzVjNDYyMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TERldGFpbHNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0Vs
ZW1lbnQuaApAQCAtMzUsNyArMzUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxEZXRh
aWxzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1
YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENy
ZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmlu
ZyYpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IGE2NjEy
MzcwZWI4MzQzOTdhYmMwZDQ5ZmJhMWY3NjBlYzI2NjQzN2MuLjgwZGRlNmJhMTY1MjQ2MGExOGZh
ODcwZWY4YzRjZThkM2EyMmE4MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBA
IC04ODAsNyArODgwLDcgQEAgYm9vbCBIVE1MRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAgICAgcmV0dXJuIFN0eWxlZEVsZW1lbnQ6OnJlbmRlcmVy
SXNOZWVkZWQoc3R5bGUpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEVsZW1l
bnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAg
ICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgV1RGOjptb3ZlKHN0eWxl
KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKaW5kZXggNzk0OWQ2MjE2ZTJjOWUwNWU1
Y2JhNTBjYjkwZjU3NjNlYjRjYjI5OS4uZGUyYjhiMzhiNzcyNGZkZTZiMDQ1ZGZjMWZkNzJhMjcx
N2I4M2ZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaApAQCAtNzksNyArNzksNyBAQCBw
dWJsaWM6CiAgICAgYm9vbCBpZUZvcmJpZHNJbnNlcnRIVE1MKCkgY29uc3Q7CiAKICAgICB2aXJ0
dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwot
ICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNv
bnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAgSFRNTEZvcm1FbGVtZW50
KiBmb3JtKCkgY29uc3QgeyByZXR1cm4gdmlydHVhbEZvcm0oKTsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcAppbmRleCBhMTMzYTUwOGMzNjc2NjhjM2Zl
OWFkNzE2ODk2OTUxZDdlN2VjMDFjLi5hYzMzMmU4NzAyMjYxOGMyZTQ5M2I2OTc3YjA4M2Q1NWFi
ODZhZDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAK
QEAgLTE0OSw3ICsxNDksNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxGaWVsZFNldEVsZW1l
bnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZpZWxkc2V0OwogfQogCi1S
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEZpZWxkU2V0RWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBIVE1MRmllbGRTZXRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRl
clN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVy
biBjcmVhdGVSZW5kZXJlcjxSZW5kZXJGaWVsZHNldD4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaAppbmRleCA2YmM2
ZTFjYmY0MDk3OTc2MWM4ZjRmMjBmNzg4NzAzYTgxZDBjMjE2Li4wZDRlMzY3MDZmMTZhYzBlYmRj
YmVjMDY4OWM5NDBiZWVjZDlkN2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGaWVsZFNldEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNl
dEVsZW1lbnQuaApAQCAtNTEsNyArNTEsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBib29s
IGlzRW51bWVyYXRhYmxlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJT
dHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJl
ZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZv
cm1Db250cm9sVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjb21wdXRl
V2lsbFZhbGlkYXRlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0
dWFsIHZvaWQgZGlzYWJsZWRBdHRyaWJ1dGVDaGFuZ2VkKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmNwcAppbmRleCA5ZGIwMjU1MGRkNGUzMDkwMWI0MDg4
M2U4NjU4MmY3ZWM4MjBjZmZkLi5hZjFhNTIyYmNhYzkyMzQyOGEwNTlhMDFlMmRhZDlmY2I3Y2Y1
YzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5jcHAKQEAgLTUzLDcg
KzUzLDcgQEAgYm9vbCBIVE1MRnJhbWVFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJl
bmRlclN0eWxlJikKICAgICByZXR1cm4gaXNVUkxBbGxvd2VkKCk7CiB9CiAKLVJlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBIVE1MRnJhbWVFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVm
PFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxGcmFt
ZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUs
IGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVy
PFJlbmRlckZyYW1lPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZyYW1lRWxlbWVudC5oCmluZGV4IGNhMGFmNzQwZDk2OWVjZGQ0Yjg2Y2MzZjg1Mjk1
ZjI5ZjUxMmRiZjQuLjg3Njg4YzA3ZTEzNDQyNjc4ZTFjOTlmN2E4NjM1YzVmN2E1MWM4NjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5oCkBAIC00Miw3ICs0Miw3IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIG92ZXJyaWRlOwog
CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBv
dmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0
eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICAKICAgICB2
aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21pY1N0cmluZyYpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVT
ZXRFbGVtZW50LmNwcAppbmRleCA2NzY2N2Q1NTQyYzZkY2JkMjRjNWY2YThjYzYzOTdhOWYyMGQ0
ZmY5Li4xYjdkZDE4ZDRmNzA0NmZlZjgyOTAwMmY3NzA3Y2FjYTAwYzQ5ZjkyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBA
QCBib29sIEhUTUxGcmFtZVNldEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVy
U3R5bGUmIHN0eWxlKQogICAgIHJldHVybiBzdHlsZS5pc1N0eWxlQXZhaWxhYmxlKCk7CiB9CiAK
LVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MRnJhbWVTZXRFbGVtZW50OjpjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IEhUTUxGcmFtZVNldEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgaWYg
KHN0eWxlLmdldCgpLmhhc0NvbnRlbnQoKSkKICAgICAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6
OmNyZWF0ZUZvcigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZyYW1lU2V0RWxlbWVudC5oCmluZGV4IGZiYjNjYTA2YmFlY2MzZDQ2ZDdmNDZiMzk1MmM0
NTM5MGY3NWJkYWIuLjZjZDg1ZGM0N2E1OGIxZTc1NThhYzA2Y2UwMWFhODRkNjk2ZTEwMjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCkBAIC01Niw3ICs1Niw3
IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEF0dGFjaFJlbmRlcmVycygpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0
eWxlJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxS
ZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAg
CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBvdmVycmlkZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAppbmRleCA1MzdkMjNl
NDRjMDhmZmI0NTVkNDgzODJkNDI5NmQzOGY0NDNiNmU3Li5lOWQ1NzU5NWVjOWRjNzc5ZTU4Mzgw
ZTQ4ZWNlNTRjNjY0OTM0ZDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
RnJhbWVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVt
ZW50LmNwcApAQCAtODksNyArODksNyBAQCBib29sIEhUTUxJRnJhbWVFbGVtZW50OjpyZW5kZXJl
cklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKICAgICByZXR1cm4gaXNVUkxBbGxv
d2VkKCkgJiYgc3R5bGUuZGlzcGxheSgpICE9IE5PTkU7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBIVE1MSUZyYW1lRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5k
ZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MSUZyYW1lRWxl
bWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29u
c3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVu
ZGVySUZyYW1lPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJRnJhbWVFbGVtZW50LmgKaW5kZXggNTg4OWExOWEwMWY1N2E3Mjk1YTNkNzRiNjA0NTIz
NjExMTI1N2JkMi4uYTJkYmQ1NjRlMWRiZmM5MzY4MzU1NGYwZTcwZGFhODkzMjJkMDYyMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaApAQCAtNDQsNyArNDQsNyBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVT
dHlsZVByb3BlcnRpZXMmKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklz
TmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4m
Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAppbmRleCA4OTk1NGNmNDM1OTc1YjM1YzU3Njlh
ZDdmY2ZlMGExMzM1ODFiOTc3Li42MmVhNmZjMWM2OGVkZWYwZWU2YjFmNjk3OGRhODE1MDUwYjc5
YmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKQEAgLTIwMSw3
ICsyMDEsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxJbWFnZUVsZW1lbnQ6OmFsdFRleHQo
KSBjb25zdAogICAgIHJldHVybiBmYXN0R2V0QXR0cmlidXRlKHRpdGxlQXR0cik7CiB9CiAKLVJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MSW1hZ2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IEhUTUxJbWFnZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+
JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgaWYgKHN0eWxlLmdl
dCgpLmhhc0NvbnRlbnQoKSkKICAgICAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZv
cigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbWFnZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxl
bWVudC5oCmluZGV4IDA4YjliYTg1Mzg1MjY2YzU1YzY2ZGZhODYxMzU3ZGZlMTM4YTIxM2YuLmYw
NjU4NDlmMDY1MzE3MjhjYThkNTEwMTAyN2MwOWE5M2I5N2I2MmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEltYWdlRWxlbWVudC5oCkBAIC0xMDEsNyArMTAxLDcgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVz
Jikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgb3Zl
cnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHls
ZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRC
ZXN0Rml0VVJMQW5kRFBSRnJvbUltYWdlQ2FuZGlkYXRlKGNvbnN0IEltYWdlQ2FuZGlkYXRlJik7
CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuU3RhcnRTZWxlY3Rpb24oKSBjb25zdCBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGVjMjQ3Y2U5OGYy
YmY4MDNjNmUzZmMxZTMxNzFjODQxMTcxMGM5MGMuLjdlMDM3YTkzODA0Mzk1ZTRmOGQ0ZmExNjU4
MjM3NjVmMDRmNzg2Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNw
cApAQCAtNzcxLDcgKzc3MSw3IEBAIGJvb2wgSFRNTElucHV0RWxlbWVudDo6cmVuZGVyZXJJc05l
ZWRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5y
ZW5kZXJlcklzTmVlZGVkKCkgJiYgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnJlbmRlcmVy
SXNOZWVkZWQoc3R5bGUpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTElucHV0
RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkK
K1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MSW5wdXRFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRp
b24mKQogewogICAgIHJldHVybiBtX2lucHV0VHlwZS0+Y3JlYXRlSW5wdXRSZW5kZXJlcihXVEY6
Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5k
ZXggMjBkYjk2MTRjN2FkZGRkNTZiM2ExOTdlYTc3NzE0Mzc3ZTA0YjgzZS4uOWIyNzUwNDE5YjRm
Yzg3Mjk2OTkwZjJmZWM4NThlNTBlOWVkOGFkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmgKQEAgLTIwMCw3ICsyMDAsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYW5IYXZl
U2VsZWN0aW9uKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChj
b25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIGZpbmFsOwotICAgIHZpcnR1YWwgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYp
IG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQ
b3NpdGlvbiYpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsQXR0YWNoUmVu
ZGVyZXJzKCkgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIGRpZEF0dGFjaFJlbmRl
cmVycygpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBkaWREZXRhY2hSZW5kZXJl
cnMoKSBvdmVycmlkZSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCmluZGV4IDY0MDRkNDM0YjhjZTZmYWI3ZDZjNjI2OTA4ODdkZjQxZDFmYjZmY2EuLmU3YjRk
ZmE4MGEwYzMyYjlhODU5MjA0MThhMDgyMzUyYTRmZGU2ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNTc0LDcgKzU3NCw3IEBAIGJvb2wgSFRNTE1lZGlh
RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAgICAg
cmV0dXJuIGNvbnRyb2xzKCkgJiYgSFRNTEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUp
OwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTE1lZGlhRWxlbWVudDo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBIVE1MTWVkaWFFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJl
bmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJl
dHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNZWRpYT4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCAxNDA5ZTZiMGI2
MDc0MTExZTYxY2I5MWE2Mzc1MzY5ZDY2YTFjMWU4Li4wNmE0OGNlNjUzNWI2MTg3ODA2NzhhMzk2
MGUzMDVhMjA1MTQ5Y2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApA
QCAtNDgxLDcgKzQ4MSw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGVuZElnbm9yaW5nVHJhY2tE
aXNwbGF5VXBkYXRlUmVxdWVzdHMoKTsKICNlbmRpZgogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxl
bWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9u
Jikgb3ZlcnJpZGU7CiAKICNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfU0NSSVBUKQogICAgIGJv
b2wgbWVkaWFDb250cm9sc0RlcGVuZE9uUGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4g
bV9tZWRpYUNvbnRyb2xzRGVwZW5kT25QYWdlU2NhbGVGYWN0b3I7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCmluZGV4IDBkYWQ0MGFiOGZjNjAxN2Q5Yzg4MDE0OWI4
N2QxOWVkNWI4ZGU0ZjUuLjIyYjJmMzk4MWUzOTUyMzc5M2Y1ZTJiMzFlNmNjNWQyOGJmYTc3ODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcApAQCAtNTcsNyArNTcs
NyBAQCBSZWY8SFRNTE1ldGVyRWxlbWVudD4gSFRNTE1ldGVyRWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvYwogICAgIHJldHVybiBtZXRlcjsKIH0KIAotUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxNZXRlckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
SFRNTE1ldGVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4m
JiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICBpZiAoIWRvY3VtZW50
KCkucGFnZSgpLT50aGVtZSgpLnN1cHBvcnRzTWV0ZXIoc3R5bGUuZ2V0KCkuYXBwZWFyYW5jZSgp
KSkKICAgICAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgV1RGOjpt
b3ZlKHN0eWxlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5oCmluZGV4IDU0
YWI5ZmNhOTgyYTAyYmE3YjIxYjQ2ODUwYTJmZWU0MTc2YzkwMDAuLmQyMzY0YjE3YzBkZmU1NDA1
YTRkZGIyZGQ5MGFiNTIxNjIyOTA3ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1ldGVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxl
bWVudC5oCkBAIC03MCw3ICs3MCw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIGJvb2wgc3Vw
cG9ydExhYmVscygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1
YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENy
ZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmlu
ZyYpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVn
SW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3Bw
CmluZGV4IDBmNDEyYjJkMzEyZmEyZDJhNzEzOWIzNmFmODBhZjY5NmVkZGRmMzAuLjIyMDQ2ZWE4
NDM1NTZjNDgwZjEzYjc5NTYzMmU3OTNjZmE3NDNhOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFBsdWdJbkVsZW1lbnQuY3BwCkBAIC0yOTEsMTAgKzI5MSwxMCBAQCBOUE9iamVjdCogSFRN
TFBsdWdJbkVsZW1lbnQ6OmdldE5QT2JqZWN0KCkKIAogI2VuZGlmIC8qIEVOQUJMRShORVRTQ0FQ
RV9QTFVHSU5fQVBJKSAqLwogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFBsdWdJbkVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFBsdWdJbkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlv
biYgaW5zZXJ0aW9uUG9zaXRpb24pCiB7CiAgICAgaWYgKG1fcGx1Z2luUmVwbGFjZW1lbnQgJiYg
bV9wbHVnaW5SZXBsYWNlbWVudC0+d2lsbENyZWF0ZVJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVy
biBtX3BsdWdpblJlcGxhY2VtZW50LT5jcmVhdGVFbGVtZW50UmVuZGVyZXIoKnRoaXMsIFdURjo6
bW92ZShzdHlsZSkpOworICAgICAgICByZXR1cm4gbV9wbHVnaW5SZXBsYWNlbWVudC0+Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpLCBpbnNlcnRpb25Qb3NpdGlv
bik7CiAKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyRW1iZWRkZWRPYmplY3Q+KCp0
aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFBsdWdJbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVs
ZW1lbnQuaAppbmRleCA4YTc1YmJlNzViOGIxZmJjMGJhOWY4MjMyNjllYzhmZWNhZjJkNWRjLi42
Mjk0ZDE0ZGRkZjg2MGNiYmJhZDY4NmUxMmVmY2MxMTdmN2Y2NmZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oCkBAIC0xMDMsNyArMTAzLDcgQEAgcHJvdGVjdGVkOgog
ICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kikgb3ZlcnJpZGU7CiAK
ICAgICB2aXJ0dWFsIGJvb2wgcmVxdWVzdE9iamVjdChjb25zdCBTdHJpbmcmIHVybCwgY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcyk7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hh
ZG93Um9vdCopIG92ZXJyaWRlOwogCiAgICAgLy8gU3ViY2xhc3NlcyBzaG91bGQgdXNlIGd1YXJk
ZWREaXNwYXRjaEJlZm9yZUxvYWRFdmVudCBpbnN0ZWFkIG9mIGNhbGxpbmcgZGlzcGF0Y2hCZWZv
cmVMb2FkRXZlbnQgZGlyZWN0bHkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50LmNwcAppbmRleCA4M2YxYjdlNjBlNzMxOTNhZWQwMWMxN2Y1MTRhZTBiNWQ5
MDBjMzYzLi4xMTkwNTEzYTlmZGU0MzE3NmE1Y2ZhNGEzNmY0ODIyMTliMTMwYWU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKQEAgLTE4OSwx
MiArMTg5LDEyIEBAIGJvb2wgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6d291bGRMb2FkQXNOZXRz
Y2FwZVBsdWdpbihjb25zdCBTdHJpbmcmIHVybCwgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYgaW5z
ZXJ0aW9uUG9zaXRpb24pCiB7CiAgICAgQVNTRVJUKCFkb2N1bWVudCgpLmluUGFnZUNhY2hlKCkp
OwogCiAgICAgaWYgKGRpc3BsYXlTdGF0ZSgpID49IFByZXBhcmluZ1BsdWdpblJlcGxhY2VtZW50
KQotICAgICAgICByZXR1cm4gSFRNTFBsdWdJbkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihXVEY6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIEhUTUxQbHVnSW5FbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIoV1RGOjptb3ZlKHN0eWxlKSwgaW5zZXJ0aW9uUG9zaXRpb24p
OwogCiAgICAgLy8gT25jZSBhIFBsdWdJbiBFbGVtZW50IGNyZWF0ZXMgaXRzIHJlbmRlcmVyLCBp
dCBuZWVkcyB0byBiZSB0b2xkIHdoZW4gdGhlIERvY3VtZW50IGdvZXMKICAgICAvLyBpbmFjdGl2
ZSBvciByZWFjdGl2YXRlcyBzbyBpdCBjYW4gY2xlYXIgdGhlIHJlbmRlcmVyIGJlZm9yZSBnb2lu
ZyBpbnRvIHRoZSBwYWdlIGNhY2hlLgpAQCAtMjE4LDcgKzIxOCw3IEBAIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVmPFJlbmRlCiAgICAgaWYgKGlzSW1hZ2VUeXBlKCkpCiAgICAgICAgIHJldHVybiBjcmVhdGVS
ZW5kZXJlcjxSZW5kZXJJbWFnZT4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogCi0gICAgcmV0
dXJuIEhUTUxQbHVnSW5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoV1RGOjptb3ZlKHN0
eWxlKSk7CisgICAgcmV0dXJuIEhUTUxQbHVnSW5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoV1RGOjptb3ZlKHN0eWxlKSwgaW5zZXJ0aW9uUG9zaXRpb24pOwogfQogCiBib29sIEhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYg
Y2hpbGQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5J
bWFnZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVu
dC5oCmluZGV4IDlmMjhlMmVlODZkMWE5MmE3YWQyYTg1ZDFlYzE3Y2RkMjVlYjY4YzEuLmUwNDk1
Yjc0ZDI0YzdhZTdhNzVkNmFlNDVkM2FjNDZlODVmM2I1MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oCkBAIC0xMTcsNyArMTE3LDcgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkgb3ZlcnJpZGUgZmlu
YWw7CiAgICAgdmlydHVhbCB2b2lkIGRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9v
dCopIG92ZXJyaWRlIGZpbmFsOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYp
IGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVjYWxjU3R5bGUoU3R5bGU6
OkNoYW5nZSkgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIGRpZEF0dGFjaFJlbmRl
cmVycygpIG92ZXJyaWRlIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNz
RWxlbWVudC5jcHAKaW5kZXggMDEyYzZkZjEyOTgxMGM3NGRjNmY0NGE2MjA0NGY1MzNkZWRkZDdj
My4uODdmMGUzNzBjYTAyYzNhYzliYjE0NmZiOWJkMDc2ZWJiNGE0ODUzNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCkBAIC01Niw3ICs1Niw3IEBAIFJl
ZjxIVE1MUHJvZ3Jlc3NFbGVtZW50PiBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtCiAgICAgcmV0dXJuIHByb2dyZXNzOwogfQogCi1SZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gSFRNTFByb2dyZXNzRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBI
VE1MUHJvZ3Jlc3NFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIGlmICghc3R5bGUu
Z2V0KCkuaGFzQXBwZWFyYW5jZSgpKQogICAgICAgICByZXR1cm4gUmVuZGVyRWxlbWVudDo6Y3Jl
YXRlRm9yKCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UHJvZ3Jlc3NFbGVtZW50LmgKaW5kZXggZjdkYzBjMGFhMjM0N2IzZjI2MmZmOTEzODA1ZDcwYjJj
NjhiNWE1ZC4uYjdiNDVhNTlhYWQ5NDU0YjgxMmZhMDNkMDM4OWVlNWE4YTMyMzFhZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgKQEAgLTUyLDcgKzUyLDcgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwZWFySW5kZXRlcm1pbmF0ZSgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0TGFiZWxzKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9k
ZSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIFJlbmRlclByb2dyZXNzKiByZW5kZXJQcm9ncmVzcygp
IGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxSVEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFJURWxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzMzg4
YWExN2M5YjY3YTlmYzYzOWUyYzNmY2ViNTM0OGMwYmU4YWQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxSVEVsZW1lbnQuaApAQCAtMCwwICsxLDY1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBIVE1MUlRFbGVtZW50X2gKKyNkZWZpbmUgSFRNTFJURWxlbWVudF9o
CisKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2lu
Y2x1ZGUgIlJlbmRlclJ1YnkuaCIKKyNpbmNsdWRlICJSZW5kZXJSdWJ5VGV4dC5oIgorI2luY2x1
ZGUgIlJlbmRlclRyZWVQb3NpdGlvbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEhUTUxSVEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgeworcHVibGljOgorICAg
IHN0YXRpYyBSZWY8SFRNTFJURWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEhUTUxSVEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgSFRNTFJURWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCYgZG9jdW1lbnQpCisgICAgICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
CisgICAgeworICAgICAgICBBU1NFUlQoaGFzVGFnTmFtZShIVE1MTmFtZXM6OnJ0VGFnKSk7Cisg
ICAgfQorCisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikg
b3ZlcnJpZGU7Cit9OworCisKK2lubGluZSBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFJU
RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwg
Y29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJiBpbnNlcnRpb25Qb3NpdGlvbikKK3sKKyAgICAvLyBS
ZW5kZXJSdWJ5VGV4dCByZXF1aXJlcyBpdHMgcGFyZW50IHRvIGJlIFJlbmRlclJ1YnlSdW4uCisg
ICAgaWYgKGlzUnVieSgmaW5zZXJ0aW9uUG9zaXRpb24ucGFyZW50KCkpKQorICAgICAgICByZXR1
cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyUnVieVRleHQ+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUp
KTsKKyAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihXVEY6Om1v
dmUoc3R5bGUpLCBpbnNlcnRpb25Qb3NpdGlvbik7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxSdWJ5RWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MUnVieUVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNDI3Mzg1MTUxNjU3YWUzNGM2
YmFlZjA5NTQ4YTI4ZDUyZmY2ZjcwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUnVieUVsZW1lbnQuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBIVE1MUnVieUVsZW1lbnRfaAorI2RlZmluZSBIVE1MUnVieUVsZW1lbnRfaAorCisjaW5j
bHVkZSAiSFRNTEVsZW1lbnQuaCIKKyNpbmNsdWRlICJSZW5kZXJSdWJ5LmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgSFRNTFJ1YnlFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxF
bGVtZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEhUTUxSdWJ5RWxlbWVudD4gY3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxSdWJ5RWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBIVE1MUnVieUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorICAgICAgICA6IEhU
TUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQorICAgIHsKKyAgICAgICAgQVNTRVJUKGhhc1Rh
Z05hbWUoSFRNTE5hbWVzOjpydWJ5VGFnKSk7CisgICAgfQorCisgICAgdmlydHVhbCBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4m
JiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7Cit9OworCisKK2lubGluZSBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFJ1YnlFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24m
IGluc2VydGlvblBvc2l0aW9uKQoreworICAgIGlmIChzdHlsZS5nZXQoKS5kaXNwbGF5KCkgPT0g
SU5MSU5FKQorICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyUnVieUFzSW5saW5l
PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CisgICAgaWYgKHN0eWxlLmdldCgpLmRpc3BsYXko
KSA9PSBCTE9DSyB8fCBzdHlsZS5nZXQoKS5kaXNwbGF5KCkgPT0gSU5MSU5FX0JMT0NLKQorICAg
ICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyUnVieUFzQmxvY2s+KCp0aGlzLCBXVEY6
Om1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihXVEY6Om1vdmUoc3R5bGUpLCBpbnNlcnRpb25Qb3NpdGlvbik7Cit9CisKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IDhiODc5
M2FmYmNlODQ1NGU4MmI2NDgxNzkwNTZhODk5NTU4YWUyNTQuLmQ1MDVmM2YxMGEwYzQ4NTI0NDU4
Yjk0NTRkNGVlYmQ0Yzk1N2Q3NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVs
ZW1lbnQuY3BwCkBAIC0zNTAsNyArMzUwLDcgQEAgYm9vbCBIVE1MU2VsZWN0RWxlbWVudDo6Y2Fu
U2VsZWN0QWxsKCkgY29uc3QKICAgICByZXR1cm4gIXVzZXNNZW51TGlzdCgpOwogfQogCi1SZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFNlbGVjdEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
SFRNTFNlbGVjdEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+
JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAjaWYgIVBMQVRGT1JNKElP
UykKICAgICBpZiAodXNlc01lbnVMaXN0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTZWxlY3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RF
bGVtZW50LmgKaW5kZXggODg3YTA2YTZiMGVmZjY0MTMzOTNmNzU3MGNlMDE0ZDI0M2ZjNzY0Mi4u
YTE1NWRmMGFiNzkwMTlhYjViYTE2MmNmODZkNWQ5MDUwNDJmYTUyZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaApAQCAtMTM4LDcgKzEzOCw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0
ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9z
aXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURh
dGFMaXN0JiwgYm9vbCkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVzZXQoKSBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAppbmRleCBh
MDFjMDEyM2FlZTc4ZWRmMDYwZDY1NjRkNmNjYThmODNlMzBhODMxLi4xYzRjYzNiOTY5NzRlYzMy
ODcwYjgxMjE4MWQ5NmQ0MTVlZTRlMjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3Vt
bWFyeUVsZW1lbnQuY3BwCkBAIC02NSw3ICs2NSw3IEBAIEhUTUxTdW1tYXJ5RWxlbWVudDo6SFRN
TFN1bW1hcnlFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBk
CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoc3VtbWFyeVRhZykpOwogfQogCi1SZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gSFRNTFN1bW1hcnlFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVm
PFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxTdW1t
YXJ5RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHls
ZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVy
ZXI8UmVuZGVyQmxvY2tGbG93PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuaAppbmRleCAyMzNhYTQyZWRkNjVmMjlmMTZm
OGVkNWQ2OGY3YTY4ZDBjNzAwNDNmLi40ODA5Y2U0NDU1YzRjNDQ2N2RkMGE5N2QzYTUxYjYwNTU5
NmY2Mjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmgKQEAgLTM3
LDcgKzM3LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MU3VtbWFyeUVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24m
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihj
b25zdCBOb2RlJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVu
dEhhbmRsZXIoRXZlbnQqKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGFnTmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5p
bgppbmRleCAwZDA5ODVkMGNmZjhjMmFhODE1MTkzNjAxNDhhZDJhNWQ1OTc2MzIyLi5kZWY1ODhh
YzAxY2E5MzRlNTgyZGMyNzI1YmUwOGM0NTdhMWI0NzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
YWdOYW1lcy5pbgpAQCAtMTAzLDkgKzEwMyw5IEBAIHByb2dyZXNzIGludGVyZmFjZU5hbWU9SFRN
TFByb2dyZXNzRWxlbWVudAogcSBpbnRlcmZhY2VOYW1lPUhUTUxRdW90ZUVsZW1lbnQKIHJiIGlu
dGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIHJwIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKLXJ0
IGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKK3J0IGludGVyZmFjZU5hbWU9SFRNTFJURWxlbWVu
dCwgSlNJbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBydGMgaW50ZXJmYWNlTmFtZT1IVE1MRWxl
bWVudAotcnVieSBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CitydWJ5IGludGVyZmFjZU5hbWU9
SFRNTFJ1YnlFbGVtZW50LCBKU0ludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIHMgaW50ZXJmYWNl
TmFtZT1IVE1MRWxlbWVudAogc2FtcCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBzY3JpcHQg
Y29uc3RydWN0b3JOZWVkc0NyZWF0ZWRCeVBhcnNlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5jcHAKaW5kZXggYmIzYjQ1MmRhYWYzNWUzMzhmMGRkYzlmN2E1NzVh
MjQ4ZTJlZDliZC4uNGE5NjRmOGZhZjc2NWM5OGU4YmJmYjlkZjQ0YjVhYjI2YWQ1ZTk3NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCkBAIC0yMDksNyAr
MjA5LDcgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWMKICAgICAgICAgSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIAotUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRN
TFRleHRBcmVhRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4m
JiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRl
UmVuZGVyZXI8UmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmU+KCp0aGlzLCBXVEY6Om1vdmUoc3R5
bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKaW5kZXgg
ZDQ1NmYxYmE3NWIwZDhlZWJjZTA4NjkzNTU2MjUxNGFhZTRjNDAwNC4uYzM1OGNjMTAzMDFmMTgy
N2IxZjljMDhhYjFkZGUzOGQ2NDIwZDU3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4
dEFyZWFFbGVtZW50LmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3Ry
aW5nJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7
Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwg
Y29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGFw
cGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCByZXNldCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBoYXNDdXN0b21Gb2N1c0xv
Z2ljKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxWaWRlb0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50
LmNwcAppbmRleCBhZjJhNTk4ODk1Yzk4OGM2MzE1MzU4MmJkOTM1MTNlMzcwMDczN2VjLi4yOTlk
NzI0OTFkYWZiM2MzZjM4MzFjYWZlOTBlN2YwNjRhNmU2OTE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgYm9vbCBIVE1MVmlkZW9F
bGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKICAgICBy
ZXR1cm4gSFRNTEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOyAKIH0KIAotUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxWaWRlb0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRN
TFZpZGVvRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBz
dHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVu
ZGVyZXI8UmVuZGVyVmlkZW8+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKaW5kZXggOWYzZDE5Y2M0MmMzMzQwN2FjNGEzOGJj
OTJmMWY5ZjcyNzVmNTY2OC4uZThkNmNkOTAwNjYyMjk3ZGNjMzc3Zjc2YjliNGMwNWVkMGM2NTgx
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKQEAgLTc2LDcgKzc2LDcg
QEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkRGlzcGxheVBvc3RlckltYWdlKCkgY29uc3QgeyBy
ZXR1cm4gZGlzcGxheU1vZGUoKSA9PSBQb3N0ZXIgfHwgZGlzcGxheU1vZGUoKSA9PSBQb3N0ZXJX
YWl0aW5nRm9yVmlkZW87IH0KIAogICAgIFVSTCBwb3N0ZXJJbWFnZVVSTCgpIGNvbnN0OwotICAg
IHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0
IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAjaWYgRU5BQkxFKFZJREVPX1BSRVNF
TlRBVElPTl9NT0RFKQogICAgIGJvb2wgd2Via2l0U3VwcG9ydHNQcmVzZW50YXRpb25Nb2RlKGNv
bnN0IFN0cmluZyYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
V0JSRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxXQlJFbGVtZW50LmNwcApp
bmRleCBmZjFkYjZkOTY3MGU4NzQ3M2VhNGZhZTE1YzM5N2U1MTVlOTlkMGI3Li40ZTllNjMwZjM0
ZWQ0ZWM2MzE3ZmY5NjM1MzMzZjE1ZTdmM2IwZWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxXQlJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxX
QlJFbGVtZW50LmNwcApAQCAtNDQsNyArNDQsNyBAQCBIVE1MV0JSRWxlbWVudDo6SFRNTFdCUkVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQog
ICAgIEFTU0VSVChoYXNUYWdOYW1lKHdiclRhZykpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gSFRNTFdCUkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFdCUkVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckxpbmVC
cmVhaz4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MV0JSRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MV0JS
RWxlbWVudC5oCmluZGV4IDM1MjMzM2Y4ZThkNGE4NjNjNWE1ZmZjYzY3NTM5MWY2NzFkYmJjMTQu
LjcwNDc1MTZhNzBiOWVhMjg5NDAyYmI2YzUwZmYwYTk5ZDNkMGE0MzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFdCUkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxXQlJFbGVtZW50LmgKQEAgLTM3LDcgKzM3LDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBIVE1MV0JSRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAot
ICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNv
bnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01h
cmtlckNvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtl
ckNvbnRyb2wuY3BwCmluZGV4IGI0OTZhOTA0ZWEzZDZmOTM1YTljMDY0M2JlOGVjY2U1ZTllYzg3
NzUuLjY3NmIxZWNmZmY5YmQzODZkNDJhOWU5MjI2ZWNkMWNkOGNhNGVmMWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAKQEAg
LTUwLDcgKzUwLDcgQEAgRGV0YWlsc01hcmtlckNvbnRyb2w6OkRldGFpbHNNYXJrZXJDb250cm9s
KERvY3VtZW50JiBkb2N1bWVudCkKICAgICBzZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0
LWRldGFpbHMtbWFya2VyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwog
fQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gRGV0YWlsc01hcmtlckNvbnRyb2w6OmNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gRGV0YWlsc01hcmtlckNvbnRyb2w6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAg
ICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckRldGFpbHNNYXJrZXI+KCp0aGlzLCBXVEY6
Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0RldGFpbHNNYXJrZXJDb250cm9sLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRh
aWxzTWFya2VyQ29udHJvbC5oCmluZGV4IDQ3YWIwZDMzZjc5NTVjOWFkZTA0ODAyOTRkNjZiZjE2
ODBiZTJkOGEuLjM5NzE3YWI2NjZkMjY5ODgxNTA5Njg5NjZmZjYxMThjZWVlYWNhNjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuaApA
QCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIERldGFpbHNNYXJrZXJDb250
cm9sKERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVm
PFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJy
aWRlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sRWxlbWVudHMuY3BwCmluZGV4IDJkMzNiODE2ODhlMDFlNjUzYTBkMjQ2NmJlNTgxMDRjMzU5
MDA2NDAuLjlhNzBiNDBiZWY2OWJiZmI2Y2Q3ZjE2MGE1YmQzYTI5YThiYTZjNzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAK
QEAgLTMxMCw3ICszMTAsNyBAQCB2b2lkIE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxl
bWVudDo6c2V0VGltZURpc3BsYXlzSGlkZGVuKGJvb2wgaGlkZGVuKQogICAgIH0KIH0KIAotUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVu
dDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJl
bmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1l
ZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9
CkBAIC0zMzAsNyArMzMwLDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJD
b250YWluZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb24KICAgICByZXR1cm4g
ZWxlbWVudC5yZWxlYXNlKCk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNZWRpYUNv
bnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1lZGlh
Q29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7
CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1lZGlhVm9sdW1lU2xpZGVyQ29udGFp
bmVyPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CkBAIC0xMDg4LDcgKzEwODgsNyBAQCBQ
YXNzUmVmUHRyPE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ+IE1lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lcgogICAgIHJldHVybiBlbGVtZW50LnJlbGVhc2UoKTsKIH0K
IAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5l
ckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUp
CitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVy
RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwg
Y29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8
UmVuZGVyVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudD4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
RWxlbWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1l
bnRzLmgKaW5kZXggMzljOTk5MGFmYjljZDY5ZDE3MGIwMDA0MThhY2Y2MjdjNWYyNjU0OS4uMzAx
NDgyODFlOGNiMGJiYmNiZDJhMTNjNmQzMGYzODQyZGU1Zjc0ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCkBAIC0xMTAsNyArMTEw
LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xUaW1lbGlu
ZUNvbnRhaW5lckVsZW1lbnQoRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYp
IG92ZXJyaWRlOwogfTsKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTI4
LDcgKzEyOCw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFu
ZGxlcihFdmVudCopIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJp
ZGU7CiB9OwogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00NTYsNyArNDU2
LDcgQEAgcHJpdmF0ZToKIAogICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRh
aW5lckVsZW1lbnQoRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJy
aWRlOwogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEltYWdlPiBjcmVhdGVUZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbkltYWdlKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1Jl
cHJlc2VudGF0aW9uQm91bmRzQ2hhbmdlZChjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmNwcAppbmRl
eCA0MGJkZTExOThiZjRmYWU3NzAxNjU3M2FmYTFjMzk3NTg3MWZlZjA3Li40MzExYTcwNTllNzhj
NDU0MTkzNTlkZDFhZDUzN2FiMmJjNzY5NDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5jcHAKQEAgLTczLDcgKzczLDcgQEAgYm9vbCBN
ZXRlcklubmVyRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5
bGUpCiAgICAgcmV0dXJuIHJlbmRlciAmJiAhcmVuZGVyLT50aGVtZSgpLnN1cHBvcnRzTWV0ZXIo
cmVuZGVyLT5zdHlsZSgpLmFwcGVhcmFuY2UoKSkgJiYgSFRNTERpdkVsZW1lbnQ6OnJlbmRlcmVy
SXNOZWVkZWQoc3R5bGUpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWV0ZXJJbm5l
ckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUp
CitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWV0ZXJJbm5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3Np
dGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1ldGVyPigqdGhpcywg
V1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
dGVyU2hhZG93RWxlbWVudC5oCmluZGV4IGU3ZDVlNjFlZjQyMmJiY2ZjOWE1Mzc4NWNiYThmYmQx
NWJmMDg5ZWQuLjNmMTUxZGE1NTA3YmNhYWU2Nzg5OTBmODk0YTM3NDA0OThhODZlNGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5oCkBAIC01
OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAgTWV0ZXJJbm5lckVsZW1lbnQoRG9jdW1lbnQmKTsK
IAogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikg
b3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxl
bWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJT
dHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiB9OwogCiBpbmxp
bmUgUGFzc1JlZlB0cjxNZXRlcklubmVyRWxlbWVudD4gTWV0ZXJJbm5lckVsZW1lbnQ6OmNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcAppbmRleCAzMjllZjU2YjVjMTE3MDk3Y2U3M2Rk
ZTdhNmZmYTBiNjBiMjIxNDFmLi42OTI3YjRhNzAxMjU0ZjE2OWZiMGUyMjMyMTIwM2MzMWZhM2Fk
MTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRv
d0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hh
ZG93RWxlbWVudC5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgUHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OlBy
b2dyZXNzSW5uZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKIHsKIH0KIAotUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IFByb2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFBy
b2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVh
dGVSZW5kZXJlcjxSZW5kZXJQcm9ncmVzcz4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQu
aAppbmRleCAzNDAxZmQyNWZjNmQ5Yzk5ZmM0NzAzNjZhY2IwOWE5M2E1MWQwZjBmLi5kZGEzZDdm
MTZkYWY5YzEyODUxNWJkMmE2NTVkNDA4YWQ4ODFlYWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuaApAQCAtNTcsNyArNTcsNyBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFByb2dyZXNzSW5uZXJFbGVtZW50KERvY3VtZW50Jik7
CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYm
LCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wg
cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKaW5k
ZXggNTQ3MDE2NWM5MzQ3ZWI4ZDZiMzVkZDRiMjFlZjQ0NjU4MWM2NzZhZi4uNjgxNGE1MmIzZGIx
YWI4NTk1OGU4MWUzOWM1OTYyYTAyMzAxYTY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCkBAIC0yMTQsNyArMjE0LDcgQEAgdm9p
ZCBTbGlkZXJUaHVtYkVsZW1lbnQ6OnNldFBvc2l0aW9uRnJvbVZhbHVlKCkKICAgICAgICAgcmVu
ZGVyZXIoKS0+c2V0TmVlZHNMYXlvdXQoKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IFNsaWRlclRodW1iRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHls
ZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTbGlkZXJUaHVtYkVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJl
bmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNs
aWRlclRodW1iPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CkBAIC02MTUsNyArNjE1LDcg
QEAgUGFzc1JlZlB0cjxTbGlkZXJDb250YWluZXJFbGVtZW50PiBTbGlkZXJDb250YWluZXJFbGVt
ZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3UKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNsaWRl
ckNvbnRhaW5lckVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU2xpZGVyQ29udGFp
bmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHls
ZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVy
ZXI8UmVuZGVyU2xpZGVyQ29udGFpbmVyPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCmluZGV4
IDg5ZTdkYzMxZGIwYjU0ZWQ4MDEwZmVhODRkMTk0MzM5MTI5ODMzOTEuLmRlODYzOTI1Y2RjZmIz
NTliNDg5MjNmODVkNDlhYTBjY2FjZGY2MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgU2xpZGVyVGh1bWJFbGVtZW50KERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFs
IFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRl
clN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJU
cmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFJlZlB0cjxFbGVtZW50PiBjbG9u
ZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50Jikgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBib29sIGlzRGlzYWJsZWRGb3JtQ29udHJvbCgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgYm9vbCBtYXRjaGVzUmVhZFdyaXRlUHNldWRvQ2xhc3MoKSBjb25zdCBv
dmVycmlkZTsKQEAgLTEzMSw3ICsxMzEsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgU2xp
ZGVyQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCYpOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9J
ZCgpIGNvbnN0IG92ZXJyaWRlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKaW5kZXggZDNkYjkzNjRjYTk0
MTRkZjYzYTI0ODZmY2ZhMjdiNWM4ZjAxMjI1NS4uNTliZGYwMWI4YWJlZDQ1ZGU1OWE3NmVkYzQ2
MGM0MWY2OTY3OTA2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4
dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCkBAIC01Niw3ICs1Niw3IEBAIFBhc3NSZWZQ
dHI8VGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcj4gVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcjo6
Y3JlYXRlKERvY3VtZW50CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0Q29udHJvbElubmVy
Q29udGFpbmVyKGRvY3VtZW50KSk7CiB9CiAgICAgCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
VGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcjo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5k
ZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBUZXh0Q29udHJvbElu
bmVyQ29udGFpbmVyOjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0
eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5k
ZXJlcjxSZW5kZXJUZXh0Q29udHJvbElubmVyQ29udGFpbmVyPigqdGhpcywgV1RGOjptb3ZlKHN0
eWxlKSk7CiB9CkBAIC0xMTAsNyArMTEwLDcgQEAgdm9pZCBUZXh0Q29udHJvbElubmVyVGV4dEVs
ZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogICAgICAgICBIVE1MRGl2
RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CiB9CiAKLVJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJl
bmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJl
dHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2s+KCp0aGlzLCBX
VEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgKaW5kZXggYjI0NzUzNjEyMWRjNWVhNmMyZWY1
ZGFiMGU4MzllYzY5MGVlOTU0Zi4uNjY3NGE5ZWRkODVhNzRlMWNhYzc1ODVkOWVhNDBiMzc3MjM5
MmFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJ
bm5lckVsZW1lbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRy
b2xJbm5lckVsZW1lbnRzLmgKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFRleHRDb250cm9sSW5uZXJDb250YWluZXI+IGNyZWF0ZShEb2N1bWVudCYpOwog
cHJvdGVjdGVkOgogICAgIFRleHRDb250cm9sSW5uZXJDb250YWluZXIoRG9jdW1lbnQmKTsKLSAg
ICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25z
dCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIH07CiAKIGNsYXNzIFRleHRDb250cm9s
SW5uZXJFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxEaXZFbGVtZW50IHsKQEAgLTY0LDcgKzY0
LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVu
dChEb2N1bWVudCYpOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgUmVmUHRyPFJlbmRlclN0eWxlPiBjdXN0b21TdHlsZUZvclJlbmRlcmVyKFJlbmRlclN0
eWxlJiBwYXJlbnRTdHlsZSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzTW91c2VGb2N1
c2FibGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9v
bCBpc1RleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFn
ZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3BwCmluZGV4IDY5NzIzYThkMDFj
MTRhNGZlNzVlYjVmN2JjMjc1OTQ5ODgxNzlhMzMuLjlhNmQ0NDM5NDNiNzMzMWQzM2ZhOTAxZGZl
YjNmZWFkMzdlZTk4ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21h
Yy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcApAQCAtMTI1
LDcgKzEyNSw3IEBAIHZvaWQgSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWM6OmRlZmF1bHRF
dmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogICAgIEhUTUxEaXZFbGVtZW50OjpkZWZhdWx0RXZl
bnRIYW5kbGVyKGV2ZW50KTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEltYWdlQ29u
dHJvbHNCdXR0b25FbGVtZW50TWFjOjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0
eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEltYWdlQ29udHJvbHNCdXR0
b25FbGVtZW50TWFjOjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0
eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5k
ZXJlcjxSZW5kZXJJbWFnZUNvbnRyb2xzQnV0dG9uPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250
cm9sc0J1dHRvbkVsZW1lbnRNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9J
bWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5oCmluZGV4IDUzZDcyYjE4MzM4OWJjMjEwY2Jj
Njg0OTQ3MmZhNjAzYTFhMGU0NmYuLjEzNGZjMjA4YzdkYjE0Y2UyNTMzZWI5NDQ3NDNiMDdkOGQ2
MTk0NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNv
bnRyb2xzQnV0dG9uRWxlbWVudE1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5oCkBAIC00Miw3ICs0Miw3IEBAIHBy
aXZhdGU6CiAgICAgSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMoRG9jdW1lbnQmKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kikgb3ZlcnJpZGU7Ci0g
ICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29u
c3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNJ
bWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7
IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VD
b250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21h
Yy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCmluZGV4IGQ1MjcxZWNlYWM0YzY4MGEz
YzRhNGJmZjlhNDBhMzMyZjY0OGU4ZDQuLmI2ZWVjY2MwYjQxZWMwYmY0OTQ0ZjhmZmY1MjVmYjhh
MTI5OGIzZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFn
ZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCkBAIC0xMDIsNyArMTAyLDcg
QEAgSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjOjp+SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50
TWFjKCkKIHsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEltYWdlQ29udHJvbHNSb290
RWxlbWVudE1hYzo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHls
ZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWM6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJl
bmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlcklt
YWdlQ29udHJvbHM+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1l
bnRNYWMuaAppbmRleCA2MGVjNTMzMzg1M2ViOTU1MGI0NjBjODQ3ZTZkMzljNjNmNjE1YThmLi5l
MjNmNGUxZmQ5M2IzZjk4YzJkZTlmMzdhNjAyMTZlYzIwOWY2Njg1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNSb290RWxl
bWVudE1hYy5oCkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSW1hZ2VD
b250cm9sc1Jvb3RFbGVtZW50TWFjKERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYm
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRp
b24mKSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVlRUQ3VlLmNwcAppbmRleCA1ZjJlYTg1NDBkZTBhMWFiNTMwNTAyNzYyNWU3YTI0
MjFkODllY2QxLi41YjM1OTJkMTZkNDRjMTE0NTRhMWIzOWI0NjRjYTFjNTZkMzNlYmU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCkBAIC0yMzQsNyArMjM0LDcgQEAgY29uc3Qg
QXRvbWljU3RyaW5nJiBWVFRDdWVCb3g6OnZ0dEN1ZUJveFNoYWRvd1BzZXVkb0lkKCkKICAgICBy
ZXR1cm4gdHJhY2tEaXNwbGF5Qm94U2hhZG93UHNldWRvSWQ7CiB9CiAKLVJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBWVFRDdWVCb3g6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gVlRUQ3VlQm94OjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVl
UG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJWVFRDdWU+KCp0
aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVlRUQ3VlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5oCmlu
ZGV4IGNjMWRmYmM1NWIwMDA5ZWVmN2QwOTk5MmE0NTkyMTM2OTIxOWZlNmMuLmU1MGRjNzE5ZGQy
Mzk3Njg5Mjk1NmY4YjgyOTM3MmFiNWFmMDY4NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVlRUQ3VlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRD
dWUuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgVlRUQ3VlQm94
KERvY3VtZW50JiwgVlRUQ3VlJik7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZSBm
aW5hbDsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBv
dmVycmlkZSBmaW5hbDsKIAogICAgIFZUVEN1ZSYgbV9jdWU7CiAgICAgaW50IG1fZm9udFNpemVG
cm9tQ2FwdGlvblVzZXJQcmVmczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9N
YXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9N
YXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmNwcAppbmRleCA1OWQ1MzU2MjY4ZjhhNDliNzAz
MTdlYWE2NTJmNmJiNmFjY2Q2ODU4Li4wY2Y1MDViZTk1OGYyN2U0NDlhZWY2MDNlNjlmOWVkYjNl
ZWM1MTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MSW5saW5lQ29u
dGFpbmVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTElubGlu
ZUNvbnRhaW5lckVsZW1lbnQuY3BwCkBAIC02OSw3ICs2OSw3IEBAIHZvaWQgTWF0aE1MSW5saW5l
Q29udGFpbmVyRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFu
Z2UpCiAgICAgTWF0aE1MRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNoYW5nZSk7CiB9CiAKLVJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlv
biYpCiB7CiAgICAgaWYgKGhhc1RhZ05hbWUoYW5ub3RhdGlvbl94bWxUYWcpKQogICAgICAgICBy
ZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MUm93PigqdGhpcywgV1RGOjptb3ZlKHN0
eWxlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MSW5saW5lQ29u
dGFpbmVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTElubGluZUNvbnRh
aW5lckVsZW1lbnQuaAppbmRleCAyOTM2OTM2ZmI4YTIxZGExZjgyYTExODAzZmY3NGZhNzNhOWEx
ODhhLi5kNGMzYmJjM2E3ODg2YjIyYmNiYTI3N2Q2YTkzOWEwODQ5NDUzZWEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmgK
QEAgLTQzLDcgKzQzLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNv
bnN0IENoaWxkQ2hhbmdlJik7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikg
b3ZlcnJpZGU7CiB9OwogICAgIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1s
L01hdGhNTE1hdGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRo
RWxlbWVudC5jcHAKaW5kZXggYmRhMTBjMjk2YWU0MWMwZjA5MDRmODc2ODk5YmVhNjE3MjIyYmIx
Yy4uZjBjYWFiYzcxOTBjMTRkODcyNTFmNzU5MTg3ZTNkYjFmNDllNzE4MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuY3BwCkBAIC00Myw3ICs0Myw3IEBAIFJl
ZjxNYXRoTUxNYXRoRWxlbWVudD4gTWF0aE1MTWF0aEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBECiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWF0aE1MTWF0
aEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IE1hdGhNTE1hdGhFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0
eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1hdGhNTE1hdGhFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBS
ZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJN
YXRoTUxNYXRoPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL21h
dGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oCmluZGV4IDRhNDEwMzEwYmQ4MTIyNDY0OTcwN2I0Mzhk
NTU1ZWY0MzgyOWM3ZWEuLjA0ZWM2OWNiZDYzZjNiZmMwNjBmYzc0YjVhMmFjMjUxMDI0ZGNhZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oCkBAIC0zOSw3ICsz
OSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTWF0aE1MTWF0aEVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlv
biYpIG92ZXJyaWRlOwogfTsKICAgICAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21h
dGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTE1lbmNsb3NlRWxlbWVudC5jcHAKaW5kZXggMzhjZjlkODFjNTY2YmI2MWYyYjcxZGJhMzY2
ZWQ0NWM5ZTc2ZDM1Ni4uZDZkYTNiMzU5YzEyMDcyZTIyMWNmOGFhYjIxMGY5ZWJjNWJmYmZjOCAx
MDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5jcHAK
QEAgLTUwLDcgKzUwLDcgQEAgUmVmPE1hdGhNTE1lbmNsb3NlRWxlbWVudD4gTWF0aE1MTWVuY2xv
c2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGEKICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBNYXRoTUxNZW5jbG9zZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0K
IAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1hdGhNTE1lbmNsb3NlRWxlbWVudDo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBNYXRoTUxNZW5jbG9zZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7ICAg
IAogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxNZW5jbG9zZT4oKnRoaXMs
IFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1s
L01hdGhNTE1lbmNsb3NlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1l
bmNsb3NlRWxlbWVudC5oCmluZGV4IGMyN2E0Mzk2Y2E0NzM4NTU0ZTkxMTI1NjhmNmUxNzM3Zjg5
YjNhMWEuLjVmNDQyYzM5NDA4NDIxYTk4MjkwNGI0MTBjNDc1YjA0ODcyZTUwODMgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmgKQEAgLTQxLDcgKzQx
LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIE1hdGhNTE1lbmNsb3NlRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0
U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggMDg3ZGZlNjVjNmNh
MzliNDE2YjcyODcyYjM1ZWYxM2Y2NDg3MTgwMy4uNWZmYzA2OWQ0MTEwMzM1OGU5M2YxNDM1Mjk1
MzBkNjY1YmRiZWRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNl
bGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RF
bGVtZW50LmNwcApAQCAtNTEsNyArNTEsNyBAQCBSZWY8TWF0aE1MU2VsZWN0RWxlbWVudD4gTWF0
aE1MU2VsZWN0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbQogICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IE1hdGhNTFNlbGVjdEVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1hdGhNTFNlbGVjdEVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gTWF0aE1MU2VsZWN0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikK
IHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MUm93PigqdGhpcywgV1RG
Ojptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0
aE1MU2VsZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVs
ZW1lbnQuaAppbmRleCAyMmE2Y2NiNWY1NTc3NzkyZGMxODRmYzQyNzUxMjVmMzRhOGIxYjhkLi40
MjYzYmIzMjZmN2U5MmI3ZmQ1NDhhYzA1MWNjOTQxY2FiYmRiNWNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGlj
OgogCiBwcml2YXRlOgogICAgIE1hdGhNTFNlbGVjdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlk
ZTsKIAogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5v
ZGUmKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1s
L01hdGhNTFRleHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0
RWxlbWVudC5jcHAKaW5kZXggMjcxZDY5MmY3NTYxNjUwNDBkNGFhNGEyOWIyNzcxNTRhMjdhMzg4
ZC4uNGQ3YzFjYTg2YWVjZTFiZTE0MzM5ZGJiODhmZWNkYjI0ZTM1NzBhOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9tYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuY3BwCkBAIC03NSwxNCArNzUsMTQgQEAg
dm9pZCBNYXRoTUxUZXh0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbWljU3QKICAgICBNYXRoTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShuYW1lLCB2YWx1ZSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxUZXh0
RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkK
K1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxUZXh0RWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJiBpbnNlcnRpb25Qb3NpdGlvbikKIHsKICAgICBpZiAoaGFzVGFnTmFtZShNYXRoTUxOYW1l
czo6bW9UYWcpKQogICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MT3Bl
cmF0b3I+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKICAgICBpZiAoaGFzVGFnTmFtZShNYXRo
TUxOYW1lczo6bXNwYWNlVGFnKSkKICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRl
ck1hdGhNTFNwYWNlPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiAgICAgaWYgKGhhc1RhZ05h
bWUoTWF0aE1MTmFtZXM6OmFubm90YXRpb25UYWcpKQotICAgICAgICByZXR1cm4gTWF0aE1MRWxl
bWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFdURjo6bW92ZShzdHlsZSkpOworICAgICAgICBy
ZXR1cm4gTWF0aE1MRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFdURjo6bW92ZShzdHls
ZSksIGluc2VydGlvblBvc2l0aW9uKTsKIAogICAgIEFTU0VSVChoYXNUYWdOYW1lKE1hdGhNTE5h
bWVzOjptaVRhZykgfHwgaGFzVGFnTmFtZShNYXRoTUxOYW1lczo6bW5UYWcpIHx8IGhhc1RhZ05h
bWUoTWF0aE1MTmFtZXM6Om1zVGFnKSB8fCBoYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptdGV4dFRh
ZykpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVGV4dEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oCmluZGV4IDY5
YjA1NzRiOTFkZjUwYzUyZjdlZjg2NmYzOGJmYTg5NTk3Y2Q4ZTIuLjFkNWY1Nzg1OGNkZTAzZGYy
OTM5ZTNlOTdmZDYwOWYwOTI2MDZjMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGht
bC9NYXRoTUxUZXh0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxU
ZXh0RWxlbWVudC5oCkBAIC00Miw3ICs0Miw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTWF0
aE1MVGV4dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsK
IAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYs
IGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBj
aGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IDVlYzMx
Njk2OGZkYzQ2YzY1YzI1YjdmNDI5ODcwNjYzYjcxM2I0NzYuLjAwYWU2NGQzNWQ1OWQ1M2U0MDFi
MTQ0MTIxNWY1N2EwYjZjZjlkZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcApAQCAtNjIsNiArNjIsNyBAQAogI2luY2x1ZGUgIlJlbmRlclRhYmxlQ2VsbC5oIgog
I2luY2x1ZGUgIlJlbmRlclRleHRGcmFnbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgi
CisjaW5jbHVkZSAiUmVuZGVyVHJlZVBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5o
IgogI2luY2x1ZGUgIlNWR1RleHRSdW5SZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKQEAgLTM4NSw3ICszODYsOCBAQCBSZW5kZXJQdHI8UmVuZGVyQmxvY2s+IFJlbmRl
ckJsb2NrOjpjbG9uZSgpIGNvbnN0CiAgICAgICAgIGNsb25lQmxvY2sgPSBSZW5kZXJQdHI8UmVu
ZGVyQmxvY2s+KGNyZWF0ZUFub255bW91c0Jsb2NrKCkpOwogICAgICAgICBjbG9uZUJsb2NrLT5z
ZXRDaGlsZHJlbklubGluZShjaGlsZHJlbklubGluZSgpKTsKICAgICB9IGVsc2UgewotICAgICAg
ICBjbG9uZUJsb2NrID0gc3RhdGljX3BvaW50ZXJfY2FzdDxSZW5kZXJCbG9jaz4oZWxlbWVudCgp
LT5jcmVhdGVFbGVtZW50UmVuZGVyZXIoc3R5bGUoKSkpOworICAgICAgICBSZW5kZXJUcmVlUG9z
aXRpb24gaW5zZXJ0aW9uUG9zaXRpb24oKnBhcmVudCgpKTsKKyAgICAgICAgY2xvbmVCbG9jayA9
IHN0YXRpY19wb2ludGVyX2Nhc3Q8UmVuZGVyQmxvY2s+KGVsZW1lbnQoKS0+Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKHN0eWxlKCksIGluc2VydGlvblBvc2l0aW9uKSk7CiAgICAgICAgIGNsb25lQmxv
Y2stPmluaXRpYWxpemVTdHlsZSgpOwogCiAgICAgICAgIC8vIFRoaXMgdGFrZXMgY2FyZSBvZiBz
ZXR0aW5nIHRoZSByaWdodCB2YWx1ZSBvZiBjaGlsZHJlbklubGluZSBpbiBjYXNlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKaW5kZXggN2FmOTZlMTY1YmVmMGU0
OTYzODExZGVmNjI3MzFkNjY4ZTQwZjQ3ZS4uZDU4NGYyY2MzMzEzNjRlMzdhZDE1Y2E3YTIyNzE0
ZjM5NWMxODAxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNw
cApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIlJlbmRlckZsZXhpYmxlQm94LmgiCiAjaW5j
bHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZVJlc291cmNlU3R5bGVJ
bWFnZS5oIgorI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUgIlJlbmRlckl0ZXJh
dG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllckNv
bXBvc2l0b3IuaCIKQEAgLTUwLDggKzUxLDYgQEAKICNpbmNsdWRlICJSZW5kZXJMaXN0SXRlbS5o
IgogI2luY2x1ZGUgIlJlbmRlck5hbWVkRmxvd1RocmVhZC5oIgogI2luY2x1ZGUgIlJlbmRlclJl
Z2lvbi5oIgotI2luY2x1ZGUgIlJlbmRlclJ1YnkuaCIKLSNpbmNsdWRlICJSZW5kZXJSdWJ5VGV4
dC5oIgogI2luY2x1ZGUgIlJlbmRlclRhYmxlQ2FwdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlclRh
YmxlQ2VsbC5oIgogI2luY2x1ZGUgIlJlbmRlclRhYmxlQ29sLmgiCkBAIC0xNTcsMTYgKzE1Niw2
IEBAIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3IoRWxl
bWVudCYgZWxlbWVudCwgUmVmPFJlbmRlclN0CiAgICAgICAgIGltYWdlLT5zZXRJc0dlbmVyYXRl
ZENvbnRlbnQoKTsKICAgICAgICAgcmV0dXJuIFdURjo6bW92ZShpbWFnZSk7CiAgICAgfQotCi0g
ICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShIVE1MTmFtZXM6OnJ1YnlUYWcpKSB7Ci0gICAgICAg
IGlmIChzdHlsZS5nZXQoKS5kaXNwbGF5KCkgPT0gSU5MSU5FKQotICAgICAgICAgICAgcmV0dXJu
IGNyZWF0ZVJlbmRlcmVyPFJlbmRlclJ1YnlBc0lubGluZT4oZWxlbWVudCwgV1RGOjptb3ZlKHN0
eWxlKSk7Ci0gICAgICAgIGlmIChzdHlsZS5nZXQoKS5kaXNwbGF5KCkgPT0gQkxPQ0sgfHwgc3R5
bGUuZ2V0KCkuZGlzcGxheSgpID09IElOTElORV9CTE9DSykKLSAgICAgICAgICAgIHJldHVybiBj
cmVhdGVSZW5kZXJlcjxSZW5kZXJSdWJ5QXNCbG9jaz4oZWxlbWVudCwgV1RGOjptb3ZlKHN0eWxl
KSk7Ci0gICAgfQotICAgIC8vIHRyZWF0IDxydD4gYXMgcnVieSB0ZXh0IE9OTFkgaWYgdGhlIHBh
cmVudCBpcyBydWJ5LgotICAgIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpydFRh
ZykgJiYgZWxlbWVudC5wYXJlbnRFbGVtZW50KCkgJiYgaXNSdWJ5KGVsZW1lbnQucGFyZW50RWxl
bWVudCgpLT5yZW5kZXJlcigpKSkKLSAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRl
clJ1YnlUZXh0PihlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKTsKICAgICBzd2l0Y2ggKHN0eWxl
LmdldCgpLmRpc3BsYXkoKSkgewogICAgIGNhc2UgTk9ORToKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SZW5kZXJUcmVlUG9zaXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUmVuZGVyVHJlZVBvc2l0aW9uLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43N2M4YWMwZWM5NzdlYjkxYzg0YWFlNTgzZWYwNzlhMzE5YzU1OTQzCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUmVuZGVyVHJlZVBvc2l0aW9uLmNwcApAQCAt
MCwwICsxLDExNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJSZW5kZXJUcmVlUG9zaXRpb24uaCIKKworI2luY2x1ZGUgIk5vZGVSZW5kZXJpbmdUcmF2ZXJz
YWwuaCIKKyNpbmNsdWRlICJQc2V1ZG9FbGVtZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0
LmgiCisjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitSZW5kZXJUcmVlUG9zaXRpb246OlJlbmRlclRyZWVQb3Np
dGlvbihSZW5kZXJWaWV3JiByb290KQorICAgIDogbV9wYXJlbnQocm9vdCkKKyAgICAsIG1faGFz
VmFsaWROZXh0U2libGluZyh0cnVlKQoreworfQorCitSZW5kZXJUcmVlUG9zaXRpb246OlJlbmRl
clRyZWVQb3NpdGlvbihSZW5kZXJFbGVtZW50JiBwYXJlbnQpCisgICAgOiBtX3BhcmVudChwYXJl
bnQpCit7Cit9CisKK1JlbmRlclRyZWVQb3NpdGlvbjo6UmVuZGVyVHJlZVBvc2l0aW9uKFJlbmRl
ckVsZW1lbnQmIHBhcmVudCwgUmVuZGVyT2JqZWN0KiBuZXh0U2libGluZykKKyAgICA6IG1fcGFy
ZW50KHBhcmVudCkKKyAgICAsIG1fbmV4dFNpYmxpbmcobmV4dFNpYmxpbmcpCisgICAgLCBtX2hh
c1ZhbGlkTmV4dFNpYmxpbmcodHJ1ZSkKK3sKK30KKwordm9pZCBSZW5kZXJUcmVlUG9zaXRpb246
OmNvbXB1dGVOZXh0U2libGluZyhjb25zdCBOb2RlJiBub2RlKQoreworICAgIEFTU0VSVCghbm9k
ZS5yZW5kZXJlcigpKTsKKyAgICBpZiAobV9oYXNWYWxpZE5leHRTaWJsaW5nKSB7CisgICAgICAg
IC8vIFN0b3AgdmFsaWRhdGluZyBhdCBzb21lIHBvaW50IHNvIHRoZSBhc3NlcnQgZG9lc24ndCBt
YWtlIHVzIE8oTl4yKSBvbiBkZWJ1ZyBidWlsZHMuCisgICAgICAgIEFTU0VSVChtX3BhcmVudC5p
c1JlbmRlclZpZXcoKSB8fCArK21fYXNzZXJ0aW9uTGltaXRDb3VudGVyID4gMjAgfHwgbmV4dFNp
YmxpbmdSZW5kZXJlcihub2RlLCBtX3BhcmVudCkgPT0gbV9uZXh0U2libGluZyk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgbV9uZXh0U2libGluZyA9IG5leHRTaWJsaW5nUmVuZGVyZXIo
bm9kZSwgbV9wYXJlbnQpOworICAgIG1faGFzVmFsaWROZXh0U2libGluZyA9IHRydWU7CisKK30K
Kwordm9pZCBSZW5kZXJUcmVlUG9zaXRpb246OmludmFsaWRhdGVOZXh0U2libGluZyhjb25zdCBS
ZW5kZXJPYmplY3QmIHNpYmxpbmdSZW5kZXJlcikKK3sKKyAgICBpZiAoIW1faGFzVmFsaWROZXh0
U2libGluZykKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChtX25leHRTaWJsaW5nID09ICZzaWJs
aW5nUmVuZGVyZXIpCisgICAgICAgIG1faGFzVmFsaWROZXh0U2libGluZyA9IGZhbHNlOworfQor
CitSZW5kZXJPYmplY3QqIFJlbmRlclRyZWVQb3NpdGlvbjo6cHJldmlvdXNTaWJsaW5nUmVuZGVy
ZXIoY29uc3QgVGV4dCYgdGV4dE5vZGUpCit7CisgICAgaWYgKHRleHROb2RlLnJlbmRlcmVyKCkp
CisgICAgICAgIHJldHVybiB0ZXh0Tm9kZS5yZW5kZXJlcigpLT5wcmV2aW91c1NpYmxpbmcoKTsK
KyAgICBmb3IgKE5vZGUqIHNpYmxpbmcgPSBOb2RlUmVuZGVyaW5nVHJhdmVyc2FsOjpwcmV2aW91
c1NpYmxpbmcoJnRleHROb2RlKTsgc2libGluZzsgc2libGluZyA9IE5vZGVSZW5kZXJpbmdUcmF2
ZXJzYWw6OnByZXZpb3VzU2libGluZyhzaWJsaW5nKSkgeworICAgICAgICBSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyID0gc2libGluZy0+cmVuZGVyZXIoKTsKKyAgICAgICAgaWYgKHJlbmRlcmVyICYm
ICFSZW5kZXJUcmVlUG9zaXRpb246OmlzUmVuZGVyZXJSZXBhcmVudGVkKCpyZW5kZXJlcikpCisg
ICAgICAgICAgICByZXR1cm4gcmVuZGVyZXI7CisgICAgfQorICAgIGlmIChQc2V1ZG9FbGVtZW50
KiBiZWZvcmUgPSB0ZXh0Tm9kZS5wYXJlbnRFbGVtZW50KCktPmJlZm9yZVBzZXVkb0VsZW1lbnQo
KSkKKyAgICAgICAgcmV0dXJuIGJlZm9yZS0+cmVuZGVyZXIoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworUmVuZGVyT2JqZWN0KiBSZW5kZXJUcmVlUG9zaXRpb246Om5leHRTaWJsaW5nUmVu
ZGVyZXIoY29uc3QgTm9kZSYgbm9kZSwgY29uc3QgUmVuZGVyRWxlbWVudCYgcGFyZW50UmVuZGVy
ZXIpCit7CisgICAgaWYgKCFwYXJlbnRSZW5kZXJlci5lbGVtZW50KCkpCisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIGlmIChub2RlLmlzQWZ0ZXJQc2V1ZG9FbGVtZW50KCkpCisgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIE5vZGUqIHNpYmxpbmcgPSBub2RlLmlzQmVmb3JlUHNldWRv
RWxlbWVudCgpID8gTm9kZVJlbmRlcmluZ1RyYXZlcnNhbDo6Zmlyc3RDaGlsZChwYXJlbnRSZW5k
ZXJlci5lbGVtZW50KCkpIDogTm9kZVJlbmRlcmluZ1RyYXZlcnNhbDo6bmV4dFNpYmxpbmcoJm5v
ZGUpOworICAgIGZvciAoOyBzaWJsaW5nOyBzaWJsaW5nID0gTm9kZVJlbmRlcmluZ1RyYXZlcnNh
bDo6bmV4dFNpYmxpbmcoc2libGluZykpIHsKKyAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJl
ciA9IHNpYmxpbmctPnJlbmRlcmVyKCk7CisgICAgICAgIGlmIChyZW5kZXJlciAmJiAhaXNSZW5k
ZXJlclJlcGFyZW50ZWQoKnJlbmRlcmVyKSkKKyAgICAgICAgICAgIHJldHVybiByZW5kZXJlcjsK
KyAgICB9CisgICAgaWYgKFBzZXVkb0VsZW1lbnQqIGFmdGVyID0gcGFyZW50UmVuZGVyZXIuZWxl
bWVudCgpLT5hZnRlclBzZXVkb0VsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGFmdGVyLT5yZW5k
ZXJlcigpOworICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIFJlbmRlclRyZWVQb3NpdGlv
bjo6aXNSZW5kZXJlclJlcGFyZW50ZWQoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKK3sK
KyAgICBpZiAoIXJlbmRlcmVyLm5vZGUoKS0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgaWYgKHJlbmRlcmVyLnN0eWxlKCkuaGFzRmxvd0ludG8oKSkKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9SZW5kZXJUcmVlUG9zaXRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1JlbmRlclRyZWVQb3NpdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmYjE1MTNmNGRhZTBmZWM5
Y2E3NDE0NWRmNmZjM2M2NWEyZmU5NTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9SZW5kZXJUcmVlUG9zaXRpb24uaApAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBSZW5kZXJUcmVlUG9zaXRpb25faAorI2RlZmluZSBSZW5kZXJUcmVlUG9zaXRp
b25faAorCisjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlJlbmRlclRleHQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSZW5kZXJUcmVlUG9zaXRpb24gewor
cHVibGljOgorICAgIGV4cGxpY2l0IFJlbmRlclRyZWVQb3NpdGlvbihSZW5kZXJWaWV3Jik7Cisg
ICAgZXhwbGljaXQgUmVuZGVyVHJlZVBvc2l0aW9uKFJlbmRlckVsZW1lbnQmIHBhcmVudCk7Cisg
ICAgUmVuZGVyVHJlZVBvc2l0aW9uKFJlbmRlckVsZW1lbnQmIHBhcmVudCwgUmVuZGVyT2JqZWN0
KiBuZXh0U2libGluZyk7CisKKyAgICBSZW5kZXJFbGVtZW50JiBwYXJlbnQoKSB7IHJldHVybiBt
X3BhcmVudDsgfQorICAgIGNvbnN0IFJlbmRlckVsZW1lbnQmIHBhcmVudCgpIGNvbnN0IHsgcmV0
dXJuIG1fcGFyZW50OyB9CisKKyAgICB2b2lkIGluc2VydChSZW5kZXJPYmplY3QmKTsKKyAgICBi
b29sIGNhbkluc2VydChSZW5kZXJFbGVtZW50JikgY29uc3Q7CisgICAgYm9vbCBjYW5JbnNlcnQo
UmVuZGVyVGV4dCYpIGNvbnN0OworCisgICAgdm9pZCBjb21wdXRlTmV4dFNpYmxpbmcoY29uc3Qg
Tm9kZSYpOworICAgIHZvaWQgaW52YWxpZGF0ZU5leHRTaWJsaW5nKGNvbnN0IFJlbmRlck9iamVj
dCYpOworCisgICAgc3RhdGljIFJlbmRlck9iamVjdCogcHJldmlvdXNTaWJsaW5nUmVuZGVyZXIo
Y29uc3QgVGV4dCYpOworICAgIHN0YXRpYyBSZW5kZXJPYmplY3QqIG5leHRTaWJsaW5nUmVuZGVy
ZXIoY29uc3QgTm9kZSYsIGNvbnN0IFJlbmRlckVsZW1lbnQmIHBhcmVudFJlbmRlcmVyKTsKKyAg
ICBzdGF0aWMgYm9vbCBpc1JlbmRlcmVyUmVwYXJlbnRlZChjb25zdCBSZW5kZXJPYmplY3QmKTsK
KworcHJpdmF0ZToKKyAgICBSZW5kZXJFbGVtZW50JiBtX3BhcmVudDsKKyAgICBSZW5kZXJPYmpl
Y3QqIG1fbmV4dFNpYmxpbmcgeyBudWxscHRyIH07CisgICAgYm9vbCBtX2hhc1ZhbGlkTmV4dFNp
YmxpbmcgeyBmYWxzZSB9OworI2lmICFBU1NFUlRfRElTQUJMRUQKKyAgICB1bnNpZ25lZCBtX2Fz
c2VydGlvbkxpbWl0Q291bnRlciB7IDAgfTsKKyNlbmRpZgorfTsKKworCitpbmxpbmUgYm9vbCBS
ZW5kZXJUcmVlUG9zaXRpb246OmNhbkluc2VydChSZW5kZXJFbGVtZW50JiByZW5kZXJlcikgY29u
c3QKK3sKKyAgICBBU1NFUlQoIXJlbmRlcmVyLnBhcmVudCgpKTsKKyAgICByZXR1cm4gbV9wYXJl
bnQuaXNDaGlsZEFsbG93ZWQocmVuZGVyZXIsIHJlbmRlcmVyLnN0eWxlKCkpOworfQorCitpbmxp
bmUgYm9vbCBSZW5kZXJUcmVlUG9zaXRpb246OmNhbkluc2VydChSZW5kZXJUZXh0JiByZW5kZXJl
cikgY29uc3QKK3sKKyAgICBBU1NFUlQoIXJlbmRlcmVyLnBhcmVudCgpKTsKKyAgICByZXR1cm4g
bV9wYXJlbnQuaXNDaGlsZEFsbG93ZWQocmVuZGVyZXIsIG1fcGFyZW50LnN0eWxlKCkpOworfQor
CitpbmxpbmUgdm9pZCBSZW5kZXJUcmVlUG9zaXRpb246Omluc2VydChSZW5kZXJPYmplY3QmIHJl
bmRlcmVyKQoreworICAgIEFTU0VSVChtX2hhc1ZhbGlkTmV4dFNpYmxpbmcpOworICAgIG1fcGFy
ZW50LmFkZENoaWxkKCZyZW5kZXJlciwgbV9uZXh0U2libGluZyk7Cit9CisKK30KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVUcmVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuY3BwCmluZGV4IDA3ZWZhNWY5
NzVlZWUyZGM5MjI0Yzk3ZWI0YzE5ODMxZDk5ZjNmY2QuLjMyNGNmYmE4MGNmZDJhNjFlYzY3N2Q5
NDMyMGM2NTU5OWE4NzVkN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
UmVzb2x2ZVRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZVRy
ZWUuY3BwCkBAIC00Miw3ICs0Miw3IEBACiAjaW5jbHVkZSAiUmVuZGVyRnVsbFNjcmVlbi5oIgog
I2luY2x1ZGUgIlJlbmRlck5hbWVkRmxvd1RocmVhZC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQu
aCIKLSNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCisjaW5jbHVkZSAiUmVuZGVyVHJlZVBvc2l0aW9u
LmgiCiAjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkU2No
ZWR1bGVyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTYyLDMxICs2Miw2IEBAIG5hbWVz
cGFjZSBTdHlsZSB7CiAKIGVudW0gRGV0YWNoVHlwZSB7IE5vcm1hbERldGFjaCwgUmVhdHRhY2hE
ZXRhY2ggfTsKIAotY2xhc3MgUmVuZGVyVHJlZVBvc2l0aW9uIHsKLXB1YmxpYzoKLSAgICBleHBs
aWNpdCBSZW5kZXJUcmVlUG9zaXRpb24oUmVuZGVyVmlldyYpOwotICAgIGV4cGxpY2l0IFJlbmRl
clRyZWVQb3NpdGlvbihSZW5kZXJFbGVtZW50JiBwYXJlbnQpOwotICAgIFJlbmRlclRyZWVQb3Np
dGlvbihSZW5kZXJFbGVtZW50JiBwYXJlbnQsIFJlbmRlck9iamVjdCogbmV4dFNpYmxpbmcpOwot
Ci0gICAgUmVuZGVyRWxlbWVudCYgcGFyZW50KCkgeyByZXR1cm4gbV9wYXJlbnQ7IH0KLSAgICBj
b25zdCBSZW5kZXJFbGVtZW50JiBwYXJlbnQoKSBjb25zdCB7IHJldHVybiBtX3BhcmVudDsgfQot
Ci0gICAgdm9pZCBpbnNlcnQoUmVuZGVyT2JqZWN0Jik7Ci0gICAgYm9vbCBjYW5JbnNlcnQoUmVu
ZGVyRWxlbWVudCYpIGNvbnN0OwotICAgIGJvb2wgY2FuSW5zZXJ0KFJlbmRlclRleHQmKSBjb25z
dDsKLQotICAgIHZvaWQgY29tcHV0ZU5leHRTaWJsaW5nKGNvbnN0IE5vZGUmKTsKLSAgICB2b2lk
IGludmFsaWRhdGVOZXh0U2libGluZyhjb25zdCBSZW5kZXJPYmplY3QmKTsKLQotcHJpdmF0ZToK
LSAgICBSZW5kZXJFbGVtZW50JiBtX3BhcmVudDsKLSAgICBSZW5kZXJPYmplY3QqIG1fbmV4dFNp
Ymxpbmc7Ci0gICAgYm9vbCBtX2hhc1ZhbGlkTmV4dFNpYmxpbmc7Ci0jaWYgIUFTU0VSVF9ESVNB
QkxFRAotICAgIHVuc2lnbmVkIG1fYXNzZXJ0aW9uTGltaXRDb3VudGVyOwotI2VuZGlmCi19Owot
CiBzdGF0aWMgdm9pZCBhdHRhY2hSZW5kZXJUcmVlKEVsZW1lbnQmLCBSZW5kZXJTdHlsZSYgaW5o
ZXJpdGVkU3R5bGUsIFJlbmRlclRyZWVQb3NpdGlvbiYsIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+
KTsKIHN0YXRpYyB2b2lkIGF0dGFjaFRleHRSZW5kZXJlcihUZXh0JiwgUmVuZGVyVHJlZVBvc2l0
aW9uJik7CiBzdGF0aWMgdm9pZCBkZXRhY2hSZW5kZXJUcmVlKEVsZW1lbnQmLCBEZXRhY2hUeXBl
KTsKQEAgLTE1MCwxMDAgKzEyNSw2IEBAIENoYW5nZSBkZXRlcm1pbmVDaGFuZ2UoY29uc3QgUmVu
ZGVyU3R5bGUmIHMxLCBjb25zdCBSZW5kZXJTdHlsZSYgczIpCiAgICAgcmV0dXJuIE5vQ2hhbmdl
OwogfQogCi1zdGF0aWMgYm9vbCBpc1JlbmRlcmVyUmVwYXJlbnRlZChjb25zdCBSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyKQotewotICAgIGlmICghcmVuZGVyZXItPm5vZGUoKS0+aXNFbGVtZW50Tm9k
ZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKHJlbmRlcmVyLT5zdHlsZSgpLmhh
c0Zsb3dJbnRvKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBmYWxzZTsKLX0K
LQotc3RhdGljIFJlbmRlck9iamVjdCogbmV4dFNpYmxpbmdSZW5kZXJlcihjb25zdCBOb2RlJiBu
b2RlLCBjb25zdCBSZW5kZXJFbGVtZW50JiBwYXJlbnRSZW5kZXJlcikKLXsKLSAgICBpZiAoIXBh
cmVudFJlbmRlcmVyLmVsZW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgaWYg
KG5vZGUuaXNBZnRlclBzZXVkb0VsZW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgTm9kZSogc2libGluZyA9IG5vZGUuaXNCZWZvcmVQc2V1ZG9FbGVtZW50KCkgPyBOb2RlUmVu
ZGVyaW5nVHJhdmVyc2FsOjpmaXJzdENoaWxkKHBhcmVudFJlbmRlcmVyLmVsZW1lbnQoKSkgOiBO
b2RlUmVuZGVyaW5nVHJhdmVyc2FsOjpuZXh0U2libGluZygmbm9kZSk7Ci0gICAgZm9yICg7IHNp
Ymxpbmc7IHNpYmxpbmcgPSBOb2RlUmVuZGVyaW5nVHJhdmVyc2FsOjpuZXh0U2libGluZyhzaWJs
aW5nKSkgewotICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gc2libGluZy0+cmVuZGVy
ZXIoKTsKLSAgICAgICAgaWYgKHJlbmRlcmVyICYmICFpc1JlbmRlcmVyUmVwYXJlbnRlZChyZW5k
ZXJlcikpCi0gICAgICAgICAgICByZXR1cm4gcmVuZGVyZXI7Ci0gICAgfQotICAgIGlmIChQc2V1
ZG9FbGVtZW50KiBhZnRlciA9IHBhcmVudFJlbmRlcmVyLmVsZW1lbnQoKS0+YWZ0ZXJQc2V1ZG9F
bGVtZW50KCkpCi0gICAgICAgIHJldHVybiBhZnRlci0+cmVuZGVyZXIoKTsKLSAgICByZXR1cm4g
bnVsbHB0cjsKLX0KLQotUmVuZGVyVHJlZVBvc2l0aW9uOjpSZW5kZXJUcmVlUG9zaXRpb24oUmVu
ZGVyVmlldyYgcm9vdCkKLSAgICA6IG1fcGFyZW50KHJvb3QpCi0gICAgLCBtX25leHRTaWJsaW5n
KG51bGxwdHIpCi0gICAgLCBtX2hhc1ZhbGlkTmV4dFNpYmxpbmcodHJ1ZSkKLSNpZiAhQVNTRVJU
X0RJU0FCTEVECi0gICAgLCBtX2Fzc2VydGlvbkxpbWl0Q291bnRlcigwKQotI2VuZGlmCi17Ci19
Ci0KLVJlbmRlclRyZWVQb3NpdGlvbjo6UmVuZGVyVHJlZVBvc2l0aW9uKFJlbmRlckVsZW1lbnQm
IHBhcmVudCkKLSAgICA6IG1fcGFyZW50KHBhcmVudCkKLSAgICAsIG1fbmV4dFNpYmxpbmcobnVs
bHB0cikKLSAgICAsIG1faGFzVmFsaWROZXh0U2libGluZyhmYWxzZSkKLSNpZiAhQVNTRVJUX0RJ
U0FCTEVECi0gICAgLCBtX2Fzc2VydGlvbkxpbWl0Q291bnRlcigwKQotI2VuZGlmCi17Ci19Ci0K
LVJlbmRlclRyZWVQb3NpdGlvbjo6UmVuZGVyVHJlZVBvc2l0aW9uKFJlbmRlckVsZW1lbnQmIHBh
cmVudCwgUmVuZGVyT2JqZWN0KiBuZXh0U2libGluZykKLSAgICA6IG1fcGFyZW50KHBhcmVudCkK
LSAgICAsIG1fbmV4dFNpYmxpbmcobmV4dFNpYmxpbmcpCi0gICAgLCBtX2hhc1ZhbGlkTmV4dFNp
YmxpbmcodHJ1ZSkKLSNpZiAhQVNTRVJUX0RJU0FCTEVECi0gICAgLCBtX2Fzc2VydGlvbkxpbWl0
Q291bnRlcigwKQotI2VuZGlmCi17Ci19Ci0KLWJvb2wgUmVuZGVyVHJlZVBvc2l0aW9uOjpjYW5J
bnNlcnQoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKCFyZW5k
ZXJlci5wYXJlbnQoKSk7Ci0gICAgcmV0dXJuIG1fcGFyZW50LmlzQ2hpbGRBbGxvd2VkKHJlbmRl
cmVyLCByZW5kZXJlci5zdHlsZSgpKTsKLX0KLQotYm9vbCBSZW5kZXJUcmVlUG9zaXRpb246OmNh
bkluc2VydChSZW5kZXJUZXh0JiByZW5kZXJlcikgY29uc3QKLXsKLSAgICBBU1NFUlQoIXJlbmRl
cmVyLnBhcmVudCgpKTsKLSAgICByZXR1cm4gbV9wYXJlbnQuaXNDaGlsZEFsbG93ZWQocmVuZGVy
ZXIsIG1fcGFyZW50LnN0eWxlKCkpOwotfQotCi12b2lkIFJlbmRlclRyZWVQb3NpdGlvbjo6aW5z
ZXJ0KFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCi17Ci0gICAgQVNTRVJUKG1faGFzVmFsaWROZXh0
U2libGluZyk7Ci0gICAgbV9wYXJlbnQuYWRkQ2hpbGQoJnJlbmRlcmVyLCBtX25leHRTaWJsaW5n
KTsKLX0KLQotdm9pZCBSZW5kZXJUcmVlUG9zaXRpb246OmNvbXB1dGVOZXh0U2libGluZyhjb25z
dCBOb2RlJiBub2RlKQotewotICAgIEFTU0VSVCghbm9kZS5yZW5kZXJlcigpKTsKLSAgICBpZiAo
bV9oYXNWYWxpZE5leHRTaWJsaW5nKSB7Ci0gICAgICAgIC8vIFN0b3AgdmFsaWRhdGluZyBhdCBz
b21lIHBvaW50IHNvIHRoZSBhc3NlcnQgZG9lc24ndCBtYWtlIHVzIE8oTl4yKSBvbiBkZWJ1ZyBi
dWlsZHMuCi0gICAgICAgIEFTU0VSVChtX3BhcmVudC5pc1JlbmRlclZpZXcoKSB8fCArK21fYXNz
ZXJ0aW9uTGltaXRDb3VudGVyID4gMjAgfHwgbmV4dFNpYmxpbmdSZW5kZXJlcihub2RlLCBtX3Bh
cmVudCkgPT0gbV9uZXh0U2libGluZyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgbV9u
ZXh0U2libGluZyA9IG5leHRTaWJsaW5nUmVuZGVyZXIobm9kZSwgbV9wYXJlbnQpOwotICAgIG1f
aGFzVmFsaWROZXh0U2libGluZyA9IHRydWU7Ci19Ci0KLXZvaWQgUmVuZGVyVHJlZVBvc2l0aW9u
OjppbnZhbGlkYXRlTmV4dFNpYmxpbmcoY29uc3QgUmVuZGVyT2JqZWN0JiBzaWJsaW5nUmVuZGVy
ZXIpCi17Ci0gICAgaWYgKCFtX2hhc1ZhbGlkTmV4dFNpYmxpbmcpCi0gICAgICAgIHJldHVybjsK
LSAgICBpZiAobV9uZXh0U2libGluZyA9PSAmc2libGluZ1JlbmRlcmVyKQotICAgICAgICBtX2hh
c1ZhbGlkTmV4dFNpYmxpbmcgPSBmYWxzZTsKLX0KLQogc3RhdGljIGJvb2wgc2hvdWxkQ3JlYXRl
UmVuZGVyZXIoY29uc3QgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgUmVuZGVyRWxlbWVudCYgcGFy
ZW50UmVuZGVyZXIpCiB7CiAgICAgaWYgKCFlbGVtZW50LmRvY3VtZW50KCkuc2hvdWxkQ3JlYXRl
UmVuZGVyZXJzKCkpCkBAIC0zMDMsNyArMTg0LDcgQEAgc3RhdGljIHZvaWQgY3JlYXRlUmVuZGVy
ZXJJZk5lZWRlZChFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJTdHlsZSYgaW5oZXJpdGVkU3R5bGUK
ICAgICAgICAgPyBSZW5kZXJUcmVlUG9zaXRpb24oKnBhcmVudEZsb3dSZW5kZXJlciwgcGFyZW50
Rmxvd1JlbmRlcmVyLT5uZXh0UmVuZGVyZXJGb3JFbGVtZW50KGVsZW1lbnQpKQogICAgICAgICA6
IHJlbmRlclRyZWVQb3NpdGlvbjsKIAotICAgIFJlbmRlckVsZW1lbnQqIG5ld1JlbmRlcmVyID0g
ZWxlbWVudC5jcmVhdGVFbGVtZW50UmVuZGVyZXIoc3R5bGUucmVsZWFzZU5vbk51bGwoKSkubGVh
a1B0cigpOworICAgIFJlbmRlckVsZW1lbnQqIG5ld1JlbmRlcmVyID0gZWxlbWVudC5jcmVhdGVF
bGVtZW50UmVuZGVyZXIoc3R5bGUucmVsZWFzZU5vbk51bGwoKSwgaW5zZXJ0aW9uUG9zaXRpb24p
LmxlYWtQdHIoKTsKICAgICBpZiAoIW5ld1JlbmRlcmVyKQogICAgICAgICByZXR1cm47CiAgICAg
aWYgKCFpbnNlcnRpb25Qb3NpdGlvbi5jYW5JbnNlcnQoKm5ld1JlbmRlcmVyKSkgewpAQCAtMzM2
LDIwICsyMTcsNiBAQCBzdGF0aWMgdm9pZCBjcmVhdGVSZW5kZXJlcklmTmVlZGVkKEVsZW1lbnQm
IGVsZW1lbnQsIFJlbmRlclN0eWxlJiBpbmhlcml0ZWRTdHlsZQogICAgIGluc2VydGlvblBvc2l0
aW9uLmluc2VydCgqbmV3UmVuZGVyZXIpOwogfQogCi1zdGF0aWMgUmVuZGVyT2JqZWN0KiBwcmV2
aW91c1NpYmxpbmdSZW5kZXJlcihjb25zdCBUZXh0JiB0ZXh0Tm9kZSkKLXsKLSAgICBpZiAodGV4
dE5vZGUucmVuZGVyZXIoKSkKLSAgICAgICAgcmV0dXJuIHRleHROb2RlLnJlbmRlcmVyKCktPnBy
ZXZpb3VzU2libGluZygpOwotICAgIGZvciAoTm9kZSogc2libGluZyA9IE5vZGVSZW5kZXJpbmdU
cmF2ZXJzYWw6OnByZXZpb3VzU2libGluZygmdGV4dE5vZGUpOyBzaWJsaW5nOyBzaWJsaW5nID0g
Tm9kZVJlbmRlcmluZ1RyYXZlcnNhbDo6cHJldmlvdXNTaWJsaW5nKHNpYmxpbmcpKSB7Ci0gICAg
ICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBzaWJsaW5nLT5yZW5kZXJlcigpOwotICAgICAg
ICBpZiAocmVuZGVyZXIgJiYgIWlzUmVuZGVyZXJSZXBhcmVudGVkKHJlbmRlcmVyKSkKLSAgICAg
ICAgICAgIHJldHVybiByZW5kZXJlcjsKLSAgICB9Ci0gICAgaWYgKFBzZXVkb0VsZW1lbnQqIGJl
Zm9yZSA9IHRleHROb2RlLnBhcmVudEVsZW1lbnQoKS0+YmVmb3JlUHNldWRvRWxlbWVudCgpKQot
ICAgICAgICByZXR1cm4gYmVmb3JlLT5yZW5kZXJlcigpOwotICAgIHJldHVybiBudWxscHRyOwot
fQotCiBzdGF0aWMgdm9pZCBpbnZhbGlkYXRlV2hpdGVzcGFjZU9ubHlUZXh0U2libGluZ3NBZnRl
ckF0dGFjaElmTmVlZGVkKE5vZGUmIGN1cnJlbnQpCiB7CiAgICAgaWYgKGlzPEluc2VydGlvblBv
aW50PihjdXJyZW50KSkKQEAgLTM2MSw3ICsyMjgsNyBAQCBzdGF0aWMgdm9pZCBpbnZhbGlkYXRl
V2hpdGVzcGFjZU9ubHlUZXh0U2libGluZ3NBZnRlckF0dGFjaElmTmVlZGVkKE5vZGUmIGN1cnJl
bgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAoaXM8RWxlbWVudD4oKnNpYmxpbmcp
KSB7CiAgICAgICAgICAgICAvLyBUZXh0IHJlbmRlcmVycyBiZXlvbmQgcmVuZGVyZWQgZWxlbWVu
dHMgY2FuJ3QgYmUgYWZmZWN0ZWQuCi0gICAgICAgICAgICBpZiAoIXNpYmxpbmctPnJlbmRlcmVy
KCkgfHwgaXNSZW5kZXJlclJlcGFyZW50ZWQoc2libGluZy0+cmVuZGVyZXIoKSkpCisgICAgICAg
ICAgICBpZiAoIXNpYmxpbmctPnJlbmRlcmVyKCkgfHwgUmVuZGVyVHJlZVBvc2l0aW9uOjppc1Jl
bmRlcmVyUmVwYXJlbnRlZCgqc2libGluZy0+cmVuZGVyZXIoKSkpCiAgICAgICAgICAgICAgICAg
Y29udGludWU7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTM5Myw3ICsyNjAs
NyBAQCBzdGF0aWMgYm9vbCB0ZXh0UmVuZGVyZXJJc05lZWRlZChjb25zdCBUZXh0JiB0ZXh0Tm9k
ZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJgogICAgIGlmIChwYXJlbnRSZW5kZXJlci5zdHls
ZSgpLnByZXNlcnZlTmV3bGluZSgpKSAvLyBwcmUvcHJlLXdyYXAvcHJlLWxpbmUgYWx3YXlzIG1h
a2UgcmVuZGVyZXJzLgogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIFJlbmRlck9iamVjdCog
cHJldmlvdXNSZW5kZXJlciA9IHByZXZpb3VzU2libGluZ1JlbmRlcmVyKHRleHROb2RlKTsKKyAg
ICBSZW5kZXJPYmplY3QqIHByZXZpb3VzUmVuZGVyZXIgPSBSZW5kZXJUcmVlUG9zaXRpb246OnBy
ZXZpb3VzU2libGluZ1JlbmRlcmVyKHRleHROb2RlKTsKICAgICBpZiAocHJldmlvdXNSZW5kZXJl
ciAmJiBwcmV2aW91c1JlbmRlcmVyLT5pc0JSKCkpIC8vIDxzcGFuPjxici8+IDxici8+PC9zcGFu
PgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIApAQCAtNDA4LDcgKzI3NSw3IEBAIHN0
YXRpYyBib29sIHRleHRSZW5kZXJlcklzTmVlZGVkKGNvbnN0IFRleHQmIHRleHROb2RlLCBjb25z
dCBSZW5kZXJUcmVlUG9zaXRpb24mCiAgICAgICAgIFJlbmRlck9iamVjdCogZmlyc3QgPSBwYXJl
bnRSZW5kZXJlci5maXJzdENoaWxkKCk7CiAgICAgICAgIHdoaWxlIChmaXJzdCAmJiBmaXJzdC0+
aXNGbG9hdGluZ09yT3V0T2ZGbG93UG9zaXRpb25lZCgpKQogICAgICAgICAgICAgZmlyc3QgPSBm
aXJzdC0+bmV4dFNpYmxpbmcoKTsKLSAgICAgICAgUmVuZGVyT2JqZWN0KiBuZXh0UmVuZGVyZXIg
PSBuZXh0U2libGluZ1JlbmRlcmVyKHRleHROb2RlLCBwYXJlbnRSZW5kZXJlcik7CisgICAgICAg
IFJlbmRlck9iamVjdCogbmV4dFJlbmRlcmVyID0gUmVuZGVyVHJlZVBvc2l0aW9uOjpuZXh0U2li
bGluZ1JlbmRlcmVyKHRleHROb2RlLCBwYXJlbnRSZW5kZXJlcik7CiAgICAgICAgIGlmICghZmly
c3QgfHwgbmV4dFJlbmRlcmVyID09IGZpcnN0KSB7CiAgICAgICAgICAgICAvLyBXaGl0ZXNwYWNl
IGF0IHRoZSBzdGFydCBvZiBhIGJsb2NrIGp1c3QgZ29lcyBhd2F5LiBEb24ndCBldmVuIG1ha2Ug
YSByZW5kZXIgb2JqZWN0IGZvciB0aGlzIHRleHQuCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcAppbmRleCBmYTMxNzJmMWJkNmY4MTYzODk4MTdl
MDQ3ZWFkZTI0NTlmZDQ2ZmI3Li4xYTI4NDZiMGVjYmU0NGZjMzRlMjM2MGE2ZTIxMDMyNTM5M2M5
YzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKQEAgLTEwNSw3ICsxMDUsNyBAQCB2
b2lkIFNWR0FFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJOYW1lKQogICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChh
dHRyTmFtZSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdBRWxlbWVudDo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBTVkdBRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5k
ZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICBpZiAo
cGFyZW50Tm9kZSgpICYmIHBhcmVudE5vZGUoKS0+aXNTVkdFbGVtZW50KCkgJiYgZG93bmNhc3Q8
U1ZHRWxlbWVudD4oKnBhcmVudE5vZGUoKSkuaXNUZXh0Q29udGVudCgpKQogICAgICAgICByZXR1
cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHSW5saW5lPigqdGhpcywgV1RGOjptb3ZlKHN0eWxl
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oCmluZGV4IDI5NDY1ZGRjZjExMzFjNjYwMWQ4NmVi
ZDA2NGY0YmU0YWFkMDhlNmMuLjViYjEyMmI3MjI3NGUwZTM4YjIwZWZlN2NiNzc4YzgxMmU0ZTRh
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oCkBAIC00Niw3ICs0Niw3IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFs
IFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRl
clN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJU
cmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVh
dGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZv
aWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQWx0R2x5cGhFbGVtZW50LmNwcAppbmRleCBlNzQ0MTVkOWJiOTFhMmU2ZWI5MjFiNWUx
MWQ1YjFmNjMxMWFjYzFjLi4wN2NlMzI5MTdhNWM2N2I2MDViNDUyNTk4N2IwN2QwNzI2ZDVkODg3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmNwcApAQCAtODIsNyAr
ODIsNyBAQCBib29sIFNWR0FsdEdseXBoRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJl
cihjb25zdCBOb2RlJiBjaGlsZCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVJlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBTVkdBbHRHbHlwaEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
U1ZHQWx0R2x5cGhFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVh
dGVSZW5kZXJlcjxSZW5kZXJTVkdUU3Bhbj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oCmluZGV4IGZjY2M0MTUzMjcyNGVh
NzdlYWFiMjE4N2JhNWIxYTRhZDAxNmVhNDEuLjE2ZjYwNmQ4Yjk5MjdiYjI0ZGNiMjFkYTJiOTU4
MTZlNDdlNDRhMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmgKQEAg
LTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBTVkdBbHRHbHlwaEVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYm
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRp
b24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJl
cihjb25zdCBOb2RlJikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBCRUdJTl9ERUNMQVJFX0FOSU1B
VEVEX1BST1BFUlRJRVMoU1ZHQWx0R2x5cGhFbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Np
cmNsZUVsZW1lbnQuY3BwCmluZGV4IDFiODk5ZjljNzJmZWMwNGM4MzE1YjMxMWUzNzdhNzIwNjQ3
MTU4YzUuLjRmZTI3NWE1YTczYjdiMzVlYTdiOTkwZGVmMmNkMGVmOTRiYjkxMzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAKQEAgLTk4LDcgKzk4LDcgQEAgdm9pZCBT
VkdDaXJjbGVFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJOYW1lKQogICAgIH0KIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0NpcmNs
ZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUp
CitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHQ2lyY2xlRWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHRWxsaXBzZT4oKnRo
aXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0NpcmNsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50
LmgKaW5kZXggNjg2ZmJjYTAzZTMyNzkwOTJjN2I4YzFjZTAxYTI2ZGE2Yjc1ZTMzZS4uYmJkZGQy
YTkyMDIxNDcxOTg0MGJmYTIwYjQ5ZjNhMGVkZTAyY2M0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Q2lyY2xlRWxlbWVudC5oCkBAIC00Myw3ICs0Myw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFs
IGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAgQkVHSU5f
REVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0NpcmNsZUVsZW1lbnQpCiAgICAgICAgIERF
Q0xBUkVfQU5JTUFURURfTEVOR1RIKEN4LCBjeCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQ
YXRoRWxlbWVudC5jcHAKaW5kZXggN2Y2YmVjOTVkYmY2OGVkYjVkYmVlMGU0NmM1NzQ5OGYyN2Rk
NmQ1MC4uNjM2ZjkxNDlkZmNhNjUyOTg2NzE0MWY4Mzk2NWViOTA2N2UwMzdiYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCB2
b2lkIFNWR0NsaXBQYXRoRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdl
JiBjaGFuZ2UpCiAgICAgICAgIG9iamVjdC0+c2V0TmVlZHNMYXlvdXQoKTsKIH0KIAotUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IFNWR0NsaXBQYXRoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBT
VkdDbGlwUGF0aEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+
JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0
ZVJlbmRlcmVyPFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcj4oKnRoaXMsIFdURjo6bW92ZShzdHls
ZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oCmluZGV4IGQzYmE2
ZmQ0NzNkOTcwNWY2ZjgxNjA4MDVmNWE2ODZlZDY0NzIxZGQuLjM5NjNmYTBjOWM3ZGNhNzAxY2U3
MGZlNTQ2NTk3MDIwYjdmMjg4MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdD
bGlwUGF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVt
ZW50LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIG92ZXJyaWRlOwogCi0g
ICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29u
c3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKICAgICBCRUdJTl9ERUNMQVJFX0FO
SU1BVEVEX1BST1BFUlRJRVMoU1ZHQ2xpcFBhdGhFbGVtZW50KQogICAgICAgICBERUNMQVJFX0FO
SU1BVEVEX0VOVU1FUkFUSU9OKENsaXBQYXRoVW5pdHMsIGNsaXBQYXRoVW5pdHMsIFNWR1VuaXRU
eXBlczo6U1ZHVW5pdFR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVm
c0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmNwcAppbmRl
eCA4M2UwZDZmOTAyMmI0NzBjNzQ4MGE4NzlmNWRjMjU5NDNkODViNTlkLi44N2Q4Njk2MDdlMzQ0
ODU4MDg5MzlmODM3YTZlMmIyMDk1YTNjYTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRGVmc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEZWZzRWxl
bWVudC5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgYm9vbCBTVkdEZWZzRWxlbWVudDo6aXNWYWxpZCgp
IGNvbnN0CiAgICAgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7CiB9CiAKLVJlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBTVkdEZWZzRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxS
ZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdEZWZzRWxl
bWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29u
c3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVu
ZGVyU1ZHSGlkZGVuQ29udGFpbmVyPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5oCmluZGV4IDU4Y2M4ODdmZjdkY2E1NGViZGJhZjg1ZDM2
ZGMxN2I4YjY0ZDQ5ZWQuLjlmYTQ0MDE0MTJhMGYyMTEwY2E4NjM4MjA3MzU3ZTJiMjhjZTc5NDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5oCkBAIC0zOCw3ICszOCw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9
CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYm
LCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIAogICAgIEJFR0lOX0RFQ0xB
UkVfQU5JTUFURURfUFJPUEVSVElFUyhTVkdEZWZzRWxlbWVudCkKICAgICAgICAgREVDTEFSRV9B
TklNQVRFRF9CT09MRUFOKEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcAppbmRl
eCBkMzMzODQxOGQ4MzhiZWFkOGE4MzBjYjc3NWJlYTJmMmFlNzhhNzU5Li5hZTM2OTYxZmQxOTJj
Zjg3ZWVlMzNjZDYwMDkzMzYxOGFmMDUxYjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxp
cHNlRWxlbWVudC5jcHAKQEAgLTEwMCw3ICsxMDAsNyBAQCB2b2lkIFNWR0VsbGlwc2VFbGVtZW50
OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAg
IFNWR0dyYXBoaWNzRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CiB9CiAK
LVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdFbGxpcHNlRWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBTVkdFbGxpcHNlRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJT
dHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4g
Y3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHRWxsaXBzZT4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaAppbmRleCAyZGY0MWVkNmYw
MTM4MDJhYTc3MmVkNTliYzE5YWJjZTczOTJiNTFhLi5mNjJkMzJkY2VhOWRjYzljMjA0MjE0YTdk
NDhhYzkxZTYwNDczNzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBz
ZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaApA
QCAtNDMsNyArNDMsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIHNlbGZIYXNSZWxh
dGl2ZUxlbmd0aHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9OwogCi0gICAgdmly
dHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxS
ZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVu
ZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKICAgICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVE
X1BST1BFUlRJRVMoU1ZHRWxsaXBzZUVsZW1lbnQpCiAgICAgICAgIERFQ0xBUkVfQU5JTUFURURf
TEVOR1RIKEN4LCBjeCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAppbmRl
eCBmZTY1Nzk4ZjA2MjM2NjQ2MGY1Yjg1NTRlYTBkZjI4YWU5MmVhMzZjLi4yYTdmYjNjMTg1ZTlk
MjJlNDJkNThiOGZlYWRlZTE5MDY4MjlkZjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRl
ckVsZW1lbnQuY3BwCkBAIC0xODMsNyArMTgzLDcgQEAgdm9pZCBTVkdGaWx0ZXJFbGVtZW50Ojpj
aGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKICAgICAgICAgb2JqZWN0
LT5zZXROZWVkc0xheW91dCgpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHRmls
dGVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHls
ZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdGaWx0ZXJFbGVtZW50OjpjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9z
aXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdSZXNvdXJjZUZp
bHRlcj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0
ZXJFbGVtZW50LmgKaW5kZXggNTY1NmUyM2NmNjhjYjU1OWZiMDg0NjcwY2E4ZjQzYjk1NTkzZDFk
NC4uNmZkNmMyZTcwNGI2ZTk4ZDJlYmMwY2Q5NmRhNWRjM2Q3ZjU3MTA2MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCkBAIC01Myw3ICs1Myw3IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFu
Z2UmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25z
dCBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcAppbmRl
eCAwNzBmN2QwMWFiOTZiOWIxN2JjYzhhZWNhOGMwMTNiMGNlMWI1OTczLi5kODNlMDFmZTM4Njcw
ZWJiMzE3YmRiNmYwZmQzMDQ5MDdkNzAxZmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcApAQCAt
MTM3LDcgKzEzNyw3IEBAIHZvaWQgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVz
OjpzZXRTdGFuZGFyZEF0dHJpYnV0ZXMoRmlsdGVyRWZmZWN0KiBmCiAgICAgICAgIGZpbHRlckVm
ZmVjdC0+c2V0SGFzSGVpZ2h0KHRydWUpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNW
R0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6Y3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsK
ICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRp
dmU+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaAppbmRleCAz
MWJlNTE0YjQwZGU1OWU4MDEwY2E5NjFmM2NjYWM4MWE0NjM2YjgwLi4zYzg2YTRkNGM0NjhhMjVl
YjU5NzIwOGFhYjc3MzFjOGFkZDVlZDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oCkBAIC01Nyw3ICs1
Nyw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzRmlsdGVyRWZm
ZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHls
ZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBv
c2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29u
c3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRD
cmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAK
aW5kZXggNjI0NmIyODE3YWNmNjIwNDUyYjA5ZTY3YTA4N2RiNDcwODYwMWMxZi4uZWEzNTc5M2M3
NDg0Mjk5ZmNlYTVhMGY3NzliZjlmMjg5YmQwM2Y2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCkBAIC0xMjIsNyArMTIyLDcgQEAgdm9pZCBT
VkdGb3JlaWduT2JqZWN0RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgUmVuZGVyU1ZHUmVzb3VyY2U6Om1hcmtGb3JMYXlv
dXRBbmRQYXJlbnRSZXNvdXJjZUludmFsaWRhdGlvbigqcmVuZGVyZXIpOwogfQogCi1SZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0
dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q+KCp0aGlzLCBXVEY6Om1v
dmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWdu
T2JqZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50LmgKaW5kZXggNWIwZjJlZTZiMzM1NmU4OTI1MmJiMTY3NDUwNzY4MWJhNjEzYzE5ZC4uNmM3
OTRiZjJlNTVkMDk0ZTdjNDBhZmMxMzIxY2UwMWM2MWIxM2U3YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHJpdmF0
ZToKIAogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxl
Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIo
Y29uc3QgTm9kZSYpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92
ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdHRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuY3Bw
CmluZGV4IDAzYWU4ZjM0MGU0NWIwNzMwZDc1NTc2OTViZWMwZWFlNDljYWNiZjMuLjRlM2U3OTJk
MWUyYjhkZmZjNzkzMTEzNGI5ZTIwOWZlNzUxOGM4YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVt
ZW50LmNwcApAQCAtODMsNyArODMsNyBAQCB2b2lkIFNWR0dFbGVtZW50OjpzdmdBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBSZW5kZXJTVkdS
ZXNvdXJjZTo6bWFya0ZvckxheW91dEFuZFBhcmVudFJlc291cmNlSW52YWxpZGF0aW9uKCpyZW5k
ZXJlcik7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdHRWxlbWVudDo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBTVkdHRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJT
dHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICAvLyBTVkcg
MS4xIHRlc3RzdWl0ZSBleHBsaWNpdGVseSB1c2VzIGNvbnN0cnVjdHMgbGlrZSA8ZyBkaXNwbGF5
PSJub25lIj48bGluZWFyR3JhZGllbnQ+CiAgICAgLy8gV2Ugc3RpbGwgaGF2ZSB0byBjcmVhdGUg
cmVuZGVyZXJzIGZvciB0aGUgPGc+ICYgPGxpbmVhckdyYWRpZW50PiBlbGVtZW50LCB0aG91Z2gg
dGhlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5oCmluZGV4IDgxYzg4Mzg3MTRjNjJiMGI4NjRiYTcw
NzM2MzEzNTY3ZjRkZTc1MjkuLmRlNDFiYTAyMmQ5N2RiYTBmZWU2ZWUwOWFkZmYzMTkzZDliNWY0
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5oCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgU1ZHR0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Jik7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwg
Ym9vbCBpc1ZhbGlkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQo
KTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwCmluZGV4IDc5
NDdhMWNkNWQyOGUwMDBkYjE4YmZjYTI0ZDk2OWJiZDFjMDM1NjkuLjgyOTA1YWQ0ZWFiMDFlYWE5
ZTE0MmMyM2ZlNTFlZDIzYTY1YWEzOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdHcmFwaGljc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGlj
c0VsZW1lbnQuY3BwCkBAIC0xNjEsNyArMTYxLDcgQEAgRmxvYXRSZWN0IFNWR0dyYXBoaWNzRWxl
bWVudDo6Z2V0QkJveChTdHlsZVVwZGF0ZVN0cmF0ZWd5IHN0eWxlVXBkYXRlU3RyYXRlZ3kpCiAg
ICAgcmV0dXJuIFNWR1RyYW5zZm9ybWFibGU6OmdldEJCb3godGhpcywgc3R5bGVVcGRhdGVTdHJh
dGVneSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdHcmFwaGljc0VsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gU1ZHR3JhcGhpY3NFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQog
ewogICAgIC8vIEJ5IGRlZmF1bHQsIGFueSBzdWJjbGFzcyBpcyBleHBlY3RlZCB0byBkbyBwYXRo
LWJhc2VkIGRyYXdpbmcKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHUGF0aD4o
KnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0dyYXBoaWNzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxl
bWVudC5oCmluZGV4IGYyZDNkMmY2MzQwYTBkNjgwOWEyZTdlZGMxZGVkMDNlZjhhNGQ0NGQuLjc0
ZDRiNDJhNzEwNThmZWJhMjc3NjE4ODJlODU3NDg0Yjc0ZmFlOWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHR3JhcGhpY3NFbGVtZW50LmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogCiAgICAg
Ly8gImJhc2UgY2xhc3MiIG1ldGhvZHMgZm9yIGFsbCB0aGUgZWxlbWVudHMgd2hpY2ggcmVuZGVy
IGFzIHBhdGhzCiAgICAgdmlydHVhbCB2b2lkIHRvQ2xpcFBhdGgoUGF0aCYpOwotICAgIHZpcnR1
YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgU1ZHR3JhcGhpY3NF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHSW1hZ2VFbGVtZW50LmNwcAppbmRleCBiMzY2ODEyMGRjOTRjNGEwMjkwNjBmMDJkZWExMTQ5
M2E4MTkzYTU0Li5iMmU5N2RkN2I5NDMyMGYxOTdlNjkxMzVkMTM3MmNlMDljNTYwOWQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcApAQCAtMTYwLDcgKzE2MCw3IEBAIHZv
aWQgU1ZHSW1hZ2VFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lKQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi1SZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gU1ZHSW1hZ2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVm
PFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0ltYWdl
RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwg
Y29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8
UmVuZGVyU1ZHSW1hZ2U+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdJbWFnZUVsZW1lbnQuaAppbmRleCA5ZWExNWE2ZjBhOTI4OTYyZWZiMzI0ODA5ODc4ZWE1
MDcwNDgwOTI5Li4zZGY1NmVkMGM4YzIxZmJiYTQ5ZjA1ZDljZWZlMTAwOGY3N2NiZGJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oCkBAIC00OSw3ICs0OSw3IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVy
Tm9kZSYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAK
ICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgaW1hZ2VTb3VyY2VVUkwoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkU3VicmVzb3VyY2VBdHRyaWJ1dGVVUkxzKExp
c3RIYXNoU2V0PFVSTD4mKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAKaW5kZXggMjYzYzFjY2Y5MjFjMzRkZmNlZDVh
MGNjOTNhMjU5YzBhYTYxMjVkZi4uNzU4NDdhYTU0ZDhlNTEwODQzY2YwMzhhM2Y5OGY0YzU4YTc5
NmI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVu
dC5jcHAKQEAgLTExMyw3ICsxMTMsNyBAQCB2b2lkIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6
c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZQogICAgICAg
ICBvYmplY3QtPnNldE5lZWRzTGF5b3V0KCk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHTGluZWFyR3Jh
ZGllbnRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0
eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5k
ZXJlcjxSZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50PigqdGhpcywgV1RGOjptb3ZlKHN0
eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGll
bnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50
LmgKaW5kZXggYTdhNDY5NzY3MDVhNTU5OTQ0NmYzOWY5MWY1N2FhYjFhYmQzMzE1Zi4uZGNmYWJh
MzFmZjRjZmM3MjI1MTI1YjI2Yzg3MTRlMzY0YjQ5MDYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaApAQCAtNDIsNyArNDIsNyBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVh
bCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5k
ZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVy
VHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhhc1JlbGF0
aXZlTGVuZ3RocygpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2Vy
RWxlbWVudC5jcHAKaW5kZXggYWZkNDA0ODliZDE0ZTNhNmMzNDQ3ZmJiNDYwZjA2NzliMDJiM2E3
Yi4uNGMyZjJjZmI4YzMxNjBjZjZkMDVlOTU2MTE1OTkwMWM2MjZkODM5ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcApAQCAtMjEzLDcgKzIxMyw3IEBAIHZvaWQgU1ZH
TWFya2VyRWxlbWVudDo6c2V0T3JpZW50VG9BbmdsZShjb25zdCBTVkdBbmdsZSYgYW5nbGUpCiAg
ICAgc3ZnQXR0cmlidXRlQ2hhbmdlZChvcmllbnRBbmdsZVByb3BlcnR5SW5mbygpLT5hdHRyaWJ1
dGVOYW1lKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR01hcmtlckVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gU1ZHTWFya2VyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsK
ICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXI+KCp0aGlz
LCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNYXJrZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5o
CmluZGV4IGI0ZDMwNjE1NTg4YTM0NTk3Y2ZjYjhlZGYxYmUzMjYzN2ExMzcwNzUuLmE4ODVhNGVk
Y2IwYzQyNDczZGQ1MjIzYmY2MjdjM2RhNmViYWRlMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01h
cmtlckVsZW1lbnQuaApAQCAtMTMyLDcgKzEzMiw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBvdmVy
cmlkZTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
Ym9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBj
b25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCmluZGV4IDZj
NTA4NTFjMzZmNDgxZTQwZWY2YmVjOGFhNGQ2OTJiOTc1MDc2OWMuLjA0OWQwNzJmNjZjZDgwYzE1
NjU4MWI2NDJjMjQ0MWIzNmMzMDEwMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNYXNrRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50
LmNwcApAQCAtMTU3LDcgKzE1Nyw3IEBAIHZvaWQgU1ZHTWFza0VsZW1lbnQ6OmNoaWxkcmVuQ2hh
bmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQogICAgICAgICBvYmplY3QtPnNldE5lZWRz
TGF5b3V0KCk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdNYXNrRWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBTVkdNYXNrRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAg
ICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gbWFza1JlbmRlcmVyID0gY3JlYXRlUmVuZGVyZXI8
UmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKICAgICAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgKaW5kZXggNGU1NjhlMDFhNGZiNGY0YTQ2NTU4
NDk1NzU2YjNhOWRlYWQ1MTQ1NS4uODc0NzY4MmU3MjUzNjYwM2VlOTI0M2EzM2JmZWZkZmMxMzFi
YzM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgKQEAgLTU1LDcgKzU1LDcgQEAg
cHJpdmF0ZToKIAogICAgIEhhc2hTZXQ8UmVuZGVyTGF5ZXIqPiBtX2NsaWVudExheWVyczsKIAot
ICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNv
bnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHNl
bGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCmluZGV4IDFkNWM4MzEyZjQ4ZjI2NzA5
MDMwOThhMGYxYzcwOGE2ODMyMDU5MDUuLjYxZDY1NjRmMDUxZmJhYzljNDMzODk3ODNiY2M3ZWM1
YWE1MmJkOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcApAQCAtMzkxLDcg
KzM5MSw3IEBAIEZsb2F0UmVjdCBTVkdQYXRoRWxlbWVudDo6Z2V0QkJveChTdHlsZVVwZGF0ZVN0
cmF0ZWd5IHN0eWxlVXBkYXRlU3RyYXRlZ3kpCiAgICAgcmV0dXJuIHJlbmRlcmVyLT5wYXRoKCku
Ym91bmRpbmdSZWN0KCk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdQYXRoRWxl
bWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1Jl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdQYXRoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikK
IHsKICAgICAvLyBCeSBkZWZhdWx0LCBhbnkgc3ViY2xhc3MgaXMgZXhwZWN0ZWQgdG8gZG8gcGF0
aC1iYXNlZCBkcmF3aW5nCiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1BhdGg+
KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXRoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmgK
aW5kZXggYzM3MWU1NTk2YmM1MTgxMmNhNGY3YWU5MWE0Yjk5MmRjYWJkNTJiMy4uNjEyM2NhMDZm
NDk2N2FjOGU1YjJmN2E4MDg2ZjgwMTViOWUxYjk0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhF
bGVtZW50LmgKQEAgLTExNiw3ICsxMTYsNyBAQCBwcml2YXRlOgogICAgICAgICBERUNMQVJFX0FO
SU1BVEVEX0JPT0xFQU4oRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZCkKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiAKLSAgICB2
aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVm
PFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBS
ZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgTm9kZTo6SW5zZXJ0
aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShDb250YWluZXJOb2RlJikgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAppbmRleCBmYjE4Zjhh
YjI5MDY3YTM3ZDZmMGU0ZTVkMDlhYzc1MTZmZDY3ZDJiLi5hMDdjODc1MGE3YWI4NjQ4Nzg1NGQ0
YzgwNmJmODE0ZTE4YWY4OWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0
dGVybkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVu
dC5jcHAKQEAgLTE4Miw3ICsxODIsNyBAQCB2b2lkIFNWR1BhdHRlcm5FbGVtZW50OjpjaGlsZHJl
bkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKICAgICAgICAgb2JqZWN0LT5zZXRO
ZWVkc0xheW91dCgpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHUGF0dGVybkVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHUGF0dGVybkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlv
biYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1Jlc291cmNlUGF0dGVy
bj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVy
bkVsZW1lbnQuaAppbmRleCBjNmU2ODRkM2Y4YjAyZjY4ZGE0YTc1OTkzYTM2ZjY0OGFkMzdiNGVl
Li5hZjI5MmI1ZjBiYTRlM2VjZDA5ZThhNmYyNTc1NmI4YTY3M2ZhNDcyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaApAQCAtNjIsNyArNjIsNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hh
bmdlJikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVm
PFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIAog
ICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gdHJ1ZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFk
aWFsR3JhZGllbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFk
aWVudEVsZW1lbnQuY3BwCmluZGV4IDA5OWEwYzljOTEyMThjNzQzZDk0MmRkMWVlZWI3YmMyNjU1
NTAwOTEuLmM2MjUyYTg2MDQzMTFmZTk2YWQ4MzEwMWYwNGM2OWJlNmVhZDI0NWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCkBAIC0xMjUs
NyArMTI1LDcgQEAgdm9pZCBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNo
YW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUKICAgICAgICAgb2JqZWN0LT5zZXRO
ZWVkc0xheW91dCgpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHUmFkaWFsR3Jh
ZGllbnRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0
eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVu
ZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZH
UmVzb3VyY2VSYWRpYWxHcmFkaWVudD4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCmluZGV4IGQ2NDg4
OTkyZjhmN2Y0OTUxMGE0ZGRkNmI5N2I5NWQ5YjM0ZTAyNjQuLmMwYzM5ZWI0NGNhODdhYjViYzBl
NTc0MDUxNmQxNzQ5MDkxNTUyYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdS
YWRpYWxHcmFkaWVudEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFs
R3JhZGllbnRFbGVtZW50LmgKQEAgLTQyLDcgKzQyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0
cmluZyYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYp
IG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBj
b25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAKaW5kZXgg
ZTIzYTFlNWQyODM1YmU2ODQ4ODc1YTU3NDRlYjFjYmM1NTQ4ZDdhMS4uYjczYjBkOGNmNzE2ZTk5
OTI5NmExZmRkNzgwZGI3ODQwMWZmYWNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1JlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1l
bnQuY3BwCkBAIC0xMTAsNyArMTEwLDcgQEAgdm9pZCBTVkdSZWN0RWxlbWVudDo6c3ZnQXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICBTVkdHcmFwaGlj
c0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwogfQogCi1SZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gU1ZHUmVjdEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHUmVjdEVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNv
bnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJl
bmRlclNWR1JlY3Q+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1JlY3RFbGVtZW50LmgKaW5kZXggZWRhNTI2YmYwNTg0NGRjNzQxMDgxOGQ2ODlkNjU1ZTc5NzEx
Y2IxYi4uOWEyZGQ3OTAxNjgyY2VhZTA2MmJmYjJlNzRmZjE4NGRjODJlMTE4YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1JlY3RFbGVtZW50LmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHJpdmF0ZToKIAogICAg
IHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxS
ZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKICAg
ICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHUmVjdEVsZW1lbnQpCiAgICAg
ICAgIERFQ0xBUkVfQU5JTUFURURfTEVOR1RIKFgsIHgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxl
bWVudC5jcHAKaW5kZXggMGQ0ZDg1YWY4YmRjMWM2ZDEyMjQ4Njk2Y2U2MWU2ODUwM2YzMWYyMy4u
YzY1MTZjNDM1Njk0MTJmNTg5OTEzMzhmNTJmOTE0ZTg1ZTZkNTUyNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTVkdFbGVtZW50LmNwcApAQCAtNDM5LDcgKzQzOSw3IEBAIGJvb2wgU1ZHU1ZHRWxlbWVu
dDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAgICAgcmV0dXJu
IFN0eWxlZEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOwogfQogCi1SZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gU1ZHU1ZHRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxS
ZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdTVkdFbGVt
ZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25z
dCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIGlmIChpc091dGVybW9zdFNWR1NWR0VsZW1l
bnQoKSkKICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1Jvb3Q+KCp0aGlz
LCBXVEY6Om1vdmUoc3R5bGUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
VkdFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCmluZGV4IDgx
ZDk2MjVlODUwMGM0NmQzZDg1N2ZlZDZmNmIzYWE4MzBkZGZmYTcuLmQ3MmI1MzRjMjJmMDBmNDkz
YWRlZGQ3NmY2Y2Y2OWJmYzRmM2MwMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTVkdFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaApA
QCAtMTM0LDcgKzEzNCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZE1vdmVUb05l
d0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2
b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJp
bmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBS
ZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8o
Q29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShD
b250YWluZXJOb2RlJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNo
YW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
dG9wRWxlbWVudC5jcHAKaW5kZXggMDU5Y2Q0ZDZhYWI2NmYxNWUyYWY1NjYwOWIyZDJhNmM5ODEy
Y2JkNi4uYmJlNGY2NjBhZDJmZDJjZTEzNTBhM2UxOTBkYWI4ZDI2Y2U3NWRjNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCkBAIC03Niw3ICs3Niw3IEBAIHZvaWQgU1ZHU3Rv
cEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5h
bWUpCiAgICAgU1ZHRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CiB9CiAK
LVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdTdG9wRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBTVkdTdG9wRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4m
JiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRl
UmVuZGVyZXI8UmVuZGVyU1ZHR3JhZGllbnRTdG9wPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5oCmluZGV4IDdlY2ViZmU1Nzg2MDhiNGFk
ZWJmZDJkY2ViMTA3NjNhMjM1YzMwNDYuLmE4Mzc0OThhMjNmMGZjNTEyYmVhOTc0MmFlM2E4YzQ0
NWVjMDcwOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5oCkBAIC00MCw3ICs0MCw3
IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNHcmFkaWVudFN0b3AoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHls
ZSYpIG92ZXJyaWRlOwogCiAgICAgQkVHSU5fREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTKFNW
R1N0b3BFbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuY3BwCmluZGV4
IDJlYWZiM2NkYmM1NTE1YmRjNjE3OTcwOWQwMjAyODhlZDgzNTIzYzAuLjQ0NzYyY2JlNWNiYmZj
ZDQ2Zjg0ZjliYWFhM2MzZWYyOTM0YjI0ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTd2l0Y2hFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNo
RWxlbWVudC5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgYm9vbCBTVkdTd2l0Y2hFbGVtZW50OjpjaGls
ZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmIGNoaWxkKSBjb25zdAogICAgIHJldHVy
biBmYWxzZTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1N3aXRjaEVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gU1ZHU3dpdGNoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsK
ICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5l
cj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hF
bGVtZW50LmgKaW5kZXggNGUyZTQ5M2UzZDkwZTY5ODJmMjVmMWUzNWI1YTk1NGRhNTcxNzU0NC4u
ZjA4ZGExYzU5NzA2MTVkMmUxZjE4MmUzNTQ1MTJmOTVhYmYyYTNiZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU3dpdGNoRWxlbWVudC5oCkBAIC0zOCw3ICszOCw3IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBTVkdUZXN0czo6aXNW
YWxpZCgpOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihj
b25zdCBOb2RlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3Zl
cnJpZGU7CiAKICAgICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHU3dpdGNo
RWxlbWVudCkKICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9CT09MRUFOKEV4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU3ltYm9sRWxlbWVudC5jcHAKaW5kZXggYmI4MDhmOGE1MmM5NDE0NjNiNWRlZGJiMzY2YWUx
OWJjMzdiZmEzZC4uYzhlMWRlYzhjOTM3YjBmMGNhZjcwMGE2ZWNjMjcwMWVjYTc0M2UwZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmNwcApAQCAtNzQsNyArNzQsNyBAQCBi
b29sIFNWR1N5bWJvbEVsZW1lbnQ6OnNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdAogICAg
IHJldHVybiBoYXNBdHRyaWJ1dGUoU1ZHTmFtZXM6OnZpZXdCb3hBdHRyKTsKIH0KIAotUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IFNWR1N5bWJvbEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZH
U3ltYm9sRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBz
dHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVu
ZGVyZXI8UmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaAppbmRleCA4ODM2NWE3YWNmNGM2
ODBmMmY2YjAzZWE3Y2M2Yjk1ZjVjZThiNzljLi5lYTM5NGIwNDk4NGNlZTBlZWVjNmE2MWU5ZTQz
NGMzYTg5MGU2ZWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgKQEAgLTQx
LDcgKzQxLDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92
ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVh
bCBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKaW5kZXggY2Y2YjhmMjU3YjAzOWFhMzcwYmMzMjI4
NTZkYWZlZjIzOGFkMDQzZi4uNGVkYjk4M2RlNDg1NDExMDk2YWI0ZGFjYjkyN2FiNGE1ODJjZGQ3
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCkBAIC0xOTUsNyArMTk1LDcg
QEAgdm9pZCBTVkdUUmVmRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKICAgICBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50OjpzdmdBdHRy
aWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNW
R1RSZWZFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0
eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1RSZWZFbGVtZW50OjpjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9z
aXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdJbmxpbmU+KCp0
aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUUmVmRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmgK
aW5kZXggMzA2ZTJiMzkwNmZjYTNlNWE2NWQ4YzI3MTlmNWJjZDk2MDIyMTY4Yy4uYjY0NWE0NTAy
YjJiMTQ4Y2E1NmIyN2I4NjU3Zjg1NWE1OGYzYjYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RSZWZFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZF
bGVtZW50LmgKQEAgLTQxLDcgKzQxLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUm
KSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVFNwYW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUU3BhbkVsZW1l
bnQuY3BwCmluZGV4IDYyNDM0NDI4OGJmODM1MjY4NTA5NGFhZGM1NTkzMTZhZjc4MmZhOWUuLmNh
OWY3N2ViYWY1ZWIzOGI2YzIzNzY1YWE5Y2VmZjEzMzg3NDkxYzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUU3BhbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUU3BhbkVsZW1lbnQuY3BwCkBAIC0zOCw3ICszOCw3IEBAIFJlZjxTVkdUU3BhbkVsZW1l
bnQ+IFNWR1RTcGFuRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVFNwYW5FbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdUU3BhbkVsZW1l
bnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHVFNwYW5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQog
ewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdUU3Bhbj4oKnRoaXMsIFdURjo6
bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RTcGFu
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RTcGFuRWxlbWVudC5oCmluZGV4IDI2
NTNlOTVlYjBiYjJkYjIzZGY4ZTRiNGJjZWQ3ZjgyNGFlZmYxZjcuLjliNGFlOGFmZTM4ZmY1ODQ2
MTZkNjhkMWE5ZTMzYjYyNTNkNmQ1NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdUU3BhbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFNwYW5FbGVtZW50
LmgKQEAgLTMyLDcgKzMyLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBTVkdUU3BhbkVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAgICAgICAgICAgICAKLSAgICB2
aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVm
PFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBS
ZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91
bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZTsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmNwcAppbmRleCA4OTU0ZDYyMzdjYTM3YzFm
MTYzNjIzZWRkNGVjNzg2NWRjN2NlNTA5Li40ZTRkOWY4NDljOWIyOTQ3ZTM5YzUwMmViMjYwOWJi
YTZjOTE0MzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5jcHAKQEAgLTY0LDcg
KzY0LDcgQEAgQWZmaW5lVHJhbnNmb3JtIFNWR1RleHRFbGVtZW50OjphbmltYXRlZExvY2FsVHJh
bnNmb3JtKCkgY29uc3QKICAgICByZXR1cm4gbWF0cml4OwogfQogCi1SZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gU1ZHVGV4dEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVy
U3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHVGV4dEVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJl
bmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNW
R1RleHQ+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRF
bGVtZW50LmgKaW5kZXggYWYxNTBhNzkwNGM1NzZjYzFiOWNlNTJlYjljNDg1NzZiNGFjZDkxYy4u
MDA3NjY1NzM2MDMxNDY0MDU4NTM5MTgzZTJlYWYwMTNhMDIwMTAwNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RleHRFbGVtZW50LmgKQEAgLTM0LDcgKzM0LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICBTVkdUZXh0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAg
IHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0
IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNo
b3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHAKaW5kZXggZjUzM2JkOTUyM2Zm
MTEwNzEwOWIwOWQ1NGRlODA1ZmYxYmVlMjE2YS4uYTJhZDE5MWUxZmE3NzQwNmQxNWVjNmQ2OTkz
NDcyOWQ2MjgyNTVkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRo
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5j
cHAKQEAgLTEyMyw3ICsxMjMsNyBAQCB2b2lkIFNWR1RleHRQYXRoRWxlbWVudDo6c3ZnQXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgUmVuZGVy
U1ZHUmVzb3VyY2U6Om1hcmtGb3JMYXlvdXRBbmRQYXJlbnRSZXNvdXJjZUludmFsaWRhdGlvbigq
cmVuZGVyZXIpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHVGV4dFBhdGhFbGVt
ZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1RleHRQYXRoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9u
JikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHVGV4dFBhdGg+KCp0aGlz
LCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdUZXh0UGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1l
bnQuaAppbmRleCBhNWFjMGRlOTUzNWY5NmIzZTk3NWMxNmNmYTE3N2E2Zjc2ZDNiYTAxLi5lMGQw
Y2UwMTU0NDk1ZjZhZTI0MzgyMzBmOTMwZDQ2OTEyZGYyNzFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RleHRQYXRoRWxlbWVudC5oCkBAIC0xMjksNyArMTI5LDcgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21pY1N0cmluZyYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+
JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3Np
dGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRl
cmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVy
ZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVXNlRWxlbWVudC5jcHAKaW5kZXggYTUxZThjYWY0ZjJkYTc3NTk1NDYyZmRmZTQ1ZTYwZjQ2
MzY2MjBiNi4uNmNhNDNlNjU0OGRjMzAyODY5MDlhZTY5NmRiNThhNTYwZWMxYmNiOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcApAQCAtMjYxLDcgKzI2MSw3IEBAIFNWR0VsZW1l
bnQqIFNWR1VzZUVsZW1lbnQ6OnRhcmdldENsb25lKCkgY29uc3QKICAgICByZXR1cm4gZG93bmNh
c3Q8U1ZHRWxlbWVudD4ocm9vdC0+Zmlyc3RDaGlsZCgpKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IFNWR1VzZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVy
U3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHVXNlRWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVu
ZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZH
VHJhbnNmb3JtYWJsZUNvbnRhaW5lcj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgKaW5kZXggNDc3MzkyM2M1OGIxYjJlY2IzN2YxY2M5ZWNh
NTgzNjRkODY0NTZjMi4uODgwZjdiOTRjMDFhMTZmMDY1Y2VlOTIzMDkzNjY4NGU5YmZjYmY1YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCkBAIC02NCw3ICs2NCw3IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2
b2lkIHdpbGxBdHRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYm
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRp
b24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgdG9DbGlwUGF0aChQYXRoJikgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCBib29sIGhhdmVMb2FkZWRSZXF1aXJlZFJlc291cmNlcygpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjZGQxNmQzZDdjZTZkMTE5Mjg3NmY1NzEyNTZiOWJkMGRkOWFhY2MxLi4zODU5NTU4
MWExZWIzMDExOWQwZDBhZWU3Y2VhMmM0NzhjYTdiNTc5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTUtMDQtMjEgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBD
cmVhdGUgUmVuZGVyUnVieVRleHQgZm9yIDxydD4gb25seSB3aGVuIHRoZSBwYXJlbnQgcmVuZGVy
ZXIgaXMgYSBSZW5kZXJSdWJ5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ0MDM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVuZGVyUnVieVRleHQgcmVxdWlyZXMgaXRzIHBhcmVudCB0byBiZSBSZW5k
ZXJSdWJ5UnVuLgorICAgICAgICBUaGlzIHBhdGNoIGFsc28gbW92ZXMgcnVieSByZW5kZXJlciBp
bml0aWFsaXphdGlvbiBsb2dpYyBmcm9tIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigpIHRvCisg
ICAgICAgIEhUTUxSVEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcigpIGFuZCBIVE1MUnVi
eUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlci4KKworICAgICAgICAqIGZhc3QvcnVieS9y
dWJ5LXJ0LXdpdGgtcmVnaW9uLWNyYXNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9ydWJ5L3J1YnktcnQtd2l0aC1yZWdpb24tY3Jhc2guaHRtbDogQWRkZWQuCisKIDIwMTUt
MDQtMjEgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jh
c2ggaW4gSlNDOjpJbnRlcnByZXRlcjo6ZXhlY3V0ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ydWJ5L3J1YnktcnQtd2l0aC1yZWdpb24tY3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9ydWJ5L3J1YnktcnQtd2l0aC1yZWdpb24tY3Jhc2gtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRiMjU1ZTBlNTRiYzFmNGYyM2NiMzk2OTA5MDI0OTM5ODY0YmNmNzMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3J1YnkvcnVieS1ydC13aXRoLXJlZ2lvbi1j
cmFzaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitQYXNzIGlmIG5vIGFzc2VydCBvciBj
cmFzaCBpbiBEZWJ1Zy4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3J1Ynkt
cnQtd2l0aC1yZWdpb24tY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcnVieS9ydWJ5LXJ0
LXdpdGgtcmVnaW9uLWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJhZTIwM2JmZDU3YzJmMTBjMDJk
ODNhMjA3MTM3NTg1MTZmMzhiMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
cnVieS9ydWJ5LXJ0LXdpdGgtcmVnaW9uLWNyYXNoLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8c2NyaXB0PgorICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICA8L3NjcmlwdD4K
KworICA8c3R5bGU+CisJcnQgeworICAgICAgLXdlYmtpdC1mbG93LWludG86IGZsb3dDb250ZW50
OworCX0KKwkKKwlkaXYgeworCSAgLXdlYmtpdC1mbG93LWZyb206IGZsb3dDb250ZW50OyAKKwl9
CisgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdj48L2Rpdj4KKyAgPHJ1Ynk+PHJ0
PlBhc3MgaWYgbm8gYXNzZXJ0IG9yIGNyYXNoIGluIERlYnVnLjwvcnQ+PC9ydWJ5PgorICA8c2Ny
aXB0PgorICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJTZWxlY3RBbGwiKTsKKyAgPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251374</attachid>
            <date>2015-04-22 15:28:10 -0700</date>
            <delta_ts>2015-04-22 19:18:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144035-20150422152706.patch</filename>
            <type>text/plain</type>
            <size>153476</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzMTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhiZTUyNTc1NDhhZTQx
ZDEwMmY4NWJjMmQ1NTQwOTMwY2UwZjdkMC4uZjRmMDI3M2E5ZjYzYTExMDhiOTgxOTQ1NzIxYmMx
NDM3ZjBmNmY4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI2OCBAQAogMjAxNS0wNC0yMiAgWmFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCisgICAgICAgIENyZWF0ZSBSZW5kZXJSdWJ5
VGV4dCBmb3IgPHJ0PiBvbmx5IHdoZW4gdGhlIHBhcmVudCByZW5kZXJlciBpcyBhIFJlbmRlclJ1
YnkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQw
MzUKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMjA2MDQ0NjcKKworICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBBZGxlci4KKworICAgICAgICBUaGlzIHBhdGNoIGV4dGVuZHMgSFRNTEVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcigpCisgICAgICAgIHdpdGggdGhlIHJlbmRlciB0cmVlIGlu
c2VydGlvbiBwb2ludCBzbyB0aGF0IHdlIGNhbiBjcmVhdGUgZGlmZmVyZW50IHR5cGUKKyAgICAg
ICAgb2YgcmVuZGVyZXJzIGJhc2VkIG9uIHRoZSByZW5kZXIgdHJlZSBjb250ZXh0LgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvcnVieS9ydWJ5LXJ0LXdpdGgtcmVnaW9uLWNyYXNoLmh0bWwKKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9QbHVnaW5S
ZXBsYWNlbWVudC5oOgorICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5S
ZXBsYWNlbWVudC5oOgorICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5S
ZXBsYWNlbWVudC5tbToKKyAgICAgICAgKFdlYkNvcmU6OlF1aWNrVGltZVBsdWdpblJlcGxhY2Vt
ZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9Z
b3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WW91VHViZVBs
dWdpblJlcGxhY2VtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIE1vZHVs
ZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuaDoKKyAgICAgICAgKiBXZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEFwcGxldEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICog
aHRtbC9IVE1MQXBwbGV0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEF0dGFjaG1lbnRF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBdHRhY2htZW50RWxlbWVudDo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxBdHRhY2htZW50RWxlbWVu
dC5oOgorICAgICAgICAqIGh0bWwvSFRNTEJSRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQlJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwv
SFRNTEJSRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cik6CisgICAgICAgICogaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1l
bnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxEZXRhaWxzRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAg
ICAgICAgKiBodG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcik6CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwv
SFRNTEZpZWxkU2V0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRmllbGRTZXRF
bGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRNTEZpZWxk
U2V0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEZyYW1lRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MRnJhbWVFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgor
ICAgICAgICAqIGh0bWwvSFRNTEZyYW1lRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEZy
YW1lU2V0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRnJhbWVTZXRFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRNTEZyYW1lU2V0RWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTElGcmFtZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAg
ICAgICogaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEltYWdl
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
SW5wdXRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRN
TElucHV0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAg
ICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTWV0ZXJF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZXRlckVsZW1lbnQ6OmNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9IVE1MTWV0ZXJFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
UGx1Z0luRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBodG1sL0hU
TUxQbHVnSW5FbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAg
ICogaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50Lmg6Cisg
ICAgICAgICogaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFN1bW1hcnlFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0
bWwvSFRNTFN1bW1hcnlFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50Lmg6Cisg
ICAgICAgICogaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxWaWRlb0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9I
VE1MVmlkZW9FbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MV0JSRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MV0JSRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToK
KyAgICAgICAgKiBodG1sL0hUTUxXQlJFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9SdWJ5RWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSdWJ5RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKToKKyAgICAgICAgKiBodG1sL1J1YnlFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9S
dWJ5VGV4dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UnVieVRleHRFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvUnVieVRleHRFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RGV0YWlsc01hcmtlckNvbnRyb2w6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6
CisgICAgICAgICogaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuaDoKKyAgICAgICAg
KiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWlu
ZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVy
KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZXRlcklubmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBo
dG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9Q
cm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NJbm5l
ckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9zaGFkb3cv
UHJvZ3Jlc3NTaGFkb3dFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1
bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNsaWRlclRodW1iRWxlbWVudDo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNsaWRlckNvbnRhaW5lckVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xp
ZGVyVGh1bWJFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5l
ckVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb250cm9sSW5uZXJDb250YWlu
ZXI6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q29udHJv
bElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRt
bC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmg6CisgICAgICAgICogaHRtbC9zaGFk
b3cvbWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjOjpjcmVhdGVFbGVtZW50UmVuZGVyZXIp
OgorICAgICAgICAqIGh0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1h
Yy5oOgorICAgICAgICAqIGh0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRN
YWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjOjpj
cmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvc2hhZG93L21hYy9JbWFnZUNv
bnRyb2xzUm9vdEVsZW1lbnRNYWMuaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1ZUVEN1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpWVFRDdWVCb3g6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6Cisg
ICAgICAgICogaHRtbC90cmFjay9WVFRDdWUuaDoKKyAgICAgICAgKiBtYXRobWwvTWF0aE1MSW5s
aW5lQ29udGFpbmVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxJbmxpbmVD
b250YWluZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIG1hdGht
bC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50Lmg6CisgICAgICAgICogbWF0aG1sL01hdGhN
TE1hdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hdGhNTE1hdGhFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxNYXRoRWxlbWVu
dC5oOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWF0aE1MTWVuY2xvc2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIp
OgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaDoKKyAgICAgICAgKiBt
YXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxT
ZWxlY3RFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIG1hdGhtbC9N
YXRoTUxTZWxlY3RFbGVtZW50Lmg6CisgICAgICAgICogbWF0aG1sL01hdGhNTFRleHRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hdGhNTFRleHRFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIpOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9jazo6Y2xvbmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUnVieS5oOgorICAgICAgICAoV2ViQ29yZTo6aXNSdWJ5
KToKKyAgICAgICAgKiBzdHlsZS9SZW5kZXJUcmVlUG9zaXRpb24uY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRyZWVQb3NpdGlvbjo6Y29tcHV0ZU5leHRTaWJsaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVQb3NpdGlvbjo6aW52YWxpZGF0ZU5leHRTaWJsaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVQb3NpdGlvbjo6cHJldmlvdXNTaWJsaW5n
UmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZVBvc2l0aW9uOjpuZXh0U2li
bGluZ1JlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVQb3NpdGlvbjo6aXNS
ZW5kZXJlclJlcGFyZW50ZWQpOgorICAgICAgICAqIHN0eWxlL1JlbmRlclRyZWVQb3NpdGlvbi5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVQb3NpdGlvbjo6UmVuZGVyVHJl
ZVBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVQb3NpdGlvbjo6cGFyZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVQb3NpdGlvbjo6Y2FuSW5zZXJ0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVQb3NpdGlvbjo6aW5zZXJ0KToKKyAgICAgICAgKiBz
dHlsZS9TdHlsZVJlc29sdmVUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpjcmVh
dGVSZW5kZXJlcklmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjppbnZhbGlkYXRl
V2hpdGVzcGFjZU9ubHlUZXh0U2libGluZ3NBZnRlckF0dGFjaElmTmVlZGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlOjp0ZXh0UmVuZGVyZXJJc05lZWRlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZTo6UmVuZGVyVHJlZVBvc2l0aW9uOjpwYXJlbnQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OmlzUmVuZGVyZXJSZXBhcmVudGVkKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlOjpuZXh0U2libGluZ1JlbmRlcmVyKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlOjpSZW5kZXJUcmVlUG9zaXRpb246OlJlbmRlclRyZWVQb3NpdGlvbik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UmVuZGVyVHJlZVBvc2l0aW9uOjpj
YW5JbnNlcnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJlbmRlclRyZWVQ
b3NpdGlvbjo6aW5zZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSZW5k
ZXJUcmVlUG9zaXRpb246OmNvbXB1dGVOZXh0U2libGluZyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZTo6UmVuZGVyVHJlZVBvc2l0aW9uOjppbnZhbGlkYXRlTmV4dFNpYmxpbmcp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OnByZXZpb3VzU2libGluZ1JlbmRl
cmVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHQUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICog
c3ZnL1NWR0FFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbHRHbHlwaEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcik6CisgICAgICAgICogc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oOgorICAgICAgICAqIHN2
Zy9TVkdDaXJjbGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0NpcmNsZUVsZW1l
bnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR0NpcmNsZUVsZW1l
bnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0NsaXBQYXRoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAg
ICAgKiBzdmcvU1ZHQ2xpcFBhdGhFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0RlZnNFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0RlZnNFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdEZWZzRWxlbWVudC5oOgorICAgICAgICAqIHN2
Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGxpcHNlRWxl
bWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBzdmcvU1ZHRWxsaXBzZUVs
ZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdGaWx0ZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAg
ICAqIHN2Zy9TVkdGaWx0ZXJFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJQ
cmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAg
ICAgICogc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oOgorICAgICAg
ICAqIHN2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdGb3JlaWduT2JqZWN0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAg
KiBzdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHR0VsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHR0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcik6CisgICAgICAgICogc3ZnL1NWR0dFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0dy
YXBoaWNzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdHcmFwaGljc0VsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR0dyYXBoaWNzRWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHSW1hZ2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIHN2
Zy9TVkdJbWFnZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBzdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTWFya2VyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAg
KiBzdmcvU1ZHTWFya2VyRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdNYXNrRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXNrRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKToKKyAgICAgICAgKiBzdmcvU1ZHTWFza0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZH
UGF0aEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1lbnQ6OmNyZWF0
ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVtZW50Lmg6CisgICAg
ICAgICogc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Bh
dHRlcm5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdQ
YXR0ZXJuRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50OjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHUmVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUmVjdEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogc3ZnL1NW
R1JlY3RFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1NWR0VsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAg
ICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdTdG9wRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdG9wRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKToKKyAgICAgICAgKiBzdmcvU1ZHU3RvcEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZH
U3dpdGNoRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTd2l0Y2hFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdTd2l0Y2hFbGVtZW50Lmg6
CisgICAgICAgICogc3ZnL1NWR1N5bWJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHU3ltYm9sRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBzdmcv
U1ZHU3ltYm9sRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdUUmVmRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdUUmVmRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToK
KyAgICAgICAgKiBzdmcvU1ZHVFJlZkVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHVFNwYW5F
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RTcGFuRWxlbWVudDo6Y3JlYXRlRWxl
bWVudFJlbmRlcmVyKToKKyAgICAgICAgKiBzdmcvU1ZHVFNwYW5FbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR1RleHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRFbGVt
ZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdUZXh0RWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHVGV4dFBhdGhFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAg
ICAqIHN2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIpOgorICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50Lmg6CisKKzIwMTUtMDQtMjIgIFph
bGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKwogICAgICAgICBNb3ZlIHJlbmRlciBydWJ5
IGluaXRpYWxpemF0aW9uIGxvZ2ljIGZyb20gUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKCkgdG8g
Kjo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKCkKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NDA1OAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDYzNjAy
ZDAyZWEyOWRjMGFmZGUxYmU1MGJmMmE3MzMyNTMzZDk4NTkuLmM4ZTIwNWFhNGM5MDA3YTAxNzU4
ODE1NWE1YTQ3ZTUxMTUwNjczYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yNTQyLDYgKzI1
NDIsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNl
UHJvdmlkZXIuY3BwCiAKICAgICBzdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3BwCisgICAgc3R5
bGUvUmVuZGVyVHJlZVBvc2l0aW9uLmNwcAogICAgIHN0eWxlL1N0eWxlRm9udFNpemVGdW5jdGlv
bnMuY3BwCiAgICAgc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwCiAgICAgc3R5bGUv
U3R5bGVSZXNvbHZlVHJlZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
cGx1Z2lucy9QbHVnaW5SZXBsYWNlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVn
aW5zL1BsdWdpblJlcGxhY2VtZW50LmgKaW5kZXggMDFjOTBiODY4YWNlZmFkZmE2ZjJiZWNmM2Rk
ZjU0NjY2MTRmZDJlZi4uZGU3ODQzNDBmYzA0NTI1ZGY0ZTMyNGI5YTYyMjg1MDU3ZmI5MjMxNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1BsdWdpblJlcGxhY2Vt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1BsdWdpblJlcGxhY2Vt
ZW50LmgKQEAgLTM5LDYgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSFRNTFBs
dWdJbkVsZW1lbnQ7CiBjbGFzcyBSZW5kZXJFbGVtZW50OwogY2xhc3MgUmVuZGVyU3R5bGU7Citj
bGFzcyBSZW5kZXJUcmVlUG9zaXRpb247CiBjbGFzcyBTaGFkb3dSb290OwogY2xhc3MgVVJMOwog
CkBAIC01MCw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEpTQzo6SlNPYmplY3QqIHNj
cmlwdE9iamVjdCgpIHsgcmV0dXJuIDA7IH0KIAogICAgIHZpcnR1YWwgYm9vbCB3aWxsQ3JlYXRl
UmVuZGVyZXIoKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihIVE1MUGx1Z0luRWxlbWVudCYsIFJlZjxS
ZW5kZXJTdHlsZT4mJikgPSAwOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihIVE1MUGx1Z0luRWxlbWVudCYsIFJlZjxSZW5kZXJTdHls
ZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAg
UGx1Z2luUmVwbGFjZW1lbnQoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmgKaW5kZXggYjBjNWVj
MTc4MjRjZmY1ZDIzZjdkNThiOWM4ZWEwZDhiODI1NTRjZC4uOWE5NzJhYWZmMWYyMTAwODE1ZGRl
YWVkYzUzODIyYWY4YWM0N2IxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9w
bHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmgKQEAgLTU0LDcgKzU0
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSlNDOjpKU09iamVjdCogc2NyaXB0T2JqZWN0KCkg
b3ZlcnJpZGUgeyByZXR1cm4gbV9zY3JpcHRPYmplY3Q7IH0KIAogICAgIHZpcnR1YWwgYm9vbCB3
aWxsQ3JlYXRlUmVuZGVyZXIoKSBvdmVycmlkZSB7IHJldHVybiBtX21lZGlhRWxlbWVudDsgfQot
ICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihIVE1MUGx1Z0luRWxlbWVudCYsIFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKEhU
TUxQbHVnSW5FbGVtZW50JiwgUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9z
aXRpb24mKSBvdmVycmlkZTsKIAogICAgIEhUTUxWaWRlb0VsZW1lbnQqIHBhcmVudEVsZW1lbnQo
KSB7IHJldHVybiBtX21lZGlhRWxlbWVudC5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0gYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQu
bW0KaW5kZXggYWM3NGZmNjEyMmZkOTY5MjRkZjM0MzNjOTMzYTdmN2M2M2M5ZTkzMy4uZDQ2Yjc3
MDZiMjc2MGJlZWJiZGYyNTRmYjJlYmFkNGY4OWRlNDBjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVu
dC5tbQpAQCAtMTMwLDEyICsxMzAsMTIgQEAgUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQ6On5R
dWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudCgpCiAgICAgbV9tZWRpYUVsZW1lbnQgPSBudWxscHRy
OwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1l
bnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihIVE1MUGx1Z0luRWxlbWVudCYgcGx1Z2luLCBSZWY8
UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gUXVpY2tUaW1l
UGx1Z2luUmVwbGFjZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihIVE1MUGx1Z0luRWxlbWVu
dCYgcGx1Z2luLCBSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3Np
dGlvbiYgaW5zZXJ0aW9uUG9zaXRpb24pCiB7CiAgICAgQVNTRVJUX1VOVVNFRChwbHVnaW4sIG1f
cGFyZW50RWxlbWVudCA9PSAmcGx1Z2luKTsKIAogICAgIGlmIChtX21lZGlhRWxlbWVudCkKLSAg
ICAgICAgcmV0dXJuIG1fbWVkaWFFbGVtZW50LT5jcmVhdGVFbGVtZW50UmVuZGVyZXIoV1RGOjpt
b3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVybiBtX21lZGlhRWxlbWVudC0+Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFdURjo6bW92ZShzdHlsZSksIGluc2VydGlvblBvc2l0aW9uKTsKIAogICAgIHJl
dHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVn
aW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcAppbmRleCBhMDQyOTMzZDYxMDQ5
MTJkNTlmOGVjZjIwNzNmZGYyZTc5ZGY4NDEzLi44Zjk2YzlmMDI4YzcyOGZkYTAzYmI1MGE3ZWU5
NmJhZmMzZGE5MDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMv
WW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcApAQCAtNjcsMTQgKzY3LDE0IEBA
IFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6WW91VHViZVBsdWdpblJlcGxhY2VtZW50KEhUTUxQ
bHVnSW5FbGVtZW50JiBwbHVnaW4sIGNvCiAgICAgICAgIG1fYXR0cmlidXRlcy5hZGQocGFyYW1O
YW1lc1tpXSwgcGFyYW1WYWx1ZXNbaV0pOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
WW91VHViZVBsdWdpblJlcGxhY2VtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoSFRNTFBsdWdJ
bkVsZW1lbnQmIHBsdWdpbiwgUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKEhUTUxQbHVnSW5FbGVtZW50JiBwbHVnaW4sIFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwg
Y29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJiBpbnNlcnRpb25Qb3NpdGlvbikKIHsKICAgICBBU1NF
UlRfVU5VU0VEKHBsdWdpbiwgbV9wYXJlbnRFbGVtZW50ID09ICZwbHVnaW4pOwogCiAgICAgaWYg
KCFtX2VtYmVkU2hhZG93RWxlbWVudCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCi0g
ICAgcmV0dXJuIG1fZW1iZWRTaGFkb3dFbGVtZW50LT5jcmVhdGVFbGVtZW50UmVuZGVyZXIoV1RG
Ojptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIG1fZW1iZWRTaGFkb3dFbGVtZW50LT5jcmVhdGVF
bGVtZW50UmVuZGVyZXIoV1RGOjptb3ZlKHN0eWxlKSwgaW5zZXJ0aW9uUG9zaXRpb24pOwogfQog
CiBib29sIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6aW5zdGFsbFJlcGxhY2VtZW50KFNoYWRv
d1Jvb3QqIHJvb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMv
WW91VHViZVBsdWdpblJlcGxhY2VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdp
bnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmgKaW5kZXggZWYwOGYzZDVmYTg4MzFkNzE0NWZi
MGY2ZDIwOTI2ZDNiODhiNjMwZC4uYWQ5ZjAzOTI3ZmFmY2MxYzBjNTVmYWNmYjFiNjdhOTJjYjNm
MTQ4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQ
bHVnaW5SZXBsYWNlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Z
b3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuaApAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgogICAg
IFN0cmluZyB5b3VUdWJlVVJMKGNvbnN0IFN0cmluZyYgcmF3VVJMKTsKICAgICAKICAgICB2aXJ0
dWFsIGJvb2wgd2lsbENyZWF0ZVJlbmRlcmVyKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9lbWJlZFNo
YWRvd0VsZW1lbnQ7IH0KLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVh
dGVFbGVtZW50UmVuZGVyZXIoSFRNTFBsdWdJbkVsZW1lbnQmLCBSZWY8UmVuZGVyU3R5bGU+JiYp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihIVE1MUGx1Z0luRWxlbWVudCYsIFJlZjxSZW5kZXJTdHlsZT4mJiwgY29u
c3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgCiAgICAgSFRNTFBsdWdJbkVs
ZW1lbnQqIG1fcGFyZW50RWxlbWVudDsKICAgICBSZWZQdHI8WW91VHViZUVtYmVkU2hhZG93RWxl
bWVudD4gbV9lbWJlZFNoYWRvd0VsZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBjMGIxYjVlNzM3MGUyOWJhMGU4YTljYTM1OGJh
NDg3ZmNhODdhMTE3Li5hYzgxNTM4Mzk3ZDA3MWE4MGY5OGVkMzUzNzI1OTE2MjUwZjlhNDQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAg
LTE4MDI4LDYgKzE4MDI4LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHN0b3JhZ2Vc
U3RvcmFnZU1hcC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxzdG9yYWdlXFN0
b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxzdHlsZVxJbmxpbmVUZXh0Qm94U3R5bGUuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cc3R5bGVcUmVuZGVyVHJlZVBvc2l0aW9uLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHN0eWxlXFN0eWxlRm9udFNpemVGdW5jdGlvbnMuY3BwIiAvPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cc3R5bGVcU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwIiAvPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cc3R5bGVcU3R5bGVSZXNvbHZlVHJlZS5jcHAiIC8+
CkBAIC0yMTY2NSw2ICsyMTY2Niw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxzdG9y
YWdlXFN0b3JhZ2VOYW1lc3BhY2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHN0
b3JhZ2VcU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxzdHlsZVxJbmxpbmVUZXh0Qm94U3R5bGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXHN0eWxlXFJlbmRlclRyZWVQb3NpdGlvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cc3R5bGVcU3R5bGVGb250U2l6ZUZ1bmN0aW9ucy5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cc3R5bGVcU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHN0eWxlXFN0eWxlUmVzb2x2ZVRyZWUuaCIgLz4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycwppbmRleCAyYTVkZDk2MDZkZWEyMjc5MDlmZDJiZDYzNTI2NDkxNWVmNmVmMDUwLi45
NWMzMWU4MTY5YTRkNjljMWM2ZDkzMWJhNjM4ZGNkNTcwN2EzZmFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBA
IC02NjI4LDYgKzY2MjgsOSBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cc3R5bGVcSW5s
aW5lVGV4dEJveFN0eWxlLmNwcCI+CiAgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgogICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cc3R5bGVcUmVuZGVyVHJlZVBv
c2l0aW9uLmNwcCI+CisgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxl
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cc3R5bGVcU3R5bGVGb250U2l6ZUZ1bmN0aW9u
cy5jcHAiPgogICAgICAgPEZpbHRlcj5jc3M8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAg
LTE0MDM5LDYgKzE0MDQyLDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHN0eWxlXElu
bGluZVRleHRCb3hTdHlsZS5oIj4KICAgICAgIDxGaWx0ZXI+Y3NzPC9GaWx0ZXI+CiAgICAgPC9D
bEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxzdHlsZVxSZW5kZXJUcmVlUG9z
aXRpb24uaCI+CisgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cc3R5bGVcU3R5bGVGb250U2l6ZUZ1bmN0aW9ucy5o
Ij4KICAgICAgIDxGaWx0ZXI+Y3NzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGY0
MDJiYjM1NTAwYWZjNTA2YmU5NmY1M2M0ZGRmMzY2OTQxNGRhZi4uYWJjNjdkMDUwNTFiNmRlMmM0
OTNiMTZiMWI1ZTY0NTljYWYwOTAxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjEyMSw2ICsyMTIxLDggQEAKIAkJNTgyNEFC
QTMxQUU4MTExNjAwOTA3NEI3IC8qIFJ1YnlFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1ODI0QUJBMTFBRTgxMTE2MDA5MDc0QjcgLyogUnVi
eUVsZW1lbnQuaCAqLzsgfTsKIAkJNTgyNEFCQTYxQUU4MTM4NDAwOTA3NEI3IC8qIFJ1YnlUZXh0
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1ODI0QUJBNDFBRTgxMzg0MDA5MDc0QjcgLyogUnVieVRleHRFbGVtZW50LmNwcCAqLzsgfTsK
IAkJNTgyNEFCQTcxQUU4MTM4NDAwOTA3NEI3IC8qIFJ1YnlUZXh0RWxlbWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTgyNEFCQTUxQUU4MTM4NDAw
OTA3NEI3IC8qIFJ1YnlUZXh0RWxlbWVudC5oICovOyB9OworCQk1ODI0QUJBQTFBRTg0OUM4MDA5
MDc0QjcgLyogUmVuZGVyVHJlZVBvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU4MjRBQkE4MUFFODQ5QzgwMDkwNzRCNyAvKiBSZW5kZXJU
cmVlUG9zaXRpb24uY3BwICovOyB9OworCQk1ODI0QUJBQjFBRTg0OUM4MDA5MDc0QjcgLyogUmVu
ZGVyVHJlZVBvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1ODI0QUJBOTFBRTg0OUM4MDA5MDc0QjcgLyogUmVuZGVyVHJlZVBvc2l0aW9uLmgg
Ki87IH07CiAJCTU4MkNCMDUzMUE3OEExNEIwMEFGRkNDNCAvKiBTaW1wbGVMaW5lTGF5b3V0VGV4
dEZyYWdtZW50SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDU4MkNCMDUyMUE3OEExNEIwMEFGRkNDNCAvKiBTaW1wbGVMaW5lTGF5b3V0VGV4
dEZyYWdtZW50SXRlcmF0b3IuaCAqLzsgfTsKIAkJNTgyQ0IwNTUxQTc4QTJCMjAwQUZGQ0M0IC8q
IFNpbXBsZUxpbmVMYXlvdXRUZXh0RnJhZ21lbnRJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1ODJDQjA1NDFBNzhBMkIyMDBBRkZDQzQg
LyogU2ltcGxlTGluZUxheW91dFRleHRGcmFnbWVudEl0ZXJhdG9yLmNwcCAqLzsgfTsKIAkJNTg1
RDZERkMxQTE1MzU1NjAwRkE0RjEyIC8qIFNpbXBsZUxpbmVMYXlvdXRSZXNvbHZlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1ODVENkRGQjFBMTUz
NTU2MDBGQTRGMTIgLyogU2ltcGxlTGluZUxheW91dFJlc29sdmVyLmNwcCAqLzsgfTsKQEAgLTkz
MzYsNiArOTMzOCw4IEBACiAJCTU4MjRBQkExMUFFODExMTYwMDkwNzRCNyAvKiBSdWJ5RWxlbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSdWJ5RWxlbWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1ODI0QUJBNDFBRTgxMzg0MDA5MDc0QjcgLyogUnVi
eVRleHRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJ1
YnlUZXh0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU4MjRBQkE1
MUFFODEzODQwMDkwNzRCNyAvKiBSdWJ5VGV4dEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUnVieVRleHRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTU4MjRBQkE4MUFFODQ5QzgwMDkwNzRCNyAvKiBSZW5kZXJUcmVlUG9zaXRpb24uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyVHJlZVBvc2l0aW9u
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTgyNEFCQTkxQUU4NDlDODAwOTA3
NEI3IC8qIFJlbmRlclRyZWVQb3NpdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW5kZXJUcmVlUG9zaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTgyQ0IwNTIxQTc4QTE0QjAwQUZGQ0M0IC8qIFNpbXBsZUxpbmVMYXlvdXRUZXh0RnJhZ21lbnRJ
dGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaW1wbGVMaW5lTGF5
b3V0VGV4dEZyYWdtZW50SXRlcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTgyQ0IwNTQxQTc4QTJCMjAwQUZGQ0M0IC8qIFNpbXBsZUxpbmVMYXlvdXRUZXh0RnJhZ21lbnRJ
dGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaW1wbGVM
aW5lTGF5b3V0VGV4dEZyYWdtZW50SXRlcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1ODVENkRGQjFBMTUzNTU2MDBGQTRGMTIgLyogU2ltcGxlTGluZUxheW91dFJlc29s
dmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNpbXBsZUxpbmVM
YXlvdXRSZXNvbHZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjI3NCw2
ICsyMjI3OCw4IEBACiAJCUU0NzYzRDRBMTdCMjcwNDkwMEQzNTIwNiAvKiBzdHlsZSAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNTgyNEFCQTgxQUU4NDlD
ODAwOTA3NEI3IC8qIFJlbmRlclRyZWVQb3NpdGlvbi5jcHAgKi8sCisJCQkJNTgyNEFCQTkxQUU4
NDlDODAwOTA3NEI3IC8qIFJlbmRlclRyZWVQb3NpdGlvbi5oICovLAogCQkJCTFDMDEwNkZFMTky
NTk0REYwMDhBNDIwMSAvKiBJbmxpbmVUZXh0Qm94U3R5bGUuY3BwICovLAogCQkJCTFDMDEwNkZG
MTkyNTk0REYwMDhBNDIwMSAvKiBJbmxpbmVUZXh0Qm94U3R5bGUuaCAqLywKIAkJCQlFNEQ1OEVC
NjE3QjRFRDg5MDBDQkRDQTggLyogU3R5bGVGb250U2l6ZUZ1bmN0aW9ucy5jcHAgKi8sCkBAIC0y
NDc0NCw2ICsyNDc1MCw3IEBACiAJCQkJOTc0NkFGMjkxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xv
Y2F0aW9uUG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjYyNTJGMThERTFCMTUwMEEw
N0MwNSAvKiBHZW9tZXRyeVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc0NkFGMkEx
NEY0RERFNjAwM0U3QTcwIC8qIEdlb3Bvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk1ODI0
QUJBQjFBRTg0OUM4MDA5MDc0QjcgLyogUmVuZGVyVHJlZVBvc2l0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwODZCQkQwRjEzNjAzOUMyMDA4QjE1RDggLyogR2x5cGguaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyQzNEQTZDMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaEJ1ZmZlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQzVENEFBN0ExMTZCQUZCNjAwNjlDQTkzIC8qIEdseXBoTWV0cmljc01hcC5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yOTkyMSw2ICsyOTkyOCw3IEBACiAJCQkJQkMyMjczMDMwRTgy
RjFFNjAwRTdGOTc1IC8qIFN0eWxlSW5oZXJpdGVkRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlFNDcxMjdDQTE2MzQzOEExMDBFRDZGNUEgLyogU3R5bGVJbnZhbGlkYXRpb25BbmFseXNpcy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzVFQjcyOTBFODFERTgxMDBCMjU5NjUgLyogU3R5bGVN
YXJxdWVlRGF0YS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1ODI0QUJBQTFBRTg0OUM4MDA5MDc0
QjcgLyogUmVuZGVyVHJlZVBvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjUwMjcx
MTAyQkE5NkEwMDY2RjM5QSAvKiBTdHlsZU1lZGlhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdD
NEVERDc0MUE3QjYwNzgwMDE5OEM0RCAvKiBGb250Q29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJ
CQlCQzVFQjc0RDBFODFFMDY3MDBCMjU5NjUgLyogU3R5bGVNdWx0aUNvbERhdGEuY3BwIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggZjk2ZmFjYmViM2UwNzM3MjVhZDA4
MzIyNmI1ZmQ5YTE0YzJmOTYxOS4uYjIzOGQ4MThjYWQxODQ3Y2RlYTUzMDQyNzU1Yzc2ZmNmMjcy
OThmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTQ5Niw3ICsxNDk2LDcgQEAgYm9vbCBF
bGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKICAgICBy
ZXR1cm4gc3R5bGUuZGlzcGxheSgpICE9IE5PTkU7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0
eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYp
CiB7CiAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgV1RGOjptb3Zl
KHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCBkYmYzYjZjYjM2NjU1ZjA0ZDlhNjdm
ZTE1NDZmNzE0ZmI1NDc4Y2NhLi41YTY4N2IwMWZhNDIzYTY4OTA3MzIxOTYxNjdkMjU5NzY0NjA1
NzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgY2xhc3MgUGxhdGZvcm1N
b3VzZUV2ZW50OwogY2xhc3MgUGxhdGZvcm1XaGVlbEV2ZW50OwogY2xhc3MgUHNldWRvRWxlbWVu
dDsKIGNsYXNzIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50OworY2xhc3MgUmVuZGVyVHJlZVBvc2l0
aW9uOwogY2xhc3MgU2hhZG93Um9vdDsKIAogZW51bSBTcGVsbGNoZWNrQXR0cmlidXRlU3RhdGUg
ewpAQCAtMjQyLDcgKzI0Myw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBjb3B5Tm9u
QXR0cmlidXRlUHJvcGVydGllc0Zyb21FbGVtZW50KGNvbnN0IEVsZW1lbnQmKSB7IH0KIAotICAg
IHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZWY8UmVuZGVyU3R5bGU+JiYpOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRy
ZWVQb3NpdGlvbiYpOwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJl
bmRlclN0eWxlJik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBTaGFkb3dSb290KiBzaGFkb3dSb290
KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCmluZGV4
IDUxZmNmMmU1ZDliNWFhNGFkOWI1YjQ5YTY3OGNjMmE4OTEwYzA0NTEuLjViNWVhNjg4YzIxZDhh
ODAwMmNiZTNmZmUyOGQwYjFmMzk4YWYwYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFw
cGxldEVsZW1lbnQuY3BwCkBAIC03NSw3ICs3NSw3IEBAIGJvb2wgSFRNTEFwcGxldEVsZW1lbnQ6
OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogICAgIHJldHVybiBI
VE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKHN0eWxlKTsKIH0KIAotUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxBcHBsZXRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IEhUTUxBcHBsZXRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIGlmICghY2FuRW1i
ZWRKYXZhKCkpCiAgICAgICAgIHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRoaXMs
IFdURjo6bW92ZShzdHlsZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QXBwbGV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5o
CmluZGV4IGYwZGM5MjA3N2Y4ZWExODIyOTg1MDI5NjdmNzZkYTQ3ZWI0YTRjN2YuLmVhODk0MWU1
ODRiMjFjYzM1M2FhODEyYzBiYjVjNDZlZWFlN2ZiNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBcHBsZXRFbGVtZW50LmgKQEAgLTM3LDcgKzM3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0
cmluZyYpIG92ZXJyaWRlOwogICAgIAogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVk
KGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikg
b3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIFJlbmRlcldpZGdldCogcmVuZGVyV2lkZ2V0TG9hZGlu
Z1BsdWdpbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVXaWRnZXQo
UGx1Z2luQ3JlYXRpb25PcHRpb24pIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQXR0YWNobWVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQXR0YWNobWVudEVsZW1lbnQuY3BwCmluZGV4IDg0ZDgxNmUzZDA1MzM5ZDZiOTJmZjY0YTU3
MTViMzgxOWNmMGFiZDIuLjJmMjYxYTU5MmViODc2ZGI1Y2NhY2M0YjZkOWJiODdkOGI2M2U3M2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dGFjaG1lbnRFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5jcHAKQEAg
LTUxLDcgKzUxLDcgQEAgUmVmPEhUTUxBdHRhY2htZW50RWxlbWVudD4gSFRNTEF0dGFjaG1lbnRF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGEKICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBIVE1MQXR0YWNobWVudEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAot
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxBdHRhY2htZW50RWxlbWVudDo6Y3JlYXRlRWxl
bWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBIVE1MQXR0YWNobWVudEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAg
cmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckF0dGFjaG1lbnQ+KCp0aGlzLCBXVEY6Om1vdmUo
c3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dGFjaG1l
bnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5o
CmluZGV4IDU4Mjk2ODc1MDAwMmNkMjAxMGIxNzkxZjRhODg0OGQzZTE2MjJmMjMuLjQ2YTM0ZWQ5
MWVmMTI5YzA2ODM3ZGEyODY3NjY2ZWI3MjI2NDJlNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEF0dGFjaG1lbnRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQXR0YWNobWVudEVsZW1lbnQuaApAQCAtNDYsNyArNDYsNyBAQCBwcml2YXRlOgogICAg
IEhUTUxBdHRhY2htZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsK
ICAgICB2aXJ0dWFsIH5IVE1MQXR0YWNobWVudEVsZW1lbnQoKTsKIAotICAgIHZpcnR1YWwgUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQ
b3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHNob3VsZFNlbGVjdE9uTW91
c2VEb3duKCkgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBjYW5D
b250YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQlJFbGVtZW50LmNwcAppbmRleCA1Yjk1OGU2NTk3MGZlYzFkMjdk
NmFkZTc1NmRjMzBlNWZiMTkyMTNjLi41YmJjZmY3ZjRjMzIxMzhkMjZmMDVmNzU4Yjk4ZDUwN2Y0
OGQ4N2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5jcHAKQEAgLTcwLDcgKzcw
LDcgQEAgdm9pZCBIVE1MQlJFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmEKICAgICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxl
Y3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogfQog
Ci1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEJSRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBIVE1MQlJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYm
IHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIGlmIChzdHlsZS5nZXQo
KS5oYXNDb250ZW50KCkpCiAgICAgICAgIHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3Io
KnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQlJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuaApp
bmRleCBmNDUzMzg0YzVhZjZiOTM3OTI2NmQ4OTljYWJkODQwMjUzNzYyYzg4Li4yM2U0ZmVmYzY3
NjhjZDQzMWJiYmY4ZjU2YzkzYjk5YzhkMmE1NzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxCUkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVs
ZW1lbnQuaApAQCAtNDEsNyArNDEsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1By
ZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJv
cGVydGllcyYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQnV0dG9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVt
ZW50LmNwcAppbmRleCA3MDg0ZGVkZWM1YWE5ZDNkNGNmMGQ4MzEzZDgxYmY5MTkzMDVmZTkyLi45
NjNmZDgwYzZlMWE4ZmRkNTlhMmViY2ZmMWNiNzkyY2NiNTk4N2VhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcApAQCAtNTYsNyArNTYsNyBAQCB2b2lkIEhUTUxC
dXR0b25FbGVtZW50OjpzZXRUeXBlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSkKICAgICBzZXRB
dHRyaWJ1dGUodHlwZUF0dHIsIHR5cGUpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
SFRNTEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+
JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEJ1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckJ1dHRv
bj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0
dG9uRWxlbWVudC5oCmluZGV4IGZhZGY3ODVlOWI2Mjg5MDJmYTMxNDJhMWE1MWQ0NDNmM2JhYWYz
ZGQuLjVkN2RmODA2MjA3YWExMTdkZjgyODc5ZWFhMjgzN2ZkNTFiY2MxYWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHJpdmF0ZToK
IAogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25z
dCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAg
Ly8gSFRNTEZvcm1Db250cm9sRWxlbWVudCBhbHdheXMgY3JlYXRlcyBvbmUsIGJ1dCBidXR0b25z
IGRvbid0IG5lZWQgaXQuCiAgICAgdmlydHVhbCBib29sIGFsd2F5c0NyZWF0ZVVzZXJBZ2VudFNo
YWRvd1Jvb3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAppbmRleCBlOTQ2NzJmMWRjNjJkODI0OTRhNTVm
NWU2YmUzYjQyMDdkY2VmNGYwLi5iMjJkOGMxNzQ0NzZkOTdmZDk3Y2UwMzAwOWIwMWJkMjBjYThj
YTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApAQCAtMTA2
LDcgKzEwNiw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0CiAgICAgSFRNTEVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxDYW52YXNFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5k
ZXJUcmVlUG9zaXRpb24mIGluc2VydGlvblBvc2l0aW9uKQogewogICAgIEZyYW1lKiBmcmFtZSA9
IGRvY3VtZW50KCkuZnJhbWUoKTsKICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPnNjcmlwdCgpLmNh
bkV4ZWN1dGVTY3JpcHRzKE5vdEFib3V0VG9FeGVjdXRlU2NyaXB0KSkgewpAQCAtMTE1LDcgKzEx
NSw3IEBAIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsCiAgICAgfQogCiAgICAgbV9yZW5kZXJlcklz
Q2FudmFzID0gZmFsc2U7Ci0gICAgcmV0dXJuIEhUTUxFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoV1RGOjptb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIEhUTUxFbGVtZW50OjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIoV1RGOjptb3ZlKHN0eWxlKSwgaW5zZXJ0aW9uUG9zaXRpb24pOwogfQog
CiBib29sIEhUTUxDYW52YXNFbGVtZW50OjpjYW5Db250YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKaW5kZXggZTQ5YWM1MzZjZmNk
Zjg0MjY0NjJhMDk1ZDRjYTA3Yzc1ZDA1YjU0Mi4uOGVmMGVlZTliNzBjMjhhY2JhZDAzMDk3Zjc4
YzViYzg5ODAzNDk1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaApA
QCAtMTQxLDcgKzE0MSw3IEBAIHByaXZhdGU6CiAgICAgSFRNTENhbnZhc0VsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRl
OwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYs
IGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29s
IGNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBi
b29sIGNhblN0YXJ0U2VsZWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKaW5kZXggNDQ1NzRiZWJiMjRhM2NjYmIwYjE5MjQw
NDE1NTRmMjUxMTJhZTRiOS4uZWQzZmNkZTFhMTI2ZmI0Y2FjZTQ0NThmMTZkYzRiM2ZkYWYxZjc0
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcApAQCAtMTEx
LDcgKzExMSw3IEBAIEhUTUxEZXRhaWxzRWxlbWVudDo6SFRNTERldGFpbHNFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkCiAgICAgQVNTRVJUKGhhc1RhZ05h
bWUoZGV0YWlsc1RhZykpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTERldGFp
bHNFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxl
KQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxEZXRhaWxzRWxlbWVudDo6Y3JlYXRlRWxl
bWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBv
c2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyQmxvY2tGbG93Pigq
dGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWls
c0VsZW1lbnQuaAppbmRleCBkYmZmYzVmM2QxNjhhY2FhYjVkNWEzYTQ1NmI5Y2Y4ZmY4MTBkYWI0
Li4xOGQyNjU1Y2E0ZjM0NjIxOGJlOWU2ZDc2YmIzNjk4ODM1YzQ2MjFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgKQEAgLTM1LDcgKzM1LDcgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBIVE1MRGV0YWlsc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRl
clN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxF
bGVtZW50LmNwcAppbmRleCBhNjYxMjM3MGViODM0Mzk3YWJjMGQ0OWZiYTFmNzYwZWMyNjY0Mzdj
Li44MGRkZTZiYTE2NTI0NjBhMThmYTg3MGVmOGM0Y2U4ZDNhMjJhODAwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmNwcApAQCAtODgwLDcgKzg4MCw3IEBAIGJvb2wgSFRNTEVsZW1lbnQ6
OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogICAgIHJldHVybiBT
dHlsZWRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKHN0eWxlKTsKIH0KIAotUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IEhUTUxFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRl
clN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5k
ZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3Io
KnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCmlu
ZGV4IDc5NDlkNjIxNmUyYzllMDVlNWNiYTUwY2I5MGY1NzYzZWI0Y2IyOTkuLmRlMmI4YjM4Yjc3
MjRmZGU2YjA0NWRmYzFmZDcyYTI3MTdiODNmZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50
LmgKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogICAgIGJvb2wgaWVGb3JiaWRzSW5zZXJ0SFRN
TCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVu
ZGVyU3R5bGUmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsK
IAogICAgIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpIGNvbnN0IHsgcmV0dXJuIHZpcnR1YWxGb3Jt
KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKaW5k
ZXggYTEzM2E1MDhjMzY3NjY4YzNmZTlhZDcxNjg5Njk1MWQ3ZTdlYzAxYy4uYWMzMzJlODcwMjI2
MThjMmU0OTNiNjk3N2IwODNkNTVhYjg2YWQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGaWVsZFNldEVsZW1lbnQuY3BwCkBAIC0xNDksNyArMTQ5LDcgQEAgY29uc3QgQXRvbWljU3Ry
aW5nJiBIVE1MRmllbGRTZXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogICAgIHJl
dHVybiBmaWVsZHNldDsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxGaWVsZFNl
dEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUp
CitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEZpZWxkU2V0RWxlbWVudDo6Y3JlYXRlRWxl
bWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBv
c2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyRmllbGRzZXQ+KCp0
aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRT
ZXRFbGVtZW50LmgKaW5kZXggNmJjNmUxY2JmNDA5Nzk3NjFjOGY0ZjIwZjc4ODcwM2E4MWQwYzIx
Ni4uMGQ0ZTM2NzA2ZjE2YWMwZWJkY2JlYzA2ODljOTQwYmVlY2Q5ZDdmNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmgKQEAgLTUxLDcgKzUxLDcgQEAgcHJpdmF0
ZToKIAogICAgIHZpcnR1YWwgYm9vbCBpc0VudW1lcmF0YWJsZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IG92
ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
Y29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIGJvb2wgY29tcHV0ZVdpbGxWYWxpZGF0ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpc2FibGVkQXR0cmlidXRlQ2hhbmdlZCgp
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5jcHAKaW5kZXgg
OWRiMDI1NTBkZDRlMzA5MDFiNDA4ODNlODY1ODJmN2VjODIwY2ZmZC4uYWYxYTUyMmJjYWM5MjM0
MjhhMDU5YTAxZTJkYWQ5ZmNiN2NmNWMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRnJhbWVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZUVsZW1lbnQuY3BwCkBAIC01Myw3ICs1Myw3IEBAIGJvb2wgSFRNTEZyYW1lRWxlbWVudDo6cmVu
ZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpCiAgICAgcmV0dXJuIGlzVVJMQWxsb3dl
ZCgpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEZyYW1lRWxlbWVudDo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBIVE1MRnJhbWVFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVm
PFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAg
IHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJGcmFtZT4oKnRoaXMsIFdURjo6bW92ZShzdHls
ZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuaAppbmRleCBjYTBhZjc0
MGQ5NjllY2RkNGI4NmNjM2Y4NTI5NWYyOWY1MTJkYmY0Li44NzY4OGMwN2UxMzQ0MjY3OGUxYzk5
ZjdhODYzNWM1ZjdhNTFjODY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
cmFtZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQu
aApAQCAtNDIsNyArNDIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRBdHRhY2hS
ZW5kZXJlcnMoKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVk
KGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikg
b3ZlcnJpZGU7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAKaW5kZXggNjc2NjdkNTU0MmM2ZGNi
ZDI0YzVmNmE4Y2M2Mzk3YTlmMjBkNGZmOS4uMWI3ZGQxOGQ0ZjcwNDZmZWY4MjkwMDJmNzcwN2Nh
Y2EwMGM0OWY5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQu
Y3BwCkBAIC0xNTcsNyArMTU3LDcgQEAgYm9vbCBIVE1MRnJhbWVTZXRFbGVtZW50OjpyZW5kZXJl
cklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKICAgICByZXR1cm4gc3R5bGUuaXNT
dHlsZUF2YWlsYWJsZSgpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEZyYW1l
U2V0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHls
ZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MRnJhbWVTZXRFbGVtZW50OjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVl
UG9zaXRpb24mKQogewogICAgIGlmIChzdHlsZS5nZXQoKS5oYXNDb250ZW50KCkpCiAgICAgICAg
IHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIFdURjo6bW92ZShzdHlsZSkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaAppbmRleCBmYmIzY2Ew
NmJhZWNjM2Q0NmQ3ZjQ2YjM5NTJjNDUzOTBmNzViZGFiLi42Y2Q4NWRjNDdhNThiMWU3NTU4YWMw
NmNlMDFhYTg0ZDY5NmUxMDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
cmFtZVNldEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVs
ZW1lbnQuaApAQCAtNTYsNyArNTYsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIHdp
bGxBdHRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJ
c05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+
JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3Np
dGlvbiYpIG92ZXJyaWRlOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5k
bGVyKEV2ZW50Kikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElGcmFtZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxl
bWVudC5jcHAKaW5kZXggNTM3ZDIzZTQ0YzA4ZmZiNDU1ZDQ4MzgyZDQyOTZkMzhmNDQzYjZlNy4u
ZTlkNTc1OTVlYzlkYzc3OWU1ODM4MGU0OGVjZTU0YzY2NDkzNGQ3YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgYm9vbCBIVE1M
SUZyYW1lRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUp
CiAgICAgcmV0dXJuIGlzVVJMQWxsb3dlZCgpICYmIHN0eWxlLmRpc3BsYXkoKSAhPSBOT05FOwog
fQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTElGcmFtZUVsZW1lbnQ6OmNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gSFRNTElGcmFtZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0
dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlcklGcmFtZT4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCmluZGV4IDU4ODlhMTlh
MDFmNTdhNzI5NWEzZDc0YjYwNDUyMzYxMTEyNTdiZDIuLmEyZGJkNTY0ZTFkYmZjOTM2ODM1NTRm
MGU3MGRhYTg5MzIyZDA2MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElG
cmFtZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50
LmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0
eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiAKICAgICB2
aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRl
OwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYs
IGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXgg
ODk5NTRjZjQzNTk3NWIzNWM1NzY5YWQ3ZmNmZTBhMTMzNTgxYjk3Ny4uNjJlYTZmYzFjNjhlZGVm
MGVlNmIxZjY5NzhkYTgxNTA1MGI3OWJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFn
ZUVsZW1lbnQuY3BwCkBAIC0yMDEsNyArMjAxLDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBIVE1M
SW1hZ2VFbGVtZW50OjphbHRUZXh0KCkgY29uc3QKICAgICByZXR1cm4gZmFzdEdldEF0dHJpYnV0
ZSh0aXRsZUF0dHIpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEltYWdlRWxl
bWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1Jl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MSW1hZ2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24m
KQogewogICAgIGlmIChzdHlsZS5nZXQoKS5oYXNDb250ZW50KCkpCiAgICAgICAgIHJldHVybiBS
ZW5kZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAppbmRleCAwOGI5YmE4NTM4NTI2NmM1NWM2NmRm
YTg2MTM1N2RmZTEzOGEyMTNmLi5mMDY1ODQ5ZjA2NTMxNzI4Y2E4ZDUxMDEwMjdjMDlhOTNiOTdi
NjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaApAQCAtMTAxLDcgKzEw
MSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRh
dGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwg
TXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIGRp
ZEF0dGFjaFJlbmRlcmVycygpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92
ZXJyaWRlOwogICAgIHZvaWQgc2V0QmVzdEZpdFVSTEFuZERQUkZyb21JbWFnZUNhbmRpZGF0ZShj
b25zdCBJbWFnZUNhbmRpZGF0ZSYpOwogCiAgICAgdmlydHVhbCBib29sIGNhblN0YXJ0U2VsZWN0
aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmNwcAppbmRleCBlYzI0N2NlOThmMmJmODAzYzZlM2ZjMWUzMTcxYzg0MTE3MTBjOTBjLi43ZTAz
N2E5MzgwNDM5NWU0ZjhkNGZhMTY1ODIzNzY1ZjA0Zjc4NmNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTc3MSw3ICs3NzEsNyBAQCBib29sIEhUTUxJbnB1
dEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogICAg
IHJldHVybiBtX2lucHV0VHlwZS0+cmVuZGVyZXJJc05lZWRlZCgpICYmIEhUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKHN0eWxlKTsKIH0KIAotUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTElucHV0
RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwg
Y29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPmNy
ZWF0ZUlucHV0UmVuZGVyZXIoV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5oCmluZGV4IDIwZGI5NjE0YzdhZGRkZDU2YjNhMTk3ZWE3NzcxNDM3
N2UwNGI4M2UuLjliMjc1MDQxOWI0ZmM4NzI5Njk5MGYyZmVjODU4ZTUwZTllZDhhZGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0yMDAsNyArMjAwLDcgQEAgcHVi
bGljOgogICAgIGJvb2wgY2FuSGF2ZVNlbGVjdGlvbigpIGNvbnN0OwogCiAgICAgdmlydHVhbCBi
b29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSBmaW5hbDsK
LSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIFJlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0
dWFsIHZvaWQgd2lsbEF0dGFjaFJlbmRlcmVycygpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFs
IHZvaWQgZGlkRGV0YWNoUmVuZGVyZXJzKCkgb3ZlcnJpZGUgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBmODVlM2FjNGJjMzM4MDg1MDczOTdjYzQ5
YWQzNTQzZjM3MzljZDBjLi5lNTYxNjU1NzJiOTE3MmUwMzRmYTRkZTIxYjlhYjE2YzQ2YmQ2MmMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTU3Niw3ICs1
NzYsNyBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVu
ZGVyU3R5bGUmIHN0eWxlKQogICAgIHJldHVybiBjb250cm9scygpICYmIEhUTUxFbGVtZW50Ojpy
ZW5kZXJlcklzTmVlZGVkKHN0eWxlKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhU
TUxNZWRpYUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYg
c3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTE1lZGlhRWxlbWVudDo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJl
ZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWVkaWE+KCp0
aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmgKaW5kZXggZmQ5ZGNhMjQ5MDM5NjcyNjhhNjg0OWRjNWQ3NGZkOTc1NDlkNTYyZS4uZjYz
ZDBiNDYxODc0M2RlNDNmMzRjOWNlOGQ5ZmM2ZTE1OTkwODY4MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTQ4Miw3ICs0ODIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
dm9pZCBlbmRJZ25vcmluZ1RyYWNrRGlzcGxheVVwZGF0ZVJlcXVlc3RzKCk7CiAjZW5kaWYKIAot
ICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNv
bnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAjaWYgRU5BQkxFKE1FRElBX0NP
TlRST0xTX1NDUklQVCkKICAgICBib29sIG1lZGlhQ29udHJvbHNEZXBlbmRPblBhZ2VTY2FsZUZh
Y3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFDb250cm9sc0RlcGVuZE9uUGFnZVNjYWxlRmFj
dG9yOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcAppbmRleCAwZGFk
NDBhYjhmYzYwMTdkOWM4ODAxNDliODdkMTllZDViOGRlNGY1Li4yMmIyZjM5ODFlMzk1MjM3OTNm
NWUyYjMxZTZjYzVkMjhiZmE3NzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZXRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxl
bWVudC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgUmVmPEhUTUxNZXRlckVsZW1lbnQ+IEhUTUxNZXRl
ckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2MKICAgICBy
ZXR1cm4gbWV0ZXI7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MTWV0ZXJFbGVt
ZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxNZXRlckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYp
CiB7CiAgICAgaWYgKCFkb2N1bWVudCgpLnBhZ2UoKS0+dGhlbWUoKS5zdXBwb3J0c01ldGVyKHN0
eWxlLmdldCgpLmFwcGVhcmFuY2UoKSkpCiAgICAgICAgIHJldHVybiBSZW5kZXJFbGVtZW50Ojpj
cmVhdGVGb3IoKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZXRlckVsZW1lbnQuaAppbmRleCA1NGFiOWZjYTk4MmEwMmJhN2IyMWI0Njg1MGEyZmVlNDE3NmM5
MDAwLi5kMjM2NGIxN2MwZGZlNTQwNWE0ZGRiMmRkOTBhYjUyMTYyMjkwN2Y0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaApAQCAtNzAsNyArNzAsNyBAQCBwcml2YXRlOgog
CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRMYWJlbHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRl
clN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQbHVnSW5FbGVtZW50LmNwcAppbmRleCAwZjQxMmIyZDMxMmZhMmQyYTcxMzliMzZhZjgw
YWY2OTZlZGRkZjMwLi4yMjA0NmVhODQzNTU2YzQ4MGYxM2I3OTU2MzJlNzkzY2ZhNzQzYTk5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcApAQCAtMjkxLDEwICsy
OTEsMTAgQEAgTlBPYmplY3QqIEhUTUxQbHVnSW5FbGVtZW50OjpnZXROUE9iamVjdCgpCiAKICNl
bmRpZiAvKiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkgKi8KIAotUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IEhUTUxQbHVnSW5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJl
bmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxQbHVnSW5F
bGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBj
b25zdCBSZW5kZXJUcmVlUG9zaXRpb24mIGluc2VydGlvblBvc2l0aW9uKQogewogICAgIGlmICht
X3BsdWdpblJlcGxhY2VtZW50ICYmIG1fcGx1Z2luUmVwbGFjZW1lbnQtPndpbGxDcmVhdGVSZW5k
ZXJlcigpKQotICAgICAgICByZXR1cm4gbV9wbHVnaW5SZXBsYWNlbWVudC0+Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIG1fcGx1
Z2luUmVwbGFjZW1lbnQtPmNyZWF0ZUVsZW1lbnRSZW5kZXJlcigqdGhpcywgV1RGOjptb3ZlKHN0
eWxlKSwgaW5zZXJ0aW9uUG9zaXRpb24pOwogCiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJl
bmRlckVtYmVkZGVkT2JqZWN0PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgKaW5kZXggOGE3NWJiZTc1YjhiMWZiYzBiYTlm
ODIzMjY5ZWM4ZmVjYWYyZDVkYy4uNjI5NGQxNGRkZGY4NjBjYmJiYWQ2ODZlMTJlZmNjMTE3Zjdm
NjZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaApAQCAtMTAzLDcg
KzEwMyw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxl
cihFdmVudCopIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHJlcXVlc3RPYmplY3QoY29u
c3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMpOwotICAg
IHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0
IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRV
c2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QqKSBvdmVycmlkZTsKIAogICAgIC8vIFN1YmNs
YXNzZXMgc2hvdWxkIHVzZSBndWFyZGVkRGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQgaW5zdGVhZCBv
ZiBjYWxsaW5nIGRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50IGRpcmVjdGx5LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKaW5kZXggODNmMWI3ZTYwZTcz
MTkzYWVkMDFjMTdmNTE0YWUwYjVkOTAwYzM2My4uMTE5MDUxM2E5ZmRlNDMxNzZhNWNmYTRhMzZm
NDgyMjE5YjEzMGFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQuY3BwCkBAIC0xODksMTIgKzE4OSwxMiBAQCBib29sIEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQ6OndvdWxkTG9hZEFzTmV0c2NhcGVQbHVnaW4oY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFBs
dWdJbkltYWdlRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4m
JiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBS
ZW5kZXJUcmVlUG9zaXRpb24mIGluc2VydGlvblBvc2l0aW9uKQogewogICAgIEFTU0VSVCghZG9j
dW1lbnQoKS5pblBhZ2VDYWNoZSgpKTsKIAogICAgIGlmIChkaXNwbGF5U3RhdGUoKSA+PSBQcmVw
YXJpbmdQbHVnaW5SZXBsYWNlbWVudCkKLSAgICAgICAgcmV0dXJuIEhUTUxQbHVnSW5FbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoV1RGOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJldHVy
biBIVE1MUGx1Z0luRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFdURjo6bW92ZShzdHls
ZSksIGluc2VydGlvblBvc2l0aW9uKTsKIAogICAgIC8vIE9uY2UgYSBQbHVnSW4gRWxlbWVudCBj
cmVhdGVzIGl0cyByZW5kZXJlciwgaXQgbmVlZHMgdG8gYmUgdG9sZCB3aGVuIHRoZSBEb2N1bWVu
dCBnb2VzCiAgICAgLy8gaW5hY3RpdmUgb3IgcmVhY3RpdmF0ZXMgc28gaXQgY2FuIGNsZWFyIHRo
ZSByZW5kZXJlciBiZWZvcmUgZ29pbmcgaW50byB0aGUgcGFnZSBjYWNoZS4KQEAgLTIxOCw3ICsy
MTgsNyBAQCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZQogICAgIGlmIChpc0ltYWdlVHlwZSgpKQog
ICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVySW1hZ2U+KCp0aGlzLCBXVEY6Om1v
dmUoc3R5bGUpKTsKIAotICAgIHJldHVybiBIVE1MUGx1Z0luRWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFdURjo6bW92ZShzdHlsZSkpOworICAgIHJldHVybiBIVE1MUGx1Z0luRWxlbWVu
dDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFdURjo6bW92ZShzdHlsZSksIGluc2VydGlvblBvc2l0
aW9uKTsKIH0KIAogYm9vbCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0
ZVJlbmRlcmVyKGNvbnN0IE5vZGUmIGNoaWxkKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaAppbmRleCA5ZjI4ZTJlZTg2ZDFhOTJhN2FkMmE4NWQx
ZWMxN2NkZDI1ZWI2OGMxLi5lMDQ5NWI3NGQyNGM3YWU3YTc1ZDZhZTQ1ZDNhYzQ2ZTg1ZjNiNTJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaApAQCAt
MTE3LDcgKzExNyw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGZpbmlzaFBhcnNpbmdD
aGlsZHJlbigpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRVc2VyQWdl
bnRTaGFkb3dSb290KFNoYWRvd1Jvb3QqKSBvdmVycmlkZSBmaW5hbDsKIAotICAgIHZpcnR1YWwg
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVy
U3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRy
ZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0
ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wg
d2lsbFJlY2FsY1N0eWxlKFN0eWxlOjpDaGFuZ2UpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZSBmaW5hbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCmluZGV4IDAxMmM2ZGYxMjk4MTBjNzRk
YzZmNDRhNjIwNDRmNTMzZGVkZGQ3YzMuLjg3ZjBlMzcwY2EwMmMzYWM5YmIxNDZmYjliZDA3NmVi
YjRhNDg1MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNw
cApAQCAtNTYsNyArNTYsNyBAQCBSZWY8SFRNTFByb2dyZXNzRWxlbWVudD4gSFRNTFByb2dyZXNz
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbQogICAgIHJldHVybiBw
cm9ncmVzczsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxQcm9ncmVzc0VsZW1l
bnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFByb2dyZXNzRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9u
JikKIHsKICAgICBpZiAoIXN0eWxlLmdldCgpLmhhc0FwcGVhcmFuY2UoKSkKICAgICAgICAgcmV0
dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCmluZGV4IGY3ZGMwYzBhYTIz
NDdiM2YyNjJmZjkxMzgwNWQ3MGIyYzY4YjVhNWQuLmI3YjQ1YTU5YWFkOTQ1NGI4MTJmYTAzZDAz
ODllZTVhOGEzMjMxYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dy
ZXNzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVu
dC5oCkBAIC01Miw3ICs1Miw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHNob3VsZEFw
cGVhckluZGV0ZXJtaW5hdGUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgc3Vw
cG9ydExhYmVscygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1
YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENy
ZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKICAgICBSZW5kZXJQcm9n
cmVzcyogcmVuZGVyUHJvZ3Jlc3MoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
ZWxlY3RFbGVtZW50LmNwcAppbmRleCA4Yjg3OTNhZmJjZTg0NTRlODJiNjQ4MTc5MDU2YTg5OTU1
OGFlMjU0Li5kNTA1ZjNmMTBhMGM0ODUyNDQ1OGI5NDU0ZDRlZWJkNGM5NTdkNzcwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApAQCAtMzUwLDcgKzM1MCw3IEBA
IGJvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OmNhblNlbGVjdEFsbCgpIGNvbnN0CiAgICAgcmV0dXJu
ICF1c2VzTWVudUxpc3QoKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxTZWxl
Y3RFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxl
KQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxTZWxlY3RFbGVtZW50OjpjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9z
aXRpb24mKQogewogI2lmICFQTEFURk9STShJT1MpCiAgICAgaWYgKHVzZXNNZW51TGlzdCgpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCmluZGV4IDg4N2EwNmE2YjBlZmY2
NDEzMzkzZjc1NzBjZTAxNGQyNDNmYzc2NDIuLmExNTVkZjBhYjc5MDE5YWI1YmExNjJjZjg2ZDVk
OTA1MDQyZmE1MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKQEAg
LTEzOCw3ICsxMzgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlv
bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2
aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qg
b3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxl
bWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJT
dHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCBib29sIGFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wpIG92ZXJyaWRlOwogCiAg
ICAgdmlydHVhbCB2b2lkIHJlc2V0KCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTdW1tYXJ5RWxlbWVudC5jcHAKaW5kZXggYTAxYzAxMjNhZWU3OGVkZjA2MGQ2NTY0ZDZjY2E4
ZjgzZTMwYTgzMS4uMWM0Y2MzYjk2OTc0ZWMzMjg3MGI4MTIxODFkOTZkNDE1ZWU0ZTIzNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcApAQCAtNjUsNyArNjUs
NyBAQCBIVE1MU3VtbWFyeUVsZW1lbnQ6OkhUTUxTdW1tYXJ5RWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZAogICAgIEFTU0VSVChoYXNUYWdOYW1lKHN1bW1h
cnlUYWcpKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxTdW1tYXJ5RWxlbWVu
dDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBIVE1MU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYp
CiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckJsb2NrRmxvdz4oKnRoaXMsIFdU
Rjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U3VtbWFyeUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50
LmgKaW5kZXggMjMzYWE0MmVkZDY1ZjI5ZjE2ZjhlZDVkNjhmN2E2OGQwYzcwMDQzZi4uNDgwOWNl
NDQ1NWM0YzQ0NjdkZDBhOTdkM2E1MWI2MDU1OTZmNjI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTdW1tYXJ5RWxlbWVudC5oCkBAIC0zNyw3ICszNyw3IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgSFRNTFN1bW1hcnlFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4m
JiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29s
IGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kikgb3ZlcnJpZGU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCmluZGV4IGJiM2I0
NTJkYWFmMzVlMzM4ZjBkZGM5ZjdhNTc1YTI0OGUyZWQ5YmQuLjRhOTY0ZjhmYWY3NjVjOThlOGJi
ZmI5ZGY0NGI1YWIyNmFkNWU5NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFy
ZWFFbGVtZW50LmNwcApAQCAtMjA5LDcgKzIwOSw3IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWlj
CiAgICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1l
LCB2YWx1ZSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MVGV4dEFyZWFFbGVt
ZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlv
biYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclRleHRDb250cm9sTXVsdGlM
aW5lPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5oCmluZGV4IGQ0NTZmMWJhNzViMGQ4ZWViY2UwODY5MzU1NjI1MTRh
YWU0YzQwMDQuLmMzNThjYzEwMzAxZjE4MjdiMWY5YzA4YWIxZGRlMzhkNjQyMGQ1N2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCkBAIC0xMDEsNyArMTAxLDcg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9v
bCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0
eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmLCBib29s
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzZXQoKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIGJvb2wgaGFzQ3VzdG9tRm9jdXNMb2dpYygpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKaW5kZXggYWYyYTU5ODg5NWM5ODhjNjMxNTM1
ODJiZDkzNTEzZTM3MDA3MzdlYy4uMjk5ZDcyNDkxZGFmYjNjM2YzODMxY2FmZTkwZTdmMDY0YTZl
NjkxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCkBAIC02OCw3
ICs2OCw3IEBAIGJvb2wgSFRNTFZpZGVvRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBS
ZW5kZXJTdHlsZSYgc3R5bGUpCiAgICAgcmV0dXJuIEhUTUxFbGVtZW50OjpyZW5kZXJlcklzTmVl
ZGVkKHN0eWxlKTsgCiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MVmlkZW9FbGVt
ZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxWaWRlb0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYp
CiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclZpZGVvPigqdGhpcywgV1RGOjpt
b3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRl
b0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCmluZGV4
IDlmM2QxOWNjNDJjMzM0MDdhYzRhMzhiYzkyZjFmOWY3Mjc1ZjU2NjguLmU4ZDZjZDkwMDY2MjI5
N2RjYzM3N2Y3NmI5YjRjMDVlZDBjNjU4MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFZpZGVvRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVv
RWxlbWVudC5oCkBAIC03Niw3ICs3Niw3IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZERpc3Bs
YXlQb3N0ZXJJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIGRpc3BsYXlNb2RlKCkgPT0gUG9zdGVyIHx8
IGRpc3BsYXlNb2RlKCkgPT0gUG9zdGVyV2FpdGluZ0ZvclZpZGVvOyB9CiAKICAgICBVUkwgcG9z
dGVySW1hZ2VVUkwoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsK
IAogI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKICAgICBib29sIHdlYmtpdFN1
cHBvcnRzUHJlc2VudGF0aW9uTW9kZShjb25zdCBTdHJpbmcmKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFdCUkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MV0JSRWxlbWVudC5jcHAKaW5kZXggZmYxZGI2ZDk2NzBlODc0NzNlYTRmYWUxNWMz
OTdlNTE1ZTk5ZDBiNy4uNGU5ZTYzMGYzNGVkNGVjNjMxN2ZmOTYzNTMzM2YxNWU3ZjNiMGVjZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MV0JSRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MV0JSRWxlbWVudC5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAg
SFRNTFdCUkVsZW1lbnQ6OkhUTUxXQlJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICBBU1NFUlQoaGFzVGFnTmFtZSh3YnJUYWcpKTsK
IH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxXQlJFbGVtZW50OjpjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IEhUTUxXQlJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0
eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBj
cmVhdGVSZW5kZXJlcjxSZW5kZXJMaW5lQnJlYWs+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFdCUkVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFdCUkVsZW1lbnQuaAppbmRleCAzNTIzMzNmOGU4ZDRhODYz
YzVhNWZmY2M2NzUzOTFmNjcxZGJiYzE0Li43MDQ3NTE2YTcwYjllYTI4OTQwMmJiNmM1MGZmMGE5
OWQzZDBhNDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxXQlJFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MV0JSRWxlbWVudC5oCkBAIC0zNyw3ICsz
Nyw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTFdCUkVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlk
ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvUnVieUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SdWJ5RWxlbWVu
dC5jcHAKaW5kZXggN2E5MjFlZDMyN2FkYjk5ZTE1NGJjYmNlZTM1YTYyNDMyNzZiZGI1NC4uMDk1
Nzg5M2I1Y2VmYjE2NDM5MjM0ZjdkM2Y5ZWZiODllYTllNDQxNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9SdWJ5RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9S
dWJ5RWxlbWVudC5jcHAKQEAgLTQzLDEzICs0MywxMyBAQCBSZWY8UnVieUVsZW1lbnQ+IFJ1YnlF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
YwogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJ1YnlFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBSdWJ5RWxlbWVudDo6Y3JlYXRlRWxl
bWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBSdWJ5RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHls
ZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJiBpbnNlcnRpb25Qb3NpdGlvbikK
IHsKICAgICBpZiAoc3R5bGUtPmRpc3BsYXkoKSA9PSBJTkxJTkUpCiAgICAgICAgIHJldHVybiBj
cmVhdGVSZW5kZXJlcjxSZW5kZXJSdWJ5QXNJbmxpbmU+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUp
KTsKICAgICBpZiAoc3R5bGUtPmRpc3BsYXkoKSA9PSBCTE9DSyB8fCBzdHlsZS5nZXQoKS5kaXNw
bGF5KCkgPT0gSU5MSU5FX0JMT0NLKQogICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVu
ZGVyUnVieUFzQmxvY2s+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKLSAgICByZXR1cm4gSFRN
TEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihXVEY6Om1vdmUoc3R5bGUpKTsKKyAgICBy
ZXR1cm4gSFRNTEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihXVEY6Om1vdmUoc3R5bGUp
LCBpbnNlcnRpb25Qb3NpdGlvbik7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUnVieUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUnVieUVsZW1lbnQuaApp
bmRleCA4YmNlNWRjZDRiZmRlYzk0YzAzMDc4Y2EzODZkNWI3NTIxN2YzYTA4Li5kNWIwMmVkNjIw
NTQ0NmU5YWY0NzRjODIyYTA2Mzk4MzUxMjM4YzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1J1YnlFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SdWJ5RWxlbWVu
dC5oCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBSdWJ5RWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYm
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRp
b24mKSBvdmVycmlkZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
UnVieVRleHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUnVieVRleHRFbGVtZW50
LmNwcAppbmRleCBlNmIyMzYyZjE0Yjg4NzQ5OTAzYzllMWYyZmY4YzliMDkyZmQyNWJmLi4yYzFh
OGI0OWQ0MTU3YzJlOTU5OGM4OWYyNTJiMTMyMTBiODkyNWIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1J1YnlUZXh0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9SdWJ5VGV4dEVsZW1lbnQuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJSZW5k
ZXJSdWJ5LmgiCiAjaW5jbHVkZSAiUmVuZGVyUnVieVRleHQuaCIKKyNpbmNsdWRlICJSZW5kZXJU
cmVlUG9zaXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00NCwxMiArNDUsMTIg
QEAgUmVmPFJ1YnlUZXh0RWxlbWVudD4gUnVieVRleHRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW0KICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSdWJ5
VGV4dEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IFJ1YnlUZXh0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJT
dHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBSdWJ5VGV4dEVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJl
bmRlclRyZWVQb3NpdGlvbiYgaW5zZXJ0aW9uUG9zaXRpb24pCiB7Ci0gICAgLy8gVHJlYXQgPHJ0
PiBhcyBydWJ5IHRleHQgT05MWSBpZiB0aGUgcGFyZW50IGlzIHJ1YnkuCi0gICAgaWYgKHBhcmVu
dEVsZW1lbnQoKSAmJiBpc1J1YnkocGFyZW50RWxlbWVudCgpLT5yZW5kZXJlcigpKSkKKyAgICAv
LyBSZW5kZXJSdWJ5VGV4dCByZXF1aXJlcyBpdHMgcGFyZW50IHRvIGJlIFJlbmRlclJ1YnlSdW4u
CisgICAgaWYgKGlzUnVieShpbnNlcnRpb25Qb3NpdGlvbi5wYXJlbnQoKSkpCiAgICAgICAgIHJl
dHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJSdWJ5VGV4dD4oKnRoaXMsIFdURjo6bW92ZShzdHls
ZSkpOwotICAgIHJldHVybiBIVE1MRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFdURjo6
bW92ZShzdHlsZSkpOworICAgIHJldHVybiBIVE1MRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKFdURjo6bW92ZShzdHlsZSksIGluc2VydGlvblBvc2l0aW9uKTsKIH0KIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SdWJ5VGV4dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvUnVieVRleHRFbGVtZW50LmgKaW5kZXggMGFjNWEwYzUxMTQ3ZGM5MmIzZTYxN2Qy
YjcxNjYwNzFhMjMyZmQzNy4uYmZiNmJjNWU1ODVmNGE5MzRkZGMyNDE5MmY4MzNjNWE0ZGZhYzhl
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SdWJ5VGV4dEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1J1YnlUZXh0RWxlbWVudC5oCkBAIC0zNiw3ICszNiw3IEBA
IHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBSdWJ5VGV4dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFy
a2VyQ29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2Vy
Q29udHJvbC5jcHAKaW5kZXggYjQ5NmE5MDRlYTNkNmY5MzVhOWMwNjQzYmU4ZWNjZTVlOWVjODc3
NS4uNjc2YjFlY2ZmZjliZDM4NmQ0MmE5ZTkyMjZlY2QxY2Q4Y2E0ZWYxZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcApAQCAt
NTAsNyArNTAsNyBAQCBEZXRhaWxzTWFya2VyQ29udHJvbDo6RGV0YWlsc01hcmtlckNvbnRyb2wo
RG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQt
ZGV0YWlscy1tYXJrZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiB9
CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBEZXRhaWxzTWFya2VyQ29udHJvbDo6Y3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBEZXRhaWxzTWFya2VyQ29udHJvbDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAg
ICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyRGV0YWlsc01hcmtlcj4oKnRoaXMsIFdURjo6
bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
RGV0YWlsc01hcmtlckNvbnRyb2wuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFp
bHNNYXJrZXJDb250cm9sLmgKaW5kZXggNDdhYjBkMzNmNzk1NWM5YWRlMDQ4MDI5NGQ2NmJmMTY4
MGJlMmQ4YS4uMzk3MTdhYjY2NmQyNjk4ODE1MDk2ODk2NmZmNjExOGNlZWVhY2E2MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5oCkBA
IC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRGV0YWlsc01hcmtlckNvbnRy
b2woRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJp
ZGU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xFbGVtZW50cy5jcHAKaW5kZXggMmQzM2I4MTY4OGUwMWU2NTNhMGQyNDY2YmU1ODEwNGMzNTkw
MDY0MC4uOWE3MGI0MGJlZjY5YmJmYjZjZDdmMTYwYTViZDNhMjlhOGJhNmM3OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcApA
QCAtMzEwLDcgKzMxMCw3IEBAIHZvaWQgTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVt
ZW50OjpzZXRUaW1lRGlzcGxheXNIaWRkZW4oYm9vbCBoaWRkZW4pCiAgICAgfQogfQogCi1SZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVu
ZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWVk
aWFDb250cm9sVGltZWxpbmVDb250YWluZXI+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0K
QEAgLTMzMCw3ICszMzAsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNv
bnRhaW5lckVsZW1lbnQ+IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbgogICAgIHJldHVybiBl
bGVtZW50LnJlbGVhc2UoKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1lZGlhQ29u
dHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWVkaWFD
b250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsK
ICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWVkaWFWb2x1bWVTbGlkZXJDb250YWlu
ZXI+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KQEAgLTEwODgsNyArMTA4OCw3IEBAIFBh
c3NSZWZQdHI8TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudD4gTWVkaWFDb250
cm9sVGV4dFRyYWNrQ29udGFpbmVyCiAgICAgcmV0dXJuIGVsZW1lbnQucmVsZWFzZSgpOwogfQog
Ci1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVy
RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkK
K1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJF
bGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBj
b25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxS
ZW5kZXJUZXh0VHJhY2tDb250YWluZXJFbGVtZW50PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xF
bGVtZW50cy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVu
dHMuaAppbmRleCAzOWM5OTkwYWZiOWNkNjlkMTcwYjAwMDQxOGFjZjYyN2M1ZjI2NTQ5Li4zMDE0
ODI4MWU4Y2IwYmJiY2JkMmExM2M2ZDMwZjM4NDJkZTVmNzRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmgKQEAgLTExMCw3ICsxMTAs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFRpbWVsaW5l
Q29udGFpbmVyRWxlbWVudChEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikg
b3ZlcnJpZGU7CiB9OwogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMjgs
NyArMTI4LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5k
bGVyKEV2ZW50Kikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlk
ZTsKIH07CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ1Niw3ICs0NTYs
NyBAQCBwcml2YXRlOgogCiAgICAgZXhwbGljaXQgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFp
bmVyRWxlbWVudChEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJp
ZGU7CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SW1hZ2U+IGNyZWF0ZVRleHRUcmFja1JlcHJl
c2VudGF0aW9uSW1hZ2UoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrUmVw
cmVzZW50YXRpb25Cb3VuZHNDaGFuZ2VkKGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwCmluZGV4
IDQwYmRlMTE5OGJmNGZhZTc3MDE2NTczYWZhMWMzOTc1ODcxZmVmMDcuLjQzMTFhNzA1OWU3OGM0
NTQxOTM1OWRkMWFkNTM3YWIyYmM3Njk0MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmNwcApAQCAtNzMsNyArNzMsNyBAQCBib29sIE1l
dGVySW5uZXJFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHls
ZSkKICAgICByZXR1cm4gcmVuZGVyICYmICFyZW5kZXItPnRoZW1lKCkuc3VwcG9ydHNNZXRlcihy
ZW5kZXItPnN0eWxlKCkuYXBwZWFyYW5jZSgpKSAmJiBIVE1MRGl2RWxlbWVudDo6cmVuZGVyZXJJ
c05lZWRlZChzdHlsZSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNZXRlcklubmVy
RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkK
K1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNZXRlcklubmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWV0ZXI+KCp0aGlzLCBX
VEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01ldGVyU2hhZG93RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0
ZXJTaGFkb3dFbGVtZW50LmgKaW5kZXggZTdkNWU2MWVmNDIyYmJjZmM5YTUzNzg1Y2JhOGZiZDE1
YmYwODllZC4uM2YxNTFkYTU1MDdiY2FhZTY3ODk5MGY4OTRhMzc0MDQ5OGE4NmU0ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmgKQEAgLTU5
LDcgKzU5LDcgQEAgcHJpdmF0ZToKICAgICBNZXRlcklubmVyRWxlbWVudChEb2N1bWVudCYpOwog
CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBv
dmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0
eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIH07CiAKIGlubGlu
ZSBQYXNzUmVmUHRyPE1ldGVySW5uZXJFbGVtZW50PiBNZXRlcklubmVyRWxlbWVudDo6Y3JlYXRl
KERvY3VtZW50JiBkb2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwCmluZGV4IDMyOWVmNTZiNWMxMTcwOTdjZTczZGRl
N2E2ZmZhMGI2MGIyMjE0MWYuLjY5MjdiNGE3MDEyNTRmMTY5ZmIwZTIyMzIxMjAzYzMxZmEzYWQx
NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFk
b3dFbGVtZW50LmNwcApAQCAtNjAsNyArNjAsNyBAQCBQcm9ncmVzc0lubmVyRWxlbWVudDo6UHJv
Z3Jlc3NJbm5lckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogewogfQogCi1SZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gUHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gUHJv
Z3Jlc3NJbm5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+
JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0
ZVJlbmRlcmVyPFJlbmRlclByb2dyZXNzPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5o
CmluZGV4IDM0MDFmZDI1ZmM2ZDljOTlmYzQ3MDM2NmFjYjA5YTkzYTUxZDBmMGYuLmRkYTNkN2Yx
NmRhZjljMTI4NTE1YmQyYTY1NWQ0MDhhZDg4MWVhYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5oCkBAIC01Nyw3ICs1Nyw3IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgUHJvZ3Jlc3NJbm5lckVsZW1lbnQoRG9jdW1lbnQmKTsK
IAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYs
IGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBy
ZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGU7CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAppbmRl
eCA1NDcwMTY1YzkzNDdlYjhkNmIzNWRkNGIyMWVmNDQ2NTgxYzY3NmFmLi42ODE0YTUyYjNkYjFh
Yjg1OTU4ZTgxZTM5YzU5NjJhMDIzMDFhNjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKQEAgLTIxNCw3ICsyMTQsNyBAQCB2b2lk
IFNsaWRlclRodW1iRWxlbWVudDo6c2V0UG9zaXRpb25Gcm9tVmFsdWUoKQogICAgICAgICByZW5k
ZXJlcigpLT5zZXROZWVkc0xheW91dCgpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
U2xpZGVyVGh1bWJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNsaWRlclRodW1iRWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVu
ZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU2xp
ZGVyVGh1bWI+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KQEAgLTYxNSw3ICs2MTUsNyBA
QCBQYXNzUmVmUHRyPFNsaWRlckNvbnRhaW5lckVsZW1lbnQ+IFNsaWRlckNvbnRhaW5lckVsZW1l
bnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdQogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2xpZGVy
Q29udGFpbmVyRWxlbWVudChkb2N1bWVudCkpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5k
ZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTbGlkZXJDb250YWlu
ZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxl
LCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJl
cjxSZW5kZXJTbGlkZXJDb250YWluZXI+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmgKaW5kZXgg
ODllN2RjMzFkYjBiNTRlZDgwMTBmZWE4NGQxOTQzMzkxMjk4MzM5MS4uZGU4NjM5MjVjZGNmYjM1
OWI0ODkyM2Y4NWQ0OWFhMGNjYWNkZjYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmgKQEAgLTYxLDcgKzYxLDcgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBTbGlkZXJUaHVtYkVsZW1lbnQoRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwg
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVy
U3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRy
ZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgUmVmUHRyPEVsZW1lbnQ+IGNsb25l
RWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIGJvb2wgaXNEaXNhYmxlZEZvcm1Db250cm9sKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBib29sIG1hdGNoZXNSZWFkV3JpdGVQc2V1ZG9DbGFzcygpIGNvbnN0IG92
ZXJyaWRlOwpAQCAtMTMxLDcgKzEzMSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBTbGlk
ZXJDb250YWluZXJFbGVtZW50KERvY3VtZW50Jik7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lk
KCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAppbmRleCBkM2RiOTM2NGNhOTQx
NGRmNjNhMjQ4NmZjZmEyN2I1YzhmMDEyMjU1Li41OWJkZjAxYjhhYmVkNDVkZTU5YTc2ZWRjNDYw
YzQxZjY5Njc5MDZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0
Q29udHJvbElubmVyRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgUGFzc1JlZlB0
cjxUZXh0Q29udHJvbElubmVyQ29udGFpbmVyPiBUZXh0Q29udHJvbElubmVyQ29udGFpbmVyOjpj
cmVhdGUoRG9jdW1lbnQKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRleHRDb250cm9sSW5uZXJD
b250YWluZXIoZG9jdW1lbnQpKTsKIH0KICAgICAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBU
ZXh0Q29udHJvbElubmVyQ29udGFpbmVyOjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRl
clN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFRleHRDb250cm9sSW5u
ZXJDb250YWluZXI6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5
bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRl
cmVyPFJlbmRlclRleHRDb250cm9sSW5uZXJDb250YWluZXI+KCp0aGlzLCBXVEY6Om1vdmUoc3R5
bGUpKTsKIH0KQEAgLTExMCw3ICsxMTAsNyBAQCB2b2lkIFRleHRDb250cm9sSW5uZXJUZXh0RWxl
bWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgICAgIEhUTUxEaXZF
bGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKIH0KIAotUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBU
ZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0
dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jaz4oKnRoaXMsIFdU
Rjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaAppbmRleCBiMjQ3NTM2MTIxZGM1ZWE2YzJlZjVk
YWIwZTgzOWVjNjkwZWU5NTRmLi42Njc0YTllZGQ4NWE3NGUxY2FjNzU4NWQ5ZWE0MGIzNzcyMzky
YWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElu
bmVyRWxlbWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJv
bElubmVyRWxlbWVudHMuaApAQCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8VGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcj4gY3JlYXRlKERvY3VtZW50Jik7CiBw
cm90ZWN0ZWQ6CiAgICAgVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcihEb2N1bWVudCYpOwotICAg
IHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0
IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogfTsKIAogY2xhc3MgVGV4dENvbnRyb2xJ
bm5lckVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgewpAQCAtNjQsNyArNjQs
NyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50
KERvY3VtZW50Jik7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5k
ZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCBSZWZQdHI8UmVuZGVyU3R5bGU+IGN1c3RvbVN0eWxlRm9yUmVuZGVyZXIoUmVuZGVyU3R5
bGUmIHBhcmVudFN0eWxlKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNNb3VzZUZvY3Vz
YWJsZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29s
IGlzVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdl
Q29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAKaW5kZXggNjk3MjNhOGQwMWMx
NGE0ZmU3NWViNWY3YmMyNzU5NDk4ODE3OWEzMy4uOWE2ZDQ0Mzk0M2I3MzMxZDMzZmE5MDFkZmVi
M2ZlYWQzN2VlOThlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFj
L0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3BwCkBAIC0xMjUs
NyArMTI1LDcgQEAgdm9pZCBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYzo6ZGVmYXVsdEV2
ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgSFRNTERpdkVsZW1lbnQ6OmRlZmF1bHRFdmVu
dEhhbmRsZXIoZXZlbnQpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSW1hZ2VDb250
cm9sc0J1dHRvbkVsZW1lbnRNYWM6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSW1hZ2VDb250cm9sc0J1dHRv
bkVsZW1lbnRNYWM6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5
bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRl
cmVyPFJlbmRlckltYWdlQ29udHJvbHNCdXR0b24+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRy
b2xzQnV0dG9uRWxlbWVudE1hYy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0lt
YWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmgKaW5kZXggNTNkNzJiMTgzMzg5YmMyMTBjYmM2
ODQ5NDcyZmE2MDNhMWEwZTQ2Zi4uMTM0ZmMyMDhjN2RiMTRjZTI1MzNlYjk0NDc0M2IwN2Q4ZDYx
OTQ2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29u
dHJvbHNCdXR0b25FbGVtZW50TWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
bWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmgKQEAgLTQyLDcgKzQyLDcgQEAgcHJp
dmF0ZToKICAgICBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYyhEb2N1bWVudCYpOwogCiAg
ICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBvdmVycmlkZTsKLSAg
ICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25z
dCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0lt
YWdlQ29udHJvbHNCdXR0b25FbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNv
bnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFj
L0ltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAKaW5kZXggZDUyNzFlY2VhYzRjNjgwYTNj
NGE0YmZmOWE0MGEzMzJmNjQ4ZThkNC4uYjZlZWNjYzBiNDFlYzBiZjQ5NDRmOGZmZjUyNWZiOGEx
Mjk4YjNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdl
Q29udHJvbHNSb290RWxlbWVudE1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvbWFjL0ltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAKQEAgLTEwMiw3ICsxMDIsNyBA
QCBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWM6On5JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRN
YWMoKQogewogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSW1hZ2VDb250cm9sc1Jvb3RF
bGVtZW50TWFjOjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxl
KQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYzo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVu
ZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVySW1h
Z2VDb250cm9scz4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNSb290RWxlbWVu
dE1hYy5oCmluZGV4IDYwZWM1MzMzODUzZWI5NTUwYjQ2MGM4NDdlNmQzOWM2M2Y2MTVhOGYuLmUy
M2Y0ZTFmZDkzYjNmOThjMmRlOWYzN2E2MDIxNmVjMjA5ZjY2ODUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVt
ZW50TWFjLmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBJbWFnZUNv
bnRyb2xzUm9vdEVsZW1lbnRNYWMoRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlv
biYpIG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9WVFRDdWUuY3BwCmluZGV4IDVmMmVhODU0MGRlMGExYWI1MzA1MDI3NjI1ZTdhMjQy
MWQ4OWVjZDEuLjViMzU5MmQxNmQ0NGMxMTQ1NGExYjM5YjQ2NGNhMWM1NmQzM2ViZTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKQEAgLTIzNCw3ICsyMzQsNyBAQCBjb25zdCBB
dG9taWNTdHJpbmcmIFZUVEN1ZUJveDo6dnR0Q3VlQm94U2hhZG93UHNldWRvSWQoKQogICAgIHJl
dHVybiB0cmFja0Rpc3BsYXlCb3hTaGFkb3dQc2V1ZG9JZDsKIH0KIAotUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IFZUVEN1ZUJveDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHls
ZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBWVFRDdWVCb3g6OmNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQ
b3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclZUVEN1ZT4oKnRo
aXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9WVFRDdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmgKaW5k
ZXggY2MxZGZiYzU1YjAwMDllZWY3ZDA5OTkyYTQ1OTIxMzY5MjE5ZmU2Yy4uZTUwZGM3MTlkZDIz
OTc2ODkyOTU2ZjhiODI5MzcyYWI1YWYwNjg0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9WVFRDdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1
ZS5oCkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBWVFRDdWVCb3go
RG9jdW1lbnQmLCBWVFRDdWUmKTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlIGZp
bmFsOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92
ZXJyaWRlIGZpbmFsOwogCiAgICAgVlRUQ3VlJiBtX2N1ZTsKICAgICBpbnQgbV9mb250U2l6ZUZy
b21DYXB0aW9uVXNlclByZWZzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuY3BwCmluZGV4IDU5ZDUzNTYyNjhmOGE0OWI3MDMx
N2VhYTY1MmY2YmI2YWNjZDY4NTguLjBjZjUwNWJlOTU4ZjI3ZTQ0OWFlZjYwM2U2OWY5ZWRiM2Vl
YzUxNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxJbmxpbmVDb250
YWluZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MSW5saW5l
Q29udGFpbmVyRWxlbWVudC5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgdm9pZCBNYXRoTUxJbmxpbmVD
b250YWluZXJFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5n
ZSkKICAgICBNYXRoTUxFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY2hhbmdlKTsKIH0KIAotUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9u
JikKIHsKICAgICBpZiAoaGFzVGFnTmFtZShhbm5vdGF0aW9uX3htbFRhZykpCiAgICAgICAgIHJl
dHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxSb3c+KCp0aGlzLCBXVEY6Om1vdmUoc3R5
bGUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxJbmxpbmVDb250
YWluZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MSW5saW5lQ29udGFp
bmVyRWxlbWVudC5oCmluZGV4IDI5MzY5MzZmYjhhMjFkYTFmODJhMTE4MDNmZjc0ZmE3M2E5YTE4
OGEuLmQ0YzNiYmMzYTc4ODZiMjJiY2JhMjc3ZDZhOTM5YTA4NDk0NTNlYTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuaApA
QCAtNDMsNyArNDMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29u
c3QgQ2hpbGRDaGFuZ2UmKTsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBv
dmVycmlkZTsKIH07CiAgICAgCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MTWF0aEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhF
bGVtZW50LmNwcAppbmRleCBiZGExMGMyOTZhZTQxYzBmMDkwNGY4NzY4OTliZWE2MTcyMjJiYjFj
Li5mMGNhYWJjNzE5MGMxNGQ4NzI1MWY3NTkxODdlM2RiMWY0OWU3MTgwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgUmVm
PE1hdGhNTE1hdGhFbGVtZW50PiBNYXRoTUxNYXRoRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIEQKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNYXRoTUxNYXRo
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gTWF0aE1MTWF0aEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWF0aE1MTWF0aEVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJl
bmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1h
dGhNTE1hdGg+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbWF0
aG1sL01hdGhNTE1hdGhFbGVtZW50LmgKaW5kZXggNGE0MTAzMTBiZDgxMjI0NjQ5NzA3YjQzOGQ1
NTVlZjQzODI5YzdlYS4uMDRlYzY5Y2JkNjNmM2JmYzA2MGZjNzRiNWEyYWMyNTEwMjRkY2FmYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmgKQEAgLTM5LDcgKzM5
LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBNYXRoTUxNYXRoRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxl
bWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9u
Jikgb3ZlcnJpZGU7CiB9OwogICAgIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0
aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0
aE1MTWVuY2xvc2VFbGVtZW50LmNwcAppbmRleCAzOGNmOWQ4MWM1NjZiYjYxZjJiNzFkYmEzNjZl
ZDQ1YzllNzZkMzU2Li5kNmRhM2IzNTljMTIwNzJlMjIxY2Y4YWFiMjEwZjllYmM1YmZiZmM4IDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmNwcApA
QCAtNTAsNyArNTAsNyBAQCBSZWY8TWF0aE1MTWVuY2xvc2VFbGVtZW50PiBNYXRoTUxNZW5jbG9z
ZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YQogICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IE1hdGhNTE1lbmNsb3NlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQog
Ci1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWF0aE1MTWVuY2xvc2VFbGVtZW50OjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IE1hdGhNTE1lbmNsb3NlRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsgICAg
CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTE1lbmNsb3NlPigqdGhpcywg
V1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MTWVuY2xvc2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVu
Y2xvc2VFbGVtZW50LmgKaW5kZXggYzI3YTQzOTZjYTQ3Mzg1NTRlOTExMjU2OGY2ZTE3MzdmODli
M2ExYS4uNWY0NDJjMzk0MDg0MjFhOTgyOTA0YjQxMGM0NzViMDQ4NzJlNTA4MyAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaApAQCAtNDEsNyArNDEs
NyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgTWF0aE1MTWVuY2xvc2VFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RT
dHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
QXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgdm9pZCBmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCAwODdkZmU2NWM2Y2Ez
OWI0MTZiNzI4NzJiMzVlZjEzZjY0ODcxODAzLi41ZmZjMDY5ZDQxMTAzMzU4ZTkzZjE0MzUyOTUz
MGQ2NjViZGJlZGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2Vs
ZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVs
ZW1lbnQuY3BwCkBAIC01MSw3ICs1MSw3IEBAIFJlZjxNYXRoTUxTZWxlY3RFbGVtZW50PiBNYXRo
TUxTZWxlY3RFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtCiAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgTWF0aE1MU2VsZWN0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVu
dCkpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWF0aE1MU2VsZWN0RWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxTZWxlY3RFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQog
ewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxSb3c+KCp0aGlzLCBXVEY6
Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRo
TUxTZWxlY3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxl
bWVudC5oCmluZGV4IDIyYTZjY2I1ZjU1Nzc3OTJkYzE4NGZjNDI3NTEyNWYzNGE4YjFiOGQuLjQy
NjNiYjMyNmY3ZTkyYjdmZDU0OGFjMDUxY2M5NDFjYWJiZGI1Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuaApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6
CiAKIHByaXZhdGU6CiAgICAgTWF0aE1MU2VsZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCYpOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRl
OwogCiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9k
ZSYpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MVGV4dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRF
bGVtZW50LmNwcAppbmRleCAyNzFkNjkyZjc1NjE2NTA0MGQ0YWE0YTI5YjI3NzE1NGEyN2EzODhk
Li40ZDdjMWNhODZhZWNlMWJlMTQzMzlkYmI4OGZlY2RiMjRlMzU3MGE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5jcHAKQEAgLTc1LDE0ICs3NSwxNCBAQCB2
b2lkIE1hdGhNTFRleHRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9taWNTdAogICAgIE1hdGhNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KG5hbWUsIHZhbHVlKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1hdGhNTFRleHRF
bGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQor
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1hdGhNTFRleHRFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRp
b24mIGluc2VydGlvblBvc2l0aW9uKQogewogICAgIGlmIChoYXNUYWdOYW1lKE1hdGhNTE5hbWVz
Ojptb1RhZykpCiAgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxPcGVy
YXRvcj4oKnRoaXMsIFdURjo6bW92ZShzdHlsZSkpOwogICAgIGlmIChoYXNUYWdOYW1lKE1hdGhN
TE5hbWVzOjptc3BhY2VUYWcpKQogICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVy
TWF0aE1MU3BhY2U+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKICAgICBpZiAoaGFzVGFnTmFt
ZShNYXRoTUxOYW1lczo6YW5ub3RhdGlvblRhZykpCi0gICAgICAgIHJldHVybiBNYXRoTUxFbGVt
ZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoV1RGOjptb3ZlKHN0eWxlKSk7CisgICAgICAgIHJl
dHVybiBNYXRoTUxFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoV1RGOjptb3ZlKHN0eWxl
KSwgaW5zZXJ0aW9uUG9zaXRpb24pOwogCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoTWF0aE1MTmFt
ZXM6Om1pVGFnKSB8fCBoYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptblRhZykgfHwgaGFzVGFnTmFt
ZShNYXRoTUxOYW1lczo6bXNUYWcpIHx8IGhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6Om10ZXh0VGFn
KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmgKaW5kZXggNjli
MDU3NGI5MWRmNTBjNTJmN2VmODY2ZjM4YmZhODk1OTdjZDhlMi4uMWQ1ZjU3ODU4Y2RlMDNkZjI5
MzllM2U5N2ZkNjA5ZjA5MjYwNmMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1s
L01hdGhNTFRleHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRl
eHRFbGVtZW50LmgKQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBNYXRo
TUxUZXh0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwog
Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwg
Y29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGNo
aWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJyaWRlOwogCiAg
ICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggNWVjMzE2
OTY4ZmRjNDZjNjVjMjViN2Y0Mjk4NzA2NjNiNzEzYjQ3Ni4uMDBhZTY0ZDM1ZDU5ZDUzZTQwMWIx
NDQxMjE1ZjU3YTBiNmNmOWRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwCkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVGFibGVDZWxsLmgiCiAj
aW5jbHVkZSAiUmVuZGVyVGV4dEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIK
KyNpbmNsdWRlICJSZW5kZXJUcmVlUG9zaXRpb24uaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3Lmgi
CiAjaW5jbHVkZSAiU1ZHVGV4dFJ1blJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJTZXR0
aW5ncy5oIgpAQCAtMzg1LDcgKzM4Niw4IEBAIFJlbmRlclB0cjxSZW5kZXJCbG9jaz4gUmVuZGVy
QmxvY2s6OmNsb25lKCkgY29uc3QKICAgICAgICAgY2xvbmVCbG9jayA9IFJlbmRlclB0cjxSZW5k
ZXJCbG9jaz4oY3JlYXRlQW5vbnltb3VzQmxvY2soKSk7CiAgICAgICAgIGNsb25lQmxvY2stPnNl
dENoaWxkcmVuSW5saW5lKGNoaWxkcmVuSW5saW5lKCkpOwogICAgIH0gZWxzZSB7Ci0gICAgICAg
IGNsb25lQmxvY2sgPSBzdGF0aWNfcG9pbnRlcl9jYXN0PFJlbmRlckJsb2NrPihlbGVtZW50KCkt
PmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihzdHlsZSgpKSk7CisgICAgICAgIFJlbmRlclRyZWVQb3Np
dGlvbiBpbnNlcnRpb25Qb3NpdGlvbigqcGFyZW50KCkpOworICAgICAgICBjbG9uZUJsb2NrID0g
c3RhdGljX3BvaW50ZXJfY2FzdDxSZW5kZXJCbG9jaz4oZWxlbWVudCgpLT5jcmVhdGVFbGVtZW50
UmVuZGVyZXIoc3R5bGUoKSwgaW5zZXJ0aW9uUG9zaXRpb24pKTsKICAgICAgICAgY2xvbmVCbG9j
ay0+aW5pdGlhbGl6ZVN0eWxlKCk7CiAKICAgICAgICAgLy8gVGhpcyB0YWtlcyBjYXJlIG9mIHNl
dHRpbmcgdGhlIHJpZ2h0IHZhbHVlIG9mIGNoaWxkcmVuSW5saW5lIGluIGNhc2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAppbmRleCAwOGY3ZTE1MzllYzgwOGU3
ZWRhZjJlNTRjMjc2N2NlOTk4ZGNhNDQxLi5mMmE1MTAyM2UwMDk0MzgxMmJmZGFhODJjYjcxZTM0
NGFiYjcxOTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3Bw
CkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiUmVuZGVyRmxleGlibGVCb3guaCIKICNpbmNs
dWRlICJSZW5kZXJJbWFnZS5oIgogI2luY2x1ZGUgIlJlbmRlckltYWdlUmVzb3VyY2VTdHlsZUlt
YWdlLmgiCisjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVySXRlcmF0
b3IuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyQ29t
cG9zaXRvci5oIgpAQCAtNTAsOCArNTEsNiBAQAogI2luY2x1ZGUgIlJlbmRlckxpc3RJdGVtLmgi
CiAjaW5jbHVkZSAiUmVuZGVyTmFtZWRGbG93VGhyZWFkLmgiCiAjaW5jbHVkZSAiUmVuZGVyUmVn
aW9uLmgiCi0jaW5jbHVkZSAiUmVuZGVyUnVieS5oIgotI2luY2x1ZGUgIlJlbmRlclJ1YnlUZXh0
LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGFibGVDYXB0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGFi
bGVDZWxsLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGFibGVDb2wuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUnVieS5oCmluZGV4IGRiN2IzYmQ3ODhjYmJmNjBhMWZmY2NkMzBlN2FkMDk0Mjcx
MjhjNzQuLjQ1NGQyNmMxNmE2M2M3MWY5MzhjZDAzNjE2YWUxZjgwODJkNTY5MmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnkuaApAQCAtOTAsNyArOTAsOCBAQCBwcml2YXRlOgog
fTsKIAogCi1pbmxpbmUgYm9vbCBpc1J1YnkoY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlcikg
eyByZXR1cm4gKHJlbmRlcmVyICYmIChpczxSZW5kZXJSdWJ5QXNJbmxpbmU+KHJlbmRlcmVyKSB8
fCBpczxSZW5kZXJSdWJ5QXNCbG9jaz4ocmVuZGVyZXIpKSk7IH0KK2lubGluZSBib29sIGlzUnVi
eShjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKSB7IHJldHVybiAoaXM8UmVuZGVyUnVieUFz
SW5saW5lPihyZW5kZXJlcikgfHwgaXM8UmVuZGVyUnVieUFzQmxvY2s+KHJlbmRlcmVyKSk7IH0K
K2lubGluZSBib29sIGlzUnVieShjb25zdCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyKSB7IHJldHVy
biAocmVuZGVyZXIgJiYgaXNSdWJ5KCpyZW5kZXJlcikpOyB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUmVuZGVyVHJlZVBvc2l0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1JlbmRlclRyZWVQb3NpdGlvbi5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYWY5YjkxMzY5ODdlMzJjYjhkMjA0MDg5MjljMjJmMzkzYWIyODJkMQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1JlbmRlclRyZWVQb3NpdGlvbi5jcHAK
QEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJSZW5kZXJUcmVlUG9zaXRpb24uaCIKKworI2luY2x1ZGUgIk5vZGVSZW5kZXJpbmdUcmF2
ZXJzYWwuaCIKKyNpbmNsdWRlICJQc2V1ZG9FbGVtZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyT2Jq
ZWN0LmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K3ZvaWQgUmVuZGVyVHJlZVBvc2l0aW9uOjpjb21wdXRlTmV4dFNpYmxpbmcoY29uc3QgTm9kZSYg
bm9kZSkKK3sKKyAgICBBU1NFUlQoIW5vZGUucmVuZGVyZXIoKSk7CisgICAgaWYgKG1faGFzVmFs
aWROZXh0U2libGluZykgeworICAgICAgICAvLyBTdG9wIHZhbGlkYXRpbmcgYXQgc29tZSBwb2lu
dCBzbyB0aGUgYXNzZXJ0IGRvZXNuJ3QgbWFrZSB1cyBPKE5eMikgb24gZGVidWcgYnVpbGRzLgor
ICAgICAgICBBU1NFUlQobV9wYXJlbnQuaXNSZW5kZXJWaWV3KCkgfHwgKyttX2Fzc2VydGlvbkxp
bWl0Q291bnRlciA+IDIwIHx8IG5leHRTaWJsaW5nUmVuZGVyZXIobm9kZSwgbV9wYXJlbnQpID09
IG1fbmV4dFNpYmxpbmcpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fbmV4dFNpYmxp
bmcgPSBuZXh0U2libGluZ1JlbmRlcmVyKG5vZGUsIG1fcGFyZW50KTsKKyAgICBtX2hhc1ZhbGlk
TmV4dFNpYmxpbmcgPSB0cnVlOworfQorCit2b2lkIFJlbmRlclRyZWVQb3NpdGlvbjo6aW52YWxp
ZGF0ZU5leHRTaWJsaW5nKGNvbnN0IFJlbmRlck9iamVjdCYgc2libGluZ1JlbmRlcmVyKQorewor
ICAgIGlmICghbV9oYXNWYWxpZE5leHRTaWJsaW5nKQorICAgICAgICByZXR1cm47CisgICAgaWYg
KG1fbmV4dFNpYmxpbmcgPT0gJnNpYmxpbmdSZW5kZXJlcikKKyAgICAgICAgbV9oYXNWYWxpZE5l
eHRTaWJsaW5nID0gZmFsc2U7Cit9CisKK1JlbmRlck9iamVjdCogUmVuZGVyVHJlZVBvc2l0aW9u
OjpwcmV2aW91c1NpYmxpbmdSZW5kZXJlcihjb25zdCBUZXh0JiB0ZXh0Tm9kZSkKK3sKKyAgICBp
ZiAodGV4dE5vZGUucmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuIHRleHROb2RlLnJlbmRlcmVy
KCktPnByZXZpb3VzU2libGluZygpOworICAgIGZvciAoTm9kZSogc2libGluZyA9IE5vZGVSZW5k
ZXJpbmdUcmF2ZXJzYWw6OnByZXZpb3VzU2libGluZygmdGV4dE5vZGUpOyBzaWJsaW5nOyBzaWJs
aW5nID0gTm9kZVJlbmRlcmluZ1RyYXZlcnNhbDo6cHJldmlvdXNTaWJsaW5nKHNpYmxpbmcpKSB7
CisgICAgICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBzaWJsaW5nLT5yZW5kZXJlcigpOwor
ICAgICAgICBpZiAocmVuZGVyZXIgJiYgIVJlbmRlclRyZWVQb3NpdGlvbjo6aXNSZW5kZXJlclJl
cGFyZW50ZWQoKnJlbmRlcmVyKSkKKyAgICAgICAgICAgIHJldHVybiByZW5kZXJlcjsKKyAgICB9
CisgICAgaWYgKFBzZXVkb0VsZW1lbnQqIGJlZm9yZSA9IHRleHROb2RlLnBhcmVudEVsZW1lbnQo
KS0+YmVmb3JlUHNldWRvRWxlbWVudCgpKQorICAgICAgICByZXR1cm4gYmVmb3JlLT5yZW5kZXJl
cigpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZW5kZXJPYmplY3QqIFJlbmRlclRyZWVQ
b3NpdGlvbjo6bmV4dFNpYmxpbmdSZW5kZXJlcihjb25zdCBOb2RlJiBub2RlLCBjb25zdCBSZW5k
ZXJFbGVtZW50JiBwYXJlbnRSZW5kZXJlcikKK3sKKyAgICBpZiAoIXBhcmVudFJlbmRlcmVyLmVs
ZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKG5vZGUuaXNBZnRlclBz
ZXVkb0VsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgTm9kZSogc2libGlu
ZyA9IG5vZGUuaXNCZWZvcmVQc2V1ZG9FbGVtZW50KCkgPyBOb2RlUmVuZGVyaW5nVHJhdmVyc2Fs
OjpmaXJzdENoaWxkKHBhcmVudFJlbmRlcmVyLmVsZW1lbnQoKSkgOiBOb2RlUmVuZGVyaW5nVHJh
dmVyc2FsOjpuZXh0U2libGluZygmbm9kZSk7CisgICAgZm9yICg7IHNpYmxpbmc7IHNpYmxpbmcg
PSBOb2RlUmVuZGVyaW5nVHJhdmVyc2FsOjpuZXh0U2libGluZyhzaWJsaW5nKSkgeworICAgICAg
ICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gc2libGluZy0+cmVuZGVyZXIoKTsKKyAgICAgICAg
aWYgKHJlbmRlcmVyICYmICFpc1JlbmRlcmVyUmVwYXJlbnRlZCgqcmVuZGVyZXIpKQorICAgICAg
ICAgICAgcmV0dXJuIHJlbmRlcmVyOworICAgIH0KKyAgICBpZiAoUHNldWRvRWxlbWVudCogYWZ0
ZXIgPSBwYXJlbnRSZW5kZXJlci5lbGVtZW50KCktPmFmdGVyUHNldWRvRWxlbWVudCgpKQorICAg
ICAgICByZXR1cm4gYWZ0ZXItPnJlbmRlcmVyKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K2Jvb2wgUmVuZGVyVHJlZVBvc2l0aW9uOjppc1JlbmRlcmVyUmVwYXJlbnRlZChjb25zdCBSZW5k
ZXJPYmplY3QmIHJlbmRlcmVyKQoreworICAgIGlmICghcmVuZGVyZXIubm9kZSgpLT5pc0VsZW1l
bnROb2RlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAocmVuZGVyZXIuc3R5bGUo
KS5oYXNGbG93SW50bygpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1JlbmRlclRyZWVQb3Np
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUmVuZGVyVHJlZVBvc2l0aW9uLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMGMxYjc1NzJlOTZhNWM2OTU1MDhlNTZjNmQxM2I0MzQwZTI4MTEyZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1JlbmRlclRyZWVQb3NpdGlvbi5oCkBAIC0w
LDAgKzEsOTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJlbmRlclRyZWVQb3NpdGlvbl9oCisj
ZGVmaW5lIFJlbmRlclRyZWVQb3NpdGlvbl9oCisKKyNpbmNsdWRlICJSZW5kZXJFbGVtZW50Lmgi
CisjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgorI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSZW5kZXJUcmVlUG9zaXRpb24geworcHVibGljOgor
ICAgIGV4cGxpY2l0IFJlbmRlclRyZWVQb3NpdGlvbihSZW5kZXJWaWV3JiByb290KQorICAgICAg
ICA6IG1fcGFyZW50KHJvb3QpCisgICAgICAgICwgbV9oYXNWYWxpZE5leHRTaWJsaW5nKHRydWUp
CisgICAgeworICAgIH0KKyAgICAKKyAgICBleHBsaWNpdCBSZW5kZXJUcmVlUG9zaXRpb24oUmVu
ZGVyRWxlbWVudCYgcGFyZW50KQorICAgICAgICA6IG1fcGFyZW50KHBhcmVudCkKKyAgICB7Cisg
ICAgfQorICAgIAorICAgIFJlbmRlclRyZWVQb3NpdGlvbihSZW5kZXJFbGVtZW50JiBwYXJlbnQs
IFJlbmRlck9iamVjdCogbmV4dFNpYmxpbmcpCisgICAgICAgIDogbV9wYXJlbnQocGFyZW50KQor
ICAgICAgICAsIG1fbmV4dFNpYmxpbmcobmV4dFNpYmxpbmcpCisgICAgICAgICwgbV9oYXNWYWxp
ZE5leHRTaWJsaW5nKHRydWUpCisgICAgeworICAgIH0KKworICAgIFJlbmRlckVsZW1lbnQmIHBh
cmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50OyB9CisKKyAgICB2b2lkIGluc2VydChSZW5k
ZXJPYmplY3QmKTsKKyAgICBib29sIGNhbkluc2VydChSZW5kZXJFbGVtZW50JikgY29uc3Q7Cisg
ICAgYm9vbCBjYW5JbnNlcnQoUmVuZGVyVGV4dCYpIGNvbnN0OworCisgICAgdm9pZCBjb21wdXRl
TmV4dFNpYmxpbmcoY29uc3QgTm9kZSYpOworICAgIHZvaWQgaW52YWxpZGF0ZU5leHRTaWJsaW5n
KGNvbnN0IFJlbmRlck9iamVjdCYpOworCisgICAgc3RhdGljIFJlbmRlck9iamVjdCogcHJldmlv
dXNTaWJsaW5nUmVuZGVyZXIoY29uc3QgVGV4dCYpOworICAgIHN0YXRpYyBSZW5kZXJPYmplY3Qq
IG5leHRTaWJsaW5nUmVuZGVyZXIoY29uc3QgTm9kZSYsIGNvbnN0IFJlbmRlckVsZW1lbnQmIHBh
cmVudFJlbmRlcmVyKTsKKyAgICBzdGF0aWMgYm9vbCBpc1JlbmRlcmVyUmVwYXJlbnRlZChjb25z
dCBSZW5kZXJPYmplY3QmKTsKKworcHJpdmF0ZToKKyAgICBSZW5kZXJFbGVtZW50JiBtX3BhcmVu
dDsKKyAgICBSZW5kZXJPYmplY3QqIG1fbmV4dFNpYmxpbmcgeyBudWxscHRyIH07CisgICAgYm9v
bCBtX2hhc1ZhbGlkTmV4dFNpYmxpbmcgeyBmYWxzZSB9OworI2lmICFBU1NFUlRfRElTQUJMRUQK
KyAgICB1bnNpZ25lZCBtX2Fzc2VydGlvbkxpbWl0Q291bnRlciB7IDAgfTsKKyNlbmRpZgorfTsK
KworaW5saW5lIGJvb2wgUmVuZGVyVHJlZVBvc2l0aW9uOjpjYW5JbnNlcnQoUmVuZGVyRWxlbWVu
dCYgcmVuZGVyZXIpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFyZW5kZXJlci5wYXJlbnQoKSk7Cisg
ICAgcmV0dXJuIG1fcGFyZW50LmlzQ2hpbGRBbGxvd2VkKHJlbmRlcmVyLCByZW5kZXJlci5zdHls
ZSgpKTsKK30KKworaW5saW5lIGJvb2wgUmVuZGVyVHJlZVBvc2l0aW9uOjpjYW5JbnNlcnQoUmVu
ZGVyVGV4dCYgcmVuZGVyZXIpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFyZW5kZXJlci5wYXJlbnQo
KSk7CisgICAgcmV0dXJuIG1fcGFyZW50LmlzQ2hpbGRBbGxvd2VkKHJlbmRlcmVyLCBtX3BhcmVu
dC5zdHlsZSgpKTsKK30KKworaW5saW5lIHZvaWQgUmVuZGVyVHJlZVBvc2l0aW9uOjppbnNlcnQo
UmVuZGVyT2JqZWN0JiByZW5kZXJlcikKK3sKKyAgICBBU1NFUlQobV9oYXNWYWxpZE5leHRTaWJs
aW5nKTsKKyAgICBtX3BhcmVudC5hZGRDaGlsZCgmcmVuZGVyZXIsIG1fbmV4dFNpYmxpbmcpOwor
fQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVS
ZXNvbHZlVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVUcmVlLmNw
cAppbmRleCAwN2VmYTVmOTc1ZWVlMmRjOTIyNGM5N2ViNGMxOTgzMWQ5OWYzZmNkLi4zMjRjZmJh
ODBjZmQyYTYxZWM2NzdkOTQzMjBjNjU1OTlhODc1ZDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVJlc29sdmVUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVJlc29sdmVUcmVlLmNwcApAQCAtNDIsNyArNDIsNyBAQAogI2luY2x1ZGUgIlJlbmRl
ckZ1bGxTY3JlZW4uaCIKICNpbmNsdWRlICJSZW5kZXJOYW1lZEZsb3dUaHJlYWQuaCIKICNpbmNs
dWRlICJSZW5kZXJUZXh0LmgiCi0jaW5jbHVkZSAiUmVuZGVyVmlldy5oIgorI2luY2x1ZGUgIlJl
bmRlclRyZWVQb3NpdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2luY2x1ZGUg
IlJlc291cmNlTG9hZFNjaGVkdWxlci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC02Miwz
MSArNjIsNiBAQCBuYW1lc3BhY2UgU3R5bGUgewogCiBlbnVtIERldGFjaFR5cGUgeyBOb3JtYWxE
ZXRhY2gsIFJlYXR0YWNoRGV0YWNoIH07CiAKLWNsYXNzIFJlbmRlclRyZWVQb3NpdGlvbiB7Ci1w
dWJsaWM6Ci0gICAgZXhwbGljaXQgUmVuZGVyVHJlZVBvc2l0aW9uKFJlbmRlclZpZXcmKTsKLSAg
ICBleHBsaWNpdCBSZW5kZXJUcmVlUG9zaXRpb24oUmVuZGVyRWxlbWVudCYgcGFyZW50KTsKLSAg
ICBSZW5kZXJUcmVlUG9zaXRpb24oUmVuZGVyRWxlbWVudCYgcGFyZW50LCBSZW5kZXJPYmplY3Qq
IG5leHRTaWJsaW5nKTsKLQotICAgIFJlbmRlckVsZW1lbnQmIHBhcmVudCgpIHsgcmV0dXJuIG1f
cGFyZW50OyB9Ci0gICAgY29uc3QgUmVuZGVyRWxlbWVudCYgcGFyZW50KCkgY29uc3QgeyByZXR1
cm4gbV9wYXJlbnQ7IH0KLQotICAgIHZvaWQgaW5zZXJ0KFJlbmRlck9iamVjdCYpOwotICAgIGJv
b2wgY2FuSW5zZXJ0KFJlbmRlckVsZW1lbnQmKSBjb25zdDsKLSAgICBib29sIGNhbkluc2VydChS
ZW5kZXJUZXh0JikgY29uc3Q7Ci0KLSAgICB2b2lkIGNvbXB1dGVOZXh0U2libGluZyhjb25zdCBO
b2RlJik7Ci0gICAgdm9pZCBpbnZhbGlkYXRlTmV4dFNpYmxpbmcoY29uc3QgUmVuZGVyT2JqZWN0
Jik7Ci0KLXByaXZhdGU6Ci0gICAgUmVuZGVyRWxlbWVudCYgbV9wYXJlbnQ7Ci0gICAgUmVuZGVy
T2JqZWN0KiBtX25leHRTaWJsaW5nOwotICAgIGJvb2wgbV9oYXNWYWxpZE5leHRTaWJsaW5nOwot
I2lmICFBU1NFUlRfRElTQUJMRUQKLSAgICB1bnNpZ25lZCBtX2Fzc2VydGlvbkxpbWl0Q291bnRl
cjsKLSNlbmRpZgotfTsKLQogc3RhdGljIHZvaWQgYXR0YWNoUmVuZGVyVHJlZShFbGVtZW50Jiwg
UmVuZGVyU3R5bGUmIGluaGVyaXRlZFN0eWxlLCBSZW5kZXJUcmVlUG9zaXRpb24mLCBQYXNzUmVm
UHRyPFJlbmRlclN0eWxlPik7CiBzdGF0aWMgdm9pZCBhdHRhY2hUZXh0UmVuZGVyZXIoVGV4dCYs
IFJlbmRlclRyZWVQb3NpdGlvbiYpOwogc3RhdGljIHZvaWQgZGV0YWNoUmVuZGVyVHJlZShFbGVt
ZW50JiwgRGV0YWNoVHlwZSk7CkBAIC0xNTAsMTAwICsxMjUsNiBAQCBDaGFuZ2UgZGV0ZXJtaW5l
Q2hhbmdlKGNvbnN0IFJlbmRlclN0eWxlJiBzMSwgY29uc3QgUmVuZGVyU3R5bGUmIHMyKQogICAg
IHJldHVybiBOb0NoYW5nZTsKIH0KIAotc3RhdGljIGJvb2wgaXNSZW5kZXJlclJlcGFyZW50ZWQo
Y29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKLXsKLSAgICBpZiAoIXJlbmRlcmVyLT5ub2Rl
KCktPmlzRWxlbWVudE5vZGUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChyZW5k
ZXJlci0+c3R5bGUoKS5oYXNGbG93SW50bygpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBy
ZXR1cm4gZmFsc2U7Ci19Ci0KLXN0YXRpYyBSZW5kZXJPYmplY3QqIG5leHRTaWJsaW5nUmVuZGVy
ZXIoY29uc3QgTm9kZSYgbm9kZSwgY29uc3QgUmVuZGVyRWxlbWVudCYgcGFyZW50UmVuZGVyZXIp
Ci17Ci0gICAgaWYgKCFwYXJlbnRSZW5kZXJlci5lbGVtZW50KCkpCi0gICAgICAgIHJldHVybiBu
dWxscHRyOwotICAgIGlmIChub2RlLmlzQWZ0ZXJQc2V1ZG9FbGVtZW50KCkpCi0gICAgICAgIHJl
dHVybiBudWxscHRyOwotICAgIE5vZGUqIHNpYmxpbmcgPSBub2RlLmlzQmVmb3JlUHNldWRvRWxl
bWVudCgpID8gTm9kZVJlbmRlcmluZ1RyYXZlcnNhbDo6Zmlyc3RDaGlsZChwYXJlbnRSZW5kZXJl
ci5lbGVtZW50KCkpIDogTm9kZVJlbmRlcmluZ1RyYXZlcnNhbDo6bmV4dFNpYmxpbmcoJm5vZGUp
OwotICAgIGZvciAoOyBzaWJsaW5nOyBzaWJsaW5nID0gTm9kZVJlbmRlcmluZ1RyYXZlcnNhbDo6
bmV4dFNpYmxpbmcoc2libGluZykpIHsKLSAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9
IHNpYmxpbmctPnJlbmRlcmVyKCk7Ci0gICAgICAgIGlmIChyZW5kZXJlciAmJiAhaXNSZW5kZXJl
clJlcGFyZW50ZWQocmVuZGVyZXIpKQotICAgICAgICAgICAgcmV0dXJuIHJlbmRlcmVyOwotICAg
IH0KLSAgICBpZiAoUHNldWRvRWxlbWVudCogYWZ0ZXIgPSBwYXJlbnRSZW5kZXJlci5lbGVtZW50
KCktPmFmdGVyUHNldWRvRWxlbWVudCgpKQotICAgICAgICByZXR1cm4gYWZ0ZXItPnJlbmRlcmVy
KCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KLVJlbmRlclRyZWVQb3NpdGlvbjo6UmVuZGVy
VHJlZVBvc2l0aW9uKFJlbmRlclZpZXcmIHJvb3QpCi0gICAgOiBtX3BhcmVudChyb290KQotICAg
ICwgbV9uZXh0U2libGluZyhudWxscHRyKQotICAgICwgbV9oYXNWYWxpZE5leHRTaWJsaW5nKHRy
dWUpCi0jaWYgIUFTU0VSVF9ESVNBQkxFRAotICAgICwgbV9hc3NlcnRpb25MaW1pdENvdW50ZXIo
MCkKLSNlbmRpZgotewotfQotCi1SZW5kZXJUcmVlUG9zaXRpb246OlJlbmRlclRyZWVQb3NpdGlv
bihSZW5kZXJFbGVtZW50JiBwYXJlbnQpCi0gICAgOiBtX3BhcmVudChwYXJlbnQpCi0gICAgLCBt
X25leHRTaWJsaW5nKG51bGxwdHIpCi0gICAgLCBtX2hhc1ZhbGlkTmV4dFNpYmxpbmcoZmFsc2Up
Ci0jaWYgIUFTU0VSVF9ESVNBQkxFRAotICAgICwgbV9hc3NlcnRpb25MaW1pdENvdW50ZXIoMCkK
LSNlbmRpZgotewotfQotCi1SZW5kZXJUcmVlUG9zaXRpb246OlJlbmRlclRyZWVQb3NpdGlvbihS
ZW5kZXJFbGVtZW50JiBwYXJlbnQsIFJlbmRlck9iamVjdCogbmV4dFNpYmxpbmcpCi0gICAgOiBt
X3BhcmVudChwYXJlbnQpCi0gICAgLCBtX25leHRTaWJsaW5nKG5leHRTaWJsaW5nKQotICAgICwg
bV9oYXNWYWxpZE5leHRTaWJsaW5nKHRydWUpCi0jaWYgIUFTU0VSVF9ESVNBQkxFRAotICAgICwg
bV9hc3NlcnRpb25MaW1pdENvdW50ZXIoMCkKLSNlbmRpZgotewotfQotCi1ib29sIFJlbmRlclRy
ZWVQb3NpdGlvbjo6Y2FuSW5zZXJ0KFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKSBjb25zdAotewot
ICAgIEFTU0VSVCghcmVuZGVyZXIucGFyZW50KCkpOwotICAgIHJldHVybiBtX3BhcmVudC5pc0No
aWxkQWxsb3dlZChyZW5kZXJlciwgcmVuZGVyZXIuc3R5bGUoKSk7Ci19Ci0KLWJvb2wgUmVuZGVy
VHJlZVBvc2l0aW9uOjpjYW5JbnNlcnQoUmVuZGVyVGV4dCYgcmVuZGVyZXIpIGNvbnN0Ci17Ci0g
ICAgQVNTRVJUKCFyZW5kZXJlci5wYXJlbnQoKSk7Ci0gICAgcmV0dXJuIG1fcGFyZW50LmlzQ2hp
bGRBbGxvd2VkKHJlbmRlcmVyLCBtX3BhcmVudC5zdHlsZSgpKTsKLX0KLQotdm9pZCBSZW5kZXJU
cmVlUG9zaXRpb246Omluc2VydChSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQotewotICAgIEFTU0VS
VChtX2hhc1ZhbGlkTmV4dFNpYmxpbmcpOwotICAgIG1fcGFyZW50LmFkZENoaWxkKCZyZW5kZXJl
ciwgbV9uZXh0U2libGluZyk7Ci19Ci0KLXZvaWQgUmVuZGVyVHJlZVBvc2l0aW9uOjpjb21wdXRl
TmV4dFNpYmxpbmcoY29uc3QgTm9kZSYgbm9kZSkKLXsKLSAgICBBU1NFUlQoIW5vZGUucmVuZGVy
ZXIoKSk7Ci0gICAgaWYgKG1faGFzVmFsaWROZXh0U2libGluZykgewotICAgICAgICAvLyBTdG9w
IHZhbGlkYXRpbmcgYXQgc29tZSBwb2ludCBzbyB0aGUgYXNzZXJ0IGRvZXNuJ3QgbWFrZSB1cyBP
KE5eMikgb24gZGVidWcgYnVpbGRzLgotICAgICAgICBBU1NFUlQobV9wYXJlbnQuaXNSZW5kZXJW
aWV3KCkgfHwgKyttX2Fzc2VydGlvbkxpbWl0Q291bnRlciA+IDIwIHx8IG5leHRTaWJsaW5nUmVu
ZGVyZXIobm9kZSwgbV9wYXJlbnQpID09IG1fbmV4dFNpYmxpbmcpOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotICAgIG1fbmV4dFNpYmxpbmcgPSBuZXh0U2libGluZ1JlbmRlcmVyKG5vZGUsIG1f
cGFyZW50KTsKLSAgICBtX2hhc1ZhbGlkTmV4dFNpYmxpbmcgPSB0cnVlOwotfQotCi12b2lkIFJl
bmRlclRyZWVQb3NpdGlvbjo6aW52YWxpZGF0ZU5leHRTaWJsaW5nKGNvbnN0IFJlbmRlck9iamVj
dCYgc2libGluZ1JlbmRlcmVyKQotewotICAgIGlmICghbV9oYXNWYWxpZE5leHRTaWJsaW5nKQot
ICAgICAgICByZXR1cm47Ci0gICAgaWYgKG1fbmV4dFNpYmxpbmcgPT0gJnNpYmxpbmdSZW5kZXJl
cikKLSAgICAgICAgbV9oYXNWYWxpZE5leHRTaWJsaW5nID0gZmFsc2U7Ci19Ci0KIHN0YXRpYyBi
b29sIHNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFJl
bmRlckVsZW1lbnQmIHBhcmVudFJlbmRlcmVyKQogewogICAgIGlmICghZWxlbWVudC5kb2N1bWVu
dCgpLnNob3VsZENyZWF0ZVJlbmRlcmVycygpKQpAQCAtMzAzLDcgKzE4NCw3IEBAIHN0YXRpYyB2
b2lkIGNyZWF0ZVJlbmRlcmVySWZOZWVkZWQoRWxlbWVudCYgZWxlbWVudCwgUmVuZGVyU3R5bGUm
IGluaGVyaXRlZFN0eWxlCiAgICAgICAgID8gUmVuZGVyVHJlZVBvc2l0aW9uKCpwYXJlbnRGbG93
UmVuZGVyZXIsIHBhcmVudEZsb3dSZW5kZXJlci0+bmV4dFJlbmRlcmVyRm9yRWxlbWVudChlbGVt
ZW50KSkKICAgICAgICAgOiByZW5kZXJUcmVlUG9zaXRpb247CiAKLSAgICBSZW5kZXJFbGVtZW50
KiBuZXdSZW5kZXJlciA9IGVsZW1lbnQuY3JlYXRlRWxlbWVudFJlbmRlcmVyKHN0eWxlLnJlbGVh
c2VOb25OdWxsKCkpLmxlYWtQdHIoKTsKKyAgICBSZW5kZXJFbGVtZW50KiBuZXdSZW5kZXJlciA9
IGVsZW1lbnQuY3JlYXRlRWxlbWVudFJlbmRlcmVyKHN0eWxlLnJlbGVhc2VOb25OdWxsKCksIGlu
c2VydGlvblBvc2l0aW9uKS5sZWFrUHRyKCk7CiAgICAgaWYgKCFuZXdSZW5kZXJlcikKICAgICAg
ICAgcmV0dXJuOwogICAgIGlmICghaW5zZXJ0aW9uUG9zaXRpb24uY2FuSW5zZXJ0KCpuZXdSZW5k
ZXJlcikpIHsKQEAgLTMzNiwyMCArMjE3LDYgQEAgc3RhdGljIHZvaWQgY3JlYXRlUmVuZGVyZXJJ
Zk5lZWRlZChFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJTdHlsZSYgaW5oZXJpdGVkU3R5bGUKICAg
ICBpbnNlcnRpb25Qb3NpdGlvbi5pbnNlcnQoKm5ld1JlbmRlcmVyKTsKIH0KIAotc3RhdGljIFJl
bmRlck9iamVjdCogcHJldmlvdXNTaWJsaW5nUmVuZGVyZXIoY29uc3QgVGV4dCYgdGV4dE5vZGUp
Ci17Ci0gICAgaWYgKHRleHROb2RlLnJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVybiB0ZXh0Tm9k
ZS5yZW5kZXJlcigpLT5wcmV2aW91c1NpYmxpbmcoKTsKLSAgICBmb3IgKE5vZGUqIHNpYmxpbmcg
PSBOb2RlUmVuZGVyaW5nVHJhdmVyc2FsOjpwcmV2aW91c1NpYmxpbmcoJnRleHROb2RlKTsgc2li
bGluZzsgc2libGluZyA9IE5vZGVSZW5kZXJpbmdUcmF2ZXJzYWw6OnByZXZpb3VzU2libGluZyhz
aWJsaW5nKSkgewotICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gc2libGluZy0+cmVu
ZGVyZXIoKTsKLSAgICAgICAgaWYgKHJlbmRlcmVyICYmICFpc1JlbmRlcmVyUmVwYXJlbnRlZChy
ZW5kZXJlcikpCi0gICAgICAgICAgICByZXR1cm4gcmVuZGVyZXI7Ci0gICAgfQotICAgIGlmIChQ
c2V1ZG9FbGVtZW50KiBiZWZvcmUgPSB0ZXh0Tm9kZS5wYXJlbnRFbGVtZW50KCktPmJlZm9yZVBz
ZXVkb0VsZW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIGJlZm9yZS0+cmVuZGVyZXIoKTsKLSAgICBy
ZXR1cm4gbnVsbHB0cjsKLX0KLQogc3RhdGljIHZvaWQgaW52YWxpZGF0ZVdoaXRlc3BhY2VPbmx5
VGV4dFNpYmxpbmdzQWZ0ZXJBdHRhY2hJZk5lZWRlZChOb2RlJiBjdXJyZW50KQogewogICAgIGlm
IChpczxJbnNlcnRpb25Qb2ludD4oY3VycmVudCkpCkBAIC0zNjEsNyArMjI4LDcgQEAgc3RhdGlj
IHZvaWQgaW52YWxpZGF0ZVdoaXRlc3BhY2VPbmx5VGV4dFNpYmxpbmdzQWZ0ZXJBdHRhY2hJZk5l
ZWRlZChOb2RlJiBjdXJyZW4KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKGlzPEVs
ZW1lbnQ+KCpzaWJsaW5nKSkgewogICAgICAgICAgICAgLy8gVGV4dCByZW5kZXJlcnMgYmV5b25k
IHJlbmRlcmVkIGVsZW1lbnRzIGNhbid0IGJlIGFmZmVjdGVkLgotICAgICAgICAgICAgaWYgKCFz
aWJsaW5nLT5yZW5kZXJlcigpIHx8IGlzUmVuZGVyZXJSZXBhcmVudGVkKHNpYmxpbmctPnJlbmRl
cmVyKCkpKQorICAgICAgICAgICAgaWYgKCFzaWJsaW5nLT5yZW5kZXJlcigpIHx8IFJlbmRlclRy
ZWVQb3NpdGlvbjo6aXNSZW5kZXJlclJlcGFyZW50ZWQoKnNpYmxpbmctPnJlbmRlcmVyKCkpKQog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CkBAIC0zOTMsNyArMjYwLDcgQEAgc3RhdGljIGJvb2wgdGV4dFJlbmRlcmVySXNOZWVkZWQoY29u
c3QgVGV4dCYgdGV4dE5vZGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYKICAgICBpZiAocGFy
ZW50UmVuZGVyZXIuc3R5bGUoKS5wcmVzZXJ2ZU5ld2xpbmUoKSkgLy8gcHJlL3ByZS13cmFwL3By
ZS1saW5lIGFsd2F5cyBtYWtlIHJlbmRlcmVycy4KICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAg
ICBSZW5kZXJPYmplY3QqIHByZXZpb3VzUmVuZGVyZXIgPSBwcmV2aW91c1NpYmxpbmdSZW5kZXJl
cih0ZXh0Tm9kZSk7CisgICAgUmVuZGVyT2JqZWN0KiBwcmV2aW91c1JlbmRlcmVyID0gUmVuZGVy
VHJlZVBvc2l0aW9uOjpwcmV2aW91c1NpYmxpbmdSZW5kZXJlcih0ZXh0Tm9kZSk7CiAgICAgaWYg
KHByZXZpb3VzUmVuZGVyZXIgJiYgcHJldmlvdXNSZW5kZXJlci0+aXNCUigpKSAvLyA8c3Bhbj48
YnIvPiA8YnIvPjwvc3Bhbj4KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAKQEAgLTQw
OCw3ICsyNzUsNyBAQCBzdGF0aWMgYm9vbCB0ZXh0UmVuZGVyZXJJc05lZWRlZChjb25zdCBUZXh0
JiB0ZXh0Tm9kZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJgogICAgICAgICBSZW5kZXJPYmpl
Y3QqIGZpcnN0ID0gcGFyZW50UmVuZGVyZXIuZmlyc3RDaGlsZCgpOwogICAgICAgICB3aGlsZSAo
Zmlyc3QgJiYgZmlyc3QtPmlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQoKSkKICAgICAg
ICAgICAgIGZpcnN0ID0gZmlyc3QtPm5leHRTaWJsaW5nKCk7Ci0gICAgICAgIFJlbmRlck9iamVj
dCogbmV4dFJlbmRlcmVyID0gbmV4dFNpYmxpbmdSZW5kZXJlcih0ZXh0Tm9kZSwgcGFyZW50UmVu
ZGVyZXIpOworICAgICAgICBSZW5kZXJPYmplY3QqIG5leHRSZW5kZXJlciA9IFJlbmRlclRyZWVQ
b3NpdGlvbjo6bmV4dFNpYmxpbmdSZW5kZXJlcih0ZXh0Tm9kZSwgcGFyZW50UmVuZGVyZXIpOwog
ICAgICAgICBpZiAoIWZpcnN0IHx8IG5leHRSZW5kZXJlciA9PSBmaXJzdCkgewogICAgICAgICAg
ICAgLy8gV2hpdGVzcGFjZSBhdCB0aGUgc3RhcnQgb2YgYSBibG9jayBqdXN0IGdvZXMgYXdheS4g
RG9uJ3QgZXZlbiBtYWtlIGEgcmVuZGVyIG9iamVjdCBmb3IgdGhpcyB0ZXh0LgogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKaW5kZXggZmEzMTcy
ZjFiZDZmODE2Mzg5ODE3ZTA0N2VhZGUyNDU5ZmQ0NmZiNy4uMWEyODQ2YjBlY2JlNDRmYzM0ZTIz
NjBhNmUyMTAzMjUzOTNjOWMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCkBAIC0x
MDUsNyArMTA1LDcgQEAgdm9pZCBTVkdBRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OnN2Z0F0
dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
U1ZHQUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5
bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHQUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlv
biYpCiB7CiAgICAgaWYgKHBhcmVudE5vZGUoKSAmJiBwYXJlbnROb2RlKCktPmlzU1ZHRWxlbWVu
dCgpICYmIGRvd25jYXN0PFNWR0VsZW1lbnQ+KCpwYXJlbnROb2RlKCkpLmlzVGV4dENvbnRlbnQo
KSkKICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR0lubGluZT4oKnRoaXMs
IFdURjo6bW92ZShzdHlsZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaAppbmRleCAyOTQ2NWRk
Y2YxMTMxYzY2MDFkODZlYmQwNjRmNGJlNGFhZDA4ZTZjLi41YmIxMjJiNzIyNzRlMGUzOGIyMGVm
ZTdjYjc3OGM4MTJlNGU0YWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaApAQCAtNDYsNyAr
NDYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRl
OwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4m
JiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29s
IGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5jcHAKaW5kZXggZTc0NDE1ZDli
YjkxYTJlNmViOTIxYjVlMTFkNWIxZjYzMTFhY2MxYy4uMDdjZTMyOTE3YTVjNjdiNjA1YjQ1MjU5
ODdiMDdkMDcyNmQ1ZDg4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEds
eXBoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVu
dC5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgYm9vbCBTVkdBbHRHbHlwaEVsZW1lbnQ6OmNoaWxkU2hv
dWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYgY2hpbGQpIGNvbnN0CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHQWx0R2x5cGhFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IFNWR0FsdEdseXBoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsK
ICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHVFNwYW4+KCp0aGlzLCBXVEY6Om1v
dmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlw
aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaAppbmRl
eCBmY2NjNDE1MzI3MjRlYTc3ZWFhYjIxODdiYTViMWE0YWQwMTZlYTQxLi4xNmY2MDZkOGI5OTI3
YmIyNGRjYjIxZGEyYjk1ODE2ZTQ3ZTQ0YTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQWx0R2x5cGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEds
eXBoRWxlbWVudC5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU1ZH
QWx0R2x5cGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAg
dmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3Qg
UmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hv
dWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgQkVH
SU5fREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0FsdEdseXBoRWxlbWVudCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcAppbmRleCAxYjg5OWY5YzcyZmVjMDRjODMx
NWIzMTFlMzc3YTcyMDY0NzE1OGM1Li40ZmUyNzVhNWE3M2I3YjM1ZWE3Yjk5MGRlZjJjZDBlZjk0
YmI5MTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwCkBAIC05OCw3
ICs5OCw3IEBAIHZvaWQgU1ZHQ2lyY2xlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICB9CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBTVkdDaXJjbGVFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRl
clN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0NpcmNsZUVsZW1l
bnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0
IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRl
clNWR0VsbGlwc2U+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQ2lyY2xlRWxlbWVudC5oCmluZGV4IDY4NmZiY2EwM2UzMjc5MDkyYzdiOGMxY2UwMWEyNmRh
NmI3NWUzM2UuLmJiZGRkMmE5MjAyMTQ3MTk4NDBiZmEyMGI0OWYzYTBlZGUwMmNjNDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaApAQCAtNDMsNyArNDMsNyBAQCBwcml2YXRl
OgogCiAgICAgdmlydHVhbCBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlk
ZTsKIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUyhTVkdDaXJjbGVFbGVt
ZW50KQogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX0xFTkdUSChDeCwgY3gpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCmluZGV4IDdmNmJlYzk1ZGJmNjhlZGI1ZGJl
ZTBlNDZjNTc0OThmMjdkZDZkNTAuLjYzNmY5MTQ5ZGZjYTY1Mjk4NjcxNDFmODM5NjVlYjkwNjdl
MDM3YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCkBAIC0x
MDIsNyArMTAyLDcgQEAgdm9pZCBTVkdDbGlwUGF0aEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChj
b25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQogICAgICAgICBvYmplY3QtPnNldE5lZWRzTGF5b3V0
KCk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdDbGlwUGF0aEVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gU1ZHQ2xpcFBhdGhFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewog
ICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXI+KCp0aGlz
LCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdDbGlwUGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1l
bnQuaAppbmRleCBkM2JhNmZkNDczZDk3MDVmNmY4MTYwODA1ZjVhNjg2ZWQ2NDcyMWRkLi4zOTYz
ZmEwYzljN2RjYTcwMWNlNzBmZTU0NjU5NzAyMGI3ZjI4ODIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0NsaXBQYXRoRWxlbWVudC5oCkBAIC00OCw3ICs0OCw3IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2Um
KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAg
QkVHSU5fREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0NsaXBQYXRoRWxlbWVudCkKICAg
ICAgICAgREVDTEFSRV9BTklNQVRFRF9FTlVNRVJBVElPTihDbGlwUGF0aFVuaXRzLCBjbGlwUGF0
aFVuaXRzLCBTVkdVbml0VHlwZXM6OlNWR1VuaXRUeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEZWZz
RWxlbWVudC5jcHAKaW5kZXggODNlMGQ2ZjkwMjJiNDcwYzc0ODBhODc5ZjVkYzI1OTQzZDg1YjU5
ZC4uODdkODY5NjA3ZTM0NDg1ODA4OTM5ZjgzN2E2ZTJiMjA5NWEzY2E5ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRGVmc0VsZW1lbnQuY3BwCkBAIC01MSw3ICs1MSw3IEBAIGJvb2wgU1ZHRGVmc0Vs
ZW1lbnQ6OmlzVmFsaWQoKSBjb25zdAogICAgIHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOwog
fQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHRGVmc0VsZW1lbnQ6OmNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gU1ZHRGVmc0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNy
ZWF0ZVJlbmRlcmVyPFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lcj4oKnRoaXMsIFdURjo6bW92ZShz
dHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuaAppbmRleCA1OGNjODg3ZmY3
ZGNhNTRlYmRiYWY4NWQzNmRjMTdiOGI2NGQ0OWVkLi45ZmE0NDAxNDEyYTBmMjExMGNhODYzODIw
NzM1N2UyYjI4Y2U3OTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0Vs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuaApAQCAtMzgs
NyArMzgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAK
ICAgICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHRGVmc0VsZW1lbnQpCiAg
ICAgICAgIERFQ0xBUkVfQU5JTUFURURfQk9PTEVBTihFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
LCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNl
RWxlbWVudC5jcHAKaW5kZXggZDMzMzg0MThkODM4YmVhZDhhODMwY2I3NzViZWEyZjJhZTc4YTc1
OS4uYWUzNjk2MWZkMTkyY2Y4N2VlZTMzY2Q2MDA5MzM2MThhZjA1MWI4YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwCkBAIC0xMDAsNyArMTAwLDcgQEAgdm9pZCBT
VkdFbGxpcHNlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSkKICAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQo
YXR0ck5hbWUpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHRWxsaXBzZUVsZW1l
bnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHRWxsaXBzZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYp
CiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR0VsbGlwc2U+KCp0aGlzLCBX
VEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdF
bGxpcHNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgK
aW5kZXggMmRmNDFlZDZmMDEzODAyYWE3NzJlZDU5YmMxOWFiY2U3MzkyYjUxYS4uZjYyZDMyZGNl
YTlkY2M5YzIwNDIxNGE3ZDQ4YWM5MWU2MDQ3Mzc4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Vs
bGlwc2VFbGVtZW50LmgKQEAgLTQzLDcgKzQzLDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwg
Ym9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAgQkVHSU5f
REVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0VsbGlwc2VFbGVtZW50KQogICAgICAgICBE
RUNMQVJFX0FOSU1BVEVEX0xFTkdUSChDeCwgY3gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVy
RWxlbWVudC5jcHAKaW5kZXggZmU2NTc5OGYwNjIzNjY0NjBmNWI4NTU0ZWEwZGYyOGFlOTJlYTM2
Yy4uMmE3ZmIzYzE4NWU5ZDIyZTQyZDU4YjhmZWFkZWUxOTA2ODI5ZGY1ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcApAQCAtMTgzLDcgKzE4Myw3IEBAIHZvaWQgU1ZH
RmlsdGVyRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2Up
CiAgICAgICAgIG9iamVjdC0+c2V0TmVlZHNMYXlvdXQoKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IFNWR0ZpbHRlckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHRmlsdGVyRWxl
bWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29u
c3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVu
ZGVyU1ZHUmVzb3VyY2VGaWx0ZXI+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCmluZGV4IDU2NTZlMjNjZjY4Y2I1NTlmYjA4NDY3
MGNhOGY0M2I5NTU5M2QxZDQuLjZmZDZjMmU3MDRiNmU5OGQyZWJjMGNkOTZkYTVkYzNkN2Y1NzEw
NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaApAQCAtNTMsNyArNTMsNyBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2Vk
KGNvbnN0IENoaWxkQ2hhbmdlJikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24m
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihj
b25zdCBOb2RlJikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhhc1Jl
bGF0aXZlTGVuZ3RocygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlcy5jcHAKaW5kZXggMDcwZjdkMDFhYjk2YjliMTdiY2M4YWVjYThjMDEzYjBjZTFiNTk3
My4uZDgzZTAxZmUzODY3MGViYjMxN2JkYjZmMGZkMzA0OTA3ZDcwMWZhMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlcy5jcHAKQEAgLTEzNyw3ICsxMzcsNyBAQCB2b2lkIFNWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlczo6c2V0U3RhbmRhcmRBdHRyaWJ1dGVzKEZpbHRlckVmZmVjdCogZgog
ICAgICAgICBmaWx0ZXJFZmZlY3QtPnNldEhhc0hlaWdodCh0cnVlKTsKIH0KIAotUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRy
ZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1Jlc291
cmNlRmlsdGVyUHJpbWl0aXZlPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzLmgKaW5kZXggMzFiZTUxNGI0MGRlNTllODAxMGNhOTYxZjNjY2FjODFhNDYzNmI4MC4u
M2M4NmE0ZDRjNDY4YTI1ZWI1OTcyMDhhYWI3NzMxYzhhZGQ1ZWQ2MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXMuaApAQCAtNTcsNyArNTcsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZpcnR1YWwg
Ym9vbCBpc0ZpbHRlckVmZmVjdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAot
ICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNv
bnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCByZW5k
ZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBi
b29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
b3JlaWduT2JqZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9i
amVjdEVsZW1lbnQuY3BwCmluZGV4IDYyNDZiMjgxN2FjZjYyMDQ1MmIwOWU2N2EwODdkYjQ3MDg2
MDFjMWYuLmVhMzU3OTNjNzQ4NDI5OWZjZWE1YTBmNzc5YmY5ZjI4OWJkMDNmNjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcApAQCAtMTIyLDcg
KzEyMiw3IEBAIHZvaWQgU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIFJlbmRlclNWR1Jlc291
cmNlOjptYXJrRm9yTGF5b3V0QW5kUGFyZW50UmVzb3VyY2VJbnZhbGlkYXRpb24oKnJlbmRlcmVy
KTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRp
b24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdGb3JlaWduT2JqZWN0
PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
b3JlaWduT2JqZWN0RWxlbWVudC5oCmluZGV4IDViMGYyZWU2YjMzNTZlODkyNTJiYjE2NzQ1MDc2
ODFiYTYxM2MxOWQuLjZjNzk0YmYyZTU1ZDA5NGU3YzQwYWZjMTMyMWNlMDFjNjFiMTNlN2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oCkBAIC00NCw3
ICs0NCw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChj
b25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3Vs
ZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFs
IFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRl
clN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJU
cmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVsYXRp
dmVMZW5ndGhzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0dFbGVtZW50LmNwcAppbmRleCAwM2FlOGYzNDBlNDViMDczMGQ3NTU3Njk1YmVjMGVhZTQ5
Y2FjYmYzLi40ZTNlNzkyZDFlMmI4ZGZmYzc5MzExMzRiOWUyMDlmZTc1MThjOGJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAKQEAgLTgzLDcgKzgzLDcgQEAgdm9pZCBTVkdHRWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAg
ICAgICAgUmVuZGVyU1ZHUmVzb3VyY2U6Om1hcmtGb3JMYXlvdXRBbmRQYXJlbnRSZXNvdXJjZUlu
dmFsaWRhdGlvbigqcmVuZGVyZXIpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZH
R0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUp
CitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHR0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYp
CiB7CiAgICAgLy8gU1ZHIDEuMSB0ZXN0c3VpdGUgZXhwbGljaXRlbHkgdXNlcyBjb25zdHJ1Y3Rz
IGxpa2UgPGcgZGlzcGxheT0ibm9uZSI+PGxpbmVhckdyYWRpZW50PgogICAgIC8vIFdlIHN0aWxs
IGhhdmUgdG8gY3JlYXRlIHJlbmRlcmVycyBmb3IgdGhlIDxnPiAmIDxsaW5lYXJHcmFkaWVudD4g
ZWxlbWVudCwgdGhvdWdoIHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuaAppbmRleCA4MWM4ODM4
NzE0YzYyYjBiODY0YmE3MDczNjMxMzU2N2Y0ZGU3NTI5Li5kZTQxYmEwMjJkOTdkYmEwZmVlNmVl
MDlhZGZmMzE5M2Q5YjVmNDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0Vs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuaApAQCAtMzYsNyAr
MzYsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNWR0dFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVy
KFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7
CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFNW
R1Rlc3RzOjppc1ZhbGlkKCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0dyYXBoaWNzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVt
ZW50LmNwcAppbmRleCA3OTQ3YTFjZDVkMjhlMDAwZGIxOGJmY2EyNGQ5NjliYmQxYzAzNTY5Li44
MjkwNWFkNGVhYjAxZWFhOWUxNDJjMjNmZTUxZWQyM2E2NWFhMzk0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcApAQCAtMTYxLDcgKzE2MSw3IEBAIEZsb2F0UmVj
dCBTVkdHcmFwaGljc0VsZW1lbnQ6OmdldEJCb3goU3R5bGVVcGRhdGVTdHJhdGVneSBzdHlsZVVw
ZGF0ZVN0cmF0ZWd5KQogICAgIHJldHVybiBTVkdUcmFuc2Zvcm1hYmxlOjpnZXRCQm94KHRoaXMs
IHN0eWxlVXBkYXRlU3RyYXRlZ3kpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZH
R3JhcGhpY3NFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYm
IHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0dyYXBoaWNzRWxlbWVudDo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVy
VHJlZVBvc2l0aW9uJikKIHsKICAgICAvLyBCeSBkZWZhdWx0LCBhbnkgc3ViY2xhc3MgaXMgZXhw
ZWN0ZWQgdG8gZG8gcGF0aC1iYXNlZCBkcmF3aW5nCiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVy
PFJlbmRlclNWR1BhdGg+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdHcmFwaGljc0VsZW1lbnQuaAppbmRleCBmMmQzZDJmNjM0MGEwZDY4MDlhMmU3ZWRjMWRl
ZDAzZWY4YTRkNDRkLi43NGQ0YjQyYTcxMDU4ZmViYTI3NzYxODgyZTg1NzQ4NGI3NGZhZTlkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5oCkBAIC01MSw3ICs1MSw3IEBA
IHB1YmxpYzoKIAogICAgIC8vICJiYXNlIGNsYXNzIiBtZXRob2RzIGZvciBhbGwgdGhlIGVsZW1l
bnRzIHdoaWNoIHJlbmRlciBhcyBwYXRocwogICAgIHZpcnR1YWwgdm9pZCB0b0NsaXBQYXRoKFBh
dGgmKTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgog
ICAgIFNWR0dyYXBoaWNzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKaW5kZXggYjM2NjgxMjBkYzk0YzRh
MDI5MDYwZjAyZGVhMTE0OTNhODE5M2E1NC4uYjJlOTdkZDdiOTQzMjBmMTk3ZTY5MTM1ZDEzNzJj
ZTA5YzU2MDlkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKQEAgLTE2
MCw3ICsxNjAsNyBAQCB2b2lkIFNWR0ltYWdlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
IH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0ltYWdlRWxlbWVudDo6Y3JlYXRlRWxl
bWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBTVkdJbWFnZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVy
U3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJu
IGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR0ltYWdlPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgKaW5kZXggOWVhMTVhNmYwYTkyODk2
MmVmYjMyNDgwOTg3OGVhNTA3MDQ4MDkyOS4uM2RmNTZlZDBjOGMyMWZiYmE0OWYwNWQ5Y2VmZTEw
MDhmNzdjYmRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaApAQCAtNDksNyAr
NDksNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0
ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlv
biYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGltYWdlU291
cmNlVVJMKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGFkZFN1YnJlc291cmNl
QXR0cmlidXRlVVJMcyhMaXN0SGFzaFNldDxVUkw+JikgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCmluZGV4IDI2M2Mx
Y2NmOTIxYzM0ZGZjZWQ1YTBjYzkzYTI1OWMwYWE2MTI1ZGYuLjc1ODQ3YWE1NGQ4ZTUxMDg0M2Nm
MDM4YTNmOThmNGM1OGE3OTZiNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
aW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5l
YXJHcmFkaWVudEVsZW1lbnQuY3BwCkBAIC0xMTMsNyArMTEzLDcgQEAgdm9pZCBTVkdMaW5lYXJH
cmFkaWVudEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUKICAgICAgICAgb2JqZWN0LT5zZXROZWVkc0xheW91dCgpOwogfQogCi1SZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxS
ZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICBy
ZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudD4oKnRo
aXMsIFdURjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVh
ckdyYWRpZW50RWxlbWVudC5oCmluZGV4IGE3YTQ2OTc2NzA1YTU1OTk0NDZmMzlmOTFmNTdhYWIx
YWJkMzMxNWYuLmRjZmFiYTMxZmY0Y2ZjNzIyNTEyNWIyNmM4NzE0ZTM2NGI0OTA2MTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKQEAgLTQyLDcg
KzQyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlk
ZTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+
JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBi
b29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwCmluZGV4IGFmZDQwNDg5YmQxNGUzYTZjMzQ0N2Zi
YjQ2MGYwNjc5YjAyYjNhN2IuLjRjMmYyY2ZiOGMzMTYwY2Y2ZDA1ZTk1NjExNTk5MDFjNjI2ZDgz
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKQEAgLTIxMyw3ICsy
MTMsNyBAQCB2b2lkIFNWR01hcmtlckVsZW1lbnQ6OnNldE9yaWVudFRvQW5nbGUoY29uc3QgU1ZH
QW5nbGUmIGFuZ2xlKQogICAgIHN2Z0F0dHJpYnV0ZUNoYW5nZWQob3JpZW50QW5nbGVQcm9wZXJ0
eUluZm8oKS0+YXR0cmlidXRlTmFtZSk7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBT
VkdNYXJrZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYm
IHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR01hcmtlckVsZW1lbnQ6OmNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRy
ZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1Jlc291
cmNlTWFya2VyPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R01hcmtlckVsZW1lbnQuaAppbmRleCBiNGQzMDYxNTU4OGEzNDU5N2NmY2I4ZWRmMWJlMzI2Mzdh
MTM3MDc1Li5hODg1YTRlZGNiMGM0MjQ3M2RkNTIyM2JmNjI3YzNkYTZlYmFkZTE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENo
aWxkQ2hhbmdlJikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYp
IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVs
YXRpdmVMZW5ndGhzKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVt
ZW50LmNwcAppbmRleCA2YzUwODUxYzM2ZjQ4MWU0MGVmNmJlYzhhYTRkNjkyYjk3NTA3NjljLi4w
NDlkMDcyZjY2Y2Q4MGMxNTY1ODFiNjQyYzI0NDFiMzZjMzAxMDE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNYXNrRWxlbWVudC5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBAQCB2b2lkIFNWR01hc2tFbGVt
ZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKICAgICAgICAg
b2JqZWN0LT5zZXROZWVkc0xheW91dCgpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
U1ZHTWFza0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYg
c3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHTWFza0VsZW1lbnQ6OmNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQ
b3NpdGlvbiYpCiB7CiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IG1hc2tSZW5kZXJlciA9
IGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1Jlc291cmNlTWFza2VyPigqdGhpcywgV1RGOjptb3Zl
KHN0eWxlKSk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0Vs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oCmluZGV4IDRlNTY4
ZTAxYTRmYjRmNGE0NjU1ODQ5NTc1NmIzYTlkZWFkNTE0NTUuLjg3NDc2ODJlNzI1MzY2MDNlZTky
NDNhMzNiZmVmZGZjMTMxYmMzNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdN
YXNrRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oCkBA
IC01NSw3ICs1NSw3IEBAIHByaXZhdGU6CiAKICAgICBIYXNoU2V0PFJlbmRlckxheWVyKj4gbV9j
bGllbnRMYXllcnM7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJl
bmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIAogICAg
IHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gdHJ1ZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAppbmRleCAx
ZDVjODMxMmY0OGYyNjcwOTAzMDk4YTBmMWM3MDhhNjgzMjA1OTA1Li42MWQ2NTY0ZjA1MWZiYWM5
YzQzMzg5NzgzYmNjN2VjNWFhNTJiZDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVu
dC5jcHAKQEAgLTM5MSw3ICszOTEsNyBAQCBGbG9hdFJlY3QgU1ZHUGF0aEVsZW1lbnQ6OmdldEJC
b3goU3R5bGVVcGRhdGVTdHJhdGVneSBzdHlsZVVwZGF0ZVN0cmF0ZWd5KQogICAgIHJldHVybiBy
ZW5kZXJlci0+cGF0aCgpLmJvdW5kaW5nUmVjdCgpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gU1ZHUGF0aEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5
bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHUGF0aEVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpCiB7CiAgICAgLy8gQnkgZGVmYXVsdCwgYW55IHN1YmNsYXNzIGlzIGV4
cGVjdGVkIHRvIGRvIHBhdGgtYmFzZWQgZHJhd2luZwogICAgIHJldHVybiBjcmVhdGVSZW5kZXJl
cjxSZW5kZXJTVkdQYXRoPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoRWxlbWVudC5oCmluZGV4IGMzNzFlNTU5NmJjNTE4MTJjYTRmN2FlOTFhNGI5OTJkY2Fi
ZDUyYjMuLjYxMjNjYTA2ZjQ5NjdhYzhlNWIyZjdhODA4NmY4MDE1YjllMWI5NDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCkBAIC0xMTYsNyArMTE2LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgREVDTEFSRV9BTklNQVRFRF9CT09MRUFOKEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQs
IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJP
UEVSVElFUwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxl
bWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJT
dHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0
dWFsIE5vZGU6Okluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRh
aW5lck5vZGUmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFp
bmVyTm9kZSYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dHRlcm5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5j
cHAKaW5kZXggZmIxOGY4YWIyOTA2N2EzN2Q2ZjBlNGU1ZDA5YWM3NTE2ZmQ2N2QyYi4uYTA3Yzg3
NTBhN2FiODY0ODc4NTRkNGM4MDZiZjgxNGUxOGFmODlmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0dGVybkVsZW1lbnQuY3BwCkBAIC0xODIsNyArMTgyLDcgQEAgdm9pZCBTVkdQYXR0ZXJu
RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiAgICAg
ICAgIG9iamVjdC0+c2V0TmVlZHNMYXlvdXQoKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IFNWR1BhdHRlcm5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0
eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1BhdHRlcm5FbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlLCBjb25zdCBS
ZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJT
VkdSZXNvdXJjZVBhdHRlcm4+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgKaW5kZXggYzZlNjg0ZDNmOGIwMmY2OGRhNGE3NTk5
M2EzNmY2NDhhZDM3YjRlZS4uYWYyOTJiNWYwYmE0ZTNlY2QwOWU4YTZmMjU3NTZiOGE2NzNmYTQ3
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgKQEAgLTYyLDcgKzYyLDcg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdl
ZChjb25zdCBDaGlsZENoYW5nZSYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxl
bWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9u
Jikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3Rocygp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcAppbmRleCAwOTlhMGM5YzkxMjE4Yzc0M2Q5
NDJkZDFlZWViN2JjMjY1NTUwMDkxLi5jNjI1MmE4NjA0MzExZmU5NmFkODMxMDFmMDRjNjliZTZl
YWQyNDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVt
ZW50LmNwcApAQCAtMTI1LDcgKzEyNSw3IEBAIHZvaWQgU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50
OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lCiAgICAg
ICAgIG9iamVjdC0+c2V0TmVlZHNMYXlvdXQoKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxS
ZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdSYWRpYWxH
cmFkaWVudEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYg
c3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJl
bmRlcmVyPFJlbmRlclNWR1Jlc291cmNlUmFkaWFsR3JhZGllbnQ+KCp0aGlzLCBXVEY6Om1vdmUo
c3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFk
aWVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1l
bnQuaAppbmRleCBkNjQ4ODk5MmY4ZjdmNDk1MTBhNGRkZDZiOTdiOTVkOWIzNGUwMjY0Li5jMGMz
OWViNDRjYTg3YWI1YmMwZTU3NDA1MTZkMTc0OTA5MTU1MmJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCkBAIC00Miw3ICs0Miw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0
dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJl
bmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5k
ZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVs
YXRpdmVMZW5ndGhzKCkgY29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVs
ZW1lbnQuY3BwCmluZGV4IGUyM2ExZTVkMjgzNWJlNjg0ODg3NWE1NzQ0ZWIxY2JjNTU0OGQ3YTEu
LmI3M2IwZDhjZjcxNmU5OTkyOTZhMWZkZDc4MGRiNzg0MDFmZmFjYWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1JlY3RFbGVtZW50LmNwcApAQCAtMTEwLDcgKzExMCw3IEBAIHZvaWQgU1ZHUmVjdEVs
ZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUp
CiAgICAgU1ZHR3JhcGhpY3NFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsK
IH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1JlY3RFbGVtZW50OjpjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IFNWR1JlY3RFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0
eWxlPiYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBj
cmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdSZWN0PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oCmluZGV4IGVkYTUyNmJmMDU4NDRkYzc0MTA4
MThkNjg5ZDY1NWU3OTcxMWNiMWIuLjlhMmRkNzkwMTY4MmNlYWUwNjJiZmIyZTc0ZmYxODRkYzgy
ZTExOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oCkBAIC00NCw3ICs0NCw3IEBA
IHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYp
IG92ZXJyaWRlOwogCiAgICAgQkVHSU5fREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR1Jl
Y3RFbGVtZW50KQogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX0xFTkdUSChYLCB4KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCmluZGV4IDBkNGQ4NWFmOGJkYzFjNmQxMjI0ODY5NmNl
NjFlNjg1MDNmMzFmMjMuLmM2NTE2YzQzNTY5NDEyZjU4OTkxMzM4ZjUyZjkxNGU4NWU2ZDU1MjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKQEAgLTQzOSw3ICs0MzksNyBAQCBi
b29sIFNWR1NWR0VsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0
eWxlKQogICAgIHJldHVybiBTdHlsZWRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKHN0eWxlKTsK
IH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1NWR0VsZW1lbnQ6OmNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gU1ZHU1ZHRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHls
ZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICBpZiAoaXNPdXRl
cm1vc3RTVkdTVkdFbGVtZW50KCkpCiAgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5k
ZXJTVkdSb290PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0Vs
ZW1lbnQuaAppbmRleCA4MWQ5NjI1ZTg1MDBjNDZkM2Q4NTdmZWQ2ZjZiM2FhODMwZGRmZmE3Li5k
NzJiNTM0YzIyZjAwZjQ5M2FkZWRkNzZmNmNmNjliZmM0ZjNjMDJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTVkdFbGVtZW50LmgKQEAgLTEzNCw3ICsxMzQsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCogb2xkRG9jdW1lbnQpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVy
SXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9z
aXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVl
c3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgcmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCmluZGV4IDA1OWNkNGQ2YWFiNjZmMTVlMmFm
NTY2MDliMmQyYTZjOTgxMmNiZDYuLmJiZTRmNjYwYWQyZmQyY2UxMzUwYTNlMTkwZGFiOGQyNmNl
NzVkYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNwcApAQCAtNzYsNyArNzYs
NyBAQCB2b2lkIFNWR1N0b3BFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIFNWR0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQo
YXR0ck5hbWUpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHU3RvcEVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUpCitSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gU1ZHU3RvcEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAg
ICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR0dyYWRpZW50U3RvcD4oKnRoaXMsIFdU
Rjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0
b3BFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuaAppbmRleCA3
ZWNlYmZlNTc4NjA4YjRhZGViZmQyZGNlYjEwNzYzYTIzNWMzMDQ2Li5hODM3NDk4YTIzZjBmYzUx
MmJlYTk3NDJhZTNhOGM0NDVlYzA3MDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU3RvcEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQu
aApAQCAtNDAsNyArNDAsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIGlzR3JhZGll
bnRTdG9wKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJT
dHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJl
ZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQo
Y29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZTsKIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFU
RURfUFJPUEVSVElFUyhTVkdTdG9wRWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hF
bGVtZW50LmNwcAppbmRleCAyZWFmYjNjZGJjNTUxNWJkYzYxNzk3MDlkMDIwMjg4ZWQ4MzUyM2Mw
Li40NDc2MmNiZTVjYmJmY2Q0NmY4NGY5YmFhYTNjM2VmMjkzNGIyNGRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuY3BwCkBAIC02MCw3ICs2MCw3IEBAIGJvb2wgU1ZHU3dp
dGNoRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJiBjaGlsZCkg
Y29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBT
VkdTd2l0Y2hFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYm
IHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1N3aXRjaEVsZW1lbnQ6OmNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRy
ZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1RyYW5z
Zm9ybWFibGVDb250YWluZXI+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5oCmluZGV4IDRlMmU0OTNlM2Q5MGU2OTgyZjI1ZjFlMzVi
NWE5NTRkYTU3MTc1NDQuLmYwOGRhMWM1OTcwNjE1ZDJlMWYxODJlMzU0NTEyZjk1YWJmMmEzYmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaApAQCAtMzgsNyArMzgsNyBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQogCiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxk
Q3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwg
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVy
U3R5bGU+JiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRy
ZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCiAgICAgQkVHSU5fREVDTEFSRV9BTklNQVRFRF9QUk9Q
RVJUSUVTKFNWR1N3aXRjaEVsZW1lbnQpCiAgICAgICAgIERFQ0xBUkVfQU5JTUFURURfQk9PTEVB
TihFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuY3BwCmluZGV4IGJiODA4ZjhhNTJjOTQx
NDYzYjVkZWRiYjM2NmFlMTliYzM3YmZhM2QuLmM4ZTFkZWM4YzkzN2IwZjBjYWY3MDBhNmVjYzI3
MDFlY2E3NDNlMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAKQEAg
LTc0LDcgKzc0LDcgQEAgYm9vbCBTVkdTeW1ib2xFbGVtZW50OjpzZWxmSGFzUmVsYXRpdmVMZW5n
dGhzKCkgY29uc3QKICAgICByZXR1cm4gaGFzQXR0cmlidXRlKFNWR05hbWVzOjp2aWV3Qm94QXR0
cik7CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdTeW1ib2xFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IFNWR1N5bWJvbEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8
UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAg
cmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lcj4oKnRoaXMsIFdU
Rjo6bW92ZShzdHlsZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5
bWJvbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgKaW5k
ZXggODgzNjVhN2FjZjRjNjgwZjJmNmIwM2VhN2NjNmI5NWY1Y2U4Yjc5Yy4uZWEzOTRiMDQ5ODRj
ZWUwZWVlYzZhNjFlOWU0MzRjM2E4OTBlNmViZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1N5bWJvbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9s
RWxlbWVudC5oCkBAIC00MSw3ICs0MSw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQg
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlk
ZTsKIAogICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Qgb3Zl
cnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCmluZGV4IGNmNmI4ZjI1
N2IwMzlhYTM3MGJjMzIyODU2ZGFmZWYyMzhhZDA0M2YuLjRlZGI5ODNkZTQ4NTQxMTA5NmFiNGRh
Y2I5MjdhYjRhNTgyY2RkNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVm
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcApA
QCAtMTk1LDcgKzE5NSw3IEBAIHZvaWQgU1ZHVFJlZkVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgU1ZHVGV4dFBvc2l0aW9uaW5n
RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CiB9CiAKLVJlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBTVkdUUmVmRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxS
ZW5kZXJTdHlsZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdUUmVmRWxl
bWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29u
c3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVu
ZGVyU1ZHSW5saW5lPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdUUmVmRWxlbWVudC5oCmluZGV4IDMwNmUyYjM5MDZmY2EzZTVhNjVkOGMyNzE5ZjViY2Q5NjAy
MjE2OGMuLmI2NDVhNDUwMmIyYjE0OGNhNTZiMjdiODY1N2Y4NTVhNThmM2I2MDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5oCkBAIC00MSw3ICs0MSw3IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFJlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9z
aXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5k
ZXJlcihjb25zdCBOb2RlJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHJlbmRl
cmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RTcGFuRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVFNwYW5FbGVtZW50LmNwcAppbmRleCA2MjQzNDQyODhiZjgzNTI2ODUwOTRhYWRjNTU5
MzE2YWY3ODJmYTllLi5jYTlmNzdlYmFmNWViMzhiNmMyMzc2NWFhOWNlZmYxMzM4NzQ5MWM2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFNwYW5FbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFNwYW5FbGVtZW50LmNwcApAQCAtMzgsNyArMzgsNyBAQCBS
ZWY8U1ZHVFNwYW5FbGVtZW50PiBTVkdUU3BhbkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1RTcGFu
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gU1ZHVFNwYW5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxl
PiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1RTcGFuRWxlbWVudDo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiBzdHlsZSwgY29uc3QgUmVuZGVy
VHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZHVFNw
YW4+KCp0aGlzLCBXVEY6Om1vdmUoc3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUU3BhbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUU3BhbkVs
ZW1lbnQuaAppbmRleCAyNjUzZTk1ZWIwYmIyZGIyM2RmOGU0YjRiY2VkN2Y4MjRhZWZmMWY3Li45
YjRhZThhZmUzOGZmNTg0NjE2ZDY4ZDFhOWUzM2I2MjUzZDZkNTVlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVFNwYW5FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RTcGFuRWxlbWVudC5oCkBAIC0zMiw3ICszMiw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAg
ICAgU1ZHVFNwYW5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAg
ICAgICAgICAgCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxl
bWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJT
dHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxl
Jikgb3ZlcnJpZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5jcHAKaW5kZXgg
ODk1NGQ2MjM3Y2EzN2MxZjE2MzYyM2VkZDRlYzc4NjVkYzdjZTUwOS4uNGU0ZDlmODQ5YzliMjk0
N2UzOWM1MDJlYjI2MDliYmE2YzkxNDMwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RleHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1l
bnQuY3BwCkBAIC02NCw3ICs2NCw3IEBAIEFmZmluZVRyYW5zZm9ybSBTVkdUZXh0RWxlbWVudDo6
YW5pbWF0ZWRMb2NhbFRyYW5zZm9ybSgpIGNvbnN0CiAgICAgcmV0dXJuIG1hdHJpeDsKIH0KIAot
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1RleHRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IFNWR1RleHRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYm
IHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewogICAgIHJldHVybiBjcmVhdGVS
ZW5kZXJlcjxSZW5kZXJTVkdUZXh0PigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oCmluZGV4IGFmMTUwYTc5MDRjNTc2Y2MxYjljZTUyZWI5
YzQ4NTc2YjRhY2Q5MWMuLjAwNzY2NTczNjAzMTQ2NDA1ODUzOTE4M2UyZWFmMDEzYTAyMDEwMDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oCkBAIC0zNCw3ICszNCw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgU1ZHVGV4dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRl
clN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qgb3Zl
cnJpZGU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCmlu
ZGV4IGY1MzNiZDk1MjNmZjExMDcxMDliMDlkNTRkZTgwNWZmMWJlZTIxNmEuLmEyYWQxOTFlMWZh
Nzc0MDZkMTVlYzZkNjk5MzQ3MjlkNjI4MjU1ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
ZXh0UGF0aEVsZW1lbnQuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCBTVkdUZXh0UGF0aEVs
ZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUp
CiAgICAgICAgIFJlbmRlclNWR1Jlc291cmNlOjptYXJrRm9yTGF5b3V0QW5kUGFyZW50UmVzb3Vy
Y2VJbnZhbGlkYXRpb24oKnJlbmRlcmVyKTsKIH0KIAotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IFNWR1RleHRQYXRoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHls
ZT4mJiBzdHlsZSkKK1JlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdUZXh0UGF0aEVsZW1lbnQ6
OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYgc3R5bGUsIGNvbnN0IFJl
bmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNW
R1RleHRQYXRoPigqdGhpcywgV1RGOjptb3ZlKHN0eWxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVGV4dFBhdGhFbGVtZW50LmgKaW5kZXggYTVhYzBkZTk1MzVmOTZiM2U5NzVjMTZjZmExNzdh
NmY3NmQzYmEwMS4uZTBkMGNlMDE1NDQ5NWY2YWUyNDM4MjMwZjkzMGQ0NjkxMmRmMjcxYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaApAQCAtMTI5LDcgKzEyOSw3IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKLSAg
ICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVmPFJlbmRlclN0eWxlPiYmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25z
dCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRT
aG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCmluZGV4IGE1MWU4Y2FmNGYyZGE3NzU5
NTQ2MmZkZmU0NWU2MGY0NjM2NjIwYjYuLjZjYTQzZTY1NDhkYzMwMjg2OTA5YWU2OTZkYjU4YTU2
MGVjMWJjYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKQEAgLTI2MSw3ICsy
NjEsNyBAQCBTVkdFbGVtZW50KiBTVkdVc2VFbGVtZW50Ojp0YXJnZXRDbG9uZSgpIGNvbnN0CiAg
ICAgcmV0dXJuIGRvd25jYXN0PFNWR0VsZW1lbnQ+KHJvb3QtPmZpcnN0Q2hpbGQoKSk7CiB9CiAK
LVJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdVc2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmIHN0eWxlKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IFNWR1VzZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYg
c3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVJl
bmRlcmVyPFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI+KCp0aGlzLCBXVEY6Om1vdmUo
c3R5bGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCmluZGV4IDQ3NzM5MjNjNThi
MWIyZWNiMzdmMWNjOWVjYTU4MzY0ZDg2NDU2YzIuLjg4MGY3Yjk0YzAxYTE2ZjA2NWNlZTkyMzA5
MzY2ODRlOWJmY2JmNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaApAQCAtNjQsNyAr
NjQsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCB3aWxsQXR0YWNoUmVuZGVyZXJzKCkgb3ZlcnJpZGU7Ci0gICAg
dmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
ZjxSZW5kZXJTdHlsZT4mJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3Qg
UmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHRvQ2xpcFBh
dGgoUGF0aCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBoYXZlTG9hZGVkUmVxdWlyZWRS
ZXNvdXJjZXMoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoUGFyc2luZ0NoaWxk
cmVuKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzc5YWExM2FmMDEwODAwMGQyNDZiYmFmY2UxODYyNjIy
NjFhNjM2MC4uMzZiNzk3YTNhNjM5MDc2YmI0MWMyMmE3ZjM3ZTBhNDMyYmY3ODUzNyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE4IEBACisyMDE1LTA0LTIyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CisKKyAgICAgICAgQ3JlYXRlIFJlbmRlclJ1YnlUZXh0IGZvciA8cnQ+IG9ubHkgd2hlbiB0
aGUgcGFyZW50IHJlbmRlcmVyIGlzIGEgUmVuZGVyUnVieS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDAzNQorICAgICAgICByZGFyOi8vcHJvYmxl
bS8yMDYwNDQ2NworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggZXh0ZW5kcyBIVE1MRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKCkK
KyAgICAgICAgd2l0aCB0aGUgcmVuZGVyIHRyZWUgaW5zZXJ0aW9uIHBvaW50IHNvIHRoYXQgd2Ug
Y2FuIGNyZWF0ZSBkaWZmZXJlbnQgdHlwZQorICAgICAgICBvZiByZW5kZXJlcnMgYmFzZWQgb24g
dGhlIHJlbmRlciB0cmVlIGNvbnRleHQuCisKKyAgICAgICAgKiBmYXN0L3J1YnkvcnVieS1ydC13
aXRoLXJlZ2lvbi1jcmFzaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcnVi
eS9ydWJ5LXJ0LXdpdGgtcmVnaW9uLWNyYXNoLmh0bWw6IEFkZGVkLgorCiAyMDE1LTA0LTIyICBO
YW4gV2FuZyAgPG5hbndhbmcxMTAxQHlhaG9vLmNvbT4KIAogICAgICAgICBBWDogV2ViS2l0IGRv
ZXMgbm90IGV4cG9zZSB0ZXh0IGZpZWxkcyBpbnNpZGUgdHJlZSB2aWV3cy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcnVieS9ydWJ5LXJ0LXdpdGgtcmVnaW9uLWNyYXNoLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcnVieS9ydWJ5LXJ0LXdpdGgtcmVnaW9uLWNyYXNoLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYjI1NWUwZTU0YmMxZjRmMjNjYjM5NjkwOTAyNDkzOTg2
NGJjZjczCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3J1YnktcnQt
d2l0aC1yZWdpb24tY3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorUGFzcyBpZiBu
byBhc3NlcnQgb3IgY3Jhc2ggaW4gRGVidWcuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcnVieS9ydWJ5LXJ0LXdpdGgtcmVnaW9uLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3J1YnkvcnVieS1ydC13aXRoLXJlZ2lvbi1jcmFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyYWUyMDNi
ZmQ1N2MyZjEwYzAyZDgzYTIwNzEzNzU4NTE2ZjM4YjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3J1YnkvcnVieS1ydC13aXRoLXJlZ2lvbi1jcmFzaC5odG1sCkBAIC0wLDAg
KzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHNjcmlwdD4KKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
KyAgPC9zY3JpcHQ+CisKKyAgPHN0eWxlPgorCXJ0IHsKKyAgICAgIC13ZWJraXQtZmxvdy1pbnRv
OiBmbG93Q29udGVudDsKKwl9CisJCisJZGl2IHsKKwkgIC13ZWJraXQtZmxvdy1mcm9tOiBmbG93
Q29udGVudDsgCisJfQorICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXY+PC9kaXY+
CisgIDxydWJ5PjxydD5QYXNzIGlmIG5vIGFzc2VydCBvciBjcmFzaCBpbiBEZWJ1Zy48L3J0Pjwv
cnVieT4KKyAgPHNjcmlwdD4KKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7
CisgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>