<?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>219365</bug_id>
          
          <creation_ts>2020-11-30 11:52:08 -0800</creation_ts>
          <short_desc>Create and draw app highlights</short_desc>
          <delta_ts>2020-12-02 12:11:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Megan Gardner">megan_gardner</reporter>
          <assigned_to name="Megan Gardner">megan_gardner</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1710698</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-11-30 11:52:08 -0800</bug_when>
    <thetext>Create and draw app highlights</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710786</commentid>
    <comment_count>1</comment_count>
      <attachid>415058</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-11-30 14:30:11 -0800</bug_when>
    <thetext>Created attachment 415058
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710790</commentid>
    <comment_count>2</comment_count>
      <attachid>415058</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-11-30 14:35:22 -0800</bug_when>
    <thetext>Comment on attachment 415058
Patch

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

&gt; Source/WebCore/dom/Document.cpp:2784
&gt; +void Document::collectRageDataFromRegister(Vector&lt;WeakPtr&lt;HighlightRangeData&gt;&gt;&amp; rangesData, RefPtr&lt;HighlightRegister&gt; highlightRegister)

Nit - `collectRageDataFromRegister`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710805</commentid>
    <comment_count>3</comment_count>
      <attachid>415058</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-11-30 14:50:15 -0800</bug_when>
    <thetext>Comment on attachment 415058
Patch

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

&gt; Source/WebCore/rendering/InlineTextBox.cpp:849
&gt; +    case MarkedText::AppHighlight: {

Nit. Do we need the &quot;{&quot; here? Seems inconsistent with other cases.

&gt; Source/WebCore/rendering/RenderThemeMac.mm:481
&gt; +    LocalDefaultSystemAppearance localAppearance(options.contains(StyleColor::Options::UseDarkAppearance));

What&apos;s the purpose of this local variable?

&gt; Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:553
&gt; +

Nit. This empty line can be removed.

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:7056
&gt; +

Nit. This empty line can be removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710847</commentid>
    <comment_count>4</comment_count>
      <attachid>415058</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-11-30 16:31:48 -0800</bug_when>
    <thetext>Comment on attachment 415058
Patch

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

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:849
&gt;&gt; +    case MarkedText::AppHighlight: {
&gt; 
&gt; Nit. Do we need the &quot;{&quot; here? Seems inconsistent with other cases.

Yes, the cases that this is like are lower down, like MarkedText::TextMatch and MarkedText::Selection.

&gt;&gt; Source/WebCore/rendering/RenderThemeMac.mm:481
&gt;&gt; +    LocalDefaultSystemAppearance localAppearance(options.contains(StyleColor::Options::UseDarkAppearance));
&gt; 
&gt; What&apos;s the purpose of this local variable?

It switches the state to dark appearance if it is set. This is very similar to the other color calculation functions above and below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710848</commentid>
    <comment_count>5</comment_count>
      <attachid>415075</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-11-30 16:32:46 -0800</bug_when>
    <thetext>Created attachment 415075
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710873</commentid>
    <comment_count>6</comment_count>
      <attachid>415058</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-11-30 17:05:00 -0800</bug_when>
    <thetext>Comment on attachment 415058
Patch

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

&gt;&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:849
&gt;&gt;&gt; +    case MarkedText::AppHighlight: {
&gt;&gt; 
&gt;&gt; Nit. Do we need the &quot;{&quot; here? Seems inconsistent with other cases.
&gt; 
&gt; Yes, the cases that this is like are lower down, like MarkedText::TextMatch and MarkedText::Selection.

(It&apos;s needed because of the local variable, and indeed this is the &quot;normal&quot; place to put it)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710875</commentid>
    <comment_count>7</comment_count>
      <attachid>415081</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-11-30 17:08:04 -0800</bug_when>
    <thetext>Created attachment 415081
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710887</commentid>
    <comment_count>8</comment_count>
      <attachid>415084</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-11-30 17:56:17 -0800</bug_when>
    <thetext>Created attachment 415084
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710889</commentid>
    <comment_count>9</comment_count>
      <attachid>415085</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-11-30 18:03:34 -0800</bug_when>
    <thetext>Created attachment 415085
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710918</commentid>
    <comment_count>10</comment_count>
      <attachid>415085</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-30 21:00:36 -0800</bug_when>
    <thetext>Comment on attachment 415085
Patch

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

&gt; Source/WebCore/Modules/highlight/HighlightRegister.cpp:56
&gt; +ASCIILiteral HighlightRegister::appHighlightKey()

&quot;app&quot; is a bit vague here. It&apos;s more like &quot;built-in highlights&quot; or &quot;client highlights&quot; where &quot;client&quot; is the client of WebKit.

&gt; Source/WebCore/Modules/highlight/HighlightRegister.cpp:66
&gt; +        m_map.get(appHighlightKey())-&gt;addToSetLike(value);
&gt; +    else
&gt; +        setFromMapLike(appHighlightKey(), Highlight::create(value));

WTFMove(value)?

&gt; Source/WebCore/Modules/highlight/HighlightRegister.h:39
&gt;  class HighlightRegister : public RefCounted&lt;HighlightRegister&gt; {

Should this be a Registry, rather than a Register?

&gt; Source/WebCore/css/CSSValueKeywords.in:262
&gt; +-apple-system-app-highlight-background

built-in-highlight? Not sure.

&gt; Source/WebCore/dom/Document.cpp:2777
&gt; +HighlightRegister&amp; Document::appHighlightRegister()

registry?

&gt; Source/WebCore/dom/Document.cpp:2784
&gt; +void Document::collectRangeDataFromRegister(Vector&lt;WeakPtr&lt;HighlightRangeData&gt;&gt;&amp; rangesData, RefPtr&lt;HighlightRegister&gt; highlightRegister)

Pass the register as a const HighlightRegister&amp; ?

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1078
&gt; +    for (auto&amp; highlight : renderer().document().appHighlightRegister().map()) {

Isn&apos;t this going to create the appHighlightRegister even when there are no app highlights?

&gt; Source/WebKit/UIProcess/WebPageProxy.h:1827
&gt; +    void createAppHighlightInSelectedRange(bool);

Use an enum instead of the bool. Can&apos;t tell what the bool means here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711122</commentid>
    <comment_count>11</comment_count>
      <attachid>415085</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-12-01 12:16:23 -0800</bug_when>
    <thetext>Comment on attachment 415085
Patch

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

&gt;&gt; Source/WebCore/Modules/highlight/HighlightRegister.cpp:56
&gt;&gt; +ASCIILiteral HighlightRegister::appHighlightKey()
&gt; 
&gt; &quot;app&quot; is a bit vague here. It&apos;s more like &quot;built-in highlights&quot; or &quot;client highlights&quot; where &quot;client&quot; is the client of WebKit.

App Highlight is what I have been using for everything already, so changing the name now I fear would be more confusing. If Everything needs to switch, I&apos;ll do it in a followup patch.

&gt;&gt; Source/WebCore/Modules/highlight/HighlightRegister.h:39
&gt;&gt;  class HighlightRegister : public RefCounted&lt;HighlightRegister&gt; {
&gt; 
&gt; Should this be a Registry, rather than a Register?

Not according to the spec.
https://www.w3.org/TR/2020/WD-css-highlight-api-1-20201022/

&gt;&gt; Source/WebCore/dom/Document.cpp:2777
&gt;&gt; +HighlightRegister&amp; Document::appHighlightRegister()
&gt; 
&gt; registry?

Same as above.

&gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:1078
&gt;&gt; +    for (auto&amp; highlight : renderer().document().appHighlightRegister().map()) {
&gt; 
&gt; Isn&apos;t this going to create the appHighlightRegister even when there are no app highlights?

True. Do we have a preferred pattern for checking if lazily made objects exist?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711125</commentid>
    <comment_count>12</comment_count>
      <attachid>415152</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-12-01 12:18:43 -0800</bug_when>
    <thetext>Created attachment 415152
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711128</commentid>
    <comment_count>13</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-12-01 12:22:25 -0800</bug_when>
    <thetext>(In reply to Megan Gardner from comment #11)
&gt; Comment on attachment 415085 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=415085&amp;action=review
&gt; &gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:1078
&gt; &gt;&gt; +    for (auto&amp; highlight : renderer().document().appHighlightRegister().map()) {
&gt; &gt; 
&gt; &gt; Isn&apos;t this going to create the appHighlightRegister even when there are no app highlights?
&gt; 
&gt; True. Do we have a preferred pattern for checking if lazily made objects
&gt; exist?

usually appHighlighterRegister() would return a nullable ptr, and ensureAppHighlighterRegister() (is it ensure we ended up with? I&apos;m not sure, look around) constructs it if needed and returns a ref.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711135</commentid>
    <comment_count>14</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-01 12:51:13 -0800</bug_when>
    <thetext>(In reply to Tim Horton from comment #13)
&gt; (In reply to Megan Gardner from comment #11)
&gt; &gt; Comment on attachment 415085 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=415085&amp;action=review
&gt; &gt; &gt;&gt; Source/WebCore/rendering/InlineTextBox.cpp:1078
&gt; &gt; &gt;&gt; +    for (auto&amp; highlight : renderer().document().appHighlightRegister().map()) {
&gt; &gt; &gt; 
&gt; &gt; &gt; Isn&apos;t this going to create the appHighlightRegister even when there are no app highlights?
&gt; &gt; 
&gt; &gt; True. Do we have a preferred pattern for checking if lazily made objects
&gt; &gt; exist?
&gt; 
&gt; usually appHighlighterRegister() would return a nullable ptr, and
&gt; ensureAppHighlighterRegister() (is it ensure we ended up with? I&apos;m not sure,
&gt; look around) constructs it if needed and returns a ref.

I vaguely recall some folks on webkit-dev decided that the preferred terminology is foo() and fooIfExists().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711226</commentid>
    <comment_count>15</comment_count>
      <attachid>415180</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-12-01 17:13:15 -0800</bug_when>
    <thetext>Created attachment 415180
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711239</commentid>
    <comment_count>16</comment_count>
      <attachid>415183</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-12-01 18:29:08 -0800</bug_when>
    <thetext>Created attachment 415183
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711370</commentid>
    <comment_count>17</comment_count>
      <attachid>415183</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-02 10:08:29 -0800</bug_when>
    <thetext>Comment on attachment 415183
Patch

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

&gt; Source/WebCore/rendering/RenderReplaced.cpp:157
&gt; +                return theme().appHighlightColor( styleColorOptions);

Nit - extra space before `styleColorOptions` here.

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:1300
&gt; +            { CSSValueAppleSystemYellow, @selector(systemYellowColor) },

Nit - do we need this change?

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:82
&gt; +#import &quot;WebPage.h&quot;

We should probably refrain from importing `WebPage.h` in the UI process, since that will pull in things like DOM nodes, elements, etc. along with it.

If we just need CreateNewGroupForHighlight, I&apos;d imagine we can just include &quot;CreateNewGroupForHighlight.h&quot;.

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:8619
&gt; +    _page-&gt;createAppHighlightInSelectedRange(CreateNewGroupForHighlight::NO);

Does this actually compile when ENABLE(APP_HIGHLIGHTS) is on?

I imagine this should be WebKit::CreateNewGroupForHighlight::No, and you might need to #import &quot;CreateNewGroupForHighlight.h&quot;

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:8624
&gt; +    _page-&gt;createAppHighlightInSelectedRange(CreateNewGroupForHighlight::YES);

(Ditto)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711371</commentid>
    <comment_count>18</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-02 10:08:49 -0800</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=415183&amp;action=review

&gt; Source/WebCore/rendering/RenderReplaced.cpp:157
&gt; +                return theme().appHighlightColor( styleColorOptions);

Nit - extra space before `styleColorOptions` here.

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:1300
&gt; +            { CSSValueAppleSystemYellow, @selector(systemYellowColor) },

Nit - do we need this change?

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:82
&gt; +#import &quot;WebPage.h&quot;

We should probably refrain from importing `WebPage.h` in the UI process, since that will pull in things like DOM nodes, elements, etc. along with it.

If we just need CreateNewGroupForHighlight, I&apos;d imagine we can just include &quot;CreateNewGroupForHighlight.h&quot;.

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:8619
&gt; +    _page-&gt;createAppHighlightInSelectedRange(CreateNewGroupForHighlight::NO);

Does this actually compile when ENABLE(APP_HIGHLIGHTS) is on?

I imagine this should be WebKit::CreateNewGroupForHighlight::No, and you might need to #import &quot;CreateNewGroupForHighlight.h&quot;

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:8624
&gt; +    _page-&gt;createAppHighlightInSelectedRange(CreateNewGroupForHighlight::YES);

(Ditto)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711373</commentid>
    <comment_count>19</comment_count>
      <attachid>415183</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-02 10:13:44 -0800</bug_when>
    <thetext>Comment on attachment 415183
Patch

LGTM with the above comments, though I do agree that &quot;builtin highlights&quot; would be more appropriate (we can tackle that in a followup, I suppose).

I think it would also be more ideal to make the builtin highlights registry available everywhere, since that provides a generic mechanism for rendering builtin (non-bindings-exposed) highlights, and then have the actual feature flag guard the specific user-facing feature that this is being added to support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711409</commentid>
    <comment_count>20</comment_count>
      <attachid>415241</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-12-02 11:24:18 -0800</bug_when>
    <thetext>Created attachment 415241
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711423</commentid>
    <comment_count>21</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-02 12:09:51 -0800</bug_when>
    <thetext>Committed r270362: &lt;https://trac.webkit.org/changeset/270362&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 415241.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711424</commentid>
    <comment_count>22</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-12-02 12:10:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/71905388&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711426</commentid>
    <comment_count>23</comment_count>
      <attachid>415241</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-12-02 12:11:57 -0800</bug_when>
    <thetext>Comment on attachment 415241
Patch for landing

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

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:8619
&gt; +    _page-&gt;createAppHighlightInSelectedRange(WebKit::CreateNewGroupForHighlight::NO);

It looks like this is still NO/YES.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415058</attachid>
            <date>2020-11-30 14:30:11 -0800</date>
            <delta_ts>2020-11-30 16:32:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219365-20201130143010.patch</filename>
            <type>text/plain</type>
            <size>31025</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QzYzFmNDI4NGY0ZmI3
ODRjOTEyZTIxNjUwMzA2NGNiNGZkYTExMy4uODU1N2M4NzVhN2IwYWYyNzdlODQzNDMyNjVkNmE5
NTE1MDc0OWUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTExLTMwICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGFu
ZCBkcmF3IGFwcCBoaWdobGlnaHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTkzNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDcmVhdGUgYSBzZXBhcmF0ZSBoaWdobGlnaHQgcmVnaXN0ZXIgZm9yIGFw
cCBoaWdobGlnaHRzIHNvIHRoYXQgdGhlcmUgaXMgYSBjbGVhciBzZXBhcmF0aW9uCisgICAgICAg
IHdpdGggbm8gcmlzayBvZiB3ZWIgY29udGVudCBhY2Nlc3NpbmcgdGhlIHdyb25nIGhpZ2hsaWdo
dHMuIEV4dGVuZCByZW5kZXJpbmcgdG8gaW5jbHVkZSB0aGUgCisgICAgICAgIGFwcCBoaWdobGln
aHRzIHdpdGggdGhlIGN1cnJlbnQgZGVmYXVsdCBzZXR0aW5ncy4gCisKKyAgICAgICAgKiBNb2R1
bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaDoKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRSZWdpc3Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSZWdpc3Rl
cjo6YXBwSGlnaGxpZ2h0S2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJlZ2lzdGVy
OjphZGRBcHBIaWdobGlnaHQpOgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dFJlZ2lzdGVyLmg6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YXBwSGlnaGxpZ2h0UmVnaXN0
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNvbGxlY3RSYWdlRGF0YUZyb21SZWdp
c3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSGlnaGxpZ2h0UG9zaXRp
b25zKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vU3RhdGljUmFu
Z2UuaDoKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVk
KToKKyAgICAgICAgKiByZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpyZW5kZXJlckFmdGVyT2Zmc2V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4
dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpyZXNvbHZlU3R5bGVG
b3JNYXJrZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OmNvbGxlY3RN
YXJrZWRUZXh0c0ZvckhpZ2hsaWdodHMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9NYXJr
ZWRUZXh0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGhlbWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpjc3NWYWx1ZUlEU2VsZWN0b3JM
aXN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU1hYzo6cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IgY29uc3QpOgorCiAyMDIwLTExLTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgV29ya2xldC5hZGRNb2R1bGUo
KSBzaG91bGQgcmVqZWN0IHByb21pc2Ugd2l0aCBhbiBBYm9ydEVycm9yIHdoZW4gdGhlIG5ldHdv
cmsgbG9hZCBmYWlscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjNGI0NzFhNGViODIwZjUyMjc2MmIyYTE4M2YzZGJi
Nzc3N2M5YjMyLi45OGQzNmRlNGQ3NDcxNzU5MGIxMGQ1NTMxNzYxNjc4MWI5MDg1ZmE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTExLTMwICBNZWdhbiBHYXJkbmVyICA8bWVnYW5f
Z2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGFuZCBkcmF3IGFwcCBoaWdobGln
aHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkz
NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIYW5k
bGUgdGhlIGNyZWF0aW9uIG9mIEFwcCBIaWdobGlnaHRzIGZyb20gc2VsZWN0aW9ucyB3aGVuIHRo
ZSBjb250ZXh0IG1lbnUgaXRlbSBpcyBzZWxlY3RlZC4gCisgICAgICAgIFRoaXMgcGF0Y2ggd2ls
bCBhZGQgdGhlIGhpZ2hsaWdodHMgdG8gdGhlIERvY3VtZW50J3MgYXBwIEhpZ2hsaWdodCByZWdp
c3RlciwgYW5kIGhhbmRsZSBkcmF3aW5nCisgICAgICAgIHRoZW0gaW4gSW5saW5lVGV4dEJveC4g
TGF0ZXIgcGF0Y2hlcyB3aWxsIGhhbmRsZSB0aGUgcGVyc2lzdGVudCBzdG9yYWdlIGFuZCByZXBv
cHVsYXRpb24gb2YgYXBwCisgICAgICAgIGhpZ2hsaWdodHMgb24gbGF1bmNoIG9yIHJlbG9hZCBv
ZiBhIHBhZ2UuIAorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0ZUFwcEhpZ2hsaWdodElu
U2VsZWN0ZWRSYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNyZWF0ZUhpZ2hsaWdodEluQ3Vy
cmVudEdyb3VwV2l0aFJhbmdlOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNyZWF0ZUhp
Z2hsaWdodEluTmV3R3JvdXBXaXRoUmFuZ2U6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjcmVhdGVBcHBIaWdo
bGlnaHRJblNlbGVjdGVkUmFuZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46
CisKIDIwMjAtMTEtMTkgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFttYWNPU10gSXNzdWUgc2FuZGJveCBleHRlbnNpb24gdG8gV2ViIEluc3BlY3RvciBz
ZXJ2aWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oCmlu
ZGV4IGYwZGZhNTY4MjI4YzgzYjIwZWJlOGEyZjkzNWVmMGY1ZGU3NTMwZmQuLjlkOThjODcxNGVi
YzA1YTQ5ZDdkOTZhMzJlZjRiMGMyZjlkMjUxNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oCkBAIC01NCw3ICs1NCw3IEBAIHN0cnVjdCBIaWdobGln
aHRSYW5nZURhdGEgOiBSZWZDb3VudGVkPEhpZ2hsaWdodFJhbmdlRGF0YT4sIHB1YmxpYyBDYW5N
YWtlV2Vha1B0CiAKIGNsYXNzIEhpZ2hsaWdodCA6IHB1YmxpYyBSZWZDb3VudGVkPEhpZ2hsaWdo
dD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0PiBjcmVhdGUoU3RhdGljUmFu
Z2UmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEhpZ2hsaWdodD4gY3JlYXRlKFN0
YXRpY1JhbmdlJik7CiAgICAgdm9pZCBjbGVhckZyb21TZXRMaWtlKCk7CiAgICAgYm9vbCBhZGRU
b1NldExpa2UoU3RhdGljUmFuZ2UmKTsKICAgICBib29sIHJlbW92ZUZyb21TZXRMaWtlKGNvbnN0
IFN0YXRpY1JhbmdlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hs
aWdodC9IaWdobGlnaHRSZWdpc3Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hs
aWdodC9IaWdobGlnaHRSZWdpc3Rlci5jcHAKaW5kZXggOWUyMGI4NjkzNDI1Y2JjYWEwNmNjYjE0
NGZlMDJkM2NmNjI4NWU4Yi4uMmVmMTBlM2IzOTAwN2Q5OTIwZjAyMzY5NzMyMzVhZTBlNGJmZDcz
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0
UmVnaXN0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hs
aWdodFJlZ2lzdGVyLmNwcApAQCAtNTMsNCArNTMsMTcgQEAgYm9vbCBIaWdobGlnaHRSZWdpc3Rl
cjo6cmVtb3ZlKGNvbnN0IFN0cmluZyYga2V5KQogICAgIHJldHVybiBtX21hcC5yZW1vdmUoa2V5
KTsKIH0KIAorQVNDSUlMaXRlcmFsIEhpZ2hsaWdodFJlZ2lzdGVyOjphcHBIaWdobGlnaHRLZXko
KQoreworICAgIHJldHVybiAiYXBwSGlnaGxpZ2h0S2V5Il9zOworfQorCit2b2lkIEhpZ2hsaWdo
dFJlZ2lzdGVyOjphZGRBcHBIaWdobGlnaHQoUmVmPFN0YXRpY1JhbmdlPiYmIHZhbHVlKQorewor
ICAgIGlmIChtX21hcC5jb250YWlucyhhcHBIaWdobGlnaHRLZXkoKSkpCisgICAgICAgIG1fbWFw
LmdldChhcHBIaWdobGlnaHRLZXkoKSktPmFkZFRvU2V0TGlrZSh2YWx1ZSk7CisgICAgZWxzZQor
ICAgICAgICBzZXRGcm9tTWFwTGlrZShhcHBIaWdobGlnaHRLZXkoKSwgSGlnaGxpZ2h0OjpjcmVh
dGUodmFsdWUpKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9o
aWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGln
aGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmgKaW5kZXggNDA1MzBmODM2MjNhMzMzYjIwY2ZhNmZk
NWRjMGY1NjMzNDQxMDQ2MS4uZDUyOTFmZGE0ZDk1MzlkMzBiN2UzNjNjZTYzYTBlMjgzZDBlODNm
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0
UmVnaXN0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGln
aHRSZWdpc3Rlci5oCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IERPTU1hcEFkYXB0ZXI7CiBjbGFzcyBET01TdHJpbmc7CiBjbGFzcyBIaWdobGlnaHQ7CitjbGFz
cyBTdGF0aWNSYW5nZTsKIAogY2xhc3MgSGlnaGxpZ2h0UmVnaXN0ZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxIaWdobGlnaHRSZWdpc3Rlcj4gewogcHVibGljOgpAQCAtNDMsNiArNDQsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRGcm9tTWFwTGlrZShTdHJpbmcmJiwgUmVmPEhpZ2hsaWdodD4mJik7
CiAgICAgdm9pZCBjbGVhcigpOwogICAgIGJvb2wgcmVtb3ZlKGNvbnN0IFN0cmluZyYpOworCisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRBcHBIaWdobGlnaHQoUmVmPFN0YXRpY1JhbmdlPiYm
KTsKKyAgICBzdGF0aWMgQVNDSUlMaXRlcmFsIGFwcEhpZ2hsaWdodEtleSgpOwogICAgIAogICAg
IGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBSZWY8SGlnaGxpZ2h0Pj4mIG1hcCgpIGNvbnN0IHsgcmV0
dXJuIG1fbWFwOyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzVhNTIyYzJhYmViMGQxNmQ1YzY4ODZjNzE3MDY1NzI0
OTIwYzk0ZS4uZjk5Yjk4ZmM5NWE3NDRlYzM0YTdkYjczYThlNjEzNzJhOGRkMWU4NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTIxMCw2ICsxMjEwLDggQEAKIAkJNDNFREQ2N0YxQjQ4NURCRjAwNjQwRTc1IC8qIENvbWJpbmVk
RmlsdGVyc0FscGhhYmV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0M0VERDY3RDFCNDg1REJGMDA2NDBFNzUgLyogQ29tYmluZWRGaWx0ZXJzQWxwaGFi
ZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0
NDBFREJEMTI1NUUxMTZDMDAzMDBCQTcgLyogTG9jYWxpemFibGUuc3RyaW5ncyBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQ2RUU0RTgyNTVFMEQ5MjAw
NDU0NDYzIC8qIExvY2FsaXphYmxlLnN0cmluZ3MgKi87IH07CiAJCTQ0MTUyOTJFMEUxQUU4QTAw
MEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDE1MjkyQzBFMUFFOEEwMDBDNEEyRDAgLyogSFRN
TFBsdWdJbkltYWdlRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTQ0MzBEMDBCMjU3NUE4M0UwMDQ2RDQwMSAvKiBIaWdobGlnaHQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0RTg4RTUxMjM2
QTVDOEQwMDlCNDg0NyAvKiBIaWdobGlnaHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk0NDMwRDAwRDI1NzVBOEE1MDA0NkQ0MDEgLyogSGlnaGxp
Z2h0UmVnaXN0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ0RTg4RTUwMjM2QTU2QUMwMDlCNDg0NyAvKiBIaWdobGlnaHRSZWdpc3Rlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ0NTc3NUU1MjA0
NzJGNzMwMDhEQ0U1RCAvKiBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDU3NzVFNDIwNDcyRjczMDA4
RENFNUQgLyogTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ0NjNDRjY4MjIxMkZBNjgwMDFBODU3
NyAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M3OTQxRTIxQzU2QzI5MzAwQTRDNThFIC8qIERhdGFE
ZXRlY3RvcnNDb3JlU29mdExpbmsubW0gKi87IH07CiAJCTQ0NjVEN0JEMjUzNkQwNUUwMDE2NjY2
RCAvKiBTZWxlY3Rpb25SYW5nZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ0QjM4QkY0MjUzNjkwMUEwMEE0NDU4RCAvKiBTZWxlY3Rpb25SYW5n
ZURhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMzIwNTMsNyArMzIwNTUsOSBAQAogCQkJCTUxNUJFMTlDMUQ1NEY2QzEwMEREN0M2OCAvKiBI
SURHYW1lcGFkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTBBOTFEQTI0Q0YzRDhDMDBCRkQ4OUMg
LyogSElER2FtZXBhZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNUJFMTlFMUQ1NEY2
QzEwMEREN0M2OCAvKiBISURHYW1lcGFkUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ0
MzBEMDBCMjU3NUE4M0UwMDQ2RDQwMSAvKiBIaWdobGlnaHQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUNEQ0ZBQkJEMThDMEFGNzgwMDZGODQ1MCAvKiBIaWdobGlnaHREYXRhLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0NDMwRDAwRDI1NzVBOEE1MDA0NkQ0MDEgLyogSGlnaGxpZ2h0UmVnaXN0ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDOTREMTU0MEMyNzVDOEIwMDZCQzYxNyAvKiBIaXN0b3J5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5N0RDRTIwMjEwODA3Qzc1MDA1N0QzOTQgLyogSGlzdG9yeUNv
bnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNzQxRDExMEIwNzI1OUEwMEVENDQyQyAv
KiBIaXN0b3J5SXRlbS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtl
eXdvcmRzLmluCmluZGV4IDk5N2I0MjM5OWExOTkyZWRhMDg5NGY1MDlkMTQwMGUxYmM5MjdiODEu
LjBmYzEyNzE3MDAyNDgwYjY5MTVjNzVhMTc2ZmEwODI3NTEzYzQyNjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0yNTksNiArMjU5LDcgQEAgd2luZG93dGV4dAog
LWFwcGxlLXN5c3RlbS1wdXJwbGUKIC1hcHBsZS1zeXN0ZW0tcmVkCiAtYXBwbGUtc3lzdGVtLXll
bGxvdworLWFwcGxlLXN5c3RlbS1hcHAtaGlnaGxpZ2h0LWJhY2tncm91bmQKICNlbmRpZgogI2lm
IGRlZmluZWQoV1RGX1BMQVRGT1JNX01BQykgJiYgV1RGX1BMQVRGT1JNX01BQwogLWFwcGxlLXN5
c3RlbS1hbHRlcm5hdGUtc2VsZWN0ZWQtdGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXgg
NjQ2ZWU3ZWVjMDMzYzkwMzkzZWYwMzhlNDM3ZTA1YzZmZWNjYzlmZC4uOTIwOTdiMzI3ZDA4ZGMy
YmQ2MDViNTNmYzE3NDA3MTVhMzEwNjE2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0y
Nzc0LDIxICsyNzc0LDM0IEBAIEhpZ2hsaWdodFJlZ2lzdGVyJiBEb2N1bWVudDo6aGlnaGxpZ2h0
UmVnaXN0ZXIoKQogICAgIHJldHVybiAqbV9oaWdobGlnaHRSZWdpc3RlcjsKIH0KIAotdm9pZCBE
b2N1bWVudDo6dXBkYXRlSGlnaGxpZ2h0UG9zaXRpb25zKCkKK0hpZ2hsaWdodFJlZ2lzdGVyJiBE
b2N1bWVudDo6YXBwSGlnaGxpZ2h0UmVnaXN0ZXIoKQogewotICAgIFZlY3RvcjxXZWFrUHRyPEhp
Z2hsaWdodFJhbmdlRGF0YT4+IHJhbmdlc0RhdGE7Ci0gICAgaWYgKG1faGlnaGxpZ2h0UmVnaXN0
ZXIpIHsKLSAgICAgICAgZm9yIChhdXRvJiBoaWdobGlnaHQgOiBtX2hpZ2hsaWdodFJlZ2lzdGVy
LT5tYXAoKSkgewotICAgICAgICAgICAgZm9yIChhdXRvJiByYW5nZURhdGEgOiBoaWdobGlnaHQu
dmFsdWUtPnJhbmdlc0RhdGEoKSkgewotICAgICAgICAgICAgICAgIGlmIChyYW5nZURhdGEtPnN0
YXJ0UG9zaXRpb24gJiYgcmFuZ2VEYXRhLT5lbmRQb3NpdGlvbikKLSAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgaWYgKCZyYW5nZURhdGEtPnJhbmdlLT5zdGFy
dENvbnRhaW5lcigpLnRyZWVTY29wZSgpICE9ICZyYW5nZURhdGEtPnJhbmdlLT5lbmRDb250YWlu
ZXIoKS50cmVlU2NvcGUoKSkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAg
ICAgICAgICAgcmFuZ2VzRGF0YS5hcHBlbmQobWFrZVdlYWtQdHIocmFuZ2VEYXRhLnB0cigpKSk7
Ci0gICAgICAgICAgICB9CisgICAgaWYgKCFtX2FwcEhpZ2hsaWdodFJlZ2lzdGVyKQorICAgICAg
ICBtX2FwcEhpZ2hsaWdodFJlZ2lzdGVyID0gSGlnaGxpZ2h0UmVnaXN0ZXI6OmNyZWF0ZSgpOwor
ICAgIHJldHVybiAqbV9hcHBIaWdobGlnaHRSZWdpc3RlcjsKK30KKwordm9pZCBEb2N1bWVudDo6
Y29sbGVjdFJhZ2VEYXRhRnJvbVJlZ2lzdGVyKFZlY3RvcjxXZWFrUHRyPEhpZ2hsaWdodFJhbmdl
RGF0YT4+JiByYW5nZXNEYXRhLCBSZWZQdHI8SGlnaGxpZ2h0UmVnaXN0ZXI+IGhpZ2hsaWdodFJl
Z2lzdGVyKQoreworICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogaGlnaGxpZ2h0UmVnaXN0ZXIt
Pm1hcCgpKSB7CisgICAgICAgIGZvciAoYXV0byYgcmFuZ2VEYXRhIDogaGlnaGxpZ2h0LnZhbHVl
LT5yYW5nZXNEYXRhKCkpIHsKKyAgICAgICAgICAgIGlmIChyYW5nZURhdGEtPnN0YXJ0UG9zaXRp
b24gJiYgcmFuZ2VEYXRhLT5lbmRQb3NpdGlvbikKKyAgICAgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgICAgIGlmICgmcmFuZ2VEYXRhLT5yYW5nZS0+c3RhcnRDb250YWluZXIoKS50cmVl
U2NvcGUoKSAhPSAmcmFuZ2VEYXRhLT5yYW5nZS0+ZW5kQ29udGFpbmVyKCkudHJlZVNjb3BlKCkp
CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICByYW5nZXNEYXRhLmFwcGVu
ZChtYWtlV2Vha1B0cihyYW5nZURhdGEucHRyKCkpKTsKICAgICAgICAgfQogICAgIH0KLSAgICAK
K30KKwordm9pZCBEb2N1bWVudDo6dXBkYXRlSGlnaGxpZ2h0UG9zaXRpb25zKCkKK3sKKyAgICBW
ZWN0b3I8V2Vha1B0cjxIaWdobGlnaHRSYW5nZURhdGE+PiByYW5nZXNEYXRhOworICAgIGlmICht
X2hpZ2hsaWdodFJlZ2lzdGVyKQorICAgICAgICBjb2xsZWN0UmFnZURhdGFGcm9tUmVnaXN0ZXIo
cmFuZ2VzRGF0YSwgbV9oaWdobGlnaHRSZWdpc3Rlcik7CisgICAgaWYgKG1fYXBwSGlnaGxpZ2h0
UmVnaXN0ZXIpCisgICAgICAgIGNvbGxlY3RSYWdlRGF0YUZyb21SZWdpc3RlcihyYW5nZXNEYXRh
LCBtX2FwcEhpZ2hsaWdodFJlZ2lzdGVyKTsKKwogICAgIGZvciAoYXV0byYgd2Vha1JhbmdlRGF0
YSA6IHJhbmdlc0RhdGEpIHsKICAgICAgICAgaWYgKGF1dG8qIHJhbmdlRGF0YSA9IHdlYWtSYW5n
ZURhdGEuZ2V0KCkpIHsKICAgICAgICAgICAgIFZpc2libGVTZWxlY3Rpb24gdmlzaWJsZVNlbGVj
dGlvbihyYW5nZURhdGEtPnJhbmdlKTsKQEAgLTI3OTcsNyArMjgxMCw3IEBAIHZvaWQgRG9jdW1l
bnQ6OnVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpCiAgICAgICAgICAgICBpZiAoIXJhbmdlRGF0
YS0+c3RhcnRQb3NpdGlvbi5oYXNWYWx1ZSgpKQogICAgICAgICAgICAgICAgIHN0YXJ0UG9zaXRp
b24gPSB2aXNpYmxlU2VsZWN0aW9uLnZpc2libGVTdGFydCgpLmRlZXBFcXVpdmFsZW50KCk7CiAg
ICAgICAgICAgICBpZiAoIXJhbmdlRGF0YS0+ZW5kUG9zaXRpb24uaGFzVmFsdWUoKSkKLSAgICAg
ICAgICAgICAgICBlbmRQb3NpdGlvbiA9IHZpc2libGVTZWxlY3Rpb24udmlzaWJsZUVuZCgpLmRl
ZXBFcXVpdmFsZW50KCk7IC8vIDxNTUc+IHN3aXRjaCB0byBFTkQKKyAgICAgICAgICAgICAgICBl
bmRQb3NpdGlvbiA9IHZpc2libGVTZWxlY3Rpb24udmlzaWJsZUVuZCgpLmRlZXBFcXVpdmFsZW50
KCk7CiAgICAgICAgICAgICBpZiAoIXdlYWtSYW5nZURhdGEuZ2V0KCkpCiAgICAgICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggODRlNThj
YzEzNWRkYjI1ZGEzYTdhODM4ZTc0YzNlNzhmNDA3YzlkNy4uODE3ZDc5YmQ5YWM1OWY1MGM1Njgx
Y2FiYzdkNzhjMDBmZDI0YjE0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTIzMSw2ICsyMzEs
NyBAQCBjbGFzcyBYUGF0aE5TUmVzb2x2ZXI7CiBjbGFzcyBYUGF0aFJlc3VsdDsKIAogc3RydWN0
IEJvdW5kYXJ5UG9pbnQ7CitzdHJ1Y3QgSGlnaGxpZ2h0UmFuZ2VEYXRhOwogc3RydWN0IEludGVy
c2VjdGlvbk9ic2VydmVyRGF0YTsKIAogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIEV4Y2VwdGlv
bk9yOwpAQCAtMTU3NCw2ICsxNTc1LDcgQEAgcHVibGljOgogICAgIFRleHRNYW5pcHVsYXRpb25D
b250cm9sbGVyKiB0ZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcklmRXhpc3RzKCkgeyByZXR1cm4g
bV90ZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5nZXQoKTsgfQogICAgICAgICAKICAgICBIaWdo
bGlnaHRSZWdpc3RlciYgaGlnaGxpZ2h0UmVnaXN0ZXIoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBI
aWdobGlnaHRSZWdpc3RlciYgYXBwSGlnaGxpZ2h0UmVnaXN0ZXIoKTsKICAgICB2b2lkIHVwZGF0
ZUhpZ2hsaWdodFBvc2l0aW9ucygpOwogCiAgICAgYm9vbCBhbGxvd3NDb250ZW50SmF2YVNjcmlw
dCgpIGNvbnN0OwpAQCAtMTcwMSw2ICsxNzAzLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGxh
dGZvcm1TdXNwZW5kT3JTdG9wQWN0aXZlRE9NT2JqZWN0cygpOwogCisgICAgdm9pZCBjb2xsZWN0
UmFnZURhdGFGcm9tUmVnaXN0ZXIoVmVjdG9yPFdlYWtQdHI8SGlnaGxpZ2h0UmFuZ2VEYXRhPj4m
LCBSZWZQdHI8SGlnaGxpZ2h0UmVnaXN0ZXI+KTsKKwogICAgIGJvb2wgaXNCb2R5UG90ZW50aWFs
bHlTY3JvbGxhYmxlKEhUTUxCb2R5RWxlbWVudCYpOwogCiAgICAgdm9pZCBkaWRMb2dNZXNzYWdl
KGNvbnN0IFdURkxvZ0NoYW5uZWwmLCBXVEZMb2dMZXZlbCwgVmVjdG9yPEpTT05Mb2dWYWx1ZT4m
JikgZmluYWw7CkBAIC0xOTMxLDYgKzE5MzUsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgICAg
IAogICAgIFJlZlB0cjxIaWdobGlnaHRSZWdpc3Rlcj4gbV9oaWdobGlnaHRSZWdpc3RlcjsKKyAg
ICBSZWZQdHI8SGlnaGxpZ2h0UmVnaXN0ZXI+IG1fYXBwSGlnaGxpZ2h0UmVnaXN0ZXI7CiAKICAg
ICBUaW1lciBtX3Zpc3VhbFVwZGF0ZXNTdXBwcmVzc2lvblRpbWVyOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU3RhdGljUmFuZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdGF0
aWNSYW5nZS5oCmluZGV4IDc2OTAxMTNkZjhhMmFlOWJjODI1NTZjNGFiZjEwZjk3MmUyMmE3YWUu
LmY3ZDdmNWI0ZjM0MDc3NmMwMjAzN2ZjOTgzNDk4YTE1NWU5NGUxMWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNSYW5nZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
dGF0aWNSYW5nZS5oCkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgc3Rh
dGljIEV4Y2VwdGlvbk9yPFJlZjxTdGF0aWNSYW5nZT4+IGNyZWF0ZShJbml0JiYpOwotICAgIHN0
YXRpYyBSZWY8U3RhdGljUmFuZ2U+IGNyZWF0ZShjb25zdCBTaW1wbGVSYW5nZSYpOworICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8U3RhdGljUmFuZ2U+IGNyZWF0ZShjb25zdCBTaW1wbGVS
YW5nZSYpOwogICAgIHN0YXRpYyBSZWY8U3RhdGljUmFuZ2U+IGNyZWF0ZShTaW1wbGVSYW5nZSYm
KTsKIAogICAgIE5vZGUmIHN0YXJ0Q29udGFpbmVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU2lt
cGxlUmFuZ2U6OnN0YXJ0Q29udGFpbmVyKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9I
aWdobGlnaHREYXRhLmNwcAppbmRleCAzOWViMTUxMDlhYTZjMDJhNjg2YmUwNGRlMGNkZDZiMDM3
YzhmYzljLi4xZjZiODg2YzkxMTAxNDQ5MGYyNzZiYjRkNDMwZTdmMWJhNmMyOGFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwCkBAIC04Miw3ICs4Miw3IEBA
IHZvaWQgUmVuZGVyUmFuZ2VJdGVyYXRvcjo6Y2hlY2tGb3JTcGFubmVyKCkKICAgICBtX2N1cnJl
bnQgPSBwbGFjZWhvbGRlci5zcGFubmVyKCk7CiB9CiAKLXN0YXRpYyBSZW5kZXJPYmplY3QqIHJl
bmRlcmVyQWZ0ZXJPZmZzZXQoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlciwgdW5zaWduZWQg
b2Zmc2V0KSAvLyA8TU1HPiB1c2VkIGluIGJvdGgsIG1pZ2h0IHNob3VsZCBub3QgYmUgc3RhdGlj
CitzdGF0aWMgUmVuZGVyT2JqZWN0KiByZW5kZXJlckFmdGVyT2Zmc2V0KGNvbnN0IFJlbmRlck9i
amVjdCYgcmVuZGVyZXIsIHVuc2lnbmVkIG9mZnNldCkKIHsKICAgICBhdXRvKiBjaGlsZCA9IHJl
bmRlcmVyLmNoaWxkQXQob2Zmc2V0KTsKICAgICByZXR1cm4gY2hpbGQgPyBjaGlsZCA6IHJlbmRl
cmVyLm5leHRJblByZU9yZGVyQWZ0ZXJDaGlsZHJlbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0lubGluZVRleHRCb3guY3BwCmluZGV4IGUwOTBmMTZhODM1OTczMjVhNmRlMzkwZTBiOWZk
Y2M0M2NiMDc5ZGMuLjRkN2NiYjEwMGQyODRmY2IwYWNkMzM1N2FmMjg4YmYyYTk3YmJlOTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKQEAgLTg0Niw2ICs4
NDYsMTEgQEAgYXV0byBJbmxpbmVUZXh0Qm94OjpyZXNvbHZlU3R5bGVGb3JNYXJrZWRUZXh0KGNv
bnN0IE1hcmtlZFRleHQmIG1hcmtlZFRleHQsIGNvbnMKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgICAgICBicmVhazsKKyAgICBjYXNlIE1hcmtlZFRleHQ6OkFwcEhpZ2hsaWdodDogewor
ICAgICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMg
PSB7IFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UgfTsKKyAgICAgICAg
c3R5bGUuYmFja2dyb3VuZENvbG9yID0gcmVuZGVyZXIoKS50aGVtZSgpLnN5c3RlbUNvbG9yKENT
U1ZhbHVlQXBwbGVTeXN0ZW1BcHBIaWdobGlnaHRCYWNrZ3JvdW5kLCBzdHlsZUNvbG9yT3B0aW9u
cyk7CisgICAgICAgIGJyZWFrOworICAgIH0KICAgICBjYXNlIE1hcmtlZFRleHQ6OkRyYWdnZWRD
b250ZW50OgogICAgICAgICBzdHlsZS5hbHBoYSA9IDAuMjU7CiAgICAgICAgIGJyZWFrOwpAQCAt
MTA1Miw2ICsxMDU3LDcgQEAgVmVjdG9yPE1hcmtlZFRleHQ+IElubGluZVRleHRCb3g6OmNvbGxl
Y3RNYXJrZWRUZXh0c0ZvckhpZ2hsaWdodHMoVGV4dFBhaW50UGhhc2UKICAgICBhdXRvJiBwYXJl
bnRSZW5kZXJlciA9IHBhcmVudCgpLT5yZW5kZXJlcigpOwogICAgIGF1dG8mIHBhcmVudFN0eWxl
ID0gcGFyZW50UmVuZGVyZXIuc3R5bGUoKTsKICAgICBIaWdobGlnaHREYXRhIGhpZ2hsaWdodERh
dGE7CisgICAgLy8gSmF2YVNjcmlwdCBIaWdobGlnaHRzCiAgICAgZm9yIChhdXRvJiBoaWdobGln
aHQgOiByZW5kZXJlcigpLmRvY3VtZW50KCkuaGlnaGxpZ2h0UmVnaXN0ZXIoKS5tYXAoKSkgewog
ICAgICAgICBhdXRvIHJlbmRlclN0eWxlID0gcGFyZW50UmVuZGVyZXIuZ2V0VW5jYWNoZWRQc2V1
ZG9TdHlsZSh7IFBzZXVkb0lkOjpIaWdobGlnaHQsIGhpZ2hsaWdodC5rZXkgfSwgJnBhcmVudFN0
eWxlKTsKICAgICAgICAgaWYgKCFyZW5kZXJTdHlsZSkKQEAgLTEwNjcsNiArMTA3MywxNyBAQCBW
ZWN0b3I8TWFya2VkVGV4dD4gSW5saW5lVGV4dEJveDo6Y29sbGVjdE1hcmtlZFRleHRzRm9ySGln
aGxpZ2h0cyhUZXh0UGFpbnRQaGFzZQogICAgICAgICAgICAgICAgIG1hcmtlZFRleHRzLmFwcGVu
ZCh7IGhpZ2hsaWdodFN0YXJ0LCBoaWdobGlnaHRFbmQsIE1hcmtlZFRleHQ6OkhpZ2hsaWdodCwg
bnVsbHB0ciwgaGlnaGxpZ2h0LmtleSB9KTsKICAgICAgICAgfQogICAgIH0KKyAgICAvLyBBcHAg
SGlnaGxpZ2h0cworICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogcmVuZGVyZXIoKS5kb2N1bWVu
dCgpLmFwcEhpZ2hsaWdodFJlZ2lzdGVyKCkubWFwKCkpIHsKKyAgICAgICAgZm9yIChhdXRvJiBy
YW5nZURhdGEgOiBoaWdobGlnaHQudmFsdWUtPnJhbmdlc0RhdGEoKSkgeworICAgICAgICAgICAg
aWYgKCFoaWdobGlnaHREYXRhLnNldFJlbmRlclJhbmdlKHJhbmdlRGF0YSkpCisgICAgICAgICAg
ICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIGF1dG8gW2hpZ2hsaWdodFN0YXJ0LCBoaWdo
bGlnaHRFbmRdID0gaGlnaGxpZ2h0U3RhcnRFbmQoaGlnaGxpZ2h0RGF0YSk7CisgICAgICAgICAg
ICBpZiAoaGlnaGxpZ2h0U3RhcnQgPCBoaWdobGlnaHRFbmQpCisgICAgICAgICAgICAgICAgbWFy
a2VkVGV4dHMuYXBwZW5kKHsgaGlnaGxpZ2h0U3RhcnQsIGhpZ2hsaWdodEVuZCwgTWFya2VkVGV4
dDo6QXBwSGlnaGxpZ2h0IH0pOworICAgICAgICB9CisgICAgfQogICAgIHJldHVybiBtYXJrZWRU
ZXh0czsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL01hcmtlZFRl
eHQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9NYXJrZWRUZXh0LmgKaW5kZXggNzNjMDYy
MTFmZTRhYTQzMzJhMmI4Mjg0MDFjOWNhZDE5ZjA5MWQyOS4uMTMyYTM0YjRlYjZlNjMyMjNkMjhj
YTgxNTBjNzVlMGI4YWU4OGZkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L01hcmtlZFRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWFya2VkVGV4dC5o
CkBAIC00Miw2ICs0Miw3IEBAIHN0cnVjdCBNYXJrZWRUZXh0IHsKICAgICAgICAgVGV4dE1hdGNo
LAogICAgICAgICBEaWN0YXRpb25BbHRlcm5hdGl2ZXMsCiAgICAgICAgIEhpZ2hsaWdodCwKKyAg
ICAgICAgQXBwSGlnaGxpZ2h0LAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgICAgIC8v
IEZJWE1FOiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzg5MzMzNTI+LiBBbHNvLCByZW1vdmUgdGhlIFBM
QVRGT1JNKElPU19GQU1JTFkpLWd1YXJkLgogICAgICAgICBEaWN0YXRpb25QaHJhc2VXaXRoQWx0
ZXJuYXRpdmVzLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJl
cGxhY2VkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAK
aW5kZXggMjZjMjM2MTI3NDA1NmZhZTA4NmM1OTVjODhmZDlmYTkxNmI0ZDcwNy4uMmFmYzlmMmIx
OGZmNTEwNDIyMzA4NmU2Nzk1MWUzZWZiZjBkYzY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCkBAIC0xNDIsNiArMTQyLDIwIEBAIGlubGluZSBzdGF0
aWMgYm9vbCBkcmFnZ2VkQ29udGVudENvbnRhaW5zUmVwbGFjZWRFbGVtZW50KGNvbnN0IFZlY3Rv
cjxSZW5kZXJlZERvCiBDb2xvciBSZW5kZXJSZXBsYWNlZDo6Y2FsY3VsYXRlSGlnaGxpZ2h0Q29s
b3IoKSBjb25zdAogewogICAgIEhpZ2hsaWdodERhdGEgaGlnaGxpZ2h0RGF0YTsKKyAgICBmb3Ig
KGF1dG8mIGhpZ2hsaWdodCA6IGRvY3VtZW50KCkuYXBwSGlnaGxpZ2h0UmVnaXN0ZXIoKS5tYXAo
KSkgeworICAgICAgICBmb3IgKGF1dG8mIHJhbmdlRGF0YSA6IGhpZ2hsaWdodC52YWx1ZS0+cmFu
Z2VzRGF0YSgpKSB7CisgICAgICAgICAgICBpZiAoIWhpZ2hsaWdodERhdGEuc2V0UmVuZGVyUmFu
Z2UocmFuZ2VEYXRhKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAg
YXV0byBzdGF0ZSA9IGhpZ2hsaWdodERhdGEuaGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJlcigqdGhp
cyk7CisgICAgICAgICAgICBpZiAoIWlzSGlnaGxpZ2h0ZWQoc3RhdGUsIGhpZ2hsaWdodERhdGEp
KQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBPcHRpb25TZXQ8U3R5
bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMgPSB7IFN0eWxlQ29sb3I6Ok9wdGlv
bnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UgfTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUo
KS5zeXN0ZW1Db2xvcihDU1NWYWx1ZUFwcGxlU3lzdGVtQXBwSGlnaGxpZ2h0QmFja2dyb3VuZCwg
c3R5bGVDb2xvck9wdGlvbnMpOworICAgICAgICB9CisgICAgfQorCiAgICAgZm9yIChhdXRvJiBo
aWdobGlnaHQgOiBkb2N1bWVudCgpLmhpZ2hsaWdodFJlZ2lzdGVyKCkubWFwKCkpIHsKICAgICAg
ICAgZm9yIChhdXRvJiByYW5nZURhdGEgOiBoaWdobGlnaHQudmFsdWUtPnJhbmdlc0RhdGEoKSkg
ewogICAgICAgICAgICAgaWYgKCFoaWdobGlnaHREYXRhLnNldFJlbmRlclJhbmdlKHJhbmdlRGF0
YSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAppbmRleCAwNGE5MzBj
ODBhN2M3OGRjMDEwODA1MjkxNTAzMjlmM2FhM2ExMzJiLi43YjNhOGZkMmExN2JjYTc3Yzg0NGZj
YjFhNmE2ZGE1N2Q3OTJkZmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZS5jcHAKQEAgLTEzNDgsNiArMTM0OCwxMSBAQCBDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1U
ZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbgogICAg
IHJldHVybiBDb2xvcjo6eWVsbG93OwogfQogCitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1B
cHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0Cit7
CisgICAgcmV0dXJuIENvbG9yOjp5ZWxsb3c7Cit9CisKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQogCiBDb2xvciBSZW5kZXJUaGVtZTo6dGFwSGlnaGxpZ2h0Q29sb3IoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAppbmRleCBiZTE5OTAzZDVhYjY0NmZhZTk0MmNjMjI5ZDQx
YzE0OGU4ZDRlN2Y1Li4yZWZjNTU2ZDkxZDY1NGNkY2RkNGZjZDNhY2YzZTNhNGQ0ZDgyMGI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaApAQCAtMTU3LDYgKzE1Nyw5IEBA
IHB1YmxpYzoKICAgICAvLyBIaWdobGlnaHRpbmcgY29sb3IgZm9yIHNlYXJjaCBtYXRjaGVzLgog
ICAgIENvbG9yIHRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4pIGNvbnN0OwogCisgICAgLy8gRGVmYXVsdCBoaWdobGlnaHRpbmcgY29sb3IgZm9y
IGFwcCBoaWdobGlnaHRzLgorICAgIENvbG9yIGFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxT
dHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisKICAgICB2aXJ0dWFsIENvbG9yIGRpc2FibGVk
VGV4dENvbG9yKGNvbnN0IENvbG9yJiB0ZXh0Q29sb3IsIGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5k
Q29sb3IpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgQ29sb3IgZm9jdXNSaW5nQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKQEAgLTI3Niw2ICsyNzksOCBA
QCBwcm90ZWN0ZWQ6CiAKICAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hs
aWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CiAKKyAgICB2
aXJ0dWFsIENvbG9yIHBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+KSBjb25zdDsKKwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1NlbGVjdGlv
bkZvcmVncm91bmRDb2xvcnMoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCB7
IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzTGlzdEJveFNlbGVjdGlv
bkZvcmVncm91bmRDb2xvcnMoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCB7
IHJldHVybiB0cnVlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlP
Uy5tbQppbmRleCBkY2ViY2U0ODVlMzYyMzU4Yzg0Y2U0MjBhZDg2ZjRhMzI2NDI0NTliLi40ODdi
M2MxNDU5NjQ5MjIwY2U1NTEwNDM3MmJmMjZlNTNkNDc2OWVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCkBAIC0xMjg5LDcgKzEyODksOCBAQCBzdGF0aWMg
Y29uc3QgVmVjdG9yPENTU1ZhbHVlSURBbmRTZWxlY3Rvcj4mIGNzc1ZhbHVlSURTZWxlY3Rvckxp
c3QoKQogICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtUGluaywgQHNlbGVjdG9yKHN5
c3RlbVBpbmtDb2xvcikgfSwKICAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVB1cnBs
ZSwgQHNlbGVjdG9yKHN5c3RlbVB1cnBsZUNvbG9yKSB9LAogICAgICAgICAgICAgeyBDU1NWYWx1
ZUFwcGxlU3lzdGVtUmVkLCBAc2VsZWN0b3Ioc3lzdGVtUmVkQ29sb3IpIH0sCi0gICAgICAgICAg
ICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1ZZWxsb3csIEBzZWxlY3RvcihzeXN0ZW1ZZWxsb3dDb2xv
cikgfQorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtWWVsbG93LCBAc2VsZWN0b3Io
c3lzdGVtWWVsbG93Q29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1B
cHBIaWdobGlnaHRCYWNrZ3JvdW5kLCBAc2VsZWN0b3Ioc3lzdGVtWWVsbG93Q29sb3IpIH0KICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
TWFjLmgKaW5kZXggNGY1Nzk2NTkzNjllYzRiNmU5MDM0Zjc5MGNmZjJlMDI5YjVjNGUxNS4uNGJh
MzUxOTRhNTU1ZDUxODljMjViZTJiODIxNGI4OGI3NTQwNDE4MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKQEAgLTY2LDYgKzY2LDcgQEAgcHVibGljOgogICAg
IENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CiAgICAgQ29sb3IgcGxh
dGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
IGZpbmFsOwogICAgIENvbG9yIHBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CisgICAgQ29sb3IgcGxhdGZv
cm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
IGZpbmFsOwogCiAgICAgU2Nyb2xsYmFyQ29udHJvbFNpemUgc2Nyb2xsYmFyQ29udHJvbFNpemVG
b3JQYXJ0KENvbnRyb2xQYXJ0KSBmaW5hbCB7IHJldHVybiBTY3JvbGxiYXJDb250cm9sU2l6ZTo6
U21hbGw7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmlu
ZGV4IDFhNTUwMzlkODhlMGNmOTNmNjI4NzZiNTI3MmNlYzg5NzI2NjUyZWMuLjMxZDFlNWY0ZGQ3
YzU1NDRiYTQzNjNjN2Y4YmQ1MmJkMGM0YTc0M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTQ3Niw2ICs0NzYsMTIgQEAgQ29sb3IgUmVuZGVyVGhl
bWVNYWM6OnBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHQKICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciBmaW5kSGlnaGxp
Z2h0Q29sb3JdKTsKIH0KIAorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQXBwSGlnaGxp
Z2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0Cit7
CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9u
cy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAg
IHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIHN5c3RlbVllbGxvd0NvbG9yXSk7Cit9
CisKIHN0YXRpYyBTUkdCQTx1aW50OF90PiBtZW51QmFja2dyb3VuZENvbG9yKCkKIHsKICAgICBS
ZXRhaW5QdHI8TlNCaXRtYXBJbWFnZVJlcD4gb2Zmc2NyZWVuUmVwID0gYWRvcHROUyhbW05TQml0
bWFwSW1hZ2VSZXAgYWxsb2NdIGluaXRXaXRoQml0bWFwRGF0YVBsYW5lczpuaWwgcGl4ZWxzV2lk
ZToxIHBpeGVsc0hpZ2g6MQpAQCAtNzAyLDYgKzcwOCw4IEBAIENvbG9yIFJlbmRlclRoZW1lTWFj
OjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPCiAgICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1SZWRDb2xvcik7CiAg
ICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1ZZWxsb3c6CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1ZZWxsb3dDb2xvcik7CisgICAgICAgICAgICBjYXNl
IENTU1ZhbHVlQXBwbGVTeXN0ZW1BcHBIaWdobGlnaHRCYWNrZ3JvdW5kOgorICAgICAgICAgICAg
ICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVtWWVsbG93Q29sb3IpOwogICAgICAgICAgICAgZGVm
YXVsdDoKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29h
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0K
aW5kZXggMjlmYTg5NTFkYWVmMzYzZWNlY2RmOTAyY2JlNzI5ZTA2ZWNiZWViOC4uMTVjZjZmZGZk
YTMzOWEyM2NlNWFkMjlkZDZlMzlhZDg0NjJjY2Y3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KQEAgLTU0Myw2ICs1NDMsMTgg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmFkZEFjdGl2aXR5U3RhdGVVcGRhdGVDb21wbGV0aW9uSGFu
ZGxlcihDb21wbGV0aW9uSGFuZGxlcjx2b2kKICAgICBtX2FjdGl2aXR5U3RhdGVVcGRhdGVDYWxs
YmFja3MuYXBwZW5kKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAorI2lmIEVOQUJM
RShBUFBfSElHSExJR0hUUykKK3ZvaWQgV2ViUGFnZVByb3h5OjpjcmVhdGVBcHBIaWdobGlnaHRJ
blNlbGVjdGVkUmFuZ2UoYm9vbCBpbkN1cnJlbnRHcm91cCkKK3sKKyAgICBpZiAoIWhhc1J1bm5p
bmdQcm9jZXNzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OkNyZWF0ZUFwcEhpZ2hsaWdodEluU2VsZWN0ZWRSYW5nZShpbkN1cnJlbnRHcm91cCkpOwor
Cit9CisKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIE1FU1NBR0Vf
Q0hFQ0tfQ09NUExFVElPTgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
aW5kZXggMGY4NzQyODk5MGRlMDAxMzQzNjcyZTI0OTQ4OTVhZDEzZDQzMzAyOC4uZTVjZDc4N2Yy
YzRhYTBhZWE0M2Y2ZWFiNzk3ZjhmOTk3MGZkY2IwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCkBAIC02NjIxLDYgKzY2MjEsMTYgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbURhdGEm
IGl0ZW0pCiAgICAgICAgIFRleHRDaGVja2VyOjp0b2dnbGVTcGVsbGluZ1VJSXNTaG93aW5nKCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorICAg
IGlmIChpdGVtLmFjdGlvbigpID09IENvbnRleHRNZW51SXRlbVRhZ0FkZEhpZ2hsaWdodFRvTmV3
R3JvdXApIHsKKyAgICAgICAgY3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJhbmdlKGZhbHNl
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250
ZXh0TWVudUl0ZW1UYWdBZGRIaWdobGlnaHRUb0N1cnJlbnRHcm91cCkgeworICAgICAgICBjcmVh
dGVBcHBIaWdobGlnaHRJblNlbGVjdGVkUmFuZ2UodHJ1ZSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisjZW5kaWYKICAgICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdM
ZWFyblNwZWxsaW5nIHx8IGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnSWdub3Jl
U3BlbGxpbmcpCiAgICAgICAgICsrbV9wZW5kaW5nTGVhcm5Pcklnbm9yZVdvcmRNZXNzYWdlQ291
bnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggODc5ZjczMmIx
MWNiMTIzOTczODY1OGU4ZTU4ZmI4N2M1MDM0ZjJiOC4uZmU0NTI5NzUwNmYzZDM4YjBhNmJjMTdm
NTNlN2RlY2E4Zjg4YWIwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
QEAgLTE4MjMsNiArMTgyMywxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXF1ZXN0U3BlZWNoUmVj
b2duaXRpb25QZXJtaXNzaW9uKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb24pPiYmKTsK
ICAgICB2b2lkIHJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25CeURlZmF1bHRBY3Rp
b24oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKTsKIAorI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAgICB2b2lkIGNyZWF0
ZUFwcEhpZ2hsaWdodEluU2VsZWN0ZWRSYW5nZShib29sKTsKKyNlbmRpZgorCiBwcml2YXRlOgog
ICAgIFdlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5JiwgUmVmPEFQSTo6
UGFnZUNvbmZpZ3VyYXRpb24+JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbQppbmRleCBjNTE0N2Y0MzA0NzkxYWNmNjYzZDIxNDU5YTJlNjMxYTQzMzZkNzRi
Li5kMDk1MGYyNjQ3ZDMxMTEyNjNiZWVmZWQ5ZWE0MzVjZjU2YTI4NmIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0KQEAgLTg2MTUsMTIgKzg2MTUsMTIgQEAgLSAodm9pZClzZXR1cEFwcEhpZ2hsaWdodE1lbnVz
CiAKIC0gKHZvaWQpY3JlYXRlSGlnaGxpZ2h0SW5DdXJyZW50R3JvdXBXaXRoUmFuZ2U6KGlkKXNl
bmRlcgogewotICAgIC8vIEZJWE1FOiBBZGQgSGlnaGxpZ2h0IGxvZ2ljLgorICAgIF9wYWdlLT5j
cmVhdGVBcHBIaWdobGlnaHRJblNlbGVjdGVkUmFuZ2UodHJ1ZSk7CiB9CiAKIC0gKHZvaWQpY3Jl
YXRlSGlnaGxpZ2h0SW5OZXdHcm91cFdpdGhSYW5nZTooaWQpc2VuZGVyCiB7Ci0gICAgLy8gRklY
TUU6IEFkZCBIaWdobGlnaHQgbG9naWMuCisgICAgX3BhZ2UtPmNyZWF0ZUFwcEhpZ2hsaWdodElu
U2VsZWN0ZWRSYW5nZShmYWxzZSk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA5NTcwZWMzYmEwNGFlM2E3MDM4MzQ5NTg4
MGQwM2IyMjViZDYxZDJiLi4xYmY5ZGNhYmIxOTliMTI0MWZiMDg5N2EyNzlmZjM2NDhiMTJlNTM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAt
MTU2LDYgKzE1Niw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9EYXRhVHJhbnNmZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0RhdGFiYXNlTWFuYWdlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGVwcmVj
YXRlZEdsb2JhbFNldHRpbmdzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRGcmFnbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9j
dW1lbnRMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50TWFya2VyQ29udHJvbGxl
ci5oPgpAQCAtMTg2LDYgKzE4Nyw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MUGx1Z0luRWxl
bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTFNlbGVjdEVsZW1lbnQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9IaWdobGlnaHQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hpZ2hsaWdodFJlZ2lzdGVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9IaXN0b3J5Q29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
SGlzdG9yeUl0ZW0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hpdFRlc3RSZXN1bHQuaD4KQEAgLTIy
OSw2ICsyMzIsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1NoYWRvd1Jvb3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvU3RhdGljUmFuZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N0eWxl
UHJvcGVydGllcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3ViZnJhbWVMb2FkZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1N1YnN0aXR1dGVEYXRhLmg+CkBAIC03MDMzLDYgKzcwMzcsMjcgQEAgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBXZWJQYWdlOjplbnN1cmVSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkoKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCiti
b29sIFdlYlBhZ2U6OmNyZWF0ZUFwcEhpZ2hsaWdodEluU2VsZWN0ZWRSYW5nZShib29sIGluQ3Vy
cmVudEdyb3VwKQoreworICAgIGF1dG8gZG9jdW1lbnQgPSBtYWtlUmVmUHRyKG1fcGFnZS0+Zm9j
dXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCkuZG9jdW1lbnQoKSk7CisKKyAgICBh
dXRvIGZyYW1lID0gbWFrZVJlZlB0cihkb2N1bWVudC0+ZnJhbWUoKSk7CisgICAgaWYgKCFmcmFt
ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byBzZWxlY3Rpb25SYW5nZSA9IGZy
YW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS50b05vcm1hbGl6ZWRSYW5nZSgpOworICAgIGlm
ICghc2VsZWN0aW9uUmFuZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGRvY3VtZW50
LT5hcHBIaWdobGlnaHRSZWdpc3RlcigpLmFkZEFwcEhpZ2hsaWdodChTdGF0aWNSYW5nZTo6Y3Jl
YXRlKHNlbGVjdGlvblJhbmdlLnZhbHVlKCkpKTsKKworICAgIHJldHVybiB0cnVlOworCit9Cisj
ZW5kaWYKKworCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRl
eCBhNzQ4YmUyMTM1ZTNkMjJiNDBkYjA1YTE2M2FlZTAwYWQ1MzQyNGQxLi4wMDc2YTQzMzM3YmEz
MTRjZDFhYTI0MmU3NzdiNDc0NzZjMzE5ZDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMzY2LDYgKzEzNjYsMTAgQEAgcHVibGljOgogICAgIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5KCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAgICBib29sIGNy
ZWF0ZUFwcEhpZ2hsaWdodEluU2VsZWN0ZWRSYW5nZShib29sKTsKKyNlbmRpZgorCiBwcml2YXRl
OgogICAgIFdlYlBhZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMmJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDE1NWYxZjRhNGE5NjI4OWUxMDg3MWYyMmE1OTU1
MDcwZWQwZWU1OGQuLmY2MmM2ZjNmM2Y4ZTIwYzk4Zjc5MmRkYTI0NDAyNDQ2YmZjNmNjZWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbgpAQCAtNjE2LDQgKzYxNiw5IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1h
bmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAKICAg
ICBTZXRIYXNSZXNvdXJjZUxvYWRDbGllbnQoYm9vbCBoYXMpCiAgICAgU2V0Q2FuVXNlQ3JlZGVu
dGlhbFN0b3JhZ2UoYm9vbCBjYW5Vc2UpCisKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisg
ICAgQ3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJhbmdlKGJvb2wgaW5DdXJyZW50R3JvdXAp
CisjZW5kaWYKKwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDllMzVkMDAzNWQ2M2Q0YmQ1NjJmMzJkNDY5Mjg2YjhhM2VjYzZjN2MuLjc5ODY0
NTgxY2VmODJjNDhlMDY4MmJhZGJlNTg5YmJiZjRmYTM2YjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0xMS0z
MCAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIENy
ZWF0ZSBhbmQgZHJhdyBhcHAgaGlnaGxpZ2h0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTWFya2Vk
VGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKwogMjAyMC0xMS0xOSAg
UGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBJ
c3N1ZSBzYW5kYm94IGV4dGVuc2lvbiB0byBXZWIgSW5zcGVjdG9yIHNlcnZpY2UKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9NYXJrZWRUZXh0LmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9NYXJrZWRUZXh0LmNwcAppbmRleCA2YThl
NTcyOTFiZjVkMDE2NzY4ZDhlMjkyZTJiOGM2N2FjMDA4NWZiLi5iMDk1NGZmYjRlYzQ5ZjkzY2Zm
MDY5NjdhNTM5ZWM1MjhhNjU4MzE2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvTWFya2VkVGV4dC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL01hcmtlZFRleHQuY3BwCkBAIC01Nyw2ICs1Nyw4IEBAIHN0ZDo6b3N0cmVhbSYg
b3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIG9zLCBNYXJrZWRUZXh0OjpUeXBlIHR5cGUpCiAgICAg
ICAgIHJldHVybiBvcyA8PCAiVGV4dE1hdGNoIjsKICAgICBjYXNlIE1hcmtlZFRleHQ6OkhpZ2hs
aWdodDoKICAgICAgICAgcmV0dXJuIG9zIDw8ICJIaWdobGlnaHQiOworICAgIGNhc2UgTWFya2Vk
VGV4dDo6QXBwSGlnaGxpZ2h0OgorICAgICAgICByZXR1cm4gb3MgPDwgIkFwcEhpZ2hsaWdodCI7
CiAgICAgY2FzZSBNYXJrZWRUZXh0OjpVbm1hcmtlZDoKICAgICAgICAgcmV0dXJuIG9zIDw8ICJV
bm1hcmtlZCI7CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415075</attachid>
            <date>2020-11-30 16:32:46 -0800</date>
            <delta_ts>2020-11-30 17:11:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219365-20201130163246.patch</filename>
            <type>text/plain</type>
            <size>31490</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QzYzFmNDI4NGY0ZmI3
ODRjOTEyZTIxNjUwMzA2NGNiNGZkYTExMy4uODU1N2M4NzVhN2IwYWYyNzdlODQzNDMyNjVkNmE5
NTE1MDc0OWUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTExLTMwICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGFu
ZCBkcmF3IGFwcCBoaWdobGlnaHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTkzNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDcmVhdGUgYSBzZXBhcmF0ZSBoaWdobGlnaHQgcmVnaXN0ZXIgZm9yIGFw
cCBoaWdobGlnaHRzIHNvIHRoYXQgdGhlcmUgaXMgYSBjbGVhciBzZXBhcmF0aW9uCisgICAgICAg
IHdpdGggbm8gcmlzayBvZiB3ZWIgY29udGVudCBhY2Nlc3NpbmcgdGhlIHdyb25nIGhpZ2hsaWdo
dHMuIEV4dGVuZCByZW5kZXJpbmcgdG8gaW5jbHVkZSB0aGUgCisgICAgICAgIGFwcCBoaWdobGln
aHRzIHdpdGggdGhlIGN1cnJlbnQgZGVmYXVsdCBzZXR0aW5ncy4gCisKKyAgICAgICAgKiBNb2R1
bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaDoKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRSZWdpc3Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSZWdpc3Rl
cjo6YXBwSGlnaGxpZ2h0S2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJlZ2lzdGVy
OjphZGRBcHBIaWdobGlnaHQpOgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dFJlZ2lzdGVyLmg6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YXBwSGlnaGxpZ2h0UmVnaXN0
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNvbGxlY3RSYWdlRGF0YUZyb21SZWdp
c3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSGlnaGxpZ2h0UG9zaXRp
b25zKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vU3RhdGljUmFu
Z2UuaDoKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVk
KToKKyAgICAgICAgKiByZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpyZW5kZXJlckFmdGVyT2Zmc2V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4
dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpyZXNvbHZlU3R5bGVG
b3JNYXJrZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OmNvbGxlY3RN
YXJrZWRUZXh0c0ZvckhpZ2hsaWdodHMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9NYXJr
ZWRUZXh0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGhlbWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpjc3NWYWx1ZUlEU2VsZWN0b3JM
aXN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU1hYzo6cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IgY29uc3QpOgorCiAyMDIwLTExLTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgV29ya2xldC5hZGRNb2R1bGUo
KSBzaG91bGQgcmVqZWN0IHByb21pc2Ugd2l0aCBhbiBBYm9ydEVycm9yIHdoZW4gdGhlIG5ldHdv
cmsgbG9hZCBmYWlscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjNGI0NzFhNGViODIwZjUyMjc2MmIyYTE4M2YzZGJi
Nzc3N2M5YjMyLi45OGQzNmRlNGQ3NDcxNzU5MGIxMGQ1NTMxNzYxNjc4MWI5MDg1ZmE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTExLTMwICBNZWdhbiBHYXJkbmVyICA8bWVnYW5f
Z2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGFuZCBkcmF3IGFwcCBoaWdobGln
aHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkz
NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIYW5k
bGUgdGhlIGNyZWF0aW9uIG9mIEFwcCBIaWdobGlnaHRzIGZyb20gc2VsZWN0aW9ucyB3aGVuIHRo
ZSBjb250ZXh0IG1lbnUgaXRlbSBpcyBzZWxlY3RlZC4gCisgICAgICAgIFRoaXMgcGF0Y2ggd2ls
bCBhZGQgdGhlIGhpZ2hsaWdodHMgdG8gdGhlIERvY3VtZW50J3MgYXBwIEhpZ2hsaWdodCByZWdp
c3RlciwgYW5kIGhhbmRsZSBkcmF3aW5nCisgICAgICAgIHRoZW0gaW4gSW5saW5lVGV4dEJveC4g
TGF0ZXIgcGF0Y2hlcyB3aWxsIGhhbmRsZSB0aGUgcGVyc2lzdGVudCBzdG9yYWdlIGFuZCByZXBv
cHVsYXRpb24gb2YgYXBwCisgICAgICAgIGhpZ2hsaWdodHMgb24gbGF1bmNoIG9yIHJlbG9hZCBv
ZiBhIHBhZ2UuIAorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0ZUFwcEhpZ2hsaWdodElu
U2VsZWN0ZWRSYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNyZWF0ZUhpZ2hsaWdodEluQ3Vy
cmVudEdyb3VwV2l0aFJhbmdlOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNyZWF0ZUhp
Z2hsaWdodEluTmV3R3JvdXBXaXRoUmFuZ2U6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjcmVhdGVBcHBIaWdo
bGlnaHRJblNlbGVjdGVkUmFuZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46
CisKIDIwMjAtMTEtMTkgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFttYWNPU10gSXNzdWUgc2FuZGJveCBleHRlbnNpb24gdG8gV2ViIEluc3BlY3RvciBz
ZXJ2aWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oCmlu
ZGV4IGYwZGZhNTY4MjI4YzgzYjIwZWJlOGEyZjkzNWVmMGY1ZGU3NTMwZmQuLjlkOThjODcxNGVi
YzA1YTQ5ZDdkOTZhMzJlZjRiMGMyZjlkMjUxNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oCkBAIC01NCw3ICs1NCw3IEBAIHN0cnVjdCBIaWdobGln
aHRSYW5nZURhdGEgOiBSZWZDb3VudGVkPEhpZ2hsaWdodFJhbmdlRGF0YT4sIHB1YmxpYyBDYW5N
YWtlV2Vha1B0CiAKIGNsYXNzIEhpZ2hsaWdodCA6IHB1YmxpYyBSZWZDb3VudGVkPEhpZ2hsaWdo
dD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0PiBjcmVhdGUoU3RhdGljUmFu
Z2UmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEhpZ2hsaWdodD4gY3JlYXRlKFN0
YXRpY1JhbmdlJik7CiAgICAgdm9pZCBjbGVhckZyb21TZXRMaWtlKCk7CiAgICAgYm9vbCBhZGRU
b1NldExpa2UoU3RhdGljUmFuZ2UmKTsKICAgICBib29sIHJlbW92ZUZyb21TZXRMaWtlKGNvbnN0
IFN0YXRpY1JhbmdlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hs
aWdodC9IaWdobGlnaHRSZWdpc3Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hs
aWdodC9IaWdobGlnaHRSZWdpc3Rlci5jcHAKaW5kZXggOWUyMGI4NjkzNDI1Y2JjYWEwNmNjYjE0
NGZlMDJkM2NmNjI4NWU4Yi4uMmVmMTBlM2IzOTAwN2Q5OTIwZjAyMzY5NzMyMzVhZTBlNGJmZDcz
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0
UmVnaXN0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hs
aWdodFJlZ2lzdGVyLmNwcApAQCAtNTMsNCArNTMsMTcgQEAgYm9vbCBIaWdobGlnaHRSZWdpc3Rl
cjo6cmVtb3ZlKGNvbnN0IFN0cmluZyYga2V5KQogICAgIHJldHVybiBtX21hcC5yZW1vdmUoa2V5
KTsKIH0KIAorQVNDSUlMaXRlcmFsIEhpZ2hsaWdodFJlZ2lzdGVyOjphcHBIaWdobGlnaHRLZXko
KQoreworICAgIHJldHVybiAiYXBwSGlnaGxpZ2h0S2V5Il9zOworfQorCit2b2lkIEhpZ2hsaWdo
dFJlZ2lzdGVyOjphZGRBcHBIaWdobGlnaHQoUmVmPFN0YXRpY1JhbmdlPiYmIHZhbHVlKQorewor
ICAgIGlmIChtX21hcC5jb250YWlucyhhcHBIaWdobGlnaHRLZXkoKSkpCisgICAgICAgIG1fbWFw
LmdldChhcHBIaWdobGlnaHRLZXkoKSktPmFkZFRvU2V0TGlrZSh2YWx1ZSk7CisgICAgZWxzZQor
ICAgICAgICBzZXRGcm9tTWFwTGlrZShhcHBIaWdobGlnaHRLZXkoKSwgSGlnaGxpZ2h0OjpjcmVh
dGUodmFsdWUpKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9o
aWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGln
aGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmgKaW5kZXggNDA1MzBmODM2MjNhMzMzYjIwY2ZhNmZk
NWRjMGY1NjMzNDQxMDQ2MS4uZDUyOTFmZGE0ZDk1MzlkMzBiN2UzNjNjZTYzYTBlMjgzZDBlODNm
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0
UmVnaXN0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGln
aHRSZWdpc3Rlci5oCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IERPTU1hcEFkYXB0ZXI7CiBjbGFzcyBET01TdHJpbmc7CiBjbGFzcyBIaWdobGlnaHQ7CitjbGFz
cyBTdGF0aWNSYW5nZTsKIAogY2xhc3MgSGlnaGxpZ2h0UmVnaXN0ZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxIaWdobGlnaHRSZWdpc3Rlcj4gewogcHVibGljOgpAQCAtNDMsNiArNDQsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRGcm9tTWFwTGlrZShTdHJpbmcmJiwgUmVmPEhpZ2hsaWdodD4mJik7
CiAgICAgdm9pZCBjbGVhcigpOwogICAgIGJvb2wgcmVtb3ZlKGNvbnN0IFN0cmluZyYpOworCisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRBcHBIaWdobGlnaHQoUmVmPFN0YXRpY1JhbmdlPiYm
KTsKKyAgICBzdGF0aWMgQVNDSUlMaXRlcmFsIGFwcEhpZ2hsaWdodEtleSgpOwogICAgIAogICAg
IGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBSZWY8SGlnaGxpZ2h0Pj4mIG1hcCgpIGNvbnN0IHsgcmV0
dXJuIG1fbWFwOyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzVhNTIyYzJhYmViMGQxNmQ1YzY4ODZjNzE3MDY1NzI0
OTIwYzk0ZS4uZjk5Yjk4ZmM5NWE3NDRlYzM0YTdkYjczYThlNjEzNzJhOGRkMWU4NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTIxMCw2ICsxMjEwLDggQEAKIAkJNDNFREQ2N0YxQjQ4NURCRjAwNjQwRTc1IC8qIENvbWJpbmVk
RmlsdGVyc0FscGhhYmV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0M0VERDY3RDFCNDg1REJGMDA2NDBFNzUgLyogQ29tYmluZWRGaWx0ZXJzQWxwaGFi
ZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0
NDBFREJEMTI1NUUxMTZDMDAzMDBCQTcgLyogTG9jYWxpemFibGUuc3RyaW5ncyBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQ2RUU0RTgyNTVFMEQ5MjAw
NDU0NDYzIC8qIExvY2FsaXphYmxlLnN0cmluZ3MgKi87IH07CiAJCTQ0MTUyOTJFMEUxQUU4QTAw
MEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDE1MjkyQzBFMUFFOEEwMDBDNEEyRDAgLyogSFRN
TFBsdWdJbkltYWdlRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTQ0MzBEMDBCMjU3NUE4M0UwMDQ2RDQwMSAvKiBIaWdobGlnaHQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0RTg4RTUxMjM2
QTVDOEQwMDlCNDg0NyAvKiBIaWdobGlnaHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk0NDMwRDAwRDI1NzVBOEE1MDA0NkQ0MDEgLyogSGlnaGxp
Z2h0UmVnaXN0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ0RTg4RTUwMjM2QTU2QUMwMDlCNDg0NyAvKiBIaWdobGlnaHRSZWdpc3Rlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ0NTc3NUU1MjA0
NzJGNzMwMDhEQ0U1RCAvKiBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDU3NzVFNDIwNDcyRjczMDA4
RENFNUQgLyogTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ0NjNDRjY4MjIxMkZBNjgwMDFBODU3
NyAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M3OTQxRTIxQzU2QzI5MzAwQTRDNThFIC8qIERhdGFE
ZXRlY3RvcnNDb3JlU29mdExpbmsubW0gKi87IH07CiAJCTQ0NjVEN0JEMjUzNkQwNUUwMDE2NjY2
RCAvKiBTZWxlY3Rpb25SYW5nZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ0QjM4QkY0MjUzNjkwMUEwMEE0NDU4RCAvKiBTZWxlY3Rpb25SYW5n
ZURhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMzIwNTMsNyArMzIwNTUsOSBAQAogCQkJCTUxNUJFMTlDMUQ1NEY2QzEwMEREN0M2OCAvKiBI
SURHYW1lcGFkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTBBOTFEQTI0Q0YzRDhDMDBCRkQ4OUMg
LyogSElER2FtZXBhZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNUJFMTlFMUQ1NEY2
QzEwMEREN0M2OCAvKiBISURHYW1lcGFkUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ0
MzBEMDBCMjU3NUE4M0UwMDQ2RDQwMSAvKiBIaWdobGlnaHQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUNEQ0ZBQkJEMThDMEFGNzgwMDZGODQ1MCAvKiBIaWdobGlnaHREYXRhLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0NDMwRDAwRDI1NzVBOEE1MDA0NkQ0MDEgLyogSGlnaGxpZ2h0UmVnaXN0ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDOTREMTU0MEMyNzVDOEIwMDZCQzYxNyAvKiBIaXN0b3J5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5N0RDRTIwMjEwODA3Qzc1MDA1N0QzOTQgLyogSGlzdG9yeUNv
bnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNzQxRDExMEIwNzI1OUEwMEVENDQyQyAv
KiBIaXN0b3J5SXRlbS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtl
eXdvcmRzLmluCmluZGV4IDk5N2I0MjM5OWExOTkyZWRhMDg5NGY1MDlkMTQwMGUxYmM5MjdiODEu
LjBmYzEyNzE3MDAyNDgwYjY5MTVjNzVhMTc2ZmEwODI3NTEzYzQyNjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0yNTksNiArMjU5LDcgQEAgd2luZG93dGV4dAog
LWFwcGxlLXN5c3RlbS1wdXJwbGUKIC1hcHBsZS1zeXN0ZW0tcmVkCiAtYXBwbGUtc3lzdGVtLXll
bGxvdworLWFwcGxlLXN5c3RlbS1hcHAtaGlnaGxpZ2h0LWJhY2tncm91bmQKICNlbmRpZgogI2lm
IGRlZmluZWQoV1RGX1BMQVRGT1JNX01BQykgJiYgV1RGX1BMQVRGT1JNX01BQwogLWFwcGxlLXN5
c3RlbS1hbHRlcm5hdGUtc2VsZWN0ZWQtdGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXgg
NjQ2ZWU3ZWVjMDMzYzkwMzkzZWYwMzhlNDM3ZTA1YzZmZWNjYzlmZC4uZDBkNWE1YzhlMDc4NThh
OTY5NDU1ZDFlMGZlZjYwYTFiYzg4ZWFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0y
Nzc0LDIxICsyNzc0LDM0IEBAIEhpZ2hsaWdodFJlZ2lzdGVyJiBEb2N1bWVudDo6aGlnaGxpZ2h0
UmVnaXN0ZXIoKQogICAgIHJldHVybiAqbV9oaWdobGlnaHRSZWdpc3RlcjsKIH0KIAotdm9pZCBE
b2N1bWVudDo6dXBkYXRlSGlnaGxpZ2h0UG9zaXRpb25zKCkKK0hpZ2hsaWdodFJlZ2lzdGVyJiBE
b2N1bWVudDo6YXBwSGlnaGxpZ2h0UmVnaXN0ZXIoKQogewotICAgIFZlY3RvcjxXZWFrUHRyPEhp
Z2hsaWdodFJhbmdlRGF0YT4+IHJhbmdlc0RhdGE7Ci0gICAgaWYgKG1faGlnaGxpZ2h0UmVnaXN0
ZXIpIHsKLSAgICAgICAgZm9yIChhdXRvJiBoaWdobGlnaHQgOiBtX2hpZ2hsaWdodFJlZ2lzdGVy
LT5tYXAoKSkgewotICAgICAgICAgICAgZm9yIChhdXRvJiByYW5nZURhdGEgOiBoaWdobGlnaHQu
dmFsdWUtPnJhbmdlc0RhdGEoKSkgewotICAgICAgICAgICAgICAgIGlmIChyYW5nZURhdGEtPnN0
YXJ0UG9zaXRpb24gJiYgcmFuZ2VEYXRhLT5lbmRQb3NpdGlvbikKLSAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgaWYgKCZyYW5nZURhdGEtPnJhbmdlLT5zdGFy
dENvbnRhaW5lcigpLnRyZWVTY29wZSgpICE9ICZyYW5nZURhdGEtPnJhbmdlLT5lbmRDb250YWlu
ZXIoKS50cmVlU2NvcGUoKSkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAg
ICAgICAgICAgcmFuZ2VzRGF0YS5hcHBlbmQobWFrZVdlYWtQdHIocmFuZ2VEYXRhLnB0cigpKSk7
Ci0gICAgICAgICAgICB9CisgICAgaWYgKCFtX2FwcEhpZ2hsaWdodFJlZ2lzdGVyKQorICAgICAg
ICBtX2FwcEhpZ2hsaWdodFJlZ2lzdGVyID0gSGlnaGxpZ2h0UmVnaXN0ZXI6OmNyZWF0ZSgpOwor
ICAgIHJldHVybiAqbV9hcHBIaWdobGlnaHRSZWdpc3RlcjsKK30KKwordm9pZCBEb2N1bWVudDo6
Y29sbGVjdFJhbmdlRGF0YUZyb21SZWdpc3RlcihWZWN0b3I8V2Vha1B0cjxIaWdobGlnaHRSYW5n
ZURhdGE+PiYgcmFuZ2VzRGF0YSwgUmVmUHRyPEhpZ2hsaWdodFJlZ2lzdGVyPiBoaWdobGlnaHRS
ZWdpc3RlcikKK3sKKyAgICBmb3IgKGF1dG8mIGhpZ2hsaWdodCA6IGhpZ2hsaWdodFJlZ2lzdGVy
LT5tYXAoKSkgeworICAgICAgICBmb3IgKGF1dG8mIHJhbmdlRGF0YSA6IGhpZ2hsaWdodC52YWx1
ZS0+cmFuZ2VzRGF0YSgpKSB7CisgICAgICAgICAgICBpZiAocmFuZ2VEYXRhLT5zdGFydFBvc2l0
aW9uICYmIHJhbmdlRGF0YS0+ZW5kUG9zaXRpb24pCisgICAgICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgICAgICBpZiAoJnJhbmdlRGF0YS0+cmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCkudHJl
ZVNjb3BlKCkgIT0gJnJhbmdlRGF0YS0+cmFuZ2UtPmVuZENvbnRhaW5lcigpLnRyZWVTY29wZSgp
KQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgcmFuZ2VzRGF0YS5hcHBl
bmQobWFrZVdlYWtQdHIocmFuZ2VEYXRhLnB0cigpKSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAg
Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpCit7CisgICAg
VmVjdG9yPFdlYWtQdHI8SGlnaGxpZ2h0UmFuZ2VEYXRhPj4gcmFuZ2VzRGF0YTsKKyAgICBpZiAo
bV9oaWdobGlnaHRSZWdpc3RlcikKKyAgICAgICAgY29sbGVjdFJhbmdlRGF0YUZyb21SZWdpc3Rl
cihyYW5nZXNEYXRhLCBtX2hpZ2hsaWdodFJlZ2lzdGVyKTsKKyAgICBpZiAobV9hcHBIaWdobGln
aHRSZWdpc3RlcikKKyAgICAgICAgY29sbGVjdFJhbmdlRGF0YUZyb21SZWdpc3RlcihyYW5nZXNE
YXRhLCBtX2FwcEhpZ2hsaWdodFJlZ2lzdGVyKTsKKwogICAgIGZvciAoYXV0byYgd2Vha1Jhbmdl
RGF0YSA6IHJhbmdlc0RhdGEpIHsKICAgICAgICAgaWYgKGF1dG8qIHJhbmdlRGF0YSA9IHdlYWtS
YW5nZURhdGEuZ2V0KCkpIHsKICAgICAgICAgICAgIFZpc2libGVTZWxlY3Rpb24gdmlzaWJsZVNl
bGVjdGlvbihyYW5nZURhdGEtPnJhbmdlKTsKQEAgLTI3OTcsNyArMjgxMCw3IEBAIHZvaWQgRG9j
dW1lbnQ6OnVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpCiAgICAgICAgICAgICBpZiAoIXJhbmdl
RGF0YS0+c3RhcnRQb3NpdGlvbi5oYXNWYWx1ZSgpKQogICAgICAgICAgICAgICAgIHN0YXJ0UG9z
aXRpb24gPSB2aXNpYmxlU2VsZWN0aW9uLnZpc2libGVTdGFydCgpLmRlZXBFcXVpdmFsZW50KCk7
CiAgICAgICAgICAgICBpZiAoIXJhbmdlRGF0YS0+ZW5kUG9zaXRpb24uaGFzVmFsdWUoKSkKLSAg
ICAgICAgICAgICAgICBlbmRQb3NpdGlvbiA9IHZpc2libGVTZWxlY3Rpb24udmlzaWJsZUVuZCgp
LmRlZXBFcXVpdmFsZW50KCk7IC8vIDxNTUc+IHN3aXRjaCB0byBFTkQKKyAgICAgICAgICAgICAg
ICBlbmRQb3NpdGlvbiA9IHZpc2libGVTZWxlY3Rpb24udmlzaWJsZUVuZCgpLmRlZXBFcXVpdmFs
ZW50KCk7CiAgICAgICAgICAgICBpZiAoIXdlYWtSYW5nZURhdGEuZ2V0KCkpCiAgICAgICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggODRl
NThjYzEzNWRkYjI1ZGEzYTdhODM4ZTc0YzNlNzhmNDA3YzlkNy4uZTExZTQyOTZlYzIyYmEyZjRi
N2ZjN2Q3MWIxMWFlMWE1M2E5N2NiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTIzMSw2ICsy
MzEsNyBAQCBjbGFzcyBYUGF0aE5TUmVzb2x2ZXI7CiBjbGFzcyBYUGF0aFJlc3VsdDsKIAogc3Ry
dWN0IEJvdW5kYXJ5UG9pbnQ7CitzdHJ1Y3QgSGlnaGxpZ2h0UmFuZ2VEYXRhOwogc3RydWN0IElu
dGVyc2VjdGlvbk9ic2VydmVyRGF0YTsKIAogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIEV4Y2Vw
dGlvbk9yOwpAQCAtMTU3NCw2ICsxNTc1LDcgQEAgcHVibGljOgogICAgIFRleHRNYW5pcHVsYXRp
b25Db250cm9sbGVyKiB0ZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcklmRXhpc3RzKCkgeyByZXR1
cm4gbV90ZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5nZXQoKTsgfQogICAgICAgICAKICAgICBI
aWdobGlnaHRSZWdpc3RlciYgaGlnaGxpZ2h0UmVnaXN0ZXIoKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBIaWdobGlnaHRSZWdpc3RlciYgYXBwSGlnaGxpZ2h0UmVnaXN0ZXIoKTsKICAgICB2b2lkIHVw
ZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpOwogCiAgICAgYm9vbCBhbGxvd3NDb250ZW50SmF2YVNj
cmlwdCgpIGNvbnN0OwpAQCAtMTcwMSw2ICsxNzAzLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
cGxhdGZvcm1TdXNwZW5kT3JTdG9wQWN0aXZlRE9NT2JqZWN0cygpOwogCisgICAgdm9pZCBjb2xs
ZWN0UmFuZ2VEYXRhRnJvbVJlZ2lzdGVyKFZlY3RvcjxXZWFrUHRyPEhpZ2hsaWdodFJhbmdlRGF0
YT4+JiwgUmVmUHRyPEhpZ2hsaWdodFJlZ2lzdGVyPik7CisKICAgICBib29sIGlzQm9keVBvdGVu
dGlhbGx5U2Nyb2xsYWJsZShIVE1MQm9keUVsZW1lbnQmKTsKIAogICAgIHZvaWQgZGlkTG9nTWVz
c2FnZShjb25zdCBXVEZMb2dDaGFubmVsJiwgV1RGTG9nTGV2ZWwsIFZlY3RvcjxKU09OTG9nVmFs
dWU+JiYpIGZpbmFsOwpAQCAtMTkzMSw2ICsxOTM1LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAg
ICAgICAKICAgICBSZWZQdHI8SGlnaGxpZ2h0UmVnaXN0ZXI+IG1faGlnaGxpZ2h0UmVnaXN0ZXI7
CisgICAgUmVmUHRyPEhpZ2hsaWdodFJlZ2lzdGVyPiBtX2FwcEhpZ2hsaWdodFJlZ2lzdGVyOwog
CiAgICAgVGltZXIgbV92aXN1YWxVcGRhdGVzU3VwcHJlc3Npb25UaW1lcjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0YXRpY1JhbmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U3RhdGljUmFuZ2UuaAppbmRleCA3NjkwMTEzZGY4YTJhZTliYzgyNTU2YzRhYmYxMGY5NzJlMjJh
N2FlLi5mN2Q3ZjViNGYzNDA3NzZjMDIwMzdmYzk4MzQ5OGExNTVlOTRlMTFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU3RhdGljUmFuZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU3RhdGljUmFuZ2UuaApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAg
IHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8U3RhdGljUmFuZ2U+PiBjcmVhdGUoSW5pdCYmKTsKLSAg
ICBzdGF0aWMgUmVmPFN0YXRpY1JhbmdlPiBjcmVhdGUoY29uc3QgU2ltcGxlUmFuZ2UmKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFN0YXRpY1JhbmdlPiBjcmVhdGUoY29uc3QgU2lt
cGxlUmFuZ2UmKTsKICAgICBzdGF0aWMgUmVmPFN0YXRpY1JhbmdlPiBjcmVhdGUoU2ltcGxlUmFu
Z2UmJik7CiAKICAgICBOb2RlJiBzdGFydENvbnRhaW5lcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IFNpbXBsZVJhbmdlOjpzdGFydENvbnRhaW5lcigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvSGlnaGxpZ2h0RGF0YS5jcHAKaW5kZXggMzllYjE1MTA5YWE2YzAyYTY4NmJlMDRkZTBjZGQ2
YjAzN2M4ZmM5Yy4uMWY2Yjg4NmM5MTEwMTQ0OTBmMjc2YmI0ZDQzMGU3ZjFiYTZjMjhhYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcApAQCAtODIsNyArODIs
NyBAQCB2b2lkIFJlbmRlclJhbmdlSXRlcmF0b3I6OmNoZWNrRm9yU3Bhbm5lcigpCiAgICAgbV9j
dXJyZW50ID0gcGxhY2Vob2xkZXIuc3Bhbm5lcigpOwogfQogCi1zdGF0aWMgUmVuZGVyT2JqZWN0
KiByZW5kZXJlckFmdGVyT2Zmc2V0KGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIHVuc2ln
bmVkIG9mZnNldCkgLy8gPE1NRz4gdXNlZCBpbiBib3RoLCBtaWdodCBzaG91bGQgbm90IGJlIHN0
YXRpYworc3RhdGljIFJlbmRlck9iamVjdCogcmVuZGVyZXJBZnRlck9mZnNldChjb25zdCBSZW5k
ZXJPYmplY3QmIHJlbmRlcmVyLCB1bnNpZ25lZCBvZmZzZXQpCiB7CiAgICAgYXV0byogY2hpbGQg
PSByZW5kZXJlci5jaGlsZEF0KG9mZnNldCk7CiAgICAgcmV0dXJuIGNoaWxkID8gY2hpbGQgOiBy
ZW5kZXJlci5uZXh0SW5QcmVPcmRlckFmdGVyQ2hpbGRyZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAppbmRleCBlMDkwZjE2YTgzNTk3MzI1YTZkZTM5MGUw
YjlmZGNjNDNjYjA3OWRjLi4wNTE0NzBmOTk5OWQ1YWY5NTJhM2Q3NjU2NTBiOWI5OWQyYThmMzdh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCkBAIC04NDYs
NiArODQ2LDEzIEBAIGF1dG8gSW5saW5lVGV4dEJveDo6cmVzb2x2ZVN0eWxlRm9yTWFya2VkVGV4
dChjb25zdCBNYXJrZWRUZXh0JiBtYXJrZWRUZXh0LCBjb25zCiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICAgICAgYnJlYWs7CisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorICAgIGNh
c2UgTWFya2VkVGV4dDo6QXBwSGlnaGxpZ2h0OiB7CisgICAgICAgIE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucyA9IHsgU3R5bGVDb2xvcjo6T3B0aW9uczo6
VXNlU3lzdGVtQXBwZWFyYW5jZSB9OworICAgICAgICBzdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBy
ZW5kZXJlcigpLnRoZW1lKCkuc3lzdGVtQ29sb3IoQ1NTVmFsdWVBcHBsZVN5c3RlbUFwcEhpZ2hs
aWdodEJhY2tncm91bmQsIHN0eWxlQ29sb3JPcHRpb25zKTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorI2VuZGlmCiAgICAgY2FzZSBNYXJrZWRUZXh0OjpEcmFnZ2VkQ29udGVudDoKICAgICAgICAg
c3R5bGUuYWxwaGEgPSAwLjI1OwogICAgICAgICBicmVhazsKQEAgLTEwNTIsNiArMTA1OSw3IEBA
IFZlY3RvcjxNYXJrZWRUZXh0PiBJbmxpbmVUZXh0Qm94Ojpjb2xsZWN0TWFya2VkVGV4dHNGb3JI
aWdobGlnaHRzKFRleHRQYWludFBoYXNlCiAgICAgYXV0byYgcGFyZW50UmVuZGVyZXIgPSBwYXJl
bnQoKS0+cmVuZGVyZXIoKTsKICAgICBhdXRvJiBwYXJlbnRTdHlsZSA9IHBhcmVudFJlbmRlcmVy
LnN0eWxlKCk7CiAgICAgSGlnaGxpZ2h0RGF0YSBoaWdobGlnaHREYXRhOworICAgIC8vIEphdmFT
Y3JpcHQgSGlnaGxpZ2h0cwogICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogcmVuZGVyZXIoKS5k
b2N1bWVudCgpLmhpZ2hsaWdodFJlZ2lzdGVyKCkubWFwKCkpIHsKICAgICAgICAgYXV0byByZW5k
ZXJTdHlsZSA9IHBhcmVudFJlbmRlcmVyLmdldFVuY2FjaGVkUHNldWRvU3R5bGUoeyBQc2V1ZG9J
ZDo6SGlnaGxpZ2h0LCBoaWdobGlnaHQua2V5IH0sICZwYXJlbnRTdHlsZSk7CiAgICAgICAgIGlm
ICghcmVuZGVyU3R5bGUpCkBAIC0xMDY3LDYgKzEwNzUsMTcgQEAgVmVjdG9yPE1hcmtlZFRleHQ+
IElubGluZVRleHRCb3g6OmNvbGxlY3RNYXJrZWRUZXh0c0ZvckhpZ2hsaWdodHMoVGV4dFBhaW50
UGhhc2UKICAgICAgICAgICAgICAgICBtYXJrZWRUZXh0cy5hcHBlbmQoeyBoaWdobGlnaHRTdGFy
dCwgaGlnaGxpZ2h0RW5kLCBNYXJrZWRUZXh0OjpIaWdobGlnaHQsIG51bGxwdHIsIGhpZ2hsaWdo
dC5rZXkgfSk7CiAgICAgICAgIH0KICAgICB9CisgICAgLy8gQXBwIEhpZ2hsaWdodHMKKyAgICBm
b3IgKGF1dG8mIGhpZ2hsaWdodCA6IHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5hcHBIaWdobGlnaHRS
ZWdpc3RlcigpLm1hcCgpKSB7CisgICAgICAgIGZvciAoYXV0byYgcmFuZ2VEYXRhIDogaGlnaGxp
Z2h0LnZhbHVlLT5yYW5nZXNEYXRhKCkpIHsKKyAgICAgICAgICAgIGlmICghaGlnaGxpZ2h0RGF0
YS5zZXRSZW5kZXJSYW5nZShyYW5nZURhdGEpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor
CisgICAgICAgICAgICBhdXRvIFtoaWdobGlnaHRTdGFydCwgaGlnaGxpZ2h0RW5kXSA9IGhpZ2hs
aWdodFN0YXJ0RW5kKGhpZ2hsaWdodERhdGEpOworICAgICAgICAgICAgaWYgKGhpZ2hsaWdodFN0
YXJ0IDwgaGlnaGxpZ2h0RW5kKQorICAgICAgICAgICAgICAgIG1hcmtlZFRleHRzLmFwcGVuZCh7
IGhpZ2hsaWdodFN0YXJ0LCBoaWdobGlnaHRFbmQsIE1hcmtlZFRleHQ6OkFwcEhpZ2hsaWdodCB9
KTsKKyAgICAgICAgfQorICAgIH0KICAgICByZXR1cm4gbWFya2VkVGV4dHM7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9NYXJrZWRUZXh0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvTWFya2VkVGV4dC5oCmluZGV4IDczYzA2MjExZmU0YWE0MzMyYTJiODI4
NDAxYzljYWQxOWYwOTFkMjkuLmU3OTc4YTY0Y2M3YjAxMWY2MDgzOWIzZjBmN2I1ZTViMGNiODc4
YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9NYXJrZWRUZXh0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL01hcmtlZFRleHQuaApAQCAtNDIsNiArNDIsOSBA
QCBzdHJ1Y3QgTWFya2VkVGV4dCB7CiAgICAgICAgIFRleHRNYXRjaCwKICAgICAgICAgRGljdGF0
aW9uQWx0ZXJuYXRpdmVzLAogICAgICAgICBIaWdobGlnaHQsCisjaWYgRU5BQkxFKEFQUF9ISUdI
TElHSFRTKQorICAgICAgICBBcHBIaWdobGlnaHQsCisjZW5kaWYKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQogICAgICAgICAvLyBGSVhNRTogU2VlIDxyZGFyOi8vcHJvYmxlbS84OTMzMzUyPi4g
QWxzbywgcmVtb3ZlIHRoZSBQTEFURk9STShJT1NfRkFNSUxZKS1ndWFyZC4KICAgICAgICAgRGlj
dGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlcywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVwbGFjZWQuY3BwCmluZGV4IDI2YzIzNjEyNzQwNTZmYWUwODZjNTk1Yzg4ZmQ5ZmE5
MTZiNGQ3MDcuLjdkNGEwN2E2NTUyY2NlODljODRhZDdkZjdhMjI5ZWI0MTg4YjhjMWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcApAQCAtMTQyLDYgKzE0
MiwyMSBAQCBpbmxpbmUgc3RhdGljIGJvb2wgZHJhZ2dlZENvbnRlbnRDb250YWluc1JlcGxhY2Vk
RWxlbWVudChjb25zdCBWZWN0b3I8UmVuZGVyZWREbwogQ29sb3IgUmVuZGVyUmVwbGFjZWQ6OmNh
bGN1bGF0ZUhpZ2hsaWdodENvbG9yKCkgY29uc3QKIHsKICAgICBIaWdobGlnaHREYXRhIGhpZ2hs
aWdodERhdGE7CisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorICAgIGZvciAoYXV0byYgaGln
aGxpZ2h0IDogZG9jdW1lbnQoKS5hcHBIaWdobGlnaHRSZWdpc3RlcigpLm1hcCgpKSB7CisgICAg
ICAgIGZvciAoYXV0byYgcmFuZ2VEYXRhIDogaGlnaGxpZ2h0LnZhbHVlLT5yYW5nZXNEYXRhKCkp
IHsKKyAgICAgICAgICAgIGlmICghaGlnaGxpZ2h0RGF0YS5zZXRSZW5kZXJSYW5nZShyYW5nZURh
dGEpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBhdXRvIHN0YXRl
ID0gaGlnaGxpZ2h0RGF0YS5oaWdobGlnaHRTdGF0ZUZvclJlbmRlcmVyKCp0aGlzKTsKKyAgICAg
ICAgICAgIGlmICghaXNIaWdobGlnaHRlZChzdGF0ZSwgaGlnaGxpZ2h0RGF0YSkpCisgICAgICAg
ICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucyA9IHsgU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lz
dGVtQXBwZWFyYW5jZSB9OworICAgICAgICAgICAgICAgIHJldHVybiB0aGVtZSgpLnN5c3RlbUNv
bG9yKENTU1ZhbHVlQXBwbGVTeXN0ZW1BcHBIaWdobGlnaHRCYWNrZ3JvdW5kLCBzdHlsZUNvbG9y
T3B0aW9ucyk7CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKICAgICBmb3IgKGF1dG8mIGhpZ2hs
aWdodCA6IGRvY3VtZW50KCkuaGlnaGxpZ2h0UmVnaXN0ZXIoKS5tYXAoKSkgewogICAgICAgICBm
b3IgKGF1dG8mIHJhbmdlRGF0YSA6IGhpZ2hsaWdodC52YWx1ZS0+cmFuZ2VzRGF0YSgpKSB7CiAg
ICAgICAgICAgICBpZiAoIWhpZ2hsaWdodERhdGEuc2V0UmVuZGVyUmFuZ2UocmFuZ2VEYXRhKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCmluZGV4IDA0YTkzMGM4MGE3
Yzc4ZGMwMTA4MDUyOTE1MDMyOWYzYWEzYTEzMmIuLmRlMzMzNzU0ZGE2NjY4MmExNTgwMWQyZWEz
ZDVjMGEzZWFhMGUwNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNw
cApAQCAtMTM0OCw2ICsxMzQ4LDEzIEBAIENvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybVRleHRT
ZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9uCiAgICAgcmV0
dXJuIENvbG9yOjp5ZWxsb3c7CiB9CiAKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCitDb2xv
ciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0Cit7CisgICAgcmV0dXJuIENvbG9yOjp5ZWxsb3c7Cit9Cisj
ZW5kaWYKKwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAKIENvbG9yIFJlbmRlclRoZW1lOjp0
YXBIaWdobGlnaHRDb2xvcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCmlu
ZGV4IGJlMTk5MDNkNWFiNjQ2ZmFlOTQyY2MyMjlkNDFjMTQ4ZThkNGU3ZjUuLjhlYTliODk0NmNh
YTJmNjYzYTYxNjdkODY3YWRiNzkyMGY4ZTg1MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZS5oCkBAIC0xNTcsNiArMTU3LDkgQEAgcHVibGljOgogICAgIC8vIEhpZ2hsaWdo
dGluZyBjb2xvciBmb3Igc2VhcmNoIG1hdGNoZXMuCiAgICAgQ29sb3IgdGV4dFNlYXJjaEhpZ2hs
aWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CiAKKyAgICAv
LyBEZWZhdWx0IGhpZ2hsaWdodGluZyBjb2xvciBmb3IgYXBwIGhpZ2hsaWdodHMuCisgICAgQ29s
b3IgYXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25z
dDsKKwogICAgIHZpcnR1YWwgQ29sb3IgZGlzYWJsZWRUZXh0Q29sb3IoY29uc3QgQ29sb3ImIHRl
eHRDb2xvciwgY29uc3QgQ29sb3ImIGJhY2tncm91bmRDb2xvcikgY29uc3Q7CiAKICAgICBXRUJD
T1JFX0VYUE9SVCBDb2xvciBmb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4pIGNvbnN0OwpAQCAtMjc1LDcgKzI3OCw5IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFs
IENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CiAKICAgICB2aXJ0dWFsIENvbG9y
IHBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPikgY29uc3Q7Ci0KKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgdmlydHVh
bCBDb2xvciBwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPikgY29uc3Q7CisjZW5kaWYKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0xpc3RCb3hTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJ
T1MubW0KaW5kZXggZGNlYmNlNDg1ZTM2MjM1OGM4NGNlNDIwYWQ4NmY0YTMyNjQyNDU5Yi4uN2Yx
YTA5ZjdmNmNiMGZiMDM1NDgzNDM2MzY2Y2ZlYjE5NmUyMDBjZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQpAQCAtMTI4OSw3ICsxMjg5LDEwIEBAIHN0YXRp
YyBjb25zdCBWZWN0b3I8Q1NTVmFsdWVJREFuZFNlbGVjdG9yPiYgY3NzVmFsdWVJRFNlbGVjdG9y
TGlzdCgpCiAgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1QaW5rLCBAc2VsZWN0b3Io
c3lzdGVtUGlua0NvbG9yKSB9LAogICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtUHVy
cGxlLCBAc2VsZWN0b3Ioc3lzdGVtUHVycGxlQ29sb3IpIH0sCiAgICAgICAgICAgICB7IENTU1Zh
bHVlQXBwbGVTeXN0ZW1SZWQsIEBzZWxlY3RvcihzeXN0ZW1SZWRDb2xvcikgfSwKLSAgICAgICAg
ICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVllbGxvdywgQHNlbGVjdG9yKHN5c3RlbVllbGxvd0Nv
bG9yKSB9CisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1ZZWxsb3csIEBzZWxlY3Rv
cihzeXN0ZW1ZZWxsb3dDb2xvcikgfSwKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAg
ICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1BcHBIaWdobGlnaHRCYWNrZ3JvdW5kLCBAc2Vs
ZWN0b3Ioc3lzdGVtWWVsbG93Q29sb3IpIH0KKyNlbmRpZgogICAgICAgICB9KTsKICAgICB9KTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAppbmRleCA0ZjU3OTY1
OTM2OWVjNGI2ZTkwMzRmNzkwY2ZmMmUwMjliNWM0ZTE1Li4xZDlmN2QzZTMzZmFlMDBjNWI3MjRk
YjhiYTBmZmIzZDdkNzM5MDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMuaApAQCAtNjYsNiArNjYsOSBAQCBwdWJsaWM6CiAgICAgQ29sb3IgcGxhdGZvcm1JbmFj
dGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKICAgICBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CiAgICAgQ29sb3Ig
cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+KSBjb25zdCBmaW5hbDsKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgQ29s
b3IgcGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4pIGNvbnN0IGZpbmFsOworI2VuZGlmCiAKICAgICBTY3JvbGxiYXJDb250cm9sU2l6ZSBzY3Jv
bGxiYXJDb250cm9sU2l6ZUZvclBhcnQoQ29udHJvbFBhcnQpIGZpbmFsIHsgcmV0dXJuIFNjcm9s
bGJhckNvbnRyb2xTaXplOjpTbWFsbDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVNYWMubW0KaW5kZXggMWE1NTAzOWQ4OGUwY2Y5M2Y2Mjg3NmI1MjcyY2VjODk3MjY2
NTJlYy4uOTEwODc1YjQ4MjUyOTNiYTA2NGIwNmM1YWJmZmQzOTc2MGI2ZTUxZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtNDc2LDYgKzQ3NiwxNCBA
QCBDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdAogICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtO
U0NvbG9yIGZpbmRIaWdobGlnaHRDb2xvcl0pOwogfQogCisjaWYgRU5BQkxFKEFQUF9ISUdITElH
SFRTKQorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0Cit7CisgICAgTG9jYWxE
ZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhT
dHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOworICAgIHJldHVybiBjb2xv
ckZyb21OU0NvbG9yKFtOU0NvbG9yIHN5c3RlbVllbGxvd0NvbG9yXSk7Cit9CisjZW5kaWYKKwog
c3RhdGljIFNSR0JBPHVpbnQ4X3Q+IG1lbnVCYWNrZ3JvdW5kQ29sb3IoKQogewogICAgIFJldGFp
blB0cjxOU0JpdG1hcEltYWdlUmVwPiBvZmZzY3JlZW5SZXAgPSBhZG9wdE5TKFtbTlNCaXRtYXBJ
bWFnZVJlcCBhbGxvY10gaW5pdFdpdGhCaXRtYXBEYXRhUGxhbmVzOm5pbCBwaXhlbHNXaWRlOjEg
cGl4ZWxzSGlnaDoxCkBAIC03MDIsNiArNzEwLDEwIEBAIENvbG9yIFJlbmRlclRoZW1lTWFjOjpz
eXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
CiAgICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1SZWRDb2xvcik7CiAgICAg
ICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1ZZWxsb3c6CiAgICAgICAgICAgICAgICAg
cmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1ZZWxsb3dDb2xvcik7CisjaWYgRU5BQkxFKEFQUF9ISUdI
TElHSFRTKQorICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtQXBwSGlnaGxpZ2h0
QmFja2dyb3VuZDoKKyAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHN5c3RlbVllbGxv
d0NvbG9yKTsKKyNlbmRpZgogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KaW5kZXggMjlmYTg5NTFkYWVmMzYzZWNl
Y2RmOTAyY2JlNzI5ZTA2ZWNiZWViOC4uMTAyM2Y5Yzc3OTgyYmZjYjk4NDM0ZGQyODhlNzY4OTNk
Yzc2MDRjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFn
ZVByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFn
ZVByb3h5Q29jb2EubW0KQEAgLTU0Myw2ICs1NDMsMTcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmFk
ZEFjdGl2aXR5U3RhdGVVcGRhdGVDb21wbGV0aW9uSGFuZGxlcihDb21wbGV0aW9uSGFuZGxlcjx2
b2kKICAgICBtX2FjdGl2aXR5U3RhdGVVcGRhdGVDYWxsYmFja3MuYXBwZW5kKFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKIH0KIAorI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKK3ZvaWQg
V2ViUGFnZVByb3h5OjpjcmVhdGVBcHBIaWdobGlnaHRJblNlbGVjdGVkUmFuZ2UoYm9vbCBpbkN1
cnJlbnRHcm91cCkKK3sKKyAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNyZWF0ZUFwcEhpZ2hsaWdodElu
U2VsZWN0ZWRSYW5nZShpbkN1cnJlbnRHcm91cCkpOworfQorCisjZW5kaWYKKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKICN1bmRlZiBNRVNTQUdFX0NIRUNLX0NPTVBMRVRJT04KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDBmODc0Mjg5OTBkZTAwMTM0MzY3
MmUyNDk0ODk1YWQxM2Q0MzMwMjguLmU1Y2Q3ODdmMmM0YWEwYWVhNDNmNmVhYjc5N2Y4Zjk5NzBm
ZGNiMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNjYy
MSw2ICs2NjIxLDE2IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3Rl
ZChjb25zdCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJiBpdGVtKQogICAgICAgICBUZXh0Q2hlY2tl
cjo6dG9nZ2xlU3BlbGxpbmdVSUlzU2hvd2luZygpOwogICAgICAgICByZXR1cm47CiAgICAgfQor
I2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAgICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250
ZXh0TWVudUl0ZW1UYWdBZGRIaWdobGlnaHRUb05ld0dyb3VwKSB7CisgICAgICAgIGNyZWF0ZUFw
cEhpZ2hsaWdodEluU2VsZWN0ZWRSYW5nZShmYWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgaWYgKGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnQWRkSGlnaGxpZ2h0
VG9DdXJyZW50R3JvdXApIHsKKyAgICAgICAgY3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJh
bmdlKHRydWUpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCiAgICAgaWYgKGl0ZW0u
YWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnTGVhcm5TcGVsbGluZyB8fCBpdGVtLmFjdGlv
bigpID09IENvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nKQogICAgICAgICArK21fcGVu
ZGluZ0xlYXJuT3JJZ25vcmVXb3JkTWVzc2FnZUNvdW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IDg3OWY3MzJiMTFjYjEyMzk3Mzg2NThlOGU1OGZiODdjNTAz
NGYyYjguLmZlNDUyOTc1MDZmM2QzOGIwYTZiYzE3ZjUzZTdkZWNhOGY4OGFiMDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xODIzLDYgKzE4MjMsMTAgQEAgcHVi
bGljOgogICAgIHZvaWQgcmVxdWVzdFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbihjb25zdCBX
ZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvbkRlY2lzaW9uKT4mJik7CiAgICAgdm9pZCByZXF1ZXN0U3BlZWNoUmVj
b2duaXRpb25QZXJtaXNzaW9uQnlEZWZhdWx0QWN0aW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAKKyNpZiBFTkFCTEUo
QVBQX0hJR0hMSUdIVFMpCisgICAgdm9pZCBjcmVhdGVBcHBIaWdobGlnaHRJblNlbGVjdGVkUmFu
Z2UoYm9vbCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBXZWJQYWdlUHJveHkoUGFnZUNsaWVu
dCYsIFdlYlByb2Nlc3NQcm94eSYsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKTsKICAg
ICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggYzUxNDdmNDMw
NDc5MWFjZjY2M2QyMTQ1OWEyZTYzMWE0MzM2ZDc0Yi4uZDA5NTBmMjY0N2QzMTExMjYzYmVlZmVk
OWVhNDM1Y2Y1NmEyODZiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC04NjE1LDEyICs4NjE1LDEyIEBA
IC0gKHZvaWQpc2V0dXBBcHBIaWdobGlnaHRNZW51cwogCiAtICh2b2lkKWNyZWF0ZUhpZ2hsaWdo
dEluQ3VycmVudEdyb3VwV2l0aFJhbmdlOihpZClzZW5kZXIKIHsKLSAgICAvLyBGSVhNRTogQWRk
IEhpZ2hsaWdodCBsb2dpYy4KKyAgICBfcGFnZS0+Y3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3Rl
ZFJhbmdlKHRydWUpOwogfQogCiAtICh2b2lkKWNyZWF0ZUhpZ2hsaWdodEluTmV3R3JvdXBXaXRo
UmFuZ2U6KGlkKXNlbmRlcgogewotICAgIC8vIEZJWE1FOiBBZGQgSGlnaGxpZ2h0IGxvZ2ljLgor
ICAgIF9wYWdlLT5jcmVhdGVBcHBIaWdobGlnaHRJblNlbGVjdGVkUmFuZ2UoZmFsc2UpOwogfQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
aW5kZXggOTU3MGVjM2JhMDRhZTNhNzAzODM0OTU4ODBkMDNiMjI1YmQ2MWQyYi4uMGUwYzhkNDEy
NDU5Yzg3ZmQ2MTZkODA4NjY4MWE4MzkyZmJjOTUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE1Niw2ICsxNTYsNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvRGF0YVRyYW5zZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EYXRhYmFzZU1hbmFn
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50RnJh
Z21lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaD4KQEAgLTE4Niw2ICsxODcsOCBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvSFRNTFBsdWdJbkVsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0hUTUxTZWxlY3RFbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSGlnaGxpZ2h0Lmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9IaWdobGlnaHRSZWdpc3Rlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSGlzdG9yeUNv
bnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hpc3RvcnlJdGVtLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9IaXRUZXN0UmVzdWx0Lmg+CkBAIC0yMjksNiArMjMyLDcgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFkb3dSb290Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1N0YXRpY1Jh
bmdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdHlsZVByb3BlcnRpZXMuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1N1YmZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdWJzdGl0dXRlRGF0
YS5oPgpAQCAtNzAzMyw2ICs3MDM3LDI2IEBAIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYg
V2ViUGFnZTo6ZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KCkKIH0KICNlbmRpZgog
CisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorYm9vbCBXZWJQYWdlOjpjcmVhdGVBcHBIaWdo
bGlnaHRJblNlbGVjdGVkUmFuZ2UoYm9vbCBpbkN1cnJlbnRHcm91cCkKK3sKKyAgICBhdXRvIGRv
Y3VtZW50ID0gbWFrZVJlZlB0cihtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1h
aW5GcmFtZSgpLmRvY3VtZW50KCkpOworCisgICAgYXV0byBmcmFtZSA9IG1ha2VSZWZQdHIoZG9j
dW1lbnQtPmZyYW1lKCkpOworICAgIGlmICghZnJhbWUpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGF1dG8gc2VsZWN0aW9uUmFuZ2UgPSBmcmFtZS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9u
KCkudG9Ob3JtYWxpemVkUmFuZ2UoKTsKKyAgICBpZiAoIXNlbGVjdGlvblJhbmdlKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBkb2N1bWVudC0+YXBwSGlnaGxpZ2h0UmVnaXN0ZXIoKS5h
ZGRBcHBIaWdobGlnaHQoU3RhdGljUmFuZ2U6OmNyZWF0ZShzZWxlY3Rpb25SYW5nZS52YWx1ZSgp
KSk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKyNlbmRpZgorCisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCiAjdW5kZWYgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGE3NDhiZTIxMzVlM2QyMmI0MGRiMDVhMTYz
YWVlMDBhZDUzNDI0ZDEuLjAwNzZhNDMzMzdiYTMxNGNkMWFhMjQyZTc3N2I0NzQ3NmMzMTlkOTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEzNjYs
NiArMTM2NiwxMCBAQCBwdWJsaWM6CiAgICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBl
bnN1cmVSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkoKTsKICNlbmRpZgogCisjaWYgRU5BQkxF
KEFQUF9ISUdITElHSFRTKQorICAgIGJvb2wgY3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJh
bmdlKGJvb2wpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgV2ViUGFnZShXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXgg
MTU1ZjFmNGE0YTk2Mjg5ZTEwODcxZjIyYTU5NTUwNzBlZDBlZTU4ZC4uZjYyYzZmM2YzZjhlMjBj
OThmNzkyZGRhMjQ0MDI0NDZiZmM2Y2NlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC02MTYsNCArNjE2LDkgQEAg
R2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50
aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKIAogICAgIFNldEhhc1Jlc291cmNlTG9hZENsaWVudChi
b29sIGhhcykKICAgICBTZXRDYW5Vc2VDcmVkZW50aWFsU3RvcmFnZShib29sIGNhblVzZSkKKwor
I2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAgICBDcmVhdGVBcHBIaWdobGlnaHRJblNlbGVj
dGVkUmFuZ2UoYm9vbCBpbkN1cnJlbnRHcm91cCkKKyNlbmRpZgorCiB9CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWUzNWQwMDM1ZDYzZDRiZDU2
MmYzMmQ0NjkyODZiOGEzZWNjNmM3Yy4uNzk4NjQ1ODFjZWY4MmM0OGUwNjgyYmFkYmU1ODliYmJm
NGZhMzZiNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTExLTMwICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2Fy
ZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGFuZCBkcmF3IGFwcCBoaWdobGlnaHRz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkzNjUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9NYXJrZWRUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Om9wZXJhdG9yPDwpOgorCiAyMDIwLTExLTE5ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIElzc3VlIHNhbmRib3ggZXh0ZW5zaW9uIHRvIFdl
YiBJbnNwZWN0b3Igc2VydmljZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL01hcmtlZFRleHQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL01hcmtlZFRleHQuY3BwCmluZGV4IDZhOGU1NzI5MWJmNWQwMTY3NjhkOGUyOTJlMmI4YzY3
YWMwMDg1ZmIuLjdmYTZhZmE2Y2Y1YjhlNGYwNzcyOWNiOWFhZjkwOGU3ZmJkYzM1OTEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9NYXJrZWRUZXh0LmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTWFya2VkVGV4dC5jcHAKQEAg
LTU3LDYgKzU3LDEwIEBAIHN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIG9z
LCBNYXJrZWRUZXh0OjpUeXBlIHR5cGUpCiAgICAgICAgIHJldHVybiBvcyA8PCAiVGV4dE1hdGNo
IjsKICAgICBjYXNlIE1hcmtlZFRleHQ6OkhpZ2hsaWdodDoKICAgICAgICAgcmV0dXJuIG9zIDw8
ICJIaWdobGlnaHQiOworI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAgICBjYXNlIE1hcmtl
ZFRleHQ6OkFwcEhpZ2hsaWdodDoKKyAgICAgICAgcmV0dXJuIG9zIDw8ICJBcHBIaWdobGlnaHQi
OworI2VuZGlmCiAgICAgY2FzZSBNYXJrZWRUZXh0OjpVbm1hcmtlZDoKICAgICAgICAgcmV0dXJu
IG9zIDw8ICJVbm1hcmtlZCI7CiAgICAgfQo=
</data>
<flag name="commit-queue"
          id="432167"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415081</attachid>
            <date>2020-11-30 17:08:04 -0800</date>
            <delta_ts>2020-11-30 18:20:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219365-20201130170803.patch</filename>
            <type>text/plain</type>
            <size>31010</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QzYzFmNDI4NGY0ZmI3
ODRjOTEyZTIxNjUwMzA2NGNiNGZkYTExMy4uODU1N2M4NzVhN2IwYWYyNzdlODQzNDMyNjVkNmE5
NTE1MDc0OWUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTExLTMwICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGFu
ZCBkcmF3IGFwcCBoaWdobGlnaHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTkzNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDcmVhdGUgYSBzZXBhcmF0ZSBoaWdobGlnaHQgcmVnaXN0ZXIgZm9yIGFw
cCBoaWdobGlnaHRzIHNvIHRoYXQgdGhlcmUgaXMgYSBjbGVhciBzZXBhcmF0aW9uCisgICAgICAg
IHdpdGggbm8gcmlzayBvZiB3ZWIgY29udGVudCBhY2Nlc3NpbmcgdGhlIHdyb25nIGhpZ2hsaWdo
dHMuIEV4dGVuZCByZW5kZXJpbmcgdG8gaW5jbHVkZSB0aGUgCisgICAgICAgIGFwcCBoaWdobGln
aHRzIHdpdGggdGhlIGN1cnJlbnQgZGVmYXVsdCBzZXR0aW5ncy4gCisKKyAgICAgICAgKiBNb2R1
bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaDoKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRSZWdpc3Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSZWdpc3Rl
cjo6YXBwSGlnaGxpZ2h0S2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJlZ2lzdGVy
OjphZGRBcHBIaWdobGlnaHQpOgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dFJlZ2lzdGVyLmg6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YXBwSGlnaGxpZ2h0UmVnaXN0
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNvbGxlY3RSYWdlRGF0YUZyb21SZWdp
c3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSGlnaGxpZ2h0UG9zaXRp
b25zKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vU3RhdGljUmFu
Z2UuaDoKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVk
KToKKyAgICAgICAgKiByZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpyZW5kZXJlckFmdGVyT2Zmc2V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4
dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpyZXNvbHZlU3R5bGVG
b3JNYXJrZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OmNvbGxlY3RN
YXJrZWRUZXh0c0ZvckhpZ2hsaWdodHMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9NYXJr
ZWRUZXh0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGhlbWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpjc3NWYWx1ZUlEU2VsZWN0b3JM
aXN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU1hYzo6cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IgY29uc3QpOgorCiAyMDIwLTExLTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgV29ya2xldC5hZGRNb2R1bGUo
KSBzaG91bGQgcmVqZWN0IHByb21pc2Ugd2l0aCBhbiBBYm9ydEVycm9yIHdoZW4gdGhlIG5ldHdv
cmsgbG9hZCBmYWlscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjNGI0NzFhNGViODIwZjUyMjc2MmIyYTE4M2YzZGJi
Nzc3N2M5YjMyLi45OGQzNmRlNGQ3NDcxNzU5MGIxMGQ1NTMxNzYxNjc4MWI5MDg1ZmE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTExLTMwICBNZWdhbiBHYXJkbmVyICA8bWVnYW5f
Z2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGFuZCBkcmF3IGFwcCBoaWdobGln
aHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkz
NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIYW5k
bGUgdGhlIGNyZWF0aW9uIG9mIEFwcCBIaWdobGlnaHRzIGZyb20gc2VsZWN0aW9ucyB3aGVuIHRo
ZSBjb250ZXh0IG1lbnUgaXRlbSBpcyBzZWxlY3RlZC4gCisgICAgICAgIFRoaXMgcGF0Y2ggd2ls
bCBhZGQgdGhlIGhpZ2hsaWdodHMgdG8gdGhlIERvY3VtZW50J3MgYXBwIEhpZ2hsaWdodCByZWdp
c3RlciwgYW5kIGhhbmRsZSBkcmF3aW5nCisgICAgICAgIHRoZW0gaW4gSW5saW5lVGV4dEJveC4g
TGF0ZXIgcGF0Y2hlcyB3aWxsIGhhbmRsZSB0aGUgcGVyc2lzdGVudCBzdG9yYWdlIGFuZCByZXBv
cHVsYXRpb24gb2YgYXBwCisgICAgICAgIGhpZ2hsaWdodHMgb24gbGF1bmNoIG9yIHJlbG9hZCBv
ZiBhIHBhZ2UuIAorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0ZUFwcEhpZ2hsaWdodElu
U2VsZWN0ZWRSYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNyZWF0ZUhpZ2hsaWdodEluQ3Vy
cmVudEdyb3VwV2l0aFJhbmdlOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNyZWF0ZUhp
Z2hsaWdodEluTmV3R3JvdXBXaXRoUmFuZ2U6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjcmVhdGVBcHBIaWdo
bGlnaHRJblNlbGVjdGVkUmFuZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46
CisKIDIwMjAtMTEtMTkgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFttYWNPU10gSXNzdWUgc2FuZGJveCBleHRlbnNpb24gdG8gV2ViIEluc3BlY3RvciBz
ZXJ2aWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oCmlu
ZGV4IGYwZGZhNTY4MjI4YzgzYjIwZWJlOGEyZjkzNWVmMGY1ZGU3NTMwZmQuLjlkOThjODcxNGVi
YzA1YTQ5ZDdkOTZhMzJlZjRiMGMyZjlkMjUxNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oCkBAIC01NCw3ICs1NCw3IEBAIHN0cnVjdCBIaWdobGln
aHRSYW5nZURhdGEgOiBSZWZDb3VudGVkPEhpZ2hsaWdodFJhbmdlRGF0YT4sIHB1YmxpYyBDYW5N
YWtlV2Vha1B0CiAKIGNsYXNzIEhpZ2hsaWdodCA6IHB1YmxpYyBSZWZDb3VudGVkPEhpZ2hsaWdo
dD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0PiBjcmVhdGUoU3RhdGljUmFu
Z2UmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEhpZ2hsaWdodD4gY3JlYXRlKFN0
YXRpY1JhbmdlJik7CiAgICAgdm9pZCBjbGVhckZyb21TZXRMaWtlKCk7CiAgICAgYm9vbCBhZGRU
b1NldExpa2UoU3RhdGljUmFuZ2UmKTsKICAgICBib29sIHJlbW92ZUZyb21TZXRMaWtlKGNvbnN0
IFN0YXRpY1JhbmdlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hs
aWdodC9IaWdobGlnaHRSZWdpc3Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hs
aWdodC9IaWdobGlnaHRSZWdpc3Rlci5jcHAKaW5kZXggOWUyMGI4NjkzNDI1Y2JjYWEwNmNjYjE0
NGZlMDJkM2NmNjI4NWU4Yi4uMmVmMTBlM2IzOTAwN2Q5OTIwZjAyMzY5NzMyMzVhZTBlNGJmZDcz
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0
UmVnaXN0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hs
aWdodFJlZ2lzdGVyLmNwcApAQCAtNTMsNCArNTMsMTcgQEAgYm9vbCBIaWdobGlnaHRSZWdpc3Rl
cjo6cmVtb3ZlKGNvbnN0IFN0cmluZyYga2V5KQogICAgIHJldHVybiBtX21hcC5yZW1vdmUoa2V5
KTsKIH0KIAorQVNDSUlMaXRlcmFsIEhpZ2hsaWdodFJlZ2lzdGVyOjphcHBIaWdobGlnaHRLZXko
KQoreworICAgIHJldHVybiAiYXBwSGlnaGxpZ2h0S2V5Il9zOworfQorCit2b2lkIEhpZ2hsaWdo
dFJlZ2lzdGVyOjphZGRBcHBIaWdobGlnaHQoUmVmPFN0YXRpY1JhbmdlPiYmIHZhbHVlKQorewor
ICAgIGlmIChtX21hcC5jb250YWlucyhhcHBIaWdobGlnaHRLZXkoKSkpCisgICAgICAgIG1fbWFw
LmdldChhcHBIaWdobGlnaHRLZXkoKSktPmFkZFRvU2V0TGlrZSh2YWx1ZSk7CisgICAgZWxzZQor
ICAgICAgICBzZXRGcm9tTWFwTGlrZShhcHBIaWdobGlnaHRLZXkoKSwgSGlnaGxpZ2h0OjpjcmVh
dGUodmFsdWUpKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9o
aWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGln
aGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmgKaW5kZXggNDA1MzBmODM2MjNhMzMzYjIwY2ZhNmZk
NWRjMGY1NjMzNDQxMDQ2MS4uZDUyOTFmZGE0ZDk1MzlkMzBiN2UzNjNjZTYzYTBlMjgzZDBlODNm
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0
UmVnaXN0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGln
aHRSZWdpc3Rlci5oCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IERPTU1hcEFkYXB0ZXI7CiBjbGFzcyBET01TdHJpbmc7CiBjbGFzcyBIaWdobGlnaHQ7CitjbGFz
cyBTdGF0aWNSYW5nZTsKIAogY2xhc3MgSGlnaGxpZ2h0UmVnaXN0ZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxIaWdobGlnaHRSZWdpc3Rlcj4gewogcHVibGljOgpAQCAtNDMsNiArNDQsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRGcm9tTWFwTGlrZShTdHJpbmcmJiwgUmVmPEhpZ2hsaWdodD4mJik7
CiAgICAgdm9pZCBjbGVhcigpOwogICAgIGJvb2wgcmVtb3ZlKGNvbnN0IFN0cmluZyYpOworCisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRBcHBIaWdobGlnaHQoUmVmPFN0YXRpY1JhbmdlPiYm
KTsKKyAgICBzdGF0aWMgQVNDSUlMaXRlcmFsIGFwcEhpZ2hsaWdodEtleSgpOwogICAgIAogICAg
IGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBSZWY8SGlnaGxpZ2h0Pj4mIG1hcCgpIGNvbnN0IHsgcmV0
dXJuIG1fbWFwOyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzVhNTIyYzJhYmViMGQxNmQ1YzY4ODZjNzE3MDY1NzI0
OTIwYzk0ZS4uZjk5Yjk4ZmM5NWE3NDRlYzM0YTdkYjczYThlNjEzNzJhOGRkMWU4NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTIxMCw2ICsxMjEwLDggQEAKIAkJNDNFREQ2N0YxQjQ4NURCRjAwNjQwRTc1IC8qIENvbWJpbmVk
RmlsdGVyc0FscGhhYmV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0M0VERDY3RDFCNDg1REJGMDA2NDBFNzUgLyogQ29tYmluZWRGaWx0ZXJzQWxwaGFi
ZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0
NDBFREJEMTI1NUUxMTZDMDAzMDBCQTcgLyogTG9jYWxpemFibGUuc3RyaW5ncyBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQ2RUU0RTgyNTVFMEQ5MjAw
NDU0NDYzIC8qIExvY2FsaXphYmxlLnN0cmluZ3MgKi87IH07CiAJCTQ0MTUyOTJFMEUxQUU4QTAw
MEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDE1MjkyQzBFMUFFOEEwMDBDNEEyRDAgLyogSFRN
TFBsdWdJbkltYWdlRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTQ0MzBEMDBCMjU3NUE4M0UwMDQ2RDQwMSAvKiBIaWdobGlnaHQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0RTg4RTUxMjM2
QTVDOEQwMDlCNDg0NyAvKiBIaWdobGlnaHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk0NDMwRDAwRDI1NzVBOEE1MDA0NkQ0MDEgLyogSGlnaGxp
Z2h0UmVnaXN0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ0RTg4RTUwMjM2QTU2QUMwMDlCNDg0NyAvKiBIaWdobGlnaHRSZWdpc3Rlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ0NTc3NUU1MjA0
NzJGNzMwMDhEQ0U1RCAvKiBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDU3NzVFNDIwNDcyRjczMDA4
RENFNUQgLyogTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ0NjNDRjY4MjIxMkZBNjgwMDFBODU3
NyAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M3OTQxRTIxQzU2QzI5MzAwQTRDNThFIC8qIERhdGFE
ZXRlY3RvcnNDb3JlU29mdExpbmsubW0gKi87IH07CiAJCTQ0NjVEN0JEMjUzNkQwNUUwMDE2NjY2
RCAvKiBTZWxlY3Rpb25SYW5nZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ0QjM4QkY0MjUzNjkwMUEwMEE0NDU4RCAvKiBTZWxlY3Rpb25SYW5n
ZURhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMzIwNTMsNyArMzIwNTUsOSBAQAogCQkJCTUxNUJFMTlDMUQ1NEY2QzEwMEREN0M2OCAvKiBI
SURHYW1lcGFkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTBBOTFEQTI0Q0YzRDhDMDBCRkQ4OUMg
LyogSElER2FtZXBhZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNUJFMTlFMUQ1NEY2
QzEwMEREN0M2OCAvKiBISURHYW1lcGFkUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ0
MzBEMDBCMjU3NUE4M0UwMDQ2RDQwMSAvKiBIaWdobGlnaHQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUNEQ0ZBQkJEMThDMEFGNzgwMDZGODQ1MCAvKiBIaWdobGlnaHREYXRhLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0NDMwRDAwRDI1NzVBOEE1MDA0NkQ0MDEgLyogSGlnaGxpZ2h0UmVnaXN0ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDOTREMTU0MEMyNzVDOEIwMDZCQzYxNyAvKiBIaXN0b3J5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5N0RDRTIwMjEwODA3Qzc1MDA1N0QzOTQgLyogSGlzdG9yeUNv
bnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNzQxRDExMEIwNzI1OUEwMEVENDQyQyAv
KiBIaXN0b3J5SXRlbS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtl
eXdvcmRzLmluCmluZGV4IDk5N2I0MjM5OWExOTkyZWRhMDg5NGY1MDlkMTQwMGUxYmM5MjdiODEu
LjBmYzEyNzE3MDAyNDgwYjY5MTVjNzVhMTc2ZmEwODI3NTEzYzQyNjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0yNTksNiArMjU5LDcgQEAgd2luZG93dGV4dAog
LWFwcGxlLXN5c3RlbS1wdXJwbGUKIC1hcHBsZS1zeXN0ZW0tcmVkCiAtYXBwbGUtc3lzdGVtLXll
bGxvdworLWFwcGxlLXN5c3RlbS1hcHAtaGlnaGxpZ2h0LWJhY2tncm91bmQKICNlbmRpZgogI2lm
IGRlZmluZWQoV1RGX1BMQVRGT1JNX01BQykgJiYgV1RGX1BMQVRGT1JNX01BQwogLWFwcGxlLXN5
c3RlbS1hbHRlcm5hdGUtc2VsZWN0ZWQtdGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXgg
NjQ2ZWU3ZWVjMDMzYzkwMzkzZWYwMzhlNDM3ZTA1YzZmZWNjYzlmZC4uZDBkNWE1YzhlMDc4NThh
OTY5NDU1ZDFlMGZlZjYwYTFiYzg4ZWFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0y
Nzc0LDIxICsyNzc0LDM0IEBAIEhpZ2hsaWdodFJlZ2lzdGVyJiBEb2N1bWVudDo6aGlnaGxpZ2h0
UmVnaXN0ZXIoKQogICAgIHJldHVybiAqbV9oaWdobGlnaHRSZWdpc3RlcjsKIH0KIAotdm9pZCBE
b2N1bWVudDo6dXBkYXRlSGlnaGxpZ2h0UG9zaXRpb25zKCkKK0hpZ2hsaWdodFJlZ2lzdGVyJiBE
b2N1bWVudDo6YXBwSGlnaGxpZ2h0UmVnaXN0ZXIoKQogewotICAgIFZlY3RvcjxXZWFrUHRyPEhp
Z2hsaWdodFJhbmdlRGF0YT4+IHJhbmdlc0RhdGE7Ci0gICAgaWYgKG1faGlnaGxpZ2h0UmVnaXN0
ZXIpIHsKLSAgICAgICAgZm9yIChhdXRvJiBoaWdobGlnaHQgOiBtX2hpZ2hsaWdodFJlZ2lzdGVy
LT5tYXAoKSkgewotICAgICAgICAgICAgZm9yIChhdXRvJiByYW5nZURhdGEgOiBoaWdobGlnaHQu
dmFsdWUtPnJhbmdlc0RhdGEoKSkgewotICAgICAgICAgICAgICAgIGlmIChyYW5nZURhdGEtPnN0
YXJ0UG9zaXRpb24gJiYgcmFuZ2VEYXRhLT5lbmRQb3NpdGlvbikKLSAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgaWYgKCZyYW5nZURhdGEtPnJhbmdlLT5zdGFy
dENvbnRhaW5lcigpLnRyZWVTY29wZSgpICE9ICZyYW5nZURhdGEtPnJhbmdlLT5lbmRDb250YWlu
ZXIoKS50cmVlU2NvcGUoKSkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAg
ICAgICAgICAgcmFuZ2VzRGF0YS5hcHBlbmQobWFrZVdlYWtQdHIocmFuZ2VEYXRhLnB0cigpKSk7
Ci0gICAgICAgICAgICB9CisgICAgaWYgKCFtX2FwcEhpZ2hsaWdodFJlZ2lzdGVyKQorICAgICAg
ICBtX2FwcEhpZ2hsaWdodFJlZ2lzdGVyID0gSGlnaGxpZ2h0UmVnaXN0ZXI6OmNyZWF0ZSgpOwor
ICAgIHJldHVybiAqbV9hcHBIaWdobGlnaHRSZWdpc3RlcjsKK30KKwordm9pZCBEb2N1bWVudDo6
Y29sbGVjdFJhbmdlRGF0YUZyb21SZWdpc3RlcihWZWN0b3I8V2Vha1B0cjxIaWdobGlnaHRSYW5n
ZURhdGE+PiYgcmFuZ2VzRGF0YSwgUmVmUHRyPEhpZ2hsaWdodFJlZ2lzdGVyPiBoaWdobGlnaHRS
ZWdpc3RlcikKK3sKKyAgICBmb3IgKGF1dG8mIGhpZ2hsaWdodCA6IGhpZ2hsaWdodFJlZ2lzdGVy
LT5tYXAoKSkgeworICAgICAgICBmb3IgKGF1dG8mIHJhbmdlRGF0YSA6IGhpZ2hsaWdodC52YWx1
ZS0+cmFuZ2VzRGF0YSgpKSB7CisgICAgICAgICAgICBpZiAocmFuZ2VEYXRhLT5zdGFydFBvc2l0
aW9uICYmIHJhbmdlRGF0YS0+ZW5kUG9zaXRpb24pCisgICAgICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgICAgICBpZiAoJnJhbmdlRGF0YS0+cmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCkudHJl
ZVNjb3BlKCkgIT0gJnJhbmdlRGF0YS0+cmFuZ2UtPmVuZENvbnRhaW5lcigpLnRyZWVTY29wZSgp
KQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgcmFuZ2VzRGF0YS5hcHBl
bmQobWFrZVdlYWtQdHIocmFuZ2VEYXRhLnB0cigpKSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAg
Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpCit7CisgICAg
VmVjdG9yPFdlYWtQdHI8SGlnaGxpZ2h0UmFuZ2VEYXRhPj4gcmFuZ2VzRGF0YTsKKyAgICBpZiAo
bV9oaWdobGlnaHRSZWdpc3RlcikKKyAgICAgICAgY29sbGVjdFJhbmdlRGF0YUZyb21SZWdpc3Rl
cihyYW5nZXNEYXRhLCBtX2hpZ2hsaWdodFJlZ2lzdGVyKTsKKyAgICBpZiAobV9hcHBIaWdobGln
aHRSZWdpc3RlcikKKyAgICAgICAgY29sbGVjdFJhbmdlRGF0YUZyb21SZWdpc3RlcihyYW5nZXNE
YXRhLCBtX2FwcEhpZ2hsaWdodFJlZ2lzdGVyKTsKKwogICAgIGZvciAoYXV0byYgd2Vha1Jhbmdl
RGF0YSA6IHJhbmdlc0RhdGEpIHsKICAgICAgICAgaWYgKGF1dG8qIHJhbmdlRGF0YSA9IHdlYWtS
YW5nZURhdGEuZ2V0KCkpIHsKICAgICAgICAgICAgIFZpc2libGVTZWxlY3Rpb24gdmlzaWJsZVNl
bGVjdGlvbihyYW5nZURhdGEtPnJhbmdlKTsKQEAgLTI3OTcsNyArMjgxMCw3IEBAIHZvaWQgRG9j
dW1lbnQ6OnVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpCiAgICAgICAgICAgICBpZiAoIXJhbmdl
RGF0YS0+c3RhcnRQb3NpdGlvbi5oYXNWYWx1ZSgpKQogICAgICAgICAgICAgICAgIHN0YXJ0UG9z
aXRpb24gPSB2aXNpYmxlU2VsZWN0aW9uLnZpc2libGVTdGFydCgpLmRlZXBFcXVpdmFsZW50KCk7
CiAgICAgICAgICAgICBpZiAoIXJhbmdlRGF0YS0+ZW5kUG9zaXRpb24uaGFzVmFsdWUoKSkKLSAg
ICAgICAgICAgICAgICBlbmRQb3NpdGlvbiA9IHZpc2libGVTZWxlY3Rpb24udmlzaWJsZUVuZCgp
LmRlZXBFcXVpdmFsZW50KCk7IC8vIDxNTUc+IHN3aXRjaCB0byBFTkQKKyAgICAgICAgICAgICAg
ICBlbmRQb3NpdGlvbiA9IHZpc2libGVTZWxlY3Rpb24udmlzaWJsZUVuZCgpLmRlZXBFcXVpdmFs
ZW50KCk7CiAgICAgICAgICAgICBpZiAoIXdlYWtSYW5nZURhdGEuZ2V0KCkpCiAgICAgICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggODRl
NThjYzEzNWRkYjI1ZGEzYTdhODM4ZTc0YzNlNzhmNDA3YzlkNy4uZTExZTQyOTZlYzIyYmEyZjRi
N2ZjN2Q3MWIxMWFlMWE1M2E5N2NiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTIzMSw2ICsy
MzEsNyBAQCBjbGFzcyBYUGF0aE5TUmVzb2x2ZXI7CiBjbGFzcyBYUGF0aFJlc3VsdDsKIAogc3Ry
dWN0IEJvdW5kYXJ5UG9pbnQ7CitzdHJ1Y3QgSGlnaGxpZ2h0UmFuZ2VEYXRhOwogc3RydWN0IElu
dGVyc2VjdGlvbk9ic2VydmVyRGF0YTsKIAogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIEV4Y2Vw
dGlvbk9yOwpAQCAtMTU3NCw2ICsxNTc1LDcgQEAgcHVibGljOgogICAgIFRleHRNYW5pcHVsYXRp
b25Db250cm9sbGVyKiB0ZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcklmRXhpc3RzKCkgeyByZXR1
cm4gbV90ZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5nZXQoKTsgfQogICAgICAgICAKICAgICBI
aWdobGlnaHRSZWdpc3RlciYgaGlnaGxpZ2h0UmVnaXN0ZXIoKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBIaWdobGlnaHRSZWdpc3RlciYgYXBwSGlnaGxpZ2h0UmVnaXN0ZXIoKTsKICAgICB2b2lkIHVw
ZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpOwogCiAgICAgYm9vbCBhbGxvd3NDb250ZW50SmF2YVNj
cmlwdCgpIGNvbnN0OwpAQCAtMTcwMSw2ICsxNzAzLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
cGxhdGZvcm1TdXNwZW5kT3JTdG9wQWN0aXZlRE9NT2JqZWN0cygpOwogCisgICAgdm9pZCBjb2xs
ZWN0UmFuZ2VEYXRhRnJvbVJlZ2lzdGVyKFZlY3RvcjxXZWFrUHRyPEhpZ2hsaWdodFJhbmdlRGF0
YT4+JiwgUmVmUHRyPEhpZ2hsaWdodFJlZ2lzdGVyPik7CisKICAgICBib29sIGlzQm9keVBvdGVu
dGlhbGx5U2Nyb2xsYWJsZShIVE1MQm9keUVsZW1lbnQmKTsKIAogICAgIHZvaWQgZGlkTG9nTWVz
c2FnZShjb25zdCBXVEZMb2dDaGFubmVsJiwgV1RGTG9nTGV2ZWwsIFZlY3RvcjxKU09OTG9nVmFs
dWU+JiYpIGZpbmFsOwpAQCAtMTkzMSw2ICsxOTM1LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAg
ICAgICAKICAgICBSZWZQdHI8SGlnaGxpZ2h0UmVnaXN0ZXI+IG1faGlnaGxpZ2h0UmVnaXN0ZXI7
CisgICAgUmVmUHRyPEhpZ2hsaWdodFJlZ2lzdGVyPiBtX2FwcEhpZ2hsaWdodFJlZ2lzdGVyOwog
CiAgICAgVGltZXIgbV92aXN1YWxVcGRhdGVzU3VwcHJlc3Npb25UaW1lcjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0YXRpY1JhbmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U3RhdGljUmFuZ2UuaAppbmRleCA3NjkwMTEzZGY4YTJhZTliYzgyNTU2YzRhYmYxMGY5NzJlMjJh
N2FlLi5mN2Q3ZjViNGYzNDA3NzZjMDIwMzdmYzk4MzQ5OGExNTVlOTRlMTFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU3RhdGljUmFuZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU3RhdGljUmFuZ2UuaApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAg
IHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8U3RhdGljUmFuZ2U+PiBjcmVhdGUoSW5pdCYmKTsKLSAg
ICBzdGF0aWMgUmVmPFN0YXRpY1JhbmdlPiBjcmVhdGUoY29uc3QgU2ltcGxlUmFuZ2UmKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFN0YXRpY1JhbmdlPiBjcmVhdGUoY29uc3QgU2lt
cGxlUmFuZ2UmKTsKICAgICBzdGF0aWMgUmVmPFN0YXRpY1JhbmdlPiBjcmVhdGUoU2ltcGxlUmFu
Z2UmJik7CiAKICAgICBOb2RlJiBzdGFydENvbnRhaW5lcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IFNpbXBsZVJhbmdlOjpzdGFydENvbnRhaW5lcigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvSGlnaGxpZ2h0RGF0YS5jcHAKaW5kZXggMzllYjE1MTA5YWE2YzAyYTY4NmJlMDRkZTBjZGQ2
YjAzN2M4ZmM5Yy4uMWY2Yjg4NmM5MTEwMTQ0OTBmMjc2YmI0ZDQzMGU3ZjFiYTZjMjhhYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcApAQCAtODIsNyArODIs
NyBAQCB2b2lkIFJlbmRlclJhbmdlSXRlcmF0b3I6OmNoZWNrRm9yU3Bhbm5lcigpCiAgICAgbV9j
dXJyZW50ID0gcGxhY2Vob2xkZXIuc3Bhbm5lcigpOwogfQogCi1zdGF0aWMgUmVuZGVyT2JqZWN0
KiByZW5kZXJlckFmdGVyT2Zmc2V0KGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIHVuc2ln
bmVkIG9mZnNldCkgLy8gPE1NRz4gdXNlZCBpbiBib3RoLCBtaWdodCBzaG91bGQgbm90IGJlIHN0
YXRpYworc3RhdGljIFJlbmRlck9iamVjdCogcmVuZGVyZXJBZnRlck9mZnNldChjb25zdCBSZW5k
ZXJPYmplY3QmIHJlbmRlcmVyLCB1bnNpZ25lZCBvZmZzZXQpCiB7CiAgICAgYXV0byogY2hpbGQg
PSByZW5kZXJlci5jaGlsZEF0KG9mZnNldCk7CiAgICAgcmV0dXJuIGNoaWxkID8gY2hpbGQgOiBy
ZW5kZXJlci5uZXh0SW5QcmVPcmRlckFmdGVyQ2hpbGRyZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAppbmRleCBlMDkwZjE2YTgzNTk3MzI1YTZkZTM5MGUw
YjlmZGNjNDNjYjA3OWRjLi5hMTE2MTMyOTMyNTAyODM2NjNkNTMwY2ZhYWQ4M2NkYTVkNmM0OTAw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCkBAIC04NDYs
NiArODQ2LDEzIEBAIGF1dG8gSW5saW5lVGV4dEJveDo6cmVzb2x2ZVN0eWxlRm9yTWFya2VkVGV4
dChjb25zdCBNYXJrZWRUZXh0JiBtYXJrZWRUZXh0LCBjb25zCiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICAgICAgYnJlYWs7CisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorICAgIGNh
c2UgTWFya2VkVGV4dDo6QXBwSGlnaGxpZ2h0OiB7CisgICAgICAgIE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucyA9IHsgU3R5bGVDb2xvcjo6T3B0aW9uczo6
VXNlU3lzdGVtQXBwZWFyYW5jZSB9OworICAgICAgICBzdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBy
ZW5kZXJlcigpLnRoZW1lKCkuc3lzdGVtQ29sb3IoQ1NTVmFsdWVBcHBsZVN5c3RlbUFwcEhpZ2hs
aWdodEJhY2tncm91bmQsIHN0eWxlQ29sb3JPcHRpb25zKTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorI2VuZGlmCiAgICAgY2FzZSBNYXJrZWRUZXh0OjpEcmFnZ2VkQ29udGVudDoKICAgICAgICAg
c3R5bGUuYWxwaGEgPSAwLjI1OwogICAgICAgICBicmVhazsKQEAgLTEwNjcsNiArMTA3NCwxOCBA
QCBWZWN0b3I8TWFya2VkVGV4dD4gSW5saW5lVGV4dEJveDo6Y29sbGVjdE1hcmtlZFRleHRzRm9y
SGlnaGxpZ2h0cyhUZXh0UGFpbnRQaGFzZQogICAgICAgICAgICAgICAgIG1hcmtlZFRleHRzLmFw
cGVuZCh7IGhpZ2hsaWdodFN0YXJ0LCBoaWdobGlnaHRFbmQsIE1hcmtlZFRleHQ6OkhpZ2hsaWdo
dCwgbnVsbHB0ciwgaGlnaGxpZ2h0LmtleSB9KTsKICAgICAgICAgfQogICAgIH0KKyNpZiBFTkFC
TEUoQVBQX0hJR0hMSUdIVFMpCisgICAgZm9yIChhdXRvJiBoaWdobGlnaHQgOiByZW5kZXJlcigp
LmRvY3VtZW50KCkuYXBwSGlnaGxpZ2h0UmVnaXN0ZXIoKS5tYXAoKSkgeworICAgICAgICBmb3Ig
KGF1dG8mIHJhbmdlRGF0YSA6IGhpZ2hsaWdodC52YWx1ZS0+cmFuZ2VzRGF0YSgpKSB7CisgICAg
ICAgICAgICBpZiAoIWhpZ2hsaWdodERhdGEuc2V0UmVuZGVyUmFuZ2UocmFuZ2VEYXRhKSkKKyAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgYXV0byBbaGlnaGxpZ2h0U3Rh
cnQsIGhpZ2hsaWdodEVuZF0gPSBoaWdobGlnaHRTdGFydEVuZChoaWdobGlnaHREYXRhKTsKKyAg
ICAgICAgICAgIGlmIChoaWdobGlnaHRTdGFydCA8IGhpZ2hsaWdodEVuZCkKKyAgICAgICAgICAg
ICAgICBtYXJrZWRUZXh0cy5hcHBlbmQoeyBoaWdobGlnaHRTdGFydCwgaGlnaGxpZ2h0RW5kLCBN
YXJrZWRUZXh0OjpBcHBIaWdobGlnaHQgfSk7CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKICAg
ICByZXR1cm4gbWFya2VkVGV4dHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9NYXJrZWRUZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWFya2VkVGV4
dC5oCmluZGV4IDczYzA2MjExZmU0YWE0MzMyYTJiODI4NDAxYzljYWQxOWYwOTFkMjkuLmU3OTc4
YTY0Y2M3YjAxMWY2MDgzOWIzZjBmN2I1ZTViMGNiODc4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9NYXJrZWRUZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL01hcmtlZFRleHQuaApAQCAtNDIsNiArNDIsOSBAQCBzdHJ1Y3QgTWFya2VkVGV4dCB7CiAg
ICAgICAgIFRleHRNYXRjaCwKICAgICAgICAgRGljdGF0aW9uQWx0ZXJuYXRpdmVzLAogICAgICAg
ICBIaWdobGlnaHQsCisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorICAgICAgICBBcHBIaWdo
bGlnaHQsCisjZW5kaWYKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICAgICAvLyBGSVhN
RTogU2VlIDxyZGFyOi8vcHJvYmxlbS84OTMzMzUyPi4gQWxzbywgcmVtb3ZlIHRoZSBQTEFURk9S
TShJT1NfRkFNSUxZKS1ndWFyZC4KICAgICAgICAgRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0
aXZlcywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNl
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmluZGV4
IDI2YzIzNjEyNzQwNTZmYWUwODZjNTk1Yzg4ZmQ5ZmE5MTZiNGQ3MDcuLjdkNGEwN2E2NTUyY2Nl
ODljODRhZDdkZjdhMjI5ZWI0MTg4YjhjMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclJlcGxhY2VkLmNwcApAQCAtMTQyLDYgKzE0MiwyMSBAQCBpbmxpbmUgc3RhdGljIGJv
b2wgZHJhZ2dlZENvbnRlbnRDb250YWluc1JlcGxhY2VkRWxlbWVudChjb25zdCBWZWN0b3I8UmVu
ZGVyZWREbwogQ29sb3IgUmVuZGVyUmVwbGFjZWQ6OmNhbGN1bGF0ZUhpZ2hsaWdodENvbG9yKCkg
Y29uc3QKIHsKICAgICBIaWdobGlnaHREYXRhIGhpZ2hsaWdodERhdGE7CisjaWYgRU5BQkxFKEFQ
UF9ISUdITElHSFRTKQorICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogZG9jdW1lbnQoKS5hcHBI
aWdobGlnaHRSZWdpc3RlcigpLm1hcCgpKSB7CisgICAgICAgIGZvciAoYXV0byYgcmFuZ2VEYXRh
IDogaGlnaGxpZ2h0LnZhbHVlLT5yYW5nZXNEYXRhKCkpIHsKKyAgICAgICAgICAgIGlmICghaGln
aGxpZ2h0RGF0YS5zZXRSZW5kZXJSYW5nZShyYW5nZURhdGEpKQorICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworCisgICAgICAgICAgICBhdXRvIHN0YXRlID0gaGlnaGxpZ2h0RGF0YS5oaWdobGln
aHRTdGF0ZUZvclJlbmRlcmVyKCp0aGlzKTsKKyAgICAgICAgICAgIGlmICghaXNIaWdobGlnaHRl
ZChzdGF0ZSwgaGlnaGxpZ2h0RGF0YSkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAg
ICAgICAgICAgIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9u
cyA9IHsgU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSB9OworICAgICAg
ICAgICAgICAgIHJldHVybiB0aGVtZSgpLnN5c3RlbUNvbG9yKENTU1ZhbHVlQXBwbGVTeXN0ZW1B
cHBIaWdobGlnaHRCYWNrZ3JvdW5kLCBzdHlsZUNvbG9yT3B0aW9ucyk7CisgICAgICAgIH0KKyAg
ICB9CisjZW5kaWYKICAgICBmb3IgKGF1dG8mIGhpZ2hsaWdodCA6IGRvY3VtZW50KCkuaGlnaGxp
Z2h0UmVnaXN0ZXIoKS5tYXAoKSkgewogICAgICAgICBmb3IgKGF1dG8mIHJhbmdlRGF0YSA6IGhp
Z2hsaWdodC52YWx1ZS0+cmFuZ2VzRGF0YSgpKSB7CiAgICAgICAgICAgICBpZiAoIWhpZ2hsaWdo
dERhdGEuc2V0UmVuZGVyUmFuZ2UocmFuZ2VEYXRhKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWUuY3BwCmluZGV4IDA0YTkzMGM4MGE3Yzc4ZGMwMTA4MDUyOTE1MDMyOWYzYWEz
YTEzMmIuLmRlMzMzNzU0ZGE2NjY4MmExNTgwMWQyZWEzZDVjMGEzZWFhMGUwNWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcApAQCAtMTM0OCw2ICsxMzQ4LDEzIEBA
IENvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9uCiAgICAgcmV0dXJuIENvbG9yOjp5ZWxsb3c7CiB9CiAK
KyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1B
cHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0Cit7
CisgICAgcmV0dXJuIENvbG9yOjp5ZWxsb3c7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJMRShUT1VD
SF9FVkVOVFMpCiAKIENvbG9yIFJlbmRlclRoZW1lOjp0YXBIaWdobGlnaHRDb2xvcigpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCmluZGV4IGJlMTk5MDNkNWFiNjQ2ZmFlOTQy
Y2MyMjlkNDFjMTQ4ZThkNGU3ZjUuLjhlYTliODk0NmNhYTJmNjYzYTYxNjdkODY3YWRiNzkyMGY4
ZTg1MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCkBAIC0xNTcsNiAr
MTU3LDkgQEAgcHVibGljOgogICAgIC8vIEhpZ2hsaWdodGluZyBjb2xvciBmb3Igc2VhcmNoIG1h
dGNoZXMuCiAgICAgQ29sb3IgdGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CiAKKyAgICAvLyBEZWZhdWx0IGhpZ2hsaWdodGluZyBj
b2xvciBmb3IgYXBwIGhpZ2hsaWdodHMuCisgICAgQ29sb3IgYXBwSGlnaGxpZ2h0Q29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKwogICAgIHZpcnR1YWwgQ29sb3Ig
ZGlzYWJsZWRUZXh0Q29sb3IoY29uc3QgQ29sb3ImIHRleHRDb2xvciwgY29uc3QgQ29sb3ImIGJh
Y2tncm91bmRDb2xvcikgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBDb2xvciBmb2N1c1Jp
bmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwpAQCAtMjc1LDcg
KzI3OCw5IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVM
aXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPikgY29uc3Q7CiAKICAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hs
aWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0KKyNpZiBF
TkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFwcEhpZ2hs
aWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisjZW5kaWYK
ICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0xpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KaW5kZXggZGNlYmNlNDg1ZTM2
MjM1OGM4NGNlNDIwYWQ4NmY0YTMyNjQyNDU5Yi4uN2YxYTA5ZjdmNmNiMGZiMDM1NDgzNDM2MzY2
Y2ZlYjE5NmUyMDBjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlP
Uy5tbQpAQCAtMTI4OSw3ICsxMjg5LDEwIEBAIHN0YXRpYyBjb25zdCBWZWN0b3I8Q1NTVmFsdWVJ
REFuZFNlbGVjdG9yPiYgY3NzVmFsdWVJRFNlbGVjdG9yTGlzdCgpCiAgICAgICAgICAgICB7IENT
U1ZhbHVlQXBwbGVTeXN0ZW1QaW5rLCBAc2VsZWN0b3Ioc3lzdGVtUGlua0NvbG9yKSB9LAogICAg
ICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtUHVycGxlLCBAc2VsZWN0b3Ioc3lzdGVtUHVy
cGxlQ29sb3IpIH0sCiAgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1SZWQsIEBzZWxl
Y3RvcihzeXN0ZW1SZWRDb2xvcikgfSwKLSAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3Rl
bVllbGxvdywgQHNlbGVjdG9yKHN5c3RlbVllbGxvd0NvbG9yKSB9CisgICAgICAgICAgICB7IENT
U1ZhbHVlQXBwbGVTeXN0ZW1ZZWxsb3csIEBzZWxlY3RvcihzeXN0ZW1ZZWxsb3dDb2xvcikgfSwK
KyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVT
eXN0ZW1BcHBIaWdobGlnaHRCYWNrZ3JvdW5kLCBAc2VsZWN0b3Ioc3lzdGVtWWVsbG93Q29sb3Ip
IH0KKyNlbmRpZgogICAgICAgICB9KTsKICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVNYWMuaAppbmRleCA0ZjU3OTY1OTM2OWVjNGI2ZTkwMzRmNzkwY2ZmMmUw
MjliNWM0ZTE1Li4xZDlmN2QzZTMzZmFlMDBjNWI3MjRkYjhiYTBmZmIzZDdkNzM5MDkxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaApAQCAtNjYsNiArNjYsOSBA
QCBwdWJsaWM6CiAgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3Jl
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsK
ICAgICBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPikgY29uc3QgZmluYWw7CiAgICAgQ29sb3IgcGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxp
Z2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyNp
ZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgQ29sb3IgcGxhdGZvcm1BcHBIaWdobGlnaHRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworI2VuZGlm
CiAKICAgICBTY3JvbGxiYXJDb250cm9sU2l6ZSBzY3JvbGxiYXJDb250cm9sU2l6ZUZvclBhcnQo
Q29udHJvbFBhcnQpIGZpbmFsIHsgcmV0dXJuIFNjcm9sbGJhckNvbnRyb2xTaXplOjpTbWFsbDsg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggMWE1
NTAzOWQ4OGUwY2Y5M2Y2Mjg3NmI1MjcyY2VjODk3MjY2NTJlYy4uOTEwODc1YjQ4MjUyOTNiYTA2
NGIwNmM1YWJmZmQzOTc2MGI2ZTUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZU1hYy5tbQpAQCAtNDc2LDYgKzQ3NiwxNCBAQCBDb2xvciBSZW5kZXJUaGVtZU1hYzo6
cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dAogICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIGZpbmRIaWdobGlnaHRDb2xv
cl0pOwogfQogCisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorQ29sb3IgUmVuZGVyVGhlbWVN
YWM6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlv
bnM+IG9wdGlvbnMpIGNvbnN0Cit7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBs
b2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VE
YXJrQXBwZWFyYW5jZSkpOworICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIHN5
c3RlbVllbGxvd0NvbG9yXSk7Cit9CisjZW5kaWYKKwogc3RhdGljIFNSR0JBPHVpbnQ4X3Q+IG1l
bnVCYWNrZ3JvdW5kQ29sb3IoKQogewogICAgIFJldGFpblB0cjxOU0JpdG1hcEltYWdlUmVwPiBv
ZmZzY3JlZW5SZXAgPSBhZG9wdE5TKFtbTlNCaXRtYXBJbWFnZVJlcCBhbGxvY10gaW5pdFdpdGhC
aXRtYXBEYXRhUGxhbmVzOm5pbCBwaXhlbHNXaWRlOjEgcGl4ZWxzSGlnaDoxCkBAIC03MDIsNiAr
NzEwLDEwIEBAIENvbG9yIFJlbmRlclRoZW1lTWFjOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNz
c1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPCiAgICAgICAgICAgICAgICAgcmV0dXJu
IEBzZWxlY3RvcihzeXN0ZW1SZWRDb2xvcik7CiAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBw
bGVTeXN0ZW1ZZWxsb3c6CiAgICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1Z
ZWxsb3dDb2xvcik7CisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorICAgICAgICAgICAgY2Fz
ZSBDU1NWYWx1ZUFwcGxlU3lzdGVtQXBwSGlnaGxpZ2h0QmFja2dyb3VuZDoKKyAgICAgICAgICAg
ICAgICByZXR1cm4gQHNlbGVjdG9yKHN5c3RlbVllbGxvd0NvbG9yKTsKKyNlbmRpZgogICAgICAg
ICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAg
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQ
cm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5
Q29jb2EubW0KaW5kZXggMjlmYTg5NTFkYWVmMzYzZWNlY2RmOTAyY2JlNzI5ZTA2ZWNiZWViOC4u
MTAyM2Y5Yzc3OTgyYmZjYjk4NDM0ZGQyODhlNzY4OTNkYzc2MDRjNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KQEAgLTU0Myw2
ICs1NDMsMTcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmFkZEFjdGl2aXR5U3RhdGVVcGRhdGVDb21w
bGV0aW9uSGFuZGxlcihDb21wbGV0aW9uSGFuZGxlcjx2b2kKICAgICBtX2FjdGl2aXR5U3RhdGVV
cGRhdGVDYWxsYmFja3MuYXBwZW5kKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAor
I2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKK3ZvaWQgV2ViUGFnZVByb3h5OjpjcmVhdGVBcHBI
aWdobGlnaHRJblNlbGVjdGVkUmFuZ2UoYm9vbCBpbkN1cnJlbnRHcm91cCkKK3sKKyAgICBpZiAo
IWhhc1J1bm5pbmdQcm9jZXNzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkNyZWF0ZUFwcEhpZ2hsaWdodEluU2VsZWN0ZWRSYW5nZShpbkN1cnJlbnRH
cm91cCkpOworfQorCisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBN
RVNTQUdFX0NIRUNLX0NPTVBMRVRJT04KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCmluZGV4IDBmODc0Mjg5OTBkZTAwMTM0MzY3MmUyNDk0ODk1YWQxM2Q0MzMwMjguLmU1
Y2Q3ODdmMmM0YWEwYWVhNDNmNmVhYjc5N2Y4Zjk5NzBmZGNiMGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNjYyMSw2ICs2NjIxLDE2IEBAIHZvaWQgV2Vi
UGFnZVByb3h5Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChjb25zdCBXZWJDb250ZXh0TWVudUl0
ZW1EYXRhJiBpdGVtKQogICAgICAgICBUZXh0Q2hlY2tlcjo6dG9nZ2xlU3BlbGxpbmdVSUlzU2hv
d2luZygpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2lmIEVOQUJMRShBUFBfSElHSExJR0hU
UykKKyAgICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdBZGRIaWdobGln
aHRUb05ld0dyb3VwKSB7CisgICAgICAgIGNyZWF0ZUFwcEhpZ2hsaWdodEluU2VsZWN0ZWRSYW5n
ZShmYWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGl0ZW0uYWN0aW9uKCkg
PT0gQ29udGV4dE1lbnVJdGVtVGFnQWRkSGlnaGxpZ2h0VG9DdXJyZW50R3JvdXApIHsKKyAgICAg
ICAgY3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJhbmdlKHRydWUpOworICAgICAgICByZXR1
cm47CisgICAgfQorI2VuZGlmCiAgICAgaWYgKGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJ
dGVtVGFnTGVhcm5TcGVsbGluZyB8fCBpdGVtLmFjdGlvbigpID09IENvbnRleHRNZW51SXRlbVRh
Z0lnbm9yZVNwZWxsaW5nKQogICAgICAgICArK21fcGVuZGluZ0xlYXJuT3JJZ25vcmVXb3JkTWVz
c2FnZUNvdW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDg3
OWY3MzJiMTFjYjEyMzk3Mzg2NThlOGU1OGZiODdjNTAzNGYyYjguLmZlNDUyOTc1MDZmM2QzOGIw
YTZiYzE3ZjUzZTdkZWNhOGY4OGFiMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCkBAIC0xODIzLDYgKzE4MjMsMTAgQEAgcHVibGljOgogICAgIHZvaWQgcmVxdWVzdFNw
ZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbihjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lzaW9u
KT4mJik7CiAgICAgdm9pZCByZXF1ZXN0U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQnlEZWZh
dWx0QWN0aW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJik7CiAKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgdm9p
ZCBjcmVhdGVBcHBIaWdobGlnaHRJblNlbGVjdGVkUmFuZ2UoYm9vbCk7CisjZW5kaWYKKwogcHJp
dmF0ZToKICAgICBXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYsIFdlYlByb2Nlc3NQcm94eSYsIFJl
ZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggYzUxNDdmNDMwNDc5MWFjZjY2M2QyMTQ1OWEyZTYzMWE0
MzM2ZDc0Yi4uZDA5NTBmMjY0N2QzMTExMjYzYmVlZmVkOWVhNDM1Y2Y1NmEyODZiMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tCkBAIC04NjE1LDEyICs4NjE1LDEyIEBAIC0gKHZvaWQpc2V0dXBBcHBIaWdobGln
aHRNZW51cwogCiAtICh2b2lkKWNyZWF0ZUhpZ2hsaWdodEluQ3VycmVudEdyb3VwV2l0aFJhbmdl
OihpZClzZW5kZXIKIHsKLSAgICAvLyBGSVhNRTogQWRkIEhpZ2hsaWdodCBsb2dpYy4KKyAgICBf
cGFnZS0+Y3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJhbmdlKHRydWUpOwogfQogCiAtICh2
b2lkKWNyZWF0ZUhpZ2hsaWdodEluTmV3R3JvdXBXaXRoUmFuZ2U6KGlkKXNlbmRlcgogewotICAg
IC8vIEZJWE1FOiBBZGQgSGlnaGxpZ2h0IGxvZ2ljLgorICAgIF9wYWdlLT5jcmVhdGVBcHBIaWdo
bGlnaHRJblNlbGVjdGVkUmFuZ2UoZmFsc2UpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggOTU3MGVjM2JhMDRhZTNhNzAz
ODM0OTU4ODBkMDNiMjI1YmQ2MWQyYi4uMGUwYzhkNDEyNDU5Yzg3ZmQ2MTZkODA4NjY4MWE4Mzky
ZmJjOTUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKQEAgLTE1Niw2ICsxNTYsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRGF0YVRyYW5zZmVyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9EYXRhYmFzZU1hbmFnZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50RnJhZ21lbnQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0RvY3VtZW50TG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudE1hcmtlckNv
bnRyb2xsZXIuaD4KQEAgLTE4Niw2ICsxODcsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTFBs
dWdJbkVsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxTZWxlY3RFbGVtZW50Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvSGlnaGxpZ2h0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9IaWdobGlnaHRSZWdpc3Rl
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSGlzdG9yeUNvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0hpc3RvcnlJdGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IaXRUZXN0UmVzdWx0Lmg+
CkBAIC0yMjksNiArMjMyLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TaGFkb3dSb290Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZm
ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1N0YXRpY1JhbmdlLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TdHlsZVByb3BlcnRpZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1YmZyYW1lTG9hZGVyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TdWJzdGl0dXRlRGF0YS5oPgpAQCAtNzAzMyw2ICs3MDM3LDI2
IEBAIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgV2ViUGFnZTo6ZW5zdXJlUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5KCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUF9ISUdITElH
SFRTKQorYm9vbCBXZWJQYWdlOjpjcmVhdGVBcHBIaWdobGlnaHRJblNlbGVjdGVkUmFuZ2UoYm9v
bCBpbkN1cnJlbnRHcm91cCkKK3sKKyAgICBhdXRvIGRvY3VtZW50ID0gbWFrZVJlZlB0cihtX3Bh
Z2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpLmRvY3VtZW50KCkpOwor
CisgICAgYXV0byBmcmFtZSA9IG1ha2VSZWZQdHIoZG9jdW1lbnQtPmZyYW1lKCkpOworICAgIGlm
ICghZnJhbWUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gc2VsZWN0aW9uUmFu
Z2UgPSBmcmFtZS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKTsK
KyAgICBpZiAoIXNlbGVjdGlvblJhbmdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBk
b2N1bWVudC0+YXBwSGlnaGxpZ2h0UmVnaXN0ZXIoKS5hZGRBcHBIaWdobGlnaHQoU3RhdGljUmFu
Z2U6OmNyZWF0ZShzZWxlY3Rpb25SYW5nZS52YWx1ZSgpKSk7CisKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKyNlbmRpZgorCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CmluZGV4IGE3NDhiZTIxMzVlM2QyMmI0MGRiMDVhMTYzYWVlMDBhZDUzNDI0ZDEuLjAwNzZhNDMz
MzdiYTMxNGNkMWFhMjQyZTc3N2I0NzQ3NmMzMTlkOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEzNjYsNiArMTM2NiwxMCBAQCBwdWJsaWM6CiAg
ICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBlbnN1cmVSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkoKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorICAgIGJv
b2wgY3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJhbmdlKGJvb2wpOworI2VuZGlmCisKIHBy
aXZhdGU6CiAgICAgV2ViUGFnZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycyYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMTU1ZjFmNGE0YTk2Mjg5ZTEwODcxZjIy
YTU5NTUwNzBlZDBlZTU4ZC4uZjYyYzZmM2YzZjhlMjBjOThmNzkyZGRhMjQ0MDI0NDZiZmM2Y2Nl
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCkBAIC02MTYsNCArNjE2LDkgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5n
Q29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUK
IAogICAgIFNldEhhc1Jlc291cmNlTG9hZENsaWVudChib29sIGhhcykKICAgICBTZXRDYW5Vc2VD
cmVkZW50aWFsU3RvcmFnZShib29sIGNhblVzZSkKKworI2lmIEVOQUJMRShBUFBfSElHSExJR0hU
UykKKyAgICBDcmVhdGVBcHBIaWdobGlnaHRJblNlbGVjdGVkUmFuZ2UoYm9vbCBpbkN1cnJlbnRH
cm91cCkKKyNlbmRpZgorCiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggOWUzNWQwMDM1ZDYzZDRiZDU2MmYzMmQ0NjkyODZiOGEzZWNjNmM3Yy4u
Nzk4NjQ1ODFjZWY4MmM0OGUwNjgyYmFkYmU1ODliYmJmNGZhMzZiNiAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIw
LTExLTMwICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAg
ICAgQ3JlYXRlIGFuZCBkcmF3IGFwcCBoaWdobGlnaHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkzNjUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9N
YXJrZWRUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorCiAyMDIwLTEx
LTE5ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFj
T1NdIElzc3VlIHNhbmRib3ggZXh0ZW5zaW9uIHRvIFdlYiBJbnNwZWN0b3Igc2VydmljZQpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL01hcmtlZFRleHQuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL01hcmtlZFRleHQuY3BwCmluZGV4
IDZhOGU1NzI5MWJmNWQwMTY3NjhkOGUyOTJlMmI4YzY3YWMwMDg1ZmIuLjdmYTZhZmE2Y2Y1Yjhl
NGYwNzcyOWNiOWFhZjkwOGU3ZmJkYzM1OTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9NYXJrZWRUZXh0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvTWFya2VkVGV4dC5jcHAKQEAgLTU3LDYgKzU3LDEwIEBAIHN0ZDo6b3N0
cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIG9zLCBNYXJrZWRUZXh0OjpUeXBlIHR5cGUp
CiAgICAgICAgIHJldHVybiBvcyA8PCAiVGV4dE1hdGNoIjsKICAgICBjYXNlIE1hcmtlZFRleHQ6
OkhpZ2hsaWdodDoKICAgICAgICAgcmV0dXJuIG9zIDw8ICJIaWdobGlnaHQiOworI2lmIEVOQUJM
RShBUFBfSElHSExJR0hUUykKKyAgICBjYXNlIE1hcmtlZFRleHQ6OkFwcEhpZ2hsaWdodDoKKyAg
ICAgICAgcmV0dXJuIG9zIDw8ICJBcHBIaWdobGlnaHQiOworI2VuZGlmCiAgICAgY2FzZSBNYXJr
ZWRUZXh0OjpVbm1hcmtlZDoKICAgICAgICAgcmV0dXJuIG9zIDw8ICJVbm1hcmtlZCI7CiAgICAg
fQo=
</data>
<flag name="commit-queue"
          id="432177"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415084</attachid>
            <date>2020-11-30 17:56:17 -0800</date>
            <delta_ts>2020-11-30 18:13:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219365-20201130175616.patch</filename>
            <type>text/plain</type>
            <size>30928</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QzYzFmNDI4NGY0ZmI3
ODRjOTEyZTIxNjUwMzA2NGNiNGZkYTExMy4uODU1N2M4NzVhN2IwYWYyNzdlODQzNDMyNjVkNmE5
NTE1MDc0OWUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTExLTMwICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGFu
ZCBkcmF3IGFwcCBoaWdobGlnaHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTkzNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDcmVhdGUgYSBzZXBhcmF0ZSBoaWdobGlnaHQgcmVnaXN0ZXIgZm9yIGFw
cCBoaWdobGlnaHRzIHNvIHRoYXQgdGhlcmUgaXMgYSBjbGVhciBzZXBhcmF0aW9uCisgICAgICAg
IHdpdGggbm8gcmlzayBvZiB3ZWIgY29udGVudCBhY2Nlc3NpbmcgdGhlIHdyb25nIGhpZ2hsaWdo
dHMuIEV4dGVuZCByZW5kZXJpbmcgdG8gaW5jbHVkZSB0aGUgCisgICAgICAgIGFwcCBoaWdobGln
aHRzIHdpdGggdGhlIGN1cnJlbnQgZGVmYXVsdCBzZXR0aW5ncy4gCisKKyAgICAgICAgKiBNb2R1
bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaDoKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRSZWdpc3Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSZWdpc3Rl
cjo6YXBwSGlnaGxpZ2h0S2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJlZ2lzdGVy
OjphZGRBcHBIaWdobGlnaHQpOgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dFJlZ2lzdGVyLmg6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YXBwSGlnaGxpZ2h0UmVnaXN0
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNvbGxlY3RSYWdlRGF0YUZyb21SZWdp
c3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSGlnaGxpZ2h0UG9zaXRp
b25zKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vU3RhdGljUmFu
Z2UuaDoKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVk
KToKKyAgICAgICAgKiByZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpyZW5kZXJlckFmdGVyT2Zmc2V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4
dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpyZXNvbHZlU3R5bGVG
b3JNYXJrZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OmNvbGxlY3RN
YXJrZWRUZXh0c0ZvckhpZ2hsaWdodHMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9NYXJr
ZWRUZXh0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGhlbWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpjc3NWYWx1ZUlEU2VsZWN0b3JM
aXN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU1hYzo6cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IgY29uc3QpOgorCiAyMDIwLTExLTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgV29ya2xldC5hZGRNb2R1bGUo
KSBzaG91bGQgcmVqZWN0IHByb21pc2Ugd2l0aCBhbiBBYm9ydEVycm9yIHdoZW4gdGhlIG5ldHdv
cmsgbG9hZCBmYWlscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjNGI0NzFhNGViODIwZjUyMjc2MmIyYTE4M2YzZGJi
Nzc3N2M5YjMyLi45OGQzNmRlNGQ3NDcxNzU5MGIxMGQ1NTMxNzYxNjc4MWI5MDg1ZmE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTExLTMwICBNZWdhbiBHYXJkbmVyICA8bWVnYW5f
Z2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGFuZCBkcmF3IGFwcCBoaWdobGln
aHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkz
NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIYW5k
bGUgdGhlIGNyZWF0aW9uIG9mIEFwcCBIaWdobGlnaHRzIGZyb20gc2VsZWN0aW9ucyB3aGVuIHRo
ZSBjb250ZXh0IG1lbnUgaXRlbSBpcyBzZWxlY3RlZC4gCisgICAgICAgIFRoaXMgcGF0Y2ggd2ls
bCBhZGQgdGhlIGhpZ2hsaWdodHMgdG8gdGhlIERvY3VtZW50J3MgYXBwIEhpZ2hsaWdodCByZWdp
c3RlciwgYW5kIGhhbmRsZSBkcmF3aW5nCisgICAgICAgIHRoZW0gaW4gSW5saW5lVGV4dEJveC4g
TGF0ZXIgcGF0Y2hlcyB3aWxsIGhhbmRsZSB0aGUgcGVyc2lzdGVudCBzdG9yYWdlIGFuZCByZXBv
cHVsYXRpb24gb2YgYXBwCisgICAgICAgIGhpZ2hsaWdodHMgb24gbGF1bmNoIG9yIHJlbG9hZCBv
ZiBhIHBhZ2UuIAorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0ZUFwcEhpZ2hsaWdodElu
U2VsZWN0ZWRSYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNyZWF0ZUhpZ2hsaWdodEluQ3Vy
cmVudEdyb3VwV2l0aFJhbmdlOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNyZWF0ZUhp
Z2hsaWdodEluTmV3R3JvdXBXaXRoUmFuZ2U6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjcmVhdGVBcHBIaWdo
bGlnaHRJblNlbGVjdGVkUmFuZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46
CisKIDIwMjAtMTEtMTkgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFttYWNPU10gSXNzdWUgc2FuZGJveCBleHRlbnNpb24gdG8gV2ViIEluc3BlY3RvciBz
ZXJ2aWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oCmlu
ZGV4IGYwZGZhNTY4MjI4YzgzYjIwZWJlOGEyZjkzNWVmMGY1ZGU3NTMwZmQuLjlkOThjODcxNGVi
YzA1YTQ5ZDdkOTZhMzJlZjRiMGMyZjlkMjUxNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oCkBAIC01NCw3ICs1NCw3IEBAIHN0cnVjdCBIaWdobGln
aHRSYW5nZURhdGEgOiBSZWZDb3VudGVkPEhpZ2hsaWdodFJhbmdlRGF0YT4sIHB1YmxpYyBDYW5N
YWtlV2Vha1B0CiAKIGNsYXNzIEhpZ2hsaWdodCA6IHB1YmxpYyBSZWZDb3VudGVkPEhpZ2hsaWdo
dD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0PiBjcmVhdGUoU3RhdGljUmFu
Z2UmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEhpZ2hsaWdodD4gY3JlYXRlKFN0
YXRpY1JhbmdlJik7CiAgICAgdm9pZCBjbGVhckZyb21TZXRMaWtlKCk7CiAgICAgYm9vbCBhZGRU
b1NldExpa2UoU3RhdGljUmFuZ2UmKTsKICAgICBib29sIHJlbW92ZUZyb21TZXRMaWtlKGNvbnN0
IFN0YXRpY1JhbmdlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hs
aWdodC9IaWdobGlnaHRSZWdpc3Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hs
aWdodC9IaWdobGlnaHRSZWdpc3Rlci5jcHAKaW5kZXggOWUyMGI4NjkzNDI1Y2JjYWEwNmNjYjE0
NGZlMDJkM2NmNjI4NWU4Yi4uMmVmMTBlM2IzOTAwN2Q5OTIwZjAyMzY5NzMyMzVhZTBlNGJmZDcz
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0
UmVnaXN0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hs
aWdodFJlZ2lzdGVyLmNwcApAQCAtNTMsNCArNTMsMTcgQEAgYm9vbCBIaWdobGlnaHRSZWdpc3Rl
cjo6cmVtb3ZlKGNvbnN0IFN0cmluZyYga2V5KQogICAgIHJldHVybiBtX21hcC5yZW1vdmUoa2V5
KTsKIH0KIAorQVNDSUlMaXRlcmFsIEhpZ2hsaWdodFJlZ2lzdGVyOjphcHBIaWdobGlnaHRLZXko
KQoreworICAgIHJldHVybiAiYXBwSGlnaGxpZ2h0S2V5Il9zOworfQorCit2b2lkIEhpZ2hsaWdo
dFJlZ2lzdGVyOjphZGRBcHBIaWdobGlnaHQoUmVmPFN0YXRpY1JhbmdlPiYmIHZhbHVlKQorewor
ICAgIGlmIChtX21hcC5jb250YWlucyhhcHBIaWdobGlnaHRLZXkoKSkpCisgICAgICAgIG1fbWFw
LmdldChhcHBIaWdobGlnaHRLZXkoKSktPmFkZFRvU2V0TGlrZSh2YWx1ZSk7CisgICAgZWxzZQor
ICAgICAgICBzZXRGcm9tTWFwTGlrZShhcHBIaWdobGlnaHRLZXkoKSwgSGlnaGxpZ2h0OjpjcmVh
dGUodmFsdWUpKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9o
aWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGln
aGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmgKaW5kZXggNDA1MzBmODM2MjNhMzMzYjIwY2ZhNmZk
NWRjMGY1NjMzNDQxMDQ2MS4uZDUyOTFmZGE0ZDk1MzlkMzBiN2UzNjNjZTYzYTBlMjgzZDBlODNm
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0
UmVnaXN0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGln
aHRSZWdpc3Rlci5oCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IERPTU1hcEFkYXB0ZXI7CiBjbGFzcyBET01TdHJpbmc7CiBjbGFzcyBIaWdobGlnaHQ7CitjbGFz
cyBTdGF0aWNSYW5nZTsKIAogY2xhc3MgSGlnaGxpZ2h0UmVnaXN0ZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxIaWdobGlnaHRSZWdpc3Rlcj4gewogcHVibGljOgpAQCAtNDMsNiArNDQsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRGcm9tTWFwTGlrZShTdHJpbmcmJiwgUmVmPEhpZ2hsaWdodD4mJik7
CiAgICAgdm9pZCBjbGVhcigpOwogICAgIGJvb2wgcmVtb3ZlKGNvbnN0IFN0cmluZyYpOworCisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRBcHBIaWdobGlnaHQoUmVmPFN0YXRpY1JhbmdlPiYm
KTsKKyAgICBzdGF0aWMgQVNDSUlMaXRlcmFsIGFwcEhpZ2hsaWdodEtleSgpOwogICAgIAogICAg
IGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBSZWY8SGlnaGxpZ2h0Pj4mIG1hcCgpIGNvbnN0IHsgcmV0
dXJuIG1fbWFwOyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzVhNTIyYzJhYmViMGQxNmQ1YzY4ODZjNzE3MDY1NzI0
OTIwYzk0ZS4uNzBmMDc0MjEzMzQxYjNmNjU5NTdmNDk2MzM2NmM1Yjg2ZTJmZWU0MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTIxMCw2ICsxMjEwLDggQEAKIAkJNDNFREQ2N0YxQjQ4NURCRjAwNjQwRTc1IC8qIENvbWJpbmVk
RmlsdGVyc0FscGhhYmV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0M0VERDY3RDFCNDg1REJGMDA2NDBFNzUgLyogQ29tYmluZWRGaWx0ZXJzQWxwaGFi
ZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0
NDBFREJEMTI1NUUxMTZDMDAzMDBCQTcgLyogTG9jYWxpemFibGUuc3RyaW5ncyBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQ2RUU0RTgyNTVFMEQ5MjAw
NDU0NDYzIC8qIExvY2FsaXphYmxlLnN0cmluZ3MgKi87IH07CiAJCTQ0MTUyOTJFMEUxQUU4QTAw
MEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDE1MjkyQzBFMUFFOEEwMDBDNEEyRDAgLyogSFRN
TFBsdWdJbkltYWdlRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTQ0MzBEMDBCMjU3NUE4M0UwMDQ2RDQwMSAvKiBIaWdobGlnaHQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0RTg4RTUxMjM2
QTVDOEQwMDlCNDg0NyAvKiBIaWdobGlnaHQuaCAqLzsgfTsKKwkJNDQzMEQwMEQyNTc1QThBNTAw
NDZENDAxIC8qIEhpZ2hsaWdodFJlZ2lzdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NEU4OEU1MDIzNkE1NkFDMDA5QjQ4NDcgLyogSGlnaGxpZ2h0
UmVnaXN0ZXIuaCAqLzsgfTsKIAkJNDQ1Nzc1RTUyMDQ3MkY3MzAwOERDRTVEIC8qIExvY2FsRGVm
YXVsdFN5c3RlbUFwcGVhcmFuY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ0NTc3NUU0MjA0NzJGNzMwMDhEQ0U1RCAvKiBMb2NhbERlZmF1bHRTeXN0
ZW1BcHBlYXJhbmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNDQ2M0NGNjgyMjEyRkE2ODAwMUE4NTc3IC8qIERhdGFEZXRlY3RvcnNDb3JlU29m
dExpbmsubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
Qzc5NDFFMjFDNTZDMjkzMDBBNEM1OEUgLyogRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5tbSAq
LzsgfTsKIAkJNDQ2NUQ3QkQyNTM2RDA1RTAwMTY2NjZEIC8qIFNlbGVjdGlvblJhbmdlRGF0YS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDRCMzhCRjQy
NTM2OTAxQTAwQTQ0NThEIC8qIFNlbGVjdGlvblJhbmdlRGF0YS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zMjA1Myw3ICszMjA1NSw5IEBACiAJ
CQkJNTE1QkUxOUMxRDU0RjZDMTAwREQ3QzY4IC8qIEhJREdhbWVwYWQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUxMEE5MURBMjRDRjNEOEMwMEJGRDg5QyAvKiBISURHYW1lcGFkRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTE1QkUxOUUxRDU0RjZDMTAwREQ3QzY4IC8qIEhJREdhbWVwYWRQ
cm92aWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDQzMEQwMEIyNTc1QTgzRTAwNDZENDAxIC8q
IEhpZ2hsaWdodC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDRkFCQkQxOEMwQUY3ODAwNkY4NDUw
IC8qIEhpZ2hsaWdodERhdGEuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ0MzBEMDBEMjU3NUE4QTUw
MDQ2RDQwMSAvKiBIaWdobGlnaHRSZWdpc3Rlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5NEQx
NTQwQzI3NUM4QjAwNkJDNjE3IC8qIEhpc3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3RENF
MjAyMTA4MDdDNzUwMDU3RDM5NCAvKiBIaXN0b3J5Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTE3NDFEMTEwQjA3MjU5QTAwRUQ0NDJDIC8qIEhpc3RvcnlJdGVtLmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggOTk3YjQyMzk5
YTE5OTJlZGEwODk0ZjUwOWQxNDAwZTFiYzkyN2I4MS4uMGZjMTI3MTcwMDI0ODBiNjkxNWM3NWEx
NzZmYTA4Mjc1MTNjNDI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVl
S2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4K
QEAgLTI1OSw2ICsyNTksNyBAQCB3aW5kb3d0ZXh0CiAtYXBwbGUtc3lzdGVtLXB1cnBsZQogLWFw
cGxlLXN5c3RlbS1yZWQKIC1hcHBsZS1zeXN0ZW0teWVsbG93CistYXBwbGUtc3lzdGVtLWFwcC1o
aWdobGlnaHQtYmFja2dyb3VuZAogI2VuZGlmCiAjaWYgZGVmaW5lZChXVEZfUExBVEZPUk1fTUFD
KSAmJiBXVEZfUExBVEZPUk1fTUFDCiAtYXBwbGUtc3lzdGVtLWFsdGVybmF0ZS1zZWxlY3RlZC10
ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA2NDZlZTdlZWMwMzNjOTAzOTNlZjAzOGU0
MzdlMDVjNmZlY2NjOWZkLi5kMGQ1YTVjOGUwNzg1OGE5Njk0NTVkMWUwZmVmNjBhMWJjODhlYWMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTI3NzQsMjEgKzI3NzQsMzQgQEAgSGlnaGxp
Z2h0UmVnaXN0ZXImIERvY3VtZW50OjpoaWdobGlnaHRSZWdpc3RlcigpCiAgICAgcmV0dXJuICpt
X2hpZ2hsaWdodFJlZ2lzdGVyOwogfQogCi12b2lkIERvY3VtZW50Ojp1cGRhdGVIaWdobGlnaHRQ
b3NpdGlvbnMoKQorSGlnaGxpZ2h0UmVnaXN0ZXImIERvY3VtZW50OjphcHBIaWdobGlnaHRSZWdp
c3RlcigpCiB7Ci0gICAgVmVjdG9yPFdlYWtQdHI8SGlnaGxpZ2h0UmFuZ2VEYXRhPj4gcmFuZ2Vz
RGF0YTsKLSAgICBpZiAobV9oaWdobGlnaHRSZWdpc3RlcikgewotICAgICAgICBmb3IgKGF1dG8m
IGhpZ2hsaWdodCA6IG1faGlnaGxpZ2h0UmVnaXN0ZXItPm1hcCgpKSB7Ci0gICAgICAgICAgICBm
b3IgKGF1dG8mIHJhbmdlRGF0YSA6IGhpZ2hsaWdodC52YWx1ZS0+cmFuZ2VzRGF0YSgpKSB7Ci0g
ICAgICAgICAgICAgICAgaWYgKHJhbmdlRGF0YS0+c3RhcnRQb3NpdGlvbiAmJiByYW5nZURhdGEt
PmVuZFBvc2l0aW9uKQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAg
ICAgICBpZiAoJnJhbmdlRGF0YS0+cmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCkudHJlZVNjb3BlKCkg
IT0gJnJhbmdlRGF0YS0+cmFuZ2UtPmVuZENvbnRhaW5lcigpLnRyZWVTY29wZSgpKQotICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICByYW5nZXNEYXRhLmFwcGVu
ZChtYWtlV2Vha1B0cihyYW5nZURhdGEucHRyKCkpKTsKLSAgICAgICAgICAgIH0KKyAgICBpZiAo
IW1fYXBwSGlnaGxpZ2h0UmVnaXN0ZXIpCisgICAgICAgIG1fYXBwSGlnaGxpZ2h0UmVnaXN0ZXIg
PSBIaWdobGlnaHRSZWdpc3Rlcjo6Y3JlYXRlKCk7CisgICAgcmV0dXJuICptX2FwcEhpZ2hsaWdo
dFJlZ2lzdGVyOworfQorCit2b2lkIERvY3VtZW50Ojpjb2xsZWN0UmFuZ2VEYXRhRnJvbVJlZ2lz
dGVyKFZlY3RvcjxXZWFrUHRyPEhpZ2hsaWdodFJhbmdlRGF0YT4+JiByYW5nZXNEYXRhLCBSZWZQ
dHI8SGlnaGxpZ2h0UmVnaXN0ZXI+IGhpZ2hsaWdodFJlZ2lzdGVyKQoreworICAgIGZvciAoYXV0
byYgaGlnaGxpZ2h0IDogaGlnaGxpZ2h0UmVnaXN0ZXItPm1hcCgpKSB7CisgICAgICAgIGZvciAo
YXV0byYgcmFuZ2VEYXRhIDogaGlnaGxpZ2h0LnZhbHVlLT5yYW5nZXNEYXRhKCkpIHsKKyAgICAg
ICAgICAgIGlmIChyYW5nZURhdGEtPnN0YXJ0UG9zaXRpb24gJiYgcmFuZ2VEYXRhLT5lbmRQb3Np
dGlvbikKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGlmICgmcmFuZ2VE
YXRhLT5yYW5nZS0+c3RhcnRDb250YWluZXIoKS50cmVlU2NvcGUoKSAhPSAmcmFuZ2VEYXRhLT5y
YW5nZS0+ZW5kQ29udGFpbmVyKCkudHJlZVNjb3BlKCkpCisgICAgICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgICAgICByYW5nZXNEYXRhLmFwcGVuZChtYWtlV2Vha1B0cihyYW5nZURhdGEu
cHRyKCkpKTsKICAgICAgICAgfQogICAgIH0KLSAgICAKK30KKwordm9pZCBEb2N1bWVudDo6dXBk
YXRlSGlnaGxpZ2h0UG9zaXRpb25zKCkKK3sKKyAgICBWZWN0b3I8V2Vha1B0cjxIaWdobGlnaHRS
YW5nZURhdGE+PiByYW5nZXNEYXRhOworICAgIGlmIChtX2hpZ2hsaWdodFJlZ2lzdGVyKQorICAg
ICAgICBjb2xsZWN0UmFuZ2VEYXRhRnJvbVJlZ2lzdGVyKHJhbmdlc0RhdGEsIG1faGlnaGxpZ2h0
UmVnaXN0ZXIpOworICAgIGlmIChtX2FwcEhpZ2hsaWdodFJlZ2lzdGVyKQorICAgICAgICBjb2xs
ZWN0UmFuZ2VEYXRhRnJvbVJlZ2lzdGVyKHJhbmdlc0RhdGEsIG1fYXBwSGlnaGxpZ2h0UmVnaXN0
ZXIpOworCiAgICAgZm9yIChhdXRvJiB3ZWFrUmFuZ2VEYXRhIDogcmFuZ2VzRGF0YSkgewogICAg
ICAgICBpZiAoYXV0byogcmFuZ2VEYXRhID0gd2Vha1JhbmdlRGF0YS5nZXQoKSkgewogICAgICAg
ICAgICAgVmlzaWJsZVNlbGVjdGlvbiB2aXNpYmxlU2VsZWN0aW9uKHJhbmdlRGF0YS0+cmFuZ2Up
OwpAQCAtMjc5Nyw3ICsyODEwLDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlSGlnaGxpZ2h0UG9z
aXRpb25zKCkKICAgICAgICAgICAgIGlmICghcmFuZ2VEYXRhLT5zdGFydFBvc2l0aW9uLmhhc1Zh
bHVlKCkpCiAgICAgICAgICAgICAgICAgc3RhcnRQb3NpdGlvbiA9IHZpc2libGVTZWxlY3Rpb24u
dmlzaWJsZVN0YXJ0KCkuZGVlcEVxdWl2YWxlbnQoKTsKICAgICAgICAgICAgIGlmICghcmFuZ2VE
YXRhLT5lbmRQb3NpdGlvbi5oYXNWYWx1ZSgpKQotICAgICAgICAgICAgICAgIGVuZFBvc2l0aW9u
ID0gdmlzaWJsZVNlbGVjdGlvbi52aXNpYmxlRW5kKCkuZGVlcEVxdWl2YWxlbnQoKTsgLy8gPE1N
Rz4gc3dpdGNoIHRvIEVORAorICAgICAgICAgICAgICAgIGVuZFBvc2l0aW9uID0gdmlzaWJsZVNl
bGVjdGlvbi52aXNpYmxlRW5kKCkuZGVlcEVxdWl2YWxlbnQoKTsKICAgICAgICAgICAgIGlmICgh
d2Vha1JhbmdlRGF0YS5nZXQoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA4NGU1OGNjMTM1ZGRiMjVkYTNhN2E4MzhlNzRj
M2U3OGY0MDdjOWQ3Li5lMTFlNDI5NmVjMjJiYTJmNGI3ZmM3ZDcxYjExYWUxYTUzYTk3Y2IzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaApAQCAtMjMxLDYgKzIzMSw3IEBAIGNsYXNzIFhQYXRoTlNSZXNv
bHZlcjsKIGNsYXNzIFhQYXRoUmVzdWx0OwogCiBzdHJ1Y3QgQm91bmRhcnlQb2ludDsKK3N0cnVj
dCBIaWdobGlnaHRSYW5nZURhdGE7CiBzdHJ1Y3QgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhOwog
CiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRXhjZXB0aW9uT3I7CkBAIC0xNTc0LDYgKzE1NzUs
NyBAQCBwdWJsaWM6CiAgICAgVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIqIHRleHRNYW5pcHVs
YXRpb25Db250cm9sbGVySWZFeGlzdHMoKSB7IHJldHVybiBtX3RleHRNYW5pcHVsYXRpb25Db250
cm9sbGVyLmdldCgpOyB9CiAgICAgICAgIAogICAgIEhpZ2hsaWdodFJlZ2lzdGVyJiBoaWdobGln
aHRSZWdpc3RlcigpOworICAgIFdFQkNPUkVfRVhQT1JUIEhpZ2hsaWdodFJlZ2lzdGVyJiBhcHBI
aWdobGlnaHRSZWdpc3RlcigpOwogICAgIHZvaWQgdXBkYXRlSGlnaGxpZ2h0UG9zaXRpb25zKCk7
CiAKICAgICBib29sIGFsbG93c0NvbnRlbnRKYXZhU2NyaXB0KCkgY29uc3Q7CkBAIC0xNzAxLDYg
KzE3MDMsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBwbGF0Zm9ybVN1c3BlbmRPclN0b3BBY3Rp
dmVET01PYmplY3RzKCk7CiAKKyAgICB2b2lkIGNvbGxlY3RSYW5nZURhdGFGcm9tUmVnaXN0ZXIo
VmVjdG9yPFdlYWtQdHI8SGlnaGxpZ2h0UmFuZ2VEYXRhPj4mLCBSZWZQdHI8SGlnaGxpZ2h0UmVn
aXN0ZXI+KTsKKwogICAgIGJvb2wgaXNCb2R5UG90ZW50aWFsbHlTY3JvbGxhYmxlKEhUTUxCb2R5
RWxlbWVudCYpOwogCiAgICAgdm9pZCBkaWRMb2dNZXNzYWdlKGNvbnN0IFdURkxvZ0NoYW5uZWwm
LCBXVEZMb2dMZXZlbCwgVmVjdG9yPEpTT05Mb2dWYWx1ZT4mJikgZmluYWw7CkBAIC0xOTMxLDYg
KzE5MzUsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgICAgIAogICAgIFJlZlB0cjxIaWdobGln
aHRSZWdpc3Rlcj4gbV9oaWdobGlnaHRSZWdpc3RlcjsKKyAgICBSZWZQdHI8SGlnaGxpZ2h0UmVn
aXN0ZXI+IG1fYXBwSGlnaGxpZ2h0UmVnaXN0ZXI7CiAKICAgICBUaW1lciBtX3Zpc3VhbFVwZGF0
ZXNTdXBwcmVzc2lvblRpbWVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3Rh
dGljUmFuZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNSYW5nZS5oCmluZGV4IDc2OTAx
MTNkZjhhMmFlOWJjODI1NTZjNGFiZjEwZjk3MmUyMmE3YWUuLmY3ZDdmNWI0ZjM0MDc3NmMwMjAz
N2ZjOTgzNDk4YTE1NWU5NGUxMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdGF0
aWNSYW5nZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNSYW5nZS5oCkBAIC00Myw3
ICs0Myw3IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxT
dGF0aWNSYW5nZT4+IGNyZWF0ZShJbml0JiYpOwotICAgIHN0YXRpYyBSZWY8U3RhdGljUmFuZ2U+
IGNyZWF0ZShjb25zdCBTaW1wbGVSYW5nZSYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBS
ZWY8U3RhdGljUmFuZ2U+IGNyZWF0ZShjb25zdCBTaW1wbGVSYW5nZSYpOwogICAgIHN0YXRpYyBS
ZWY8U3RhdGljUmFuZ2U+IGNyZWF0ZShTaW1wbGVSYW5nZSYmKTsKIAogICAgIE5vZGUmIHN0YXJ0
Q29udGFpbmVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU2ltcGxlUmFuZ2U6OnN0YXJ0Q29udGFp
bmVyKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHRE
YXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcAppbmRl
eCAzOWViMTUxMDlhYTZjMDJhNjg2YmUwNGRlMGNkZDZiMDM3YzhmYzljLi4xZjZiODg2YzkxMTAx
NDQ5MGYyNzZiYjRkNDMwZTdmMWJhNmMyOGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0hpZ2hsaWdodERhdGEuY3BwCkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgUmVuZGVyUmFuZ2VJdGVy
YXRvcjo6Y2hlY2tGb3JTcGFubmVyKCkKICAgICBtX2N1cnJlbnQgPSBwbGFjZWhvbGRlci5zcGFu
bmVyKCk7CiB9CiAKLXN0YXRpYyBSZW5kZXJPYmplY3QqIHJlbmRlcmVyQWZ0ZXJPZmZzZXQoY29u
c3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlciwgdW5zaWduZWQgb2Zmc2V0KSAvLyA8TU1HPiB1c2Vk
IGluIGJvdGgsIG1pZ2h0IHNob3VsZCBub3QgYmUgc3RhdGljCitzdGF0aWMgUmVuZGVyT2JqZWN0
KiByZW5kZXJlckFmdGVyT2Zmc2V0KGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIHVuc2ln
bmVkIG9mZnNldCkKIHsKICAgICBhdXRvKiBjaGlsZCA9IHJlbmRlcmVyLmNoaWxkQXQob2Zmc2V0
KTsKICAgICByZXR1cm4gY2hpbGQgPyBjaGlsZCA6IHJlbmRlcmVyLm5leHRJblByZU9yZGVyQWZ0
ZXJDaGlsZHJlbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGlu
ZVRleHRCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3Bw
CmluZGV4IGUwOTBmMTZhODM1OTczMjVhNmRlMzkwZTBiOWZkY2M0M2NiMDc5ZGMuLmExMTYxMzI5
MzI1MDI4MzY2M2Q1MzBjZmFhZDgzY2RhNWQ2YzQ5MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKQEAgLTg0Niw2ICs4NDYsMTMgQEAgYXV0byBJbmxpbmVU
ZXh0Qm94OjpyZXNvbHZlU3R5bGVGb3JNYXJrZWRUZXh0KGNvbnN0IE1hcmtlZFRleHQmIG1hcmtl
ZFRleHQsIGNvbnMKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBicmVhazsKKyNp
ZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgY2FzZSBNYXJrZWRUZXh0OjpBcHBIaWdobGln
aHQ6IHsKKyAgICAgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JP
cHRpb25zID0geyBTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlIH07Cisg
ICAgICAgIHN0eWxlLmJhY2tncm91bmRDb2xvciA9IHJlbmRlcmVyKCkudGhlbWUoKS5zeXN0ZW1D
b2xvcihDU1NWYWx1ZUFwcGxlU3lzdGVtQXBwSGlnaGxpZ2h0QmFja2dyb3VuZCwgc3R5bGVDb2xv
ck9wdGlvbnMpOworICAgICAgICBicmVhazsKKyAgICB9CisjZW5kaWYKICAgICBjYXNlIE1hcmtl
ZFRleHQ6OkRyYWdnZWRDb250ZW50OgogICAgICAgICBzdHlsZS5hbHBoYSA9IDAuMjU7CiAgICAg
ICAgIGJyZWFrOwpAQCAtMTA2Nyw2ICsxMDc0LDE4IEBAIFZlY3RvcjxNYXJrZWRUZXh0PiBJbmxp
bmVUZXh0Qm94Ojpjb2xsZWN0TWFya2VkVGV4dHNGb3JIaWdobGlnaHRzKFRleHRQYWludFBoYXNl
CiAgICAgICAgICAgICAgICAgbWFya2VkVGV4dHMuYXBwZW5kKHsgaGlnaGxpZ2h0U3RhcnQsIGhp
Z2hsaWdodEVuZCwgTWFya2VkVGV4dDo6SGlnaGxpZ2h0LCBudWxscHRyLCBoaWdobGlnaHQua2V5
IH0pOwogICAgICAgICB9CiAgICAgfQorI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAgICBm
b3IgKGF1dG8mIGhpZ2hsaWdodCA6IHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5hcHBIaWdobGlnaHRS
ZWdpc3RlcigpLm1hcCgpKSB7CisgICAgICAgIGZvciAoYXV0byYgcmFuZ2VEYXRhIDogaGlnaGxp
Z2h0LnZhbHVlLT5yYW5nZXNEYXRhKCkpIHsKKyAgICAgICAgICAgIGlmICghaGlnaGxpZ2h0RGF0
YS5zZXRSZW5kZXJSYW5nZShyYW5nZURhdGEpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor
CisgICAgICAgICAgICBhdXRvIFtoaWdobGlnaHRTdGFydCwgaGlnaGxpZ2h0RW5kXSA9IGhpZ2hs
aWdodFN0YXJ0RW5kKGhpZ2hsaWdodERhdGEpOworICAgICAgICAgICAgaWYgKGhpZ2hsaWdodFN0
YXJ0IDwgaGlnaGxpZ2h0RW5kKQorICAgICAgICAgICAgICAgIG1hcmtlZFRleHRzLmFwcGVuZCh7
IGhpZ2hsaWdodFN0YXJ0LCBoaWdobGlnaHRFbmQsIE1hcmtlZFRleHQ6OkFwcEhpZ2hsaWdodCB9
KTsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgogICAgIHJldHVybiBtYXJrZWRUZXh0czsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL01hcmtlZFRleHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9NYXJrZWRUZXh0LmgKaW5kZXggNzNjMDYyMTFmZTRhYTQz
MzJhMmI4Mjg0MDFjOWNhZDE5ZjA5MWQyOS4uZTc5NzhhNjRjYzdiMDExZjYwODM5YjNmMGY3YjVl
NWIwY2I4NzhhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL01hcmtlZFRl
eHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWFya2VkVGV4dC5oCkBAIC00Miw2
ICs0Miw5IEBAIHN0cnVjdCBNYXJrZWRUZXh0IHsKICAgICAgICAgVGV4dE1hdGNoLAogICAgICAg
ICBEaWN0YXRpb25BbHRlcm5hdGl2ZXMsCiAgICAgICAgIEhpZ2hsaWdodCwKKyNpZiBFTkFCTEUo
QVBQX0hJR0hMSUdIVFMpCisgICAgICAgIEFwcEhpZ2hsaWdodCwKKyNlbmRpZgogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCiAgICAgICAgIC8vIEZJWE1FOiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzg5
MzMzNTI+LiBBbHNvLCByZW1vdmUgdGhlIFBMQVRGT1JNKElPU19GQU1JTFkpLWd1YXJkLgogICAg
ICAgICBEaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKaW5kZXggMjZjMjM2MTI3NDA1NmZhZTA4NmM1OTVj
ODhmZDlmYTkxNmI0ZDcwNy4uN2Q0YTA3YTY1NTJjY2U4OWM4NGFkN2RmN2EyMjllYjQxODhiOGMx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCkBAIC0x
NDIsNiArMTQyLDIxIEBAIGlubGluZSBzdGF0aWMgYm9vbCBkcmFnZ2VkQ29udGVudENvbnRhaW5z
UmVwbGFjZWRFbGVtZW50KGNvbnN0IFZlY3RvcjxSZW5kZXJlZERvCiBDb2xvciBSZW5kZXJSZXBs
YWNlZDo6Y2FsY3VsYXRlSGlnaGxpZ2h0Q29sb3IoKSBjb25zdAogewogICAgIEhpZ2hsaWdodERh
dGEgaGlnaGxpZ2h0RGF0YTsKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgZm9yIChh
dXRvJiBoaWdobGlnaHQgOiBkb2N1bWVudCgpLmFwcEhpZ2hsaWdodFJlZ2lzdGVyKCkubWFwKCkp
IHsKKyAgICAgICAgZm9yIChhdXRvJiByYW5nZURhdGEgOiBoaWdobGlnaHQudmFsdWUtPnJhbmdl
c0RhdGEoKSkgeworICAgICAgICAgICAgaWYgKCFoaWdobGlnaHREYXRhLnNldFJlbmRlclJhbmdl
KHJhbmdlRGF0YSkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIGF1
dG8gc3RhdGUgPSBoaWdobGlnaHREYXRhLmhpZ2hsaWdodFN0YXRlRm9yUmVuZGVyZXIoKnRoaXMp
OworICAgICAgICAgICAgaWYgKCFpc0hpZ2hsaWdodGVkKHN0YXRlLCBoaWdobGlnaHREYXRhKSkK
KyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zID0geyBTdHlsZUNvbG9yOjpPcHRpb25z
OjpVc2VTeXN0ZW1BcHBlYXJhbmNlIH07CisgICAgICAgICAgICAgICAgcmV0dXJuIHRoZW1lKCku
c3lzdGVtQ29sb3IoQ1NTVmFsdWVBcHBsZVN5c3RlbUFwcEhpZ2hsaWdodEJhY2tncm91bmQsIHN0
eWxlQ29sb3JPcHRpb25zKTsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgogICAgIGZvciAoYXV0
byYgaGlnaGxpZ2h0IDogZG9jdW1lbnQoKS5oaWdobGlnaHRSZWdpc3RlcigpLm1hcCgpKSB7CiAg
ICAgICAgIGZvciAoYXV0byYgcmFuZ2VEYXRhIDogaGlnaGxpZ2h0LnZhbHVlLT5yYW5nZXNEYXRh
KCkpIHsKICAgICAgICAgICAgIGlmICghaGlnaGxpZ2h0RGF0YS5zZXRSZW5kZXJSYW5nZShyYW5n
ZURhdGEpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKaW5kZXggMDRh
OTMwYzgwYTdjNzhkYzAxMDgwNTI5MTUwMzI5ZjNhYTNhMTMyYi4uZGUzMzM3NTRkYTY2NjgyYTE1
ODAxZDJlYTNkNWMwYTNlYWEwZTA1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWUuY3BwCkBAIC0xMzQ4LDYgKzEzNDgsMTMgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRm
b3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb24K
ICAgICByZXR1cm4gQ29sb3I6OnllbGxvdzsKIH0KIAorI2lmIEVOQUJMRShBUFBfSElHSExJR0hU
UykKK0NvbG9yIFJlbmRlclRoZW1lOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNl
dDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK3sKKyAgICByZXR1cm4gQ29sb3I6OnllbGxv
dzsKK30KKyNlbmRpZgorCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKIAogQ29sb3IgUmVuZGVy
VGhlbWU6OnRhcEhpZ2hsaWdodENvbG9yKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lLmgKaW5kZXggYmUxOTkwM2Q1YWI2NDZmYWU5NDJjYzIyOWQ0MWMxNDhlOGQ0ZTdmNS4uOGVh
OWI4OTQ2Y2FhMmY2NjNhNjE2N2Q4NjdhZGI3OTIwZjhlODUwNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmgKQEAgLTE1Nyw2ICsxNTcsOSBAQCBwdWJsaWM6CiAgICAgLy8g
SGlnaGxpZ2h0aW5nIGNvbG9yIGZvciBzZWFyY2ggbWF0Y2hlcy4KICAgICBDb2xvciB0ZXh0U2Vh
cmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsK
IAorICAgIC8vIERlZmF1bHQgaGlnaGxpZ2h0aW5nIGNvbG9yIGZvciBhcHAgaGlnaGxpZ2h0cy4K
KyAgICBDb2xvciBhcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4pIGNvbnN0OworCiAgICAgdmlydHVhbCBDb2xvciBkaXNhYmxlZFRleHRDb2xvcihjb25zdCBD
b2xvciYgdGV4dENvbG9yLCBjb25zdCBDb2xvciYgYmFja2dyb3VuZENvbG9yKSBjb25zdDsKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIENvbG9yIGZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPikgY29uc3Q7CkBAIC0yNzUsNyArMjc4LDkgQEAgcHJvdGVjdGVkOgogICAg
IHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5k
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKIAogICAgIHZpcnR1
YWwgQ29sb3IgcGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKLQorI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAg
ICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKyNlbmRpZgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0
c1NlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzTGlzdEJv
eFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUlPUy5tbQppbmRleCBkY2ViY2U0ODVlMzYyMzU4Yzg0Y2U0MjBhZDg2ZjRhMzI2NDI0
NTliLi43ZjFhMDlmN2Y2Y2IwZmIwMzU0ODM0MzYzNjZjZmViMTk2ZTIwMGNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCkBAIC0xMjg5LDcgKzEyODksMTAg
QEAgc3RhdGljIGNvbnN0IFZlY3RvcjxDU1NWYWx1ZUlEQW5kU2VsZWN0b3I+JiBjc3NWYWx1ZUlE
U2VsZWN0b3JMaXN0KCkKICAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVBpbmssIEBz
ZWxlY3RvcihzeXN0ZW1QaW5rQ29sb3IpIH0sCiAgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVT
eXN0ZW1QdXJwbGUsIEBzZWxlY3RvcihzeXN0ZW1QdXJwbGVDb2xvcikgfSwKICAgICAgICAgICAg
IHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVJlZCwgQHNlbGVjdG9yKHN5c3RlbVJlZENvbG9yKSB9LAot
ICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtWWVsbG93LCBAc2VsZWN0b3Ioc3lzdGVt
WWVsbG93Q29sb3IpIH0KKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVllbGxvdywg
QHNlbGVjdG9yKHN5c3RlbVllbGxvd0NvbG9yKSB9LAorI2lmIEVOQUJMRShBUFBfSElHSExJR0hU
UykKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUFwcEhpZ2hsaWdodEJhY2tncm91
bmQsIEBzZWxlY3RvcihzeXN0ZW1ZZWxsb3dDb2xvcikgfQorI2VuZGlmCiAgICAgICAgIH0pOwog
ICAgIH0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCmluZGV4
IDRmNTc5NjU5MzY5ZWM0YjZlOTAzNGY3OTBjZmYyZTAyOWI1YzRlMTUuLjFkOWY3ZDNlMzNmYWUw
MGM1YjcyNGRiOGJhMGZmYjNkN2Q3MzkwOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZU1hYy5oCkBAIC02Niw2ICs2Niw5IEBAIHB1YmxpYzoKICAgICBDb2xvciBwbGF0
Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwogICAgIENvbG9yIHBsYXRmb3JtRm9jdXNS
aW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKICAg
ICBDb2xvciBwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykK
KyAgICBDb2xvciBwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3QgZmluYWw7CisjZW5kaWYKIAogICAgIFNjcm9sbGJhckNvbnRyb2xT
aXplIHNjcm9sbGJhckNvbnRyb2xTaXplRm9yUGFydChDb250cm9sUGFydCkgZmluYWwgeyByZXR1
cm4gU2Nyb2xsYmFyQ29udHJvbFNpemU6OlNtYWxsOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZU1hYy5tbQppbmRleCAxYTU1MDM5ZDg4ZTBjZjkzZjYyODc2YjUyNzJj
ZWM4OTcyNjY1MmVjLi45MTA4NzViNDgyNTI5M2JhMDY0YjA2YzVhYmZmZDM5NzYwYjZlNTFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC00NzYsNiAr
NDc2LDE0IEBAIENvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGln
aHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0CiAgICAgcmV0dXJuIGNvbG9yRnJvbU5T
Q29sb3IoW05TQ29sb3IgZmluZEhpZ2hsaWdodENvbG9yXSk7CiB9CiAKKyNpZiBFTkFCTEUoQVBQ
X0hJR0hMSUdIVFMpCitDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BcHBIaWdobGlnaHRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK3sKKyAg
ICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNv
bnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAgcmV0
dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05TQ29sb3Igc3lzdGVtWWVsbG93Q29sb3JdKTsKK30KKyNl
bmRpZgorCiBzdGF0aWMgU1JHQkE8dWludDhfdD4gbWVudUJhY2tncm91bmRDb2xvcigpCiB7CiAg
ICAgUmV0YWluUHRyPE5TQml0bWFwSW1hZ2VSZXA+IG9mZnNjcmVlblJlcCA9IGFkb3B0TlMoW1tO
U0JpdG1hcEltYWdlUmVwIGFsbG9jXSBpbml0V2l0aEJpdG1hcERhdGFQbGFuZXM6bmlsIHBpeGVs
c1dpZGU6MSBwaXhlbHNIaWdoOjEKQEAgLTcwMiw2ICs3MTAsMTAgQEAgQ29sb3IgUmVuZGVyVGhl
bWVNYWM6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok8KICAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHN5c3RlbVJlZENvbG9y
KTsKICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVllbGxvdzoKICAgICAgICAg
ICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHN5c3RlbVllbGxvd0NvbG9yKTsKKyNpZiBFTkFCTEUo
QVBQX0hJR0hMSUdIVFMpCisgICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1BcHBI
aWdobGlnaHRCYWNrZ3JvdW5kOgorICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lz
dGVtWWVsbG93Q29sb3IpOworI2VuZGlmCiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQppbmRleCAyOWZhODk1MWRh
ZWYzNjNlY2VjZGY5MDJjYmU3MjllMDZlY2JlZWI4Li4xMDIzZjljNzc5ODJiZmNiOTg0MzRkZDI4
OGU3Njg5M2RjNzYwNGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQYWdlUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQYWdlUHJveHlDb2NvYS5tbQpAQCAtNTQzLDYgKzU0MywxNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6YWRkQWN0aXZpdHlTdGF0ZVVwZGF0ZUNvbXBsZXRpb25IYW5kbGVyKENvbXBsZXRpb25I
YW5kbGVyPHZvaQogICAgIG1fYWN0aXZpdHlTdGF0ZVVwZGF0ZUNhbGxiYWNrcy5hcHBlbmQoV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRT
KQordm9pZCBXZWJQYWdlUHJveHk6OmNyZWF0ZUFwcEhpZ2hsaWdodEluU2VsZWN0ZWRSYW5nZShi
b29sIGluQ3VycmVudEdyb3VwKQoreworICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Q3JlYXRlQXBwSGln
aGxpZ2h0SW5TZWxlY3RlZFJhbmdlKGluQ3VycmVudEdyb3VwKSk7Cit9CisKKyNlbmRpZgorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIE1FU1NBR0VfQ0hFQ0tfQ09NUExFVElPTgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMGY4NzQyODk5MGRl
MDAxMzQzNjcyZTI0OTQ4OTVhZDEzZDQzMzAyOC4uZTVjZDc4N2YyYzRhYTBhZWE0M2Y2ZWFiNzk3
ZjhmOTk3MGZkY2IwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CkBAIC02NjIxLDYgKzY2MjEsMTYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRleHRNZW51SXRl
bVNlbGVjdGVkKGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbURhdGEmIGl0ZW0pCiAgICAgICAgIFRl
eHRDaGVja2VyOjp0b2dnbGVTcGVsbGluZ1VJSXNTaG93aW5nKCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorICAgIGlmIChpdGVtLmFjdGlvbigp
ID09IENvbnRleHRNZW51SXRlbVRhZ0FkZEhpZ2hsaWdodFRvTmV3R3JvdXApIHsKKyAgICAgICAg
Y3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJhbmdlKGZhbHNlKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdBZGRI
aWdobGlnaHRUb0N1cnJlbnRHcm91cCkgeworICAgICAgICBjcmVhdGVBcHBIaWdobGlnaHRJblNl
bGVjdGVkUmFuZ2UodHJ1ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKICAgICBp
ZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nIHx8IGl0
ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcpCiAgICAgICAg
ICsrbV9wZW5kaW5nTGVhcm5Pcklnbm9yZVdvcmRNZXNzYWdlQ291bnQ7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggODc5ZjczMmIxMWNiMTIzOTczODY1OGU4ZTU4
ZmI4N2M1MDM0ZjJiOC4uZmU0NTI5NzUwNmYzZDM4YjBhNmJjMTdmNTNlN2RlY2E4Zjg4YWIwMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE4MjMsNiArMTgyMywx
MCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXF1ZXN0U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9u
KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3Bl
ZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb24pPiYmKTsKICAgICB2b2lkIHJlcXVlc3RT
cGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25CeURlZmF1bHRBY3Rpb24oY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKIAorI2lm
IEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAgICB2b2lkIGNyZWF0ZUFwcEhpZ2hsaWdodEluU2Vs
ZWN0ZWRSYW5nZShib29sKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFdlYlBhZ2VQcm94eShQ
YWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5JiwgUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+
JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBj
NTE0N2Y0MzA0NzkxYWNmNjYzZDIxNDU5YTJlNjMxYTQzMzZkNzRiLi5kMDk1MGYyNjQ3ZDMxMTEy
NjNiZWVmZWQ5ZWE0MzVjZjU2YTI4NmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTg2MTUsMTIgKzg2
MTUsMTIgQEAgLSAodm9pZClzZXR1cEFwcEhpZ2hsaWdodE1lbnVzCiAKIC0gKHZvaWQpY3JlYXRl
SGlnaGxpZ2h0SW5DdXJyZW50R3JvdXBXaXRoUmFuZ2U6KGlkKXNlbmRlcgogewotICAgIC8vIEZJ
WE1FOiBBZGQgSGlnaGxpZ2h0IGxvZ2ljLgorICAgIF9wYWdlLT5jcmVhdGVBcHBIaWdobGlnaHRJ
blNlbGVjdGVkUmFuZ2UodHJ1ZSk7CiB9CiAKIC0gKHZvaWQpY3JlYXRlSGlnaGxpZ2h0SW5OZXdH
cm91cFdpdGhSYW5nZTooaWQpc2VuZGVyCiB7Ci0gICAgLy8gRklYTUU6IEFkZCBIaWdobGlnaHQg
bG9naWMuCisgICAgX3BhZ2UtPmNyZWF0ZUFwcEhpZ2hsaWdodEluU2VsZWN0ZWRSYW5nZShmYWxz
ZSk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAppbmRleCA5NTcwZWMzYmEwNGFlM2E3MDM4MzQ5NTg4MGQwM2IyMjViZDYxZDJiLi4w
ZTBjOGQ0MTI0NTljODdmZDYxNmQ4MDg2NjgxYTgzOTJmYmM5NTJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTU2LDYgKzE1Niw3IEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9EYXRhVHJhbnNmZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RhdGFi
YXNlTWFuYWdlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdz
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9j
dW1lbnRGcmFnbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oPgpAQCAtMTg2LDYgKzE4
Nyw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MUGx1Z0luRWxlbWVudC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvSFRNTFNlbGVjdEVsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9IaWdobGlnaHQuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0hpZ2hsaWdodFJlZ2lzdGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9I
aXN0b3J5Q29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSGlzdG9yeUl0ZW0uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0hpdFRlc3RSZXN1bHQuaD4KQEAgLTIyOSw2ICsyMzIsNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYWRvd1Jvb3Qu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
U3RhdGljUmFuZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N0eWxlUHJvcGVydGllcy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU3ViZnJhbWVMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1YnN0
aXR1dGVEYXRhLmg+CkBAIC03MDMzLDYgKzcwMzcsMjYgQEAgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5JiBXZWJQYWdlOjplbnN1cmVSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkoKQogfQog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCitib29sIFdlYlBhZ2U6OmNyZWF0
ZUFwcEhpZ2hsaWdodEluU2VsZWN0ZWRSYW5nZShib29sIGluQ3VycmVudEdyb3VwKQoreworICAg
IGF1dG8gZG9jdW1lbnQgPSBtYWtlUmVmUHRyKG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9j
dXNlZE9yTWFpbkZyYW1lKCkuZG9jdW1lbnQoKSk7CisKKyAgICBhdXRvIGZyYW1lID0gbWFrZVJl
ZlB0cihkb2N1bWVudC0+ZnJhbWUoKSk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgYXV0byBzZWxlY3Rpb25SYW5nZSA9IGZyYW1lLT5zZWxlY3Rpb24oKS5z
ZWxlY3Rpb24oKS50b05vcm1hbGl6ZWRSYW5nZSgpOworICAgIGlmICghc2VsZWN0aW9uUmFuZ2Up
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGRvY3VtZW50LT5hcHBIaWdobGlnaHRSZWdp
c3RlcigpLmFkZEFwcEhpZ2hsaWdodChTdGF0aWNSYW5nZTo6Y3JlYXRlKHNlbGVjdGlvblJhbmdl
LnZhbHVlKCkpKTsKKworICAgIHJldHVybiB0cnVlOworfQorI2VuZGlmCisKKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKICN1bmRlZiBSRUxFQVNFX0xPR19JRl9BTExPV0VECmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYTc0OGJlMjEzNWUzZDIyYjQw
ZGIwNWExNjNhZWUwMGFkNTM0MjRkMS4uMDA3NmE0MzMzN2JhMzE0Y2QxYWEyNDJlNzc3YjQ3NDc2
YzMxOWQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApA
QCAtMTM2Niw2ICsxMzY2LDEwIEBAIHB1YmxpYzoKICAgICBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkmIGVuc3VyZVJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSgpOwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgYm9vbCBjcmVhdGVBcHBIaWdobGlnaHRJblNl
bGVjdGVkUmFuZ2UoYm9vbCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBXZWJQYWdlKFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgppbmRleCAxNTVmMWY0YTRhOTYyODllMTA4NzFmMjJhNTk1NTA3MGVkMGVlNThkLi5mNjJjNmYz
ZjNmOGUyMGM5OGY3OTJkZGEyNDQwMjQ0NmJmYzZjY2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTYxNiw0ICs2
MTYsOSBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJL
aXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogCiAgICAgU2V0SGFzUmVzb3VyY2VMb2Fk
Q2xpZW50KGJvb2wgaGFzKQogICAgIFNldENhblVzZUNyZWRlbnRpYWxTdG9yYWdlKGJvb2wgY2Fu
VXNlKQorCisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorICAgIENyZWF0ZUFwcEhpZ2hsaWdo
dEluU2VsZWN0ZWRSYW5nZShib29sIGluQ3VycmVudEdyb3VwKQorI2VuZGlmCisKIH0KZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5ZTM1ZDAwMzVk
NjNkNGJkNTYyZjMyZDQ2OTI4NmI4YTNlY2M2YzdjLi43OTg2NDU4MWNlZjgyYzQ4ZTA2ODJiYWRi
ZTU4OWJiYmY0ZmEzNmI2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTEtMzAgIE1lZ2FuIEdhcmRuZXIgIDxt
ZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgYW5kIGRyYXcgYXBwIGhp
Z2hsaWdodHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxOTM2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL01hcmtlZFRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6b3BlcmF0b3I8PCk6CisKIDIwMjAtMTEtMTkgIFBlciBBcm5lIFZvbGxhbiAgPHB2
b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gSXNzdWUgc2FuZGJveCBleHRlbnNp
b24gdG8gV2ViIEluc3BlY3RvciBzZXJ2aWNlCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvTWFya2VkVGV4dC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvTWFya2VkVGV4dC5jcHAKaW5kZXggNmE4ZTU3MjkxYmY1ZDAxNjc2OGQ4ZTI5
MmUyYjhjNjdhYzAwODVmYi4uN2ZhNmFmYTZjZjViOGU0ZjA3NzI5Y2I5YWFmOTA4ZTdmYmRjMzU5
MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL01hcmtlZFRl
eHQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9NYXJrZWRUZXh0
LmNwcApAQCAtNTcsNiArNTcsMTAgQEAgc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0
cmVhbSYgb3MsIE1hcmtlZFRleHQ6OlR5cGUgdHlwZSkKICAgICAgICAgcmV0dXJuIG9zIDw8ICJU
ZXh0TWF0Y2giOwogICAgIGNhc2UgTWFya2VkVGV4dDo6SGlnaGxpZ2h0OgogICAgICAgICByZXR1
cm4gb3MgPDwgIkhpZ2hsaWdodCI7CisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorICAgIGNh
c2UgTWFya2VkVGV4dDo6QXBwSGlnaGxpZ2h0OgorICAgICAgICByZXR1cm4gb3MgPDwgIkFwcEhp
Z2hsaWdodCI7CisjZW5kaWYKICAgICBjYXNlIE1hcmtlZFRleHQ6OlVubWFya2VkOgogICAgICAg
ICByZXR1cm4gb3MgPDwgIlVubWFya2VkIjsKICAgICB9Cg==
</data>
<flag name="commit-queue"
          id="432175"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415085</attachid>
            <date>2020-11-30 18:03:34 -0800</date>
            <delta_ts>2020-12-01 12:18:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219365-20201130180333.patch</filename>
            <type>text/plain</type>
            <size>31628</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QzYzFmNDI4NGY0ZmI3
ODRjOTEyZTIxNjUwMzA2NGNiNGZkYTExMy4uODU1N2M4NzVhN2IwYWYyNzdlODQzNDMyNjVkNmE5
NTE1MDc0OWUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTExLTMwICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGFu
ZCBkcmF3IGFwcCBoaWdobGlnaHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTkzNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDcmVhdGUgYSBzZXBhcmF0ZSBoaWdobGlnaHQgcmVnaXN0ZXIgZm9yIGFw
cCBoaWdobGlnaHRzIHNvIHRoYXQgdGhlcmUgaXMgYSBjbGVhciBzZXBhcmF0aW9uCisgICAgICAg
IHdpdGggbm8gcmlzayBvZiB3ZWIgY29udGVudCBhY2Nlc3NpbmcgdGhlIHdyb25nIGhpZ2hsaWdo
dHMuIEV4dGVuZCByZW5kZXJpbmcgdG8gaW5jbHVkZSB0aGUgCisgICAgICAgIGFwcCBoaWdobGln
aHRzIHdpdGggdGhlIGN1cnJlbnQgZGVmYXVsdCBzZXR0aW5ncy4gCisKKyAgICAgICAgKiBNb2R1
bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaDoKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRSZWdpc3Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSZWdpc3Rl
cjo6YXBwSGlnaGxpZ2h0S2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJlZ2lzdGVy
OjphZGRBcHBIaWdobGlnaHQpOgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dFJlZ2lzdGVyLmg6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YXBwSGlnaGxpZ2h0UmVnaXN0
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNvbGxlY3RSYWdlRGF0YUZyb21SZWdp
c3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSGlnaGxpZ2h0UG9zaXRp
b25zKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vU3RhdGljUmFu
Z2UuaDoKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVk
KToKKyAgICAgICAgKiByZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpyZW5kZXJlckFmdGVyT2Zmc2V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4
dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpyZXNvbHZlU3R5bGVG
b3JNYXJrZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OmNvbGxlY3RN
YXJrZWRUZXh0c0ZvckhpZ2hsaWdodHMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9NYXJr
ZWRUZXh0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGhlbWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpjc3NWYWx1ZUlEU2VsZWN0b3JM
aXN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU1hYzo6cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IgY29uc3QpOgorCiAyMDIwLTExLTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgV29ya2xldC5hZGRNb2R1bGUo
KSBzaG91bGQgcmVqZWN0IHByb21pc2Ugd2l0aCBhbiBBYm9ydEVycm9yIHdoZW4gdGhlIG5ldHdv
cmsgbG9hZCBmYWlscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjNGI0NzFhNGViODIwZjUyMjc2MmIyYTE4M2YzZGJi
Nzc3N2M5YjMyLi45OGQzNmRlNGQ3NDcxNzU5MGIxMGQ1NTMxNzYxNjc4MWI5MDg1ZmE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTExLTMwICBNZWdhbiBHYXJkbmVyICA8bWVnYW5f
Z2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGFuZCBkcmF3IGFwcCBoaWdobGln
aHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkz
NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIYW5k
bGUgdGhlIGNyZWF0aW9uIG9mIEFwcCBIaWdobGlnaHRzIGZyb20gc2VsZWN0aW9ucyB3aGVuIHRo
ZSBjb250ZXh0IG1lbnUgaXRlbSBpcyBzZWxlY3RlZC4gCisgICAgICAgIFRoaXMgcGF0Y2ggd2ls
bCBhZGQgdGhlIGhpZ2hsaWdodHMgdG8gdGhlIERvY3VtZW50J3MgYXBwIEhpZ2hsaWdodCByZWdp
c3RlciwgYW5kIGhhbmRsZSBkcmF3aW5nCisgICAgICAgIHRoZW0gaW4gSW5saW5lVGV4dEJveC4g
TGF0ZXIgcGF0Y2hlcyB3aWxsIGhhbmRsZSB0aGUgcGVyc2lzdGVudCBzdG9yYWdlIGFuZCByZXBv
cHVsYXRpb24gb2YgYXBwCisgICAgICAgIGhpZ2hsaWdodHMgb24gbGF1bmNoIG9yIHJlbG9hZCBv
ZiBhIHBhZ2UuIAorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0ZUFwcEhpZ2hsaWdodElu
U2VsZWN0ZWRSYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNyZWF0ZUhpZ2hsaWdodEluQ3Vy
cmVudEdyb3VwV2l0aFJhbmdlOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNyZWF0ZUhp
Z2hsaWdodEluTmV3R3JvdXBXaXRoUmFuZ2U6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjcmVhdGVBcHBIaWdo
bGlnaHRJblNlbGVjdGVkUmFuZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46
CisKIDIwMjAtMTEtMTkgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFttYWNPU10gSXNzdWUgc2FuZGJveCBleHRlbnNpb24gdG8gV2ViIEluc3BlY3RvciBz
ZXJ2aWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAwMjNlMTUzZGEzYzY3ZGUxN2EyNTJiZWYxY2Fi
MjY4N2Q0MzkzMDZkLi5jYjJhM2YzMWE0N2M5YTI5MzkxZTc1MWY1ZjBjYmI3NjY1ZjRmMzRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKQEAgLTQ0LDYgKzQ0LDkgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9G
UkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNh
bGxiYWNrLmgKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uT3B0aW9ucy5oCiAKKyAg
ICBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaAorICAgIE1vZHVsZXMvaGlnaGxpZ2h0L0hp
Z2hsaWdodFJlZ2lzdGVyLmgKKwogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkFjdGl2ZURPTU9i
amVjdC5oCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmgKICAg
ICBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oCmluZGV4IGYwZGZh
NTY4MjI4YzgzYjIwZWJlOGEyZjkzNWVmMGY1ZGU3NTMwZmQuLjlkOThjODcxNGViYzA1YTQ5ZDdk
OTZhMzJlZjRiMGMyZjlkMjUxNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0hpZ2hsaWdodC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxp
Z2h0L0hpZ2hsaWdodC5oCkBAIC01NCw3ICs1NCw3IEBAIHN0cnVjdCBIaWdobGlnaHRSYW5nZURh
dGEgOiBSZWZDb3VudGVkPEhpZ2hsaWdodFJhbmdlRGF0YT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0
CiAKIGNsYXNzIEhpZ2hsaWdodCA6IHB1YmxpYyBSZWZDb3VudGVkPEhpZ2hsaWdodD4gewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0PiBjcmVhdGUoU3RhdGljUmFuZ2UmKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEhpZ2hsaWdodD4gY3JlYXRlKFN0YXRpY1Jhbmdl
Jik7CiAgICAgdm9pZCBjbGVhckZyb21TZXRMaWtlKCk7CiAgICAgYm9vbCBhZGRUb1NldExpa2Uo
U3RhdGljUmFuZ2UmKTsKICAgICBib29sIHJlbW92ZUZyb21TZXRMaWtlKGNvbnN0IFN0YXRpY1Jh
bmdlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRSZWdpc3Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRSZWdpc3Rlci5jcHAKaW5kZXggOWUyMGI4NjkzNDI1Y2JjYWEwNmNjYjE0NGZlMDJkM2Nm
NjI4NWU4Yi4uMmVmMTBlM2IzOTAwN2Q5OTIwZjAyMzY5NzMyMzVhZTBlNGJmZDczNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lz
dGVyLmNwcApAQCAtNTMsNCArNTMsMTcgQEAgYm9vbCBIaWdobGlnaHRSZWdpc3Rlcjo6cmVtb3Zl
KGNvbnN0IFN0cmluZyYga2V5KQogICAgIHJldHVybiBtX21hcC5yZW1vdmUoa2V5KTsKIH0KIAor
QVNDSUlMaXRlcmFsIEhpZ2hsaWdodFJlZ2lzdGVyOjphcHBIaWdobGlnaHRLZXkoKQoreworICAg
IHJldHVybiAiYXBwSGlnaGxpZ2h0S2V5Il9zOworfQorCit2b2lkIEhpZ2hsaWdodFJlZ2lzdGVy
OjphZGRBcHBIaWdobGlnaHQoUmVmPFN0YXRpY1JhbmdlPiYmIHZhbHVlKQoreworICAgIGlmICht
X21hcC5jb250YWlucyhhcHBIaWdobGlnaHRLZXkoKSkpCisgICAgICAgIG1fbWFwLmdldChhcHBI
aWdobGlnaHRLZXkoKSktPmFkZFRvU2V0TGlrZSh2YWx1ZSk7CisgICAgZWxzZQorICAgICAgICBz
ZXRGcm9tTWFwTGlrZShhcHBIaWdobGlnaHRLZXkoKSwgSGlnaGxpZ2h0OjpjcmVhdGUodmFsdWUp
KTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQv
SGlnaGxpZ2h0UmVnaXN0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hp
Z2hsaWdodFJlZ2lzdGVyLmgKaW5kZXggNDA1MzBmODM2MjNhMzMzYjIwY2ZhNmZkNWRjMGY1NjMz
NDQxMDQ2MS4uZDUyOTFmZGE0ZDk1MzlkMzBiN2UzNjNjZTYzYTBlMjgzZDBlODNmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSZWdpc3Rl
ci5oCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERPTU1hcEFk
YXB0ZXI7CiBjbGFzcyBET01TdHJpbmc7CiBjbGFzcyBIaWdobGlnaHQ7CitjbGFzcyBTdGF0aWNS
YW5nZTsKIAogY2xhc3MgSGlnaGxpZ2h0UmVnaXN0ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxIaWdo
bGlnaHRSZWdpc3Rlcj4gewogcHVibGljOgpAQCAtNDMsNiArNDQsOSBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRGcm9tTWFwTGlrZShTdHJpbmcmJiwgUmVmPEhpZ2hsaWdodD4mJik7CiAgICAgdm9p
ZCBjbGVhcigpOwogICAgIGJvb2wgcmVtb3ZlKGNvbnN0IFN0cmluZyYpOworCisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBhZGRBcHBIaWdobGlnaHQoUmVmPFN0YXRpY1JhbmdlPiYmKTsKKyAgICBz
dGF0aWMgQVNDSUlMaXRlcmFsIGFwcEhpZ2hsaWdodEtleSgpOwogICAgIAogICAgIGNvbnN0IEhh
c2hNYXA8U3RyaW5nLCBSZWY8SGlnaGxpZ2h0Pj4mIG1hcCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFw
OyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggNzVhNTIyYzJhYmViMGQxNmQ1YzY4ODZjNzE3MDY1NzI0OTIwYzk0ZS4u
Zjk5Yjk4ZmM5NWE3NDRlYzM0YTdkYjczYThlNjEzNzJhOGRkMWU4NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTIxMCw2ICsx
MjEwLDggQEAKIAkJNDNFREQ2N0YxQjQ4NURCRjAwNjQwRTc1IC8qIENvbWJpbmVkRmlsdGVyc0Fs
cGhhYmV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
M0VERDY3RDFCNDg1REJGMDA2NDBFNzUgLyogQ29tYmluZWRGaWx0ZXJzQWxwaGFiZXQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NDBFREJEMTI1
NUUxMTZDMDAzMDBCQTcgLyogTG9jYWxpemFibGUuc3RyaW5ncyBpbiBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQ2RUU0RTgyNTVFMEQ5MjAwNDU0NDYzIC8q
IExvY2FsaXphYmxlLnN0cmluZ3MgKi87IH07CiAJCTQ0MTUyOTJFMEUxQUU4QTAwMEM0QTJEMCAv
KiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NDE1MjkyQzBFMUFFOEEwMDBDNEEyRDAgLyogSFRNTFBsdWdJbklt
YWdlRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTQ0MzBEMDBCMjU3NUE4M0UwMDQ2RDQwMSAvKiBIaWdobGlnaHQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0RTg4RTUxMjM2QTVDOEQwMDlC
NDg0NyAvKiBIaWdobGlnaHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk0NDMwRDAwRDI1NzVBOEE1MDA0NkQ0MDEgLyogSGlnaGxpZ2h0UmVnaXN0
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0RTg4
RTUwMjM2QTU2QUMwMDlCNDg0NyAvKiBIaWdobGlnaHRSZWdpc3Rlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ0NTc3NUU1MjA0NzJGNzMwMDhE
Q0U1RCAvKiBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDU3NzVFNDIwNDcyRjczMDA4RENFNUQgLyog
TG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ0NjNDRjY4MjIxMkZBNjgwMDFBODU3NyAvKiBEYXRh
RGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0M3OTQxRTIxQzU2QzI5MzAwQTRDNThFIC8qIERhdGFEZXRlY3RvcnND
b3JlU29mdExpbmsubW0gKi87IH07CiAJCTQ0NjVEN0JEMjUzNkQwNUUwMDE2NjY2RCAvKiBTZWxl
Y3Rpb25SYW5nZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ0QjM4QkY0MjUzNjkwMUEwMEE0NDU4RCAvKiBTZWxlY3Rpb25SYW5nZURhdGEuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzIwNTMs
NyArMzIwNTUsOSBAQAogCQkJCTUxNUJFMTlDMUQ1NEY2QzEwMEREN0M2OCAvKiBISURHYW1lcGFk
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTBBOTFEQTI0Q0YzRDhDMDBCRkQ4OUMgLyogSElER2Ft
ZXBhZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNUJFMTlFMUQ1NEY2QzEwMEREN0M2
OCAvKiBISURHYW1lcGFkUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ0MzBEMDBCMjU3
NUE4M0UwMDQ2RDQwMSAvKiBIaWdobGlnaHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQ0ZBQkJE
MThDMEFGNzgwMDZGODQ1MCAvKiBIaWdobGlnaHREYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQk0
NDMwRDAwRDI1NzVBOEE1MDA0NkQ0MDEgLyogSGlnaGxpZ2h0UmVnaXN0ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDOTREMTU0MEMyNzVDOEIwMDZCQzYxNyAvKiBIaXN0b3J5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5N0RDRTIwMjEwODA3Qzc1MDA1N0QzOTQgLyogSGlzdG9yeUNvbnRyb2xsZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTUxNzQxRDExMEIwNzI1OUEwMEVENDQyQyAvKiBIaXN0b3J5
SXRlbS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
CmluZGV4IDk5N2I0MjM5OWExOTkyZWRhMDg5NGY1MDlkMTQwMGUxYmM5MjdiODEuLjBmYzEyNzE3
MDAyNDgwYjY5MTVjNzVhMTc2ZmEwODI3NTEzYzQyNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZUtleXdvcmRzLmluCkBAIC0yNTksNiArMjU5LDcgQEAgd2luZG93dGV4dAogLWFwcGxlLXN5
c3RlbS1wdXJwbGUKIC1hcHBsZS1zeXN0ZW0tcmVkCiAtYXBwbGUtc3lzdGVtLXllbGxvdworLWFw
cGxlLXN5c3RlbS1hcHAtaGlnaGxpZ2h0LWJhY2tncm91bmQKICNlbmRpZgogI2lmIGRlZmluZWQo
V1RGX1BMQVRGT1JNX01BQykgJiYgV1RGX1BMQVRGT1JNX01BQwogLWFwcGxlLXN5c3RlbS1hbHRl
cm5hdGUtc2VsZWN0ZWQtdGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNjQ2ZWU3ZWVj
MDMzYzkwMzkzZWYwMzhlNDM3ZTA1YzZmZWNjYzlmZC4uZDBkNWE1YzhlMDc4NThhOTY5NDU1ZDFl
MGZlZjYwYTFiYzg4ZWFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yNzc0LDIxICsy
Nzc0LDM0IEBAIEhpZ2hsaWdodFJlZ2lzdGVyJiBEb2N1bWVudDo6aGlnaGxpZ2h0UmVnaXN0ZXIo
KQogICAgIHJldHVybiAqbV9oaWdobGlnaHRSZWdpc3RlcjsKIH0KIAotdm9pZCBEb2N1bWVudDo6
dXBkYXRlSGlnaGxpZ2h0UG9zaXRpb25zKCkKK0hpZ2hsaWdodFJlZ2lzdGVyJiBEb2N1bWVudDo6
YXBwSGlnaGxpZ2h0UmVnaXN0ZXIoKQogewotICAgIFZlY3RvcjxXZWFrUHRyPEhpZ2hsaWdodFJh
bmdlRGF0YT4+IHJhbmdlc0RhdGE7Ci0gICAgaWYgKG1faGlnaGxpZ2h0UmVnaXN0ZXIpIHsKLSAg
ICAgICAgZm9yIChhdXRvJiBoaWdobGlnaHQgOiBtX2hpZ2hsaWdodFJlZ2lzdGVyLT5tYXAoKSkg
ewotICAgICAgICAgICAgZm9yIChhdXRvJiByYW5nZURhdGEgOiBoaWdobGlnaHQudmFsdWUtPnJh
bmdlc0RhdGEoKSkgewotICAgICAgICAgICAgICAgIGlmIChyYW5nZURhdGEtPnN0YXJ0UG9zaXRp
b24gJiYgcmFuZ2VEYXRhLT5lbmRQb3NpdGlvbikKLSAgICAgICAgICAgICAgICAgICAgY29udGlu
dWU7Ci0gICAgICAgICAgICAgICAgaWYgKCZyYW5nZURhdGEtPnJhbmdlLT5zdGFydENvbnRhaW5l
cigpLnRyZWVTY29wZSgpICE9ICZyYW5nZURhdGEtPnJhbmdlLT5lbmRDb250YWluZXIoKS50cmVl
U2NvcGUoKSkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAg
cmFuZ2VzRGF0YS5hcHBlbmQobWFrZVdlYWtQdHIocmFuZ2VEYXRhLnB0cigpKSk7Ci0gICAgICAg
ICAgICB9CisgICAgaWYgKCFtX2FwcEhpZ2hsaWdodFJlZ2lzdGVyKQorICAgICAgICBtX2FwcEhp
Z2hsaWdodFJlZ2lzdGVyID0gSGlnaGxpZ2h0UmVnaXN0ZXI6OmNyZWF0ZSgpOworICAgIHJldHVy
biAqbV9hcHBIaWdobGlnaHRSZWdpc3RlcjsKK30KKwordm9pZCBEb2N1bWVudDo6Y29sbGVjdFJh
bmdlRGF0YUZyb21SZWdpc3RlcihWZWN0b3I8V2Vha1B0cjxIaWdobGlnaHRSYW5nZURhdGE+PiYg
cmFuZ2VzRGF0YSwgUmVmUHRyPEhpZ2hsaWdodFJlZ2lzdGVyPiBoaWdobGlnaHRSZWdpc3RlcikK
K3sKKyAgICBmb3IgKGF1dG8mIGhpZ2hsaWdodCA6IGhpZ2hsaWdodFJlZ2lzdGVyLT5tYXAoKSkg
eworICAgICAgICBmb3IgKGF1dG8mIHJhbmdlRGF0YSA6IGhpZ2hsaWdodC52YWx1ZS0+cmFuZ2Vz
RGF0YSgpKSB7CisgICAgICAgICAgICBpZiAocmFuZ2VEYXRhLT5zdGFydFBvc2l0aW9uICYmIHJh
bmdlRGF0YS0+ZW5kUG9zaXRpb24pCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
ICAgICBpZiAoJnJhbmdlRGF0YS0+cmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCkudHJlZVNjb3BlKCkg
IT0gJnJhbmdlRGF0YS0+cmFuZ2UtPmVuZENvbnRhaW5lcigpLnRyZWVTY29wZSgpKQorICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgcmFuZ2VzRGF0YS5hcHBlbmQobWFrZVdl
YWtQdHIocmFuZ2VEYXRhLnB0cigpKSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgCit9CisKK3Zv
aWQgRG9jdW1lbnQ6OnVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpCit7CisgICAgVmVjdG9yPFdl
YWtQdHI8SGlnaGxpZ2h0UmFuZ2VEYXRhPj4gcmFuZ2VzRGF0YTsKKyAgICBpZiAobV9oaWdobGln
aHRSZWdpc3RlcikKKyAgICAgICAgY29sbGVjdFJhbmdlRGF0YUZyb21SZWdpc3RlcihyYW5nZXNE
YXRhLCBtX2hpZ2hsaWdodFJlZ2lzdGVyKTsKKyAgICBpZiAobV9hcHBIaWdobGlnaHRSZWdpc3Rl
cikKKyAgICAgICAgY29sbGVjdFJhbmdlRGF0YUZyb21SZWdpc3RlcihyYW5nZXNEYXRhLCBtX2Fw
cEhpZ2hsaWdodFJlZ2lzdGVyKTsKKwogICAgIGZvciAoYXV0byYgd2Vha1JhbmdlRGF0YSA6IHJh
bmdlc0RhdGEpIHsKICAgICAgICAgaWYgKGF1dG8qIHJhbmdlRGF0YSA9IHdlYWtSYW5nZURhdGEu
Z2V0KCkpIHsKICAgICAgICAgICAgIFZpc2libGVTZWxlY3Rpb24gdmlzaWJsZVNlbGVjdGlvbihy
YW5nZURhdGEtPnJhbmdlKTsKQEAgLTI3OTcsNyArMjgxMCw3IEBAIHZvaWQgRG9jdW1lbnQ6OnVw
ZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpCiAgICAgICAgICAgICBpZiAoIXJhbmdlRGF0YS0+c3Rh
cnRQb3NpdGlvbi5oYXNWYWx1ZSgpKQogICAgICAgICAgICAgICAgIHN0YXJ0UG9zaXRpb24gPSB2
aXNpYmxlU2VsZWN0aW9uLnZpc2libGVTdGFydCgpLmRlZXBFcXVpdmFsZW50KCk7CiAgICAgICAg
ICAgICBpZiAoIXJhbmdlRGF0YS0+ZW5kUG9zaXRpb24uaGFzVmFsdWUoKSkKLSAgICAgICAgICAg
ICAgICBlbmRQb3NpdGlvbiA9IHZpc2libGVTZWxlY3Rpb24udmlzaWJsZUVuZCgpLmRlZXBFcXVp
dmFsZW50KCk7IC8vIDxNTUc+IHN3aXRjaCB0byBFTkQKKyAgICAgICAgICAgICAgICBlbmRQb3Np
dGlvbiA9IHZpc2libGVTZWxlY3Rpb24udmlzaWJsZUVuZCgpLmRlZXBFcXVpdmFsZW50KCk7CiAg
ICAgICAgICAgICBpZiAoIXdlYWtSYW5nZURhdGEuZ2V0KCkpCiAgICAgICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggODRlNThjYzEzNWRk
YjI1ZGEzYTdhODM4ZTc0YzNlNzhmNDA3YzlkNy4uZTExZTQyOTZlYzIyYmEyZjRiN2ZjN2Q3MWIx
MWFlMWE1M2E5N2NiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTIzMSw2ICsyMzEsNyBAQCBj
bGFzcyBYUGF0aE5TUmVzb2x2ZXI7CiBjbGFzcyBYUGF0aFJlc3VsdDsKIAogc3RydWN0IEJvdW5k
YXJ5UG9pbnQ7CitzdHJ1Y3QgSGlnaGxpZ2h0UmFuZ2VEYXRhOwogc3RydWN0IEludGVyc2VjdGlv
bk9ic2VydmVyRGF0YTsKIAogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIEV4Y2VwdGlvbk9yOwpA
QCAtMTU3NCw2ICsxNTc1LDcgQEAgcHVibGljOgogICAgIFRleHRNYW5pcHVsYXRpb25Db250cm9s
bGVyKiB0ZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcklmRXhpc3RzKCkgeyByZXR1cm4gbV90ZXh0
TWFuaXB1bGF0aW9uQ29udHJvbGxlci5nZXQoKTsgfQogICAgICAgICAKICAgICBIaWdobGlnaHRS
ZWdpc3RlciYgaGlnaGxpZ2h0UmVnaXN0ZXIoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBIaWdobGln
aHRSZWdpc3RlciYgYXBwSGlnaGxpZ2h0UmVnaXN0ZXIoKTsKICAgICB2b2lkIHVwZGF0ZUhpZ2hs
aWdodFBvc2l0aW9ucygpOwogCiAgICAgYm9vbCBhbGxvd3NDb250ZW50SmF2YVNjcmlwdCgpIGNv
bnN0OwpAQCAtMTcwMSw2ICsxNzAzLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGxhdGZvcm1T
dXNwZW5kT3JTdG9wQWN0aXZlRE9NT2JqZWN0cygpOwogCisgICAgdm9pZCBjb2xsZWN0UmFuZ2VE
YXRhRnJvbVJlZ2lzdGVyKFZlY3RvcjxXZWFrUHRyPEhpZ2hsaWdodFJhbmdlRGF0YT4+JiwgUmVm
UHRyPEhpZ2hsaWdodFJlZ2lzdGVyPik7CisKICAgICBib29sIGlzQm9keVBvdGVudGlhbGx5U2Ny
b2xsYWJsZShIVE1MQm9keUVsZW1lbnQmKTsKIAogICAgIHZvaWQgZGlkTG9nTWVzc2FnZShjb25z
dCBXVEZMb2dDaGFubmVsJiwgV1RGTG9nTGV2ZWwsIFZlY3RvcjxKU09OTG9nVmFsdWU+JiYpIGZp
bmFsOwpAQCAtMTkzMSw2ICsxOTM1LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgICAgICAKICAg
ICBSZWZQdHI8SGlnaGxpZ2h0UmVnaXN0ZXI+IG1faGlnaGxpZ2h0UmVnaXN0ZXI7CisgICAgUmVm
UHRyPEhpZ2hsaWdodFJlZ2lzdGVyPiBtX2FwcEhpZ2hsaWdodFJlZ2lzdGVyOwogCiAgICAgVGlt
ZXIgbV92aXN1YWxVcGRhdGVzU3VwcHJlc3Npb25UaW1lcjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1N0YXRpY1JhbmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RhdGljUmFu
Z2UuaAppbmRleCA3NjkwMTEzZGY4YTJhZTliYzgyNTU2YzRhYmYxMGY5NzJlMjJhN2FlLi5mN2Q3
ZjViNGYzNDA3NzZjMDIwMzdmYzk4MzQ5OGExNTVlOTRlMTFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU3RhdGljUmFuZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RhdGlj
UmFuZ2UuaApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAgIHN0YXRpYyBF
eGNlcHRpb25PcjxSZWY8U3RhdGljUmFuZ2U+PiBjcmVhdGUoSW5pdCYmKTsKLSAgICBzdGF0aWMg
UmVmPFN0YXRpY1JhbmdlPiBjcmVhdGUoY29uc3QgU2ltcGxlUmFuZ2UmKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgUmVmPFN0YXRpY1JhbmdlPiBjcmVhdGUoY29uc3QgU2ltcGxlUmFuZ2Um
KTsKICAgICBzdGF0aWMgUmVmPFN0YXRpY1JhbmdlPiBjcmVhdGUoU2ltcGxlUmFuZ2UmJik7CiAK
ICAgICBOb2RlJiBzdGFydENvbnRhaW5lcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNpbXBsZVJh
bmdlOjpzdGFydENvbnRhaW5lcigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxp
Z2h0RGF0YS5jcHAKaW5kZXggMzllYjE1MTA5YWE2YzAyYTY4NmJlMDRkZTBjZGQ2YjAzN2M4ZmM5
Yy4uMWY2Yjg4NmM5MTEwMTQ0OTBmMjc2YmI0ZDQzMGU3ZjFiYTZjMjhhYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcApAQCAtODIsNyArODIsNyBAQCB2b2lk
IFJlbmRlclJhbmdlSXRlcmF0b3I6OmNoZWNrRm9yU3Bhbm5lcigpCiAgICAgbV9jdXJyZW50ID0g
cGxhY2Vob2xkZXIuc3Bhbm5lcigpOwogfQogCi1zdGF0aWMgUmVuZGVyT2JqZWN0KiByZW5kZXJl
ckFmdGVyT2Zmc2V0KGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIHVuc2lnbmVkIG9mZnNl
dCkgLy8gPE1NRz4gdXNlZCBpbiBib3RoLCBtaWdodCBzaG91bGQgbm90IGJlIHN0YXRpYworc3Rh
dGljIFJlbmRlck9iamVjdCogcmVuZGVyZXJBZnRlck9mZnNldChjb25zdCBSZW5kZXJPYmplY3Qm
IHJlbmRlcmVyLCB1bnNpZ25lZCBvZmZzZXQpCiB7CiAgICAgYXV0byogY2hpbGQgPSByZW5kZXJl
ci5jaGlsZEF0KG9mZnNldCk7CiAgICAgcmV0dXJuIGNoaWxkID8gY2hpbGQgOiByZW5kZXJlci5u
ZXh0SW5QcmVPcmRlckFmdGVyQ2hpbGRyZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9J
bmxpbmVUZXh0Qm94LmNwcAppbmRleCBlMDkwZjE2YTgzNTk3MzI1YTZkZTM5MGUwYjlmZGNjNDNj
YjA3OWRjLi5hMTE2MTMyOTMyNTAyODM2NjNkNTMwY2ZhYWQ4M2NkYTVkNmM0OTAwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCkBAIC04NDYsNiArODQ2LDEz
IEBAIGF1dG8gSW5saW5lVGV4dEJveDo6cmVzb2x2ZVN0eWxlRm9yTWFya2VkVGV4dChjb25zdCBN
YXJrZWRUZXh0JiBtYXJrZWRUZXh0LCBjb25zCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAg
ICAgICAgYnJlYWs7CisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorICAgIGNhc2UgTWFya2Vk
VGV4dDo6QXBwSGlnaGxpZ2h0OiB7CisgICAgICAgIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPiBzdHlsZUNvbG9yT3B0aW9ucyA9IHsgU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVt
QXBwZWFyYW5jZSB9OworICAgICAgICBzdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSByZW5kZXJlcigp
LnRoZW1lKCkuc3lzdGVtQ29sb3IoQ1NTVmFsdWVBcHBsZVN5c3RlbUFwcEhpZ2hsaWdodEJhY2tn
cm91bmQsIHN0eWxlQ29sb3JPcHRpb25zKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorI2VuZGlm
CiAgICAgY2FzZSBNYXJrZWRUZXh0OjpEcmFnZ2VkQ29udGVudDoKICAgICAgICAgc3R5bGUuYWxw
aGEgPSAwLjI1OwogICAgICAgICBicmVhazsKQEAgLTEwNjcsNiArMTA3NCwxOCBAQCBWZWN0b3I8
TWFya2VkVGV4dD4gSW5saW5lVGV4dEJveDo6Y29sbGVjdE1hcmtlZFRleHRzRm9ySGlnaGxpZ2h0
cyhUZXh0UGFpbnRQaGFzZQogICAgICAgICAgICAgICAgIG1hcmtlZFRleHRzLmFwcGVuZCh7IGhp
Z2hsaWdodFN0YXJ0LCBoaWdobGlnaHRFbmQsIE1hcmtlZFRleHQ6OkhpZ2hsaWdodCwgbnVsbHB0
ciwgaGlnaGxpZ2h0LmtleSB9KTsKICAgICAgICAgfQogICAgIH0KKyNpZiBFTkFCTEUoQVBQX0hJ
R0hMSUdIVFMpCisgICAgZm9yIChhdXRvJiBoaWdobGlnaHQgOiByZW5kZXJlcigpLmRvY3VtZW50
KCkuYXBwSGlnaGxpZ2h0UmVnaXN0ZXIoKS5tYXAoKSkgeworICAgICAgICBmb3IgKGF1dG8mIHJh
bmdlRGF0YSA6IGhpZ2hsaWdodC52YWx1ZS0+cmFuZ2VzRGF0YSgpKSB7CisgICAgICAgICAgICBp
ZiAoIWhpZ2hsaWdodERhdGEuc2V0UmVuZGVyUmFuZ2UocmFuZ2VEYXRhKSkKKyAgICAgICAgICAg
ICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgYXV0byBbaGlnaGxpZ2h0U3RhcnQsIGhpZ2hs
aWdodEVuZF0gPSBoaWdobGlnaHRTdGFydEVuZChoaWdobGlnaHREYXRhKTsKKyAgICAgICAgICAg
IGlmIChoaWdobGlnaHRTdGFydCA8IGhpZ2hsaWdodEVuZCkKKyAgICAgICAgICAgICAgICBtYXJr
ZWRUZXh0cy5hcHBlbmQoeyBoaWdobGlnaHRTdGFydCwgaGlnaGxpZ2h0RW5kLCBNYXJrZWRUZXh0
OjpBcHBIaWdobGlnaHQgfSk7CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKICAgICByZXR1cm4g
bWFya2VkVGV4dHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9N
YXJrZWRUZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWFya2VkVGV4dC5oCmluZGV4
IDczYzA2MjExZmU0YWE0MzMyYTJiODI4NDAxYzljYWQxOWYwOTFkMjkuLmU3OTc4YTY0Y2M3YjAx
MWY2MDgzOWIzZjBmN2I1ZTViMGNiODc4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9NYXJrZWRUZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL01hcmtl
ZFRleHQuaApAQCAtNDIsNiArNDIsOSBAQCBzdHJ1Y3QgTWFya2VkVGV4dCB7CiAgICAgICAgIFRl
eHRNYXRjaCwKICAgICAgICAgRGljdGF0aW9uQWx0ZXJuYXRpdmVzLAogICAgICAgICBIaWdobGln
aHQsCisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorICAgICAgICBBcHBIaWdobGlnaHQsCisj
ZW5kaWYKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICAgICAvLyBGSVhNRTogU2VlIDxy
ZGFyOi8vcHJvYmxlbS84OTMzMzUyPi4gQWxzbywgcmVtb3ZlIHRoZSBQTEFURk9STShJT1NfRkFN
SUxZKS1ndWFyZC4KICAgICAgICAgRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlcywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmluZGV4IDI2YzIzNjEy
NzQwNTZmYWUwODZjNTk1Yzg4ZmQ5ZmE5MTZiNGQ3MDcuLjdkNGEwN2E2NTUyY2NlODljODRhZDdk
ZjdhMjI5ZWI0MTg4YjhjMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZXBsYWNlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJl
cGxhY2VkLmNwcApAQCAtMTQyLDYgKzE0MiwyMSBAQCBpbmxpbmUgc3RhdGljIGJvb2wgZHJhZ2dl
ZENvbnRlbnRDb250YWluc1JlcGxhY2VkRWxlbWVudChjb25zdCBWZWN0b3I8UmVuZGVyZWREbwog
Q29sb3IgUmVuZGVyUmVwbGFjZWQ6OmNhbGN1bGF0ZUhpZ2hsaWdodENvbG9yKCkgY29uc3QKIHsK
ICAgICBIaWdobGlnaHREYXRhIGhpZ2hsaWdodERhdGE7CisjaWYgRU5BQkxFKEFQUF9ISUdITElH
SFRTKQorICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogZG9jdW1lbnQoKS5hcHBIaWdobGlnaHRS
ZWdpc3RlcigpLm1hcCgpKSB7CisgICAgICAgIGZvciAoYXV0byYgcmFuZ2VEYXRhIDogaGlnaGxp
Z2h0LnZhbHVlLT5yYW5nZXNEYXRhKCkpIHsKKyAgICAgICAgICAgIGlmICghaGlnaGxpZ2h0RGF0
YS5zZXRSZW5kZXJSYW5nZShyYW5nZURhdGEpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor
CisgICAgICAgICAgICBhdXRvIHN0YXRlID0gaGlnaGxpZ2h0RGF0YS5oaWdobGlnaHRTdGF0ZUZv
clJlbmRlcmVyKCp0aGlzKTsKKyAgICAgICAgICAgIGlmICghaXNIaWdobGlnaHRlZChzdGF0ZSwg
aGlnaGxpZ2h0RGF0YSkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAg
IE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucyA9IHsgU3R5
bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSB9OworICAgICAgICAgICAgICAg
IHJldHVybiB0aGVtZSgpLnN5c3RlbUNvbG9yKENTU1ZhbHVlQXBwbGVTeXN0ZW1BcHBIaWdobGln
aHRCYWNrZ3JvdW5kLCBzdHlsZUNvbG9yT3B0aW9ucyk7CisgICAgICAgIH0KKyAgICB9CisjZW5k
aWYKICAgICBmb3IgKGF1dG8mIGhpZ2hsaWdodCA6IGRvY3VtZW50KCkuaGlnaGxpZ2h0UmVnaXN0
ZXIoKS5tYXAoKSkgewogICAgICAgICBmb3IgKGF1dG8mIHJhbmdlRGF0YSA6IGhpZ2hsaWdodC52
YWx1ZS0+cmFuZ2VzRGF0YSgpKSB7CiAgICAgICAgICAgICBpZiAoIWhpZ2hsaWdodERhdGEuc2V0
UmVuZGVyUmFuZ2UocmFuZ2VEYXRhKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWUuY3BwCmluZGV4IDA0YTkzMGM4MGE3Yzc4ZGMwMTA4MDUyOTE1MDMyOWYzYWEzYTEzMmIuLmRl
MzMzNzU0ZGE2NjY4MmExNTgwMWQyZWEzZDVjMGEzZWFhMGUwNWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcApAQCAtMTM0OCw2ICsxMzQ4LDEzIEBAIENvbG9yIFJl
bmRlclRoZW1lOjpwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvcjo6T3B0aW9uCiAgICAgcmV0dXJuIENvbG9yOjp5ZWxsb3c7CiB9CiAKKyNpZiBFTkFC
TEUoQVBQX0hJR0hMSUdIVFMpCitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BcHBIaWdobGln
aHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0Cit7CisgICAgcmV0
dXJuIENvbG9yOjp5ZWxsb3c7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
CiAKIENvbG9yIFJlbmRlclRoZW1lOjp0YXBIaWdobGlnaHRDb2xvcigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZS5oCmluZGV4IGJlMTk5MDNkNWFiNjQ2ZmFlOTQyY2MyMjlkNDFj
MTQ4ZThkNGU3ZjUuLjhlYTliODk0NmNhYTJmNjYzYTYxNjdkODY3YWRiNzkyMGY4ZTg1MDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCkBAIC0xNTcsNiArMTU3LDkgQEAg
cHVibGljOgogICAgIC8vIEhpZ2hsaWdodGluZyBjb2xvciBmb3Igc2VhcmNoIG1hdGNoZXMuCiAg
ICAgQ29sb3IgdGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPikgY29uc3Q7CiAKKyAgICAvLyBEZWZhdWx0IGhpZ2hsaWdodGluZyBjb2xvciBmb3Ig
YXBwIGhpZ2hsaWdodHMuCisgICAgQ29sb3IgYXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKwogICAgIHZpcnR1YWwgQ29sb3IgZGlzYWJsZWRU
ZXh0Q29sb3IoY29uc3QgQ29sb3ImIHRleHRDb2xvciwgY29uc3QgQ29sb3ImIGJhY2tncm91bmRD
b2xvcikgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBDb2xvciBmb2N1c1JpbmdDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwpAQCAtMjc1LDcgKzI3OCw5IEBA
IHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29u
c3Q7CiAKICAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0KKyNpZiBFTkFCTEUoQVBQ
X0hJR0hMSUdIVFMpCisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisjZW5kaWYKICAgICB2aXJ0
dWFsIGJvb2wgc3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c0xpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KaW5kZXggZGNlYmNlNDg1ZTM2MjM1OGM4NGNl
NDIwYWQ4NmY0YTMyNjQyNDU5Yi4uN2YxYTA5ZjdmNmNiMGZiMDM1NDgzNDM2MzY2Y2ZlYjE5NmUy
MDBjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQpAQCAt
MTI4OSw3ICsxMjg5LDEwIEBAIHN0YXRpYyBjb25zdCBWZWN0b3I8Q1NTVmFsdWVJREFuZFNlbGVj
dG9yPiYgY3NzVmFsdWVJRFNlbGVjdG9yTGlzdCgpCiAgICAgICAgICAgICB7IENTU1ZhbHVlQXBw
bGVTeXN0ZW1QaW5rLCBAc2VsZWN0b3Ioc3lzdGVtUGlua0NvbG9yKSB9LAogICAgICAgICAgICAg
eyBDU1NWYWx1ZUFwcGxlU3lzdGVtUHVycGxlLCBAc2VsZWN0b3Ioc3lzdGVtUHVycGxlQ29sb3Ip
IH0sCiAgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1SZWQsIEBzZWxlY3RvcihzeXN0
ZW1SZWRDb2xvcikgfSwKLSAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVllbGxvdywg
QHNlbGVjdG9yKHN5c3RlbVllbGxvd0NvbG9yKSB9CisgICAgICAgICAgICB7IENTU1ZhbHVlQXBw
bGVTeXN0ZW1ZZWxsb3csIEBzZWxlY3RvcihzeXN0ZW1ZZWxsb3dDb2xvcikgfSwKKyNpZiBFTkFC
TEUoQVBQX0hJR0hMSUdIVFMpCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1BcHBI
aWdobGlnaHRCYWNrZ3JvdW5kLCBAc2VsZWN0b3Ioc3lzdGVtWWVsbG93Q29sb3IpIH0KKyNlbmRp
ZgogICAgICAgICB9KTsKICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVNYWMuaAppbmRleCA0ZjU3OTY1OTM2OWVjNGI2ZTkwMzRmNzkwY2ZmMmUwMjliNWM0ZTE1
Li4xZDlmN2QzZTMzZmFlMDBjNWI3MjRkYjhiYTBmZmIzZDdkNzM5MDkxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaApAQCAtNjYsNiArNjYsOSBAQCBwdWJsaWM6
CiAgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKICAgICBDb2xv
ciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikg
Y29uc3QgZmluYWw7CiAgICAgQ29sb3IgcGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyNpZiBFTkFCTEUo
QVBQX0hJR0hMSUdIVFMpCisgICAgQ29sb3IgcGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworI2VuZGlmCiAKICAgICBT
Y3JvbGxiYXJDb250cm9sU2l6ZSBzY3JvbGxiYXJDb250cm9sU2l6ZUZvclBhcnQoQ29udHJvbFBh
cnQpIGZpbmFsIHsgcmV0dXJuIFNjcm9sbGJhckNvbnRyb2xTaXplOjpTbWFsbDsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggMWE1NTAzOWQ4OGUw
Y2Y5M2Y2Mjg3NmI1MjcyY2VjODk3MjY2NTJlYy4uOTEwODc1YjQ4MjUyOTNiYTA2NGIwNmM1YWJm
ZmQzOTc2MGI2ZTUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1h
Yy5tbQpAQCAtNDc2LDYgKzQ3NiwxNCBAQCBDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1U
ZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdAogICAgIHJl
dHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIGZpbmRIaWdobGlnaHRDb2xvcl0pOwogfQog
CisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRm
b3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlv
bnMpIGNvbnN0Cit7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVh
cmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFy
YW5jZSkpOworICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIHN5c3RlbVllbGxv
d0NvbG9yXSk7Cit9CisjZW5kaWYKKwogc3RhdGljIFNSR0JBPHVpbnQ4X3Q+IG1lbnVCYWNrZ3Jv
dW5kQ29sb3IoKQogewogICAgIFJldGFpblB0cjxOU0JpdG1hcEltYWdlUmVwPiBvZmZzY3JlZW5S
ZXAgPSBhZG9wdE5TKFtbTlNCaXRtYXBJbWFnZVJlcCBhbGxvY10gaW5pdFdpdGhCaXRtYXBEYXRh
UGxhbmVzOm5pbCBwaXhlbHNXaWRlOjEgcGl4ZWxzSGlnaDoxCkBAIC03MDIsNiArNzEwLDEwIEBA
IENvbG9yIFJlbmRlclRoZW1lTWFjOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVlSUQs
IE9wdGlvblNldDxTdHlsZUNvbG9yOjpPCiAgICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3Rv
cihzeXN0ZW1SZWRDb2xvcik7CiAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1Z
ZWxsb3c6CiAgICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1ZZWxsb3dDb2xv
cik7CisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorICAgICAgICAgICAgY2FzZSBDU1NWYWx1
ZUFwcGxlU3lzdGVtQXBwSGlnaGxpZ2h0QmFja2dyb3VuZDoKKyAgICAgICAgICAgICAgICByZXR1
cm4gQHNlbGVjdG9yKHN5c3RlbVllbGxvd0NvbG9yKTsKKyNlbmRpZgogICAgICAgICAgICAgZGVm
YXVsdDoKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29h
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0K
aW5kZXggMjlmYTg5NTFkYWVmMzYzZWNlY2RmOTAyY2JlNzI5ZTA2ZWNiZWViOC4uMTAyM2Y5Yzc3
OTgyYmZjYjk4NDM0ZGQyODhlNzY4OTNkYzc2MDRjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KQEAgLTU0Myw2ICs1NDMsMTcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmFkZEFjdGl2aXR5U3RhdGVVcGRhdGVDb21wbGV0aW9uSGFu
ZGxlcihDb21wbGV0aW9uSGFuZGxlcjx2b2kKICAgICBtX2FjdGl2aXR5U3RhdGVVcGRhdGVDYWxs
YmFja3MuYXBwZW5kKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAorI2lmIEVOQUJM
RShBUFBfSElHSExJR0hUUykKK3ZvaWQgV2ViUGFnZVByb3h5OjpjcmVhdGVBcHBIaWdobGlnaHRJ
blNlbGVjdGVkUmFuZ2UoYm9vbCBpbkN1cnJlbnRHcm91cCkKK3sKKyAgICBpZiAoIWhhc1J1bm5p
bmdQcm9jZXNzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OkNyZWF0ZUFwcEhpZ2hsaWdodEluU2VsZWN0ZWRSYW5nZShpbkN1cnJlbnRHcm91cCkpOwor
fQorCisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBNRVNTQUdFX0NI
RUNLX0NPTVBMRVRJT04KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmlu
ZGV4IDBmODc0Mjg5OTBkZTAwMTM0MzY3MmUyNDk0ODk1YWQxM2Q0MzMwMjguLmU1Y2Q3ODdmMmM0
YWEwYWVhNDNmNmVhYjc5N2Y4Zjk5NzBmZGNiMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcApAQCAtNjYyMSw2ICs2NjIxLDE2IEBAIHZvaWQgV2ViUGFnZVByb3h5
Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChjb25zdCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJiBp
dGVtKQogICAgICAgICBUZXh0Q2hlY2tlcjo6dG9nZ2xlU3BlbGxpbmdVSUlzU2hvd2luZygpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQorI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAgICBp
ZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdBZGRIaWdobGlnaHRUb05ld0dy
b3VwKSB7CisgICAgICAgIGNyZWF0ZUFwcEhpZ2hsaWdodEluU2VsZWN0ZWRSYW5nZShmYWxzZSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4
dE1lbnVJdGVtVGFnQWRkSGlnaGxpZ2h0VG9DdXJyZW50R3JvdXApIHsKKyAgICAgICAgY3JlYXRl
QXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJhbmdlKHRydWUpOworICAgICAgICByZXR1cm47CisgICAg
fQorI2VuZGlmCiAgICAgaWYgKGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnTGVh
cm5TcGVsbGluZyB8fCBpdGVtLmFjdGlvbigpID09IENvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNw
ZWxsaW5nKQogICAgICAgICArK21fcGVuZGluZ0xlYXJuT3JJZ25vcmVXb3JkTWVzc2FnZUNvdW50
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDg3OWY3MzJiMTFj
YjEyMzk3Mzg2NThlOGU1OGZiODdjNTAzNGYyYjguLmZlNDUyOTc1MDZmM2QzOGIwYTZiYzE3ZjUz
ZTdkZWNhOGY4OGFiMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBA
IC0xODIzLDYgKzE4MjMsMTAgQEAgcHVibGljOgogICAgIHZvaWQgcmVxdWVzdFNwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvbihjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lzaW9uKT4mJik7CiAg
ICAgdm9pZCByZXF1ZXN0U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQnlEZWZhdWx0QWN0aW9u
KGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJik7CiAKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgdm9pZCBjcmVhdGVB
cHBIaWdobGlnaHRJblNlbGVjdGVkUmFuZ2UoYm9vbCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAg
ICBXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYsIFdlYlByb2Nlc3NQcm94eSYsIFJlZjxBUEk6OlBh
Z2VDb25maWd1cmF0aW9uPiYmKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0KaW5kZXggYzUxNDdmNDMwNDc5MWFjZjY2M2QyMTQ1OWEyZTYzMWE0MzM2ZDc0Yi4u
ZDA5NTBmMjY0N2QzMTExMjYzYmVlZmVkOWVhNDM1Y2Y1NmEyODZiMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CkBAIC04NjE1LDEyICs4NjE1LDEyIEBAIC0gKHZvaWQpc2V0dXBBcHBIaWdobGlnaHRNZW51cwog
CiAtICh2b2lkKWNyZWF0ZUhpZ2hsaWdodEluQ3VycmVudEdyb3VwV2l0aFJhbmdlOihpZClzZW5k
ZXIKIHsKLSAgICAvLyBGSVhNRTogQWRkIEhpZ2hsaWdodCBsb2dpYy4KKyAgICBfcGFnZS0+Y3Jl
YXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJhbmdlKHRydWUpOwogfQogCiAtICh2b2lkKWNyZWF0
ZUhpZ2hsaWdodEluTmV3R3JvdXBXaXRoUmFuZ2U6KGlkKXNlbmRlcgogewotICAgIC8vIEZJWE1F
OiBBZGQgSGlnaGxpZ2h0IGxvZ2ljLgorICAgIF9wYWdlLT5jcmVhdGVBcHBIaWdobGlnaHRJblNl
bGVjdGVkUmFuZ2UoZmFsc2UpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggOTU3MGVjM2JhMDRhZTNhNzAzODM0OTU4ODBk
MDNiMjI1YmQ2MWQyYi4uMGUwYzhkNDEyNDU5Yzg3ZmQ2MTZkODA4NjY4MWE4MzkyZmJjOTUyYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE1
Niw2ICsxNTYsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRGF0YVRyYW5zZmVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9EYXRhYmFzZU1hbmFnZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RlcHJlY2F0
ZWRHbG9iYWxTZXR0aW5ncy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0RvY3VtZW50RnJhZ21lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3Vt
ZW50TG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIu
aD4KQEAgLTE4Niw2ICsxODcsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTFBsdWdJbkVsZW1l
bnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxTZWxlY3RFbGVtZW50Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
SGlnaGxpZ2h0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9IaWdobGlnaHRSZWdpc3Rlci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvSGlzdG9yeUNvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hp
c3RvcnlJdGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IaXRUZXN0UmVzdWx0Lmg+CkBAIC0yMjks
NiArMjMyLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TaGFkb3dSb290Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1N0YXRpY1JhbmdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdHlsZVBy
b3BlcnRpZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1YmZyYW1lTG9hZGVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TdWJzdGl0dXRlRGF0YS5oPgpAQCAtNzAzMyw2ICs3MDM3LDI2IEBAIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgV2ViUGFnZTo6ZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5KCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorYm9v
bCBXZWJQYWdlOjpjcmVhdGVBcHBIaWdobGlnaHRJblNlbGVjdGVkUmFuZ2UoYm9vbCBpbkN1cnJl
bnRHcm91cCkKK3sKKyAgICBhdXRvIGRvY3VtZW50ID0gbWFrZVJlZlB0cihtX3BhZ2UtPmZvY3Vz
Q29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpLmRvY3VtZW50KCkpOworCisgICAgYXV0
byBmcmFtZSA9IG1ha2VSZWZQdHIoZG9jdW1lbnQtPmZyYW1lKCkpOworICAgIGlmICghZnJhbWUp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gc2VsZWN0aW9uUmFuZ2UgPSBmcmFt
ZS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKTsKKyAgICBpZiAo
IXNlbGVjdGlvblJhbmdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBkb2N1bWVudC0+
YXBwSGlnaGxpZ2h0UmVnaXN0ZXIoKS5hZGRBcHBIaWdobGlnaHQoU3RhdGljUmFuZ2U6OmNyZWF0
ZShzZWxlY3Rpb25SYW5nZS52YWx1ZSgpKSk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKyNlbmRp
ZgorCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGE3
NDhiZTIxMzVlM2QyMmI0MGRiMDVhMTYzYWVlMDBhZDUzNDI0ZDEuLjAwNzZhNDMzMzdiYTMxNGNk
MWFhMjQyZTc3N2I0NzQ3NmMzMTlkOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKQEAgLTEzNjYsNiArMTM2NiwxMCBAQCBwdWJsaWM6CiAgICAgUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5JiBlbnN1cmVSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHko
KTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorICAgIGJvb2wgY3JlYXRl
QXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJhbmdlKGJvb2wpOworI2VuZGlmCisKIHByaXZhdGU6CiAg
ICAgV2ViUGFnZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycyYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMTU1ZjFmNGE0YTk2Mjg5ZTEwODcxZjIyYTU5NTUwNzBl
ZDBlZTU4ZC4uZjYyYzZmM2YzZjhlMjBjOThmNzkyZGRhMjQ0MDI0NDZiZmM2Y2NlYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluCkBAIC02MTYsNCArNjE2LDkgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChl
bnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKIAogICAgIFNl
dEhhc1Jlc291cmNlTG9hZENsaWVudChib29sIGhhcykKICAgICBTZXRDYW5Vc2VDcmVkZW50aWFs
U3RvcmFnZShib29sIGNhblVzZSkKKworI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAgICBD
cmVhdGVBcHBIaWdobGlnaHRJblNlbGVjdGVkUmFuZ2UoYm9vbCBpbkN1cnJlbnRHcm91cCkKKyNl
bmRpZgorCiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggOWUzNWQwMDM1ZDYzZDRiZDU2MmYzMmQ0NjkyODZiOGEzZWNjNmM3Yy4uNzk4NjQ1ODFj
ZWY4MmM0OGUwNjgyYmFkYmU1ODliYmJmNGZhMzZiNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTExLTMwICBN
ZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRl
IGFuZCBkcmF3IGFwcCBoaWdobGlnaHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTkzNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9NYXJrZWRUZXh0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorCiAyMDIwLTExLTE5ICBQZXIg
QXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIElzc3Vl
IHNhbmRib3ggZXh0ZW5zaW9uIHRvIFdlYiBJbnNwZWN0b3Igc2VydmljZQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL01hcmtlZFRleHQuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL01hcmtlZFRleHQuY3BwCmluZGV4IDZhOGU1NzI5
MWJmNWQwMTY3NjhkOGUyOTJlMmI4YzY3YWMwMDg1ZmIuLjdmYTZhZmE2Y2Y1YjhlNGYwNzcyOWNi
OWFhZjkwOGU3ZmJkYzM1OTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9NYXJrZWRUZXh0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvTWFya2VkVGV4dC5jcHAKQEAgLTU3LDYgKzU3LDEwIEBAIHN0ZDo6b3N0cmVhbSYgb3Bl
cmF0b3I8PChzdGQ6Om9zdHJlYW0mIG9zLCBNYXJrZWRUZXh0OjpUeXBlIHR5cGUpCiAgICAgICAg
IHJldHVybiBvcyA8PCAiVGV4dE1hdGNoIjsKICAgICBjYXNlIE1hcmtlZFRleHQ6OkhpZ2hsaWdo
dDoKICAgICAgICAgcmV0dXJuIG9zIDw8ICJIaWdobGlnaHQiOworI2lmIEVOQUJMRShBUFBfSElH
SExJR0hUUykKKyAgICBjYXNlIE1hcmtlZFRleHQ6OkFwcEhpZ2hsaWdodDoKKyAgICAgICAgcmV0
dXJuIG9zIDw8ICJBcHBIaWdobGlnaHQiOworI2VuZGlmCiAgICAgY2FzZSBNYXJrZWRUZXh0OjpV
bm1hcmtlZDoKICAgICAgICAgcmV0dXJuIG9zIDw8ICJVbm1hcmtlZCI7CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415152</attachid>
            <date>2020-12-01 12:18:43 -0800</date>
            <delta_ts>2020-12-01 17:13:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219365-20201201121842.patch</filename>
            <type>text/plain</type>
            <size>39169</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QzYzFmNDI4NGY0ZmI3
ODRjOTEyZTIxNjUwMzA2NGNiNGZkYTExMy4uODU1N2M4NzVhN2IwYWYyNzdlODQzNDMyNjVkNmE5
NTE1MDc0OWUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTExLTMwICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGFu
ZCBkcmF3IGFwcCBoaWdobGlnaHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTkzNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDcmVhdGUgYSBzZXBhcmF0ZSBoaWdobGlnaHQgcmVnaXN0ZXIgZm9yIGFw
cCBoaWdobGlnaHRzIHNvIHRoYXQgdGhlcmUgaXMgYSBjbGVhciBzZXBhcmF0aW9uCisgICAgICAg
IHdpdGggbm8gcmlzayBvZiB3ZWIgY29udGVudCBhY2Nlc3NpbmcgdGhlIHdyb25nIGhpZ2hsaWdo
dHMuIEV4dGVuZCByZW5kZXJpbmcgdG8gaW5jbHVkZSB0aGUgCisgICAgICAgIGFwcCBoaWdobGln
aHRzIHdpdGggdGhlIGN1cnJlbnQgZGVmYXVsdCBzZXR0aW5ncy4gCisKKyAgICAgICAgKiBNb2R1
bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaDoKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRSZWdpc3Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSZWdpc3Rl
cjo6YXBwSGlnaGxpZ2h0S2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJlZ2lzdGVy
OjphZGRBcHBIaWdobGlnaHQpOgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dFJlZ2lzdGVyLmg6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YXBwSGlnaGxpZ2h0UmVnaXN0
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNvbGxlY3RSYWdlRGF0YUZyb21SZWdp
c3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSGlnaGxpZ2h0UG9zaXRp
b25zKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vU3RhdGljUmFu
Z2UuaDoKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVk
KToKKyAgICAgICAgKiByZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpyZW5kZXJlckFmdGVyT2Zmc2V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4
dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpyZXNvbHZlU3R5bGVG
b3JNYXJrZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OmNvbGxlY3RN
YXJrZWRUZXh0c0ZvckhpZ2hsaWdodHMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9NYXJr
ZWRUZXh0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGhlbWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpjc3NWYWx1ZUlEU2VsZWN0b3JM
aXN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU1hYzo6cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IgY29uc3QpOgorCiAyMDIwLTExLTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgV29ya2xldC5hZGRNb2R1bGUo
KSBzaG91bGQgcmVqZWN0IHByb21pc2Ugd2l0aCBhbiBBYm9ydEVycm9yIHdoZW4gdGhlIG5ldHdv
cmsgbG9hZCBmYWlscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjNGI0NzFhNGViODIwZjUyMjc2MmIyYTE4M2YzZGJi
Nzc3N2M5YjMyLi45OGQzNmRlNGQ3NDcxNzU5MGIxMGQ1NTMxNzYxNjc4MWI5MDg1ZmE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTExLTMwICBNZWdhbiBHYXJkbmVyICA8bWVnYW5f
Z2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGFuZCBkcmF3IGFwcCBoaWdobGln
aHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkz
NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIYW5k
bGUgdGhlIGNyZWF0aW9uIG9mIEFwcCBIaWdobGlnaHRzIGZyb20gc2VsZWN0aW9ucyB3aGVuIHRo
ZSBjb250ZXh0IG1lbnUgaXRlbSBpcyBzZWxlY3RlZC4gCisgICAgICAgIFRoaXMgcGF0Y2ggd2ls
bCBhZGQgdGhlIGhpZ2hsaWdodHMgdG8gdGhlIERvY3VtZW50J3MgYXBwIEhpZ2hsaWdodCByZWdp
c3RlciwgYW5kIGhhbmRsZSBkcmF3aW5nCisgICAgICAgIHRoZW0gaW4gSW5saW5lVGV4dEJveC4g
TGF0ZXIgcGF0Y2hlcyB3aWxsIGhhbmRsZSB0aGUgcGVyc2lzdGVudCBzdG9yYWdlIGFuZCByZXBv
cHVsYXRpb24gb2YgYXBwCisgICAgICAgIGhpZ2hsaWdodHMgb24gbGF1bmNoIG9yIHJlbG9hZCBv
ZiBhIHBhZ2UuIAorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0ZUFwcEhpZ2hsaWdodElu
U2VsZWN0ZWRSYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNyZWF0ZUhpZ2hsaWdodEluQ3Vy
cmVudEdyb3VwV2l0aFJhbmdlOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNyZWF0ZUhp
Z2hsaWdodEluTmV3R3JvdXBXaXRoUmFuZ2U6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjcmVhdGVBcHBIaWdo
bGlnaHRJblNlbGVjdGVkUmFuZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46
CisKIDIwMjAtMTEtMTkgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFttYWNPU10gSXNzdWUgc2FuZGJveCBleHRlbnNpb24gdG8gV2ViIEluc3BlY3RvciBz
ZXJ2aWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAwMjNlMTUzZGEzYzY3ZGUxN2EyNTJiZWYxY2Fi
MjY4N2Q0MzkzMDZkLi5jYjJhM2YzMWE0N2M5YTI5MzkxZTc1MWY1ZjBjYmI3NjY1ZjRmMzRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKQEAgLTQ0LDYgKzQ0LDkgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9G
UkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNh
bGxiYWNrLmgKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uT3B0aW9ucy5oCiAKKyAg
ICBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaAorICAgIE1vZHVsZXMvaGlnaGxpZ2h0L0hp
Z2hsaWdodFJlZ2lzdGVyLmgKKwogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkFjdGl2ZURPTU9i
amVjdC5oCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmgKICAg
ICBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oCmluZGV4IGYwZGZh
NTY4MjI4YzgzYjIwZWJlOGEyZjkzNWVmMGY1ZGU3NTMwZmQuLjlkOThjODcxNGViYzA1YTQ5ZDdk
OTZhMzJlZjRiMGMyZjlkMjUxNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0hpZ2hsaWdodC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxp
Z2h0L0hpZ2hsaWdodC5oCkBAIC01NCw3ICs1NCw3IEBAIHN0cnVjdCBIaWdobGlnaHRSYW5nZURh
dGEgOiBSZWZDb3VudGVkPEhpZ2hsaWdodFJhbmdlRGF0YT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0
CiAKIGNsYXNzIEhpZ2hsaWdodCA6IHB1YmxpYyBSZWZDb3VudGVkPEhpZ2hsaWdodD4gewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0PiBjcmVhdGUoU3RhdGljUmFuZ2UmKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEhpZ2hsaWdodD4gY3JlYXRlKFN0YXRpY1Jhbmdl
Jik7CiAgICAgdm9pZCBjbGVhckZyb21TZXRMaWtlKCk7CiAgICAgYm9vbCBhZGRUb1NldExpa2Uo
U3RhdGljUmFuZ2UmKTsKICAgICBib29sIHJlbW92ZUZyb21TZXRMaWtlKGNvbnN0IFN0YXRpY1Jh
bmdlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRSZWdpc3Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRSZWdpc3Rlci5jcHAKaW5kZXggOWUyMGI4NjkzNDI1Y2JjYWEwNmNjYjE0NGZlMDJkM2Nm
NjI4NWU4Yi4uNGFiNzQ0OWIwMzQzMzhiNjY3MmNiNmQwYTExNWFhYzY5MGU3ZDNiZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lz
dGVyLmNwcApAQCAtNTMsNCArNTMsMTcgQEAgYm9vbCBIaWdobGlnaHRSZWdpc3Rlcjo6cmVtb3Zl
KGNvbnN0IFN0cmluZyYga2V5KQogICAgIHJldHVybiBtX21hcC5yZW1vdmUoa2V5KTsKIH0KIAor
QVNDSUlMaXRlcmFsIEhpZ2hsaWdodFJlZ2lzdGVyOjphcHBIaWdobGlnaHRLZXkoKQoreworICAg
IHJldHVybiAiYXBwSGlnaGxpZ2h0S2V5Il9zOworfQorCit2b2lkIEhpZ2hsaWdodFJlZ2lzdGVy
OjphZGRBcHBIaWdobGlnaHQoUmVmPFN0YXRpY1JhbmdlPiYmIHZhbHVlKQoreworICAgIGlmICht
X21hcC5jb250YWlucyhhcHBIaWdobGlnaHRLZXkoKSkpCisgICAgICAgIG1fbWFwLmdldChhcHBI
aWdobGlnaHRLZXkoKSktPmFkZFRvU2V0TGlrZSh2YWx1ZSk7CisgICAgZWxzZQorICAgICAgICBz
ZXRGcm9tTWFwTGlrZShhcHBIaWdobGlnaHRLZXkoKSwgSGlnaGxpZ2h0OjpjcmVhdGUoV1RGTW92
ZSh2YWx1ZSkpKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9o
aWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGln
aGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmgKaW5kZXggNDA1MzBmODM2MjNhMzMzYjIwY2ZhNmZk
NWRjMGY1NjMzNDQxMDQ2MS4uZDUyOTFmZGE0ZDk1MzlkMzBiN2UzNjNjZTYzYTBlMjgzZDBlODNm
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0
UmVnaXN0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGln
aHRSZWdpc3Rlci5oCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IERPTU1hcEFkYXB0ZXI7CiBjbGFzcyBET01TdHJpbmc7CiBjbGFzcyBIaWdobGlnaHQ7CitjbGFz
cyBTdGF0aWNSYW5nZTsKIAogY2xhc3MgSGlnaGxpZ2h0UmVnaXN0ZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxIaWdobGlnaHRSZWdpc3Rlcj4gewogcHVibGljOgpAQCAtNDMsNiArNDQsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRGcm9tTWFwTGlrZShTdHJpbmcmJiwgUmVmPEhpZ2hsaWdodD4mJik7
CiAgICAgdm9pZCBjbGVhcigpOwogICAgIGJvb2wgcmVtb3ZlKGNvbnN0IFN0cmluZyYpOworCisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRBcHBIaWdobGlnaHQoUmVmPFN0YXRpY1JhbmdlPiYm
KTsKKyAgICBzdGF0aWMgQVNDSUlMaXRlcmFsIGFwcEhpZ2hsaWdodEtleSgpOwogICAgIAogICAg
IGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBSZWY8SGlnaGxpZ2h0Pj4mIG1hcCgpIGNvbnN0IHsgcmV0
dXJuIG1fbWFwOyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzVhNTIyYzJhYmViMGQxNmQ1YzY4ODZjNzE3MDY1NzI0
OTIwYzk0ZS4uZjk5Yjk4ZmM5NWE3NDRlYzM0YTdkYjczYThlNjEzNzJhOGRkMWU4NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTIxMCw2ICsxMjEwLDggQEAKIAkJNDNFREQ2N0YxQjQ4NURCRjAwNjQwRTc1IC8qIENvbWJpbmVk
RmlsdGVyc0FscGhhYmV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0M0VERDY3RDFCNDg1REJGMDA2NDBFNzUgLyogQ29tYmluZWRGaWx0ZXJzQWxwaGFi
ZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0
NDBFREJEMTI1NUUxMTZDMDAzMDBCQTcgLyogTG9jYWxpemFibGUuc3RyaW5ncyBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQ2RUU0RTgyNTVFMEQ5MjAw
NDU0NDYzIC8qIExvY2FsaXphYmxlLnN0cmluZ3MgKi87IH07CiAJCTQ0MTUyOTJFMEUxQUU4QTAw
MEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDE1MjkyQzBFMUFFOEEwMDBDNEEyRDAgLyogSFRN
TFBsdWdJbkltYWdlRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTQ0MzBEMDBCMjU3NUE4M0UwMDQ2RDQwMSAvKiBIaWdobGlnaHQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0RTg4RTUxMjM2
QTVDOEQwMDlCNDg0NyAvKiBIaWdobGlnaHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk0NDMwRDAwRDI1NzVBOEE1MDA0NkQ0MDEgLyogSGlnaGxp
Z2h0UmVnaXN0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ0RTg4RTUwMjM2QTU2QUMwMDlCNDg0NyAvKiBIaWdobGlnaHRSZWdpc3Rlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ0NTc3NUU1MjA0
NzJGNzMwMDhEQ0U1RCAvKiBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDU3NzVFNDIwNDcyRjczMDA4
RENFNUQgLyogTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ0NjNDRjY4MjIxMkZBNjgwMDFBODU3
NyAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M3OTQxRTIxQzU2QzI5MzAwQTRDNThFIC8qIERhdGFE
ZXRlY3RvcnNDb3JlU29mdExpbmsubW0gKi87IH07CiAJCTQ0NjVEN0JEMjUzNkQwNUUwMDE2NjY2
RCAvKiBTZWxlY3Rpb25SYW5nZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ0QjM4QkY0MjUzNjkwMUEwMEE0NDU4RCAvKiBTZWxlY3Rpb25SYW5n
ZURhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMzIwNTMsNyArMzIwNTUsOSBAQAogCQkJCTUxNUJFMTlDMUQ1NEY2QzEwMEREN0M2OCAvKiBI
SURHYW1lcGFkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTBBOTFEQTI0Q0YzRDhDMDBCRkQ4OUMg
LyogSElER2FtZXBhZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNUJFMTlFMUQ1NEY2
QzEwMEREN0M2OCAvKiBISURHYW1lcGFkUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ0
MzBEMDBCMjU3NUE4M0UwMDQ2RDQwMSAvKiBIaWdobGlnaHQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUNEQ0ZBQkJEMThDMEFGNzgwMDZGODQ1MCAvKiBIaWdobGlnaHREYXRhLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0NDMwRDAwRDI1NzVBOEE1MDA0NkQ0MDEgLyogSGlnaGxpZ2h0UmVnaXN0ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDOTREMTU0MEMyNzVDOEIwMDZCQzYxNyAvKiBIaXN0b3J5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5N0RDRTIwMjEwODA3Qzc1MDA1N0QzOTQgLyogSGlzdG9yeUNv
bnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNzQxRDExMEIwNzI1OUEwMEVENDQyQyAv
KiBIaXN0b3J5SXRlbS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtl
eXdvcmRzLmluCmluZGV4IDk5N2I0MjM5OWExOTkyZWRhMDg5NGY1MDlkMTQwMGUxYmM5MjdiODEu
LjBmYzEyNzE3MDAyNDgwYjY5MTVjNzVhMTc2ZmEwODI3NTEzYzQyNjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0yNTksNiArMjU5LDcgQEAgd2luZG93dGV4dAog
LWFwcGxlLXN5c3RlbS1wdXJwbGUKIC1hcHBsZS1zeXN0ZW0tcmVkCiAtYXBwbGUtc3lzdGVtLXll
bGxvdworLWFwcGxlLXN5c3RlbS1hcHAtaGlnaGxpZ2h0LWJhY2tncm91bmQKICNlbmRpZgogI2lm
IGRlZmluZWQoV1RGX1BMQVRGT1JNX01BQykgJiYgV1RGX1BMQVRGT1JNX01BQwogLWFwcGxlLXN5
c3RlbS1hbHRlcm5hdGUtc2VsZWN0ZWQtdGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXgg
NjQ2ZWU3ZWVjMDMzYzkwMzkzZWYwMzhlNDM3ZTA1YzZmZWNjYzlmZC4uMTgyOGI1YzU0MTFmZDMx
NmQ2NzM2MTM0YWFlZDViYzhjNWZjOTM5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0y
Nzc0LDIxICsyNzc0LDM0IEBAIEhpZ2hsaWdodFJlZ2lzdGVyJiBEb2N1bWVudDo6aGlnaGxpZ2h0
UmVnaXN0ZXIoKQogICAgIHJldHVybiAqbV9oaWdobGlnaHRSZWdpc3RlcjsKIH0KIAotdm9pZCBE
b2N1bWVudDo6dXBkYXRlSGlnaGxpZ2h0UG9zaXRpb25zKCkKK0hpZ2hsaWdodFJlZ2lzdGVyJiBE
b2N1bWVudDo6YXBwSGlnaGxpZ2h0UmVnaXN0ZXIoKQogewotICAgIFZlY3RvcjxXZWFrUHRyPEhp
Z2hsaWdodFJhbmdlRGF0YT4+IHJhbmdlc0RhdGE7Ci0gICAgaWYgKG1faGlnaGxpZ2h0UmVnaXN0
ZXIpIHsKLSAgICAgICAgZm9yIChhdXRvJiBoaWdobGlnaHQgOiBtX2hpZ2hsaWdodFJlZ2lzdGVy
LT5tYXAoKSkgewotICAgICAgICAgICAgZm9yIChhdXRvJiByYW5nZURhdGEgOiBoaWdobGlnaHQu
dmFsdWUtPnJhbmdlc0RhdGEoKSkgewotICAgICAgICAgICAgICAgIGlmIChyYW5nZURhdGEtPnN0
YXJ0UG9zaXRpb24gJiYgcmFuZ2VEYXRhLT5lbmRQb3NpdGlvbikKLSAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgaWYgKCZyYW5nZURhdGEtPnJhbmdlLT5zdGFy
dENvbnRhaW5lcigpLnRyZWVTY29wZSgpICE9ICZyYW5nZURhdGEtPnJhbmdlLT5lbmRDb250YWlu
ZXIoKS50cmVlU2NvcGUoKSkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAg
ICAgICAgICAgcmFuZ2VzRGF0YS5hcHBlbmQobWFrZVdlYWtQdHIocmFuZ2VEYXRhLnB0cigpKSk7
Ci0gICAgICAgICAgICB9CisgICAgaWYgKCFtX2FwcEhpZ2hsaWdodFJlZ2lzdGVyKQorICAgICAg
ICBtX2FwcEhpZ2hsaWdodFJlZ2lzdGVyID0gSGlnaGxpZ2h0UmVnaXN0ZXI6OmNyZWF0ZSgpOwor
ICAgIHJldHVybiAqbV9hcHBIaWdobGlnaHRSZWdpc3RlcjsKK30KKwordm9pZCBEb2N1bWVudDo6
Y29sbGVjdFJhbmdlRGF0YUZyb21SZWdpc3RlcihWZWN0b3I8V2Vha1B0cjxIaWdobGlnaHRSYW5n
ZURhdGE+PiYgcmFuZ2VzRGF0YSwgY29uc3QgSGlnaGxpZ2h0UmVnaXN0ZXImIGhpZ2hsaWdodFJl
Z2lzdGVyKQoreworICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogaGlnaGxpZ2h0UmVnaXN0ZXIu
bWFwKCkpIHsKKyAgICAgICAgZm9yIChhdXRvJiByYW5nZURhdGEgOiBoaWdobGlnaHQudmFsdWUt
PnJhbmdlc0RhdGEoKSkgeworICAgICAgICAgICAgaWYgKHJhbmdlRGF0YS0+c3RhcnRQb3NpdGlv
biAmJiByYW5nZURhdGEtPmVuZFBvc2l0aW9uKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICAgICAgaWYgKCZyYW5nZURhdGEtPnJhbmdlLT5zdGFydENvbnRhaW5lcigpLnRyZWVT
Y29wZSgpICE9ICZyYW5nZURhdGEtPnJhbmdlLT5lbmRDb250YWluZXIoKS50cmVlU2NvcGUoKSkK
KyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIHJhbmdlc0RhdGEuYXBwZW5k
KG1ha2VXZWFrUHRyKHJhbmdlRGF0YS5wdHIoKSkpOwogICAgICAgICB9CiAgICAgfQotICAgIAor
fQorCit2b2lkIERvY3VtZW50Ojp1cGRhdGVIaWdobGlnaHRQb3NpdGlvbnMoKQoreworICAgIFZl
Y3RvcjxXZWFrUHRyPEhpZ2hsaWdodFJhbmdlRGF0YT4+IHJhbmdlc0RhdGE7CisgICAgaWYgKG1f
aGlnaGxpZ2h0UmVnaXN0ZXIpCisgICAgICAgIGNvbGxlY3RSYW5nZURhdGFGcm9tUmVnaXN0ZXIo
cmFuZ2VzRGF0YSwgKm1faGlnaGxpZ2h0UmVnaXN0ZXIuZ2V0KCkpOworICAgIGlmIChtX2FwcEhp
Z2hsaWdodFJlZ2lzdGVyKQorICAgICAgICBjb2xsZWN0UmFuZ2VEYXRhRnJvbVJlZ2lzdGVyKHJh
bmdlc0RhdGEsICptX2FwcEhpZ2hsaWdodFJlZ2lzdGVyLmdldCgpKTsKKwogICAgIGZvciAoYXV0
byYgd2Vha1JhbmdlRGF0YSA6IHJhbmdlc0RhdGEpIHsKICAgICAgICAgaWYgKGF1dG8qIHJhbmdl
RGF0YSA9IHdlYWtSYW5nZURhdGEuZ2V0KCkpIHsKICAgICAgICAgICAgIFZpc2libGVTZWxlY3Rp
b24gdmlzaWJsZVNlbGVjdGlvbihyYW5nZURhdGEtPnJhbmdlKTsKQEAgLTI3OTcsNyArMjgxMCw3
IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpCiAgICAgICAgICAg
ICBpZiAoIXJhbmdlRGF0YS0+c3RhcnRQb3NpdGlvbi5oYXNWYWx1ZSgpKQogICAgICAgICAgICAg
ICAgIHN0YXJ0UG9zaXRpb24gPSB2aXNpYmxlU2VsZWN0aW9uLnZpc2libGVTdGFydCgpLmRlZXBF
cXVpdmFsZW50KCk7CiAgICAgICAgICAgICBpZiAoIXJhbmdlRGF0YS0+ZW5kUG9zaXRpb24uaGFz
VmFsdWUoKSkKLSAgICAgICAgICAgICAgICBlbmRQb3NpdGlvbiA9IHZpc2libGVTZWxlY3Rpb24u
dmlzaWJsZUVuZCgpLmRlZXBFcXVpdmFsZW50KCk7IC8vIDxNTUc+IHN3aXRjaCB0byBFTkQKKyAg
ICAgICAgICAgICAgICBlbmRQb3NpdGlvbiA9IHZpc2libGVTZWxlY3Rpb24udmlzaWJsZUVuZCgp
LmRlZXBFcXVpdmFsZW50KCk7CiAgICAgICAgICAgICBpZiAoIXdlYWtSYW5nZURhdGEuZ2V0KCkp
CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKaW5kZXggODRlNThjYzEzNWRkYjI1ZGEzYTdhODM4ZTc0YzNlNzhmNDA3YzlkNy4uMjI1OWFk
MTIyYzI4MmZjYWRiODNmMmE1OGEzNGZhOWRjN2M4MWQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
QEAgLTIzMSw2ICsyMzEsNyBAQCBjbGFzcyBYUGF0aE5TUmVzb2x2ZXI7CiBjbGFzcyBYUGF0aFJl
c3VsdDsKIAogc3RydWN0IEJvdW5kYXJ5UG9pbnQ7CitzdHJ1Y3QgSGlnaGxpZ2h0UmFuZ2VEYXRh
Owogc3RydWN0IEludGVyc2VjdGlvbk9ic2VydmVyRGF0YTsKIAogdGVtcGxhdGU8dHlwZW5hbWU+
IGNsYXNzIEV4Y2VwdGlvbk9yOwpAQCAtMTU3NCw2ICsxNTc1LDcgQEAgcHVibGljOgogICAgIFRl
eHRNYW5pcHVsYXRpb25Db250cm9sbGVyKiB0ZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcklmRXhp
c3RzKCkgeyByZXR1cm4gbV90ZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5nZXQoKTsgfQogICAg
ICAgICAKICAgICBIaWdobGlnaHRSZWdpc3RlciYgaGlnaGxpZ2h0UmVnaXN0ZXIoKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBIaWdobGlnaHRSZWdpc3RlciYgYXBwSGlnaGxpZ2h0UmVnaXN0ZXIoKTsK
ICAgICB2b2lkIHVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpOwogCiAgICAgYm9vbCBhbGxvd3ND
b250ZW50SmF2YVNjcmlwdCgpIGNvbnN0OwpAQCAtMTcwMSw2ICsxNzAzLDggQEAgcHJpdmF0ZToK
IAogICAgIHZvaWQgcGxhdGZvcm1TdXNwZW5kT3JTdG9wQWN0aXZlRE9NT2JqZWN0cygpOwogCisg
ICAgdm9pZCBjb2xsZWN0UmFuZ2VEYXRhRnJvbVJlZ2lzdGVyKFZlY3RvcjxXZWFrUHRyPEhpZ2hs
aWdodFJhbmdlRGF0YT4+JiwgY29uc3QgSGlnaGxpZ2h0UmVnaXN0ZXImKTsKKwogICAgIGJvb2wg
aXNCb2R5UG90ZW50aWFsbHlTY3JvbGxhYmxlKEhUTUxCb2R5RWxlbWVudCYpOwogCiAgICAgdm9p
ZCBkaWRMb2dNZXNzYWdlKGNvbnN0IFdURkxvZ0NoYW5uZWwmLCBXVEZMb2dMZXZlbCwgVmVjdG9y
PEpTT05Mb2dWYWx1ZT4mJikgZmluYWw7CkBAIC0xOTMxLDYgKzE5MzUsNyBAQCBwcml2YXRlOgog
I2VuZGlmCiAgICAgICAgIAogICAgIFJlZlB0cjxIaWdobGlnaHRSZWdpc3Rlcj4gbV9oaWdobGln
aHRSZWdpc3RlcjsKKyAgICBSZWZQdHI8SGlnaGxpZ2h0UmVnaXN0ZXI+IG1fYXBwSGlnaGxpZ2h0
UmVnaXN0ZXI7CiAKICAgICBUaW1lciBtX3Zpc3VhbFVwZGF0ZXNTdXBwcmVzc2lvblRpbWVyOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3RhdGljUmFuZ2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TdGF0aWNSYW5nZS5oCmluZGV4IDc2OTAxMTNkZjhhMmFlOWJjODI1NTZjNGFi
ZjEwZjk3MmUyMmE3YWUuLmY3ZDdmNWI0ZjM0MDc3NmMwMjAzN2ZjOTgzNDk4YTE1NWU5NGUxMWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNSYW5nZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TdGF0aWNSYW5nZS5oCkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKICAg
ICB9OwogCiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxTdGF0aWNSYW5nZT4+IGNyZWF0ZShJ
bml0JiYpOwotICAgIHN0YXRpYyBSZWY8U3RhdGljUmFuZ2U+IGNyZWF0ZShjb25zdCBTaW1wbGVS
YW5nZSYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8U3RhdGljUmFuZ2U+IGNyZWF0
ZShjb25zdCBTaW1wbGVSYW5nZSYpOwogICAgIHN0YXRpYyBSZWY8U3RhdGljUmFuZ2U+IGNyZWF0
ZShTaW1wbGVSYW5nZSYmKTsKIAogICAgIE5vZGUmIHN0YXJ0Q29udGFpbmVyKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gU2ltcGxlUmFuZ2U6OnN0YXJ0Q29udGFpbmVyKCk7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcAppbmRleCAzOWViMTUxMDlhYTZjMDJhNjg2
YmUwNGRlMGNkZDZiMDM3YzhmYzljLi4xZjZiODg2YzkxMTAxNDQ5MGYyNzZiYjRkNDMwZTdmMWJh
NmMyOGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0
YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwCkBA
IC04Miw3ICs4Miw3IEBAIHZvaWQgUmVuZGVyUmFuZ2VJdGVyYXRvcjo6Y2hlY2tGb3JTcGFubmVy
KCkKICAgICBtX2N1cnJlbnQgPSBwbGFjZWhvbGRlci5zcGFubmVyKCk7CiB9CiAKLXN0YXRpYyBS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyQWZ0ZXJPZmZzZXQoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5k
ZXJlciwgdW5zaWduZWQgb2Zmc2V0KSAvLyA8TU1HPiB1c2VkIGluIGJvdGgsIG1pZ2h0IHNob3Vs
ZCBub3QgYmUgc3RhdGljCitzdGF0aWMgUmVuZGVyT2JqZWN0KiByZW5kZXJlckFmdGVyT2Zmc2V0
KGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIHVuc2lnbmVkIG9mZnNldCkKIHsKICAgICBh
dXRvKiBjaGlsZCA9IHJlbmRlcmVyLmNoaWxkQXQob2Zmc2V0KTsKICAgICByZXR1cm4gY2hpbGQg
PyBjaGlsZCA6IHJlbmRlcmVyLm5leHRJblByZU9yZGVyQWZ0ZXJDaGlsZHJlbigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCmluZGV4IGUwOTBmMTZhODM1OTcz
MjVhNmRlMzkwZTBiOWZkY2M0M2NiMDc5ZGMuLmExMTYxMzI5MzI1MDI4MzY2M2Q1MzBjZmFhZDgz
Y2RhNWQ2YzQ5MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVU
ZXh0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5j
cHAKQEAgLTg0Niw2ICs4NDYsMTMgQEAgYXV0byBJbmxpbmVUZXh0Qm94OjpyZXNvbHZlU3R5bGVG
b3JNYXJrZWRUZXh0KGNvbnN0IE1hcmtlZFRleHQmIG1hcmtlZFRleHQsIGNvbnMKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogICAgICAgICBicmVhazsKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdI
VFMpCisgICAgY2FzZSBNYXJrZWRUZXh0OjpBcHBIaWdobGlnaHQ6IHsKKyAgICAgICAgT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zID0geyBTdHlsZUNvbG9y
OjpPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlIH07CisgICAgICAgIHN0eWxlLmJhY2tncm91
bmRDb2xvciA9IHJlbmRlcmVyKCkudGhlbWUoKS5zeXN0ZW1Db2xvcihDU1NWYWx1ZUFwcGxlU3lz
dGVtQXBwSGlnaGxpZ2h0QmFja2dyb3VuZCwgc3R5bGVDb2xvck9wdGlvbnMpOworICAgICAgICBi
cmVhazsKKyAgICB9CisjZW5kaWYKICAgICBjYXNlIE1hcmtlZFRleHQ6OkRyYWdnZWRDb250ZW50
OgogICAgICAgICBzdHlsZS5hbHBoYSA9IDAuMjU7CiAgICAgICAgIGJyZWFrOwpAQCAtMTA2Nyw2
ICsxMDc0LDE4IEBAIFZlY3RvcjxNYXJrZWRUZXh0PiBJbmxpbmVUZXh0Qm94Ojpjb2xsZWN0TWFy
a2VkVGV4dHNGb3JIaWdobGlnaHRzKFRleHRQYWludFBoYXNlCiAgICAgICAgICAgICAgICAgbWFy
a2VkVGV4dHMuYXBwZW5kKHsgaGlnaGxpZ2h0U3RhcnQsIGhpZ2hsaWdodEVuZCwgTWFya2VkVGV4
dDo6SGlnaGxpZ2h0LCBudWxscHRyLCBoaWdobGlnaHQua2V5IH0pOwogICAgICAgICB9CiAgICAg
fQorI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAgICBmb3IgKGF1dG8mIGhpZ2hsaWdodCA6
IHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5hcHBIaWdobGlnaHRSZWdpc3RlcigpLm1hcCgpKSB7Cisg
ICAgICAgIGZvciAoYXV0byYgcmFuZ2VEYXRhIDogaGlnaGxpZ2h0LnZhbHVlLT5yYW5nZXNEYXRh
KCkpIHsKKyAgICAgICAgICAgIGlmICghaGlnaGxpZ2h0RGF0YS5zZXRSZW5kZXJSYW5nZShyYW5n
ZURhdGEpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBhdXRvIFto
aWdobGlnaHRTdGFydCwgaGlnaGxpZ2h0RW5kXSA9IGhpZ2hsaWdodFN0YXJ0RW5kKGhpZ2hsaWdo
dERhdGEpOworICAgICAgICAgICAgaWYgKGhpZ2hsaWdodFN0YXJ0IDwgaGlnaGxpZ2h0RW5kKQor
ICAgICAgICAgICAgICAgIG1hcmtlZFRleHRzLmFwcGVuZCh7IGhpZ2hsaWdodFN0YXJ0LCBoaWdo
bGlnaHRFbmQsIE1hcmtlZFRleHQ6OkFwcEhpZ2hsaWdodCB9KTsKKyAgICAgICAgfQorICAgIH0K
KyNlbmRpZgogICAgIHJldHVybiBtYXJrZWRUZXh0czsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL01hcmtlZFRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9NYXJrZWRUZXh0LmgKaW5kZXggNzNjMDYyMTFmZTRhYTQzMzJhMmI4Mjg0MDFjOWNhZDE5ZjA5
MWQyOS4uZTc5NzhhNjRjYzdiMDExZjYwODM5YjNmMGY3YjVlNWIwY2I4NzhhZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL01hcmtlZFRleHQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvTWFya2VkVGV4dC5oCkBAIC00Miw2ICs0Miw5IEBAIHN0cnVjdCBNYXJr
ZWRUZXh0IHsKICAgICAgICAgVGV4dE1hdGNoLAogICAgICAgICBEaWN0YXRpb25BbHRlcm5hdGl2
ZXMsCiAgICAgICAgIEhpZ2hsaWdodCwKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAg
ICAgIEFwcEhpZ2hsaWdodCwKKyNlbmRpZgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAg
ICAgIC8vIEZJWE1FOiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzg5MzMzNTI+LiBBbHNvLCByZW1vdmUg
dGhlIFBMQVRGT1JNKElPU19GQU1JTFkpLWd1YXJkLgogICAgICAgICBEaWN0YXRpb25QaHJhc2VX
aXRoQWx0ZXJuYXRpdmVzLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclJlcGxhY2VkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNl
ZC5jcHAKaW5kZXggMjZjMjM2MTI3NDA1NmZhZTA4NmM1OTVjODhmZDlmYTkxNmI0ZDcwNy4uN2Q0
YTA3YTY1NTJjY2U4OWM4NGFkN2RmN2EyMjllYjQxODhiOGMxZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCkBAIC0xNDIsNiArMTQyLDIxIEBAIGlubGlu
ZSBzdGF0aWMgYm9vbCBkcmFnZ2VkQ29udGVudENvbnRhaW5zUmVwbGFjZWRFbGVtZW50KGNvbnN0
IFZlY3RvcjxSZW5kZXJlZERvCiBDb2xvciBSZW5kZXJSZXBsYWNlZDo6Y2FsY3VsYXRlSGlnaGxp
Z2h0Q29sb3IoKSBjb25zdAogewogICAgIEhpZ2hsaWdodERhdGEgaGlnaGxpZ2h0RGF0YTsKKyNp
ZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgZm9yIChhdXRvJiBoaWdobGlnaHQgOiBkb2N1
bWVudCgpLmFwcEhpZ2hsaWdodFJlZ2lzdGVyKCkubWFwKCkpIHsKKyAgICAgICAgZm9yIChhdXRv
JiByYW5nZURhdGEgOiBoaWdobGlnaHQudmFsdWUtPnJhbmdlc0RhdGEoKSkgeworICAgICAgICAg
ICAgaWYgKCFoaWdobGlnaHREYXRhLnNldFJlbmRlclJhbmdlKHJhbmdlRGF0YSkpCisgICAgICAg
ICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIGF1dG8gc3RhdGUgPSBoaWdobGlnaHRE
YXRhLmhpZ2hsaWdodFN0YXRlRm9yUmVuZGVyZXIoKnRoaXMpOworICAgICAgICAgICAgaWYgKCFp
c0hpZ2hsaWdodGVkKHN0YXRlLCBoaWdobGlnaHREYXRhKSkKKyAgICAgICAgICAgICAgICBjb250
aW51ZTsKKworICAgICAgICAgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IHN0eWxl
Q29sb3JPcHRpb25zID0geyBTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNl
IH07CisgICAgICAgICAgICAgICAgcmV0dXJuIHRoZW1lKCkuc3lzdGVtQ29sb3IoQ1NTVmFsdWVB
cHBsZVN5c3RlbUFwcEhpZ2hsaWdodEJhY2tncm91bmQsIHN0eWxlQ29sb3JPcHRpb25zKTsKKyAg
ICAgICAgfQorICAgIH0KKyNlbmRpZgogICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogZG9jdW1l
bnQoKS5oaWdobGlnaHRSZWdpc3RlcigpLm1hcCgpKSB7CiAgICAgICAgIGZvciAoYXV0byYgcmFu
Z2VEYXRhIDogaGlnaGxpZ2h0LnZhbHVlLT5yYW5nZXNEYXRhKCkpIHsKICAgICAgICAgICAgIGlm
ICghaGlnaGxpZ2h0RGF0YS5zZXRSZW5kZXJSYW5nZShyYW5nZURhdGEpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKaW5kZXggMDRhOTMwYzgwYTdjNzhkYzAxMDgwNTI5
MTUwMzI5ZjNhYTNhMTMyYi4uZGUzMzM3NTRkYTY2NjgyYTE1ODAxZDJlYTNkNWMwYTNlYWEwZTA1
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCkBAIC0xMzQ4LDYg
KzEzNDgsMTMgQEAgQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdo
dENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb24KICAgICByZXR1cm4gQ29sb3I6Onll
bGxvdzsKIH0KIAorI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKK0NvbG9yIFJlbmRlclRoZW1l
OjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25z
PikgY29uc3QKK3sKKyAgICByZXR1cm4gQ29sb3I6OnllbGxvdzsKK30KKyNlbmRpZgorCiAjaWYg
RU5BQkxFKFRPVUNIX0VWRU5UUykKIAogQ29sb3IgUmVuZGVyVGhlbWU6OnRhcEhpZ2hsaWdodENv
bG9yKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKaW5kZXggYmUxOTkwM2Q1
YWI2NDZmYWU5NDJjYzIyOWQ0MWMxNDhlOGQ0ZTdmNS4uOGVhOWI4OTQ2Y2FhMmY2NjNhNjE2N2Q4
NjdhZGI3OTIwZjhlODUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgK
QEAgLTE1Nyw2ICsxNTcsOSBAQCBwdWJsaWM6CiAgICAgLy8gSGlnaGxpZ2h0aW5nIGNvbG9yIGZv
ciBzZWFyY2ggbWF0Y2hlcy4KICAgICBDb2xvciB0ZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKIAorICAgIC8vIERlZmF1bHQgaGln
aGxpZ2h0aW5nIGNvbG9yIGZvciBhcHAgaGlnaGxpZ2h0cy4KKyAgICBDb2xvciBhcHBIaWdobGln
aHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworCiAgICAgdmly
dHVhbCBDb2xvciBkaXNhYmxlZFRleHRDb2xvcihjb25zdCBDb2xvciYgdGV4dENvbG9yLCBjb25z
dCBDb2xvciYgYmFja2dyb3VuZENvbG9yKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIENv
bG9yIGZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7
CkBAIC0yNzUsNyArMjc4LDkgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZv
cm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKIAogICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1UZXh0
U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25z
dDsKLQorI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRm
b3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25z
dDsKKyNlbmRpZgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1NlbGVjdGlvbkZvcmVncm91bmRD
b2xvcnMoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCB7IHJldHVybiB0cnVl
OyB9CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRD
b2xvcnMoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCB7IHJldHVybiB0cnVl
OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlP
Uy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQppbmRleCBk
Y2ViY2U0ODVlMzYyMzU4Yzg0Y2U0MjBhZDg2ZjRhMzI2NDI0NTliLi43ZjFhMDlmN2Y2Y2IwZmIw
MzU0ODM0MzYzNjZjZmViMTk2ZTIwMGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lSU9TLm1tCkBAIC0xMjg5LDcgKzEyODksMTAgQEAgc3RhdGljIGNvbnN0IFZlY3Rv
cjxDU1NWYWx1ZUlEQW5kU2VsZWN0b3I+JiBjc3NWYWx1ZUlEU2VsZWN0b3JMaXN0KCkKICAgICAg
ICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVBpbmssIEBzZWxlY3RvcihzeXN0ZW1QaW5rQ29s
b3IpIH0sCiAgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1QdXJwbGUsIEBzZWxlY3Rv
cihzeXN0ZW1QdXJwbGVDb2xvcikgfSwKICAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3Rl
bVJlZCwgQHNlbGVjdG9yKHN5c3RlbVJlZENvbG9yKSB9LAotICAgICAgICAgICAgeyBDU1NWYWx1
ZUFwcGxlU3lzdGVtWWVsbG93LCBAc2VsZWN0b3Ioc3lzdGVtWWVsbG93Q29sb3IpIH0KKyAgICAg
ICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVllbGxvdywgQHNlbGVjdG9yKHN5c3RlbVllbGxv
d0NvbG9yKSB9LAorI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAgICAgICAgICAgIHsgQ1NT
VmFsdWVBcHBsZVN5c3RlbUFwcEhpZ2hsaWdodEJhY2tncm91bmQsIEBzZWxlY3RvcihzeXN0ZW1Z
ZWxsb3dDb2xvcikgfQorI2VuZGlmCiAgICAgICAgIH0pOwogICAgIH0pOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCmluZGV4IDRmNTc5NjU5MzY5ZWM0YjZlOTAz
NGY3OTBjZmYyZTAyOWI1YzRlMTUuLjFkOWY3ZDNlMzNmYWUwMGM1YjcyNGRiOGJhMGZmYjNkN2Q3
MzkwOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1h
Yy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCkBAIC02
Niw2ICs2Niw5IEBAIHB1YmxpYzoKICAgICBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNl
bGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNv
bnN0IGZpbmFsOwogICAgIENvbG9yIHBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKICAgICBDb2xvciBwbGF0Zm9ybVRleHRT
ZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
IGZpbmFsOworI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAgICBDb2xvciBwbGF0Zm9ybUFw
cEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmlu
YWw7CisjZW5kaWYKIAogICAgIFNjcm9sbGJhckNvbnRyb2xTaXplIHNjcm9sbGJhckNvbnRyb2xT
aXplRm9yUGFydChDb250cm9sUGFydCkgZmluYWwgeyByZXR1cm4gU2Nyb2xsYmFyQ29udHJvbFNp
emU6OlNtYWxsOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5t
bQppbmRleCAxYTU1MDM5ZDg4ZTBjZjkzZjYyODc2YjUyNzJjZWM4OTcyNjY1MmVjLi45MTA4NzVi
NDgyNTI5M2JhMDY0YjA2YzVhYmZmZDM5NzYwYjZlNTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC00NzYsNiArNDc2LDE0IEBAIENvbG9yIFJlbmRl
clRoZW1lTWFjOjpwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5
bGVDb2xvcjo6T3B0CiAgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05TQ29sb3IgZmluZEhp
Z2hsaWdodENvbG9yXSk7CiB9CiAKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCitDb2xvciBS
ZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK3sKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1B
cHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9w
dGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CisgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29sb3Io
W05TQ29sb3Igc3lzdGVtWWVsbG93Q29sb3JdKTsKK30KKyNlbmRpZgorCiBzdGF0aWMgU1JHQkE8
dWludDhfdD4gbWVudUJhY2tncm91bmRDb2xvcigpCiB7CiAgICAgUmV0YWluUHRyPE5TQml0bWFw
SW1hZ2VSZXA+IG9mZnNjcmVlblJlcCA9IGFkb3B0TlMoW1tOU0JpdG1hcEltYWdlUmVwIGFsbG9j
XSBpbml0V2l0aEJpdG1hcERhdGFQbGFuZXM6bmlsIHBpeGVsc1dpZGU6MSBwaXhlbHNIaWdoOjEK
QEAgLTcwMiw2ICs3MTAsMTAgQEAgQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnN5c3RlbUNvbG9yKENT
U1ZhbHVlSUQgY3NzVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok8KICAgICAgICAgICAg
ICAgICByZXR1cm4gQHNlbGVjdG9yKHN5c3RlbVJlZENvbG9yKTsKICAgICAgICAgICAgIGNhc2Ug
Q1NTVmFsdWVBcHBsZVN5c3RlbVllbGxvdzoKICAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVj
dG9yKHN5c3RlbVllbGxvd0NvbG9yKTsKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAg
ICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1BcHBIaWdobGlnaHRCYWNrZ3JvdW5kOgor
ICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVtWWVsbG93Q29sb3IpOworI2Vu
ZGlmCiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ3JlYXRl
TmV3R3JvdXBGb3JIaWdobGlnaHQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NyZWF0ZU5ld0dy
b3VwRm9ySGlnaGxpZ2h0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTlkYjRiNjhjNDVkOGJmMGU2OTAyMzgzZTBm
OGFhMjc4Mzc2OGE2MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Ny
ZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0LmgKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBjbGFzcyBDcmVhdGVO
ZXdHcm91cEZvckhpZ2hsaWdodCA6IGJvb2wgeyBObywgWWVzIH07CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFn
ZVByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJv
eHlDb2NvYS5tbQppbmRleCAyOWZhODk1MWRhZWYzNjNlY2VjZGY5MDJjYmU3MjllMDZlY2JlZWI4
Li5mMGY0N2FkY2EyMjBlYTgyNDdlODlkOTAxNmIzYWJkZmY0Y2MzZjRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpAQCAtMzgs
NiArMzgsNyBAQAogI2ltcG9ydCAiU2FmZUJyb3dzaW5nU1BJLmgiCiAjaW1wb3J0ICJTYWZlQnJv
d3NpbmdXYXJuaW5nLmgiCiAjaW1wb3J0ICJTaGFyZWRCdWZmZXJDb3B5LmgiCisjaW1wb3J0ICJX
ZWJQYWdlLmgiCiAjaW1wb3J0ICJXZWJQYWdlTWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlBhc3Rl
Ym9hcmRQcm94eS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCkBAIC01NDMsNiArNTQ0
LDE3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjphZGRBY3Rpdml0eVN0YXRlVXBkYXRlQ29tcGxldGlv
bkhhbmRsZXIoQ29tcGxldGlvbkhhbmRsZXI8dm9pCiAgICAgbV9hY3Rpdml0eVN0YXRlVXBkYXRl
Q2FsbGJhY2tzLmFwcGVuZChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKKyNpZiBF
TkFCTEUoQVBQX0hJR0hMSUdIVFMpCit2b2lkIFdlYlBhZ2VQcm94eTo6Y3JlYXRlQXBwSGlnaGxp
Z2h0SW5TZWxlY3RlZFJhbmdlKENyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0IGNyZWF0ZU5ld0dy
b3VwKQoreworICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Q3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3Rl
ZFJhbmdlKGNyZWF0ZU5ld0dyb3VwKSk7Cit9CisKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKIAogI3VuZGVmIE1FU1NBR0VfQ0hFQ0tfQ09NUExFVElPTgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMGY4NzQyODk5MGRlMDAxMzQzNjcyZTI0OTQ4
OTVhZDEzZDQzMzAyOC4uOTgxMjY1ZDM5OTAyMTgxYWQwZWNlNWZmOTAwYjIyMmMwMTg0ODAwMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMTcsNiArMTE3
LDcgQEAKICNpbmNsdWRlICJXZWJOYXZpZ2F0aW9uU3RhdGUuaCIKICNpbmNsdWRlICJXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJPcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lclByb3h5LmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJQYWdlRGVidWdnYWJsZS5oIgogI2luY2x1
ZGUgIldlYlBhZ2VHcm91cC5oIgpAQCAtNjYyMSw2ICs2NjIyLDE2IEBAIHZvaWQgV2ViUGFnZVBy
b3h5Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChjb25zdCBXZWJDb250ZXh0TWVudUl0ZW1EYXRh
JiBpdGVtKQogICAgICAgICBUZXh0Q2hlY2tlcjo6dG9nZ2xlU3BlbGxpbmdVSUlzU2hvd2luZygp
OwogICAgICAgICByZXR1cm47CiAgICAgfQorI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAg
ICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdBZGRIaWdobGlnaHRUb05l
d0dyb3VwKSB7CisgICAgICAgIGNyZWF0ZUFwcEhpZ2hsaWdodEluU2VsZWN0ZWRSYW5nZShDcmVh
dGVOZXdHcm91cEZvckhpZ2hsaWdodDo6WWVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdBZGRIaWdobGlnaHRUb0N1
cnJlbnRHcm91cCkgeworICAgICAgICBjcmVhdGVBcHBIaWdobGlnaHRJblNlbGVjdGVkUmFuZ2Uo
Q3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQ6Ok5vKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyNlbmRpZgogICAgIGlmIChpdGVtLmFjdGlvbigpID09IENvbnRleHRNZW51SXRlbVRhZ0xlYXJu
U3BlbGxpbmcgfHwgaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVs
bGluZykKICAgICAgICAgKyttX3BlbmRpbmdMZWFybk9ySWdub3JlV29yZE1lc3NhZ2VDb3VudDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA4NzlmNzMyYjExY2Ix
MjM5NzM4NjU4ZThlNThmYjg3YzUwMzRmMmI4Li4zMWM4NDY0M2RhZmJmMWExOTY5MDEzMjM1OTAw
NTY2ZWQxMjA4NjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAt
MjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJDb250ZW50
QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDb250
ZXh0RGF0YS5oIgorI2luY2x1ZGUgIkNyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0LmgiCiAjaW5j
bHVkZSAiRG93bmxvYWRJRC5oIgogI2luY2x1ZGUgIkRyYWdDb250cm9sbGVyQWN0aW9uLmgiCiAj
aW5jbHVkZSAiRWRpdGluZ1JhbmdlLmgiCkBAIC0zNjMsNiArMzY0LDcgQEAgc3RydWN0IFdlYlNw
ZWVjaFN5bnRoZXNpc1ZvaWNlOwogc3RydWN0IFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzOwogc3Ry
dWN0IFVzZXJNZXNzYWdlOwogCitlbnVtIGNsYXNzIENyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0
IDogYm9vbDsKIGVudW0gY2xhc3MgTmVnb3RpYXRlZExlZ2FjeVRMUyA6IGJvb2w7CiBlbnVtIGNs
YXNzIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgOiBib29sOwogZW51bSBjbGFzcyBTcGVl
Y2hSZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lvbiA6IGJvb2w7CkBAIC0xODIzLDYgKzE4MjUs
MTAgQEAgcHVibGljOgogICAgIHZvaWQgcmVxdWVzdFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lv
bihjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNw
ZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lzaW9uKT4mJik7CiAgICAgdm9pZCByZXF1ZXN0
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQnlEZWZhdWx0QWN0aW9uKGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAKKyNp
ZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgdm9pZCBjcmVhdGVBcHBIaWdobGlnaHRJblNl
bGVjdGVkUmFuZ2UoQ3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQpOworI2VuZGlmCisKIHByaXZh
dGU6CiAgICAgV2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCBSZWY8
QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLm1tCmluZGV4IGM1MTQ3ZjQzMDQ3OTFhY2Y2NjNkMjE0NTlhMmU2MzFhNDMz
NmQ3NGIuLmU0YjM3ZDNmNDdjYjE5MWQ1YmRiZWQ1NTMxNzU2NzA5ZDI0NDA5ZGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbQpAQCAtNzksNiArNzksNyBAQAogI2ltcG9ydCAiV2ViRGF0YUxpc3RTdWdnZXN0aW9u
c0Ryb3Bkb3duSU9TLmgiCiAjaW1wb3J0ICJXZWJFdmVudC5oIgogI2ltcG9ydCAiV2ViSU9TRXZl
bnRGYWN0b3J5LmgiCisjaW1wb3J0ICJXZWJQYWdlLmgiCiAjaW1wb3J0ICJXZWJQYWdlTWVzc2Fn
ZXMuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJQcm9j
ZXNzUHJveHkuaCIKQEAgLTg2MTUsMTIgKzg2MTYsMTIgQEAgLSAodm9pZClzZXR1cEFwcEhpZ2hs
aWdodE1lbnVzCiAKIC0gKHZvaWQpY3JlYXRlSGlnaGxpZ2h0SW5DdXJyZW50R3JvdXBXaXRoUmFu
Z2U6KGlkKXNlbmRlcgogewotICAgIC8vIEZJWE1FOiBBZGQgSGlnaGxpZ2h0IGxvZ2ljLgorICAg
IF9wYWdlLT5jcmVhdGVBcHBIaWdobGlnaHRJblNlbGVjdGVkUmFuZ2UoQ3JlYXRlTmV3R3JvdXBG
b3JIaWdobGlnaHQ6Ok5PKTsKIH0KIAogLSAodm9pZCljcmVhdGVIaWdobGlnaHRJbk5ld0dyb3Vw
V2l0aFJhbmdlOihpZClzZW5kZXIKIHsKLSAgICAvLyBGSVhNRTogQWRkIEhpZ2hsaWdodCBsb2dp
Yy4KKyAgICBfcGFnZS0+Y3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJhbmdlKENyZWF0ZU5l
d0dyb3VwRm9ySGlnaGxpZ2h0OjpZRVMpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDIxNWI2MDBkZWRmNjZjODQ2
OTQ2ZWJkMDBkNTk2MjZhMTFkN2JlMTkuLmVkNDQyY2QwYjdmOGE0OGM0NDRjNjI4ZWY5NWQ4OTMw
NTE2ODNlM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtOTI4LDYgKzkyOCw3IEBACiAJCTQxRkFCRDJBMUY0REUwMDEwMDZBNkM5NyAv
KiBDYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDFGQUJEMjgxRjREREZEQzAwNkE2Qzk3IC8qIENhY2hlU3RvcmFn
ZUVuZ2luZUNhY2hlLmggKi87IH07CiAJCTQxRkFGNUY1MUUzQzA2NDkwMDFBRTY3OCAvKiBXZWJS
VENSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDFGQUY1RjQxRTNDMDY0MTAwMUFFNjc4IC8qIFdlYlJUQ1Jlc29sdmVyLmggKi87IH07CiAJ
CTQxRkFGNUY4MUUzQzEwMjEwMDFBRTY3OCAvKiBMaWJXZWJSVENSZXNvbHZlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQUY1RjYxRTNDMEI0NzAw
MUFFNjc4IC8qIExpYldlYlJUQ1Jlc29sdmVyLmggKi87IH07CisJCTQ0MzBEMDE3MjU3NkQ5REQw
MDQ2RDQwMSAvKiBDcmVhdGVOZXdHcm91cEZvckhpZ2hsaWdodC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQzMEQwMTYyNTc2RDlEQzAwNDZENDAxIC8q
IENyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0LmggKi87IH07CiAJCTQ0NTk5ODQyMjI4MzNFODcw
MEU2MTM3MyAvKiBTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0NTk5ODQxMjI4MzNFNjAwMEU2MTM3MyAv
KiBTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaCAqLzsgfTsKIAkJNDQ2REM2NEMyNEEyRDhF
NTAwNjFGMzkwIC8qIFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDZEQzY0QjI0QTJEOEFEMDA2
MUYzOTAgLyogUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIuaCAqLzsgfTsKIAkJNDQ4
MjczNDcyNDUyOEY2MDAwQTk1NDkzIC8qIENvY29hSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0ODI3MzQ2MjQ1MjhGNjAwMEE5NTQ5MyAvKiBD
b2NvYUltYWdlLmggKi87IH07CkBAIC0zNjA1LDYgKzM2MDYsNyBAQAogCQk0MUZDRDZCRDIzQ0Uw
NDNGMDBDNjI1NjcgLyogUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MUZDRDZCRTIzQ0UwNDQwMDBDNjI1NjcgLyogUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDFGQ0Q2QkYyM0NFMDQ0MDAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0NDMwRDAxNjI1NzZEOURDMDA0NkQ0MDEgLyogQ3JlYXRlTmV3R3JvdXBGb3JI
aWdobGlnaHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3JlYXRlTmV3R3Jv
dXBGb3JIaWdobGlnaHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1MEFFQkYx
REMzRkFFNTAwOTk0M0YyIC8qIFNoYXJlZE1lbW9yeUNvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJlZE1lbW9yeUNvY29hLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1OTk4NDEyMjgzM0U2MDAwRTYxMzczIC8qIFN5bnRoZXRpY0Vk
aXRpbmdDb21tYW5kVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTeW50aGV0aWNFZGl0aW5nQ29tbWFu
ZFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ2REM2NEIyNEEyRDhBRDAw
NjFGMzkwIC8qIFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MTgzLDYgKzYxODUsNyBAQAogCQkJCTUx
MDZEN0JGMThCREJFNzMwMDBBQjE2NiAvKiBDb250ZXh0TWVudUNvbnRleHREYXRhLmNwcCAqLywK
IAkJCQk1MTA2RDdDMDE4QkRCRTczMDAwQUIxNjYgLyogQ29udGV4dE1lbnVDb250ZXh0RGF0YS5o
ICovLAogCQkJCTk5RjY0MkQyMUZBQkUzNzgwMDk2MjFFOSAvKiBDb29yZGluYXRlU3lzdGVtLmgg
Ki8sCisJCQkJNDQzMEQwMTYyNTc2RDlEQzAwNDZENDAxIC8qIENyZWF0ZU5ld0dyb3VwRm9ySGln
aGxpZ2h0LmggKi8sCiAJCQkJOTkwMzZBRTgyM0E5NzA4NzAwMDBCMDZBIC8qIERlYnVnZ2FibGVJ
bmZvRGF0YS5jcHAgKi8sCiAJCQkJOTkwMzZBRTcyM0E5NzA4NzAwMDBCMDZBIC8qIERlYnVnZ2Fi
bGVJbmZvRGF0YS5oICovLAogCQkJCTBGMTg5Q0FCMjQ3NDlGMkYwMEU1OEQ4MSAvKiBEaXNwbGF5
TGlua09ic2VydmVySUQuaCAqLywKQEAgLTExMDg5LDYgKzExMDkyLDcgQEAKIAkJCQk1MTA2RDdD
NDE4QkRCRTczMDAwQUIxNjYgLyogQ29udGV4dE1lbnVDb250ZXh0RGF0YS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMzdDMjFDQUUxRTk5NEMwQzAwMjlENUY5IC8qIENvcmVQcmVkaWN0aW9uU1BJLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCODc4QjYxNTEzMzQyOERDMDA2ODg4RTkgLyogQ29ycmVjdGlv
blBhbmVsLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NDMwRDAxNzI1NzZEOUREMDA0NkQ0MDEgLyog
Q3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3NTk3RUJE
MjE4MTg0OTAwMDM3RjkyNCAvKiBDdGFwQXV0aGVudGljYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTc1OTdFQjkyMTgxMUQ5QTAwMzdGOTI0IC8qIEN0YXBIaWREcml2ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU3MERBQUNBMjMwMzg1RkQwMEU4RkMwNCAvKiBDdGFwTmZjRHJpdmVyLmggaW4g
SGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKaW5kZXggOTU3MGVjM2JhMDRhZTNhNzAzODM0OTU4ODBkMDNiMjI1YmQ2MWQyYi4uOTlmNjQ3
NWExNWU4MmZlZmE2ZTFmNTNlOTA5ZTk4MGE2NTc1YmM1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE1Niw2ICsxNTYsNyBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvRGF0YVRyYW5zZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EYXRhYmFzZU1h
bmFnZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50
RnJhZ21lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaD4KQEAgLTE4Niw2ICsxODcsOCBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTFBsdWdJbkVsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0hUTUxTZWxlY3RFbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSGlnaGxpZ2h0Lmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9IaWdobGlnaHRSZWdpc3Rlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSGlzdG9y
eUNvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hpc3RvcnlJdGVtLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9IaXRUZXN0UmVzdWx0Lmg+CkBAIC0yMjksNiArMjMyLDcgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFkb3dSb290Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1N0YXRp
Y1JhbmdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdHlsZVByb3BlcnRpZXMuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1N1YmZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdWJzdGl0dXRl
RGF0YS5oPgpAQCAtNzAzMyw2ICs3MDM3LDI2IEBAIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eSYgV2ViUGFnZTo6ZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KCkKIH0KICNlbmRp
ZgogCisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorYm9vbCBXZWJQYWdlOjpjcmVhdGVBcHBI
aWdobGlnaHRJblNlbGVjdGVkUmFuZ2UoQ3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQgY3JlYXRl
TmV3R3JvdXApCit7CisgICAgYXV0byBkb2N1bWVudCA9IG1ha2VSZWZQdHIobV9wYWdlLT5mb2N1
c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKS5kb2N1bWVudCgpKTsKKworICAgIGF1
dG8gZnJhbWUgPSBtYWtlUmVmUHRyKGRvY3VtZW50LT5mcmFtZSgpKTsKKyAgICBpZiAoIWZyYW1l
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIHNlbGVjdGlvblJhbmdlID0gZnJh
bWUtPnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLnRvTm9ybWFsaXplZFJhbmdlKCk7CisgICAgaWYg
KCFzZWxlY3Rpb25SYW5nZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZG9jdW1lbnQt
PmFwcEhpZ2hsaWdodFJlZ2lzdGVyKCkuYWRkQXBwSGlnaGxpZ2h0KFN0YXRpY1JhbmdlOjpjcmVh
dGUoc2VsZWN0aW9uUmFuZ2UudmFsdWUoKSkpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisjZW5k
aWYKKworCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBh
NzQ4YmUyMTM1ZTNkMjJiNDBkYjA1YTE2M2FlZTAwYWQ1MzQyNGQxLi44NmVmNTE0YzA5ZTU0YjIz
ZTcwOWE1ZjdjMjVkMTQ4OGUyMmU5ZTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0Lmgi
CiAjaW5jbHVkZSAiQ2FsbGJhY2tJRC5oIgogI2luY2x1ZGUgIkNvbnRlbnRBc1N0cmluZ0luY2x1
ZGVzQ2hpbGRGcmFtZXMuaCIKKyNpbmNsdWRlICJDcmVhdGVOZXdHcm91cEZvckhpZ2hsaWdodC5o
IgogI2luY2x1ZGUgIkRvd25sb2FkSUQuaCIKICNpbmNsdWRlICJEcmF3aW5nQXJlYUluZm8uaCIK
ICNpbmNsdWRlICJFZGl0aW5nUmFuZ2UuaCIKQEAgLTEzNjYsNiArMTM2NywxMCBAQCBwdWJsaWM6
CiAgICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBlbnN1cmVSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkoKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorICAg
IGJvb2wgY3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJhbmdlKENyZWF0ZU5ld0dyb3VwRm9y
SGlnaGxpZ2h0KTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFdlYlBhZ2UoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4
IDE1NWYxZjRhNGE5NjI4OWUxMDg3MWYyMmE1OTU1MDcwZWQwZWU1OGQuLjhiOGM5NTNmZDhlZmM5
ZDYyZmMzNTM5ZTQzMTQ0YWNmNDFlNjdmZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtNjE2LDQgKzYxNiw5IEBA
IEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3lu
dGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAKICAgICBTZXRIYXNSZXNvdXJjZUxvYWRDbGllbnQo
Ym9vbCBoYXMpCiAgICAgU2V0Q2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UoYm9vbCBjYW5Vc2UpCisK
KyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgQ3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxl
Y3RlZFJhbmdlKGVudW06Ym9vbCBXZWJLaXQ6OkNyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0IGNy
ZWF0ZU5ld0dyb3VwKQorI2VuZGlmCisKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5ZTM1ZDAwMzVkNjNkNGJkNTYyZjMyZDQ2OTI4NmI4YTNl
Y2M2YzdjLi43OTg2NDU4MWNlZjgyYzQ4ZTA2ODJiYWRiZTU4OWJiYmY0ZmEzNmI2IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMjAtMTEtMzAgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4K
KworICAgICAgICBDcmVhdGUgYW5kIGRyYXcgYXBwIGhpZ2hsaWdodHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM2NQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL01hcmtlZFRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisK
IDIwMjAtMTEtMTkgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFttYWNPU10gSXNzdWUgc2FuZGJveCBleHRlbnNpb24gdG8gV2ViIEluc3BlY3RvciBzZXJ2
aWNlCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTWFya2Vk
VGV4dC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTWFya2VkVGV4dC5j
cHAKaW5kZXggNmE4ZTU3MjkxYmY1ZDAxNjc2OGQ4ZTI5MmUyYjhjNjdhYzAwODVmYi4uN2ZhNmFm
YTZjZjViOGU0ZjA3NzI5Y2I5YWFmOTA4ZTdmYmRjMzU5MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL01hcmtlZFRleHQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9NYXJrZWRUZXh0LmNwcApAQCAtNTcsNiArNTcsMTAgQEAg
c3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsIE1hcmtlZFRleHQ6OlR5
cGUgdHlwZSkKICAgICAgICAgcmV0dXJuIG9zIDw8ICJUZXh0TWF0Y2giOwogICAgIGNhc2UgTWFy
a2VkVGV4dDo6SGlnaGxpZ2h0OgogICAgICAgICByZXR1cm4gb3MgPDwgIkhpZ2hsaWdodCI7Cisj
aWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorICAgIGNhc2UgTWFya2VkVGV4dDo6QXBwSGlnaGxp
Z2h0OgorICAgICAgICByZXR1cm4gb3MgPDwgIkFwcEhpZ2hsaWdodCI7CisjZW5kaWYKICAgICBj
YXNlIE1hcmtlZFRleHQ6OlVubWFya2VkOgogICAgICAgICByZXR1cm4gb3MgPDwgIlVubWFya2Vk
IjsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415180</attachid>
            <date>2020-12-01 17:13:15 -0800</date>
            <delta_ts>2020-12-01 18:29:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219365-20201201171314.patch</filename>
            <type>text/plain</type>
            <size>43765</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QzYzFmNDI4NGY0ZmI3
ODRjOTEyZTIxNjUwMzA2NGNiNGZkYTExMy4uODU1N2M4NzVhN2IwYWYyNzdlODQzNDMyNjVkNmE5
NTE1MDc0OWUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTExLTMwICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGFu
ZCBkcmF3IGFwcCBoaWdobGlnaHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTkzNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDcmVhdGUgYSBzZXBhcmF0ZSBoaWdobGlnaHQgcmVnaXN0ZXIgZm9yIGFw
cCBoaWdobGlnaHRzIHNvIHRoYXQgdGhlcmUgaXMgYSBjbGVhciBzZXBhcmF0aW9uCisgICAgICAg
IHdpdGggbm8gcmlzayBvZiB3ZWIgY29udGVudCBhY2Nlc3NpbmcgdGhlIHdyb25nIGhpZ2hsaWdo
dHMuIEV4dGVuZCByZW5kZXJpbmcgdG8gaW5jbHVkZSB0aGUgCisgICAgICAgIGFwcCBoaWdobGln
aHRzIHdpdGggdGhlIGN1cnJlbnQgZGVmYXVsdCBzZXR0aW5ncy4gCisKKyAgICAgICAgKiBNb2R1
bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaDoKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRSZWdpc3Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSZWdpc3Rl
cjo6YXBwSGlnaGxpZ2h0S2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJlZ2lzdGVy
OjphZGRBcHBIaWdobGlnaHQpOgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dFJlZ2lzdGVyLmg6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YXBwSGlnaGxpZ2h0UmVnaXN0
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNvbGxlY3RSYWdlRGF0YUZyb21SZWdp
c3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSGlnaGxpZ2h0UG9zaXRp
b25zKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vU3RhdGljUmFu
Z2UuaDoKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVk
KToKKyAgICAgICAgKiByZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpyZW5kZXJlckFmdGVyT2Zmc2V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4
dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpyZXNvbHZlU3R5bGVG
b3JNYXJrZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OmNvbGxlY3RN
YXJrZWRUZXh0c0ZvckhpZ2hsaWdodHMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9NYXJr
ZWRUZXh0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGhlbWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpjc3NWYWx1ZUlEU2VsZWN0b3JM
aXN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU1hYzo6cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IgY29uc3QpOgorCiAyMDIwLTExLTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgV29ya2xldC5hZGRNb2R1bGUo
KSBzaG91bGQgcmVqZWN0IHByb21pc2Ugd2l0aCBhbiBBYm9ydEVycm9yIHdoZW4gdGhlIG5ldHdv
cmsgbG9hZCBmYWlscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjNGI0NzFhNGViODIwZjUyMjc2MmIyYTE4M2YzZGJi
Nzc3N2M5YjMyLi45OGQzNmRlNGQ3NDcxNzU5MGIxMGQ1NTMxNzYxNjc4MWI5MDg1ZmE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTExLTMwICBNZWdhbiBHYXJkbmVyICA8bWVnYW5f
Z2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGFuZCBkcmF3IGFwcCBoaWdobGln
aHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkz
NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIYW5k
bGUgdGhlIGNyZWF0aW9uIG9mIEFwcCBIaWdobGlnaHRzIGZyb20gc2VsZWN0aW9ucyB3aGVuIHRo
ZSBjb250ZXh0IG1lbnUgaXRlbSBpcyBzZWxlY3RlZC4gCisgICAgICAgIFRoaXMgcGF0Y2ggd2ls
bCBhZGQgdGhlIGhpZ2hsaWdodHMgdG8gdGhlIERvY3VtZW50J3MgYXBwIEhpZ2hsaWdodCByZWdp
c3RlciwgYW5kIGhhbmRsZSBkcmF3aW5nCisgICAgICAgIHRoZW0gaW4gSW5saW5lVGV4dEJveC4g
TGF0ZXIgcGF0Y2hlcyB3aWxsIGhhbmRsZSB0aGUgcGVyc2lzdGVudCBzdG9yYWdlIGFuZCByZXBv
cHVsYXRpb24gb2YgYXBwCisgICAgICAgIGhpZ2hsaWdodHMgb24gbGF1bmNoIG9yIHJlbG9hZCBv
ZiBhIHBhZ2UuIAorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0ZUFwcEhpZ2hsaWdodElu
U2VsZWN0ZWRSYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNyZWF0ZUhpZ2hsaWdodEluQ3Vy
cmVudEdyb3VwV2l0aFJhbmdlOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNyZWF0ZUhp
Z2hsaWdodEluTmV3R3JvdXBXaXRoUmFuZ2U6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjcmVhdGVBcHBIaWdo
bGlnaHRJblNlbGVjdGVkUmFuZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46
CisKIDIwMjAtMTEtMTkgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFttYWNPU10gSXNzdWUgc2FuZGJveCBleHRlbnNpb24gdG8gV2ViIEluc3BlY3RvciBz
ZXJ2aWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAwMjNlMTUzZGEzYzY3ZGUxN2EyNTJiZWYxY2Fi
MjY4N2Q0MzkzMDZkLi5jYjJhM2YzMWE0N2M5YTI5MzkxZTc1MWY1ZjBjYmI3NjY1ZjRmMzRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKQEAgLTQ0LDYgKzQ0LDkgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9G
UkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNh
bGxiYWNrLmgKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uT3B0aW9ucy5oCiAKKyAg
ICBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaAorICAgIE1vZHVsZXMvaGlnaGxpZ2h0L0hp
Z2hsaWdodFJlZ2lzdGVyLmgKKwogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkFjdGl2ZURPTU9i
amVjdC5oCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmgKICAg
ICBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oCmluZGV4IGYwZGZh
NTY4MjI4YzgzYjIwZWJlOGEyZjkzNWVmMGY1ZGU3NTMwZmQuLjlkOThjODcxNGViYzA1YTQ5ZDdk
OTZhMzJlZjRiMGMyZjlkMjUxNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0hpZ2hsaWdodC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxp
Z2h0L0hpZ2hsaWdodC5oCkBAIC01NCw3ICs1NCw3IEBAIHN0cnVjdCBIaWdobGlnaHRSYW5nZURh
dGEgOiBSZWZDb3VudGVkPEhpZ2hsaWdodFJhbmdlRGF0YT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0
CiAKIGNsYXNzIEhpZ2hsaWdodCA6IHB1YmxpYyBSZWZDb3VudGVkPEhpZ2hsaWdodD4gewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0PiBjcmVhdGUoU3RhdGljUmFuZ2UmKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEhpZ2hsaWdodD4gY3JlYXRlKFN0YXRpY1Jhbmdl
Jik7CiAgICAgdm9pZCBjbGVhckZyb21TZXRMaWtlKCk7CiAgICAgYm9vbCBhZGRUb1NldExpa2Uo
U3RhdGljUmFuZ2UmKTsKICAgICBib29sIHJlbW92ZUZyb21TZXRMaWtlKGNvbnN0IFN0YXRpY1Jh
bmdlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRSZWdpc3Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRSZWdpc3Rlci5jcHAKaW5kZXggOWUyMGI4NjkzNDI1Y2JjYWEwNmNjYjE0NGZlMDJkM2Nm
NjI4NWU4Yi4uNGFiNzQ0OWIwMzQzMzhiNjY3MmNiNmQwYTExNWFhYzY5MGU3ZDNiZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lz
dGVyLmNwcApAQCAtNTMsNCArNTMsMTcgQEAgYm9vbCBIaWdobGlnaHRSZWdpc3Rlcjo6cmVtb3Zl
KGNvbnN0IFN0cmluZyYga2V5KQogICAgIHJldHVybiBtX21hcC5yZW1vdmUoa2V5KTsKIH0KIAor
QVNDSUlMaXRlcmFsIEhpZ2hsaWdodFJlZ2lzdGVyOjphcHBIaWdobGlnaHRLZXkoKQoreworICAg
IHJldHVybiAiYXBwSGlnaGxpZ2h0S2V5Il9zOworfQorCit2b2lkIEhpZ2hsaWdodFJlZ2lzdGVy
OjphZGRBcHBIaWdobGlnaHQoUmVmPFN0YXRpY1JhbmdlPiYmIHZhbHVlKQoreworICAgIGlmICht
X21hcC5jb250YWlucyhhcHBIaWdobGlnaHRLZXkoKSkpCisgICAgICAgIG1fbWFwLmdldChhcHBI
aWdobGlnaHRLZXkoKSktPmFkZFRvU2V0TGlrZSh2YWx1ZSk7CisgICAgZWxzZQorICAgICAgICBz
ZXRGcm9tTWFwTGlrZShhcHBIaWdobGlnaHRLZXkoKSwgSGlnaGxpZ2h0OjpjcmVhdGUoV1RGTW92
ZSh2YWx1ZSkpKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9o
aWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGln
aGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmgKaW5kZXggNDA1MzBmODM2MjNhMzMzYjIwY2ZhNmZk
NWRjMGY1NjMzNDQxMDQ2MS4uZDUyOTFmZGE0ZDk1MzlkMzBiN2UzNjNjZTYzYTBlMjgzZDBlODNm
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0
UmVnaXN0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGln
aHRSZWdpc3Rlci5oCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IERPTU1hcEFkYXB0ZXI7CiBjbGFzcyBET01TdHJpbmc7CiBjbGFzcyBIaWdobGlnaHQ7CitjbGFz
cyBTdGF0aWNSYW5nZTsKIAogY2xhc3MgSGlnaGxpZ2h0UmVnaXN0ZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxIaWdobGlnaHRSZWdpc3Rlcj4gewogcHVibGljOgpAQCAtNDMsNiArNDQsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRGcm9tTWFwTGlrZShTdHJpbmcmJiwgUmVmPEhpZ2hsaWdodD4mJik7
CiAgICAgdm9pZCBjbGVhcigpOwogICAgIGJvb2wgcmVtb3ZlKGNvbnN0IFN0cmluZyYpOworCisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRBcHBIaWdobGlnaHQoUmVmPFN0YXRpY1JhbmdlPiYm
KTsKKyAgICBzdGF0aWMgQVNDSUlMaXRlcmFsIGFwcEhpZ2hsaWdodEtleSgpOwogICAgIAogICAg
IGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBSZWY8SGlnaGxpZ2h0Pj4mIG1hcCgpIGNvbnN0IHsgcmV0
dXJuIG1fbWFwOyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzVhNTIyYzJhYmViMGQxNmQ1YzY4ODZjNzE3MDY1NzI0
OTIwYzk0ZS4uZjk5Yjk4ZmM5NWE3NDRlYzM0YTdkYjczYThlNjEzNzJhOGRkMWU4NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTIxMCw2ICsxMjEwLDggQEAKIAkJNDNFREQ2N0YxQjQ4NURCRjAwNjQwRTc1IC8qIENvbWJpbmVk
RmlsdGVyc0FscGhhYmV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0M0VERDY3RDFCNDg1REJGMDA2NDBFNzUgLyogQ29tYmluZWRGaWx0ZXJzQWxwaGFi
ZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0
NDBFREJEMTI1NUUxMTZDMDAzMDBCQTcgLyogTG9jYWxpemFibGUuc3RyaW5ncyBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQ2RUU0RTgyNTVFMEQ5MjAw
NDU0NDYzIC8qIExvY2FsaXphYmxlLnN0cmluZ3MgKi87IH07CiAJCTQ0MTUyOTJFMEUxQUU4QTAw
MEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDE1MjkyQzBFMUFFOEEwMDBDNEEyRDAgLyogSFRN
TFBsdWdJbkltYWdlRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTQ0MzBEMDBCMjU3NUE4M0UwMDQ2RDQwMSAvKiBIaWdobGlnaHQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0RTg4RTUxMjM2
QTVDOEQwMDlCNDg0NyAvKiBIaWdobGlnaHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk0NDMwRDAwRDI1NzVBOEE1MDA0NkQ0MDEgLyogSGlnaGxp
Z2h0UmVnaXN0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ0RTg4RTUwMjM2QTU2QUMwMDlCNDg0NyAvKiBIaWdobGlnaHRSZWdpc3Rlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ0NTc3NUU1MjA0
NzJGNzMwMDhEQ0U1RCAvKiBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDU3NzVFNDIwNDcyRjczMDA4
RENFNUQgLyogTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ0NjNDRjY4MjIxMkZBNjgwMDFBODU3
NyAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M3OTQxRTIxQzU2QzI5MzAwQTRDNThFIC8qIERhdGFE
ZXRlY3RvcnNDb3JlU29mdExpbmsubW0gKi87IH07CiAJCTQ0NjVEN0JEMjUzNkQwNUUwMDE2NjY2
RCAvKiBTZWxlY3Rpb25SYW5nZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ0QjM4QkY0MjUzNjkwMUEwMEE0NDU4RCAvKiBTZWxlY3Rpb25SYW5n
ZURhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMzIwNTMsNyArMzIwNTUsOSBAQAogCQkJCTUxNUJFMTlDMUQ1NEY2QzEwMEREN0M2OCAvKiBI
SURHYW1lcGFkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTBBOTFEQTI0Q0YzRDhDMDBCRkQ4OUMg
LyogSElER2FtZXBhZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNUJFMTlFMUQ1NEY2
QzEwMEREN0M2OCAvKiBISURHYW1lcGFkUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ0
MzBEMDBCMjU3NUE4M0UwMDQ2RDQwMSAvKiBIaWdobGlnaHQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUNEQ0ZBQkJEMThDMEFGNzgwMDZGODQ1MCAvKiBIaWdobGlnaHREYXRhLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0NDMwRDAwRDI1NzVBOEE1MDA0NkQ0MDEgLyogSGlnaGxpZ2h0UmVnaXN0ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDOTREMTU0MEMyNzVDOEIwMDZCQzYxNyAvKiBIaXN0b3J5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5N0RDRTIwMjEwODA3Qzc1MDA1N0QzOTQgLyogSGlzdG9yeUNv
bnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNzQxRDExMEIwNzI1OUEwMEVENDQyQyAv
KiBIaXN0b3J5SXRlbS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtl
eXdvcmRzLmluCmluZGV4IDk5N2I0MjM5OWExOTkyZWRhMDg5NGY1MDlkMTQwMGUxYmM5MjdiODEu
LjBmYzEyNzE3MDAyNDgwYjY5MTVjNzVhMTc2ZmEwODI3NTEzYzQyNjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0yNTksNiArMjU5LDcgQEAgd2luZG93dGV4dAog
LWFwcGxlLXN5c3RlbS1wdXJwbGUKIC1hcHBsZS1zeXN0ZW0tcmVkCiAtYXBwbGUtc3lzdGVtLXll
bGxvdworLWFwcGxlLXN5c3RlbS1hcHAtaGlnaGxpZ2h0LWJhY2tncm91bmQKICNlbmRpZgogI2lm
IGRlZmluZWQoV1RGX1BMQVRGT1JNX01BQykgJiYgV1RGX1BMQVRGT1JNX01BQwogLWFwcGxlLXN5
c3RlbS1hbHRlcm5hdGUtc2VsZWN0ZWQtdGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXgg
NjQ2ZWU3ZWVjMDMzYzkwMzkzZWYwMzhlNDM3ZTA1YzZmZWNjYzlmZC4uMzI1ZGMwNmJlZWY0ZDk3
YjNjYjIzMWU2ZGM4Y2UxYThiNDU3MmFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC03
OTUsNiArNzk1LDkgQEAgdm9pZCBEb2N1bWVudDo6Y29tbW9uVGVhcmRvd24oKQogICAgIGlmICht
X2hpZ2hsaWdodFJlZ2lzdGVyKQogICAgICAgICBtX2hpZ2hsaWdodFJlZ2lzdGVyLT5jbGVhcigp
OwogCisgICAgaWYgKG1fYXBwSGlnaGxpZ2h0UmVnaXN0ZXIpCisgICAgICAgIG1fYXBwSGlnaGxp
Z2h0UmVnaXN0ZXItPmNsZWFyKCk7CisKICAgICBtX3BlbmRpbmdTY3JvbGxFdmVudFRhcmdldExp
c3QgPSBudWxscHRyOwogCiAgICAgaWYgKG1fdGltZWxpbmVzQ29udHJvbGxlcikKQEAgLTI3NzQs
MjEgKzI3NzcsMzQgQEAgSGlnaGxpZ2h0UmVnaXN0ZXImIERvY3VtZW50OjpoaWdobGlnaHRSZWdp
c3RlcigpCiAgICAgcmV0dXJuICptX2hpZ2hsaWdodFJlZ2lzdGVyOwogfQogCi12b2lkIERvY3Vt
ZW50Ojp1cGRhdGVIaWdobGlnaHRQb3NpdGlvbnMoKQorSGlnaGxpZ2h0UmVnaXN0ZXImIERvY3Vt
ZW50OjphcHBIaWdobGlnaHRSZWdpc3RlcigpCiB7Ci0gICAgVmVjdG9yPFdlYWtQdHI8SGlnaGxp
Z2h0UmFuZ2VEYXRhPj4gcmFuZ2VzRGF0YTsKLSAgICBpZiAobV9oaWdobGlnaHRSZWdpc3Rlcikg
ewotICAgICAgICBmb3IgKGF1dG8mIGhpZ2hsaWdodCA6IG1faGlnaGxpZ2h0UmVnaXN0ZXItPm1h
cCgpKSB7Ci0gICAgICAgICAgICBmb3IgKGF1dG8mIHJhbmdlRGF0YSA6IGhpZ2hsaWdodC52YWx1
ZS0+cmFuZ2VzRGF0YSgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHJhbmdlRGF0YS0+c3RhcnRQ
b3NpdGlvbiAmJiByYW5nZURhdGEtPmVuZFBvc2l0aW9uKQotICAgICAgICAgICAgICAgICAgICBj
b250aW51ZTsKLSAgICAgICAgICAgICAgICBpZiAoJnJhbmdlRGF0YS0+cmFuZ2UtPnN0YXJ0Q29u
dGFpbmVyKCkudHJlZVNjb3BlKCkgIT0gJnJhbmdlRGF0YS0+cmFuZ2UtPmVuZENvbnRhaW5lcigp
LnRyZWVTY29wZSgpKQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAg
ICAgICByYW5nZXNEYXRhLmFwcGVuZChtYWtlV2Vha1B0cihyYW5nZURhdGEucHRyKCkpKTsKLSAg
ICAgICAgICAgIH0KKyAgICBpZiAoIW1fYXBwSGlnaGxpZ2h0UmVnaXN0ZXIpCisgICAgICAgIG1f
YXBwSGlnaGxpZ2h0UmVnaXN0ZXIgPSBIaWdobGlnaHRSZWdpc3Rlcjo6Y3JlYXRlKCk7CisgICAg
cmV0dXJuICptX2FwcEhpZ2hsaWdodFJlZ2lzdGVyOworfQorCit2b2lkIERvY3VtZW50Ojpjb2xs
ZWN0UmFuZ2VEYXRhRnJvbVJlZ2lzdGVyKFZlY3RvcjxXZWFrUHRyPEhpZ2hsaWdodFJhbmdlRGF0
YT4+JiByYW5nZXNEYXRhLCBjb25zdCBIaWdobGlnaHRSZWdpc3RlciYgaGlnaGxpZ2h0UmVnaXN0
ZXIpCit7CisgICAgZm9yIChhdXRvJiBoaWdobGlnaHQgOiBoaWdobGlnaHRSZWdpc3Rlci5tYXAo
KSkgeworICAgICAgICBmb3IgKGF1dG8mIHJhbmdlRGF0YSA6IGhpZ2hsaWdodC52YWx1ZS0+cmFu
Z2VzRGF0YSgpKSB7CisgICAgICAgICAgICBpZiAocmFuZ2VEYXRhLT5zdGFydFBvc2l0aW9uICYm
IHJhbmdlRGF0YS0+ZW5kUG9zaXRpb24pCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgICAgICBpZiAoJnJhbmdlRGF0YS0+cmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCkudHJlZVNjb3Bl
KCkgIT0gJnJhbmdlRGF0YS0+cmFuZ2UtPmVuZENvbnRhaW5lcigpLnRyZWVTY29wZSgpKQorICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgcmFuZ2VzRGF0YS5hcHBlbmQobWFr
ZVdlYWtQdHIocmFuZ2VEYXRhLnB0cigpKSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgCit9CisK
K3ZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpCit7CisgICAgVmVjdG9y
PFdlYWtQdHI8SGlnaGxpZ2h0UmFuZ2VEYXRhPj4gcmFuZ2VzRGF0YTsKKyAgICBpZiAobV9oaWdo
bGlnaHRSZWdpc3RlcikKKyAgICAgICAgY29sbGVjdFJhbmdlRGF0YUZyb21SZWdpc3RlcihyYW5n
ZXNEYXRhLCAqbV9oaWdobGlnaHRSZWdpc3Rlci5nZXQoKSk7CisgICAgaWYgKG1fYXBwSGlnaGxp
Z2h0UmVnaXN0ZXIpCisgICAgICAgIGNvbGxlY3RSYW5nZURhdGFGcm9tUmVnaXN0ZXIocmFuZ2Vz
RGF0YSwgKm1fYXBwSGlnaGxpZ2h0UmVnaXN0ZXIuZ2V0KCkpOworCiAgICAgZm9yIChhdXRvJiB3
ZWFrUmFuZ2VEYXRhIDogcmFuZ2VzRGF0YSkgewogICAgICAgICBpZiAoYXV0byogcmFuZ2VEYXRh
ID0gd2Vha1JhbmdlRGF0YS5nZXQoKSkgewogICAgICAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiB2
aXNpYmxlU2VsZWN0aW9uKHJhbmdlRGF0YS0+cmFuZ2UpOwpAQCAtMjc5Nyw3ICsyODEzLDcgQEAg
dm9pZCBEb2N1bWVudDo6dXBkYXRlSGlnaGxpZ2h0UG9zaXRpb25zKCkKICAgICAgICAgICAgIGlm
ICghcmFuZ2VEYXRhLT5zdGFydFBvc2l0aW9uLmhhc1ZhbHVlKCkpCiAgICAgICAgICAgICAgICAg
c3RhcnRQb3NpdGlvbiA9IHZpc2libGVTZWxlY3Rpb24udmlzaWJsZVN0YXJ0KCkuZGVlcEVxdWl2
YWxlbnQoKTsKICAgICAgICAgICAgIGlmICghcmFuZ2VEYXRhLT5lbmRQb3NpdGlvbi5oYXNWYWx1
ZSgpKQotICAgICAgICAgICAgICAgIGVuZFBvc2l0aW9uID0gdmlzaWJsZVNlbGVjdGlvbi52aXNp
YmxlRW5kKCkuZGVlcEVxdWl2YWxlbnQoKTsgLy8gPE1NRz4gc3dpdGNoIHRvIEVORAorICAgICAg
ICAgICAgICAgIGVuZFBvc2l0aW9uID0gdmlzaWJsZVNlbGVjdGlvbi52aXNpYmxlRW5kKCkuZGVl
cEVxdWl2YWxlbnQoKTsKICAgICAgICAgICAgIGlmICghd2Vha1JhbmdlRGF0YS5nZXQoKSkKICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApp
bmRleCA4NGU1OGNjMTM1ZGRiMjVkYTNhN2E4MzhlNzRjM2U3OGY0MDdjOWQ3Li5lZTAzZjVmNGJm
ZmE5YzM2ZWMyODRiMzk5MDk0ZTNjNWU4ZTE5ODhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAt
MjMxLDYgKzIzMSw3IEBAIGNsYXNzIFhQYXRoTlNSZXNvbHZlcjsKIGNsYXNzIFhQYXRoUmVzdWx0
OwogCiBzdHJ1Y3QgQm91bmRhcnlQb2ludDsKK3N0cnVjdCBIaWdobGlnaHRSYW5nZURhdGE7CiBz
dHJ1Y3QgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xh
c3MgRXhjZXB0aW9uT3I7CkBAIC0xNTcyLDggKzE1NzMsMTEgQEAgcHVibGljOgogCiAgICAgV0VC
Q09SRV9FWFBPUlQgVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXImIHRleHRNYW5pcHVsYXRpb25D
b250cm9sbGVyKCk7CiAgICAgVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIqIHRleHRNYW5pcHVs
YXRpb25Db250cm9sbGVySWZFeGlzdHMoKSB7IHJldHVybiBtX3RleHRNYW5pcHVsYXRpb25Db250
cm9sbGVyLmdldCgpOyB9Ci0gICAgICAgIAorCisgICAgSGlnaGxpZ2h0UmVnaXN0ZXIqIGhpZ2hs
aWdodFJlZ2lzdGVySWZFeGlzdHMoKSB7IHJldHVybiBtX2hpZ2hsaWdodFJlZ2lzdGVyLmdldCgp
OyB9CiAgICAgSGlnaGxpZ2h0UmVnaXN0ZXImIGhpZ2hsaWdodFJlZ2lzdGVyKCk7CisgICAgSGln
aGxpZ2h0UmVnaXN0ZXIqIGFwcEhpZ2hsaWdodFJlZ2lzdGVySWZFeGlzdHMoKSB7IHJldHVybiBt
X2FwcEhpZ2hsaWdodFJlZ2lzdGVyLmdldCgpOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgSGlnaGxp
Z2h0UmVnaXN0ZXImIGFwcEhpZ2hsaWdodFJlZ2lzdGVyKCk7CiAgICAgdm9pZCB1cGRhdGVIaWdo
bGlnaHRQb3NpdGlvbnMoKTsKIAogICAgIGJvb2wgYWxsb3dzQ29udGVudEphdmFTY3JpcHQoKSBj
b25zdDsKQEAgLTE3MDEsNiArMTcwNSw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHBsYXRmb3Jt
U3VzcGVuZE9yU3RvcEFjdGl2ZURPTU9iamVjdHMoKTsKIAorICAgIHZvaWQgY29sbGVjdFJhbmdl
RGF0YUZyb21SZWdpc3RlcihWZWN0b3I8V2Vha1B0cjxIaWdobGlnaHRSYW5nZURhdGE+PiYsIGNv
bnN0IEhpZ2hsaWdodFJlZ2lzdGVyJik7CisKICAgICBib29sIGlzQm9keVBvdGVudGlhbGx5U2Ny
b2xsYWJsZShIVE1MQm9keUVsZW1lbnQmKTsKIAogICAgIHZvaWQgZGlkTG9nTWVzc2FnZShjb25z
dCBXVEZMb2dDaGFubmVsJiwgV1RGTG9nTGV2ZWwsIFZlY3RvcjxKU09OTG9nVmFsdWU+JiYpIGZp
bmFsOwpAQCAtMTkzMSw2ICsxOTM3LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgICAgICAKICAg
ICBSZWZQdHI8SGlnaGxpZ2h0UmVnaXN0ZXI+IG1faGlnaGxpZ2h0UmVnaXN0ZXI7CisgICAgUmVm
UHRyPEhpZ2hsaWdodFJlZ2lzdGVyPiBtX2FwcEhpZ2hsaWdodFJlZ2lzdGVyOwogCiAgICAgVGlt
ZXIgbV92aXN1YWxVcGRhdGVzU3VwcHJlc3Npb25UaW1lcjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1N0YXRpY1JhbmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RhdGljUmFu
Z2UuaAppbmRleCA3NjkwMTEzZGY4YTJhZTliYzgyNTU2YzRhYmYxMGY5NzJlMjJhN2FlLi5mN2Q3
ZjViNGYzNDA3NzZjMDIwMzdmYzk4MzQ5OGExNTVlOTRlMTFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU3RhdGljUmFuZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RhdGlj
UmFuZ2UuaApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAgIHN0YXRpYyBF
eGNlcHRpb25PcjxSZWY8U3RhdGljUmFuZ2U+PiBjcmVhdGUoSW5pdCYmKTsKLSAgICBzdGF0aWMg
UmVmPFN0YXRpY1JhbmdlPiBjcmVhdGUoY29uc3QgU2ltcGxlUmFuZ2UmKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgUmVmPFN0YXRpY1JhbmdlPiBjcmVhdGUoY29uc3QgU2ltcGxlUmFuZ2Um
KTsKICAgICBzdGF0aWMgUmVmPFN0YXRpY1JhbmdlPiBjcmVhdGUoU2ltcGxlUmFuZ2UmJik7CiAK
ICAgICBOb2RlJiBzdGFydENvbnRhaW5lcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNpbXBsZVJh
bmdlOjpzdGFydENvbnRhaW5lcigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxp
Z2h0RGF0YS5jcHAKaW5kZXggMzllYjE1MTA5YWE2YzAyYTY4NmJlMDRkZTBjZGQ2YjAzN2M4ZmM5
Yy4uMWY2Yjg4NmM5MTEwMTQ0OTBmMjc2YmI0ZDQzMGU3ZjFiYTZjMjhhYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcApAQCAtODIsNyArODIsNyBAQCB2b2lk
IFJlbmRlclJhbmdlSXRlcmF0b3I6OmNoZWNrRm9yU3Bhbm5lcigpCiAgICAgbV9jdXJyZW50ID0g
cGxhY2Vob2xkZXIuc3Bhbm5lcigpOwogfQogCi1zdGF0aWMgUmVuZGVyT2JqZWN0KiByZW5kZXJl
ckFmdGVyT2Zmc2V0KGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIHVuc2lnbmVkIG9mZnNl
dCkgLy8gPE1NRz4gdXNlZCBpbiBib3RoLCBtaWdodCBzaG91bGQgbm90IGJlIHN0YXRpYworc3Rh
dGljIFJlbmRlck9iamVjdCogcmVuZGVyZXJBZnRlck9mZnNldChjb25zdCBSZW5kZXJPYmplY3Qm
IHJlbmRlcmVyLCB1bnNpZ25lZCBvZmZzZXQpCiB7CiAgICAgYXV0byogY2hpbGQgPSByZW5kZXJl
ci5jaGlsZEF0KG9mZnNldCk7CiAgICAgcmV0dXJuIGNoaWxkID8gY2hpbGQgOiByZW5kZXJlci5u
ZXh0SW5QcmVPcmRlckFmdGVyQ2hpbGRyZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9J
bmxpbmVUZXh0Qm94LmNwcAppbmRleCBlMDkwZjE2YTgzNTk3MzI1YTZkZTM5MGUwYjlmZGNjNDNj
YjA3OWRjLi43ZmJkMWUxMTBiMzMyNTM2YTNhODcxY2RjZjAxNWM5ZDE5YWI5MTk4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCkBAIC04NDYsNiArODQ2LDEz
IEBAIGF1dG8gSW5saW5lVGV4dEJveDo6cmVzb2x2ZVN0eWxlRm9yTWFya2VkVGV4dChjb25zdCBN
YXJrZWRUZXh0JiBtYXJrZWRUZXh0LCBjb25zCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAg
ICAgICAgYnJlYWs7CisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorICAgIGNhc2UgTWFya2Vk
VGV4dDo6QXBwSGlnaGxpZ2h0OiB7CisgICAgICAgIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPiBzdHlsZUNvbG9yT3B0aW9ucyA9IHsgU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVt
QXBwZWFyYW5jZSB9OworICAgICAgICBzdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSByZW5kZXJlcigp
LnRoZW1lKCkuYXBwSGlnaGxpZ2h0Q29sb3Ioc3R5bGVDb2xvck9wdGlvbnMpOworICAgICAgICBi
cmVhazsKKyAgICB9CisjZW5kaWYKICAgICBjYXNlIE1hcmtlZFRleHQ6OkRyYWdnZWRDb250ZW50
OgogICAgICAgICBzdHlsZS5hbHBoYSA9IDAuMjU7CiAgICAgICAgIGJyZWFrOwpAQCAtMTA1Miwy
MSArMTA1OSwzNyBAQCBWZWN0b3I8TWFya2VkVGV4dD4gSW5saW5lVGV4dEJveDo6Y29sbGVjdE1h
cmtlZFRleHRzRm9ySGlnaGxpZ2h0cyhUZXh0UGFpbnRQaGFzZQogICAgIGF1dG8mIHBhcmVudFJl
bmRlcmVyID0gcGFyZW50KCktPnJlbmRlcmVyKCk7CiAgICAgYXV0byYgcGFyZW50U3R5bGUgPSBw
YXJlbnRSZW5kZXJlci5zdHlsZSgpOwogICAgIEhpZ2hsaWdodERhdGEgaGlnaGxpZ2h0RGF0YTsK
LSAgICBmb3IgKGF1dG8mIGhpZ2hsaWdodCA6IHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5oaWdobGln
aHRSZWdpc3RlcigpLm1hcCgpKSB7Ci0gICAgICAgIGF1dG8gcmVuZGVyU3R5bGUgPSBwYXJlbnRS
ZW5kZXJlci5nZXRVbmNhY2hlZFBzZXVkb1N0eWxlKHsgUHNldWRvSWQ6OkhpZ2hsaWdodCwgaGln
aGxpZ2h0LmtleSB9LCAmcGFyZW50U3R5bGUpOwotICAgICAgICBpZiAoIXJlbmRlclN0eWxlKQot
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmIChyZW5kZXJTdHlsZS0+dGV4dERlY29y
YXRpb25zSW5FZmZlY3QoKS5pc0VtcHR5KCkgJiYgcGhhc2UgPT0gVGV4dFBhaW50UGhhc2U6OkRl
Y29yYXRpb24pCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgZm9yIChhdXRvJiByYW5n
ZURhdGEgOiBoaWdobGlnaHQudmFsdWUtPnJhbmdlc0RhdGEoKSkgewotICAgICAgICAgICAgaWYg
KCFoaWdobGlnaHREYXRhLnNldFJlbmRlclJhbmdlKHJhbmdlRGF0YSkpCisgICAgaWYgKGF1dG8g
aGlnaGxpZ2h0UmVnaXN0ZXIgPSByZW5kZXJlcigpLmRvY3VtZW50KCkuaGlnaGxpZ2h0UmVnaXN0
ZXJJZkV4aXN0cygpKSB7CisgICAgICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogaGlnaGxpZ2h0
UmVnaXN0ZXItPm1hcCgpKSB7CisgICAgICAgICAgICBhdXRvIHJlbmRlclN0eWxlID0gcGFyZW50
UmVuZGVyZXIuZ2V0VW5jYWNoZWRQc2V1ZG9TdHlsZSh7IFBzZXVkb0lkOjpIaWdobGlnaHQsIGhp
Z2hsaWdodC5rZXkgfSwgJnBhcmVudFN0eWxlKTsKKyAgICAgICAgICAgIGlmICghcmVuZGVyU3R5
bGUpCiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAg
IGF1dG8gW2hpZ2hsaWdodFN0YXJ0LCBoaWdobGlnaHRFbmRdID0gaGlnaGxpZ2h0U3RhcnRFbmQo
aGlnaGxpZ2h0RGF0YSk7Ci0gICAgICAgICAgICBpZiAoaGlnaGxpZ2h0U3RhcnQgPCBoaWdobGln
aHRFbmQpCi0gICAgICAgICAgICAgICAgbWFya2VkVGV4dHMuYXBwZW5kKHsgaGlnaGxpZ2h0U3Rh
cnQsIGhpZ2hsaWdodEVuZCwgTWFya2VkVGV4dDo6SGlnaGxpZ2h0LCBudWxscHRyLCBoaWdobGln
aHQua2V5IH0pOworICAgICAgICAgICAgaWYgKHJlbmRlclN0eWxlLT50ZXh0RGVjb3JhdGlvbnNJ
bkVmZmVjdCgpLmlzRW1wdHkoKSAmJiBwaGFzZSA9PSBUZXh0UGFpbnRQaGFzZTo6RGVjb3JhdGlv
bikKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGZvciAoYXV0byYgcmFu
Z2VEYXRhIDogaGlnaGxpZ2h0LnZhbHVlLT5yYW5nZXNEYXRhKCkpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoIWhpZ2hsaWdodERhdGEuc2V0UmVuZGVyUmFuZ2UocmFuZ2VEYXRhKSkKKyAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAgICBhdXRvIFtoaWdobGlnaHRT
dGFydCwgaGlnaGxpZ2h0RW5kXSA9IGhpZ2hsaWdodFN0YXJ0RW5kKGhpZ2hsaWdodERhdGEpOwor
ICAgICAgICAgICAgICAgIGlmIChoaWdobGlnaHRTdGFydCA8IGhpZ2hsaWdodEVuZCkKKyAgICAg
ICAgICAgICAgICAgICAgbWFya2VkVGV4dHMuYXBwZW5kKHsgaGlnaGxpZ2h0U3RhcnQsIGhpZ2hs
aWdodEVuZCwgTWFya2VkVGV4dDo6SGlnaGxpZ2h0LCBudWxscHRyLCBoaWdobGlnaHQua2V5IH0p
OworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQorI2lmIEVOQUJMRShBUFBfSElHSExJ
R0hUUykKKyAgICBpZiAoYXV0byBhcHBIaWdobGlnaHRSZWdpc3RlciA9IHJlbmRlcmVyKCkuZG9j
dW1lbnQoKS5hcHBIaWdobGlnaHRSZWdpc3RlcklmRXhpc3RzKCkpIHsKKyAgICAgICAgZm9yIChh
dXRvJiBoaWdobGlnaHQgOiBhcHBIaWdobGlnaHRSZWdpc3Rlci0+bWFwKCkpIHsKKyAgICAgICAg
ICAgIGZvciAoYXV0byYgcmFuZ2VEYXRhIDogaGlnaGxpZ2h0LnZhbHVlLT5yYW5nZXNEYXRhKCkp
IHsKKyAgICAgICAgICAgICAgICBpZiAoIWhpZ2hsaWdodERhdGEuc2V0UmVuZGVyUmFuZ2UocmFu
Z2VEYXRhKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAg
ICBhdXRvIFtoaWdobGlnaHRTdGFydCwgaGlnaGxpZ2h0RW5kXSA9IGhpZ2hsaWdodFN0YXJ0RW5k
KGhpZ2hsaWdodERhdGEpOworICAgICAgICAgICAgICAgIGlmIChoaWdobGlnaHRTdGFydCA8IGhp
Z2hsaWdodEVuZCkKKyAgICAgICAgICAgICAgICAgICAgbWFya2VkVGV4dHMuYXBwZW5kKHsgaGln
aGxpZ2h0U3RhcnQsIGhpZ2hsaWdodEVuZCwgTWFya2VkVGV4dDo6QXBwSGlnaGxpZ2h0IH0pOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorI2VuZGlmCiAgICAgcmV0dXJuIG1hcmtl
ZFRleHRzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWFya2Vk
VGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL01hcmtlZFRleHQuaAppbmRleCA3M2Mw
NjIxMWZlNGFhNDMzMmEyYjgyODQwMWM5Y2FkMTlmMDkxZDI5Li5lNzk3OGE2NGNjN2IwMTFmNjA4
MzliM2YwZjdiNWU1YjBjYjg3OGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvTWFya2VkVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9NYXJrZWRUZXh0
LmgKQEAgLTQyLDYgKzQyLDkgQEAgc3RydWN0IE1hcmtlZFRleHQgewogICAgICAgICBUZXh0TWF0
Y2gsCiAgICAgICAgIERpY3RhdGlvbkFsdGVybmF0aXZlcywKICAgICAgICAgSGlnaGxpZ2h0LAor
I2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAgICAgICAgQXBwSGlnaGxpZ2h0LAorI2VuZGlm
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAgICAgLy8gRklYTUU6IFNlZSA8cmRhcjov
L3Byb2JsZW0vODkzMzM1Mj4uIEFsc28sIHJlbW92ZSB0aGUgUExBVEZPUk0oSU9TX0ZBTUlMWSkt
Z3VhcmQuCiAgICAgICAgIERpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXMsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAppbmRleCAyNmMyMzYxMjc0MDU2
ZmFlMDg2YzU5NWM4OGZkOWZhOTE2YjRkNzA3Li41Y2I0NzU0NzUzODJkMGM0ZWJjOTg5NjlhMDlh
M2M4ZjcxNGE5ZDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UmVwbGFjZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNl
ZC5jcHAKQEAgLTE0MiwxNyArMTQyLDM2IEBAIGlubGluZSBzdGF0aWMgYm9vbCBkcmFnZ2VkQ29u
dGVudENvbnRhaW5zUmVwbGFjZWRFbGVtZW50KGNvbnN0IFZlY3RvcjxSZW5kZXJlZERvCiBDb2xv
ciBSZW5kZXJSZXBsYWNlZDo6Y2FsY3VsYXRlSGlnaGxpZ2h0Q29sb3IoKSBjb25zdAogewogICAg
IEhpZ2hsaWdodERhdGEgaGlnaGxpZ2h0RGF0YTsKLSAgICBmb3IgKGF1dG8mIGhpZ2hsaWdodCA6
IGRvY3VtZW50KCkuaGlnaGxpZ2h0UmVnaXN0ZXIoKS5tYXAoKSkgewotICAgICAgICBmb3IgKGF1
dG8mIHJhbmdlRGF0YSA6IGhpZ2hsaWdodC52YWx1ZS0+cmFuZ2VzRGF0YSgpKSB7Ci0gICAgICAg
ICAgICBpZiAoIWhpZ2hsaWdodERhdGEuc2V0UmVuZGVyUmFuZ2UocmFuZ2VEYXRhKSkKLSAgICAg
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgYXV0byBzdGF0
ZSA9IGhpZ2hsaWdodERhdGEuaGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJlcigqdGhpcyk7Ci0gICAg
ICAgICAgICBpZiAoIWlzSGlnaGxpZ2h0ZWQoc3RhdGUsIGhpZ2hsaWdodERhdGEpKQotICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgICBpZiAoYXV0byBoaWdobGlnaHRTdHls
ZSA9IGdldFVuY2FjaGVkUHNldWRvU3R5bGUoeyBQc2V1ZG9JZDo6SGlnaGxpZ2h0LCBoaWdobGln
aHQua2V5IH0sICZzdHlsZSgpKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gaGlnaGxpZ2h0U3R5
bGUtPmJhY2tncm91bmRDb2xvcigpOworI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAgICBp
ZiAoYXV0byBhcHBIaWdobGlnaHRSZWdpc3RlciA9IGRvY3VtZW50KCkuYXBwSGlnaGxpZ2h0UmVn
aXN0ZXJJZkV4aXN0cygpKSB7CisgICAgICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogYXBwSGln
aGxpZ2h0UmVnaXN0ZXItPm1hcCgpKSB7CisgICAgICAgICAgICBmb3IgKGF1dG8mIHJhbmdlRGF0
YSA6IGhpZ2hsaWdodC52YWx1ZS0+cmFuZ2VzRGF0YSgpKSB7CisgICAgICAgICAgICAgICAgaWYg
KCFoaWdobGlnaHREYXRhLnNldFJlbmRlclJhbmdlKHJhbmdlRGF0YSkpCisgICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgYXV0byBzdGF0ZSA9IGhpZ2hsaWdo
dERhdGEuaGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJlcigqdGhpcyk7CisgICAgICAgICAgICAgICAg
aWYgKCFpc0hpZ2hsaWdodGVkKHN0YXRlLCBoaWdobGlnaHREYXRhKSkKKyAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMgPSB7IFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5
c3RlbUFwcGVhcmFuY2UgfTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUoKS5hcHBIaWdo
bGlnaHRDb2xvciggc3R5bGVDb2xvck9wdGlvbnMpOworICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgfQorI2VuZGlmCisgICAgaWYgKGF1dG8gaGlnaGxpZ2h0UmVnaXN0ZXIgPSBkb2N1bWVu
dCgpLmhpZ2hsaWdodFJlZ2lzdGVySWZFeGlzdHMoKSkgeworICAgICAgICBmb3IgKGF1dG8mIGhp
Z2hsaWdodCA6IGhpZ2hsaWdodFJlZ2lzdGVyLT5tYXAoKSkgeworICAgICAgICAgICAgZm9yIChh
dXRvJiByYW5nZURhdGEgOiBoaWdobGlnaHQudmFsdWUtPnJhbmdlc0RhdGEoKSkgeworICAgICAg
ICAgICAgICAgIGlmICghaGlnaGxpZ2h0RGF0YS5zZXRSZW5kZXJSYW5nZShyYW5nZURhdGEpKQor
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIGF1dG8gc3Rh
dGUgPSBoaWdobGlnaHREYXRhLmhpZ2hsaWdodFN0YXRlRm9yUmVuZGVyZXIoKnRoaXMpOworICAg
ICAgICAgICAgICAgIGlmICghaXNIaWdobGlnaHRlZChzdGF0ZSwgaGlnaGxpZ2h0RGF0YSkpCisg
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgaWYgKGF1dG8g
aGlnaGxpZ2h0U3R5bGUgPSBnZXRVbmNhY2hlZFBzZXVkb1N0eWxlKHsgUHNldWRvSWQ6OkhpZ2hs
aWdodCwgaGlnaGxpZ2h0LmtleSB9LCAmc3R5bGUoKSkpCisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBoaWdobGlnaHRTdHlsZS0+YmFja2dyb3VuZENvbG9yKCk7CisgICAgICAgICAgICB9CiAg
ICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIENvbG9yKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lLmNwcAppbmRleCAwNGE5MzBjODBhN2M3OGRjMDEwODA1MjkxNTAzMjlm
M2FhM2ExMzJiLi41ZjhjOTFiMzhkZmU5MjkyYzExY2E1Nzk5MGM1NjRlMThjMzIyZjExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKQEAgLTEzNDgsNiArMTM0OCwy
MSBAQCBDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbgogICAgIHJldHVybiBDb2xvcjo6eWVsbG93Owog
fQogCisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorQ29sb3IgUmVuZGVyVGhlbWU6OmFwcEhp
Z2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25z
dAoreworICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKKyAgICBpZiAoIWNh
Y2hlLmFwcEhpZ2hsaWdodENvbG9yLmlzVmFsaWQoKSkKKyAgICAgICAgY2FjaGUuYXBwSGlnaGxp
Z2h0Q29sb3IgPSB0cmFuc2Zvcm1TZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IocGxhdGZvcm1BcHBI
aWdobGlnaHRDb2xvcihvcHRpb25zKSwgb3B0aW9ucyk7CisgICAgcmV0dXJuIGNhY2hlLmFwcEhp
Z2hsaWdodENvbG9yOworfQorCitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BcHBIaWdobGln
aHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0Cit7CisgICAgcmV0
dXJuIENvbG9yOjp5ZWxsb3c7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
CiAKIENvbG9yIFJlbmRlclRoZW1lOjp0YXBIaWdobGlnaHRDb2xvcigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZS5oCmluZGV4IGJlMTk5MDNkNWFiNjQ2ZmFlOTQyY2MyMjlkNDFj
MTQ4ZThkNGU3ZjUuLjRmZmYyOWRjYzBhYjcxNWUxNWNjYzlmZjcwMGE1ZWU4MGNiZjIxYzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCkBAIC0xNTcsNiArMTU3LDkgQEAg
cHVibGljOgogICAgIC8vIEhpZ2hsaWdodGluZyBjb2xvciBmb3Igc2VhcmNoIG1hdGNoZXMuCiAg
ICAgQ29sb3IgdGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPikgY29uc3Q7CiAKKyAgICAvLyBEZWZhdWx0IGhpZ2hsaWdodGluZyBjb2xvciBmb3Ig
YXBwIGhpZ2hsaWdodHMuCisgICAgQ29sb3IgYXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKwogICAgIHZpcnR1YWwgQ29sb3IgZGlzYWJsZWRU
ZXh0Q29sb3IoY29uc3QgQ29sb3ImIHRleHRDb2xvciwgY29uc3QgQ29sb3ImIGJhY2tncm91bmRD
b2xvcikgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBDb2xvciBmb2N1c1JpbmdDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwpAQCAtMjc1LDcgKzI3OCw5IEBA
IHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29u
c3Q7CiAKICAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0KKyNpZiBFTkFCTEUoQVBQ
X0hJR0hMSUdIVFMpCisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisjZW5kaWYKICAgICB2aXJ0
dWFsIGJvb2wgc3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c0xpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCkBAIC00MjcsNiArNDMy
LDEwIEBAIHByb3RlY3RlZDoKICAgICAgICAgQ29sb3IgaW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yOwogCiAgICAgICAgIENvbG9yIHRleHRTZWFyY2hIaWdobGlnaHRDb2xv
cjsKKworI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAgICAgICAgQ29sb3IgYXBwSGlnaGxp
Z2h0Q29sb3I7CisjZW5kaWYKICAgICB9OwogCiAgICAgdmlydHVhbCBDb2xvckNhY2hlJiBjb2xv
ckNhY2hlKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCmluZGV4IGFkMDJmZTdiOGQzZTE3NTFjYjc2
ZWVkMTU0YjIyN2FhMTViZmRjNGIuLjhmMGQxNDVkNzE4YjliOGQzYWZiM2UxNDZkNzMwNmE5MjVj
MTdiOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlP
Uy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCkBAIC0x
MjEsNiArMTIxLDEwIEBAIHByaXZhdGU6CiAgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
IG92ZXJyaWRlOwogICAgIENvbG9yIHBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKIAorI2lmIEVOQUJMRShBUFBfSElHSExJ
R0hUUykKKyAgICBDb2xvciBwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CisjZW5kaWYKKwogI2lmIEVOQUJMRShUT1VD
SF9FVkVOVFMpCiAgICAgQ29sb3IgcGxhdGZvcm1UYXBIaWdobGlnaHRDb2xvcigpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIFNSR0JBPHVpbnQ4X3Q+IHsgMjYsIDI2LCAyNiwgNzcgfSA7IH0KICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9T
Lm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCmluZGV4IGRj
ZWJjZTQ4NWUzNjIzNThjODRjZTQyMGFkODZmNGEzMjY0MjQ1OWIuLmExYzY0OGU3MDViMmQ4ODAx
YTYzZGI3ZTI4ZThhMGRiM2IxYzQ1OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVJT1MubW0KQEAgLTExNjgsNiArMTE2OCwxMiBAQCBDb2xvciBSZW5kZXJUaGVtZUlP
Uzo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4p
IGNvbgogICAgIHJldHVybiBzeXN0ZW1Gb2N1c1JpbmdDb2xvcigpOwogfQogCitDb2xvciBSZW5k
ZXJUaGVtZUlPUzo6cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4pIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IGV4cG9zZSB0aGUgcmVhbCB2YWx1
ZSBmcm9tIFVJS2l0LgorICAgIHJldHVybiBTUkdCQTx1aW50OF90PiB7IDI1NSwgMjM4LCAxOTAg
fTsKK30KKwogYm9vbCBSZW5kZXJUaGVtZUlPUzo6c2hvdWxkSGF2ZVNwaW5CdXR0b24oY29uc3Qg
SFRNTElucHV0RWxlbWVudCYpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTI4OSw3
ICsxMjk1LDcgQEAgc3RhdGljIGNvbnN0IFZlY3RvcjxDU1NWYWx1ZUlEQW5kU2VsZWN0b3I+JiBj
c3NWYWx1ZUlEU2VsZWN0b3JMaXN0KCkKICAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3Rl
bVBpbmssIEBzZWxlY3RvcihzeXN0ZW1QaW5rQ29sb3IpIH0sCiAgICAgICAgICAgICB7IENTU1Zh
bHVlQXBwbGVTeXN0ZW1QdXJwbGUsIEBzZWxlY3RvcihzeXN0ZW1QdXJwbGVDb2xvcikgfSwKICAg
ICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVJlZCwgQHNlbGVjdG9yKHN5c3RlbVJlZENv
bG9yKSB9LAotICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtWWVsbG93LCBAc2VsZWN0
b3Ioc3lzdGVtWWVsbG93Q29sb3IpIH0KKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3Rl
bVllbGxvdywgQHNlbGVjdG9yKHN5c3RlbVllbGxvd0NvbG9yKSB9LAogICAgICAgICB9KTsKICAg
ICB9KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
TWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAppbmRleCA0
ZjU3OTY1OTM2OWVjNGI2ZTkwMzRmNzkwY2ZmMmUwMjliNWM0ZTE1Li4xZDlmN2QzZTMzZmFlMDBj
NWI3MjRkYjhiYTBmZmIzZDdkNzM5MDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVNYWMuaApAQCAtNjYsNiArNjYsOSBAQCBwdWJsaWM6CiAgICAgQ29sb3IgcGxhdGZv
cm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKICAgICBDb2xvciBwbGF0Zm9ybUZvY3VzUmlu
Z0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CiAgICAg
Q29sb3IgcGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisg
ICAgQ29sb3IgcGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworI2VuZGlmCiAKICAgICBTY3JvbGxiYXJDb250cm9sU2l6
ZSBzY3JvbGxiYXJDb250cm9sU2l6ZUZvclBhcnQoQ29udHJvbFBhcnQpIGZpbmFsIHsgcmV0dXJu
IFNjcm9sbGJhckNvbnRyb2xTaXplOjpTbWFsbDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggMWE1NTAzOWQ4OGUwY2Y5M2Y2Mjg3NmI1MjcyY2Vj
ODk3MjY2NTJlYy4uOTkyYjgxZGM4Y2E4Y2Y0ZTU2OWM4ZGFhZWNmYjFjOGVhZThhNjVlMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtNDc2LDYgKzQ3
NiwxNCBAQCBDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0
Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdAogICAgIHJldHVybiBjb2xvckZyb21OU0Nv
bG9yKFtOU0NvbG9yIGZpbmRIaWdobGlnaHRDb2xvcl0pOwogfQogCisjaWYgRU5BQkxFKEFQUF9I
SUdITElHSFRTKQorQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAoreworICAgIC8vIEZJWE1F
OiBleHBvc2UgdGhlIHJlYWwgdmFsdWUgZnJvbSBBcHBLaXQuCisgICAgcmV0dXJuIFNSR0JBPHVp
bnQ4X3Q+IHsgMjU1LCAyMzgsIDE5MCB9OworfQorI2VuZGlmCisKIHN0YXRpYyBTUkdCQTx1aW50
OF90PiBtZW51QmFja2dyb3VuZENvbG9yKCkKIHsKICAgICBSZXRhaW5QdHI8TlNCaXRtYXBJbWFn
ZVJlcD4gb2Zmc2NyZWVuUmVwID0gYWRvcHROUyhbW05TQml0bWFwSW1hZ2VSZXAgYWxsb2NdIGlu
aXRXaXRoQml0bWFwRGF0YVBsYW5lczpuaWwgcGl4ZWxzV2lkZToxIHBpeGVsc0hpZ2g6MQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYTlkYjRiNjhjNDVkOGJmMGU2OTAyMzgzZTBmOGFhMjc4Mzc2OGE2MwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NyZWF0ZU5ld0dyb3VwRm9ySGlnaGxp
Z2h0LmgKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworZW51bSBjbGFzcyBDcmVhdGVOZXdHcm91cEZvckhpZ2hsaWdodCA6
IGJvb2wgeyBObywgWWVzIH07CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQppbmRleCAyOWZh
ODk1MWRhZWYzNjNlY2VjZGY5MDJjYmU3MjllMDZlY2JlZWI4Li5mMGY0N2FkY2EyMjBlYTgyNDdl
ODlkOTAxNmIzYWJkZmY0Y2MzZjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpAQCAtMzgsNiArMzgsNyBAQAogI2ltcG9ydCAi
U2FmZUJyb3dzaW5nU1BJLmgiCiAjaW1wb3J0ICJTYWZlQnJvd3NpbmdXYXJuaW5nLmgiCiAjaW1w
b3J0ICJTaGFyZWRCdWZmZXJDb3B5LmgiCisjaW1wb3J0ICJXZWJQYWdlLmgiCiAjaW1wb3J0ICJX
ZWJQYWdlTWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlBhc3RlYm9hcmRQcm94eS5oIgogI2ltcG9y
dCAiV2ViUHJvY2Vzc1Byb3h5LmgiCkBAIC01NDMsNiArNTQ0LDE3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjphZGRBY3Rpdml0eVN0YXRlVXBkYXRlQ29tcGxldGlvbkhhbmRsZXIoQ29tcGxldGlvbkhh
bmRsZXI8dm9pCiAgICAgbV9hY3Rpdml0eVN0YXRlVXBkYXRlQ2FsbGJhY2tzLmFwcGVuZChXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMp
Cit2b2lkIFdlYlBhZ2VQcm94eTo6Y3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJhbmdlKENy
ZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0IGNyZWF0ZU5ld0dyb3VwKQoreworICAgIGlmICghaGFz
UnVubmluZ1Byb2Nlc3MoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6Q3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJhbmdlKGNyZWF0ZU5ld0dyb3Vw
KSk7Cit9CisKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIE1FU1NB
R0VfQ0hFQ0tfQ09NUExFVElPTgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKaW5kZXggMGY4NzQyODk5MGRlMDAxMzQzNjcyZTI0OTQ4OTVhZDEzZDQzMzAyOC4uOTgxMjY1
ZDM5OTAyMTgxYWQwZWNlNWZmOTAwYjIyMmMwMTg0ODAwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMTcsNiArMTE3LDcgQEAKICNpbmNsdWRlICJXZWJO
YXZpZ2F0aW9uU3RhdGUuaCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHku
aCIKICNpbmNsdWRlICJXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmgiCisjaW5jbHVk
ZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNp
bmNsdWRlICJXZWJQYWdlRGVidWdnYWJsZS5oIgogI2luY2x1ZGUgIldlYlBhZ2VHcm91cC5oIgpA
QCAtNjYyMSw2ICs2NjIyLDE2IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250ZXh0TWVudUl0ZW1T
ZWxlY3RlZChjb25zdCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJiBpdGVtKQogICAgICAgICBUZXh0
Q2hlY2tlcjo6dG9nZ2xlU3BlbGxpbmdVSUlzU2hvd2luZygpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQorI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAgICBpZiAoaXRlbS5hY3Rpb24oKSA9
PSBDb250ZXh0TWVudUl0ZW1UYWdBZGRIaWdobGlnaHRUb05ld0dyb3VwKSB7CisgICAgICAgIGNy
ZWF0ZUFwcEhpZ2hsaWdodEluU2VsZWN0ZWRSYW5nZShDcmVhdGVOZXdHcm91cEZvckhpZ2hsaWdo
dDo6WWVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoaXRlbS5hY3Rpb24oKSA9
PSBDb250ZXh0TWVudUl0ZW1UYWdBZGRIaWdobGlnaHRUb0N1cnJlbnRHcm91cCkgeworICAgICAg
ICBjcmVhdGVBcHBIaWdobGlnaHRJblNlbGVjdGVkUmFuZ2UoQ3JlYXRlTmV3R3JvdXBGb3JIaWdo
bGlnaHQ6Ok5vKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgogICAgIGlmIChpdGVt
LmFjdGlvbigpID09IENvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmcgfHwgaXRlbS5hY3Rp
b24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVsbGluZykKICAgICAgICAgKyttX3Bl
bmRpbmdMZWFybk9ySWdub3JlV29yZE1lc3NhZ2VDb3VudDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAppbmRleCA4NzlmNzMyYjExY2IxMjM5NzM4NjU4ZThlNThmYjg3YzUw
MzRmMmI4Li4zMWM4NDY0M2RhZmJmMWExOTY5MDEzMjM1OTAwNTY2ZWQxMjA4NjE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1
ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxk
RnJhbWVzLmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDb250ZXh0RGF0YS5oIgorI2luY2x1ZGUg
IkNyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0LmgiCiAjaW5jbHVkZSAiRG93bmxvYWRJRC5oIgog
I2luY2x1ZGUgIkRyYWdDb250cm9sbGVyQWN0aW9uLmgiCiAjaW5jbHVkZSAiRWRpdGluZ1Jhbmdl
LmgiCkBAIC0zNjMsNiArMzY0LDcgQEAgc3RydWN0IFdlYlNwZWVjaFN5bnRoZXNpc1ZvaWNlOwog
c3RydWN0IFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzOwogc3RydWN0IFVzZXJNZXNzYWdlOwogCitl
bnVtIGNsYXNzIENyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0IDogYm9vbDsKIGVudW0gY2xhc3Mg
TmVnb3RpYXRlZExlZ2FjeVRMUyA6IGJvb2w7CiBlbnVtIGNsYXNzIFByb2Nlc3NTd2FwUmVxdWVz
dGVkQnlDbGllbnQgOiBib29sOwogZW51bSBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Np
b25EZWNpc2lvbiA6IGJvb2w7CkBAIC0xODIzLDYgKzE4MjUsMTAgQEAgcHVibGljOgogICAgIHZv
aWQgcmVxdWVzdFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbihjb25zdCBXZWJDb3JlOjpDbGll
bnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNwZWVjaFJlY29nbml0aW9uUGVybWlz
c2lvbkRlY2lzaW9uKT4mJik7CiAgICAgdm9pZCByZXF1ZXN0U3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uQnlEZWZhdWx0QWN0aW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdI
VFMpCisgICAgdm9pZCBjcmVhdGVBcHBIaWdobGlnaHRJblNlbGVjdGVkUmFuZ2UoQ3JlYXRlTmV3
R3JvdXBGb3JIaWdobGlnaHQpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5
KFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlv
bj4mJik7CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4
IGM1MTQ3ZjQzMDQ3OTFhY2Y2NjNkMjE0NTlhMmU2MzFhNDMzNmQ3NGIuLmU0YjM3ZDNmNDdjYjE5
MWQ1YmRiZWQ1NTMxNzU2NzA5ZDI0NDA5ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNzksNiArNzks
NyBAQAogI2ltcG9ydCAiV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLmgiCiAjaW1w
b3J0ICJXZWJFdmVudC5oIgogI2ltcG9ydCAiV2ViSU9TRXZlbnRGYWN0b3J5LmgiCisjaW1wb3J0
ICJXZWJQYWdlLmgiCiAjaW1wb3J0ICJXZWJQYWdlTWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlBh
Z2VQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKQEAgLTg2MTUs
MTIgKzg2MTYsMTIgQEAgLSAodm9pZClzZXR1cEFwcEhpZ2hsaWdodE1lbnVzCiAKIC0gKHZvaWQp
Y3JlYXRlSGlnaGxpZ2h0SW5DdXJyZW50R3JvdXBXaXRoUmFuZ2U6KGlkKXNlbmRlcgogewotICAg
IC8vIEZJWE1FOiBBZGQgSGlnaGxpZ2h0IGxvZ2ljLgorICAgIF9wYWdlLT5jcmVhdGVBcHBIaWdo
bGlnaHRJblNlbGVjdGVkUmFuZ2UoQ3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQ6Ok5PKTsKIH0K
IAogLSAodm9pZCljcmVhdGVIaWdobGlnaHRJbk5ld0dyb3VwV2l0aFJhbmdlOihpZClzZW5kZXIK
IHsKLSAgICAvLyBGSVhNRTogQWRkIEhpZ2hsaWdodCBsb2dpYy4KKyAgICBfcGFnZS0+Y3JlYXRl
QXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJhbmdlKENyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0OjpZ
RVMpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDIxNWI2MDBkZWRmNjZjODQ2OTQ2ZWJkMDBkNTk2MjZhMTFkN2Jl
MTkuLmVkNDQyY2QwYjdmOGE0OGM0NDRjNjI4ZWY5NWQ4OTMwNTE2ODNlM2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTI4LDYgKzky
OCw3IEBACiAJCTQxRkFCRDJBMUY0REUwMDEwMDZBNkM5NyAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVD
YWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFG
QUJEMjgxRjREREZEQzAwNkE2Qzk3IC8qIENhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmggKi87IH07
CiAJCTQxRkFGNUY1MUUzQzA2NDkwMDFBRTY3OCAvKiBXZWJSVENSZXNvbHZlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQUY1RjQxRTNDMDY0MTAw
MUFFNjc4IC8qIFdlYlJUQ1Jlc29sdmVyLmggKi87IH07CiAJCTQxRkFGNUY4MUUzQzEwMjEwMDFB
RTY3OCAvKiBMaWJXZWJSVENSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDFGQUY1RjYxRTNDMEI0NzAwMUFFNjc4IC8qIExpYldlYlJUQ1Jl
c29sdmVyLmggKi87IH07CisJCTQ0MzBEMDE3MjU3NkQ5REQwMDQ2RDQwMSAvKiBDcmVhdGVOZXdH
cm91cEZvckhpZ2hsaWdodC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDQzMEQwMTYyNTc2RDlEQzAwNDZENDAxIC8qIENyZWF0ZU5ld0dyb3VwRm9ySGln
aGxpZ2h0LmggKi87IH07CiAJCTQ0NTk5ODQyMjI4MzNFODcwMEU2MTM3MyAvKiBTeW50aGV0aWNF
ZGl0aW5nQ29tbWFuZFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ0NTk5ODQxMjI4MzNFNjAwMEU2MTM3MyAvKiBTeW50aGV0aWNFZGl0aW5nQ29t
bWFuZFR5cGUuaCAqLzsgfTsKIAkJNDQ2REM2NEMyNEEyRDhFNTAwNjFGMzkwIC8qIFBsYXliYWNr
U2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NDZEQzY0QjI0QTJEOEFEMDA2MUYzOTAgLyogUGxheWJhY2tTZXNz
aW9uQ29udGV4dElkZW50aWZpZXIuaCAqLzsgfTsKIAkJNDQ4MjczNDcyNDUyOEY2MDAwQTk1NDkz
IC8qIENvY29hSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ0ODI3MzQ2MjQ1MjhGNjAwMEE5NTQ5MyAvKiBDb2NvYUltYWdlLmggKi87IH07CkBA
IC0zNjA1LDYgKzM2MDYsNyBAQAogCQk0MUZDRDZCRDIzQ0UwNDNGMDBDNjI1NjcgLyogUmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUZDRDZCRTIzQ0UwNDQwMDBDNjI1
NjcgLyogUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGQ0Q2QkYyM0NF
MDQ0MDAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NDMwRDAxNjI1
NzZEOURDMDA0NkQ0MDEgLyogQ3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1MEFFQkYxREMzRkFFNTAwOTk0M0YyIC8qIFNo
YXJlZE1lbW9yeUNvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNoYXJlZE1lbW9yeUNvY29hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1
OTk4NDEyMjgzM0U2MDAwRTYxMzczIC8qIFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDQ2REM2NEIyNEEyRDhBRDAwNjFGMzkwIC8qIFBsYXliYWNrU2Vz
c2lvbkNvbnRleHRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC02MTgzLDYgKzYxODUsNyBAQAogCQkJCTUxMDZEN0JGMThCREJFNzMwMDBBQjE2
NiAvKiBDb250ZXh0TWVudUNvbnRleHREYXRhLmNwcCAqLywKIAkJCQk1MTA2RDdDMDE4QkRCRTcz
MDAwQUIxNjYgLyogQ29udGV4dE1lbnVDb250ZXh0RGF0YS5oICovLAogCQkJCTk5RjY0MkQyMUZB
QkUzNzgwMDk2MjFFOSAvKiBDb29yZGluYXRlU3lzdGVtLmggKi8sCisJCQkJNDQzMEQwMTYyNTc2
RDlEQzAwNDZENDAxIC8qIENyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0LmggKi8sCiAJCQkJOTkw
MzZBRTgyM0E5NzA4NzAwMDBCMDZBIC8qIERlYnVnZ2FibGVJbmZvRGF0YS5jcHAgKi8sCiAJCQkJ
OTkwMzZBRTcyM0E5NzA4NzAwMDBCMDZBIC8qIERlYnVnZ2FibGVJbmZvRGF0YS5oICovLAogCQkJ
CTBGMTg5Q0FCMjQ3NDlGMkYwMEU1OEQ4MSAvKiBEaXNwbGF5TGlua09ic2VydmVySUQuaCAqLywK
QEAgLTExMDg5LDYgKzExMDkyLDcgQEAKIAkJCQk1MTA2RDdDNDE4QkRCRTczMDAwQUIxNjYgLyog
Q29udGV4dE1lbnVDb250ZXh0RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdDMjFDQUUxRTk5
NEMwQzAwMjlENUY5IC8qIENvcmVQcmVkaWN0aW9uU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
ODc4QjYxNTEzMzQyOERDMDA2ODg4RTkgLyogQ29ycmVjdGlvblBhbmVsLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0NDMwRDAxNzI1NzZEOUREMDA0NkQ0MDEgLyogQ3JlYXRlTmV3R3JvdXBGb3JIaWdo
bGlnaHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3NTk3RUJEMjE4MTg0OTAwMDM3RjkyNCAvKiBD
dGFwQXV0aGVudGljYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTc1OTdFQjkyMTgxMUQ5QTAw
MzdGOTI0IC8qIEN0YXBIaWREcml2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MERBQUNBMjMw
Mzg1RkQwMEU4RkMwNCAvKiBDdGFwTmZjRHJpdmVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggOTU3MGVjM2JhMDRh
ZTNhNzAzODM0OTU4ODBkMDNiMjI1YmQ2MWQyYi4uOTlmNjQ3NWExNWU4MmZlZmE2ZTFmNTNlOTA5
ZTk4MGE2NTc1YmM1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKQEAgLTE1Niw2ICsxNTYsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRGF0YVRyYW5z
ZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EYXRhYmFzZU1hbmFnZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRG9j
dW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50RnJhZ21lbnQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudE1h
cmtlckNvbnRyb2xsZXIuaD4KQEAgLTE4Niw2ICsxODcsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
SFRNTFBsdWdJbkVsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxTZWxlY3RFbGVtZW50
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvSGlnaGxpZ2h0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9IaWdobGlnaHRS
ZWdpc3Rlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSGlzdG9yeUNvbnRyb2xsZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0hpc3RvcnlJdGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IaXRUZXN0UmVz
dWx0Lmg+CkBAIC0yMjksNiArMjMyLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFkb3dSb290Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFy
ZWRCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1N0YXRpY1JhbmdlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TdHlsZVByb3BlcnRpZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1YmZyYW1lTG9h
ZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdWJzdGl0dXRlRGF0YS5oPgpAQCAtNzAzMyw2ICs3
MDM3LDI2IEBAIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgV2ViUGFnZTo6ZW5zdXJlUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUF9I
SUdITElHSFRTKQorYm9vbCBXZWJQYWdlOjpjcmVhdGVBcHBIaWdobGlnaHRJblNlbGVjdGVkUmFu
Z2UoQ3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQgY3JlYXRlTmV3R3JvdXApCit7CisgICAgYXV0
byBkb2N1bWVudCA9IG1ha2VSZWZQdHIobV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2Vk
T3JNYWluRnJhbWUoKS5kb2N1bWVudCgpKTsKKworICAgIGF1dG8gZnJhbWUgPSBtYWtlUmVmUHRy
KGRvY3VtZW50LT5mcmFtZSgpKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBhdXRvIHNlbGVjdGlvblJhbmdlID0gZnJhbWUtPnNlbGVjdGlvbigpLnNlbGVj
dGlvbigpLnRvTm9ybWFsaXplZFJhbmdlKCk7CisgICAgaWYgKCFzZWxlY3Rpb25SYW5nZSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZG9jdW1lbnQtPmFwcEhpZ2hsaWdodFJlZ2lzdGVy
KCkuYWRkQXBwSGlnaGxpZ2h0KFN0YXRpY1JhbmdlOjpjcmVhdGUoc2VsZWN0aW9uUmFuZ2UudmFs
dWUoKSkpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisjZW5kaWYKKworCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAogI3VuZGVmIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBhNzQ4YmUyMTM1ZTNkMjJiNDBkYjA1
YTE2M2FlZTAwYWQ1MzQyNGQxLi44NmVmNTE0YzA5ZTU0YjIzZTcwOWE1ZjdjMjVkMTQ4OGUyMmU5
ZTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0z
NCw2ICszNCw3IEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiQ2FsbGJhY2tJ
RC5oIgogI2luY2x1ZGUgIkNvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCIKKyNp
bmNsdWRlICJDcmVhdGVOZXdHcm91cEZvckhpZ2hsaWdodC5oIgogI2luY2x1ZGUgIkRvd25sb2Fk
SUQuaCIKICNpbmNsdWRlICJEcmF3aW5nQXJlYUluZm8uaCIKICNpbmNsdWRlICJFZGl0aW5nUmFu
Z2UuaCIKQEAgLTEzNjYsNiArMTM2NywxMCBAQCBwdWJsaWM6CiAgICAgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5JiBlbnN1cmVSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkoKTsKICNlbmRp
ZgogCisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorICAgIGJvb2wgY3JlYXRlQXBwSGlnaGxp
Z2h0SW5TZWxlY3RlZFJhbmdlKENyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0KTsKKyNlbmRpZgor
CiBwcml2YXRlOgogICAgIFdlYlBhZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMmJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDE1NWYxZjRhNGE5NjI4OWUxMDg3
MWYyMmE1OTU1MDcwZWQwZWU1OGQuLjhiOGM5NTNmZDhlZmM5ZDYyZmMzNTM5ZTQzMTQ0YWNmNDFl
NjdmZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgpAQCAtNjE2LDQgKzYxNiw5IEBAIEdlbmVyYXRlU3ludGhldGljRWRp
dGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRU
eXBlCiAKICAgICBTZXRIYXNSZXNvdXJjZUxvYWRDbGllbnQoYm9vbCBoYXMpCiAgICAgU2V0Q2Fu
VXNlQ3JlZGVudGlhbFN0b3JhZ2UoYm9vbCBjYW5Vc2UpCisKKyNpZiBFTkFCTEUoQVBQX0hJR0hM
SUdIVFMpCisgICAgQ3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJhbmdlKGVudW06Ym9vbCBX
ZWJLaXQ6OkNyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0IGNyZWF0ZU5ld0dyb3VwKQorI2VuZGlm
CisKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCA5ZTM1ZDAwMzVkNjNkNGJkNTYyZjMyZDQ2OTI4NmI4YTNlY2M2YzdjLi43OTg2NDU4MWNlZjgy
YzQ4ZTA2ODJiYWRiZTU4OWJiYmY0ZmEzNmI2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTEtMzAgIE1lZ2Fu
IEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgYW5k
IGRyYXcgYXBwIGhpZ2hsaWdodHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxOTM2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL01hcmtlZFRleHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisKIDIwMjAtMTEtMTkgIFBlciBBcm5l
IFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gSXNzdWUgc2Fu
ZGJveCBleHRlbnNpb24gdG8gV2ViIEluc3BlY3RvciBzZXJ2aWNlCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTWFya2VkVGV4dC5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTWFya2VkVGV4dC5jcHAKaW5kZXggNmE4ZTU3MjkxYmY1
ZDAxNjc2OGQ4ZTI5MmUyYjhjNjdhYzAwODVmYi4uN2ZhNmFmYTZjZjViOGU0ZjA3NzI5Y2I5YWFm
OTA4ZTdmYmRjMzU5MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL01hcmtlZFRleHQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9NYXJrZWRUZXh0LmNwcApAQCAtNTcsNiArNTcsMTAgQEAgc3RkOjpvc3RyZWFtJiBvcGVyYXRv
cjw8KHN0ZDo6b3N0cmVhbSYgb3MsIE1hcmtlZFRleHQ6OlR5cGUgdHlwZSkKICAgICAgICAgcmV0
dXJuIG9zIDw8ICJUZXh0TWF0Y2giOwogICAgIGNhc2UgTWFya2VkVGV4dDo6SGlnaGxpZ2h0Ogog
ICAgICAgICByZXR1cm4gb3MgPDwgIkhpZ2hsaWdodCI7CisjaWYgRU5BQkxFKEFQUF9ISUdITElH
SFRTKQorICAgIGNhc2UgTWFya2VkVGV4dDo6QXBwSGlnaGxpZ2h0OgorICAgICAgICByZXR1cm4g
b3MgPDwgIkFwcEhpZ2hsaWdodCI7CisjZW5kaWYKICAgICBjYXNlIE1hcmtlZFRleHQ6OlVubWFy
a2VkOgogICAgICAgICByZXR1cm4gb3MgPDwgIlVubWFya2VkIjsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415183</attachid>
            <date>2020-12-01 18:29:08 -0800</date>
            <delta_ts>2020-12-02 11:24:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219365-20201201182907.patch</filename>
            <type>text/plain</type>
            <size>43801</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QzYzFmNDI4NGY0ZmI3
ODRjOTEyZTIxNjUwMzA2NGNiNGZkYTExMy4uODU1N2M4NzVhN2IwYWYyNzdlODQzNDMyNjVkNmE5
NTE1MDc0OWUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTExLTMwICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGFu
ZCBkcmF3IGFwcCBoaWdobGlnaHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTkzNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDcmVhdGUgYSBzZXBhcmF0ZSBoaWdobGlnaHQgcmVnaXN0ZXIgZm9yIGFw
cCBoaWdobGlnaHRzIHNvIHRoYXQgdGhlcmUgaXMgYSBjbGVhciBzZXBhcmF0aW9uCisgICAgICAg
IHdpdGggbm8gcmlzayBvZiB3ZWIgY29udGVudCBhY2Nlc3NpbmcgdGhlIHdyb25nIGhpZ2hsaWdo
dHMuIEV4dGVuZCByZW5kZXJpbmcgdG8gaW5jbHVkZSB0aGUgCisgICAgICAgIGFwcCBoaWdobGln
aHRzIHdpdGggdGhlIGN1cnJlbnQgZGVmYXVsdCBzZXR0aW5ncy4gCisKKyAgICAgICAgKiBNb2R1
bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaDoKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRSZWdpc3Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSZWdpc3Rl
cjo6YXBwSGlnaGxpZ2h0S2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJlZ2lzdGVy
OjphZGRBcHBIaWdobGlnaHQpOgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dFJlZ2lzdGVyLmg6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YXBwSGlnaGxpZ2h0UmVnaXN0
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNvbGxlY3RSYWdlRGF0YUZyb21SZWdp
c3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSGlnaGxpZ2h0UG9zaXRp
b25zKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vU3RhdGljUmFu
Z2UuaDoKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVk
KToKKyAgICAgICAgKiByZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpyZW5kZXJlckFmdGVyT2Zmc2V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4
dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpyZXNvbHZlU3R5bGVG
b3JNYXJrZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OmNvbGxlY3RN
YXJrZWRUZXh0c0ZvckhpZ2hsaWdodHMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9NYXJr
ZWRUZXh0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yIGNvbnN0KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGhlbWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpjc3NWYWx1ZUlEU2VsZWN0b3JM
aXN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU1hYzo6cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IgY29uc3QpOgorCiAyMDIwLTExLTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgV29ya2xldC5hZGRNb2R1bGUo
KSBzaG91bGQgcmVqZWN0IHByb21pc2Ugd2l0aCBhbiBBYm9ydEVycm9yIHdoZW4gdGhlIG5ldHdv
cmsgbG9hZCBmYWlscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjNGI0NzFhNGViODIwZjUyMjc2MmIyYTE4M2YzZGJi
Nzc3N2M5YjMyLi45OGQzNmRlNGQ3NDcxNzU5MGIxMGQ1NTMxNzYxNjc4MWI5MDg1ZmE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTExLTMwICBNZWdhbiBHYXJkbmVyICA8bWVnYW5f
Z2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGFuZCBkcmF3IGFwcCBoaWdobGln
aHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkz
NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIYW5k
bGUgdGhlIGNyZWF0aW9uIG9mIEFwcCBIaWdobGlnaHRzIGZyb20gc2VsZWN0aW9ucyB3aGVuIHRo
ZSBjb250ZXh0IG1lbnUgaXRlbSBpcyBzZWxlY3RlZC4gCisgICAgICAgIFRoaXMgcGF0Y2ggd2ls
bCBhZGQgdGhlIGhpZ2hsaWdodHMgdG8gdGhlIERvY3VtZW50J3MgYXBwIEhpZ2hsaWdodCByZWdp
c3RlciwgYW5kIGhhbmRsZSBkcmF3aW5nCisgICAgICAgIHRoZW0gaW4gSW5saW5lVGV4dEJveC4g
TGF0ZXIgcGF0Y2hlcyB3aWxsIGhhbmRsZSB0aGUgcGVyc2lzdGVudCBzdG9yYWdlIGFuZCByZXBv
cHVsYXRpb24gb2YgYXBwCisgICAgICAgIGhpZ2hsaWdodHMgb24gbGF1bmNoIG9yIHJlbG9hZCBv
ZiBhIHBhZ2UuIAorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0ZUFwcEhpZ2hsaWdodElu
U2VsZWN0ZWRSYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNyZWF0ZUhpZ2hsaWdodEluQ3Vy
cmVudEdyb3VwV2l0aFJhbmdlOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNyZWF0ZUhp
Z2hsaWdodEluTmV3R3JvdXBXaXRoUmFuZ2U6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjcmVhdGVBcHBIaWdo
bGlnaHRJblNlbGVjdGVkUmFuZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46
CisKIDIwMjAtMTEtMTkgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFttYWNPU10gSXNzdWUgc2FuZGJveCBleHRlbnNpb24gdG8gV2ViIEluc3BlY3RvciBz
ZXJ2aWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAwMjNlMTUzZGEzYzY3ZGUxN2EyNTJiZWYxY2Fi
MjY4N2Q0MzkzMDZkLi5jYjJhM2YzMWE0N2M5YTI5MzkxZTc1MWY1ZjBjYmI3NjY1ZjRmMzRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKQEAgLTQ0LDYgKzQ0LDkgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9G
UkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNh
bGxiYWNrLmgKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uT3B0aW9ucy5oCiAKKyAg
ICBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaAorICAgIE1vZHVsZXMvaGlnaGxpZ2h0L0hp
Z2hsaWdodFJlZ2lzdGVyLmgKKwogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkFjdGl2ZURPTU9i
amVjdC5oCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmgKICAg
ICBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oCmluZGV4IGYwZGZh
NTY4MjI4YzgzYjIwZWJlOGEyZjkzNWVmMGY1ZGU3NTMwZmQuLjlkOThjODcxNGViYzA1YTQ5ZDdk
OTZhMzJlZjRiMGMyZjlkMjUxNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0hpZ2hsaWdodC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxp
Z2h0L0hpZ2hsaWdodC5oCkBAIC01NCw3ICs1NCw3IEBAIHN0cnVjdCBIaWdobGlnaHRSYW5nZURh
dGEgOiBSZWZDb3VudGVkPEhpZ2hsaWdodFJhbmdlRGF0YT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0
CiAKIGNsYXNzIEhpZ2hsaWdodCA6IHB1YmxpYyBSZWZDb3VudGVkPEhpZ2hsaWdodD4gewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0PiBjcmVhdGUoU3RhdGljUmFuZ2UmKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEhpZ2hsaWdodD4gY3JlYXRlKFN0YXRpY1Jhbmdl
Jik7CiAgICAgdm9pZCBjbGVhckZyb21TZXRMaWtlKCk7CiAgICAgYm9vbCBhZGRUb1NldExpa2Uo
U3RhdGljUmFuZ2UmKTsKICAgICBib29sIHJlbW92ZUZyb21TZXRMaWtlKGNvbnN0IFN0YXRpY1Jh
bmdlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRSZWdpc3Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRSZWdpc3Rlci5jcHAKaW5kZXggOWUyMGI4NjkzNDI1Y2JjYWEwNmNjYjE0NGZlMDJkM2Nm
NjI4NWU4Yi4uNGFiNzQ0OWIwMzQzMzhiNjY3MmNiNmQwYTExNWFhYzY5MGU3ZDNiZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lz
dGVyLmNwcApAQCAtNTMsNCArNTMsMTcgQEAgYm9vbCBIaWdobGlnaHRSZWdpc3Rlcjo6cmVtb3Zl
KGNvbnN0IFN0cmluZyYga2V5KQogICAgIHJldHVybiBtX21hcC5yZW1vdmUoa2V5KTsKIH0KIAor
QVNDSUlMaXRlcmFsIEhpZ2hsaWdodFJlZ2lzdGVyOjphcHBIaWdobGlnaHRLZXkoKQoreworICAg
IHJldHVybiAiYXBwSGlnaGxpZ2h0S2V5Il9zOworfQorCit2b2lkIEhpZ2hsaWdodFJlZ2lzdGVy
OjphZGRBcHBIaWdobGlnaHQoUmVmPFN0YXRpY1JhbmdlPiYmIHZhbHVlKQoreworICAgIGlmICht
X21hcC5jb250YWlucyhhcHBIaWdobGlnaHRLZXkoKSkpCisgICAgICAgIG1fbWFwLmdldChhcHBI
aWdobGlnaHRLZXkoKSktPmFkZFRvU2V0TGlrZSh2YWx1ZSk7CisgICAgZWxzZQorICAgICAgICBz
ZXRGcm9tTWFwTGlrZShhcHBIaWdobGlnaHRLZXkoKSwgSGlnaGxpZ2h0OjpjcmVhdGUoV1RGTW92
ZSh2YWx1ZSkpKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9o
aWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGln
aGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmgKaW5kZXggNDA1MzBmODM2MjNhMzMzYjIwY2ZhNmZk
NWRjMGY1NjMzNDQxMDQ2MS4uZDUyOTFmZGE0ZDk1MzlkMzBiN2UzNjNjZTYzYTBlMjgzZDBlODNm
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0
UmVnaXN0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGln
aHRSZWdpc3Rlci5oCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IERPTU1hcEFkYXB0ZXI7CiBjbGFzcyBET01TdHJpbmc7CiBjbGFzcyBIaWdobGlnaHQ7CitjbGFz
cyBTdGF0aWNSYW5nZTsKIAogY2xhc3MgSGlnaGxpZ2h0UmVnaXN0ZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxIaWdobGlnaHRSZWdpc3Rlcj4gewogcHVibGljOgpAQCAtNDMsNiArNDQsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRGcm9tTWFwTGlrZShTdHJpbmcmJiwgUmVmPEhpZ2hsaWdodD4mJik7
CiAgICAgdm9pZCBjbGVhcigpOwogICAgIGJvb2wgcmVtb3ZlKGNvbnN0IFN0cmluZyYpOworCisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRBcHBIaWdobGlnaHQoUmVmPFN0YXRpY1JhbmdlPiYm
KTsKKyAgICBzdGF0aWMgQVNDSUlMaXRlcmFsIGFwcEhpZ2hsaWdodEtleSgpOwogICAgIAogICAg
IGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBSZWY8SGlnaGxpZ2h0Pj4mIG1hcCgpIGNvbnN0IHsgcmV0
dXJuIG1fbWFwOyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzVhNTIyYzJhYmViMGQxNmQ1YzY4ODZjNzE3MDY1NzI0
OTIwYzk0ZS4uZjk5Yjk4ZmM5NWE3NDRlYzM0YTdkYjczYThlNjEzNzJhOGRkMWU4NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTIxMCw2ICsxMjEwLDggQEAKIAkJNDNFREQ2N0YxQjQ4NURCRjAwNjQwRTc1IC8qIENvbWJpbmVk
RmlsdGVyc0FscGhhYmV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0M0VERDY3RDFCNDg1REJGMDA2NDBFNzUgLyogQ29tYmluZWRGaWx0ZXJzQWxwaGFi
ZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0
NDBFREJEMTI1NUUxMTZDMDAzMDBCQTcgLyogTG9jYWxpemFibGUuc3RyaW5ncyBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQ2RUU0RTgyNTVFMEQ5MjAw
NDU0NDYzIC8qIExvY2FsaXphYmxlLnN0cmluZ3MgKi87IH07CiAJCTQ0MTUyOTJFMEUxQUU4QTAw
MEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDE1MjkyQzBFMUFFOEEwMDBDNEEyRDAgLyogSFRN
TFBsdWdJbkltYWdlRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTQ0MzBEMDBCMjU3NUE4M0UwMDQ2RDQwMSAvKiBIaWdobGlnaHQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0RTg4RTUxMjM2
QTVDOEQwMDlCNDg0NyAvKiBIaWdobGlnaHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk0NDMwRDAwRDI1NzVBOEE1MDA0NkQ0MDEgLyogSGlnaGxp
Z2h0UmVnaXN0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ0RTg4RTUwMjM2QTU2QUMwMDlCNDg0NyAvKiBIaWdobGlnaHRSZWdpc3Rlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ0NTc3NUU1MjA0
NzJGNzMwMDhEQ0U1RCAvKiBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDU3NzVFNDIwNDcyRjczMDA4
RENFNUQgLyogTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ0NjNDRjY4MjIxMkZBNjgwMDFBODU3
NyAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M3OTQxRTIxQzU2QzI5MzAwQTRDNThFIC8qIERhdGFE
ZXRlY3RvcnNDb3JlU29mdExpbmsubW0gKi87IH07CiAJCTQ0NjVEN0JEMjUzNkQwNUUwMDE2NjY2
RCAvKiBTZWxlY3Rpb25SYW5nZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ0QjM4QkY0MjUzNjkwMUEwMEE0NDU4RCAvKiBTZWxlY3Rpb25SYW5n
ZURhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMzIwNTMsNyArMzIwNTUsOSBAQAogCQkJCTUxNUJFMTlDMUQ1NEY2QzEwMEREN0M2OCAvKiBI
SURHYW1lcGFkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTBBOTFEQTI0Q0YzRDhDMDBCRkQ4OUMg
LyogSElER2FtZXBhZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNUJFMTlFMUQ1NEY2
QzEwMEREN0M2OCAvKiBISURHYW1lcGFkUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ0
MzBEMDBCMjU3NUE4M0UwMDQ2RDQwMSAvKiBIaWdobGlnaHQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUNEQ0ZBQkJEMThDMEFGNzgwMDZGODQ1MCAvKiBIaWdobGlnaHREYXRhLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0NDMwRDAwRDI1NzVBOEE1MDA0NkQ0MDEgLyogSGlnaGxpZ2h0UmVnaXN0ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDOTREMTU0MEMyNzVDOEIwMDZCQzYxNyAvKiBIaXN0b3J5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5N0RDRTIwMjEwODA3Qzc1MDA1N0QzOTQgLyogSGlzdG9yeUNv
bnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNzQxRDExMEIwNzI1OUEwMEVENDQyQyAv
KiBIaXN0b3J5SXRlbS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtl
eXdvcmRzLmluCmluZGV4IDk5N2I0MjM5OWExOTkyZWRhMDg5NGY1MDlkMTQwMGUxYmM5MjdiODEu
LjBmYzEyNzE3MDAyNDgwYjY5MTVjNzVhMTc2ZmEwODI3NTEzYzQyNjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0yNTksNiArMjU5LDcgQEAgd2luZG93dGV4dAog
LWFwcGxlLXN5c3RlbS1wdXJwbGUKIC1hcHBsZS1zeXN0ZW0tcmVkCiAtYXBwbGUtc3lzdGVtLXll
bGxvdworLWFwcGxlLXN5c3RlbS1hcHAtaGlnaGxpZ2h0LWJhY2tncm91bmQKICNlbmRpZgogI2lm
IGRlZmluZWQoV1RGX1BMQVRGT1JNX01BQykgJiYgV1RGX1BMQVRGT1JNX01BQwogLWFwcGxlLXN5
c3RlbS1hbHRlcm5hdGUtc2VsZWN0ZWQtdGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXgg
NjQ2ZWU3ZWVjMDMzYzkwMzkzZWYwMzhlNDM3ZTA1YzZmZWNjYzlmZC4uMzI1ZGMwNmJlZWY0ZDk3
YjNjYjIzMWU2ZGM4Y2UxYThiNDU3MmFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC03
OTUsNiArNzk1LDkgQEAgdm9pZCBEb2N1bWVudDo6Y29tbW9uVGVhcmRvd24oKQogICAgIGlmICht
X2hpZ2hsaWdodFJlZ2lzdGVyKQogICAgICAgICBtX2hpZ2hsaWdodFJlZ2lzdGVyLT5jbGVhcigp
OwogCisgICAgaWYgKG1fYXBwSGlnaGxpZ2h0UmVnaXN0ZXIpCisgICAgICAgIG1fYXBwSGlnaGxp
Z2h0UmVnaXN0ZXItPmNsZWFyKCk7CisKICAgICBtX3BlbmRpbmdTY3JvbGxFdmVudFRhcmdldExp
c3QgPSBudWxscHRyOwogCiAgICAgaWYgKG1fdGltZWxpbmVzQ29udHJvbGxlcikKQEAgLTI3NzQs
MjEgKzI3NzcsMzQgQEAgSGlnaGxpZ2h0UmVnaXN0ZXImIERvY3VtZW50OjpoaWdobGlnaHRSZWdp
c3RlcigpCiAgICAgcmV0dXJuICptX2hpZ2hsaWdodFJlZ2lzdGVyOwogfQogCi12b2lkIERvY3Vt
ZW50Ojp1cGRhdGVIaWdobGlnaHRQb3NpdGlvbnMoKQorSGlnaGxpZ2h0UmVnaXN0ZXImIERvY3Vt
ZW50OjphcHBIaWdobGlnaHRSZWdpc3RlcigpCiB7Ci0gICAgVmVjdG9yPFdlYWtQdHI8SGlnaGxp
Z2h0UmFuZ2VEYXRhPj4gcmFuZ2VzRGF0YTsKLSAgICBpZiAobV9oaWdobGlnaHRSZWdpc3Rlcikg
ewotICAgICAgICBmb3IgKGF1dG8mIGhpZ2hsaWdodCA6IG1faGlnaGxpZ2h0UmVnaXN0ZXItPm1h
cCgpKSB7Ci0gICAgICAgICAgICBmb3IgKGF1dG8mIHJhbmdlRGF0YSA6IGhpZ2hsaWdodC52YWx1
ZS0+cmFuZ2VzRGF0YSgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHJhbmdlRGF0YS0+c3RhcnRQ
b3NpdGlvbiAmJiByYW5nZURhdGEtPmVuZFBvc2l0aW9uKQotICAgICAgICAgICAgICAgICAgICBj
b250aW51ZTsKLSAgICAgICAgICAgICAgICBpZiAoJnJhbmdlRGF0YS0+cmFuZ2UtPnN0YXJ0Q29u
dGFpbmVyKCkudHJlZVNjb3BlKCkgIT0gJnJhbmdlRGF0YS0+cmFuZ2UtPmVuZENvbnRhaW5lcigp
LnRyZWVTY29wZSgpKQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAg
ICAgICByYW5nZXNEYXRhLmFwcGVuZChtYWtlV2Vha1B0cihyYW5nZURhdGEucHRyKCkpKTsKLSAg
ICAgICAgICAgIH0KKyAgICBpZiAoIW1fYXBwSGlnaGxpZ2h0UmVnaXN0ZXIpCisgICAgICAgIG1f
YXBwSGlnaGxpZ2h0UmVnaXN0ZXIgPSBIaWdobGlnaHRSZWdpc3Rlcjo6Y3JlYXRlKCk7CisgICAg
cmV0dXJuICptX2FwcEhpZ2hsaWdodFJlZ2lzdGVyOworfQorCit2b2lkIERvY3VtZW50Ojpjb2xs
ZWN0UmFuZ2VEYXRhRnJvbVJlZ2lzdGVyKFZlY3RvcjxXZWFrUHRyPEhpZ2hsaWdodFJhbmdlRGF0
YT4+JiByYW5nZXNEYXRhLCBjb25zdCBIaWdobGlnaHRSZWdpc3RlciYgaGlnaGxpZ2h0UmVnaXN0
ZXIpCit7CisgICAgZm9yIChhdXRvJiBoaWdobGlnaHQgOiBoaWdobGlnaHRSZWdpc3Rlci5tYXAo
KSkgeworICAgICAgICBmb3IgKGF1dG8mIHJhbmdlRGF0YSA6IGhpZ2hsaWdodC52YWx1ZS0+cmFu
Z2VzRGF0YSgpKSB7CisgICAgICAgICAgICBpZiAocmFuZ2VEYXRhLT5zdGFydFBvc2l0aW9uICYm
IHJhbmdlRGF0YS0+ZW5kUG9zaXRpb24pCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgICAgICBpZiAoJnJhbmdlRGF0YS0+cmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCkudHJlZVNjb3Bl
KCkgIT0gJnJhbmdlRGF0YS0+cmFuZ2UtPmVuZENvbnRhaW5lcigpLnRyZWVTY29wZSgpKQorICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgcmFuZ2VzRGF0YS5hcHBlbmQobWFr
ZVdlYWtQdHIocmFuZ2VEYXRhLnB0cigpKSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgCit9CisK
K3ZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpCit7CisgICAgVmVjdG9y
PFdlYWtQdHI8SGlnaGxpZ2h0UmFuZ2VEYXRhPj4gcmFuZ2VzRGF0YTsKKyAgICBpZiAobV9oaWdo
bGlnaHRSZWdpc3RlcikKKyAgICAgICAgY29sbGVjdFJhbmdlRGF0YUZyb21SZWdpc3RlcihyYW5n
ZXNEYXRhLCAqbV9oaWdobGlnaHRSZWdpc3Rlci5nZXQoKSk7CisgICAgaWYgKG1fYXBwSGlnaGxp
Z2h0UmVnaXN0ZXIpCisgICAgICAgIGNvbGxlY3RSYW5nZURhdGFGcm9tUmVnaXN0ZXIocmFuZ2Vz
RGF0YSwgKm1fYXBwSGlnaGxpZ2h0UmVnaXN0ZXIuZ2V0KCkpOworCiAgICAgZm9yIChhdXRvJiB3
ZWFrUmFuZ2VEYXRhIDogcmFuZ2VzRGF0YSkgewogICAgICAgICBpZiAoYXV0byogcmFuZ2VEYXRh
ID0gd2Vha1JhbmdlRGF0YS5nZXQoKSkgewogICAgICAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiB2
aXNpYmxlU2VsZWN0aW9uKHJhbmdlRGF0YS0+cmFuZ2UpOwpAQCAtMjc5Nyw3ICsyODEzLDcgQEAg
dm9pZCBEb2N1bWVudDo6dXBkYXRlSGlnaGxpZ2h0UG9zaXRpb25zKCkKICAgICAgICAgICAgIGlm
ICghcmFuZ2VEYXRhLT5zdGFydFBvc2l0aW9uLmhhc1ZhbHVlKCkpCiAgICAgICAgICAgICAgICAg
c3RhcnRQb3NpdGlvbiA9IHZpc2libGVTZWxlY3Rpb24udmlzaWJsZVN0YXJ0KCkuZGVlcEVxdWl2
YWxlbnQoKTsKICAgICAgICAgICAgIGlmICghcmFuZ2VEYXRhLT5lbmRQb3NpdGlvbi5oYXNWYWx1
ZSgpKQotICAgICAgICAgICAgICAgIGVuZFBvc2l0aW9uID0gdmlzaWJsZVNlbGVjdGlvbi52aXNp
YmxlRW5kKCkuZGVlcEVxdWl2YWxlbnQoKTsgLy8gPE1NRz4gc3dpdGNoIHRvIEVORAorICAgICAg
ICAgICAgICAgIGVuZFBvc2l0aW9uID0gdmlzaWJsZVNlbGVjdGlvbi52aXNpYmxlRW5kKCkuZGVl
cEVxdWl2YWxlbnQoKTsKICAgICAgICAgICAgIGlmICghd2Vha1JhbmdlRGF0YS5nZXQoKSkKICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApp
bmRleCA4NGU1OGNjMTM1ZGRiMjVkYTNhN2E4MzhlNzRjM2U3OGY0MDdjOWQ3Li5lZTAzZjVmNGJm
ZmE5YzM2ZWMyODRiMzk5MDk0ZTNjNWU4ZTE5ODhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAt
MjMxLDYgKzIzMSw3IEBAIGNsYXNzIFhQYXRoTlNSZXNvbHZlcjsKIGNsYXNzIFhQYXRoUmVzdWx0
OwogCiBzdHJ1Y3QgQm91bmRhcnlQb2ludDsKK3N0cnVjdCBIaWdobGlnaHRSYW5nZURhdGE7CiBz
dHJ1Y3QgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xh
c3MgRXhjZXB0aW9uT3I7CkBAIC0xNTcyLDggKzE1NzMsMTEgQEAgcHVibGljOgogCiAgICAgV0VC
Q09SRV9FWFBPUlQgVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXImIHRleHRNYW5pcHVsYXRpb25D
b250cm9sbGVyKCk7CiAgICAgVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIqIHRleHRNYW5pcHVs
YXRpb25Db250cm9sbGVySWZFeGlzdHMoKSB7IHJldHVybiBtX3RleHRNYW5pcHVsYXRpb25Db250
cm9sbGVyLmdldCgpOyB9Ci0gICAgICAgIAorCisgICAgSGlnaGxpZ2h0UmVnaXN0ZXIqIGhpZ2hs
aWdodFJlZ2lzdGVySWZFeGlzdHMoKSB7IHJldHVybiBtX2hpZ2hsaWdodFJlZ2lzdGVyLmdldCgp
OyB9CiAgICAgSGlnaGxpZ2h0UmVnaXN0ZXImIGhpZ2hsaWdodFJlZ2lzdGVyKCk7CisgICAgSGln
aGxpZ2h0UmVnaXN0ZXIqIGFwcEhpZ2hsaWdodFJlZ2lzdGVySWZFeGlzdHMoKSB7IHJldHVybiBt
X2FwcEhpZ2hsaWdodFJlZ2lzdGVyLmdldCgpOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgSGlnaGxp
Z2h0UmVnaXN0ZXImIGFwcEhpZ2hsaWdodFJlZ2lzdGVyKCk7CiAgICAgdm9pZCB1cGRhdGVIaWdo
bGlnaHRQb3NpdGlvbnMoKTsKIAogICAgIGJvb2wgYWxsb3dzQ29udGVudEphdmFTY3JpcHQoKSBj
b25zdDsKQEAgLTE3MDEsNiArMTcwNSw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHBsYXRmb3Jt
U3VzcGVuZE9yU3RvcEFjdGl2ZURPTU9iamVjdHMoKTsKIAorICAgIHZvaWQgY29sbGVjdFJhbmdl
RGF0YUZyb21SZWdpc3RlcihWZWN0b3I8V2Vha1B0cjxIaWdobGlnaHRSYW5nZURhdGE+PiYsIGNv
bnN0IEhpZ2hsaWdodFJlZ2lzdGVyJik7CisKICAgICBib29sIGlzQm9keVBvdGVudGlhbGx5U2Ny
b2xsYWJsZShIVE1MQm9keUVsZW1lbnQmKTsKIAogICAgIHZvaWQgZGlkTG9nTWVzc2FnZShjb25z
dCBXVEZMb2dDaGFubmVsJiwgV1RGTG9nTGV2ZWwsIFZlY3RvcjxKU09OTG9nVmFsdWU+JiYpIGZp
bmFsOwpAQCAtMTkzMSw2ICsxOTM3LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgICAgICAKICAg
ICBSZWZQdHI8SGlnaGxpZ2h0UmVnaXN0ZXI+IG1faGlnaGxpZ2h0UmVnaXN0ZXI7CisgICAgUmVm
UHRyPEhpZ2hsaWdodFJlZ2lzdGVyPiBtX2FwcEhpZ2hsaWdodFJlZ2lzdGVyOwogCiAgICAgVGlt
ZXIgbV92aXN1YWxVcGRhdGVzU3VwcHJlc3Npb25UaW1lcjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1N0YXRpY1JhbmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RhdGljUmFu
Z2UuaAppbmRleCA3NjkwMTEzZGY4YTJhZTliYzgyNTU2YzRhYmYxMGY5NzJlMjJhN2FlLi5mN2Q3
ZjViNGYzNDA3NzZjMDIwMzdmYzk4MzQ5OGExNTVlOTRlMTFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU3RhdGljUmFuZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RhdGlj
UmFuZ2UuaApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAgIHN0YXRpYyBF
eGNlcHRpb25PcjxSZWY8U3RhdGljUmFuZ2U+PiBjcmVhdGUoSW5pdCYmKTsKLSAgICBzdGF0aWMg
UmVmPFN0YXRpY1JhbmdlPiBjcmVhdGUoY29uc3QgU2ltcGxlUmFuZ2UmKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgUmVmPFN0YXRpY1JhbmdlPiBjcmVhdGUoY29uc3QgU2ltcGxlUmFuZ2Um
KTsKICAgICBzdGF0aWMgUmVmPFN0YXRpY1JhbmdlPiBjcmVhdGUoU2ltcGxlUmFuZ2UmJik7CiAK
ICAgICBOb2RlJiBzdGFydENvbnRhaW5lcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNpbXBsZVJh
bmdlOjpzdGFydENvbnRhaW5lcigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxp
Z2h0RGF0YS5jcHAKaW5kZXggMzllYjE1MTA5YWE2YzAyYTY4NmJlMDRkZTBjZGQ2YjAzN2M4ZmM5
Yy4uMWY2Yjg4NmM5MTEwMTQ0OTBmMjc2YmI0ZDQzMGU3ZjFiYTZjMjhhYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcApAQCAtODIsNyArODIsNyBAQCB2b2lk
IFJlbmRlclJhbmdlSXRlcmF0b3I6OmNoZWNrRm9yU3Bhbm5lcigpCiAgICAgbV9jdXJyZW50ID0g
cGxhY2Vob2xkZXIuc3Bhbm5lcigpOwogfQogCi1zdGF0aWMgUmVuZGVyT2JqZWN0KiByZW5kZXJl
ckFmdGVyT2Zmc2V0KGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIHVuc2lnbmVkIG9mZnNl
dCkgLy8gPE1NRz4gdXNlZCBpbiBib3RoLCBtaWdodCBzaG91bGQgbm90IGJlIHN0YXRpYworc3Rh
dGljIFJlbmRlck9iamVjdCogcmVuZGVyZXJBZnRlck9mZnNldChjb25zdCBSZW5kZXJPYmplY3Qm
IHJlbmRlcmVyLCB1bnNpZ25lZCBvZmZzZXQpCiB7CiAgICAgYXV0byogY2hpbGQgPSByZW5kZXJl
ci5jaGlsZEF0KG9mZnNldCk7CiAgICAgcmV0dXJuIGNoaWxkID8gY2hpbGQgOiByZW5kZXJlci5u
ZXh0SW5QcmVPcmRlckFmdGVyQ2hpbGRyZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9J
bmxpbmVUZXh0Qm94LmNwcAppbmRleCBlMDkwZjE2YTgzNTk3MzI1YTZkZTM5MGUwYjlmZGNjNDNj
YjA3OWRjLi43ZmJkMWUxMTBiMzMyNTM2YTNhODcxY2RjZjAxNWM5ZDE5YWI5MTk4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCkBAIC04NDYsNiArODQ2LDEz
IEBAIGF1dG8gSW5saW5lVGV4dEJveDo6cmVzb2x2ZVN0eWxlRm9yTWFya2VkVGV4dChjb25zdCBN
YXJrZWRUZXh0JiBtYXJrZWRUZXh0LCBjb25zCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAg
ICAgICAgYnJlYWs7CisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorICAgIGNhc2UgTWFya2Vk
VGV4dDo6QXBwSGlnaGxpZ2h0OiB7CisgICAgICAgIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPiBzdHlsZUNvbG9yT3B0aW9ucyA9IHsgU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVt
QXBwZWFyYW5jZSB9OworICAgICAgICBzdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSByZW5kZXJlcigp
LnRoZW1lKCkuYXBwSGlnaGxpZ2h0Q29sb3Ioc3R5bGVDb2xvck9wdGlvbnMpOworICAgICAgICBi
cmVhazsKKyAgICB9CisjZW5kaWYKICAgICBjYXNlIE1hcmtlZFRleHQ6OkRyYWdnZWRDb250ZW50
OgogICAgICAgICBzdHlsZS5hbHBoYSA9IDAuMjU7CiAgICAgICAgIGJyZWFrOwpAQCAtMTA1Miwy
MSArMTA1OSwzNyBAQCBWZWN0b3I8TWFya2VkVGV4dD4gSW5saW5lVGV4dEJveDo6Y29sbGVjdE1h
cmtlZFRleHRzRm9ySGlnaGxpZ2h0cyhUZXh0UGFpbnRQaGFzZQogICAgIGF1dG8mIHBhcmVudFJl
bmRlcmVyID0gcGFyZW50KCktPnJlbmRlcmVyKCk7CiAgICAgYXV0byYgcGFyZW50U3R5bGUgPSBw
YXJlbnRSZW5kZXJlci5zdHlsZSgpOwogICAgIEhpZ2hsaWdodERhdGEgaGlnaGxpZ2h0RGF0YTsK
LSAgICBmb3IgKGF1dG8mIGhpZ2hsaWdodCA6IHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5oaWdobGln
aHRSZWdpc3RlcigpLm1hcCgpKSB7Ci0gICAgICAgIGF1dG8gcmVuZGVyU3R5bGUgPSBwYXJlbnRS
ZW5kZXJlci5nZXRVbmNhY2hlZFBzZXVkb1N0eWxlKHsgUHNldWRvSWQ6OkhpZ2hsaWdodCwgaGln
aGxpZ2h0LmtleSB9LCAmcGFyZW50U3R5bGUpOwotICAgICAgICBpZiAoIXJlbmRlclN0eWxlKQot
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmIChyZW5kZXJTdHlsZS0+dGV4dERlY29y
YXRpb25zSW5FZmZlY3QoKS5pc0VtcHR5KCkgJiYgcGhhc2UgPT0gVGV4dFBhaW50UGhhc2U6OkRl
Y29yYXRpb24pCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgZm9yIChhdXRvJiByYW5n
ZURhdGEgOiBoaWdobGlnaHQudmFsdWUtPnJhbmdlc0RhdGEoKSkgewotICAgICAgICAgICAgaWYg
KCFoaWdobGlnaHREYXRhLnNldFJlbmRlclJhbmdlKHJhbmdlRGF0YSkpCisgICAgaWYgKGF1dG8g
aGlnaGxpZ2h0UmVnaXN0ZXIgPSByZW5kZXJlcigpLmRvY3VtZW50KCkuaGlnaGxpZ2h0UmVnaXN0
ZXJJZkV4aXN0cygpKSB7CisgICAgICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogaGlnaGxpZ2h0
UmVnaXN0ZXItPm1hcCgpKSB7CisgICAgICAgICAgICBhdXRvIHJlbmRlclN0eWxlID0gcGFyZW50
UmVuZGVyZXIuZ2V0VW5jYWNoZWRQc2V1ZG9TdHlsZSh7IFBzZXVkb0lkOjpIaWdobGlnaHQsIGhp
Z2hsaWdodC5rZXkgfSwgJnBhcmVudFN0eWxlKTsKKyAgICAgICAgICAgIGlmICghcmVuZGVyU3R5
bGUpCiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAg
IGF1dG8gW2hpZ2hsaWdodFN0YXJ0LCBoaWdobGlnaHRFbmRdID0gaGlnaGxpZ2h0U3RhcnRFbmQo
aGlnaGxpZ2h0RGF0YSk7Ci0gICAgICAgICAgICBpZiAoaGlnaGxpZ2h0U3RhcnQgPCBoaWdobGln
aHRFbmQpCi0gICAgICAgICAgICAgICAgbWFya2VkVGV4dHMuYXBwZW5kKHsgaGlnaGxpZ2h0U3Rh
cnQsIGhpZ2hsaWdodEVuZCwgTWFya2VkVGV4dDo6SGlnaGxpZ2h0LCBudWxscHRyLCBoaWdobGln
aHQua2V5IH0pOworICAgICAgICAgICAgaWYgKHJlbmRlclN0eWxlLT50ZXh0RGVjb3JhdGlvbnNJ
bkVmZmVjdCgpLmlzRW1wdHkoKSAmJiBwaGFzZSA9PSBUZXh0UGFpbnRQaGFzZTo6RGVjb3JhdGlv
bikKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGZvciAoYXV0byYgcmFu
Z2VEYXRhIDogaGlnaGxpZ2h0LnZhbHVlLT5yYW5nZXNEYXRhKCkpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoIWhpZ2hsaWdodERhdGEuc2V0UmVuZGVyUmFuZ2UocmFuZ2VEYXRhKSkKKyAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAgICBhdXRvIFtoaWdobGlnaHRT
dGFydCwgaGlnaGxpZ2h0RW5kXSA9IGhpZ2hsaWdodFN0YXJ0RW5kKGhpZ2hsaWdodERhdGEpOwor
ICAgICAgICAgICAgICAgIGlmIChoaWdobGlnaHRTdGFydCA8IGhpZ2hsaWdodEVuZCkKKyAgICAg
ICAgICAgICAgICAgICAgbWFya2VkVGV4dHMuYXBwZW5kKHsgaGlnaGxpZ2h0U3RhcnQsIGhpZ2hs
aWdodEVuZCwgTWFya2VkVGV4dDo6SGlnaGxpZ2h0LCBudWxscHRyLCBoaWdobGlnaHQua2V5IH0p
OworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQorI2lmIEVOQUJMRShBUFBfSElHSExJ
R0hUUykKKyAgICBpZiAoYXV0byBhcHBIaWdobGlnaHRSZWdpc3RlciA9IHJlbmRlcmVyKCkuZG9j
dW1lbnQoKS5hcHBIaWdobGlnaHRSZWdpc3RlcklmRXhpc3RzKCkpIHsKKyAgICAgICAgZm9yIChh
dXRvJiBoaWdobGlnaHQgOiBhcHBIaWdobGlnaHRSZWdpc3Rlci0+bWFwKCkpIHsKKyAgICAgICAg
ICAgIGZvciAoYXV0byYgcmFuZ2VEYXRhIDogaGlnaGxpZ2h0LnZhbHVlLT5yYW5nZXNEYXRhKCkp
IHsKKyAgICAgICAgICAgICAgICBpZiAoIWhpZ2hsaWdodERhdGEuc2V0UmVuZGVyUmFuZ2UocmFu
Z2VEYXRhKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAg
ICBhdXRvIFtoaWdobGlnaHRTdGFydCwgaGlnaGxpZ2h0RW5kXSA9IGhpZ2hsaWdodFN0YXJ0RW5k
KGhpZ2hsaWdodERhdGEpOworICAgICAgICAgICAgICAgIGlmIChoaWdobGlnaHRTdGFydCA8IGhp
Z2hsaWdodEVuZCkKKyAgICAgICAgICAgICAgICAgICAgbWFya2VkVGV4dHMuYXBwZW5kKHsgaGln
aGxpZ2h0U3RhcnQsIGhpZ2hsaWdodEVuZCwgTWFya2VkVGV4dDo6QXBwSGlnaGxpZ2h0IH0pOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorI2VuZGlmCiAgICAgcmV0dXJuIG1hcmtl
ZFRleHRzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWFya2Vk
VGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL01hcmtlZFRleHQuaAppbmRleCA3M2Mw
NjIxMWZlNGFhNDMzMmEyYjgyODQwMWM5Y2FkMTlmMDkxZDI5Li5lNzk3OGE2NGNjN2IwMTFmNjA4
MzliM2YwZjdiNWU1YjBjYjg3OGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvTWFya2VkVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9NYXJrZWRUZXh0
LmgKQEAgLTQyLDYgKzQyLDkgQEAgc3RydWN0IE1hcmtlZFRleHQgewogICAgICAgICBUZXh0TWF0
Y2gsCiAgICAgICAgIERpY3RhdGlvbkFsdGVybmF0aXZlcywKICAgICAgICAgSGlnaGxpZ2h0LAor
I2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAgICAgICAgQXBwSGlnaGxpZ2h0LAorI2VuZGlm
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAgICAgLy8gRklYTUU6IFNlZSA8cmRhcjov
L3Byb2JsZW0vODkzMzM1Mj4uIEFsc28sIHJlbW92ZSB0aGUgUExBVEZPUk0oSU9TX0ZBTUlMWSkt
Z3VhcmQuCiAgICAgICAgIERpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXMsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAppbmRleCAyNmMyMzYxMjc0MDU2
ZmFlMDg2YzU5NWM4OGZkOWZhOTE2YjRkNzA3Li41Y2I0NzU0NzUzODJkMGM0ZWJjOTg5NjlhMDlh
M2M4ZjcxNGE5ZDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UmVwbGFjZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNl
ZC5jcHAKQEAgLTE0MiwxNyArMTQyLDM2IEBAIGlubGluZSBzdGF0aWMgYm9vbCBkcmFnZ2VkQ29u
dGVudENvbnRhaW5zUmVwbGFjZWRFbGVtZW50KGNvbnN0IFZlY3RvcjxSZW5kZXJlZERvCiBDb2xv
ciBSZW5kZXJSZXBsYWNlZDo6Y2FsY3VsYXRlSGlnaGxpZ2h0Q29sb3IoKSBjb25zdAogewogICAg
IEhpZ2hsaWdodERhdGEgaGlnaGxpZ2h0RGF0YTsKLSAgICBmb3IgKGF1dG8mIGhpZ2hsaWdodCA6
IGRvY3VtZW50KCkuaGlnaGxpZ2h0UmVnaXN0ZXIoKS5tYXAoKSkgewotICAgICAgICBmb3IgKGF1
dG8mIHJhbmdlRGF0YSA6IGhpZ2hsaWdodC52YWx1ZS0+cmFuZ2VzRGF0YSgpKSB7Ci0gICAgICAg
ICAgICBpZiAoIWhpZ2hsaWdodERhdGEuc2V0UmVuZGVyUmFuZ2UocmFuZ2VEYXRhKSkKLSAgICAg
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgYXV0byBzdGF0
ZSA9IGhpZ2hsaWdodERhdGEuaGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJlcigqdGhpcyk7Ci0gICAg
ICAgICAgICBpZiAoIWlzSGlnaGxpZ2h0ZWQoc3RhdGUsIGhpZ2hsaWdodERhdGEpKQotICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgICBpZiAoYXV0byBoaWdobGlnaHRTdHls
ZSA9IGdldFVuY2FjaGVkUHNldWRvU3R5bGUoeyBQc2V1ZG9JZDo6SGlnaGxpZ2h0LCBoaWdobGln
aHQua2V5IH0sICZzdHlsZSgpKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gaGlnaGxpZ2h0U3R5
bGUtPmJhY2tncm91bmRDb2xvcigpOworI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAgICBp
ZiAoYXV0byBhcHBIaWdobGlnaHRSZWdpc3RlciA9IGRvY3VtZW50KCkuYXBwSGlnaGxpZ2h0UmVn
aXN0ZXJJZkV4aXN0cygpKSB7CisgICAgICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogYXBwSGln
aGxpZ2h0UmVnaXN0ZXItPm1hcCgpKSB7CisgICAgICAgICAgICBmb3IgKGF1dG8mIHJhbmdlRGF0
YSA6IGhpZ2hsaWdodC52YWx1ZS0+cmFuZ2VzRGF0YSgpKSB7CisgICAgICAgICAgICAgICAgaWYg
KCFoaWdobGlnaHREYXRhLnNldFJlbmRlclJhbmdlKHJhbmdlRGF0YSkpCisgICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgYXV0byBzdGF0ZSA9IGhpZ2hsaWdo
dERhdGEuaGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJlcigqdGhpcyk7CisgICAgICAgICAgICAgICAg
aWYgKCFpc0hpZ2hsaWdodGVkKHN0YXRlLCBoaWdobGlnaHREYXRhKSkKKyAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMgPSB7IFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5
c3RlbUFwcGVhcmFuY2UgfTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGhlbWUoKS5hcHBIaWdo
bGlnaHRDb2xvciggc3R5bGVDb2xvck9wdGlvbnMpOworICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgfQorI2VuZGlmCisgICAgaWYgKGF1dG8gaGlnaGxpZ2h0UmVnaXN0ZXIgPSBkb2N1bWVu
dCgpLmhpZ2hsaWdodFJlZ2lzdGVySWZFeGlzdHMoKSkgeworICAgICAgICBmb3IgKGF1dG8mIGhp
Z2hsaWdodCA6IGhpZ2hsaWdodFJlZ2lzdGVyLT5tYXAoKSkgeworICAgICAgICAgICAgZm9yIChh
dXRvJiByYW5nZURhdGEgOiBoaWdobGlnaHQudmFsdWUtPnJhbmdlc0RhdGEoKSkgeworICAgICAg
ICAgICAgICAgIGlmICghaGlnaGxpZ2h0RGF0YS5zZXRSZW5kZXJSYW5nZShyYW5nZURhdGEpKQor
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIGF1dG8gc3Rh
dGUgPSBoaWdobGlnaHREYXRhLmhpZ2hsaWdodFN0YXRlRm9yUmVuZGVyZXIoKnRoaXMpOworICAg
ICAgICAgICAgICAgIGlmICghaXNIaWdobGlnaHRlZChzdGF0ZSwgaGlnaGxpZ2h0RGF0YSkpCisg
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgaWYgKGF1dG8g
aGlnaGxpZ2h0U3R5bGUgPSBnZXRVbmNhY2hlZFBzZXVkb1N0eWxlKHsgUHNldWRvSWQ6OkhpZ2hs
aWdodCwgaGlnaGxpZ2h0LmtleSB9LCAmc3R5bGUoKSkpCisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBoaWdobGlnaHRTdHlsZS0+YmFja2dyb3VuZENvbG9yKCk7CisgICAgICAgICAgICB9CiAg
ICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIENvbG9yKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lLmNwcAppbmRleCAwNGE5MzBjODBhN2M3OGRjMDEwODA1MjkxNTAzMjlm
M2FhM2ExMzJiLi41ZjhjOTFiMzhkZmU5MjkyYzExY2E1Nzk5MGM1NjRlMThjMzIyZjExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKQEAgLTEzNDgsNiArMTM0OCwy
MSBAQCBDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbgogICAgIHJldHVybiBDb2xvcjo6eWVsbG93Owog
fQogCisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorQ29sb3IgUmVuZGVyVGhlbWU6OmFwcEhp
Z2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25z
dAoreworICAgIGF1dG8mIGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKKyAgICBpZiAoIWNh
Y2hlLmFwcEhpZ2hsaWdodENvbG9yLmlzVmFsaWQoKSkKKyAgICAgICAgY2FjaGUuYXBwSGlnaGxp
Z2h0Q29sb3IgPSB0cmFuc2Zvcm1TZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IocGxhdGZvcm1BcHBI
aWdobGlnaHRDb2xvcihvcHRpb25zKSwgb3B0aW9ucyk7CisgICAgcmV0dXJuIGNhY2hlLmFwcEhp
Z2hsaWdodENvbG9yOworfQorCitDb2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1BcHBIaWdobGln
aHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0Cit7CisgICAgcmV0
dXJuIENvbG9yOjp5ZWxsb3c7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
CiAKIENvbG9yIFJlbmRlclRoZW1lOjp0YXBIaWdobGlnaHRDb2xvcigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZS5oCmluZGV4IGJlMTk5MDNkNWFiNjQ2ZmFlOTQyY2MyMjlkNDFj
MTQ4ZThkNGU3ZjUuLjRmZmYyOWRjYzBhYjcxNWUxNWNjYzlmZjcwMGE1ZWU4MGNiZjIxYzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCkBAIC0xNTcsNiArMTU3LDkgQEAg
cHVibGljOgogICAgIC8vIEhpZ2hsaWdodGluZyBjb2xvciBmb3Igc2VhcmNoIG1hdGNoZXMuCiAg
ICAgQ29sb3IgdGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpP
cHRpb25zPikgY29uc3Q7CiAKKyAgICAvLyBEZWZhdWx0IGhpZ2hsaWdodGluZyBjb2xvciBmb3Ig
YXBwIGhpZ2hsaWdodHMuCisgICAgQ29sb3IgYXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKKwogICAgIHZpcnR1YWwgQ29sb3IgZGlzYWJsZWRU
ZXh0Q29sb3IoY29uc3QgQ29sb3ImIHRleHRDb2xvciwgY29uc3QgQ29sb3ImIGJhY2tncm91bmRD
b2xvcikgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBDb2xvciBmb2N1c1JpbmdDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwpAQCAtMjc1LDcgKzI3OCw5IEBA
IHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29u
c3Q7CiAKICAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7Ci0KKyNpZiBFTkFCTEUoQVBQ
X0hJR0hMSUdIVFMpCisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9y
KE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CisjZW5kaWYKICAgICB2aXJ0
dWFsIGJvb2wgc3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c0xpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3JzKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCkBAIC00MjcsNiArNDMy
LDEwIEBAIHByb3RlY3RlZDoKICAgICAgICAgQ29sb3IgaW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yOwogCiAgICAgICAgIENvbG9yIHRleHRTZWFyY2hIaWdobGlnaHRDb2xv
cjsKKworI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKKyAgICAgICAgQ29sb3IgYXBwSGlnaGxp
Z2h0Q29sb3I7CisjZW5kaWYKICAgICB9OwogCiAgICAgdmlydHVhbCBDb2xvckNhY2hlJiBjb2xv
ckNhY2hlKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCmluZGV4IGFkMDJmZTdiOGQzZTE3NTFjYjc2
ZWVkMTU0YjIyN2FhMTViZmRjNGIuLjhmMGQxNDVkNzE4YjliOGQzYWZiM2UxNDZkNzMwNmE5MjVj
MTdiOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlP
Uy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCkBAIC0x
MjEsNiArMTIxLDEwIEBAIHByaXZhdGU6CiAgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
IG92ZXJyaWRlOwogICAgIENvbG9yIHBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0
eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKIAorI2lmIEVOQUJMRShBUFBfSElHSExJ
R0hUUykKKyAgICBDb2xvciBwbGF0Zm9ybUFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CisjZW5kaWYKKwogI2lmIEVOQUJMRShUT1VD
SF9FVkVOVFMpCiAgICAgQ29sb3IgcGxhdGZvcm1UYXBIaWdobGlnaHRDb2xvcigpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIFNSR0JBPHVpbnQ4X3Q+IHsgMjYsIDI2LCAyNiwgNzcgfSA7IH0KICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9T
Lm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCmluZGV4IGRj
ZWJjZTQ4NWUzNjIzNThjODRjZTQyMGFkODZmNGEzMjY0MjQ1OWIuLjIwNzkxNzQ3ODYzZWQ0Y2Nm
OTRkOGUwY2RiNWQ2OWU3Mzk5YWQwZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVJT1MubW0KQEAgLTExNjgsNiArMTE2OCwxNCBAQCBDb2xvciBSZW5kZXJUaGVtZUlP
Uzo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4p
IGNvbgogICAgIHJldHVybiBzeXN0ZW1Gb2N1c1JpbmdDb2xvcigpOwogfQogCisjaWYgRU5BQkxF
KEFQUF9ISUdITElHSFRTKQorQ29sb3IgUmVuZGVyVGhlbWVJT1M6OnBsYXRmb3JtQXBwSGlnaGxp
Z2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAoreworICAgIC8v
IEZJWE1FOiBleHBvc2UgdGhlIHJlYWwgdmFsdWUgZnJvbSBVSUtpdC4KKyAgICByZXR1cm4gU1JH
QkE8dWludDhfdD4geyAyNTUsIDIzOCwgMTkwIH07Cit9CisjZW5kaWYKKwogYm9vbCBSZW5kZXJU
aGVtZUlPUzo6c2hvdWxkSGF2ZVNwaW5CdXR0b24oY29uc3QgSFRNTElucHV0RWxlbWVudCYpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTI4OSw3ICsxMjk3LDcgQEAgc3RhdGljIGNv
bnN0IFZlY3RvcjxDU1NWYWx1ZUlEQW5kU2VsZWN0b3I+JiBjc3NWYWx1ZUlEU2VsZWN0b3JMaXN0
KCkKICAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVBpbmssIEBzZWxlY3RvcihzeXN0
ZW1QaW5rQ29sb3IpIH0sCiAgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1QdXJwbGUs
IEBzZWxlY3RvcihzeXN0ZW1QdXJwbGVDb2xvcikgfSwKICAgICAgICAgICAgIHsgQ1NTVmFsdWVB
cHBsZVN5c3RlbVJlZCwgQHNlbGVjdG9yKHN5c3RlbVJlZENvbG9yKSB9LAotICAgICAgICAgICAg
eyBDU1NWYWx1ZUFwcGxlU3lzdGVtWWVsbG93LCBAc2VsZWN0b3Ioc3lzdGVtWWVsbG93Q29sb3Ip
IH0KKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVllbGxvdywgQHNlbGVjdG9yKHN5
c3RlbVllbGxvd0NvbG9yKSB9LAogICAgICAgICB9KTsKICAgICB9KTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAppbmRleCA0ZjU3OTY1OTM2OWVjNGI2ZTkwMzRm
NzkwY2ZmMmUwMjliNWM0ZTE1Li4xZDlmN2QzZTMzZmFlMDBjNWI3MjRkYjhiYTBmZmIzZDdkNzM5
MDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaApAQCAtNjYs
NiArNjYsOSBAQCBwdWJsaWM6CiAgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25z
dCBmaW5hbDsKICAgICBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHls
ZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CiAgICAgQ29sb3IgcGxhdGZvcm1UZXh0U2Vh
cmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBm
aW5hbDsKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgQ29sb3IgcGxhdGZvcm1BcHBI
aWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFs
OworI2VuZGlmCiAKICAgICBTY3JvbGxiYXJDb250cm9sU2l6ZSBzY3JvbGxiYXJDb250cm9sU2l6
ZUZvclBhcnQoQ29udHJvbFBhcnQpIGZpbmFsIHsgcmV0dXJuIFNjcm9sbGJhckNvbnRyb2xTaXpl
OjpTbWFsbDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0K
aW5kZXggMWE1NTAzOWQ4OGUwY2Y5M2Y2Mjg3NmI1MjcyY2VjODk3MjY2NTJlYy4uOTkyYjgxZGM4
Y2E4Y2Y0ZTU2OWM4ZGFhZWNmYjFjOGVhZThhNjVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtNDc2LDYgKzQ3NiwxNCBAQCBDb2xvciBSZW5kZXJU
aGVtZU1hYzo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxl
Q29sb3I6Ok9wdAogICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIGZpbmRIaWdo
bGlnaHRDb2xvcl0pOwogfQogCisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorQ29sb3IgUmVu
ZGVyVGhlbWVNYWM6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+KSBjb25zdAoreworICAgIC8vIEZJWE1FOiBleHBvc2UgdGhlIHJlYWwgdmFs
dWUgZnJvbSBBcHBLaXQuCisgICAgcmV0dXJuIFNSR0JBPHVpbnQ4X3Q+IHsgMjU1LCAyMzgsIDE5
MCB9OworfQorI2VuZGlmCisKIHN0YXRpYyBTUkdCQTx1aW50OF90PiBtZW51QmFja2dyb3VuZENv
bG9yKCkKIHsKICAgICBSZXRhaW5QdHI8TlNCaXRtYXBJbWFnZVJlcD4gb2Zmc2NyZWVuUmVwID0g
YWRvcHROUyhbW05TQml0bWFwSW1hZ2VSZXAgYWxsb2NdIGluaXRXaXRoQml0bWFwRGF0YVBsYW5l
czpuaWwgcGl4ZWxzV2lkZToxIHBpeGVsc0hpZ2g6MQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQ3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTlkYjRiNjhjNDVk
OGJmMGU2OTAyMzgzZTBmOGFhMjc4Mzc2OGE2MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0LmgKQEAgLTAsMCArMSwzMiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51
bSBjbGFzcyBDcmVhdGVOZXdHcm91cEZvckhpZ2hsaWdodCA6IGJvb2wgeyBObywgWWVzIH07CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQppbmRleCAyOWZhODk1MWRhZWYzNjNlY2VjZGY5MDJj
YmU3MjllMDZlY2JlZWI4Li5mMGY0N2FkY2EyMjBlYTgyNDdlODlkOTAxNmIzYWJkZmY0Y2MzZjRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlD
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlD
b2NvYS5tbQpAQCAtMzgsNiArMzgsNyBAQAogI2ltcG9ydCAiU2FmZUJyb3dzaW5nU1BJLmgiCiAj
aW1wb3J0ICJTYWZlQnJvd3NpbmdXYXJuaW5nLmgiCiAjaW1wb3J0ICJTaGFyZWRCdWZmZXJDb3B5
LmgiCisjaW1wb3J0ICJXZWJQYWdlLmgiCiAjaW1wb3J0ICJXZWJQYWdlTWVzc2FnZXMuaCIKICNp
bXBvcnQgIldlYlBhc3RlYm9hcmRQcm94eS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5Lmgi
CkBAIC01NDMsNiArNTQ0LDE3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjphZGRBY3Rpdml0eVN0YXRl
VXBkYXRlQ29tcGxldGlvbkhhbmRsZXIoQ29tcGxldGlvbkhhbmRsZXI8dm9pCiAgICAgbV9hY3Rp
dml0eVN0YXRlVXBkYXRlQ2FsbGJhY2tzLmFwcGVuZChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CiB9CiAKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCit2b2lkIFdlYlBhZ2VQcm94eTo6
Y3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJhbmdlKENyZWF0ZU5ld0dyb3VwRm9ySGlnaGxp
Z2h0IGNyZWF0ZU5ld0dyb3VwKQoreworICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Q3JlYXRlQXBwSGln
aGxpZ2h0SW5TZWxlY3RlZFJhbmdlKGNyZWF0ZU5ld0dyb3VwKSk7Cit9CisKKyNlbmRpZgorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIE1FU1NBR0VfQ0hFQ0tfQ09NUExFVElPTgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMGY4NzQyODk5MGRl
MDAxMzQzNjcyZTI0OTQ4OTVhZDEzZDQzMzAyOC4uOTgxMjY1ZDM5OTAyMTgxYWQwZWNlNWZmOTAw
YjIyMmMwMTg0ODAwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CkBAIC0xMTcsNiArMTE3LDcgQEAKICNpbmNsdWRlICJXZWJOYXZpZ2F0aW9uU3RhdGUuaCIKICNp
bmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1
ZGUgIldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJQYWdlRGVidWdn
YWJsZS5oIgogI2luY2x1ZGUgIldlYlBhZ2VHcm91cC5oIgpAQCAtNjYyMSw2ICs2NjIyLDE2IEBA
IHZvaWQgV2ViUGFnZVByb3h5Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChjb25zdCBXZWJDb250
ZXh0TWVudUl0ZW1EYXRhJiBpdGVtKQogICAgICAgICBUZXh0Q2hlY2tlcjo6dG9nZ2xlU3BlbGxp
bmdVSUlzU2hvd2luZygpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2lmIEVOQUJMRShBUFBf
SElHSExJR0hUUykKKyAgICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdB
ZGRIaWdobGlnaHRUb05ld0dyb3VwKSB7CisgICAgICAgIGNyZWF0ZUFwcEhpZ2hsaWdodEluU2Vs
ZWN0ZWRSYW5nZShDcmVhdGVOZXdHcm91cEZvckhpZ2hsaWdodDo6WWVzKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdB
ZGRIaWdobGlnaHRUb0N1cnJlbnRHcm91cCkgeworICAgICAgICBjcmVhdGVBcHBIaWdobGlnaHRJ
blNlbGVjdGVkUmFuZ2UoQ3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQ6Ok5vKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyNlbmRpZgogICAgIGlmIChpdGVtLmFjdGlvbigpID09IENvbnRleHRN
ZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmcgfHwgaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0
ZW1UYWdJZ25vcmVTcGVsbGluZykKICAgICAgICAgKyttX3BlbmRpbmdMZWFybk9ySWdub3JlV29y
ZE1lc3NhZ2VDb3VudDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRl
eCA4NzlmNzMyYjExY2IxMjM5NzM4NjU4ZThlNThmYjg3YzUwMzRmMmI4Li4zMWM4NDY0M2RhZmJm
MWExOTY5MDEzMjM1OTAwNTY2ZWQxMjA4NjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNp
bmNsdWRlICJDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLmgiCiAjaW5jbHVkZSAi
Q29udGV4dE1lbnVDb250ZXh0RGF0YS5oIgorI2luY2x1ZGUgIkNyZWF0ZU5ld0dyb3VwRm9ySGln
aGxpZ2h0LmgiCiAjaW5jbHVkZSAiRG93bmxvYWRJRC5oIgogI2luY2x1ZGUgIkRyYWdDb250cm9s
bGVyQWN0aW9uLmgiCiAjaW5jbHVkZSAiRWRpdGluZ1JhbmdlLmgiCkBAIC0zNjMsNiArMzY0LDcg
QEAgc3RydWN0IFdlYlNwZWVjaFN5bnRoZXNpc1ZvaWNlOwogc3RydWN0IFVSTFNjaGVtZVRhc2tQ
YXJhbWV0ZXJzOwogc3RydWN0IFVzZXJNZXNzYWdlOwogCitlbnVtIGNsYXNzIENyZWF0ZU5ld0dy
b3VwRm9ySGlnaGxpZ2h0IDogYm9vbDsKIGVudW0gY2xhc3MgTmVnb3RpYXRlZExlZ2FjeVRMUyA6
IGJvb2w7CiBlbnVtIGNsYXNzIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgOiBib29sOwog
ZW51bSBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lvbiA6IGJvb2w7CkBA
IC0xODIzLDYgKzE4MjUsMTAgQEAgcHVibGljOgogICAgIHZvaWQgcmVxdWVzdFNwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvbihjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lzaW9uKT4mJik7CiAg
ICAgdm9pZCByZXF1ZXN0U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQnlEZWZhdWx0QWN0aW9u
KGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJik7CiAKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgdm9pZCBjcmVhdGVB
cHBIaWdobGlnaHRJblNlbGVjdGVkUmFuZ2UoQ3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQpOwor
I2VuZGlmCisKIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQcm9j
ZXNzUHJveHkmLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7CiAgICAgdm9pZCBwbGF0
Zm9ybUluaXRpYWxpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IGM1MTQ3ZjQzMDQ3OTFhY2Y2NjNk
MjE0NTlhMmU2MzFhNDMzNmQ3NGIuLmU0YjM3ZDNmNDdjYjE5MWQ1YmRiZWQ1NTMxNzU2NzA5ZDI0
NDA5ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNzksNiArNzksNyBAQAogI2ltcG9ydCAiV2ViRGF0
YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLmgiCiAjaW1wb3J0ICJXZWJFdmVudC5oIgogI2lt
cG9ydCAiV2ViSU9TRXZlbnRGYWN0b3J5LmgiCisjaW1wb3J0ICJXZWJQYWdlLmgiCiAjaW1wb3J0
ICJXZWJQYWdlTWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAj
aW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKQEAgLTg2MTUsMTIgKzg2MTYsMTIgQEAgLSAodm9p
ZClzZXR1cEFwcEhpZ2hsaWdodE1lbnVzCiAKIC0gKHZvaWQpY3JlYXRlSGlnaGxpZ2h0SW5DdXJy
ZW50R3JvdXBXaXRoUmFuZ2U6KGlkKXNlbmRlcgogewotICAgIC8vIEZJWE1FOiBBZGQgSGlnaGxp
Z2h0IGxvZ2ljLgorICAgIF9wYWdlLT5jcmVhdGVBcHBIaWdobGlnaHRJblNlbGVjdGVkUmFuZ2Uo
Q3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQ6Ok5PKTsKIH0KIAogLSAodm9pZCljcmVhdGVIaWdo
bGlnaHRJbk5ld0dyb3VwV2l0aFJhbmdlOihpZClzZW5kZXIKIHsKLSAgICAvLyBGSVhNRTogQWRk
IEhpZ2hsaWdodCBsb2dpYy4KKyAgICBfcGFnZS0+Y3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3Rl
ZFJhbmdlKENyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0OjpZRVMpOwogfQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDIx
NWI2MDBkZWRmNjZjODQ2OTQ2ZWJkMDBkNTk2MjZhMTFkN2JlMTkuLmVkNDQyY2QwYjdmOGE0OGM0
NDRjNjI4ZWY5NWQ4OTMwNTE2ODNlM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTI4LDYgKzkyOCw3IEBACiAJCTQxRkFCRDJBMUY0
REUwMDEwMDZBNkM5NyAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQUJEMjgxRjREREZEQzAwNkE2Qzk3
IC8qIENhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmggKi87IH07CiAJCTQxRkFGNUY1MUUzQzA2NDkw
MDFBRTY3OCAvKiBXZWJSVENSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDFGQUY1RjQxRTNDMDY0MTAwMUFFNjc4IC8qIFdlYlJUQ1Jlc29s
dmVyLmggKi87IH07CiAJCTQxRkFGNUY4MUUzQzEwMjEwMDFBRTY3OCAvKiBMaWJXZWJSVENSZXNv
bHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFG
QUY1RjYxRTNDMEI0NzAwMUFFNjc4IC8qIExpYldlYlJUQ1Jlc29sdmVyLmggKi87IH07CisJCTQ0
MzBEMDE3MjU3NkQ5REQwMDQ2RDQwMSAvKiBDcmVhdGVOZXdHcm91cEZvckhpZ2hsaWdodC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQzMEQwMTYyNTc2
RDlEQzAwNDZENDAxIC8qIENyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0LmggKi87IH07CiAJCTQ0
NTk5ODQyMjI4MzNFODcwMEU2MTM3MyAvKiBTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0NTk5ODQxMjI4
MzNFNjAwMEU2MTM3MyAvKiBTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaCAqLzsgfTsKIAkJ
NDQ2REM2NEMyNEEyRDhFNTAwNjFGMzkwIC8qIFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlm
aWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDZE
QzY0QjI0QTJEOEFEMDA2MUYzOTAgLyogUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIu
aCAqLzsgfTsKIAkJNDQ4MjczNDcyNDUyOEY2MDAwQTk1NDkzIC8qIENvY29hSW1hZ2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0ODI3MzQ2MjQ1MjhG
NjAwMEE5NTQ5MyAvKiBDb2NvYUltYWdlLmggKi87IH07CkBAIC0zNjA1LDYgKzM2MDYsNyBAQAog
CQk0MUZDRDZCRDIzQ0UwNDNGMDBDNjI1NjcgLyogUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MUZDRDZCRTIzQ0UwNDQwMDBDNjI1NjcgLyogUmVtb3RlU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGQ0Q2QkYyM0NFMDQ0MDAwQzYyNTY3IC8qIFJlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NDMwRDAxNjI1NzZEOURDMDA0NkQ0MDEgLyogQ3Jl
YXRlTmV3R3JvdXBGb3JIaWdobGlnaHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDQ1MEFFQkYxREMzRkFFNTAwOTk0M0YyIC8qIFNoYXJlZE1lbW9yeUNvY29hLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJlZE1lbW9yeUNvY29hLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1OTk4NDEyMjgzM0U2MDAwRTYxMzcz
IC8qIFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTeW50aGV0
aWNFZGl0aW5nQ29tbWFuZFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ2
REM2NEIyNEEyRDhBRDAwNjFGMzkwIC8qIFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXliYWNrU2Vzc2lvbkNvbnRl
eHRJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MTgzLDYgKzYx
ODUsNyBAQAogCQkJCTUxMDZEN0JGMThCREJFNzMwMDBBQjE2NiAvKiBDb250ZXh0TWVudUNvbnRl
eHREYXRhLmNwcCAqLywKIAkJCQk1MTA2RDdDMDE4QkRCRTczMDAwQUIxNjYgLyogQ29udGV4dE1l
bnVDb250ZXh0RGF0YS5oICovLAogCQkJCTk5RjY0MkQyMUZBQkUzNzgwMDk2MjFFOSAvKiBDb29y
ZGluYXRlU3lzdGVtLmggKi8sCisJCQkJNDQzMEQwMTYyNTc2RDlEQzAwNDZENDAxIC8qIENyZWF0
ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0LmggKi8sCiAJCQkJOTkwMzZBRTgyM0E5NzA4NzAwMDBCMDZB
IC8qIERlYnVnZ2FibGVJbmZvRGF0YS5jcHAgKi8sCiAJCQkJOTkwMzZBRTcyM0E5NzA4NzAwMDBC
MDZBIC8qIERlYnVnZ2FibGVJbmZvRGF0YS5oICovLAogCQkJCTBGMTg5Q0FCMjQ3NDlGMkYwMEU1
OEQ4MSAvKiBEaXNwbGF5TGlua09ic2VydmVySUQuaCAqLywKQEAgLTExMDg5LDYgKzExMDkyLDcg
QEAKIAkJCQk1MTA2RDdDNDE4QkRCRTczMDAwQUIxNjYgLyogQ29udGV4dE1lbnVDb250ZXh0RGF0
YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdDMjFDQUUxRTk5NEMwQzAwMjlENUY5IC8qIENvcmVQ
cmVkaWN0aW9uU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlCODc4QjYxNTEzMzQyOERDMDA2ODg4
RTkgLyogQ29ycmVjdGlvblBhbmVsLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NDMwRDAxNzI1NzZE
OUREMDA0NkQ0MDEgLyogQ3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTU3NTk3RUJEMjE4MTg0OTAwMDM3RjkyNCAvKiBDdGFwQXV0aGVudGljYXRvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTc1OTdFQjkyMTgxMUQ5QTAwMzdGOTI0IC8qIEN0YXBIaWREcml2
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MERBQUNBMjMwMzg1RkQwMEU4RkMwNCAvKiBDdGFw
TmZjRHJpdmVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggOTU3MGVjM2JhMDRhZTNhNzAzODM0OTU4ODBkMDNiMjI1
YmQ2MWQyYi4uOTlmNjQ3NWExNWU4MmZlZmE2ZTFmNTNlOTA5ZTk4MGE2NTc1YmM1MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE1Niw2ICsx
NTYsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRGF0YVRyYW5zZmVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9EYXRhYmFzZU1hbmFnZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RlcHJlY2F0ZWRHbG9i
YWxTZXR0aW5ncy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0RvY3VtZW50RnJhZ21lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50TG9h
ZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaD4KQEAg
LTE4Niw2ICsxODcsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTFBsdWdJbkVsZW1lbnQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxTZWxlY3RFbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSGlnaGxp
Z2h0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9IaWdobGlnaHRSZWdpc3Rlci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvSGlzdG9yeUNvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hpc3RvcnlJ
dGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IaXRUZXN0UmVzdWx0Lmg+CkBAIC0yMjksNiArMjMy
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
aGFkb3dSb290Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1N0YXRpY1JhbmdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdHlsZVByb3BlcnRp
ZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1YmZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TdWJzdGl0dXRlRGF0YS5oPgpAQCAtNzAzMyw2ICs3MDM3LDI2IEBAIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eSYgV2ViUGFnZTo6ZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5KCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorYm9vbCBXZWJQ
YWdlOjpjcmVhdGVBcHBIaWdobGlnaHRJblNlbGVjdGVkUmFuZ2UoQ3JlYXRlTmV3R3JvdXBGb3JI
aWdobGlnaHQgY3JlYXRlTmV3R3JvdXApCit7CisgICAgYXV0byBkb2N1bWVudCA9IG1ha2VSZWZQ
dHIobV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKS5kb2N1bWVu
dCgpKTsKKworICAgIGF1dG8gZnJhbWUgPSBtYWtlUmVmUHRyKGRvY3VtZW50LT5mcmFtZSgpKTsK
KyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIHNlbGVj
dGlvblJhbmdlID0gZnJhbWUtPnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLnRvTm9ybWFsaXplZFJh
bmdlKCk7CisgICAgaWYgKCFzZWxlY3Rpb25SYW5nZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgZG9jdW1lbnQtPmFwcEhpZ2hsaWdodFJlZ2lzdGVyKCkuYWRkQXBwSGlnaGxpZ2h0KFN0
YXRpY1JhbmdlOjpjcmVhdGUoc2VsZWN0aW9uUmFuZ2UudmFsdWUoKSkpOworCisgICAgcmV0dXJu
IHRydWU7Cit9CisjZW5kaWYKKworCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAppbmRleCBhNzQ4YmUyMTM1ZTNkMjJiNDBkYjA1YTE2M2FlZTAwYWQ1MzQyNGQxLi44
NmVmNTE0YzA5ZTU0YjIzZTcwOWE1ZjdjMjVkMTQ4OGUyMmU5ZTBjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVk
ZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiQ2FsbGJhY2tJRC5oIgogI2luY2x1ZGUgIkNvbnRl
bnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCIKKyNpbmNsdWRlICJDcmVhdGVOZXdHcm91
cEZvckhpZ2hsaWdodC5oIgogI2luY2x1ZGUgIkRvd25sb2FkSUQuaCIKICNpbmNsdWRlICJEcmF3
aW5nQXJlYUluZm8uaCIKICNpbmNsdWRlICJFZGl0aW5nUmFuZ2UuaCIKQEAgLTEzNjYsNiArMTM2
NywxMCBAQCBwdWJsaWM6CiAgICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBlbnN1cmVS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkoKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUF9I
SUdITElHSFRTKQorICAgIGJvb2wgY3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJhbmdlKENy
ZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0KTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFdlYlBh
Z2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluCmluZGV4IDE1NWYxZjRhNGE5NjI4OWUxMDg3MWYyMmE1OTU1MDcwZWQwZWU1OGQu
LjhiOGM5NTNmZDhlZmM5ZDYyZmMzNTM5ZTQzMTQ0YWNmNDFlNjdmZmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAt
NjE2LDQgKzYxNiw5IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50
OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAKICAgICBTZXRIYXNSZXNv
dXJjZUxvYWRDbGllbnQoYm9vbCBoYXMpCiAgICAgU2V0Q2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2Uo
Ym9vbCBjYW5Vc2UpCisKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgQ3JlYXRlQXBw
SGlnaGxpZ2h0SW5TZWxlY3RlZFJhbmdlKGVudW06Ym9vbCBXZWJLaXQ6OkNyZWF0ZU5ld0dyb3Vw
Rm9ySGlnaGxpZ2h0IGNyZWF0ZU5ld0dyb3VwKQorI2VuZGlmCisKIH0KZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5ZTM1ZDAwMzVkNjNkNGJkNTYy
ZjMyZDQ2OTI4NmI4YTNlY2M2YzdjLi43OTg2NDU4MWNlZjgyYzQ4ZTA2ODJiYWRiZTU4OWJiYmY0
ZmEzNmI2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTEtMzAgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJk
bmVyQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgYW5kIGRyYXcgYXBwIGhpZ2hsaWdodHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTM2NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL01hcmtlZFRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
b3BlcmF0b3I8PCk6CisKIDIwMjAtMTEtMTkgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFttYWNPU10gSXNzdWUgc2FuZGJveCBleHRlbnNpb24gdG8gV2Vi
IEluc3BlY3RvciBzZXJ2aWNlCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvTWFya2VkVGV4dC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvTWFya2VkVGV4dC5jcHAKaW5kZXggNmE4ZTU3MjkxYmY1ZDAxNjc2OGQ4ZTI5MmUyYjhjNjdh
YzAwODVmYi4uN2ZhNmFmYTZjZjViOGU0ZjA3NzI5Y2I5YWFmOTA4ZTdmYmRjMzU5MSAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL01hcmtlZFRleHQuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9NYXJrZWRUZXh0LmNwcApAQCAt
NTcsNiArNTcsMTAgQEAgc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3Ms
IE1hcmtlZFRleHQ6OlR5cGUgdHlwZSkKICAgICAgICAgcmV0dXJuIG9zIDw8ICJUZXh0TWF0Y2gi
OwogICAgIGNhc2UgTWFya2VkVGV4dDo6SGlnaGxpZ2h0OgogICAgICAgICByZXR1cm4gb3MgPDwg
IkhpZ2hsaWdodCI7CisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorICAgIGNhc2UgTWFya2Vk
VGV4dDo6QXBwSGlnaGxpZ2h0OgorICAgICAgICByZXR1cm4gb3MgPDwgIkFwcEhpZ2hsaWdodCI7
CisjZW5kaWYKICAgICBjYXNlIE1hcmtlZFRleHQ6OlVubWFya2VkOgogICAgICAgICByZXR1cm4g
b3MgPDwgIlVubWFya2VkIjsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415241</attachid>
            <date>2020-12-02 11:24:18 -0800</date>
            <delta_ts>2020-12-02 12:09:52 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-219365-20201202112418.patch</filename>
            <type>text/plain</type>
            <size>43335</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QzYzFmNDI4NGY0ZmI3
ODRjOTEyZTIxNjUwMzA2NGNiNGZkYTExMy4uZmMyY2VjODI0NTJhZTE5ODI1MjBiNjE5MmY0NTRm
ZjNlNGU5OWQyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTExLTMwICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGFu
ZCBkcmF3IGFwcCBoaWdobGlnaHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTkzNjUKKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWgu
CisKKyAgICAgICAgQ3JlYXRlIGEgc2VwYXJhdGUgaGlnaGxpZ2h0IHJlZ2lzdGVyIGZvciBhcHAg
aGlnaGxpZ2h0cyBzbyB0aGF0IHRoZXJlIGlzIGEgY2xlYXIgc2VwYXJhdGlvbgorICAgICAgICB3
aXRoIG5vIHJpc2sgb2Ygd2ViIGNvbnRlbnQgYWNjZXNzaW5nIHRoZSB3cm9uZyBoaWdobGlnaHRz
LiBFeHRlbmQgcmVuZGVyaW5nIHRvIGluY2x1ZGUgdGhlIAorICAgICAgICBhcHAgaGlnaGxpZ2h0
cyB3aXRoIHRoZSBjdXJyZW50IGRlZmF1bHQgc2V0dGluZ3MuIAorCisgICAgICAgICogTW9kdWxl
cy9oaWdobGlnaHQvSGlnaGxpZ2h0Lmg6CisgICAgICAgICogTW9kdWxlcy9oaWdobGlnaHQvSGln
aGxpZ2h0UmVnaXN0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmVnaXN0ZXI6
OmFwcEhpZ2hsaWdodEtleSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSZWdpc3Rlcjo6
YWRkQXBwSGlnaGxpZ2h0KToKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRS
ZWdpc3Rlci5oOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBjc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbjoKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFwcEhpZ2hsaWdodFJlZ2lzdGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpjb2xsZWN0UmFnZURhdGFGcm9tUmVnaXN0
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9u
cyk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL1N0YXRpY1Jhbmdl
Lmg6CisgICAgICAgICogcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6
CisgICAgICAgICogcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6cmVuZGVyZXJBZnRlck9mZnNldCk6CisgICAgICAgICogcmVuZGVyaW5nL0lubGluZVRleHRC
b3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6cmVzb2x2ZVN0eWxlRm9y
TWFya2VkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94Ojpjb2xsZWN0TWFy
a2VkVGV4dHNGb3JIaWdobGlnaHRzIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvTWFya2Vk
VGV4dC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvciBjb25zdCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmg6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclRoZW1lSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3NzVmFsdWVJRFNlbGVjdG9yTGlz
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVN
YWM6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVNYWM6OnN5c3RlbUNvbG9yIGNvbnN0KToKKwogMjAyMC0xMS0xOSAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFdvcmtsZXQuYWRkTW9kdWxlKCkg
c2hvdWxkIHJlamVjdCBwcm9taXNlIHdpdGggYW4gQWJvcnRFcnJvciB3aGVuIHRoZSBuZXR3b3Jr
IGxvYWQgZmFpbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYzRiNDcxYTRlYjgyMGY1MjI3NjJiMmExODNmM2RiYjc3
NzdjOWIzMi4uODA1MjZhMjA4Y2MzOTM1NDY4ZWNjMzg0NzUxNjRjZmFhYjM1ZDQwNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyOSBAQAorMjAyMC0xMS0zMCAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dh
cmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIENyZWF0ZSBhbmQgZHJhdyBhcHAgaGlnaGxpZ2h0
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MzY1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAgICAgIEhhbmRsZSB0
aGUgY3JlYXRpb24gb2YgQXBwIEhpZ2hsaWdodHMgZnJvbSBzZWxlY3Rpb25zIHdoZW4gdGhlIGNv
bnRleHQgbWVudSBpdGVtIGlzIHNlbGVjdGVkLiAKKyAgICAgICAgVGhpcyBwYXRjaCB3aWxsIGFk
ZCB0aGUgaGlnaGxpZ2h0cyB0byB0aGUgRG9jdW1lbnQncyBhcHAgSGlnaGxpZ2h0IHJlZ2lzdGVy
LCBhbmQgaGFuZGxlIGRyYXdpbmcKKyAgICAgICAgdGhlbSBpbiBJbmxpbmVUZXh0Qm94LiBMYXRl
ciBwYXRjaGVzIHdpbGwgaGFuZGxlIHRoZSBwZXJzaXN0ZW50IHN0b3JhZ2UgYW5kIHJlcG9wdWxh
dGlvbiBvZiBhcHAKKyAgICAgICAgaGlnaGxpZ2h0cyBvbiBsYXVuY2ggb3IgcmVsb2FkIG9mIGEg
cGFnZS4gCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxl
Y3RlZFJhbmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY3JlYXRlSGlnaGxpZ2h0SW5DdXJyZW50
R3JvdXBXaXRoUmFuZ2U6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY3JlYXRlSGlnaGxp
Z2h0SW5OZXdHcm91cFdpdGhSYW5nZTpdKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNyZWF0ZUFwcEhpZ2hsaWdo
dEluU2VsZWN0ZWRSYW5nZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwog
MjAyMC0xMS0xOSAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW21hY09TXSBJc3N1ZSBzYW5kYm94IGV4dGVuc2lvbiB0byBXZWIgSW5zcGVjdG9yIHNlcnZp
Y2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDAyM2UxNTNkYTNjNjdkZTE3YTI1MmJlZjFjYWIyNjg3
ZDQzOTMwNmQuLmNiMmEzZjMxYTQ3YzlhMjkzOTFlNzUxZjVmMGNiYjc2NjVmNGYzNGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQpAQCAtNDQsNiArNDQsOSBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1F
V09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJh
Y2suaAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25PcHRpb25zLmgKIAorICAgIE1v
ZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oCisgICAgTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxp
Z2h0UmVnaXN0ZXIuaAorCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCQWN0aXZlRE9NT2JqZWN0
LmgKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUlkZW50aWZpZXIuaAogICAgIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0LmgKaW5kZXggZjBkZmE1Njgy
MjhjODNiMjBlYmU4YTJmOTM1ZWYwZjVkZTc1MzBmZC4uOWQ5OGM4NzE0ZWJjMDVhNDlkN2Q5NmEz
MmVmNGIwYzJmOWQyNTE2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdo
bGlnaHQvSGlnaGxpZ2h0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQv
SGlnaGxpZ2h0LmgKQEAgLTU0LDcgKzU0LDcgQEAgc3RydWN0IEhpZ2hsaWdodFJhbmdlRGF0YSA6
IFJlZkNvdW50ZWQ8SGlnaGxpZ2h0UmFuZ2VEYXRhPiwgcHVibGljIENhbk1ha2VXZWFrUHQKIAog
Y2xhc3MgSGlnaGxpZ2h0IDogcHVibGljIFJlZkNvdW50ZWQ8SGlnaGxpZ2h0PiB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZjxIaWdobGlnaHQ+IGNyZWF0ZShTdGF0aWNSYW5nZSYpOworICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8SGlnaGxpZ2h0PiBjcmVhdGUoU3RhdGljUmFuZ2UmKTsK
ICAgICB2b2lkIGNsZWFyRnJvbVNldExpa2UoKTsKICAgICBib29sIGFkZFRvU2V0TGlrZShTdGF0
aWNSYW5nZSYpOwogICAgIGJvb2wgcmVtb3ZlRnJvbVNldExpa2UoY29uc3QgU3RhdGljUmFuZ2Um
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dFJlZ2lzdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dFJlZ2lzdGVyLmNwcAppbmRleCA5ZTIwYjg2OTM0MjVjYmNhYTA2Y2NiMTQ0ZmUwMmQzY2Y2Mjg1
ZThiLi40YWI3NDQ5YjAzNDMzOGI2NjcyY2I2ZDBhMTE1YWFjNjkwZTdkM2JmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSZWdpc3Rlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIu
Y3BwCkBAIC01Myw0ICs1MywxNyBAQCBib29sIEhpZ2hsaWdodFJlZ2lzdGVyOjpyZW1vdmUoY29u
c3QgU3RyaW5nJiBrZXkpCiAgICAgcmV0dXJuIG1fbWFwLnJlbW92ZShrZXkpOwogfQogCitBU0NJ
SUxpdGVyYWwgSGlnaGxpZ2h0UmVnaXN0ZXI6OmFwcEhpZ2hsaWdodEtleSgpCit7CisgICAgcmV0
dXJuICJhcHBIaWdobGlnaHRLZXkiX3M7Cit9CisKK3ZvaWQgSGlnaGxpZ2h0UmVnaXN0ZXI6OmFk
ZEFwcEhpZ2hsaWdodChSZWY8U3RhdGljUmFuZ2U+JiYgdmFsdWUpCit7CisgICAgaWYgKG1fbWFw
LmNvbnRhaW5zKGFwcEhpZ2hsaWdodEtleSgpKSkKKyAgICAgICAgbV9tYXAuZ2V0KGFwcEhpZ2hs
aWdodEtleSgpKS0+YWRkVG9TZXRMaWtlKHZhbHVlKTsKKyAgICBlbHNlCisgICAgICAgIHNldEZy
b21NYXBMaWtlKGFwcEhpZ2hsaWdodEtleSgpLCBIaWdobGlnaHQ6OmNyZWF0ZShXVEZNb3ZlKHZh
bHVlKSkpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hs
aWdodC9IaWdobGlnaHRSZWdpc3Rlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGln
aHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaAppbmRleCA0MDUzMGY4MzYyM2EzMzNiMjBjZmE2ZmQ1ZGMw
ZjU2MzM0NDEwNDYxLi5kNTI5MWZkYTRkOTUzOWQzMGI3ZTM2M2NlNjNhMGUyODNkMGU4M2Y2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSZWdp
c3Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJl
Z2lzdGVyLmgKQEAgLTM0LDYgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRE9N
TWFwQWRhcHRlcjsKIGNsYXNzIERPTVN0cmluZzsKIGNsYXNzIEhpZ2hsaWdodDsKK2NsYXNzIFN0
YXRpY1JhbmdlOwogCiBjbGFzcyBIaWdobGlnaHRSZWdpc3RlciA6IHB1YmxpYyBSZWZDb3VudGVk
PEhpZ2hsaWdodFJlZ2lzdGVyPiB7CiBwdWJsaWM6CkBAIC00Myw2ICs0NCw5IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldEZyb21NYXBMaWtlKFN0cmluZyYmLCBSZWY8SGlnaGxpZ2h0PiYmKTsKICAg
ICB2b2lkIGNsZWFyKCk7CiAgICAgYm9vbCByZW1vdmUoY29uc3QgU3RyaW5nJik7CisKKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGFkZEFwcEhpZ2hsaWdodChSZWY8U3RhdGljUmFuZ2U+JiYpOwor
ICAgIHN0YXRpYyBBU0NJSUxpdGVyYWwgYXBwSGlnaGxpZ2h0S2V5KCk7CiAgICAgCiAgICAgY29u
c3QgSGFzaE1hcDxTdHJpbmcsIFJlZjxIaWdobGlnaHQ+PiYgbWFwKCkgY29uc3QgeyByZXR1cm4g
bV9tYXA7IH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA3NWE1MjJjMmFiZWIwZDE2ZDVjNjg4NmM3MTcwNjU3MjQ5MjBj
OTRlLi5mOTliOThmYzk1YTc0NGVjMzRhN2RiNzNhOGU2MTM3MmE4ZGQxZTg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjEw
LDYgKzEyMTAsOCBAQAogCQk0M0VERDY3RjFCNDg1REJGMDA2NDBFNzUgLyogQ29tYmluZWRGaWx0
ZXJzQWxwaGFiZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQzRURENjdEMUI0ODVEQkYwMDY0MEU3NSAvKiBDb21iaW5lZEZpbHRlcnNBbHBoYWJldC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ0MEVE
QkQxMjU1RTExNkMwMDMwMEJBNyAvKiBMb2NhbGl6YWJsZS5zdHJpbmdzIGluIFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDZFRTRFODI1NUUwRDkyMDA0NTQ0
NjMgLyogTG9jYWxpemFibGUuc3RyaW5ncyAqLzsgfTsKIAkJNDQxNTI5MkUwRTFBRThBMDAwQzRB
MkQwIC8qIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MTUyOTJDMEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1
Z0luSW1hZ2VFbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJNDQzMEQwMEIyNTc1QTgzRTAwNDZENDAxIC8qIEhpZ2hsaWdodC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDRFODhFNTEyMzZBNUM4
RDAwOUI0ODQ3IC8qIEhpZ2hsaWdodC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTQ0MzBEMDBEMjU3NUE4QTUwMDQ2RDQwMSAvKiBIaWdobGlnaHRS
ZWdpc3Rlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDRFODhFNTAyMzZBNTZBQzAwOUI0ODQ3IC8qIEhpZ2hsaWdodFJlZ2lzdGVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDQ1Nzc1RTUyMDQ3MkY3
MzAwOERDRTVEIC8qIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0NTc3NUU0MjA0NzJGNzMwMDhEQ0U1
RCAvKiBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDQ2M0NGNjgyMjEyRkE2ODAwMUE4NTc3IC8q
IERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzc5NDFFMjFDNTZDMjkzMDBBNEM1OEUgLyogRGF0YURldGVj
dG9yc0NvcmVTb2Z0TGluay5tbSAqLzsgfTsKIAkJNDQ2NUQ3QkQyNTM2RDA1RTAwMTY2NjZEIC8q
IFNlbGVjdGlvblJhbmdlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDRCMzhCRjQyNTM2OTAxQTAwQTQ0NThEIC8qIFNlbGVjdGlvblJhbmdlRGF0
YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0z
MjA1Myw3ICszMjA1NSw5IEBACiAJCQkJNTE1QkUxOUMxRDU0RjZDMTAwREQ3QzY4IC8qIEhJREdh
bWVwYWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMEE5MURBMjRDRjNEOEMwMEJGRDg5QyAvKiBI
SURHYW1lcGFkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE1QkUxOUUxRDU0RjZDMTAw
REQ3QzY4IC8qIEhJREdhbWVwYWRQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDQzMEQw
MEIyNTc1QTgzRTAwNDZENDAxIC8qIEhpZ2hsaWdodC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RD
RkFCQkQxOEMwQUY3ODAwNkY4NDUwIC8qIEhpZ2hsaWdodERhdGEuaCBpbiBIZWFkZXJzICovLAor
CQkJCTQ0MzBEMDBEMjU3NUE4QTUwMDQ2RDQwMSAvKiBIaWdobGlnaHRSZWdpc3Rlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkM5NEQxNTQwQzI3NUM4QjAwNkJDNjE3IC8qIEhpc3RvcnkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTk3RENFMjAyMTA4MDdDNzUwMDU3RDM5NCAvKiBIaXN0b3J5Q29udHJv
bGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3NDFEMTEwQjA3MjU5QTAwRUQ0NDJDIC8qIEhp
c3RvcnlJdGVtLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29y
ZHMuaW4KaW5kZXggOTk3YjQyMzk5YTE5OTJlZGEwODk0ZjUwOWQxNDAwZTFiYzkyN2I4MS4uMGZj
MTI3MTcwMDI0ODBiNjkxNWM3NWExNzZmYTA4Mjc1MTNjNDI2MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTI1OSw2ICsyNTksNyBAQCB3aW5kb3d0ZXh0CiAtYXBw
bGUtc3lzdGVtLXB1cnBsZQogLWFwcGxlLXN5c3RlbS1yZWQKIC1hcHBsZS1zeXN0ZW0teWVsbG93
CistYXBwbGUtc3lzdGVtLWFwcC1oaWdobGlnaHQtYmFja2dyb3VuZAogI2VuZGlmCiAjaWYgZGVm
aW5lZChXVEZfUExBVEZPUk1fTUFDKSAmJiBXVEZfUExBVEZPUk1fTUFDCiAtYXBwbGUtc3lzdGVt
LWFsdGVybmF0ZS1zZWxlY3RlZC10ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA2NDZl
ZTdlZWMwMzNjOTAzOTNlZjAzOGU0MzdlMDVjNmZlY2NjOWZkLi4zMjVkYzA2YmVlZjRkOTdiM2Ni
MjMxZTZkYzhjZTFhOGI0NTcyYWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTc5NSw2
ICs3OTUsOSBAQCB2b2lkIERvY3VtZW50Ojpjb21tb25UZWFyZG93bigpCiAgICAgaWYgKG1faGln
aGxpZ2h0UmVnaXN0ZXIpCiAgICAgICAgIG1faGlnaGxpZ2h0UmVnaXN0ZXItPmNsZWFyKCk7CiAK
KyAgICBpZiAobV9hcHBIaWdobGlnaHRSZWdpc3RlcikKKyAgICAgICAgbV9hcHBIaWdobGlnaHRS
ZWdpc3Rlci0+Y2xlYXIoKTsKKwogICAgIG1fcGVuZGluZ1Njcm9sbEV2ZW50VGFyZ2V0TGlzdCA9
IG51bGxwdHI7CiAKICAgICBpZiAobV90aW1lbGluZXNDb250cm9sbGVyKQpAQCAtMjc3NCwyMSAr
Mjc3NywzNCBAQCBIaWdobGlnaHRSZWdpc3RlciYgRG9jdW1lbnQ6OmhpZ2hsaWdodFJlZ2lzdGVy
KCkKICAgICByZXR1cm4gKm1faGlnaGxpZ2h0UmVnaXN0ZXI7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6
OnVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpCitIaWdobGlnaHRSZWdpc3RlciYgRG9jdW1lbnQ6
OmFwcEhpZ2hsaWdodFJlZ2lzdGVyKCkKIHsKLSAgICBWZWN0b3I8V2Vha1B0cjxIaWdobGlnaHRS
YW5nZURhdGE+PiByYW5nZXNEYXRhOwotICAgIGlmIChtX2hpZ2hsaWdodFJlZ2lzdGVyKSB7Ci0g
ICAgICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogbV9oaWdobGlnaHRSZWdpc3Rlci0+bWFwKCkp
IHsKLSAgICAgICAgICAgIGZvciAoYXV0byYgcmFuZ2VEYXRhIDogaGlnaGxpZ2h0LnZhbHVlLT5y
YW5nZXNEYXRhKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAocmFuZ2VEYXRhLT5zdGFydFBvc2l0
aW9uICYmIHJhbmdlRGF0YS0+ZW5kUG9zaXRpb24pCi0gICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwotICAgICAgICAgICAgICAgIGlmICgmcmFuZ2VEYXRhLT5yYW5nZS0+c3RhcnRDb250YWlu
ZXIoKS50cmVlU2NvcGUoKSAhPSAmcmFuZ2VEYXRhLT5yYW5nZS0+ZW5kQ29udGFpbmVyKCkudHJl
ZVNjb3BlKCkpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAg
IHJhbmdlc0RhdGEuYXBwZW5kKG1ha2VXZWFrUHRyKHJhbmdlRGF0YS5wdHIoKSkpOwotICAgICAg
ICAgICAgfQorICAgIGlmICghbV9hcHBIaWdobGlnaHRSZWdpc3RlcikKKyAgICAgICAgbV9hcHBI
aWdobGlnaHRSZWdpc3RlciA9IEhpZ2hsaWdodFJlZ2lzdGVyOjpjcmVhdGUoKTsKKyAgICByZXR1
cm4gKm1fYXBwSGlnaGxpZ2h0UmVnaXN0ZXI7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OmNvbGxlY3RS
YW5nZURhdGFGcm9tUmVnaXN0ZXIoVmVjdG9yPFdlYWtQdHI8SGlnaGxpZ2h0UmFuZ2VEYXRhPj4m
IHJhbmdlc0RhdGEsIGNvbnN0IEhpZ2hsaWdodFJlZ2lzdGVyJiBoaWdobGlnaHRSZWdpc3RlcikK
K3sKKyAgICBmb3IgKGF1dG8mIGhpZ2hsaWdodCA6IGhpZ2hsaWdodFJlZ2lzdGVyLm1hcCgpKSB7
CisgICAgICAgIGZvciAoYXV0byYgcmFuZ2VEYXRhIDogaGlnaGxpZ2h0LnZhbHVlLT5yYW5nZXNE
YXRhKCkpIHsKKyAgICAgICAgICAgIGlmIChyYW5nZURhdGEtPnN0YXJ0UG9zaXRpb24gJiYgcmFu
Z2VEYXRhLT5lbmRQb3NpdGlvbikKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
ICAgIGlmICgmcmFuZ2VEYXRhLT5yYW5nZS0+c3RhcnRDb250YWluZXIoKS50cmVlU2NvcGUoKSAh
PSAmcmFuZ2VEYXRhLT5yYW5nZS0+ZW5kQ29udGFpbmVyKCkudHJlZVNjb3BlKCkpCisgICAgICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICByYW5nZXNEYXRhLmFwcGVuZChtYWtlV2Vh
a1B0cihyYW5nZURhdGEucHRyKCkpKTsKICAgICAgICAgfQogICAgIH0KLSAgICAKK30KKwordm9p
ZCBEb2N1bWVudDo6dXBkYXRlSGlnaGxpZ2h0UG9zaXRpb25zKCkKK3sKKyAgICBWZWN0b3I8V2Vh
a1B0cjxIaWdobGlnaHRSYW5nZURhdGE+PiByYW5nZXNEYXRhOworICAgIGlmIChtX2hpZ2hsaWdo
dFJlZ2lzdGVyKQorICAgICAgICBjb2xsZWN0UmFuZ2VEYXRhRnJvbVJlZ2lzdGVyKHJhbmdlc0Rh
dGEsICptX2hpZ2hsaWdodFJlZ2lzdGVyLmdldCgpKTsKKyAgICBpZiAobV9hcHBIaWdobGlnaHRS
ZWdpc3RlcikKKyAgICAgICAgY29sbGVjdFJhbmdlRGF0YUZyb21SZWdpc3RlcihyYW5nZXNEYXRh
LCAqbV9hcHBIaWdobGlnaHRSZWdpc3Rlci5nZXQoKSk7CisKICAgICBmb3IgKGF1dG8mIHdlYWtS
YW5nZURhdGEgOiByYW5nZXNEYXRhKSB7CiAgICAgICAgIGlmIChhdXRvKiByYW5nZURhdGEgPSB3
ZWFrUmFuZ2VEYXRhLmdldCgpKSB7CiAgICAgICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIHZpc2li
bGVTZWxlY3Rpb24ocmFuZ2VEYXRhLT5yYW5nZSk7CkBAIC0yNzk3LDcgKzI4MTMsNyBAQCB2b2lk
IERvY3VtZW50Ojp1cGRhdGVIaWdobGlnaHRQb3NpdGlvbnMoKQogICAgICAgICAgICAgaWYgKCFy
YW5nZURhdGEtPnN0YXJ0UG9zaXRpb24uaGFzVmFsdWUoKSkKICAgICAgICAgICAgICAgICBzdGFy
dFBvc2l0aW9uID0gdmlzaWJsZVNlbGVjdGlvbi52aXNpYmxlU3RhcnQoKS5kZWVwRXF1aXZhbGVu
dCgpOwogICAgICAgICAgICAgaWYgKCFyYW5nZURhdGEtPmVuZFBvc2l0aW9uLmhhc1ZhbHVlKCkp
Ci0gICAgICAgICAgICAgICAgZW5kUG9zaXRpb24gPSB2aXNpYmxlU2VsZWN0aW9uLnZpc2libGVF
bmQoKS5kZWVwRXF1aXZhbGVudCgpOyAvLyA8TU1HPiBzd2l0Y2ggdG8gRU5ECisgICAgICAgICAg
ICAgICAgZW5kUG9zaXRpb24gPSB2aXNpYmxlU2VsZWN0aW9uLnZpc2libGVFbmQoKS5kZWVwRXF1
aXZhbGVudCgpOwogICAgICAgICAgICAgaWYgKCF3ZWFrUmFuZ2VEYXRhLmdldCgpKQogICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4
IDg0ZTU4Y2MxMzVkZGIyNWRhM2E3YTgzOGU3NGMzZTc4ZjQwN2M5ZDcuLmVlMDNmNWY0YmZmYTlj
MzZlYzI4NGIzOTkwOTRlM2M1ZThlMTk4OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0yMzEs
NiArMjMxLDcgQEAgY2xhc3MgWFBhdGhOU1Jlc29sdmVyOwogY2xhc3MgWFBhdGhSZXN1bHQ7CiAK
IHN0cnVjdCBCb3VuZGFyeVBvaW50Oworc3RydWN0IEhpZ2hsaWdodFJhbmdlRGF0YTsKIHN0cnVj
dCBJbnRlcnNlY3Rpb25PYnNlcnZlckRhdGE7CiAKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBF
eGNlcHRpb25PcjsKQEAgLTE1NzIsOCArMTU3MywxMSBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JF
X0VYUE9SVCBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlciYgdGV4dE1hbmlwdWxhdGlvbkNvbnRy
b2xsZXIoKTsKICAgICBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlciogdGV4dE1hbmlwdWxhdGlv
bkNvbnRyb2xsZXJJZkV4aXN0cygpIHsgcmV0dXJuIG1fdGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xs
ZXIuZ2V0KCk7IH0KLSAgICAgICAgCisKKyAgICBIaWdobGlnaHRSZWdpc3RlciogaGlnaGxpZ2h0
UmVnaXN0ZXJJZkV4aXN0cygpIHsgcmV0dXJuIG1faGlnaGxpZ2h0UmVnaXN0ZXIuZ2V0KCk7IH0K
ICAgICBIaWdobGlnaHRSZWdpc3RlciYgaGlnaGxpZ2h0UmVnaXN0ZXIoKTsKKyAgICBIaWdobGln
aHRSZWdpc3RlciogYXBwSGlnaGxpZ2h0UmVnaXN0ZXJJZkV4aXN0cygpIHsgcmV0dXJuIG1fYXBw
SGlnaGxpZ2h0UmVnaXN0ZXIuZ2V0KCk7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCBIaWdobGlnaHRS
ZWdpc3RlciYgYXBwSGlnaGxpZ2h0UmVnaXN0ZXIoKTsKICAgICB2b2lkIHVwZGF0ZUhpZ2hsaWdo
dFBvc2l0aW9ucygpOwogCiAgICAgYm9vbCBhbGxvd3NDb250ZW50SmF2YVNjcmlwdCgpIGNvbnN0
OwpAQCAtMTcwMSw2ICsxNzA1LDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGxhdGZvcm1TdXNw
ZW5kT3JTdG9wQWN0aXZlRE9NT2JqZWN0cygpOwogCisgICAgdm9pZCBjb2xsZWN0UmFuZ2VEYXRh
RnJvbVJlZ2lzdGVyKFZlY3RvcjxXZWFrUHRyPEhpZ2hsaWdodFJhbmdlRGF0YT4+JiwgY29uc3Qg
SGlnaGxpZ2h0UmVnaXN0ZXImKTsKKwogICAgIGJvb2wgaXNCb2R5UG90ZW50aWFsbHlTY3JvbGxh
YmxlKEhUTUxCb2R5RWxlbWVudCYpOwogCiAgICAgdm9pZCBkaWRMb2dNZXNzYWdlKGNvbnN0IFdU
RkxvZ0NoYW5uZWwmLCBXVEZMb2dMZXZlbCwgVmVjdG9yPEpTT05Mb2dWYWx1ZT4mJikgZmluYWw7
CkBAIC0xOTMxLDYgKzE5MzcsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgICAgIAogICAgIFJl
ZlB0cjxIaWdobGlnaHRSZWdpc3Rlcj4gbV9oaWdobGlnaHRSZWdpc3RlcjsKKyAgICBSZWZQdHI8
SGlnaGxpZ2h0UmVnaXN0ZXI+IG1fYXBwSGlnaGxpZ2h0UmVnaXN0ZXI7CiAKICAgICBUaW1lciBt
X3Zpc3VhbFVwZGF0ZXNTdXBwcmVzc2lvblRpbWVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU3RhdGljUmFuZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNSYW5nZS5o
CmluZGV4IDc2OTAxMTNkZjhhMmFlOWJjODI1NTZjNGFiZjEwZjk3MmUyMmE3YWUuLmY3ZDdmNWI0
ZjM0MDc3NmMwMjAzN2ZjOTgzNDk4YTE1NWU5NGUxMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TdGF0aWNSYW5nZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNSYW5n
ZS5oCkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgc3RhdGljIEV4Y2Vw
dGlvbk9yPFJlZjxTdGF0aWNSYW5nZT4+IGNyZWF0ZShJbml0JiYpOwotICAgIHN0YXRpYyBSZWY8
U3RhdGljUmFuZ2U+IGNyZWF0ZShjb25zdCBTaW1wbGVSYW5nZSYpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBSZWY8U3RhdGljUmFuZ2U+IGNyZWF0ZShjb25zdCBTaW1wbGVSYW5nZSYpOwog
ICAgIHN0YXRpYyBSZWY8U3RhdGljUmFuZ2U+IGNyZWF0ZShTaW1wbGVSYW5nZSYmKTsKIAogICAg
IE5vZGUmIHN0YXJ0Q29udGFpbmVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU2ltcGxlUmFuZ2U6
OnN0YXJ0Q29udGFpbmVyKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9IaWdobGlnaHREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHRE
YXRhLmNwcAppbmRleCAzOWViMTUxMDlhYTZjMDJhNjg2YmUwNGRlMGNkZDZiMDM3YzhmYzljLi4x
ZjZiODg2YzkxMTAxNDQ5MGYyNzZiYjRkNDMwZTdmMWJhNmMyOGFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwCkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgUmVu
ZGVyUmFuZ2VJdGVyYXRvcjo6Y2hlY2tGb3JTcGFubmVyKCkKICAgICBtX2N1cnJlbnQgPSBwbGFj
ZWhvbGRlci5zcGFubmVyKCk7CiB9CiAKLXN0YXRpYyBSZW5kZXJPYmplY3QqIHJlbmRlcmVyQWZ0
ZXJPZmZzZXQoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlciwgdW5zaWduZWQgb2Zmc2V0KSAv
LyA8TU1HPiB1c2VkIGluIGJvdGgsIG1pZ2h0IHNob3VsZCBub3QgYmUgc3RhdGljCitzdGF0aWMg
UmVuZGVyT2JqZWN0KiByZW5kZXJlckFmdGVyT2Zmc2V0KGNvbnN0IFJlbmRlck9iamVjdCYgcmVu
ZGVyZXIsIHVuc2lnbmVkIG9mZnNldCkKIHsKICAgICBhdXRvKiBjaGlsZCA9IHJlbmRlcmVyLmNo
aWxkQXQob2Zmc2V0KTsKICAgICByZXR1cm4gY2hpbGQgPyBjaGlsZCA6IHJlbmRlcmVyLm5leHRJ
blByZU9yZGVyQWZ0ZXJDaGlsZHJlbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0lubGluZVRleHRCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGlu
ZVRleHRCb3guY3BwCmluZGV4IGUwOTBmMTZhODM1OTczMjVhNmRlMzkwZTBiOWZkY2M0M2NiMDc5
ZGMuLjdmYmQxZTExMGIzMzI1MzZhM2E4NzFjZGNmMDE1YzlkMTlhYjkxOTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKQEAgLTg0Niw2ICs4NDYsMTMgQEAg
YXV0byBJbmxpbmVUZXh0Qm94OjpyZXNvbHZlU3R5bGVGb3JNYXJrZWRUZXh0KGNvbnN0IE1hcmtl
ZFRleHQmIG1hcmtlZFRleHQsIGNvbnMKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAg
ICBicmVhazsKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgY2FzZSBNYXJrZWRUZXh0
OjpBcHBIaWdobGlnaHQ6IHsKKyAgICAgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+
IHN0eWxlQ29sb3JPcHRpb25zID0geyBTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VTeXN0ZW1BcHBl
YXJhbmNlIH07CisgICAgICAgIHN0eWxlLmJhY2tncm91bmRDb2xvciA9IHJlbmRlcmVyKCkudGhl
bWUoKS5hcHBIaWdobGlnaHRDb2xvcihzdHlsZUNvbG9yT3B0aW9ucyk7CisgICAgICAgIGJyZWFr
OworICAgIH0KKyNlbmRpZgogICAgIGNhc2UgTWFya2VkVGV4dDo6RHJhZ2dlZENvbnRlbnQ6CiAg
ICAgICAgIHN0eWxlLmFscGhhID0gMC4yNTsKICAgICAgICAgYnJlYWs7CkBAIC0xMDUyLDIxICsx
MDU5LDM3IEBAIFZlY3RvcjxNYXJrZWRUZXh0PiBJbmxpbmVUZXh0Qm94Ojpjb2xsZWN0TWFya2Vk
VGV4dHNGb3JIaWdobGlnaHRzKFRleHRQYWludFBoYXNlCiAgICAgYXV0byYgcGFyZW50UmVuZGVy
ZXIgPSBwYXJlbnQoKS0+cmVuZGVyZXIoKTsKICAgICBhdXRvJiBwYXJlbnRTdHlsZSA9IHBhcmVu
dFJlbmRlcmVyLnN0eWxlKCk7CiAgICAgSGlnaGxpZ2h0RGF0YSBoaWdobGlnaHREYXRhOwotICAg
IGZvciAoYXV0byYgaGlnaGxpZ2h0IDogcmVuZGVyZXIoKS5kb2N1bWVudCgpLmhpZ2hsaWdodFJl
Z2lzdGVyKCkubWFwKCkpIHsKLSAgICAgICAgYXV0byByZW5kZXJTdHlsZSA9IHBhcmVudFJlbmRl
cmVyLmdldFVuY2FjaGVkUHNldWRvU3R5bGUoeyBQc2V1ZG9JZDo6SGlnaGxpZ2h0LCBoaWdobGln
aHQua2V5IH0sICZwYXJlbnRTdHlsZSk7Ci0gICAgICAgIGlmICghcmVuZGVyU3R5bGUpCi0gICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKHJlbmRlclN0eWxlLT50ZXh0RGVjb3JhdGlv
bnNJbkVmZmVjdCgpLmlzRW1wdHkoKSAmJiBwaGFzZSA9PSBUZXh0UGFpbnRQaGFzZTo6RGVjb3Jh
dGlvbikKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBmb3IgKGF1dG8mIHJhbmdlRGF0
YSA6IGhpZ2hsaWdodC52YWx1ZS0+cmFuZ2VzRGF0YSgpKSB7Ci0gICAgICAgICAgICBpZiAoIWhp
Z2hsaWdodERhdGEuc2V0UmVuZGVyUmFuZ2UocmFuZ2VEYXRhKSkKKyAgICBpZiAoYXV0byBoaWdo
bGlnaHRSZWdpc3RlciA9IHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5oaWdobGlnaHRSZWdpc3Rlcklm
RXhpc3RzKCkpIHsKKyAgICAgICAgZm9yIChhdXRvJiBoaWdobGlnaHQgOiBoaWdobGlnaHRSZWdp
c3Rlci0+bWFwKCkpIHsKKyAgICAgICAgICAgIGF1dG8gcmVuZGVyU3R5bGUgPSBwYXJlbnRSZW5k
ZXJlci5nZXRVbmNhY2hlZFBzZXVkb1N0eWxlKHsgUHNldWRvSWQ6OkhpZ2hsaWdodCwgaGlnaGxp
Z2h0LmtleSB9LCAmcGFyZW50U3R5bGUpOworICAgICAgICAgICAgaWYgKCFyZW5kZXJTdHlsZSkK
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgYXV0
byBbaGlnaGxpZ2h0U3RhcnQsIGhpZ2hsaWdodEVuZF0gPSBoaWdobGlnaHRTdGFydEVuZChoaWdo
bGlnaHREYXRhKTsKLSAgICAgICAgICAgIGlmIChoaWdobGlnaHRTdGFydCA8IGhpZ2hsaWdodEVu
ZCkKLSAgICAgICAgICAgICAgICBtYXJrZWRUZXh0cy5hcHBlbmQoeyBoaWdobGlnaHRTdGFydCwg
aGlnaGxpZ2h0RW5kLCBNYXJrZWRUZXh0OjpIaWdobGlnaHQsIG51bGxwdHIsIGhpZ2hsaWdodC5r
ZXkgfSk7CisgICAgICAgICAgICBpZiAocmVuZGVyU3R5bGUtPnRleHREZWNvcmF0aW9uc0luRWZm
ZWN0KCkuaXNFbXB0eSgpICYmIHBoYXNlID09IFRleHRQYWludFBoYXNlOjpEZWNvcmF0aW9uKQor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgZm9yIChhdXRvJiByYW5nZURh
dGEgOiBoaWdobGlnaHQudmFsdWUtPnJhbmdlc0RhdGEoKSkgeworICAgICAgICAgICAgICAgIGlm
ICghaGlnaGxpZ2h0RGF0YS5zZXRSZW5kZXJSYW5nZShyYW5nZURhdGEpKQorICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIGF1dG8gW2hpZ2hsaWdodFN0YXJ0
LCBoaWdobGlnaHRFbmRdID0gaGlnaGxpZ2h0U3RhcnRFbmQoaGlnaGxpZ2h0RGF0YSk7CisgICAg
ICAgICAgICAgICAgaWYgKGhpZ2hsaWdodFN0YXJ0IDwgaGlnaGxpZ2h0RW5kKQorICAgICAgICAg
ICAgICAgICAgICBtYXJrZWRUZXh0cy5hcHBlbmQoeyBoaWdobGlnaHRTdGFydCwgaGlnaGxpZ2h0
RW5kLCBNYXJrZWRUZXh0OjpIaWdobGlnaHQsIG51bGxwdHIsIGhpZ2hsaWdodC5rZXkgfSk7Cisg
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRT
KQorICAgIGlmIChhdXRvIGFwcEhpZ2hsaWdodFJlZ2lzdGVyID0gcmVuZGVyZXIoKS5kb2N1bWVu
dCgpLmFwcEhpZ2hsaWdodFJlZ2lzdGVySWZFeGlzdHMoKSkgeworICAgICAgICBmb3IgKGF1dG8m
IGhpZ2hsaWdodCA6IGFwcEhpZ2hsaWdodFJlZ2lzdGVyLT5tYXAoKSkgeworICAgICAgICAgICAg
Zm9yIChhdXRvJiByYW5nZURhdGEgOiBoaWdobGlnaHQudmFsdWUtPnJhbmdlc0RhdGEoKSkgewor
ICAgICAgICAgICAgICAgIGlmICghaGlnaGxpZ2h0RGF0YS5zZXRSZW5kZXJSYW5nZShyYW5nZURh
dGEpKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIGF1
dG8gW2hpZ2hsaWdodFN0YXJ0LCBoaWdobGlnaHRFbmRdID0gaGlnaGxpZ2h0U3RhcnRFbmQoaGln
aGxpZ2h0RGF0YSk7CisgICAgICAgICAgICAgICAgaWYgKGhpZ2hsaWdodFN0YXJ0IDwgaGlnaGxp
Z2h0RW5kKQorICAgICAgICAgICAgICAgICAgICBtYXJrZWRUZXh0cy5hcHBlbmQoeyBoaWdobGln
aHRTdGFydCwgaGlnaGxpZ2h0RW5kLCBNYXJrZWRUZXh0OjpBcHBIaWdobGlnaHQgfSk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKICAgICByZXR1cm4gbWFya2VkVGV4
dHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9NYXJrZWRUZXh0
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWFya2VkVGV4dC5oCmluZGV4IDczYzA2MjEx
ZmU0YWE0MzMyYTJiODI4NDAxYzljYWQxOWYwOTFkMjkuLmU3OTc4YTY0Y2M3YjAxMWY2MDgzOWIz
ZjBmN2I1ZTViMGNiODc4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9N
YXJrZWRUZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL01hcmtlZFRleHQuaApA
QCAtNDIsNiArNDIsOSBAQCBzdHJ1Y3QgTWFya2VkVGV4dCB7CiAgICAgICAgIFRleHRNYXRjaCwK
ICAgICAgICAgRGljdGF0aW9uQWx0ZXJuYXRpdmVzLAogICAgICAgICBIaWdobGlnaHQsCisjaWYg
RU5BQkxFKEFQUF9ISUdITElHSFRTKQorICAgICAgICBBcHBIaWdobGlnaHQsCisjZW5kaWYKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICAgICAvLyBGSVhNRTogU2VlIDxyZGFyOi8vcHJv
YmxlbS84OTMzMzUyPi4gQWxzbywgcmVtb3ZlIHRoZSBQTEFURk9STShJT1NfRkFNSUxZKS1ndWFy
ZC4KICAgICAgICAgRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlcywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmluZGV4IDI2YzIzNjEyNzQwNTZmYWUw
ODZjNTk1Yzg4ZmQ5ZmE5MTZiNGQ3MDcuLjFmZDcwZGUzMTllYWY4MjYzNjgxYTg5NTQxNTRiZWYz
M2EwM2JkOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBs
YWNlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNw
cApAQCAtMTQyLDE3ICsxNDIsMzYgQEAgaW5saW5lIHN0YXRpYyBib29sIGRyYWdnZWRDb250ZW50
Q29udGFpbnNSZXBsYWNlZEVsZW1lbnQoY29uc3QgVmVjdG9yPFJlbmRlcmVkRG8KIENvbG9yIFJl
bmRlclJlcGxhY2VkOjpjYWxjdWxhdGVIaWdobGlnaHRDb2xvcigpIGNvbnN0CiB7CiAgICAgSGln
aGxpZ2h0RGF0YSBoaWdobGlnaHREYXRhOwotICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogZG9j
dW1lbnQoKS5oaWdobGlnaHRSZWdpc3RlcigpLm1hcCgpKSB7Ci0gICAgICAgIGZvciAoYXV0byYg
cmFuZ2VEYXRhIDogaGlnaGxpZ2h0LnZhbHVlLT5yYW5nZXNEYXRhKCkpIHsKLSAgICAgICAgICAg
IGlmICghaGlnaGxpZ2h0RGF0YS5zZXRSZW5kZXJSYW5nZShyYW5nZURhdGEpKQotICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBhdXRvIHN0YXRlID0g
aGlnaGxpZ2h0RGF0YS5oaWdobGlnaHRTdGF0ZUZvclJlbmRlcmVyKCp0aGlzKTsKLSAgICAgICAg
ICAgIGlmICghaXNIaWdobGlnaHRlZChzdGF0ZSwgaGlnaGxpZ2h0RGF0YSkpCi0gICAgICAgICAg
ICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIGlmIChhdXRvIGhpZ2hsaWdodFN0eWxlID0g
Z2V0VW5jYWNoZWRQc2V1ZG9TdHlsZSh7IFBzZXVkb0lkOjpIaWdobGlnaHQsIGhpZ2hsaWdodC5r
ZXkgfSwgJnN0eWxlKCkpKQotICAgICAgICAgICAgICAgIHJldHVybiBoaWdobGlnaHRTdHlsZS0+
YmFja2dyb3VuZENvbG9yKCk7CisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorICAgIGlmIChh
dXRvIGFwcEhpZ2hsaWdodFJlZ2lzdGVyID0gZG9jdW1lbnQoKS5hcHBIaWdobGlnaHRSZWdpc3Rl
cklmRXhpc3RzKCkpIHsKKyAgICAgICAgZm9yIChhdXRvJiBoaWdobGlnaHQgOiBhcHBIaWdobGln
aHRSZWdpc3Rlci0+bWFwKCkpIHsKKyAgICAgICAgICAgIGZvciAoYXV0byYgcmFuZ2VEYXRhIDog
aGlnaGxpZ2h0LnZhbHVlLT5yYW5nZXNEYXRhKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWhp
Z2hsaWdodERhdGEuc2V0UmVuZGVyUmFuZ2UocmFuZ2VEYXRhKSkKKyAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7CisKKyAgICAgICAgICAgICAgICBhdXRvIHN0YXRlID0gaGlnaGxpZ2h0RGF0
YS5oaWdobGlnaHRTdGF0ZUZvclJlbmRlcmVyKCp0aGlzKTsKKyAgICAgICAgICAgICAgICBpZiAo
IWlzSGlnaGxpZ2h0ZWQoc3RhdGUsIGhpZ2hsaWdodERhdGEpKQorICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRp
b25zPiBzdHlsZUNvbG9yT3B0aW9ucyA9IHsgU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVt
QXBwZWFyYW5jZSB9OworICAgICAgICAgICAgICAgIHJldHVybiB0aGVtZSgpLmFwcEhpZ2hsaWdo
dENvbG9yKHN0eWxlQ29sb3JPcHRpb25zKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
IH0KKyNlbmRpZgorICAgIGlmIChhdXRvIGhpZ2hsaWdodFJlZ2lzdGVyID0gZG9jdW1lbnQoKS5o
aWdobGlnaHRSZWdpc3RlcklmRXhpc3RzKCkpIHsKKyAgICAgICAgZm9yIChhdXRvJiBoaWdobGln
aHQgOiBoaWdobGlnaHRSZWdpc3Rlci0+bWFwKCkpIHsKKyAgICAgICAgICAgIGZvciAoYXV0byYg
cmFuZ2VEYXRhIDogaGlnaGxpZ2h0LnZhbHVlLT5yYW5nZXNEYXRhKCkpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoIWhpZ2hsaWdodERhdGEuc2V0UmVuZGVyUmFuZ2UocmFuZ2VEYXRhKSkKKyAgICAg
ICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAgICBhdXRvIHN0YXRlID0g
aGlnaGxpZ2h0RGF0YS5oaWdobGlnaHRTdGF0ZUZvclJlbmRlcmVyKCp0aGlzKTsKKyAgICAgICAg
ICAgICAgICBpZiAoIWlzSGlnaGxpZ2h0ZWQoc3RhdGUsIGhpZ2hsaWdodERhdGEpKQorICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIGlmIChhdXRvIGhpZ2hs
aWdodFN0eWxlID0gZ2V0VW5jYWNoZWRQc2V1ZG9TdHlsZSh7IFBzZXVkb0lkOjpIaWdobGlnaHQs
IGhpZ2hsaWdodC5rZXkgfSwgJnN0eWxlKCkpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
aGlnaGxpZ2h0U3R5bGUtPmJhY2tncm91bmRDb2xvcigpOworICAgICAgICAgICAgfQogICAgICAg
ICB9CiAgICAgfQogICAgIHJldHVybiBDb2xvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZS5jcHAKaW5kZXggMDRhOTMwYzgwYTdjNzhkYzAxMDgwNTI5MTUwMzI5ZjNhYTNh
MTMyYi4uNWY4YzkxYjM4ZGZlOTI5MmMxMWNhNTc5OTBjNTY0ZTE4YzMyMmYxMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCkBAIC0xMzQ4LDYgKzEzNDgsMjEgQEAg
Q29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb24KICAgICByZXR1cm4gQ29sb3I6OnllbGxvdzsKIH0KIAor
I2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKK0NvbG9yIFJlbmRlclRoZW1lOjphcHBIaWdobGln
aHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKK3sK
KyAgICBhdXRvJiBjYWNoZSA9IGNvbG9yQ2FjaGUob3B0aW9ucyk7CisgICAgaWYgKCFjYWNoZS5h
cHBIaWdobGlnaHRDb2xvci5pc1ZhbGlkKCkpCisgICAgICAgIGNhY2hlLmFwcEhpZ2hsaWdodENv
bG9yID0gdHJhbnNmb3JtU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKHBsYXRmb3JtQXBwSGlnaGxp
Z2h0Q29sb3Iob3B0aW9ucyksIG9wdGlvbnMpOworICAgIHJldHVybiBjYWNoZS5hcHBIaWdobGln
aHRDb2xvcjsKK30KKworQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29s
b3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdAoreworICAgIHJldHVybiBD
b2xvcjo6eWVsbG93OworfQorI2VuZGlmCisKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogCiBD
b2xvciBSZW5kZXJUaGVtZTo6dGFwSGlnaGxpZ2h0Q29sb3IoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWUuaAppbmRleCBiZTE5OTAzZDVhYjY0NmZhZTk0MmNjMjI5ZDQxYzE0OGU4
ZDRlN2Y1Li40ZmZmMjlkY2MwYWI3MTVlMTVjY2M5ZmY3MDBhNWVlODBjYmYyMWM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaApAQCAtMTU3LDYgKzE1Nyw5IEBAIHB1Ymxp
YzoKICAgICAvLyBIaWdobGlnaHRpbmcgY29sb3IgZm9yIHNlYXJjaCBtYXRjaGVzLgogICAgIENv
bG9yIHRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9u
cz4pIGNvbnN0OwogCisgICAgLy8gRGVmYXVsdCBoaWdobGlnaHRpbmcgY29sb3IgZm9yIGFwcCBo
aWdobGlnaHRzLgorICAgIENvbG9yIGFwcEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPikgY29uc3Q7CisKICAgICB2aXJ0dWFsIENvbG9yIGRpc2FibGVkVGV4dENv
bG9yKGNvbnN0IENvbG9yJiB0ZXh0Q29sb3IsIGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5kQ29sb3Ip
IGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgQ29sb3IgZm9jdXNSaW5nQ29sb3IoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdDsKQEAgLTI3NSw3ICsyNzgsOSBAQCBwcm90
ZWN0ZWQ6CiAgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlTGlzdEJveFNlbGVjdGlv
bkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0Owog
CiAgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwotCisjaWYgRU5BQkxFKEFQUF9ISUdI
TElHSFRTKQorICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OworI2VuZGlmCiAgICAgdmlydHVhbCBi
b29sIHN1cHBvcnRzU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9ycyhPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgc3Vw
cG9ydHNMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9ycyhPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIApAQCAtNDI3LDYgKzQzMiwxMCBA
QCBwcm90ZWN0ZWQ6CiAgICAgICAgIENvbG9yIGluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcjsKIAogICAgICAgICBDb2xvciB0ZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3I7CisK
KyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgICAgIENvbG9yIGFwcEhpZ2hsaWdodENv
bG9yOworI2VuZGlmCiAgICAgfTsKIAogICAgIHZpcnR1YWwgQ29sb3JDYWNoZSYgY29sb3JDYWNo
ZShPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaAppbmRleCBhZDAyZmU3YjhkM2UxNzUxY2I3NmVlZDE1
NGIyMjdhYTE1YmZkYzRiLi44ZjBkMTQ1ZDcxOGI5YjhkM2FmYjNlMTQ2ZDczMDZhOTI1YzE3Yjk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaApAQCAtMTIxLDYg
KzEyMSwxMCBAQCBwcml2YXRlOgogICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBvdmVy
cmlkZTsKICAgICBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNv
bG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CiAKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMp
CisgICAgQ29sb3IgcGxhdGZvcm1BcHBIaWdobGlnaHRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOworI2VuZGlmCisKICNpZiBFTkFCTEUoVE9VQ0hfRVZF
TlRTKQogICAgIENvbG9yIHBsYXRmb3JtVGFwSGlnaGxpZ2h0Q29sb3IoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBTUkdCQTx1aW50OF90PiB7IDI2LCAyNiwgMjYsIDc3IH0gOyB9CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQppbmRleCBkY2ViY2U0
ODVlMzYyMzU4Yzg0Y2U0MjBhZDg2ZjRhMzI2NDI0NTliLi5hZjI4ZTFiMTJjMzBlODAzOGUyMGIx
YTE1ZTY5NjhhOWJjODlhZGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lSU9TLm1tCkBAIC0xMTY4LDYgKzExNjgsMTQgQEAgQ29sb3IgUmVuZGVyVGhlbWVJT1M6OnBs
YXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb24K
ICAgICByZXR1cm4gc3lzdGVtRm9jdXNSaW5nQ29sb3IoKTsKIH0KIAorI2lmIEVOQUJMRShBUFBf
SElHSExJR0hUUykKK0NvbG9yIFJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUFwcEhpZ2hsaWdodENv
bG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK3sKKyAgICAvLyBGSVhN
RTogZXhwb3NlIHRoZSByZWFsIHZhbHVlIGZyb20gVUlLaXQuCisgICAgcmV0dXJuIFNSR0JBPHVp
bnQ4X3Q+IHsgMjU1LCAyMzgsIDE5MCB9OworfQorI2VuZGlmCisKIGJvb2wgUmVuZGVyVGhlbWVJ
T1M6OnNob3VsZEhhdmVTcGluQnV0dG9uKGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQmKSBjb25zdAog
ewogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
TWFjLmgKaW5kZXggNGY1Nzk2NTkzNjllYzRiNmU5MDM0Zjc5MGNmZjJlMDI5YjVjNGUxNS4uMWQ5
ZjdkM2UzM2ZhZTAwYzViNzI0ZGI4YmEwZmZiM2Q3ZDczOTA5MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKQEAgLTY2LDYgKzY2LDkgQEAgcHVibGljOgogICAg
IENvbG9yIHBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CiAgICAgQ29sb3IgcGxh
dGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0
IGZpbmFsOwogICAgIENvbG9yIHBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CisjaWYgRU5BQkxFKEFQUF9I
SUdITElHSFRTKQorICAgIENvbG9yIHBsYXRmb3JtQXBwSGlnaGxpZ2h0Q29sb3IoT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKKyNlbmRpZgogCiAgICAgU2Nyb2xs
YmFyQ29udHJvbFNpemUgc2Nyb2xsYmFyQ29udHJvbFNpemVGb3JQYXJ0KENvbnRyb2xQYXJ0KSBm
aW5hbCB7IHJldHVybiBTY3JvbGxiYXJDb250cm9sU2l6ZTo6U21hbGw7IH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IDFhNTUwMzlkODhlMGNmOTNm
NjI4NzZiNTI3MmNlYzg5NzI2NjUyZWMuLjk5MmI4MWRjOGNhOGNmNGU1NjljOGRhYWVjZmIxYzhl
YWU4YTY1ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0K
QEAgLTQ3Niw2ICs0NzYsMTQgQEAgQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtVGV4dFNl
YXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHQKICAgICByZXR1cm4g
Y29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciBmaW5kSGlnaGxpZ2h0Q29sb3JdKTsKIH0KIAorI2lm
IEVOQUJMRShBUFBfSElHSExJR0hUUykKK0NvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFw
cEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK3sK
KyAgICAvLyBGSVhNRTogZXhwb3NlIHRoZSByZWFsIHZhbHVlIGZyb20gQXBwS2l0LgorICAgIHJl
dHVybiBTUkdCQTx1aW50OF90PiB7IDI1NSwgMjM4LCAxOTAgfTsKK30KKyNlbmRpZgorCiBzdGF0
aWMgU1JHQkE8dWludDhfdD4gbWVudUJhY2tncm91bmRDb2xvcigpCiB7CiAgICAgUmV0YWluUHRy
PE5TQml0bWFwSW1hZ2VSZXA+IG9mZnNjcmVlblJlcCA9IGFkb3B0TlMoW1tOU0JpdG1hcEltYWdl
UmVwIGFsbG9jXSBpbml0V2l0aEJpdG1hcERhdGFQbGFuZXM6bmlsIHBpeGVsc1dpZGU6MSBwaXhl
bHNIaWdoOjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NyZWF0ZU5ld0dyb3Vw
Rm9ySGlnaGxpZ2h0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DcmVhdGVOZXdHcm91cEZvckhp
Z2hsaWdodC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5ZGI0YjY4YzQ1ZDhiZjBlNjkwMjM4M2UwZjhhYTI3ODM3
NjhhNjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DcmVhdGVOZXdH
cm91cEZvckhpZ2hsaWdodC5oCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2VudW0gY2xhc3MgQ3JlYXRlTmV3R3JvdXBG
b3JIaWdobGlnaHQgOiBib29sIHsgTm8sIFllcyB9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNv
Y29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2Eu
bW0KaW5kZXggMjlmYTg5NTFkYWVmMzYzZWNlY2RmOTAyY2JlNzI5ZTA2ZWNiZWViOC4uZjBmNDdh
ZGNhMjIwZWE4MjQ3ZTg5ZDkwMTZiM2FiZGZmNGNjM2Y0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KQEAgLTM4LDYgKzM4LDcg
QEAKICNpbXBvcnQgIlNhZmVCcm93c2luZ1NQSS5oIgogI2ltcG9ydCAiU2FmZUJyb3dzaW5nV2Fy
bmluZy5oIgogI2ltcG9ydCAiU2hhcmVkQnVmZmVyQ29weS5oIgorI2ltcG9ydCAiV2ViUGFnZS5o
IgogI2ltcG9ydCAiV2ViUGFnZU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJQYXN0ZWJvYXJkUHJv
eHkuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgpAQCAtNTQzLDYgKzU0NCwxNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6YWRkQWN0aXZpdHlTdGF0ZVVwZGF0ZUNvbXBsZXRpb25IYW5kbGVy
KENvbXBsZXRpb25IYW5kbGVyPHZvaQogICAgIG1fYWN0aXZpdHlTdGF0ZVVwZGF0ZUNhbGxiYWNr
cy5hcHBlbmQoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCisjaWYgRU5BQkxFKEFQ
UF9ISUdITElHSFRTKQordm9pZCBXZWJQYWdlUHJveHk6OmNyZWF0ZUFwcEhpZ2hsaWdodEluU2Vs
ZWN0ZWRSYW5nZShDcmVhdGVOZXdHcm91cEZvckhpZ2hsaWdodCBjcmVhdGVOZXdHcm91cCkKK3sK
KyAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHNl
bmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNyZWF0ZUFwcEhpZ2hsaWdodEluU2VsZWN0ZWRSYW5nZShj
cmVhdGVOZXdHcm91cCkpOworfQorCisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
ICN1bmRlZiBNRVNTQUdFX0NIRUNLX0NPTVBMRVRJT04KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCmluZGV4IDBmODc0Mjg5OTBkZTAwMTM0MzY3MmUyNDk0ODk1YWQxM2Q0
MzMwMjguLjk4MTI2NWQzOTkwMjE4MWFkMGVjZTVmZjkwMGIyMjJjMDE4NDgwMDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTE3LDYgKzExNyw3IEBACiAj
aW5jbHVkZSAiV2ViTmF2aWdhdGlvblN0YXRlLmgiCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94
eS5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZURlYnVnZ2FibGUuaCIKICNpbmNsdWRlICJXZWJQ
YWdlR3JvdXAuaCIKQEAgLTY2MjEsNiArNjYyMiwxNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29u
dGV4dE1lbnVJdGVtU2VsZWN0ZWQoY29uc3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYgaXRlbSkK
ICAgICAgICAgVGV4dENoZWNrZXI6OnRvZ2dsZVNwZWxsaW5nVUlJc1Nob3dpbmcoKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgaWYgKGl0
ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnQWRkSGlnaGxpZ2h0VG9OZXdHcm91cCkg
eworICAgICAgICBjcmVhdGVBcHBIaWdobGlnaHRJblNlbGVjdGVkUmFuZ2UoQ3JlYXRlTmV3R3Jv
dXBGb3JIaWdobGlnaHQ6Olllcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGl0
ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnQWRkSGlnaGxpZ2h0VG9DdXJyZW50R3Jv
dXApIHsKKyAgICAgICAgY3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJhbmdlKENyZWF0ZU5l
d0dyb3VwRm9ySGlnaGxpZ2h0OjpObyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYK
ICAgICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5n
IHx8IGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcpCiAg
ICAgICAgICsrbV9wZW5kaW5nTGVhcm5Pcklnbm9yZVdvcmRNZXNzYWdlQ291bnQ7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggODc5ZjczMmIxMWNiMTIzOTczODY1
OGU4ZTU4ZmI4N2M1MDM0ZjJiOC4uMzFjODQ2NDNkYWZiZjFhMTk2OTAxMzIzNTkwMDU2NmVkMTIw
ODYxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTI5LDYgKzI5
LDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiQ29udGVudEFzU3RyaW5n
SW5jbHVkZXNDaGlsZEZyYW1lcy5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51Q29udGV4dERhdGEu
aCIKKyNpbmNsdWRlICJDcmVhdGVOZXdHcm91cEZvckhpZ2hsaWdodC5oIgogI2luY2x1ZGUgIkRv
d25sb2FkSUQuaCIKICNpbmNsdWRlICJEcmFnQ29udHJvbGxlckFjdGlvbi5oIgogI2luY2x1ZGUg
IkVkaXRpbmdSYW5nZS5oIgpAQCAtMzYzLDYgKzM2NCw3IEBAIHN0cnVjdCBXZWJTcGVlY2hTeW50
aGVzaXNWb2ljZTsKIHN0cnVjdCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVyczsKIHN0cnVjdCBVc2Vy
TWVzc2FnZTsKIAorZW51bSBjbGFzcyBDcmVhdGVOZXdHcm91cEZvckhpZ2hsaWdodCA6IGJvb2w7
CiBlbnVtIGNsYXNzIE5lZ290aWF0ZWRMZWdhY3lUTFMgOiBib29sOwogZW51bSBjbGFzcyBQcm9j
ZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IDogYm9vbDsKIGVudW0gY2xhc3MgU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uRGVjaXNpb24gOiBib29sOwpAQCAtMTgyMyw2ICsxODI1LDEwIEBAIHB1
YmxpYzoKICAgICB2b2lkIHJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb24oY29uc3Qg
V2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25EZWNpc2lvbik+JiYpOwogICAgIHZvaWQgcmVxdWVzdFNwZWVjaFJl
Y29nbml0aW9uUGVybWlzc2lvbkJ5RGVmYXVsdEFjdGlvbihjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogCisjaWYgRU5BQkxF
KEFQUF9ISUdITElHSFRTKQorICAgIHZvaWQgY3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJh
bmdlKENyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0KTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAg
IFdlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5JiwgUmVmPEFQSTo6UGFn
ZUNvbmZpZ3VyYXRpb24+JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbQppbmRleCBjNTE0N2Y0MzA0NzkxYWNmNjYzZDIxNDU5YTJlNjMxYTQzMzZkNzRiLi5i
Y2Y0MzA2YjhlYmFhNDdmMWZkODEyYWRmNTAwNDgxZjljOTU0NjZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
QEAgLTMwLDYgKzMwLDcgQEAKIAogI2ltcG9ydCAiQVBJVUlDbGllbnQuaCIKICNpbXBvcnQgIkNv
bXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIuaCIKKyNpbXBvcnQgIkNyZWF0ZU5ld0dyb3VwRm9y
SGlnaGxpZ2h0LmgiCiAjaW1wb3J0ICJEb2N1bWVudEVkaXRpbmdDb250ZXh0LmgiCiAjaW1wb3J0
ICJJbnB1dFZpZXdVcGRhdGVEZWZlcnJlci5oIgogI2ltcG9ydCAiSW5zZXJ0VGV4dE9wdGlvbnMu
aCIKQEAgLTg2MTUsMTIgKzg2MTYsMTIgQEAgLSAodm9pZClzZXR1cEFwcEhpZ2hsaWdodE1lbnVz
CiAKIC0gKHZvaWQpY3JlYXRlSGlnaGxpZ2h0SW5DdXJyZW50R3JvdXBXaXRoUmFuZ2U6KGlkKXNl
bmRlcgogewotICAgIC8vIEZJWE1FOiBBZGQgSGlnaGxpZ2h0IGxvZ2ljLgorICAgIF9wYWdlLT5j
cmVhdGVBcHBIaWdobGlnaHRJblNlbGVjdGVkUmFuZ2UoV2ViS2l0OjpDcmVhdGVOZXdHcm91cEZv
ckhpZ2hsaWdodDo6Tk8pOwogfQogCiAtICh2b2lkKWNyZWF0ZUhpZ2hsaWdodEluTmV3R3JvdXBX
aXRoUmFuZ2U6KGlkKXNlbmRlcgogewotICAgIC8vIEZJWE1FOiBBZGQgSGlnaGxpZ2h0IGxvZ2lj
LgorICAgIF9wYWdlLT5jcmVhdGVBcHBIaWdobGlnaHRJblNlbGVjdGVkUmFuZ2UoV2ViS2l0OjpD
cmVhdGVOZXdHcm91cEZvckhpZ2hsaWdodDo6WUVTKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyMTViNjAwZGVk
ZjY2Yzg0Njk0NmViZDAwZDU5NjI2YTExZDdiZTE5Li5lZDQ0MmNkMGI3ZjhhNDhjNDQ0YzYyOGVm
OTVkODkzMDUxNjgzZTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTkyOCw2ICs5MjgsNyBAQAogCQk0MUZBQkQyQTFGNERFMDAxMDA2
QTZDOTcgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkFCRDI4MUY0RERGREMwMDZBNkM5NyAvKiBDYWNo
ZVN0b3JhZ2VFbmdpbmVDYWNoZS5oICovOyB9OwogCQk0MUZBRjVGNTFFM0MwNjQ5MDAxQUU2Nzgg
LyogV2ViUlRDUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxRkFGNUY0MUUzQzA2NDEwMDFBRTY3OCAvKiBXZWJSVENSZXNvbHZlci5oICov
OyB9OwogCQk0MUZBRjVGODFFM0MxMDIxMDAxQUU2NzggLyogTGliV2ViUlRDUmVzb2x2ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkFGNUY2MUUz
QzBCNDcwMDFBRTY3OCAvKiBMaWJXZWJSVENSZXNvbHZlci5oICovOyB9OworCQk0NDMwRDAxNzI1
NzZEOUREMDA0NkQ0MDEgLyogQ3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MzBEMDE2MjU3NkQ5REMwMDQ2
RDQwMSAvKiBDcmVhdGVOZXdHcm91cEZvckhpZ2hsaWdodC5oICovOyB9OwogCQk0NDU5OTg0MjIy
ODMzRTg3MDBFNjEzNzMgLyogU3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDU5OTg0MTIyODMzRTYwMDBF
NjEzNzMgLyogU3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlLmggKi87IH07CiAJCTQ0NkRDNjRD
MjRBMkQ4RTUwMDYxRjM5MCAvKiBQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQ2REM2NEIyNEEy
RDhBRDAwNjFGMzkwIC8qIFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLmggKi87IH07
CiAJCTQ0ODI3MzQ3MjQ1MjhGNjAwMEE5NTQ5MyAvKiBDb2NvYUltYWdlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDgyNzM0NjI0NTI4RjYwMDBBOTU0
OTMgLyogQ29jb2FJbWFnZS5oICovOyB9OwpAQCAtMzYwNSw2ICszNjA2LDcgQEAKIAkJNDFGQ0Q2
QkQyM0NFMDQzRjAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDFGQ0Q2QkUyM0NFMDQ0MDAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxRkNENkJGMjNDRTA0NDAwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDQzMEQwMTYyNTc2RDlEQzAwNDZENDAxIC8qIENyZWF0ZU5ld0dy
b3VwRm9ySGlnaGxpZ2h0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyZWF0
ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0
NTBBRUJGMURDM0ZBRTUwMDk5NDNGMiAvKiBTaGFyZWRNZW1vcnlDb2NvYS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFyZWRNZW1vcnlDb2NvYS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTk5ODQxMjI4MzNFNjAwMEU2MTM3MyAvKiBTeW50
aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3ludGhldGljRWRpdGlu
Z0NvbW1hbmRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NkRDNjRCMjRB
MkQ4QUQwMDYxRjM5MCAvKiBQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRp
Zmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjE4Myw2ICs2MTg1LDcgQEAK
IAkJCQk1MTA2RDdCRjE4QkRCRTczMDAwQUIxNjYgLyogQ29udGV4dE1lbnVDb250ZXh0RGF0YS5j
cHAgKi8sCiAJCQkJNTEwNkQ3QzAxOEJEQkU3MzAwMEFCMTY2IC8qIENvbnRleHRNZW51Q29udGV4
dERhdGEuaCAqLywKIAkJCQk5OUY2NDJEMjFGQUJFMzc4MDA5NjIxRTkgLyogQ29vcmRpbmF0ZVN5
c3RlbS5oICovLAorCQkJCTQ0MzBEMDE2MjU3NkQ5REMwMDQ2RDQwMSAvKiBDcmVhdGVOZXdHcm91
cEZvckhpZ2hsaWdodC5oICovLAogCQkJCTk5MDM2QUU4MjNBOTcwODcwMDAwQjA2QSAvKiBEZWJ1
Z2dhYmxlSW5mb0RhdGEuY3BwICovLAogCQkJCTk5MDM2QUU3MjNBOTcwODcwMDAwQjA2QSAvKiBE
ZWJ1Z2dhYmxlSW5mb0RhdGEuaCAqLywKIAkJCQkwRjE4OUNBQjI0NzQ5RjJGMDBFNThEODEgLyog
RGlzcGxheUxpbmtPYnNlcnZlcklELmggKi8sCkBAIC0xMTA4OSw2ICsxMTA5Miw3IEBACiAJCQkJ
NTEwNkQ3QzQxOEJEQkU3MzAwMEFCMTY2IC8qIENvbnRleHRNZW51Q29udGV4dERhdGEuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTM3QzIxQ0FFMUU5OTRDMEMwMDI5RDVGOSAvKiBDb3JlUHJlZGljdGlv
blNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjg3OEI2MTUxMzM0MjhEQzAwNjg4OEU5IC8qIENv
cnJlY3Rpb25QYW5lbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDQzMEQwMTcyNTc2RDlERDAwNDZE
NDAxIC8qIENyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1
NzU5N0VCRDIxODE4NDkwMDAzN0Y5MjQgLyogQ3RhcEF1dGhlbnRpY2F0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU3NTk3RUI5MjE4MTFEOUEwMDM3RjkyNCAvKiBDdGFwSGlkRHJpdmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1NzBEQUFDQTIzMDM4NUZEMDBFOEZDMDQgLyogQ3RhcE5mY0RyaXZl
ci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCmluZGV4IDk1NzBlYzNiYTA0YWUzYTcwMzgzNDk1ODgwZDAzYjIyNWJkNjFkMmIu
Ljk5ZjY0NzVhMTVlODJmZWZhNmUxZjUzZTkwOWU5ODBhNjU3NWJjNTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xNTYsNiArMTU2LDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0RhdGFUcmFuc2Zlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGF0
YWJhc2VNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EZXByZWNhdGVkR2xvYmFsU2V0dGlu
Z3MuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9E
b2N1bWVudEZyYWdtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmg+CkBAIC0xODYsNiAr
MTg3LDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxQbHVnSW5FbGVtZW50Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9IVE1MU2VsZWN0RWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hpZ2hsaWdodC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvSGlnaGxpZ2h0UmVnaXN0ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0hpc3RvcnlDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvSGl0VGVzdFJlc3VsdC5oPgpAQCAtMjI5LDYgKzIzMiw3IEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhZG93Um9v
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9TdGF0aWNSYW5nZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3R5bGVQcm9wZXJ0aWVzLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TdWJmcmFtZUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3Vi
c3RpdHV0ZURhdGEuaD4KQEAgLTcwMzMsNiArNzAzNywyNiBAQCBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkmIFdlYlBhZ2U6OmVuc3VyZVJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSgpCiB9
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKK2Jvb2wgV2ViUGFnZTo6Y3Jl
YXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJhbmdlKENyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0
IGNyZWF0ZU5ld0dyb3VwKQoreworICAgIGF1dG8gZG9jdW1lbnQgPSBtYWtlUmVmUHRyKG1fcGFn
ZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCkuZG9jdW1lbnQoKSk7CisK
KyAgICBhdXRvIGZyYW1lID0gbWFrZVJlZlB0cihkb2N1bWVudC0+ZnJhbWUoKSk7CisgICAgaWYg
KCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byBzZWxlY3Rpb25SYW5n
ZSA9IGZyYW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS50b05vcm1hbGl6ZWRSYW5nZSgpOwor
ICAgIGlmICghc2VsZWN0aW9uUmFuZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGRv
Y3VtZW50LT5hcHBIaWdobGlnaHRSZWdpc3RlcigpLmFkZEFwcEhpZ2hsaWdodChTdGF0aWNSYW5n
ZTo6Y3JlYXRlKHNlbGVjdGlvblJhbmdlLnZhbHVlKCkpKTsKKworICAgIHJldHVybiB0cnVlOwor
fQorI2VuZGlmCisKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBSRUxFQVNFX0xP
R19JRl9BTExPV0VECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
aW5kZXggYTc0OGJlMjEzNWUzZDIyYjQwZGIwNWExNjNhZWUwMGFkNTM0MjRkMS4uODZlZjUxNGMw
OWU1NGIyM2U3MDlhNWY3YzI1ZDE0ODhlMjJlOWUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkFQSU9i
amVjdC5oIgogI2luY2x1ZGUgIkNhbGxiYWNrSUQuaCIKICNpbmNsdWRlICJDb250ZW50QXNTdHJp
bmdJbmNsdWRlc0NoaWxkRnJhbWVzLmgiCisjaW5jbHVkZSAiQ3JlYXRlTmV3R3JvdXBGb3JIaWdo
bGlnaHQuaCIKICNpbmNsdWRlICJEb3dubG9hZElELmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFJ
bmZvLmgiCiAjaW5jbHVkZSAiRWRpdGluZ1JhbmdlLmgiCkBAIC0xMzY2LDYgKzEzNjcsMTAgQEAg
cHVibGljOgogICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgZW5zdXJlUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5KCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShBUFBfSElHSExJR0hU
UykKKyAgICBib29sIGNyZWF0ZUFwcEhpZ2hsaWdodEluU2VsZWN0ZWRSYW5nZShDcmVhdGVOZXdH
cm91cEZvckhpZ2hsaWdodCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBXZWJQYWdlKFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgppbmRleCAxNTVmMWY0YTRhOTYyODllMTA4NzFmMjJhNTk1NTA3MGVkMGVlNThkLi44YjhjOTUz
ZmQ4ZWZjOWQ2MmZjMzUzOWU0MzE0NGFjZjQxZTY3ZmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTYxNiw0ICs2
MTYsOSBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJL
aXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogCiAgICAgU2V0SGFzUmVzb3VyY2VMb2Fk
Q2xpZW50KGJvb2wgaGFzKQogICAgIFNldENhblVzZUNyZWRlbnRpYWxTdG9yYWdlKGJvb2wgY2Fu
VXNlKQorCisjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQorICAgIENyZWF0ZUFwcEhpZ2hsaWdo
dEluU2VsZWN0ZWRSYW5nZShlbnVtOmJvb2wgV2ViS2l0OjpDcmVhdGVOZXdHcm91cEZvckhpZ2hs
aWdodCBjcmVhdGVOZXdHcm91cCkKKyNlbmRpZgorCiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWUzNWQwMDM1ZDYzZDRiZDU2MmYzMmQ0Njky
ODZiOGEzZWNjNmM3Yy4uN2VlZTBiMzZjZjdjOTA5MGVkNmUyODVhZTRiMTA0ODgzNGRkNjE0ZSAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDIwLTExLTMwICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBs
ZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGFuZCBkcmF3IGFwcCBoaWdobGlnaHRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkzNjUKKworICAgICAg
ICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvTWFya2VkVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8
KToKKwogMjAyMC0xMS0xOSAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW21hY09TXSBJc3N1ZSBzYW5kYm94IGV4dGVuc2lvbiB0byBXZWIgSW5zcGVjdG9y
IHNlcnZpY2UKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9N
YXJrZWRUZXh0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9NYXJrZWRU
ZXh0LmNwcAppbmRleCA2YThlNTcyOTFiZjVkMDE2NzY4ZDhlMjkyZTJiOGM2N2FjMDA4NWZiLi43
ZmE2YWZhNmNmNWI4ZTRmMDc3MjljYjlhYWY5MDhlN2ZiZGMzNTkxIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTWFya2VkVGV4dC5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL01hcmtlZFRleHQuY3BwCkBAIC01Nyw2ICs1Nywx
MCBAQCBzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBvcywgTWFya2VkVGV4
dDo6VHlwZSB0eXBlKQogICAgICAgICByZXR1cm4gb3MgPDwgIlRleHRNYXRjaCI7CiAgICAgY2Fz
ZSBNYXJrZWRUZXh0OjpIaWdobGlnaHQ6CiAgICAgICAgIHJldHVybiBvcyA8PCAiSGlnaGxpZ2h0
IjsKKyNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCisgICAgY2FzZSBNYXJrZWRUZXh0OjpBcHBI
aWdobGlnaHQ6CisgICAgICAgIHJldHVybiBvcyA8PCAiQXBwSGlnaGxpZ2h0IjsKKyNlbmRpZgog
ICAgIGNhc2UgTWFya2VkVGV4dDo6VW5tYXJrZWQ6CiAgICAgICAgIHJldHVybiBvcyA8PCAiVW5t
YXJrZWQiOwogICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>