<?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>213875</bug_id>
          
          <creation_ts>2020-07-02 00:43:27 -0700</creation_ts>
          <short_desc>AX: Implement user action spec for Escape action</short_desc>
          <delta_ts>2020-07-06 17:09:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="chris fleizach">cfleizach</reporter>
          <assigned_to name="chris fleizach">cfleizach</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>darin</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1668174</commentid>
    <comment_count>0</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-07-02 00:43:27 -0700</bug_when>
    <thetext>User action events from Assistive Technology

To preserve the privacy of assistive technology users, events from assistive technology will typically cause a synthesised DOM event to be triggered. The events are determined by platform conventions and partially documented in the ARIA Authoring Practices Guide (APG).

dismiss or escape	all elements		Escape KeyboardEvent

https://github.com/WICG/aom/blob/gh-pages/explainer.md#user-action-events-from-assistive-technology</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668175</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-02 00:43:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/65022980&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668176</commentid>
    <comment_count>2</comment_count>
      <attachid>403350</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-07-02 00:46:56 -0700</bug_when>
    <thetext>Created attachment 403350
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668182</commentid>
    <comment_count>3</comment_count>
      <attachid>403352</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-07-02 01:15:54 -0700</bug_when>
    <thetext>Created attachment 403352
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668271</commentid>
    <comment_count>4</comment_count>
      <attachid>403373</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-07-02 09:37:53 -0700</bug_when>
    <thetext>Created attachment 403373
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668350</commentid>
    <comment_count>5</comment_count>
      <attachid>403393</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-07-02 13:28:10 -0700</bug_when>
    <thetext>Created attachment 403393
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668377</commentid>
    <comment_count>6</comment_count>
      <attachid>403402</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-07-02 15:07:14 -0700</bug_when>
    <thetext>Created attachment 403402
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668494</commentid>
    <comment_count>7</comment_count>
      <attachid>403442</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-07-02 23:51:13 -0700</bug_when>
    <thetext>Created attachment 403442
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668922</commentid>
    <comment_count>8</comment_count>
      <attachid>403442</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-05 13:33:15 -0700</bug_when>
    <thetext>Comment on attachment 403442
patch

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

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1100
&gt; +    // In case the keyboard event causes this element to be removed.
&gt; +    Ref&lt;AccessibilityObject&gt; protectedThis(*this);

This should be moved int dispatchSimulatedKeyboardUpDownEvent; that’s where the protection is needed, not here.

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1110
&gt; +bool AccessibilityNodeObject::dispatchSimulatedKeyboardUpDownEvent(KeyboardEvent::Init&amp; keyInit)

Should take a const&amp;

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1132
&gt;      Ref&lt;AccessibilityObject&gt; protectedThis(*this);

Can move this into dispatchSimulatedKeyboardUpDownEvent and remove it here.

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.h:32
&gt; +#include &quot;KeyboardEvent.h&quot;

This dependency is really unfortunate, but I suppose there’s no way to forward declare something from inside a base class?

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.h:195
&gt; +    bool performEscape() override;

final instead of override

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.h:196
&gt; +    bool dispatchSimulatedKeyboardUpDownEvent(KeyboardEvent::Init&amp;);

Argument should be const&amp;, not non-const&amp;.

&gt; Source/WebCore/accessibility/AccessibilityObject.h:481
&gt; +    bool performEscape() override { return false; }

final instead of override

&gt; Source/WebCore/accessibility/AccessibilityObjectInterface.h:910
&gt; +    virtual bool performEscape() = 0;

Seems like more of this should be named performDismissAction, and not use the word &quot;escape&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669096</commentid>
    <comment_count>9</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-07-06 12:34:41 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #8)
&gt; Comment on attachment 403442 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=403442&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1100
&gt; &gt; +    // In case the keyboard event causes this element to be removed.
&gt; &gt; +    Ref&lt;AccessibilityObject&gt; protectedThis(*this);
&gt; 
&gt; This should be moved int dispatchSimulatedKeyboardUpDownEvent; that’s where
&gt; the protection is needed, not here.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1110
&gt; &gt; +bool AccessibilityNodeObject::dispatchSimulatedKeyboardUpDownEvent(KeyboardEvent::Init&amp; keyInit)
&gt; 
&gt; Should take a const&amp;
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1132
&gt; &gt;      Ref&lt;AccessibilityObject&gt; protectedThis(*this);
&gt; 
&gt; Can move this into dispatchSimulatedKeyboardUpDownEvent and remove it here.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityNodeObject.h:32
&gt; &gt; +#include &quot;KeyboardEvent.h&quot;

I think I can make this a static function inside the .cpp file so it doesn&apos;t have to be in the header

&gt; 
&gt; This dependency is really unfortunate, but I suppose there’s no way to
&gt; forward declare something from inside a base class?
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityNodeObject.h:195
&gt; &gt; +    bool performEscape() override;
&gt; 
&gt; final instead of override
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityNodeObject.h:196
&gt; &gt; +    bool dispatchSimulatedKeyboardUpDownEvent(KeyboardEvent::Init&amp;);
&gt; 
&gt; Argument should be const&amp;, not non-const&amp;.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityObject.h:481
&gt; &gt; +    bool performEscape() override { return false; }
&gt; 
&gt; final instead of override
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityObjectInterface.h:910
&gt; &gt; +    virtual bool performEscape() = 0;
&gt; 
&gt; Seems like more of this should be named performDismissAction, and not use
&gt; the word &quot;escape&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669116</commentid>
    <comment_count>10</comment_count>
      <attachid>403609</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-07-06 13:04:11 -0700</bug_when>
    <thetext>Created attachment 403609
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669118</commentid>
    <comment_count>11</comment_count>
      <attachid>403610</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-07-06 13:05:07 -0700</bug_when>
    <thetext>Created attachment 403610
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669131</commentid>
    <comment_count>12</comment_count>
      <attachid>403610</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-06 13:19:36 -0700</bug_when>
    <thetext>Comment on attachment 403610
patch

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

&gt; Source/WebCore/accessibility/AccessibilityObjectInterface.h:910
&gt; +    virtual bool performDismissAction() { return false; };

No need for the trailing semicolon here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669137</commentid>
    <comment_count>13</comment_count>
      <attachid>403615</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-07-06 13:23:01 -0700</bug_when>
    <thetext>Created attachment 403615
patch

thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669176</commentid>
    <comment_count>14</comment_count>
      <attachid>403623</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-07-06 14:45:51 -0700</bug_when>
    <thetext>Created attachment 403623
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669185</commentid>
    <comment_count>15</comment_count>
      <attachid>403625</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-07-06 14:56:55 -0700</bug_when>
    <thetext>Created attachment 403625
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669254</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-06 17:09:21 -0700</bug_when>
    <thetext>Committed r264000: &lt;https://trac.webkit.org/changeset/264000&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 403625.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403350</attachid>
            <date>2020-07-02 00:46:56 -0700</date>
            <delta_ts>2020-07-02 01:15:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>file_213875.txt</filename>
            <type>text/plain</type>
            <size>11450</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWNjIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuaA0KaW5kZXggY2I1ZjYxYmNkOWEsYjAwM2Q1ZWRjMTguLjAwMDAwMDAwMDAwDQotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgN
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuaA0KQEBAIC0yOSw2IC0yOSw2ICsyOSw3IEBAQA0KICAjcHJhZ21hIG9uY2UNCiAgDQogICNp
bmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiDQorKyNpbmNsdWRlICJLZXlib2FyZEV2ZW50
LmgiDQogICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiDQogICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
Pg0KICANCkBAQCAtMTg5LDggLTE4OSw5ICsxOTAsMTEgQEBAIHByaXZhdGUNCiAgICAgIGJvb2wg
Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCBvdmVycmlkZTsNCiAgICAgIGJv
b2wgdXNlc0FsdFRhZ0ZvclRleHRDb21wdXRhdGlvbigpIGNvbnN0Ow0KICAgICAgYm9vbCByb2xl
SWdub3Jlc1RpdGxlKCkgY29uc3Q7DQotLSAgICB2b2lkIHBvc3RLZXlib2FyZEtleXNGb3JWYWx1
ZUNoYW5nZShib29sIGluY3JlYXNlKTsNCisrICAgIGJvb2wgcG9zdEtleWJvYXJkS2V5c0ZvclZh
bHVlQ2hhbmdlKGJvb2wgaW5jcmVhc2UpOw0KICAgICAgdm9pZCBzZXROb2RlVmFsdWUoYm9vbCBp
bmNyZWFzZSwgZmxvYXQgdmFsdWUpOw0KKyAgICAgYm9vbCBwZXJmb3JtRXNjYXBlKCkgb3ZlcnJp
ZGU7DQorKyAgICBib29sIGRpc3BhdGNoU2ltdWxhdGVkS2V5Ym9hcmRVcERvd25FdmVudChLZXli
b2FyZEV2ZW50OjpJbml0Jik7DQorKyAgICANCiAgICAgIE5vZGUqIG1fbm9kZTsNCiAgfTsNCiAg
DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nDQppbmRleCAyNDFhYjA2N2M4MC4uMWNlZjg4MmMzZTUgMTAwNjQ0DQotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cNCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZw0KQEAgLTEsMyArMSwx
NyBAQA0KKzIwMjAtMDctMDIgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4N
CisNCisgICAgICAgIEFYOiBJbXBsZW1lbnQgdXNlciBhY3Rpb24gc3BlYyBmb3IgRXNjYXBlIGFj
dGlvbg0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
Mzg3NQ0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY1MDIyOTgwPg0KKw0KKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQorDQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkva2V5
ZXZlbnRzLXBvc3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4NCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9rZXlldmVudHMtcG9zdGVkLWZvci1kaXNtaXNzLWFjdGlv
bi5odG1sOiBBZGRlZC4NCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6
DQorICAgICAgICAqIHBsYXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9uczoNCisg
ICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6DQorDQogMjAyMC0wNy0wMSAg
Q2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0KIA0KICAgICAgICAgQVg6IElt
cGxlbWVudCByZWxldmFudCBzaW11bGF0ZWQga2V5IHByZXNzZXMgZm9yIGN1c3RvbSBBUklBIHdp
ZGdldHMgZm9yIGluY3JlbWVudC9kZWNyZW1lbnQNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9U
ZXN0RXhwZWN0YXRpb25zDQppbmRleCA2MmU3MjkwOWFmNi4uYTYzODMyM2EzNGYgMTAwNjQ0DQot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucw0KKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMNCkBAIC03NTAsNiArNzUwLDcg
QEAgQnVnKEdUSykgZWRpdGluZy9zcGVsbGluZy9tYXJrZXJzLmh0bWwgWyBTa2lwIF0NCiB3ZWJr
aXQub3JnL2IvODU5NTggZmFzdC9mb3Jtcy9maWxlL2ZpbGUtaW5wdXQtY2FwdHVyZS5odG1sIFsg
RmFpbHVyZSBdDQogDQogd2Via2l0Lm9yZy9iLzE0NjcyMCBtZWRpYS9hY2Nlc3NpYmxpdHktZGVz
Y3JpYmVzLXZpZGVvLmh0bWwgWyBGYWlsdXJlIF0NCit3ZWJraXQub3JnL2IvMjEzODc0IGFjY2Vz
c2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24uaHRtbCBbIFNraXAg
XQ0KIA0KIHdlYmtpdC5vcmcvYi8xNDY3MjQgZmFzdC90ZXh0L3dvcmQtYnJlYWsta2VlcC1hbGwu
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQ0KIA0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9ucw0KaW5kZXggZjFjNTExMTFhZjQuLjUy
YjdhZjNhZDc0IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRv
ci9UZXN0RXhwZWN0YXRpb25zDQorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxh
dG9yL1Rlc3RFeHBlY3RhdGlvbnMNCkBAIC02LDYgKzYsNyBAQA0KIGFjY2Vzc2liaWxpdHkvaW5z
ZXJ0LW5ld2xpbmUuaHRtbCBbIFBhc3MgXQ0KIGFjY2Vzc2liaWxpdHkvbWlzc3BlbGxpbmctcmFu
Z2UuaHRtbCBbIFBhc3MgXQ0KIGFjY2Vzc2liaWxpdHkvdXJsLXRlc3QuaHRtbCBbIFBhc3MgXQ0K
K2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24uaHRtbCBb
IFBhc3MgXQ0KIGNzczMvZm9udC12YXJpYW50LXNtYWxsLWNhcHMtc3ludGhlc2lzLWNvdmVyYWdl
Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0NCiBmYXN0L2ZyYW1lcy9zYW5kYm94ZWQtaWZyYW1l
LWNsb3NlLXRvcC1ub2Nsb3NlLmh0bWwgWyBGYWlsdXJlIF0NCiBmYXN0L211bHRpY29sL2ZsZXhi
b3gtcm93cy5odG1sIFsgU2tpcCBdDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVj
dGF0aW9ucw0KaW5kZXggYzEwNjkyMjMwODIuLjA2ODhjNzI0NmU0IDEwMDY0NA0KLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMNCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zDQpAQCAtMTM4NCw2ICsxMzg0LDcgQEAgYWNj
ZXNzaWJpbGl0eS9tdWx0aXNlbGVjdC1saXN0LXJlcG9ydHMtYWN0aXZlLW9wdGlvbi5odG1sIFsg
U2tpcCBdDQogIyBpbmNyZW1lbnQvZGVjcmVtZW50IG5vdCBpbXBsZW1lbnRlZCBpbiB0ZXN0IHJ1
bm5lcg0KIGFjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLWZvci1pbmNyZW1lbnQtYWN0aW9ucy13aXRo
LW5vZGUtcmVtb3ZhbC5odG1sIFsgU2tpcCBdDQogYWNjZXNzaWJpbGl0eS9rZXlldmVudHMtcG9z
dGVkLWZvci1pbmNyZW1lbnQtYWN0aW9ucy5odG1sIFsgU2tpcCBdDQorYWNjZXNzaWJpbGl0eS9r
ZXlldmVudHMtcG9zdGVkLWZvci1kaXNtaXNzLWFjdGlvbi5odG1sIFsgU2tpcCBdDQogDQogd2Vi
a2l0Lm9yZy9iLzE0MDc5NiBhY2Nlc3NpYmlsaXR5L2FsdC10YWctb24taW1hZ2Utd2l0aC1ub25p
bWFnZS1yb2xlLmh0bWwgWyBTa2lwIF0NCiB3ZWJraXQub3JnL2IvMTQwNzk4IGFjY2Vzc2liaWxp
dHkvYXJpYS1jb250cm9scy13aXRoLXRhYnMuaHRtbCBbIFNraXAgXQ0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KaW5kZXgg
ZjhiMmM1OGZhYzkuLjQzNzBkOWQ3N2E5IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMzEgQEAN
CisyMDIwLTA3LTAyICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQorDQor
ICAgICAgICBBWDogSW1wbGVtZW50IHVzZXIgYWN0aW9uIHNwZWMgZm9yIEVzY2FwZSBhY3Rpb24N
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM4NzUN
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NTAyMjk4MD4NCisNCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgSW1wbGVtZW50IHRoZSBFc2NhcGUgYWN0
aW9uIGZvciB0aGUgdXNlciBhY3Rpb24gZXZlbnRzLg0KKyAgICAgICAgaHR0cHM6Ly9naXRodWIu
Y29tL1dJQ0cvYW9tL2Jsb2IvZ2gtcGFnZXMvZXhwbGFpbmVyLm1kI3VzZXItYWN0aW9uLWV2ZW50
cy1mcm9tLWFzc2lzdGl2ZS10ZWNobm9sb2d5DQorDQorICAgICAgICBUZXN0OiBhY2Nlc3NpYmls
aXR5L2tleWV2ZW50cy1wb3N0ZWQtZm9yLWRpc21pc3MtYWN0aW9uLmh0bWwNCisNCisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6DQorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBlcmZvcm1Fc2NhcGUpOg0KKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkaXNwYXRjaFNpbXVsYXRlZEtl
eWJvYXJkVXBEb3duRXZlbnQpOg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0Ojpwb3N0S2V5Ym9hcmRLZXlzRm9yVmFsdWVDaGFuZ2UpOg0KKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmg6DQorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9p
b3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW06DQorICAgICAgICAoLVtXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5UGVyZm9ybUVzY2FwZV0pOg0K
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNw
cDoNCisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpwZXJmb3JtRXNjYXBlKToN
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5o
Og0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlck1hYy5tbToNCisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFj
Y2Vzc2liaWxpdHlQZXJmb3JtQWN0aW9uOl0pOg0KKw0KIDIwMjAtMDctMDEgIENocmlzIEZsZWl6
YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIEFYOiBJbXBsZW1lbnQgcmVs
ZXZhbnQgc2ltdWxhdGVkIGtleSBwcmVzc2VzIGZvciBjdXN0b20gQVJJQSB3aWRnZXRzIGZvciBp
bmNyZW1lbnQvZGVjcmVtZW50DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcA0KaW5kZXggYjgxNzhlYzY5MDUuLmE5
NTk1MDMwOGQ1IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwDQpAQCAtNTcsNyArNTcsNiBAQA0KICNpbmNs
dWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIg0KICNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50
LmgiDQogI2luY2x1ZGUgIkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgiDQotI2luY2x1ZGUg
IktleWJvYXJkRXZlbnQuaCINCiAjaW5jbHVkZSAiTGFiZWxhYmxlRWxlbWVudC5oIg0KICNpbmNs
dWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiDQogI2luY2x1ZGUgIk1hdGhNTEVsZW1lbnQuaCINCkBA
IC0xMTAzLDIzICsxMTAyLDMxIEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBlcmZv
cm1Fc2NhcGUoKQ0KICAgICBhdXRvIGtleUluaXQgPSBLZXlib2FyZEV2ZW50OjpJbml0KCk7DQog
ICAgIA0KICAgICBrZXlJbml0LmtleSA9ICJFc2NhcGUiX3M7DQotICAgIGtleUluaXQua2V5SWRl
bnRpZmllciA9IDB4MWI7DQorICAgIGtleUluaXQua2V5Q29kZSA9IDB4MWI7DQogICAgIA0KLSAg
ICBkaXNwYXRjaFNpbXVsYXRlZEtleWJvYXJkRXZlbnQoa2V5SW5pdCk7DQorICAgIHJldHVybiBk
aXNwYXRjaFNpbXVsYXRlZEtleWJvYXJkVXBEb3duRXZlbnQoa2V5SW5pdCk7DQogfQ0KIA0KLXZv
aWQgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRpc3BhdGNoU2ltdWxhdGVkS2V5Ym9hcmRFdmVu
dChLZXlib2FyZEV2ZW50OjpJbml0JiBpbml0KQ0KK2Jvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3Q6OmRpc3BhdGNoU2ltdWxhdGVkS2V5Ym9hcmRVcERvd25FdmVudChLZXlib2FyZEV2ZW50OjpJ
bml0JiBrZXlJbml0KQ0KIHsNCi0gICAgaWYgKGF1dG8qIG5vZGUgPSB0aGlzLT5ub2RlKCkpDQot
ICAgICAgICBub2RlLT5kaXNwYXRjaEV2ZW50KEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShldmVudE5h
bWVzKCkua2V5ZG93bkV2ZW50LCBrZXlJbml0KSk7DQorICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNl
Ow0KKyAgICBpZiAoYXV0byogbm9kZSA9IHRoaXMtPm5vZGUoKSkgew0KKyAgICAgICAgYXV0byBl
dmVudCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50LCBr
ZXlJbml0KTsNCisgICAgICAgIG5vZGUtPmRpc3BhdGNoRXZlbnQoZXZlbnQpOw0KKyAgICAgICAg
aGFuZGxlZCB8PSBldmVudC0+ZGVmYXVsdEhhbmRsZWQoKTsNCisgICAgfQ0KICAgICANCiAgICAg
Ly8gRW5zdXJlIG5vZGUgaXMgc3RpbGwgdmFsaWQgYW5kIHdhc24ndCByZW1vdmVkIGFmdGVyIHRo
ZSBrZXlkb3duLg0KLSAgICBpZiAoYXV0byogbm9kZSA9IHRoaXMtPm5vZGUoKSkNCi0gICAgICAg
IG5vZGUtPmRpc3BhdGNoRXZlbnQoS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5r
ZXl1cEV2ZW50LCBrZXlJbml0KSk7DQorICAgIGlmIChhdXRvKiBub2RlID0gdGhpcy0+bm9kZSgp
KSB7DQorICAgICAgICBhdXRvIGV2ZW50ID0gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5rZXl1cEV2ZW50LCBrZXlJbml0KTsNCisgICAgICAgIG5vZGUtPmRpc3BhdGNoRXZlbnQo
ZXZlbnQpOw0KKyAgICAgICAgaGFuZGxlZCB8PSBldmVudC0+ZGVmYXVsdEhhbmRsZWQoKTsNCisg
ICAgfQ0KKyAgICByZXR1cm4gaGFuZGxlZDsNCiB9DQogDQogLy8gRmlyZSBhIGtleWJvYXJkIGV2
ZW50IGlmIHdlIHdlcmUgbm90IGFibGUgdG8gc2V0IHRoaXMgdmFsdWUgbmF0aXZlbHkuDQotdm9p
ZCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cG9zdEtleWJvYXJkS2V5c0ZvclZhbHVlQ2hhbmdl
KGJvb2wgaW5jcmVhc2UpDQorYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cG9zdEtleWJv
YXJkS2V5c0ZvclZhbHVlQ2hhbmdlKGJvb2wgaW5jcmVhc2UpDQogew0KICAgICAvLyBJbiBjYXNl
IHRoZSBrZXlib2FyZCBldmVudCBjYXVzZXMgdGhpcyBlbGVtZW50IHRvIGJlIHJlbW92ZWQuDQog
ICAgIFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsNCkBAIC0x
MTMxLDcgKzExMzgsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpwb3N0S2V5Ym9h
cmRLZXlzRm9yVmFsdWVDaGFuZ2UoYm9vbCBpbmNyZWFzZSkNCiAgICAga2V5SW5pdC5rZXkgPSBp
bmNyZWFzZSA/IHZlcnRpY2FsID8gIkFycm93VXAiX3MgOiBpc0xUUiA/ICJBcnJvd1JpZ2h0Il9z
IDogIkFycm93TGVmdCJfcyA6IHZlcnRpY2FsID8gIkFycm93RG93biJfcyA6IGlzTFRSID8gIkFy
cm93TGVmdCJfcyA6ICJBcnJvd1JpZ2h0Il9zOw0KICAgICBrZXlJbml0LmtleUlkZW50aWZpZXIg
PSBpbmNyZWFzZSA/IHZlcnRpY2FsID8gInVwIl9zIDogaXNMVFIgPyAicmlnaHQiX3MgOiAibGVm
dCJfcyA6IHZlcnRpY2FsID8gImRvd24iX3MgOiBpc0xUUiA/ICJsZWZ0Il9zIDogInJpZ2h0Il9z
Ow0KIA0KLSAgICBkaXNwYXRjaFNpbXVsYXRlZEtleWJvYXJkRXZlbnQoa2V5SW5pdCk7DQorICAg
IHJldHVybiBkaXNwYXRjaFNpbXVsYXRlZEtleWJvYXJkVXBEb3duRXZlbnQoa2V5SW5pdCk7DQog
fQ0KIA0KIHZvaWQgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnNldE5vZGVWYWx1ZShib29sIGlu
Y3JlYXNlLCBmbG9hdCB2YWx1ZSkNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oDQppbmRleCA5NTM4ZmU0MTViMy4uNmI4MWIyM2MzOTAg
MTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmgNCkBAIC00NzgsNyArNDc4LDggQEAgcHVibGljOg0KICAgICBBY2Nlc3NpYmlsaXR5
T3JpZW50YXRpb24gb3JpZW50YXRpb24oKSBjb25zdCBvdmVycmlkZTsNCiAgICAgdm9pZCBpbmNy
ZW1lbnQoKSBvdmVycmlkZSB7IH0NCiAgICAgdm9pZCBkZWNyZW1lbnQoKSBvdmVycmlkZSB7IH0N
Ci0NCisgICAgYm9vbCBwZXJmb3JtRXNjYXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0N
CisgICAgDQogICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKCkgb3ZlcnJpZGUgeyB9DQogICAgIHZv
aWQgdGV4dENoYW5nZWQoKSBvdmVycmlkZSB7IH0NCiAgICAgdm9pZCB1cGRhdGVBY2Nlc3NpYmls
aXR5Um9sZSgpIG92ZXJyaWRlIHsgfQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHANCmluZGV4
IDA2MWU5YTY4NjBkLi5kZTU0YmU3MjVjNCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwDQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNw
cA0KQEAgLTYzMCw2ICs2MzAsMTUgQEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0OjpzZXRJc0V4cGFu
ZGVkKGJvb2wgdmFsdWUpDQogICAgIH0pOw0KIH0NCiANCitib29sIEFYSXNvbGF0ZWRPYmplY3Q6
OnBlcmZvcm1Fc2NhcGUoKQ0KK3sNCisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJldHJpZXZl
VmFsdWVGcm9tTWFpblRocmVhZDxib29sPihbdGhpc10gKCkgLT4gYm9vbCB7DQorICAgICAgICBp
ZiAoYXV0byogYXhPYmplY3QgPSBhc3NvY2lhdGVkQVhPYmplY3QoKSkNCisgICAgICAgICAgICBy
ZXR1cm4gYXhPYmplY3QtPnBlcmZvcm1Fc2NhcGUoKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsN
CisgICAgfSk7DQorfQ0KKw0KIGJvb2wgQVhJc29sYXRlZE9iamVjdDo6c2V0VmFsdWUoZmxvYXQg
dmFsdWUpDQogew0KICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6cmV0cmlldmVWYWx1ZUZyb21N
YWluVGhyZWFkPGJvb2w+KFsmdmFsdWUsIHRoaXNdICgpIC0+IGJvb2wgew0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRPYmplY3QuaA0KaW5kZXggMmExOTlmZWE1OWIuLjY4MDJjMTU2NjE5IDEwMDY0NA0KLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVj
dC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkT2JqZWN0LmgNCkBAIC03MjEsNiArNzIxLDcgQEAgcHJpdmF0ZToNCiAgICAgRmxvYXRS
ZWN0IGNvbnZlcnRGcmFtZVRvU3BhY2UoY29uc3QgRmxvYXRSZWN0JiwgQWNjZXNzaWJpbGl0eUNv
bnZlcnNpb25TcGFjZSkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gRmxvYXRSZWN0KCk7IH0NCiAg
ICAgdm9pZCBpbmNyZW1lbnQoKSBvdmVycmlkZSB7IH0NCiAgICAgdm9pZCBkZWNyZW1lbnQoKSBv
dmVycmlkZSB7IH0NCisgICAgYm9vbCBwZXJmb3JtRXNjYXBlKCkgb3ZlcnJpZGU7DQogICAgIHZv
aWQgc2Nyb2xsVG9NYWtlVmlzaWJsZSgpIGNvbnN0IG92ZXJyaWRlIHsgfQ0KICAgICB2b2lkIHNj
cm9sbFRvTWFrZVZpc2libGVXaXRoU3ViRm9jdXMoY29uc3QgSW50UmVjdCYpIGNvbnN0IG92ZXJy
aWRlIHsgfQ0KICAgICB2b2lkIHNjcm9sbFRvR2xvYmFsUG9pbnQoY29uc3QgSW50UG9pbnQmKSBj
b25zdCBvdmVycmlkZSB7IH0NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1t
DQppbmRleCA5Njg2ZDQzNTU2NC4uNTNhNzU4MmFjNDEgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bQ0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJNYWMubW0NCkBAIC0zNDcwLDYgKzM0NzAsOCBAQCBBTExPV19ERVBSRUNB
VEVEX0lNUExFTUVOVEFUSU9OU19FTkQNCiAgICAgICAgIFtzZWxmIGFjY2Vzc2liaWxpdHlQZXJm
b3JtRGVjcmVtZW50QWN0aW9uXTsNCiAgICAgZWxzZSBpZiAoW2FjdGlvbiBpc0VxdWFsVG9TdHJp
bmc6TlNBY2Nlc3NpYmlsaXR5U2Nyb2xsVG9WaXNpYmxlQWN0aW9uXSkNCiAgICAgICAgIFtzZWxm
IGFjY2Vzc2liaWxpdHlTY3JvbGxUb1Zpc2libGVdOw0KKyAgICBlbHNlIGlmIChbYWN0aW9uIGlz
RXF1YWxUb1N0cmluZzpAIkFYRGlzbWlzc0FjdGlvbiJdKQ0KKyAgICAgICAgYmFja2luZ09iamVj
dC0+cGVyZm9ybUVzY2FwZSgpOw0KIH0NCiANCiAtIChCT09MKWFjY2Vzc2liaWxpdHlSZXBsYWNl
UmFuZ2U6KE5TUmFuZ2UpcmFuZ2Ugd2l0aFRleHQ6KE5TU3RyaW5nICopc3RyaW5nDQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403352</attachid>
            <date>2020-07-02 01:15:54 -0700</date>
            <delta_ts>2020-07-02 09:37:53 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_213875.txt</filename>
            <type>text/plain</type>
            <size>14720</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggZTBiZDYwZjgxNTUuLjQyYTA2Y2ZkOTY1IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTcg
QEANCisyMDIwLTA3LTAyICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogSW1wbGVtZW50IHVzZXIgYWN0aW9uIHNwZWMgZm9yIEVzY2FwZSBhY3Rp
b24NCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM4
NzUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NTAyMjk4MD4NCisNCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2tleWV2
ZW50cy1wb3N0ZWQtZm9yLWRpc21pc3MtYWN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuDQorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24u
aHRtbDogQWRkZWQuDQorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOg0K
KyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnM6DQorICAg
ICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOg0KKw0KIDIwMjAtMDctMDIgIEVu
cmlxdWUgT2Nhw7FhIEdvbnrDoWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4NCiANCiAgICAgICAg
IFtHVEtdIExheW91dCB0ZXN0IG1lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwgaXMgZmFp
bGluZw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBv
c3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9rZXlldmVudHMtcG9zdGVkLWZvci1kaXNtaXNzLWFjdGlvbi1leHBlY3RlZC50eHQN
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uZTJjMmRhMzk4OTANCi0t
LSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBv
c3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24tZXhwZWN0ZWQudHh0DQpAQCAtMCwwICsxLDExIEBADQor
YWxlcnQNCitUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgZGlzbWlzcyBhY3Rpb24gZ2VuZXJh
dGVzIGFuIGVzY2FwZSBrZXkgZXZlbnQuDQorDQorT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLg0K
Kw0KKw0KK0tleWNvZGUgcmVjZWl2ZWQ6IGNvZGU6IDI3IGtleSBuYW1lOiBFc2NhcGUNCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlDQorDQorVEVTVCBDT01QTEVURQ0KKw0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlz
bWlzcy1hY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBv
c3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24uaHRtbA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4
IDAwMDAwMDAwMDAwLi5hMWQwYTM3MzJmNg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9rZXlldmVudHMtcG9zdGVkLWZvci1kaXNtaXNzLWFjdGlvbi5odG1s
DQpAQCAtMCwwICsxLDMyIEBADQorPGh0bWw+DQorPGh0bWw+DQorPGhlYWQ+DQorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+DQorPC9oZWFkPg0KKzxi
b2R5IGlkPSJib2R5Ij4NCisNCis8ZGl2IGlkPSJhbGVydCI+YWxlcnQ8L2Rpdj4NCisNCis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4NCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCisgICAgIA0K
KzxzY3JpcHQ+DQorICAgIGZ1bmN0aW9uIGhhbmRsZUtleURvd24oZXZlbnQpIHsNCisgICAgICAg
IGRlYnVnKCJLZXljb2RlIHJlY2VpdmVkOiBjb2RlOiAiICsgZXZlbnQua2V5Q29kZSArICIga2V5
IG5hbWU6ICIgKyBldmVudC5rZXkpOw0KKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsN
CisgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOw0KKyAgICAgICAgZmluaXNoSlNUZXN0
KCk7DQorICAgICB9DQorDQorICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIp
IHsNCisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOw0KKyAgICAgICAgZGVzY3JpcHRpb24o
IlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IHRoZSBkaXNtaXNzIGFjdGlvbiBnZW5lcmF0ZXMgYW4g
ZXNjYXBlIGtleSBldmVudC4iKTsNCisNCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJhbGVydCIpLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlEb3duKTsNCisg
ICAgICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiYWxl
cnQiKS5kaXNtaXNzKCk7DQorICAgIH0NCisgPC9zY3JpcHQ+DQorDQorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pg0KKzwvYm9keT4NCis8L2h0bWw+
DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucw0KaW5kZXggMjBlOThj
YzU2NzQuLjk1YjRkNTA2Mjk3IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMNCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zDQpAQCAtNzUwLDYgKzc1MCw3IEBAIEJ1ZyhHVEspIGVkaXRpbmcvc3BlbGxpbmcv
bWFya2Vycy5odG1sIFsgU2tpcCBdDQogd2Via2l0Lm9yZy9iLzg1OTU4IGZhc3QvZm9ybXMvZmls
ZS9maWxlLWlucHV0LWNhcHR1cmUuaHRtbCBbIEZhaWx1cmUgXQ0KIA0KIHdlYmtpdC5vcmcvYi8x
NDY3MjAgbWVkaWEvYWNjZXNzaWJsaXR5LWRlc2NyaWJlcy12aWRlby5odG1sIFsgRmFpbHVyZSBd
DQord2Via2l0Lm9yZy9iLzIxMzg3NCBhY2Nlc3NpYmlsaXR5L2tleWV2ZW50cy1wb3N0ZWQtZm9y
LWRpc21pc3MtYWN0aW9uLmh0bWwgWyBTa2lwIF0NCiANCiB3ZWJraXQub3JnL2IvMTQ2NzI0IGZh
c3QvdGV4dC93b3JkLWJyZWFrLWtlZXAtYWxsLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0NCiAN
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3Rh
dGlvbnMNCmluZGV4IGYxYzUxMTExYWY0Li41MmI3YWYzYWQ3NCAxMDA2NDQNCi0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9ucw0KKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0RXhwZWN0YXRpb25zDQpAQCAtNiw2
ICs2LDcgQEANCiBhY2Nlc3NpYmlsaXR5L2luc2VydC1uZXdsaW5lLmh0bWwgWyBQYXNzIF0NCiBh
Y2Nlc3NpYmlsaXR5L21pc3NwZWxsaW5nLXJhbmdlLmh0bWwgWyBQYXNzIF0NCiBhY2Nlc3NpYmls
aXR5L3VybC10ZXN0Lmh0bWwgWyBQYXNzIF0NCithY2Nlc3NpYmlsaXR5L2tleWV2ZW50cy1wb3N0
ZWQtZm9yLWRpc21pc3MtYWN0aW9uLmh0bWwgWyBQYXNzIF0NCiBjc3MzL2ZvbnQtdmFyaWFudC1z
bWFsbC1jYXBzLXN5bnRoZXNpcy1jb3ZlcmFnZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdDQog
ZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1jbG9zZS10b3Atbm9jbG9zZS5odG1sIFsgRmFp
bHVyZSBdDQogZmFzdC9tdWx0aWNvbC9mbGV4Ym94LXJvd3MuaHRtbCBbIFNraXAgXQ0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMNCmluZGV4IGMxMDY5MjIzMDgyLi4w
Njg4YzcyNDZlNCAxMDA2NDQNCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhw
ZWN0YXRpb25zDQorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9u
cw0KQEAgLTEzODQsNiArMTM4NCw3IEBAIGFjY2Vzc2liaWxpdHkvbXVsdGlzZWxlY3QtbGlzdC1y
ZXBvcnRzLWFjdGl2ZS1vcHRpb24uaHRtbCBbIFNraXAgXQ0KICMgaW5jcmVtZW50L2RlY3JlbWVu
dCBub3QgaW1wbGVtZW50ZWQgaW4gdGVzdCBydW5uZXINCiBhY2Nlc3NpYmlsaXR5L2tleWV2ZW50
cy1mb3ItaW5jcmVtZW50LWFjdGlvbnMtd2l0aC1ub2RlLXJlbW92YWwuaHRtbCBbIFNraXAgXQ0K
IGFjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItaW5jcmVtZW50LWFjdGlvbnMuaHRt
bCBbIFNraXAgXQ0KK2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlzbWlzcy1h
Y3Rpb24uaHRtbCBbIFNraXAgXQ0KIA0KIHdlYmtpdC5vcmcvYi8xNDA3OTYgYWNjZXNzaWJpbGl0
eS9hbHQtdGFnLW9uLWltYWdlLXdpdGgtbm9uaW1hZ2Utcm9sZS5odG1sIFsgU2tpcCBdDQogd2Vi
a2l0Lm9yZy9iLzE0MDc5OCBhY2Nlc3NpYmlsaXR5L2FyaWEtY29udHJvbHMtd2l0aC10YWJzLmh0
bWwgWyBTa2lwIF0NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cNCmluZGV4IDkxNDVmYjhjOTc1Li40MGNjZDMzZWIwMiAxMDA2
NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nDQpAQCAtMSwzICsxLDMxIEBADQorMjAyMC0wNy0wMiAgQ2hyaXMgRmxlaXphY2gg
IDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgQVg6IEltcGxlbWVudCB1c2VyIGFj
dGlvbiBzcGVjIGZvciBFc2NhcGUgYWN0aW9uDQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzODc1DQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjUw
MjI5ODA+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAg
ICAgIEltcGxlbWVudCB0aGUgRXNjYXBlIGFjdGlvbiBmb3IgdGhlIHVzZXIgYWN0aW9uIGV2ZW50
cy4NCisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNHL2FvbS9ibG9iL2doLXBhZ2VzL2V4
cGxhaW5lci5tZCN1c2VyLWFjdGlvbi1ldmVudHMtZnJvbS1hc3Npc3RpdmUtdGVjaG5vbG9neQ0K
Kw0KKyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9rZXlldmVudHMtcG9zdGVkLWZvci1kaXNt
aXNzLWFjdGlvbi5odG1sDQorDQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3QuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0OjpwZXJmb3JtRXNjYXBlKToNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6ZGlzcGF0Y2hTaW11bGF0ZWRLZXlib2FyZFVwRG93bkV2ZW50KToNCisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cG9zdEtleWJvYXJkS2V5c0ZvclZh
bHVlQ2hhbmdlKToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oOg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoN
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6
DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVySU9TLm1tOg0KKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNj
ZXNzaWJpbGl0eVBlcmZvcm1Fc2NhcGVdKToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6QVhJc29s
YXRlZE9iamVjdDo6cGVyZm9ybUVzY2FwZSk6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNv
bGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9t
YWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06DQorICAgICAgICAoLVtXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5UGVyZm9ybUFjdGlvbjpdKToN
CisNCiAyMDIwLTA3LTAxICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5j
b20+DQogDQogICAgICAgICBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRFeHRlbnNpb25zRm9yTUlNRVR5
cGUoKSBuZWVkcyB0byBoYW5kbGUgd2lsZGNhcmQgTUlNRSB0eXBlcw0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAN
CmluZGV4IDI5ZTIyYmIwZDZiLi5hOTU5NTAzMDhkNSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwDQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcA0KQEAg
LTU3LDcgKzU3LDYgQEANCiAjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQuaCINCiAjaW5jbHVk
ZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIg0KICNpbmNsdWRlICJIVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudC5oIg0KLSNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiDQogI2luY2x1ZGUgIkxhYmVs
YWJsZUVsZW1lbnQuaCINCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIg0KICNpbmNsdWRl
ICJNYXRoTUxFbGVtZW50LmgiDQpAQCAtMTA5NSw4ICsxMDk0LDM5IEBAIHZvaWQgQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OmRlY3JlbWVudCgpDQogICAgIGFsdGVyU2xpZGVyVmFsdWUoZmFsc2Up
Ow0KIH0NCiANCitib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwZXJmb3JtRXNjYXBlKCkN
Cit7DQorICAgIC8vIEluIGNhc2UgdGhlIGtleWJvYXJkIGV2ZW50IGNhdXNlcyB0aGlzIGVsZW1l
bnQgdG8gYmUgcmVtb3ZlZC4NCisgICAgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IHByb3RlY3Rl
ZFRoaXMoKnRoaXMpOw0KKyAgICANCisgICAgYXV0byBrZXlJbml0ID0gS2V5Ym9hcmRFdmVudDo6
SW5pdCgpOw0KKyAgICANCisgICAga2V5SW5pdC5rZXkgPSAiRXNjYXBlIl9zOw0KKyAgICBrZXlJ
bml0LmtleUNvZGUgPSAweDFiOw0KKyAgICANCisgICAgcmV0dXJuIGRpc3BhdGNoU2ltdWxhdGVk
S2V5Ym9hcmRVcERvd25FdmVudChrZXlJbml0KTsNCit9DQorDQorYm9vbCBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6ZGlzcGF0Y2hTaW11bGF0ZWRLZXlib2FyZFVwRG93bkV2ZW50KEtleWJvYXJk
RXZlbnQ6OkluaXQmIGtleUluaXQpDQorew0KKyAgICBib29sIGhhbmRsZWQgPSBmYWxzZTsNCisg
ICAgaWYgKGF1dG8qIG5vZGUgPSB0aGlzLT5ub2RlKCkpIHsNCisgICAgICAgIGF1dG8gZXZlbnQg
PSBLZXlib2FyZEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmtleWRvd25FdmVudCwga2V5SW5p
dCk7DQorICAgICAgICBub2RlLT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsNCisgICAgICAgIGhhbmRs
ZWQgfD0gZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCk7DQorICAgIH0NCisgICAgDQorICAgIC8vIEVu
c3VyZSBub2RlIGlzIHN0aWxsIHZhbGlkIGFuZCB3YXNuJ3QgcmVtb3ZlZCBhZnRlciB0aGUga2V5
ZG93bi4NCisgICAgaWYgKGF1dG8qIG5vZGUgPSB0aGlzLT5ub2RlKCkpIHsNCisgICAgICAgIGF1
dG8gZXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmtleXVwRXZlbnQs
IGtleUluaXQpOw0KKyAgICAgICAgbm9kZS0+ZGlzcGF0Y2hFdmVudChldmVudCk7DQorICAgICAg
ICBoYW5kbGVkIHw9IGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpOw0KKyAgICB9DQorICAgIHJldHVy
biBoYW5kbGVkOw0KK30NCisNCiAvLyBGaXJlIGEga2V5Ym9hcmQgZXZlbnQgaWYgd2Ugd2VyZSBu
b3QgYWJsZSB0byBzZXQgdGhpcyB2YWx1ZSBuYXRpdmVseS4NCi12b2lkIEFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0Ojpwb3N0S2V5Ym9hcmRLZXlzRm9yVmFsdWVDaGFuZ2UoYm9vbCBpbmNyZWFzZSkN
Citib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpwb3N0S2V5Ym9hcmRLZXlzRm9yVmFsdWVD
aGFuZ2UoYm9vbCBpbmNyZWFzZSkNCiB7DQogICAgIC8vIEluIGNhc2UgdGhlIGtleWJvYXJkIGV2
ZW50IGNhdXNlcyB0aGlzIGVsZW1lbnQgdG8gYmUgcmVtb3ZlZC4NCiAgICAgUmVmPEFjY2Vzc2li
aWxpdHlPYmplY3Q+IHByb3RlY3RlZFRoaXMoKnRoaXMpOw0KQEAgLTExMDgsMTIgKzExMzgsNyBA
QCB2b2lkIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpwb3N0S2V5Ym9hcmRLZXlzRm9yVmFsdWVD
aGFuZ2UoYm9vbCBpbmNyZWFzZSkNCiAgICAga2V5SW5pdC5rZXkgPSBpbmNyZWFzZSA/IHZlcnRp
Y2FsID8gIkFycm93VXAiX3MgOiBpc0xUUiA/ICJBcnJvd1JpZ2h0Il9zIDogIkFycm93TGVmdCJf
cyA6IHZlcnRpY2FsID8gIkFycm93RG93biJfcyA6IGlzTFRSID8gIkFycm93TGVmdCJfcyA6ICJB
cnJvd1JpZ2h0Il9zOw0KICAgICBrZXlJbml0LmtleUlkZW50aWZpZXIgPSBpbmNyZWFzZSA/IHZl
cnRpY2FsID8gInVwIl9zIDogaXNMVFIgPyAicmlnaHQiX3MgOiAibGVmdCJfcyA6IHZlcnRpY2Fs
ID8gImRvd24iX3MgOiBpc0xUUiA/ICJsZWZ0Il9zIDogInJpZ2h0Il9zOw0KIA0KLSAgICBpZiAo
YXV0byogbm9kZSA9IHRoaXMtPm5vZGUoKSkNCi0gICAgICAgIG5vZGUtPmRpc3BhdGNoRXZlbnQo
S2V5Ym9hcmRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQsIGtleUluaXQp
KTsNCi0NCi0gICAgLy8gRW5zdXJlIG5vZGUgaXMgc3RpbGwgdmFsaWQgYW5kIHdhc24ndCByZW1v
dmVkIGFmdGVyIHRoZSBrZXlkb3duLg0KLSAgICBpZiAoYXV0byogbm9kZSA9IHRoaXMtPm5vZGUo
KSkNCi0gICAgICAgIG5vZGUtPmRpc3BhdGNoRXZlbnQoS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5rZXl1cEV2ZW50LCBrZXlJbml0KSk7DQorICAgIHJldHVybiBkaXNwYXRjaFNp
bXVsYXRlZEtleWJvYXJkVXBEb3duRXZlbnQoa2V5SW5pdCk7DQogfQ0KIA0KIHZvaWQgQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3Q6OnNldE5vZGVWYWx1ZShib29sIGluY3JlYXNlLCBmbG9hdCB2YWx1
ZSkNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmgNCmluZGV4IGNiNWY2MWJjZDlhLi5jMWIyYjU5M2VkNiAxMDA2NDQNCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qu
aA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oDQpAQCAtMjksNiArMjksNyBAQA0KICNwcmFnbWEgb25jZQ0KIA0KICNpbmNsdWRlICJB
Y2Nlc3NpYmlsaXR5T2JqZWN0LmgiDQorI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCINCiAjaW5j
bHVkZSAiTGF5b3V0UmVjdC5oIg0KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPg0KIA0KQEAgLTE4
OSw4ICsxOTAsMTEgQEAgcHJpdmF0ZToNCiAgICAgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlz
SWdub3JlZCgpIGNvbnN0IG92ZXJyaWRlOw0KICAgICBib29sIHVzZXNBbHRUYWdGb3JUZXh0Q29t
cHV0YXRpb24oKSBjb25zdDsNCiAgICAgYm9vbCByb2xlSWdub3Jlc1RpdGxlKCkgY29uc3Q7DQot
ICAgIHZvaWQgcG9zdEtleWJvYXJkS2V5c0ZvclZhbHVlQ2hhbmdlKGJvb2wgaW5jcmVhc2UpOw0K
KyAgICBib29sIHBvc3RLZXlib2FyZEtleXNGb3JWYWx1ZUNoYW5nZShib29sIGluY3JlYXNlKTsN
CiAgICAgdm9pZCBzZXROb2RlVmFsdWUoYm9vbCBpbmNyZWFzZSwgZmxvYXQgdmFsdWUpOw0KKyAg
ICBib29sIHBlcmZvcm1Fc2NhcGUoKSBvdmVycmlkZTsNCisgICAgYm9vbCBkaXNwYXRjaFNpbXVs
YXRlZEtleWJvYXJkVXBEb3duRXZlbnQoS2V5Ym9hcmRFdmVudDo6SW5pdCYpOw0KKyAgICANCiAg
ICAgTm9kZSogbV9ub2RlOw0KIH07DQogDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaA0KaW5kZXggOTUzOGZlNDE1YjMuLjZiODFiMjNj
MzkwIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oDQpAQCAtNDc4LDcgKzQ3OCw4IEBAIHB1YmxpYzoNCiAgICAgQWNjZXNzaWJp
bGl0eU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7DQogICAgIHZvaWQg
aW5jcmVtZW50KCkgb3ZlcnJpZGUgeyB9DQogICAgIHZvaWQgZGVjcmVtZW50KCkgb3ZlcnJpZGUg
eyB9DQotDQorICAgIGJvb2wgcGVyZm9ybUVzY2FwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNl
OyB9DQorICAgIA0KICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZCgpIG92ZXJyaWRlIHsgfQ0KICAg
ICB2b2lkIHRleHRDaGFuZ2VkKCkgb3ZlcnJpZGUgeyB9DQogICAgIHZvaWQgdXBkYXRlQWNjZXNz
aWJpbGl0eVJvbGUoKSBvdmVycmlkZSB7IH0NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oDQppbmRleCBi
ZWE0YTdmZjQ2Yi4uM2VjNzAyY2EzZDAgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaA0KKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgNCkBAIC05
MDcsNyArOTA3LDggQEAgcHVibGljOg0KICAgICB2aXJ0dWFsIHZvaWQgbWFrZVJhbmdlVmlzaWJs
ZShjb25zdCBQbGFpblRleHRSYW5nZSYpID0gMDsNCiAgICAgdmlydHVhbCBib29sIHByZXNzKCkg
PSAwOw0KICAgICB2aXJ0dWFsIGJvb2wgcGVyZm9ybURlZmF1bHRBY3Rpb24oKSA9IDA7DQotDQor
ICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtRXNjYXBlKCkgPSAwOw0KKyAgICANCiAgICAgdmlydHVh
bCBBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb24gb3JpZW50YXRpb24oKSBjb25zdCA9IDA7DQogICAg
IHZpcnR1YWwgdm9pZCBpbmNyZW1lbnQoKSA9IDA7DQogICAgIHZpcnR1YWwgdm9pZCBkZWNyZW1l
bnQoKSA9IDA7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3Mv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQ0KaW5kZXgg
Yjc3NDI1Y2Q0MTAuLmY5NTczNzRhZjQwIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0NCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVySU9TLm1tDQpAQCAtMTgyNyw2ICsxODI3LDEzIEBAIHN0YXRpYyB2b2lkIGFwcGVuZFN0
cmluZ1RvUmVzdWx0KE5TTXV0YWJsZVN0cmluZyAqcmVzdWx0LCBOU1N0cmluZyAqc3RyaW5nKQ0K
ICAgICByZXR1cm4gbmlsOw0KIH0NCiANCistIChCT09MKWFjY2Vzc2liaWxpdHlQZXJmb3JtRXNj
YXBlDQorew0KKyAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQ0KKyAg
ICAgICAgcmV0dXJuIE5POw0KKyAgICByZXR1cm4gc2VsZi5heEJhY2tpbmdPYmplY3QtPnBlcmZv
cm1Fc2NhcGUoKTsNCit9DQorDQogLSAoQk9PTClfYWNjZXNzaWJpbGl0eUFjdGl2YXRlDQogew0K
ICAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQ0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHANCmluZGV4IDA2MWU5YTY4NjBkLi5kZTU0YmU3MjVjNCAxMDA2NDQNCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRP
YmplY3QuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkT2JqZWN0LmNwcA0KQEAgLTYzMCw2ICs2MzAsMTUgQEAgdm9pZCBBWElzb2xh
dGVkT2JqZWN0OjpzZXRJc0V4cGFuZGVkKGJvb2wgdmFsdWUpDQogICAgIH0pOw0KIH0NCiANCiti
b29sIEFYSXNvbGF0ZWRPYmplY3Q6OnBlcmZvcm1Fc2NhcGUoKQ0KK3sNCisgICAgcmV0dXJuIEFj
Y2Vzc2liaWxpdHk6OnJldHJpZXZlVmFsdWVGcm9tTWFpblRocmVhZDxib29sPihbdGhpc10gKCkg
LT4gYm9vbCB7DQorICAgICAgICBpZiAoYXV0byogYXhPYmplY3QgPSBhc3NvY2lhdGVkQVhPYmpl
Y3QoKSkNCisgICAgICAgICAgICByZXR1cm4gYXhPYmplY3QtPnBlcmZvcm1Fc2NhcGUoKTsNCisg
ICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgfSk7DQorfQ0KKw0KIGJvb2wgQVhJc29sYXRlZE9i
amVjdDo6c2V0VmFsdWUoZmxvYXQgdmFsdWUpDQogew0KICAgICByZXR1cm4gQWNjZXNzaWJpbGl0
eTo6cmV0cmlldmVWYWx1ZUZyb21NYWluVGhyZWFkPGJvb2w+KFsmdmFsdWUsIHRoaXNdICgpIC0+
IGJvb2wgew0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
aXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaA0KaW5kZXggMmExOTlmZWE1OWIuLjY4MDJj
MTU2NjE5IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgNCkBAIC03MjEsNiArNzIxLDcgQEAg
cHJpdmF0ZToNCiAgICAgRmxvYXRSZWN0IGNvbnZlcnRGcmFtZVRvU3BhY2UoY29uc3QgRmxvYXRS
ZWN0JiwgQWNjZXNzaWJpbGl0eUNvbnZlcnNpb25TcGFjZSkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gRmxvYXRSZWN0KCk7IH0NCiAgICAgdm9pZCBpbmNyZW1lbnQoKSBvdmVycmlkZSB7IH0NCiAg
ICAgdm9pZCBkZWNyZW1lbnQoKSBvdmVycmlkZSB7IH0NCisgICAgYm9vbCBwZXJmb3JtRXNjYXBl
KCkgb3ZlcnJpZGU7DQogICAgIHZvaWQgc2Nyb2xsVG9NYWtlVmlzaWJsZSgpIGNvbnN0IG92ZXJy
aWRlIHsgfQ0KICAgICB2b2lkIHNjcm9sbFRvTWFrZVZpc2libGVXaXRoU3ViRm9jdXMoY29uc3Qg
SW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlIHsgfQ0KICAgICB2b2lkIHNjcm9sbFRvR2xvYmFsUG9p
bnQoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlkZSB7IH0NCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyTWFjLm1tDQppbmRleCA5Njg2ZDQzNTU2NC4uNTNhNzU4MmFjNDEgMTAw
NjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlck1hYy5tbQ0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0NCkBAIC0zNDcwLDYgKzM0
NzAsOCBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQNCiAgICAgICAgIFtz
ZWxmIGFjY2Vzc2liaWxpdHlQZXJmb3JtRGVjcmVtZW50QWN0aW9uXTsNCiAgICAgZWxzZSBpZiAo
W2FjdGlvbiBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5U2Nyb2xsVG9WaXNpYmxlQWN0
aW9uXSkNCiAgICAgICAgIFtzZWxmIGFjY2Vzc2liaWxpdHlTY3JvbGxUb1Zpc2libGVdOw0KKyAg
ICBlbHNlIGlmIChbYWN0aW9uIGlzRXF1YWxUb1N0cmluZzpAIkFYRGlzbWlzc0FjdGlvbiJdKQ0K
KyAgICAgICAgYmFja2luZ09iamVjdC0+cGVyZm9ybUVzY2FwZSgpOw0KIH0NCiANCiAtIChCT09M
KWFjY2Vzc2liaWxpdHlSZXBsYWNlUmFuZ2U6KE5TUmFuZ2UpcmFuZ2Ugd2l0aFRleHQ6KE5TU3Ry
aW5nICopc3RyaW5nDQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403373</attachid>
            <date>2020-07-02 09:37:53 -0700</date>
            <delta_ts>2020-07-02 13:28:10 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_213875.txt</filename>
            <type>text/plain</type>
            <size>24373</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggZTBiZDYwZjgxNTUuLjQyYTA2Y2ZkOTY1IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTcg
QEANCisyMDIwLTA3LTAyICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogSW1wbGVtZW50IHVzZXIgYWN0aW9uIHNwZWMgZm9yIEVzY2FwZSBhY3Rp
b24NCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM4
NzUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NTAyMjk4MD4NCisNCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2tleWV2
ZW50cy1wb3N0ZWQtZm9yLWRpc21pc3MtYWN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuDQorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24u
aHRtbDogQWRkZWQuDQorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOg0K
KyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnM6DQorICAg
ICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOg0KKw0KIDIwMjAtMDctMDIgIEVu
cmlxdWUgT2Nhw7FhIEdvbnrDoWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4NCiANCiAgICAgICAg
IFtHVEtdIExheW91dCB0ZXN0IG1lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwgaXMgZmFp
bGluZw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBv
c3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9rZXlldmVudHMtcG9zdGVkLWZvci1kaXNtaXNzLWFjdGlvbi1leHBlY3RlZC50eHQN
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uZTJjMmRhMzk4OTANCi0t
LSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBv
c3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24tZXhwZWN0ZWQudHh0DQpAQCAtMCwwICsxLDExIEBADQor
YWxlcnQNCitUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgZGlzbWlzcyBhY3Rpb24gZ2VuZXJh
dGVzIGFuIGVzY2FwZSBrZXkgZXZlbnQuDQorDQorT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLg0K
Kw0KKw0KK0tleWNvZGUgcmVjZWl2ZWQ6IGNvZGU6IDI3IGtleSBuYW1lOiBFc2NhcGUNCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlDQorDQorVEVTVCBDT01QTEVURQ0KKw0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlz
bWlzcy1hY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBv
c3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24uaHRtbA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4
IDAwMDAwMDAwMDAwLi5hMWQwYTM3MzJmNg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9rZXlldmVudHMtcG9zdGVkLWZvci1kaXNtaXNzLWFjdGlvbi5odG1s
DQpAQCAtMCwwICsxLDMyIEBADQorPGh0bWw+DQorPGh0bWw+DQorPGhlYWQ+DQorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+DQorPC9oZWFkPg0KKzxi
b2R5IGlkPSJib2R5Ij4NCisNCis8ZGl2IGlkPSJhbGVydCI+YWxlcnQ8L2Rpdj4NCisNCis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4NCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCisgICAgIA0K
KzxzY3JpcHQ+DQorICAgIGZ1bmN0aW9uIGhhbmRsZUtleURvd24oZXZlbnQpIHsNCisgICAgICAg
IGRlYnVnKCJLZXljb2RlIHJlY2VpdmVkOiBjb2RlOiAiICsgZXZlbnQua2V5Q29kZSArICIga2V5
IG5hbWU6ICIgKyBldmVudC5rZXkpOw0KKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsN
CisgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOw0KKyAgICAgICAgZmluaXNoSlNUZXN0
KCk7DQorICAgICB9DQorDQorICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIp
IHsNCisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOw0KKyAgICAgICAgZGVzY3JpcHRpb24o
IlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IHRoZSBkaXNtaXNzIGFjdGlvbiBnZW5lcmF0ZXMgYW4g
ZXNjYXBlIGtleSBldmVudC4iKTsNCisNCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJhbGVydCIpLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlEb3duKTsNCisg
ICAgICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiYWxl
cnQiKS5kaXNtaXNzKCk7DQorICAgIH0NCisgPC9zY3JpcHQ+DQorDQorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pg0KKzwvYm9keT4NCis8L2h0bWw+
DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucw0KaW5kZXggMjBlOThj
YzU2NzQuLjk1YjRkNTA2Mjk3IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMNCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zDQpAQCAtNzUwLDYgKzc1MCw3IEBAIEJ1ZyhHVEspIGVkaXRpbmcvc3BlbGxpbmcv
bWFya2Vycy5odG1sIFsgU2tpcCBdDQogd2Via2l0Lm9yZy9iLzg1OTU4IGZhc3QvZm9ybXMvZmls
ZS9maWxlLWlucHV0LWNhcHR1cmUuaHRtbCBbIEZhaWx1cmUgXQ0KIA0KIHdlYmtpdC5vcmcvYi8x
NDY3MjAgbWVkaWEvYWNjZXNzaWJsaXR5LWRlc2NyaWJlcy12aWRlby5odG1sIFsgRmFpbHVyZSBd
DQord2Via2l0Lm9yZy9iLzIxMzg3NCBhY2Nlc3NpYmlsaXR5L2tleWV2ZW50cy1wb3N0ZWQtZm9y
LWRpc21pc3MtYWN0aW9uLmh0bWwgWyBTa2lwIF0NCiANCiB3ZWJraXQub3JnL2IvMTQ2NzI0IGZh
c3QvdGV4dC93b3JkLWJyZWFrLWtlZXAtYWxsLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0NCiAN
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3Rh
dGlvbnMNCmluZGV4IGYxYzUxMTExYWY0Li41MmI3YWYzYWQ3NCAxMDA2NDQNCi0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9ucw0KKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0RXhwZWN0YXRpb25zDQpAQCAtNiw2
ICs2LDcgQEANCiBhY2Nlc3NpYmlsaXR5L2luc2VydC1uZXdsaW5lLmh0bWwgWyBQYXNzIF0NCiBh
Y2Nlc3NpYmlsaXR5L21pc3NwZWxsaW5nLXJhbmdlLmh0bWwgWyBQYXNzIF0NCiBhY2Nlc3NpYmls
aXR5L3VybC10ZXN0Lmh0bWwgWyBQYXNzIF0NCithY2Nlc3NpYmlsaXR5L2tleWV2ZW50cy1wb3N0
ZWQtZm9yLWRpc21pc3MtYWN0aW9uLmh0bWwgWyBQYXNzIF0NCiBjc3MzL2ZvbnQtdmFyaWFudC1z
bWFsbC1jYXBzLXN5bnRoZXNpcy1jb3ZlcmFnZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdDQog
ZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1jbG9zZS10b3Atbm9jbG9zZS5odG1sIFsgRmFp
bHVyZSBdDQogZmFzdC9tdWx0aWNvbC9mbGV4Ym94LXJvd3MuaHRtbCBbIFNraXAgXQ0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMNCmluZGV4IGMxMDY5MjIzMDgyLi4w
Njg4YzcyNDZlNCAxMDA2NDQNCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhw
ZWN0YXRpb25zDQorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9u
cw0KQEAgLTEzODQsNiArMTM4NCw3IEBAIGFjY2Vzc2liaWxpdHkvbXVsdGlzZWxlY3QtbGlzdC1y
ZXBvcnRzLWFjdGl2ZS1vcHRpb24uaHRtbCBbIFNraXAgXQ0KICMgaW5jcmVtZW50L2RlY3JlbWVu
dCBub3QgaW1wbGVtZW50ZWQgaW4gdGVzdCBydW5uZXINCiBhY2Nlc3NpYmlsaXR5L2tleWV2ZW50
cy1mb3ItaW5jcmVtZW50LWFjdGlvbnMtd2l0aC1ub2RlLXJlbW92YWwuaHRtbCBbIFNraXAgXQ0K
IGFjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItaW5jcmVtZW50LWFjdGlvbnMuaHRt
bCBbIFNraXAgXQ0KK2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlzbWlzcy1h
Y3Rpb24uaHRtbCBbIFNraXAgXQ0KIA0KIHdlYmtpdC5vcmcvYi8xNDA3OTYgYWNjZXNzaWJpbGl0
eS9hbHQtdGFnLW9uLWltYWdlLXdpdGgtbm9uaW1hZ2Utcm9sZS5odG1sIFsgU2tpcCBdDQogd2Vi
a2l0Lm9yZy9iLzE0MDc5OCBhY2Nlc3NpYmlsaXR5L2FyaWEtY29udHJvbHMtd2l0aC10YWJzLmh0
bWwgWyBTa2lwIF0NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cNCmluZGV4IDkxNDVmYjhjOTc1Li40MGNjZDMzZWIwMiAxMDA2
NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nDQpAQCAtMSwzICsxLDMxIEBADQorMjAyMC0wNy0wMiAgQ2hyaXMgRmxlaXphY2gg
IDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgQVg6IEltcGxlbWVudCB1c2VyIGFj
dGlvbiBzcGVjIGZvciBFc2NhcGUgYWN0aW9uDQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzODc1DQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjUw
MjI5ODA+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAg
ICAgIEltcGxlbWVudCB0aGUgRXNjYXBlIGFjdGlvbiBmb3IgdGhlIHVzZXIgYWN0aW9uIGV2ZW50
cy4NCisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNHL2FvbS9ibG9iL2doLXBhZ2VzL2V4
cGxhaW5lci5tZCN1c2VyLWFjdGlvbi1ldmVudHMtZnJvbS1hc3Npc3RpdmUtdGVjaG5vbG9neQ0K
Kw0KKyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9rZXlldmVudHMtcG9zdGVkLWZvci1kaXNt
aXNzLWFjdGlvbi5odG1sDQorDQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3QuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0OjpwZXJmb3JtRXNjYXBlKToNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6ZGlzcGF0Y2hTaW11bGF0ZWRLZXlib2FyZFVwRG93bkV2ZW50KToNCisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cG9zdEtleWJvYXJkS2V5c0ZvclZh
bHVlQ2hhbmdlKToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oOg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoN
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6
DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVySU9TLm1tOg0KKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNj
ZXNzaWJpbGl0eVBlcmZvcm1Fc2NhcGVdKToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6QVhJc29s
YXRlZE9iamVjdDo6cGVyZm9ybUVzY2FwZSk6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNv
bGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9t
YWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06DQorICAgICAgICAoLVtXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5UGVyZm9ybUFjdGlvbjpdKToN
CisNCiAyMDIwLTA3LTAxICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5j
b20+DQogDQogICAgICAgICBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRFeHRlbnNpb25zRm9yTUlNRVR5
cGUoKSBuZWVkcyB0byBoYW5kbGUgd2lsZGNhcmQgTUlNRSB0eXBlcw0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAN
CmluZGV4IDI5ZTIyYmIwZDZiLi5hOTU5NTAzMDhkNSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwDQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcA0KQEAg
LTU3LDcgKzU3LDYgQEANCiAjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQuaCINCiAjaW5jbHVk
ZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIg0KICNpbmNsdWRlICJIVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudC5oIg0KLSNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiDQogI2luY2x1ZGUgIkxhYmVs
YWJsZUVsZW1lbnQuaCINCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIg0KICNpbmNsdWRl
ICJNYXRoTUxFbGVtZW50LmgiDQpAQCAtMTA5NSw4ICsxMDk0LDM5IEBAIHZvaWQgQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OmRlY3JlbWVudCgpDQogICAgIGFsdGVyU2xpZGVyVmFsdWUoZmFsc2Up
Ow0KIH0NCiANCitib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwZXJmb3JtRXNjYXBlKCkN
Cit7DQorICAgIC8vIEluIGNhc2UgdGhlIGtleWJvYXJkIGV2ZW50IGNhdXNlcyB0aGlzIGVsZW1l
bnQgdG8gYmUgcmVtb3ZlZC4NCisgICAgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IHByb3RlY3Rl
ZFRoaXMoKnRoaXMpOw0KKyAgICANCisgICAgYXV0byBrZXlJbml0ID0gS2V5Ym9hcmRFdmVudDo6
SW5pdCgpOw0KKyAgICANCisgICAga2V5SW5pdC5rZXkgPSAiRXNjYXBlIl9zOw0KKyAgICBrZXlJ
bml0LmtleUNvZGUgPSAweDFiOw0KKyAgICANCisgICAgcmV0dXJuIGRpc3BhdGNoU2ltdWxhdGVk
S2V5Ym9hcmRVcERvd25FdmVudChrZXlJbml0KTsNCit9DQorDQorYm9vbCBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6ZGlzcGF0Y2hTaW11bGF0ZWRLZXlib2FyZFVwRG93bkV2ZW50KEtleWJvYXJk
RXZlbnQ6OkluaXQmIGtleUluaXQpDQorew0KKyAgICBib29sIGhhbmRsZWQgPSBmYWxzZTsNCisg
ICAgaWYgKGF1dG8qIG5vZGUgPSB0aGlzLT5ub2RlKCkpIHsNCisgICAgICAgIGF1dG8gZXZlbnQg
PSBLZXlib2FyZEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmtleWRvd25FdmVudCwga2V5SW5p
dCk7DQorICAgICAgICBub2RlLT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsNCisgICAgICAgIGhhbmRs
ZWQgfD0gZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCk7DQorICAgIH0NCisgICAgDQorICAgIC8vIEVu
c3VyZSBub2RlIGlzIHN0aWxsIHZhbGlkIGFuZCB3YXNuJ3QgcmVtb3ZlZCBhZnRlciB0aGUga2V5
ZG93bi4NCisgICAgaWYgKGF1dG8qIG5vZGUgPSB0aGlzLT5ub2RlKCkpIHsNCisgICAgICAgIGF1
dG8gZXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmtleXVwRXZlbnQs
IGtleUluaXQpOw0KKyAgICAgICAgbm9kZS0+ZGlzcGF0Y2hFdmVudChldmVudCk7DQorICAgICAg
ICBoYW5kbGVkIHw9IGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpOw0KKyAgICB9DQorICAgIHJldHVy
biBoYW5kbGVkOw0KK30NCisNCiAvLyBGaXJlIGEga2V5Ym9hcmQgZXZlbnQgaWYgd2Ugd2VyZSBu
b3QgYWJsZSB0byBzZXQgdGhpcyB2YWx1ZSBuYXRpdmVseS4NCi12b2lkIEFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0Ojpwb3N0S2V5Ym9hcmRLZXlzRm9yVmFsdWVDaGFuZ2UoYm9vbCBpbmNyZWFzZSkN
Citib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpwb3N0S2V5Ym9hcmRLZXlzRm9yVmFsdWVD
aGFuZ2UoYm9vbCBpbmNyZWFzZSkNCiB7DQogICAgIC8vIEluIGNhc2UgdGhlIGtleWJvYXJkIGV2
ZW50IGNhdXNlcyB0aGlzIGVsZW1lbnQgdG8gYmUgcmVtb3ZlZC4NCiAgICAgUmVmPEFjY2Vzc2li
aWxpdHlPYmplY3Q+IHByb3RlY3RlZFRoaXMoKnRoaXMpOw0KQEAgLTExMDgsMTIgKzExMzgsNyBA
QCB2b2lkIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpwb3N0S2V5Ym9hcmRLZXlzRm9yVmFsdWVD
aGFuZ2UoYm9vbCBpbmNyZWFzZSkNCiAgICAga2V5SW5pdC5rZXkgPSBpbmNyZWFzZSA/IHZlcnRp
Y2FsID8gIkFycm93VXAiX3MgOiBpc0xUUiA/ICJBcnJvd1JpZ2h0Il9zIDogIkFycm93TGVmdCJf
cyA6IHZlcnRpY2FsID8gIkFycm93RG93biJfcyA6IGlzTFRSID8gIkFycm93TGVmdCJfcyA6ICJB
cnJvd1JpZ2h0Il9zOw0KICAgICBrZXlJbml0LmtleUlkZW50aWZpZXIgPSBpbmNyZWFzZSA/IHZl
cnRpY2FsID8gInVwIl9zIDogaXNMVFIgPyAicmlnaHQiX3MgOiAibGVmdCJfcyA6IHZlcnRpY2Fs
ID8gImRvd24iX3MgOiBpc0xUUiA/ICJsZWZ0Il9zIDogInJpZ2h0Il9zOw0KIA0KLSAgICBpZiAo
YXV0byogbm9kZSA9IHRoaXMtPm5vZGUoKSkNCi0gICAgICAgIG5vZGUtPmRpc3BhdGNoRXZlbnQo
S2V5Ym9hcmRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQsIGtleUluaXQp
KTsNCi0NCi0gICAgLy8gRW5zdXJlIG5vZGUgaXMgc3RpbGwgdmFsaWQgYW5kIHdhc24ndCByZW1v
dmVkIGFmdGVyIHRoZSBrZXlkb3duLg0KLSAgICBpZiAoYXV0byogbm9kZSA9IHRoaXMtPm5vZGUo
KSkNCi0gICAgICAgIG5vZGUtPmRpc3BhdGNoRXZlbnQoS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5rZXl1cEV2ZW50LCBrZXlJbml0KSk7DQorICAgIHJldHVybiBkaXNwYXRjaFNp
bXVsYXRlZEtleWJvYXJkVXBEb3duRXZlbnQoa2V5SW5pdCk7DQogfQ0KIA0KIHZvaWQgQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3Q6OnNldE5vZGVWYWx1ZShib29sIGluY3JlYXNlLCBmbG9hdCB2YWx1
ZSkNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmgNCmluZGV4IGNiNWY2MWJjZDlhLi5jMWIyYjU5M2VkNiAxMDA2NDQNCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qu
aA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oDQpAQCAtMjksNiArMjksNyBAQA0KICNwcmFnbWEgb25jZQ0KIA0KICNpbmNsdWRlICJB
Y2Nlc3NpYmlsaXR5T2JqZWN0LmgiDQorI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCINCiAjaW5j
bHVkZSAiTGF5b3V0UmVjdC5oIg0KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPg0KIA0KQEAgLTE4
OSw4ICsxOTAsMTEgQEAgcHJpdmF0ZToNCiAgICAgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlz
SWdub3JlZCgpIGNvbnN0IG92ZXJyaWRlOw0KICAgICBib29sIHVzZXNBbHRUYWdGb3JUZXh0Q29t
cHV0YXRpb24oKSBjb25zdDsNCiAgICAgYm9vbCByb2xlSWdub3Jlc1RpdGxlKCkgY29uc3Q7DQot
ICAgIHZvaWQgcG9zdEtleWJvYXJkS2V5c0ZvclZhbHVlQ2hhbmdlKGJvb2wgaW5jcmVhc2UpOw0K
KyAgICBib29sIHBvc3RLZXlib2FyZEtleXNGb3JWYWx1ZUNoYW5nZShib29sIGluY3JlYXNlKTsN
CiAgICAgdm9pZCBzZXROb2RlVmFsdWUoYm9vbCBpbmNyZWFzZSwgZmxvYXQgdmFsdWUpOw0KKyAg
ICBib29sIHBlcmZvcm1Fc2NhcGUoKSBvdmVycmlkZTsNCisgICAgYm9vbCBkaXNwYXRjaFNpbXVs
YXRlZEtleWJvYXJkVXBEb3duRXZlbnQoS2V5Ym9hcmRFdmVudDo6SW5pdCYpOw0KKyAgICANCiAg
ICAgTm9kZSogbV9ub2RlOw0KIH07DQogDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaA0KaW5kZXggOTUzOGZlNDE1YjMuLjZiODFiMjNj
MzkwIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oDQpAQCAtNDc4LDcgKzQ3OCw4IEBAIHB1YmxpYzoNCiAgICAgQWNjZXNzaWJp
bGl0eU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7DQogICAgIHZvaWQg
aW5jcmVtZW50KCkgb3ZlcnJpZGUgeyB9DQogICAgIHZvaWQgZGVjcmVtZW50KCkgb3ZlcnJpZGUg
eyB9DQotDQorICAgIGJvb2wgcGVyZm9ybUVzY2FwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNl
OyB9DQorICAgIA0KICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZCgpIG92ZXJyaWRlIHsgfQ0KICAg
ICB2b2lkIHRleHRDaGFuZ2VkKCkgb3ZlcnJpZGUgeyB9DQogICAgIHZvaWQgdXBkYXRlQWNjZXNz
aWJpbGl0eVJvbGUoKSBvdmVycmlkZSB7IH0NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oDQppbmRleCBi
ZWE0YTdmZjQ2Yi4uM2VjNzAyY2EzZDAgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaA0KKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgNCkBAIC05
MDcsNyArOTA3LDggQEAgcHVibGljOg0KICAgICB2aXJ0dWFsIHZvaWQgbWFrZVJhbmdlVmlzaWJs
ZShjb25zdCBQbGFpblRleHRSYW5nZSYpID0gMDsNCiAgICAgdmlydHVhbCBib29sIHByZXNzKCkg
PSAwOw0KICAgICB2aXJ0dWFsIGJvb2wgcGVyZm9ybURlZmF1bHRBY3Rpb24oKSA9IDA7DQotDQor
ICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtRXNjYXBlKCkgPSAwOw0KKyAgICANCiAgICAgdmlydHVh
bCBBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb24gb3JpZW50YXRpb24oKSBjb25zdCA9IDA7DQogICAg
IHZpcnR1YWwgdm9pZCBpbmNyZW1lbnQoKSA9IDA7DQogICAgIHZpcnR1YWwgdm9pZCBkZWNyZW1l
bnQoKSA9IDA7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3Mv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQ0KaW5kZXgg
Yjc3NDI1Y2Q0MTAuLmY5NTczNzRhZjQwIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0NCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVySU9TLm1tDQpAQCAtMTgyNyw2ICsxODI3LDEzIEBAIHN0YXRpYyB2b2lkIGFwcGVuZFN0
cmluZ1RvUmVzdWx0KE5TTXV0YWJsZVN0cmluZyAqcmVzdWx0LCBOU1N0cmluZyAqc3RyaW5nKQ0K
ICAgICByZXR1cm4gbmlsOw0KIH0NCiANCistIChCT09MKWFjY2Vzc2liaWxpdHlQZXJmb3JtRXNj
YXBlDQorew0KKyAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQ0KKyAg
ICAgICAgcmV0dXJuIE5POw0KKyAgICByZXR1cm4gc2VsZi5heEJhY2tpbmdPYmplY3QtPnBlcmZv
cm1Fc2NhcGUoKTsNCit9DQorDQogLSAoQk9PTClfYWNjZXNzaWJpbGl0eUFjdGl2YXRlDQogew0K
ICAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQ0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHANCmluZGV4IDA2MWU5YTY4NjBkLi5kZTU0YmU3MjVjNCAxMDA2NDQNCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRP
YmplY3QuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkT2JqZWN0LmNwcA0KQEAgLTYzMCw2ICs2MzAsMTUgQEAgdm9pZCBBWElzb2xh
dGVkT2JqZWN0OjpzZXRJc0V4cGFuZGVkKGJvb2wgdmFsdWUpDQogICAgIH0pOw0KIH0NCiANCiti
b29sIEFYSXNvbGF0ZWRPYmplY3Q6OnBlcmZvcm1Fc2NhcGUoKQ0KK3sNCisgICAgcmV0dXJuIEFj
Y2Vzc2liaWxpdHk6OnJldHJpZXZlVmFsdWVGcm9tTWFpblRocmVhZDxib29sPihbdGhpc10gKCkg
LT4gYm9vbCB7DQorICAgICAgICBpZiAoYXV0byogYXhPYmplY3QgPSBhc3NvY2lhdGVkQVhPYmpl
Y3QoKSkNCisgICAgICAgICAgICByZXR1cm4gYXhPYmplY3QtPnBlcmZvcm1Fc2NhcGUoKTsNCisg
ICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgfSk7DQorfQ0KKw0KIGJvb2wgQVhJc29sYXRlZE9i
amVjdDo6c2V0VmFsdWUoZmxvYXQgdmFsdWUpDQogew0KICAgICByZXR1cm4gQWNjZXNzaWJpbGl0
eTo6cmV0cmlldmVWYWx1ZUZyb21NYWluVGhyZWFkPGJvb2w+KFsmdmFsdWUsIHRoaXNdICgpIC0+
IGJvb2wgew0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
aXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaA0KaW5kZXggMmExOTlmZWE1OWIuLjY4MDJj
MTU2NjE5IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgNCkBAIC03MjEsNiArNzIxLDcgQEAg
cHJpdmF0ZToNCiAgICAgRmxvYXRSZWN0IGNvbnZlcnRGcmFtZVRvU3BhY2UoY29uc3QgRmxvYXRS
ZWN0JiwgQWNjZXNzaWJpbGl0eUNvbnZlcnNpb25TcGFjZSkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gRmxvYXRSZWN0KCk7IH0NCiAgICAgdm9pZCBpbmNyZW1lbnQoKSBvdmVycmlkZSB7IH0NCiAg
ICAgdm9pZCBkZWNyZW1lbnQoKSBvdmVycmlkZSB7IH0NCisgICAgYm9vbCBwZXJmb3JtRXNjYXBl
KCkgb3ZlcnJpZGU7DQogICAgIHZvaWQgc2Nyb2xsVG9NYWtlVmlzaWJsZSgpIGNvbnN0IG92ZXJy
aWRlIHsgfQ0KICAgICB2b2lkIHNjcm9sbFRvTWFrZVZpc2libGVXaXRoU3ViRm9jdXMoY29uc3Qg
SW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlIHsgfQ0KICAgICB2b2lkIHNjcm9sbFRvR2xvYmFsUG9p
bnQoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlkZSB7IH0NCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyTWFjLm1tDQppbmRleCA5Njg2ZDQzNTU2NC4uNTNhNzU4MmFjNDEgMTAw
NjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlck1hYy5tbQ0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0NCkBAIC0zNDcwLDYgKzM0
NzAsOCBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQNCiAgICAgICAgIFtz
ZWxmIGFjY2Vzc2liaWxpdHlQZXJmb3JtRGVjcmVtZW50QWN0aW9uXTsNCiAgICAgZWxzZSBpZiAo
W2FjdGlvbiBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5U2Nyb2xsVG9WaXNpYmxlQWN0
aW9uXSkNCiAgICAgICAgIFtzZWxmIGFjY2Vzc2liaWxpdHlTY3JvbGxUb1Zpc2libGVdOw0KKyAg
ICBlbHNlIGlmIChbYWN0aW9uIGlzRXF1YWxUb1N0cmluZzpAIkFYRGlzbWlzc0FjdGlvbiJdKQ0K
KyAgICAgICAgYmFja2luZ09iamVjdC0+cGVyZm9ybUVzY2FwZSgpOw0KIH0NCiANCiAtIChCT09M
KWFjY2Vzc2liaWxpdHlSZXBsYWNlUmFuZ2U6KE5TUmFuZ2UpcmFuZ2Ugd2l0aFRleHQ6KE5TU3Ry
aW5nICopc3RyaW5nDQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nDQppbmRleCA4MTAwMzU5NTlmYi4uMTc2Y2RjNzVkYjUgMTAwNjQ0DQotLS0gYS9Ub29scy9D
aGFuZ2VMb2cNCisrKyBiL1Rvb2xzL0NoYW5nZUxvZw0KQEAgLTEsMyArMSwyOSBAQA0KKzIwMjAt
MDctMDIgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4NCisNCisgICAgICAg
IEFYOiBJbXBsZW1lbnQgdXNlciBhY3Rpb24gc3BlYyBmb3IgRXNjYXBlIGFjdGlvbg0KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzg3NQ0KKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzY1MDIyOTgwPg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuDQorDQorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuY3BwOg0KKyAgICAgICAgKGRpc21pc3NDYWxsYmFjayk6DQorICAgICAgICAoQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0SlNDbGFzcyk6DQorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaDoNCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
aW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW06DQorICAgICAgICAoQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6ZGlzbWlzcyk6DQorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tOg0KKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmRpc21pc3MpOg0KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwOg0KKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6dGV4dE1hcmtlclJhbmdlTWF0Y2hlc1RleHROZWFyTWFya2Vycyk6DQorICAg
ICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNtaXNzKToNCisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmg6
DQorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudC5pZGw6DQorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW06DQorICAgICAgICAo
V1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNtaXNzKToNCisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5t
bToNCisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc21pc3MpOg0KKw0K
IDIwMjAtMDctMDEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+DQogDQog
ICAgICAgICBGaXggdGhlIFdlYktpdCBidWlsZCBhZnRlciA8cmRhcjovL3Byb2JsZW0vNjQyODgx
OTE+DQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNw
cA0KaW5kZXggMTFmM2E1MTk0ZjkuLjBlNWE1MGY2YjlkIDEwMDY0NA0KLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHANCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwDQpAQCAtNzI3LDYgKzcyNywxMiBA
QCBzdGF0aWMgSlNWYWx1ZVJlZiBwcmVzc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYg0KICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmlu
ZWQoY29udGV4dCk7DQogfQ0KIA0KK3N0YXRpYyBKU1ZhbHVlUmVmIGRpc21pc3NDYWxsYmFjayhK
U0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRo
aXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50
c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pDQorew0KKyAgICB0b0FYRWxlbWVudCh0aGlzT2Jq
ZWN0KS0+ZGlzbWlzcygpOw0KKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4
dCk7DQorfQ0KKw0KIHN0YXRpYyBKU1ZhbHVlUmVmIHNjcm9sbFRvTWFrZVZpc2libGVXaXRoU3Vi
Rm9jdXNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24s
IEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1Zh
bHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pDQogew0KICAgICB1bnNp
Z25lZCB4ID0gMDsNCkBAIC0xOTc4LDYgKzE5ODQsNyBAQCBKU0NsYXNzUmVmIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmdldEpTQ2xhc3MoKQ0KICAgICAgICAgeyAiZGVjcmVtZW50IiwgZGVjcmVt
ZW50Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwNCiAgICAgICAgIHsgInNob3dNZW51Iiwgc2hvd01lbnVDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LA0KICAgICAgICAgeyAicHJlc3MiLCBwcmVzc0NhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
DQorICAgICAgICB7ICJkaXNtaXNzIiwgZGlzbWlzc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sDQogICAgICAg
ICB7ICJkaXNjbG9zZWRSb3dBdEluZGV4IiwgZGlzY2xvc2VkUm93QXRJbmRleENhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVs
ZXRlIH0sDQogICAgICAgICB7ICJhcmlhT3duc0VsZW1lbnRBdEluZGV4IiwgYXJpYU93bnNFbGVt
ZW50QXRJbmRleENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sDQogICAgICAgICB7ICJhcmlhRmxvd1RvRWxlbWVu
dEF0SW5kZXgiLCBhcmlhRmxvd1RvRWxlbWVudEF0SW5kZXhDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LA0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaA0KaW5kZXggZDcy
MTk3ZmVjMGMuLmE1MDI2NWZiNjA5IDEwMDY0NA0KLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oDQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50LmgNCkBAIC05Nyw2ICs5Nyw3IEBAIHB1YmxpYzoNCiAgICAgdm9p
ZCBkZWNyZW1lbnQoKTsNCiAgICAgdm9pZCBzaG93TWVudSgpOw0KICAgICB2b2lkIHByZXNzKCk7
DQorICAgIHZvaWQgZGlzbWlzcygpOw0KIA0KICAgICAvLyBBdHRyaWJ1dGVzIC0gcGxhdGZvcm0t
aW5kZXBlbmRlbnQgaW1wbGVtZW50YXRpb25zDQogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBzdHJpbmdBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpOw0KZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1t
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0N
CmluZGV4IDE2YWM2YTA2MjNjLi5lM2M5MDlkNmRkMiAxMDA2NDQNCi0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tDQorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQ0KQEAgLTkxLDYg
KzkxLDcgQEAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudChp
ZCBlbGVtZW50KQ0KIC0gKE5TU3RyaW5nICopYWNjZXNzaWJpbGl0eVRleHR1YWxDb250ZXh0Ow0K
IC0gKEJPT0wpYWNjZXNzaWJpbGl0eUhhc1BvcHVwOw0KIC0gKE5TU3RyaW5nICopYWNjZXNzaWJp
bGl0eVBvcHVwVmFsdWU7DQorLSAoQk9PTClhY2Nlc3NpYmlsaXR5UGVyZm9ybUVzY2FwZTsNCiAN
CiAvLyBUZXh0TWFya2VyIHJlbGF0ZWQNCiAtIChOU0FycmF5ICopdGV4dE1hcmtlclJhbmdlOw0K
QEAgLTMyOSw2ICszMzAsMTEgQEAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojp0aXRsZVVJRWxlbWVudCgpDQogICAgIHJldHVybiAwOw0KIH0NCiANCit2b2lk
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc21pc3MoKQ0KK3sNCisgICAgW21fZWxlbWVudCBh
Y2Nlc3NpYmlsaXR5UGVyZm9ybUVzY2FwZV07DQorfQ0KKw0KIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGFyZW50RWxlbWVudCgpDQogew0KICAgICBpZCBh
Y2Nlc3NpYmlsaXR5T2JqZWN0ID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5Q29udGFpbmVyXTsN
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudE1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50TWFjLm1tDQppbmRleCA2MjEzZTc2MTZjOC4uZTFlZmQ3ZjRlMTYgMTAwNjQ0DQotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQ0KKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0N
CkBAIC0xMzc0LDYgKzEzNzQsMTMgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRW
YWx1ZShKU1N0cmluZ1JlZiB2YWx1ZVRleHQpDQogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMN
CiB9DQogDQordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNtaXNzKCkNCit7DQorICAg
IEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUw0KKyAgICBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlQ
ZXJmb3JtQWN0aW9uOkAiQVhEaXNtaXNzQWN0aW9uIl07DQorICAgIEVORF9BWF9PQkpDX0VYQ0VQ
VElPTlMNCit9DQorDQogdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmNyZW1lbnQoKQ0K
IHsNCiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TDQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5jcHANCmluZGV4IDJhMjM3ZDM2OTliLi40MjkyZTg4OTNhZCAxMDA2NDQNCi0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dC5jcHANCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudC5jcHANCkBAIC03Nyw3ICs3Nyw2IEBAIFJlZlB0cjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpmaWVsZHNldEFuY2VzdG9yRWxl
bWVudCgpDQogYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1NlYXJjaEZpZWxkKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0NCiBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVGV4
dEFyZWEoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQ0KIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4
dE1hcmtlclJhbmdlPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VNYXRj
aGVzVGV4dE5lYXJNYXJrZXJzKEpTU3RyaW5nUmVmLCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcios
IEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKikgeyByZXR1cm4gbnVsbHB0cjsgfQ0KLWJvb2wgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzbWlzcygpIHsgcmV0dXJuIGZhbHNlOyB9DQogSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJp
bmdGb3JFbGVtZW50KCkgeyByZXR1cm4gbnVsbHB0cjsgfQ0KIGJvb2wgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNJblRhYmxlQ2VsbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9DQogI2VuZGlm
DQpAQCAtOTUsNiArOTQsNyBAQCBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZT4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRUZXh0TWFya2VyUg0KIHZvaWQgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6cmVzZXRTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSgpIHsgfQ0KIHZv
aWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0Qm9vbEF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5n
UmVmLCBib29sKSB7IH0NCiB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFZhbHVlKEpT
U3RyaW5nUmVmKSB7IH0NCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc21pc3MoKSB7
IH0NCiBKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlYXJjaFRleHRXaXRoQ3Jp
dGVyaWEoSlNDb250ZXh0UmVmLCBKU1ZhbHVlUmVmLCBKU1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYp
IHsgcmV0dXJuIG51bGxwdHI7IH0NCiAjZW5kaWYNCiANCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dC5oDQppbmRleCA4N2NlYjVmNzgwYi4uMTQ5YTlmZjIyMWQgMTAwNjQ0DQotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaA0K
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50LmgNCkBAIC0xMDMsNyArMTAzLDcgQEAgcHVibGljOg0KICAgICB2b2lkIGRlY3Jl
bWVudCgpOw0KICAgICB2b2lkIHNob3dNZW51KCk7DQogICAgIHZvaWQgcHJlc3MoKTsNCi0gICAg
Ym9vbCBkaXNtaXNzKCk7DQorICAgIHZvaWQgZGlzbWlzcygpOw0KICNpZiBQTEFURk9STShNQUMp
DQogICAgIHZvaWQgc3luY1ByZXNzKCk7DQogICAgIHZvaWQgYXN5bmNJbmNyZW1lbnQoKTsNCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbA0KaW5kZXggZWJl
MjRiYmIxOGMuLjdhNGUzNjFkZWMyIDEwMDY0NA0KLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbA0KKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmlkbA0KQEAgLTEyNSw3ICsxMjUsNyBAQA0KICAgICB2b2lkIHByZXNz
KCk7DQogICAgIHZvaWQgc3luY1ByZXNzKCk7DQogICAgIHZvaWQgc2hvd01lbnUoKTsNCi0gICAg
Ym9vbGVhbiBkaXNtaXNzKCk7DQorICAgIHZvaWQgZGlzbWlzcygpOw0KIA0KICAgICAvLyBBdHRy
aWJ1dGUgaW5mby4NCiAgICAgRE9NU3RyaW5nIGFsbEF0dHJpYnV0ZXMoKTsNCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50SU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9p
b3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQ0KaW5kZXggZWFkYmU4MzhmMDAuLjRhOTcz
ZmZlMWMzIDEwMDY0NA0KLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQ0KKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQ0K
QEAgLTg3Miw5ICs4NzIsOSBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXNzKCkN
CiAgICAgW21fZWxlbWVudCBfYWNjZXNzaWJpbGl0eUFjdGl2YXRlXTsNCiB9DQogICAgIA0KLWJv
b2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzbWlzcygpDQordm9pZCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpkaXNtaXNzKCkNCiB7DQotICAgIHJldHVybiBbbV9lbGVtZW50IGFjY2Vzc2li
aWxpdHlQZXJmb3JtRXNjYXBlXTsNCisgICAgW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5UGVyZm9y
bUVzY2FwZV07DQogfQ0KIA0KIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0
ZWRDaGlsZChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBlbGVtZW50KSBjb25zdA0KZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnRNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tDQppbmRleCA2Mzk4ODU1MDYxNi4uMTk2
MTZkMTE2OGUgMTAwNjQ0DQotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tDQorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1t
DQpAQCAtMTQzMiw2ICsxNDMyLDEzIEBAIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0
U2VsZWN0ZWRUZXh0UmFuZ2UodW5zaWduZWQgbG9jYXRpb24sIHVuc2lnbmVkIGxlDQogICAgIHJl
dHVybiB0cnVlOw0KIH0NCiANCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc21pc3Mo
KQ0KK3sNCisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TDQorICAgIFttX2VsZW1lbnQgYWNj
ZXNzaWJpbGl0eVBlcmZvcm1BY3Rpb246QCJBWERpc21pc3NBY3Rpb24iXTsNCisgICAgRU5EX0FY
X09CSkNfRVhDRVBUSU9OUw0KK30NCisNCiBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNl
dFNlbGVjdGVkVmlzaWJsZVRleHRSYW5nZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKiBt
YXJrZXJSYW5nZSkNCiB7DQogICAgIHNldEF0dHJpYnV0ZVZhbHVlKG1fZWxlbWVudC5nZXQoKSwg
TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGUsIG1hcmtlclJh
bmdlLT5wbGF0Zm9ybVRleHRNYXJrZXJSYW5nZSgpKTsNCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403393</attachid>
            <date>2020-07-02 13:28:10 -0700</date>
            <delta_ts>2020-07-02 15:07:14 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_213875.txt</filename>
            <type>text/plain</type>
            <size>24358</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggZTBiZDYwZjgxNTUuLjQyYTA2Y2ZkOTY1IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTcg
QEANCisyMDIwLTA3LTAyICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogSW1wbGVtZW50IHVzZXIgYWN0aW9uIHNwZWMgZm9yIEVzY2FwZSBhY3Rp
b24NCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM4
NzUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NTAyMjk4MD4NCisNCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2tleWV2
ZW50cy1wb3N0ZWQtZm9yLWRpc21pc3MtYWN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuDQorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24u
aHRtbDogQWRkZWQuDQorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOg0K
KyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnM6DQorICAg
ICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOg0KKw0KIDIwMjAtMDctMDIgIEVu
cmlxdWUgT2Nhw7FhIEdvbnrDoWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4NCiANCiAgICAgICAg
IFtHVEtdIExheW91dCB0ZXN0IG1lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwgaXMgZmFp
bGluZw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBv
c3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9rZXlldmVudHMtcG9zdGVkLWZvci1kaXNtaXNzLWFjdGlvbi1leHBlY3RlZC50eHQN
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uZTJjMmRhMzk4OTANCi0t
LSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBv
c3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24tZXhwZWN0ZWQudHh0DQpAQCAtMCwwICsxLDExIEBADQor
YWxlcnQNCitUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgZGlzbWlzcyBhY3Rpb24gZ2VuZXJh
dGVzIGFuIGVzY2FwZSBrZXkgZXZlbnQuDQorDQorT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLg0K
Kw0KKw0KK0tleWNvZGUgcmVjZWl2ZWQ6IGNvZGU6IDI3IGtleSBuYW1lOiBFc2NhcGUNCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlDQorDQorVEVTVCBDT01QTEVURQ0KKw0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlz
bWlzcy1hY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBv
c3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24uaHRtbA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4
IDAwMDAwMDAwMDAwLi5hMWQwYTM3MzJmNg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9rZXlldmVudHMtcG9zdGVkLWZvci1kaXNtaXNzLWFjdGlvbi5odG1s
DQpAQCAtMCwwICsxLDMyIEBADQorPGh0bWw+DQorPGh0bWw+DQorPGhlYWQ+DQorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+DQorPC9oZWFkPg0KKzxi
b2R5IGlkPSJib2R5Ij4NCisNCis8ZGl2IGlkPSJhbGVydCI+YWxlcnQ8L2Rpdj4NCisNCis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4NCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCisgICAgIA0K
KzxzY3JpcHQ+DQorICAgIGZ1bmN0aW9uIGhhbmRsZUtleURvd24oZXZlbnQpIHsNCisgICAgICAg
IGRlYnVnKCJLZXljb2RlIHJlY2VpdmVkOiBjb2RlOiAiICsgZXZlbnQua2V5Q29kZSArICIga2V5
IG5hbWU6ICIgKyBldmVudC5rZXkpOw0KKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsN
CisgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOw0KKyAgICAgICAgZmluaXNoSlNUZXN0
KCk7DQorICAgICB9DQorDQorICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIp
IHsNCisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOw0KKyAgICAgICAgZGVzY3JpcHRpb24o
IlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IHRoZSBkaXNtaXNzIGFjdGlvbiBnZW5lcmF0ZXMgYW4g
ZXNjYXBlIGtleSBldmVudC4iKTsNCisNCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJhbGVydCIpLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlEb3duKTsNCisg
ICAgICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiYWxl
cnQiKS5kaXNtaXNzKCk7DQorICAgIH0NCisgPC9zY3JpcHQ+DQorDQorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pg0KKzwvYm9keT4NCis8L2h0bWw+
DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucw0KaW5kZXggMjBlOThj
YzU2NzQuLjk1YjRkNTA2Mjk3IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMNCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zDQpAQCAtNzUwLDYgKzc1MCw3IEBAIEJ1ZyhHVEspIGVkaXRpbmcvc3BlbGxpbmcv
bWFya2Vycy5odG1sIFsgU2tpcCBdDQogd2Via2l0Lm9yZy9iLzg1OTU4IGZhc3QvZm9ybXMvZmls
ZS9maWxlLWlucHV0LWNhcHR1cmUuaHRtbCBbIEZhaWx1cmUgXQ0KIA0KIHdlYmtpdC5vcmcvYi8x
NDY3MjAgbWVkaWEvYWNjZXNzaWJsaXR5LWRlc2NyaWJlcy12aWRlby5odG1sIFsgRmFpbHVyZSBd
DQord2Via2l0Lm9yZy9iLzIxMzg3NCBhY2Nlc3NpYmlsaXR5L2tleWV2ZW50cy1wb3N0ZWQtZm9y
LWRpc21pc3MtYWN0aW9uLmh0bWwgWyBTa2lwIF0NCiANCiB3ZWJraXQub3JnL2IvMTQ2NzI0IGZh
c3QvdGV4dC93b3JkLWJyZWFrLWtlZXAtYWxsLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0NCiAN
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3Rh
dGlvbnMNCmluZGV4IGYxYzUxMTExYWY0Li41MmI3YWYzYWQ3NCAxMDA2NDQNCi0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9ucw0KKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0RXhwZWN0YXRpb25zDQpAQCAtNiw2
ICs2LDcgQEANCiBhY2Nlc3NpYmlsaXR5L2luc2VydC1uZXdsaW5lLmh0bWwgWyBQYXNzIF0NCiBh
Y2Nlc3NpYmlsaXR5L21pc3NwZWxsaW5nLXJhbmdlLmh0bWwgWyBQYXNzIF0NCiBhY2Nlc3NpYmls
aXR5L3VybC10ZXN0Lmh0bWwgWyBQYXNzIF0NCithY2Nlc3NpYmlsaXR5L2tleWV2ZW50cy1wb3N0
ZWQtZm9yLWRpc21pc3MtYWN0aW9uLmh0bWwgWyBQYXNzIF0NCiBjc3MzL2ZvbnQtdmFyaWFudC1z
bWFsbC1jYXBzLXN5bnRoZXNpcy1jb3ZlcmFnZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdDQog
ZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1jbG9zZS10b3Atbm9jbG9zZS5odG1sIFsgRmFp
bHVyZSBdDQogZmFzdC9tdWx0aWNvbC9mbGV4Ym94LXJvd3MuaHRtbCBbIFNraXAgXQ0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMNCmluZGV4IGMxMDY5MjIzMDgyLi4w
Njg4YzcyNDZlNCAxMDA2NDQNCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhw
ZWN0YXRpb25zDQorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9u
cw0KQEAgLTEzODQsNiArMTM4NCw3IEBAIGFjY2Vzc2liaWxpdHkvbXVsdGlzZWxlY3QtbGlzdC1y
ZXBvcnRzLWFjdGl2ZS1vcHRpb24uaHRtbCBbIFNraXAgXQ0KICMgaW5jcmVtZW50L2RlY3JlbWVu
dCBub3QgaW1wbGVtZW50ZWQgaW4gdGVzdCBydW5uZXINCiBhY2Nlc3NpYmlsaXR5L2tleWV2ZW50
cy1mb3ItaW5jcmVtZW50LWFjdGlvbnMtd2l0aC1ub2RlLXJlbW92YWwuaHRtbCBbIFNraXAgXQ0K
IGFjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItaW5jcmVtZW50LWFjdGlvbnMuaHRt
bCBbIFNraXAgXQ0KK2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlzbWlzcy1h
Y3Rpb24uaHRtbCBbIFNraXAgXQ0KIA0KIHdlYmtpdC5vcmcvYi8xNDA3OTYgYWNjZXNzaWJpbGl0
eS9hbHQtdGFnLW9uLWltYWdlLXdpdGgtbm9uaW1hZ2Utcm9sZS5odG1sIFsgU2tpcCBdDQogd2Vi
a2l0Lm9yZy9iLzE0MDc5OCBhY2Nlc3NpYmlsaXR5L2FyaWEtY29udHJvbHMtd2l0aC10YWJzLmh0
bWwgWyBTa2lwIF0NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cNCmluZGV4IDkxNDVmYjhjOTc1Li40MGNjZDMzZWIwMiAxMDA2
NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nDQpAQCAtMSwzICsxLDMxIEBADQorMjAyMC0wNy0wMiAgQ2hyaXMgRmxlaXphY2gg
IDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgQVg6IEltcGxlbWVudCB1c2VyIGFj
dGlvbiBzcGVjIGZvciBFc2NhcGUgYWN0aW9uDQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzODc1DQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjUw
MjI5ODA+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAg
ICAgIEltcGxlbWVudCB0aGUgRXNjYXBlIGFjdGlvbiBmb3IgdGhlIHVzZXIgYWN0aW9uIGV2ZW50
cy4NCisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNHL2FvbS9ibG9iL2doLXBhZ2VzL2V4
cGxhaW5lci5tZCN1c2VyLWFjdGlvbi1ldmVudHMtZnJvbS1hc3Npc3RpdmUtdGVjaG5vbG9neQ0K
Kw0KKyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9rZXlldmVudHMtcG9zdGVkLWZvci1kaXNt
aXNzLWFjdGlvbi5odG1sDQorDQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3QuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0OjpwZXJmb3JtRXNjYXBlKToNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6ZGlzcGF0Y2hTaW11bGF0ZWRLZXlib2FyZFVwRG93bkV2ZW50KToNCisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cG9zdEtleWJvYXJkS2V5c0ZvclZh
bHVlQ2hhbmdlKToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oOg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoN
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6
DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVySU9TLm1tOg0KKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNj
ZXNzaWJpbGl0eVBlcmZvcm1Fc2NhcGVdKToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6QVhJc29s
YXRlZE9iamVjdDo6cGVyZm9ybUVzY2FwZSk6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNv
bGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9t
YWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06DQorICAgICAgICAoLVtXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5UGVyZm9ybUFjdGlvbjpdKToN
CisNCiAyMDIwLTA3LTAxICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5j
b20+DQogDQogICAgICAgICBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRFeHRlbnNpb25zRm9yTUlNRVR5
cGUoKSBuZWVkcyB0byBoYW5kbGUgd2lsZGNhcmQgTUlNRSB0eXBlcw0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAN
CmluZGV4IDI5ZTIyYmIwZDZiLi5hOTU5NTAzMDhkNSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwDQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcA0KQEAg
LTU3LDcgKzU3LDYgQEANCiAjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQuaCINCiAjaW5jbHVk
ZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIg0KICNpbmNsdWRlICJIVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudC5oIg0KLSNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiDQogI2luY2x1ZGUgIkxhYmVs
YWJsZUVsZW1lbnQuaCINCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIg0KICNpbmNsdWRl
ICJNYXRoTUxFbGVtZW50LmgiDQpAQCAtMTA5NSw4ICsxMDk0LDM5IEBAIHZvaWQgQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OmRlY3JlbWVudCgpDQogICAgIGFsdGVyU2xpZGVyVmFsdWUoZmFsc2Up
Ow0KIH0NCiANCitib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwZXJmb3JtRXNjYXBlKCkN
Cit7DQorICAgIC8vIEluIGNhc2UgdGhlIGtleWJvYXJkIGV2ZW50IGNhdXNlcyB0aGlzIGVsZW1l
bnQgdG8gYmUgcmVtb3ZlZC4NCisgICAgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IHByb3RlY3Rl
ZFRoaXMoKnRoaXMpOw0KKyAgICANCisgICAgYXV0byBrZXlJbml0ID0gS2V5Ym9hcmRFdmVudDo6
SW5pdCgpOw0KKyAgICANCisgICAga2V5SW5pdC5rZXkgPSAiRXNjYXBlIl9zOw0KKyAgICBrZXlJ
bml0LmtleUNvZGUgPSAweDFiOw0KKyAgICANCisgICAgcmV0dXJuIGRpc3BhdGNoU2ltdWxhdGVk
S2V5Ym9hcmRVcERvd25FdmVudChrZXlJbml0KTsNCit9DQorDQorYm9vbCBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6ZGlzcGF0Y2hTaW11bGF0ZWRLZXlib2FyZFVwRG93bkV2ZW50KEtleWJvYXJk
RXZlbnQ6OkluaXQmIGtleUluaXQpDQorew0KKyAgICBib29sIGhhbmRsZWQgPSBmYWxzZTsNCisg
ICAgaWYgKGF1dG8qIG5vZGUgPSB0aGlzLT5ub2RlKCkpIHsNCisgICAgICAgIGF1dG8gZXZlbnQg
PSBLZXlib2FyZEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmtleWRvd25FdmVudCwga2V5SW5p
dCk7DQorICAgICAgICBub2RlLT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsNCisgICAgICAgIGhhbmRs
ZWQgfD0gZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCk7DQorICAgIH0NCisgICAgDQorICAgIC8vIEVu
c3VyZSBub2RlIGlzIHN0aWxsIHZhbGlkIGFuZCB3YXNuJ3QgcmVtb3ZlZCBhZnRlciB0aGUga2V5
ZG93bi4NCisgICAgaWYgKGF1dG8qIG5vZGUgPSB0aGlzLT5ub2RlKCkpIHsNCisgICAgICAgIGF1
dG8gZXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmtleXVwRXZlbnQs
IGtleUluaXQpOw0KKyAgICAgICAgbm9kZS0+ZGlzcGF0Y2hFdmVudChldmVudCk7DQorICAgICAg
ICBoYW5kbGVkIHw9IGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpOw0KKyAgICB9DQorICAgIHJldHVy
biBoYW5kbGVkOw0KK30NCisNCiAvLyBGaXJlIGEga2V5Ym9hcmQgZXZlbnQgaWYgd2Ugd2VyZSBu
b3QgYWJsZSB0byBzZXQgdGhpcyB2YWx1ZSBuYXRpdmVseS4NCi12b2lkIEFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0Ojpwb3N0S2V5Ym9hcmRLZXlzRm9yVmFsdWVDaGFuZ2UoYm9vbCBpbmNyZWFzZSkN
Citib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpwb3N0S2V5Ym9hcmRLZXlzRm9yVmFsdWVD
aGFuZ2UoYm9vbCBpbmNyZWFzZSkNCiB7DQogICAgIC8vIEluIGNhc2UgdGhlIGtleWJvYXJkIGV2
ZW50IGNhdXNlcyB0aGlzIGVsZW1lbnQgdG8gYmUgcmVtb3ZlZC4NCiAgICAgUmVmPEFjY2Vzc2li
aWxpdHlPYmplY3Q+IHByb3RlY3RlZFRoaXMoKnRoaXMpOw0KQEAgLTExMDgsMTIgKzExMzgsNyBA
QCB2b2lkIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpwb3N0S2V5Ym9hcmRLZXlzRm9yVmFsdWVD
aGFuZ2UoYm9vbCBpbmNyZWFzZSkNCiAgICAga2V5SW5pdC5rZXkgPSBpbmNyZWFzZSA/IHZlcnRp
Y2FsID8gIkFycm93VXAiX3MgOiBpc0xUUiA/ICJBcnJvd1JpZ2h0Il9zIDogIkFycm93TGVmdCJf
cyA6IHZlcnRpY2FsID8gIkFycm93RG93biJfcyA6IGlzTFRSID8gIkFycm93TGVmdCJfcyA6ICJB
cnJvd1JpZ2h0Il9zOw0KICAgICBrZXlJbml0LmtleUlkZW50aWZpZXIgPSBpbmNyZWFzZSA/IHZl
cnRpY2FsID8gInVwIl9zIDogaXNMVFIgPyAicmlnaHQiX3MgOiAibGVmdCJfcyA6IHZlcnRpY2Fs
ID8gImRvd24iX3MgOiBpc0xUUiA/ICJsZWZ0Il9zIDogInJpZ2h0Il9zOw0KIA0KLSAgICBpZiAo
YXV0byogbm9kZSA9IHRoaXMtPm5vZGUoKSkNCi0gICAgICAgIG5vZGUtPmRpc3BhdGNoRXZlbnQo
S2V5Ym9hcmRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQsIGtleUluaXQp
KTsNCi0NCi0gICAgLy8gRW5zdXJlIG5vZGUgaXMgc3RpbGwgdmFsaWQgYW5kIHdhc24ndCByZW1v
dmVkIGFmdGVyIHRoZSBrZXlkb3duLg0KLSAgICBpZiAoYXV0byogbm9kZSA9IHRoaXMtPm5vZGUo
KSkNCi0gICAgICAgIG5vZGUtPmRpc3BhdGNoRXZlbnQoS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5rZXl1cEV2ZW50LCBrZXlJbml0KSk7DQorICAgIHJldHVybiBkaXNwYXRjaFNp
bXVsYXRlZEtleWJvYXJkVXBEb3duRXZlbnQoa2V5SW5pdCk7DQogfQ0KIA0KIHZvaWQgQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3Q6OnNldE5vZGVWYWx1ZShib29sIGluY3JlYXNlLCBmbG9hdCB2YWx1
ZSkNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmgNCmluZGV4IGNiNWY2MWJjZDlhLi5jMWIyYjU5M2VkNiAxMDA2NDQNCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qu
aA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oDQpAQCAtMjksNiArMjksNyBAQA0KICNwcmFnbWEgb25jZQ0KIA0KICNpbmNsdWRlICJB
Y2Nlc3NpYmlsaXR5T2JqZWN0LmgiDQorI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCINCiAjaW5j
bHVkZSAiTGF5b3V0UmVjdC5oIg0KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPg0KIA0KQEAgLTE4
OSw4ICsxOTAsMTEgQEAgcHJpdmF0ZToNCiAgICAgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlz
SWdub3JlZCgpIGNvbnN0IG92ZXJyaWRlOw0KICAgICBib29sIHVzZXNBbHRUYWdGb3JUZXh0Q29t
cHV0YXRpb24oKSBjb25zdDsNCiAgICAgYm9vbCByb2xlSWdub3Jlc1RpdGxlKCkgY29uc3Q7DQot
ICAgIHZvaWQgcG9zdEtleWJvYXJkS2V5c0ZvclZhbHVlQ2hhbmdlKGJvb2wgaW5jcmVhc2UpOw0K
KyAgICBib29sIHBvc3RLZXlib2FyZEtleXNGb3JWYWx1ZUNoYW5nZShib29sIGluY3JlYXNlKTsN
CiAgICAgdm9pZCBzZXROb2RlVmFsdWUoYm9vbCBpbmNyZWFzZSwgZmxvYXQgdmFsdWUpOw0KKyAg
ICBib29sIHBlcmZvcm1Fc2NhcGUoKSBvdmVycmlkZTsNCisgICAgYm9vbCBkaXNwYXRjaFNpbXVs
YXRlZEtleWJvYXJkVXBEb3duRXZlbnQoS2V5Ym9hcmRFdmVudDo6SW5pdCYpOw0KKyAgICANCiAg
ICAgTm9kZSogbV9ub2RlOw0KIH07DQogDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaA0KaW5kZXggOTUzOGZlNDE1YjMuLjZiODFiMjNj
MzkwIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oDQpAQCAtNDc4LDcgKzQ3OCw4IEBAIHB1YmxpYzoNCiAgICAgQWNjZXNzaWJp
bGl0eU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7DQogICAgIHZvaWQg
aW5jcmVtZW50KCkgb3ZlcnJpZGUgeyB9DQogICAgIHZvaWQgZGVjcmVtZW50KCkgb3ZlcnJpZGUg
eyB9DQotDQorICAgIGJvb2wgcGVyZm9ybUVzY2FwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNl
OyB9DQorICAgIA0KICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZCgpIG92ZXJyaWRlIHsgfQ0KICAg
ICB2b2lkIHRleHRDaGFuZ2VkKCkgb3ZlcnJpZGUgeyB9DQogICAgIHZvaWQgdXBkYXRlQWNjZXNz
aWJpbGl0eVJvbGUoKSBvdmVycmlkZSB7IH0NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oDQppbmRleCBi
ZWE0YTdmZjQ2Yi4uM2VjNzAyY2EzZDAgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaA0KKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgNCkBAIC05
MDcsNyArOTA3LDggQEAgcHVibGljOg0KICAgICB2aXJ0dWFsIHZvaWQgbWFrZVJhbmdlVmlzaWJs
ZShjb25zdCBQbGFpblRleHRSYW5nZSYpID0gMDsNCiAgICAgdmlydHVhbCBib29sIHByZXNzKCkg
PSAwOw0KICAgICB2aXJ0dWFsIGJvb2wgcGVyZm9ybURlZmF1bHRBY3Rpb24oKSA9IDA7DQotDQor
ICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtRXNjYXBlKCkgPSAwOw0KKyAgICANCiAgICAgdmlydHVh
bCBBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb24gb3JpZW50YXRpb24oKSBjb25zdCA9IDA7DQogICAg
IHZpcnR1YWwgdm9pZCBpbmNyZW1lbnQoKSA9IDA7DQogICAgIHZpcnR1YWwgdm9pZCBkZWNyZW1l
bnQoKSA9IDA7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3Mv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQ0KaW5kZXgg
Yjc3NDI1Y2Q0MTAuLmY5NTczNzRhZjQwIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0NCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVySU9TLm1tDQpAQCAtMTgyNyw2ICsxODI3LDEzIEBAIHN0YXRpYyB2b2lkIGFwcGVuZFN0
cmluZ1RvUmVzdWx0KE5TTXV0YWJsZVN0cmluZyAqcmVzdWx0LCBOU1N0cmluZyAqc3RyaW5nKQ0K
ICAgICByZXR1cm4gbmlsOw0KIH0NCiANCistIChCT09MKWFjY2Vzc2liaWxpdHlQZXJmb3JtRXNj
YXBlDQorew0KKyAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQ0KKyAg
ICAgICAgcmV0dXJuIE5POw0KKyAgICByZXR1cm4gc2VsZi5heEJhY2tpbmdPYmplY3QtPnBlcmZv
cm1Fc2NhcGUoKTsNCit9DQorDQogLSAoQk9PTClfYWNjZXNzaWJpbGl0eUFjdGl2YXRlDQogew0K
ICAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQ0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHANCmluZGV4IDA2MWU5YTY4NjBkLi5kZTU0YmU3MjVjNCAxMDA2NDQNCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRP
YmplY3QuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkT2JqZWN0LmNwcA0KQEAgLTYzMCw2ICs2MzAsMTUgQEAgdm9pZCBBWElzb2xh
dGVkT2JqZWN0OjpzZXRJc0V4cGFuZGVkKGJvb2wgdmFsdWUpDQogICAgIH0pOw0KIH0NCiANCiti
b29sIEFYSXNvbGF0ZWRPYmplY3Q6OnBlcmZvcm1Fc2NhcGUoKQ0KK3sNCisgICAgcmV0dXJuIEFj
Y2Vzc2liaWxpdHk6OnJldHJpZXZlVmFsdWVGcm9tTWFpblRocmVhZDxib29sPihbdGhpc10gKCkg
LT4gYm9vbCB7DQorICAgICAgICBpZiAoYXV0byogYXhPYmplY3QgPSBhc3NvY2lhdGVkQVhPYmpl
Y3QoKSkNCisgICAgICAgICAgICByZXR1cm4gYXhPYmplY3QtPnBlcmZvcm1Fc2NhcGUoKTsNCisg
ICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgfSk7DQorfQ0KKw0KIGJvb2wgQVhJc29sYXRlZE9i
amVjdDo6c2V0VmFsdWUoZmxvYXQgdmFsdWUpDQogew0KICAgICByZXR1cm4gQWNjZXNzaWJpbGl0
eTo6cmV0cmlldmVWYWx1ZUZyb21NYWluVGhyZWFkPGJvb2w+KFsmdmFsdWUsIHRoaXNdICgpIC0+
IGJvb2wgew0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
aXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaA0KaW5kZXggMmExOTlmZWE1OWIuLjY4MDJj
MTU2NjE5IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgNCkBAIC03MjEsNiArNzIxLDcgQEAg
cHJpdmF0ZToNCiAgICAgRmxvYXRSZWN0IGNvbnZlcnRGcmFtZVRvU3BhY2UoY29uc3QgRmxvYXRS
ZWN0JiwgQWNjZXNzaWJpbGl0eUNvbnZlcnNpb25TcGFjZSkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gRmxvYXRSZWN0KCk7IH0NCiAgICAgdm9pZCBpbmNyZW1lbnQoKSBvdmVycmlkZSB7IH0NCiAg
ICAgdm9pZCBkZWNyZW1lbnQoKSBvdmVycmlkZSB7IH0NCisgICAgYm9vbCBwZXJmb3JtRXNjYXBl
KCkgb3ZlcnJpZGU7DQogICAgIHZvaWQgc2Nyb2xsVG9NYWtlVmlzaWJsZSgpIGNvbnN0IG92ZXJy
aWRlIHsgfQ0KICAgICB2b2lkIHNjcm9sbFRvTWFrZVZpc2libGVXaXRoU3ViRm9jdXMoY29uc3Qg
SW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlIHsgfQ0KICAgICB2b2lkIHNjcm9sbFRvR2xvYmFsUG9p
bnQoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlkZSB7IH0NCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyTWFjLm1tDQppbmRleCA5Njg2ZDQzNTU2NC4uNTNhNzU4MmFjNDEgMTAw
NjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlck1hYy5tbQ0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0NCkBAIC0zNDcwLDYgKzM0
NzAsOCBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQNCiAgICAgICAgIFtz
ZWxmIGFjY2Vzc2liaWxpdHlQZXJmb3JtRGVjcmVtZW50QWN0aW9uXTsNCiAgICAgZWxzZSBpZiAo
W2FjdGlvbiBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5U2Nyb2xsVG9WaXNpYmxlQWN0
aW9uXSkNCiAgICAgICAgIFtzZWxmIGFjY2Vzc2liaWxpdHlTY3JvbGxUb1Zpc2libGVdOw0KKyAg
ICBlbHNlIGlmIChbYWN0aW9uIGlzRXF1YWxUb1N0cmluZzpAIkFYRGlzbWlzc0FjdGlvbiJdKQ0K
KyAgICAgICAgYmFja2luZ09iamVjdC0+cGVyZm9ybUVzY2FwZSgpOw0KIH0NCiANCiAtIChCT09M
KWFjY2Vzc2liaWxpdHlSZXBsYWNlUmFuZ2U6KE5TUmFuZ2UpcmFuZ2Ugd2l0aFRleHQ6KE5TU3Ry
aW5nICopc3RyaW5nDQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nDQppbmRleCA4MTAwMzU5NTlmYi4uMTc2Y2RjNzVkYjUgMTAwNjQ0DQotLS0gYS9Ub29scy9D
aGFuZ2VMb2cNCisrKyBiL1Rvb2xzL0NoYW5nZUxvZw0KQEAgLTEsMyArMSwyOSBAQA0KKzIwMjAt
MDctMDIgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4NCisNCisgICAgICAg
IEFYOiBJbXBsZW1lbnQgdXNlciBhY3Rpb24gc3BlYyBmb3IgRXNjYXBlIGFjdGlvbg0KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzg3NQ0KKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzY1MDIyOTgwPg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuDQorDQorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuY3BwOg0KKyAgICAgICAgKGRpc21pc3NDYWxsYmFjayk6DQorICAgICAgICAoQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0SlNDbGFzcyk6DQorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaDoNCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
aW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW06DQorICAgICAgICAoQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6ZGlzbWlzcyk6DQorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tOg0KKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmRpc21pc3MpOg0KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwOg0KKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6dGV4dE1hcmtlclJhbmdlTWF0Y2hlc1RleHROZWFyTWFya2Vycyk6DQorICAg
ICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNtaXNzKToNCisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmg6
DQorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudC5pZGw6DQorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW06DQorICAgICAgICAo
V1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNtaXNzKToNCisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5t
bToNCisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc21pc3MpOg0KKw0K
IDIwMjAtMDctMDEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+DQogDQog
ICAgICAgICBGaXggdGhlIFdlYktpdCBidWlsZCBhZnRlciA8cmRhcjovL3Byb2JsZW0vNjQyODgx
OTE+DQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNw
cA0KaW5kZXggMTFmM2E1MTk0ZjkuLjBlNWE1MGY2YjlkIDEwMDY0NA0KLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHANCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwDQpAQCAtNzI3LDYgKzcyNywxMiBA
QCBzdGF0aWMgSlNWYWx1ZVJlZiBwcmVzc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYg0KICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmlu
ZWQoY29udGV4dCk7DQogfQ0KIA0KK3N0YXRpYyBKU1ZhbHVlUmVmIGRpc21pc3NDYWxsYmFjayhK
U0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRo
aXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50
c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pDQorew0KKyAgICB0b0FYRWxlbWVudCh0aGlzT2Jq
ZWN0KS0+ZGlzbWlzcygpOw0KKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4
dCk7DQorfQ0KKw0KIHN0YXRpYyBKU1ZhbHVlUmVmIHNjcm9sbFRvTWFrZVZpc2libGVXaXRoU3Vi
Rm9jdXNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24s
IEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1Zh
bHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pDQogew0KICAgICB1bnNp
Z25lZCB4ID0gMDsNCkBAIC0xOTc4LDYgKzE5ODQsNyBAQCBKU0NsYXNzUmVmIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmdldEpTQ2xhc3MoKQ0KICAgICAgICAgeyAiZGVjcmVtZW50IiwgZGVjcmVt
ZW50Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwNCiAgICAgICAgIHsgInNob3dNZW51Iiwgc2hvd01lbnVDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LA0KICAgICAgICAgeyAicHJlc3MiLCBwcmVzc0NhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
DQorICAgICAgICB7ICJkaXNtaXNzIiwgZGlzbWlzc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sDQogICAgICAg
ICB7ICJkaXNjbG9zZWRSb3dBdEluZGV4IiwgZGlzY2xvc2VkUm93QXRJbmRleENhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVs
ZXRlIH0sDQogICAgICAgICB7ICJhcmlhT3duc0VsZW1lbnRBdEluZGV4IiwgYXJpYU93bnNFbGVt
ZW50QXRJbmRleENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sDQogICAgICAgICB7ICJhcmlhRmxvd1RvRWxlbWVu
dEF0SW5kZXgiLCBhcmlhRmxvd1RvRWxlbWVudEF0SW5kZXhDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LA0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaA0KaW5kZXggZDcy
MTk3ZmVjMGMuLmE1MDI2NWZiNjA5IDEwMDY0NA0KLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oDQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50LmgNCkBAIC05Nyw2ICs5Nyw3IEBAIHB1YmxpYzoNCiAgICAgdm9p
ZCBkZWNyZW1lbnQoKTsNCiAgICAgdm9pZCBzaG93TWVudSgpOw0KICAgICB2b2lkIHByZXNzKCk7
DQorICAgIHZvaWQgZGlzbWlzcygpOw0KIA0KICAgICAvLyBBdHRyaWJ1dGVzIC0gcGxhdGZvcm0t
aW5kZXBlbmRlbnQgaW1wbGVtZW50YXRpb25zDQogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBzdHJpbmdBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpOw0KZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1t
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0N
CmluZGV4IDE2YWM2YTA2MjNjLi5lM2M5MDlkNmRkMiAxMDA2NDQNCi0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tDQorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQ0KQEAgLTkxLDYg
KzkxLDcgQEAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudChp
ZCBlbGVtZW50KQ0KIC0gKE5TU3RyaW5nICopYWNjZXNzaWJpbGl0eVRleHR1YWxDb250ZXh0Ow0K
IC0gKEJPT0wpYWNjZXNzaWJpbGl0eUhhc1BvcHVwOw0KIC0gKE5TU3RyaW5nICopYWNjZXNzaWJp
bGl0eVBvcHVwVmFsdWU7DQorLSAoQk9PTClhY2Nlc3NpYmlsaXR5UGVyZm9ybUVzY2FwZTsNCiAN
CiAvLyBUZXh0TWFya2VyIHJlbGF0ZWQNCiAtIChOU0FycmF5ICopdGV4dE1hcmtlclJhbmdlOw0K
QEAgLTMyOSw2ICszMzAsMTEgQEAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojp0aXRsZVVJRWxlbWVudCgpDQogICAgIHJldHVybiAwOw0KIH0NCiANCit2b2lk
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc21pc3MoKQ0KK3sNCisgICAgW21fZWxlbWVudCBh
Y2Nlc3NpYmlsaXR5UGVyZm9ybUVzY2FwZV07DQorfQ0KKw0KIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGFyZW50RWxlbWVudCgpDQogew0KICAgICBpZCBh
Y2Nlc3NpYmlsaXR5T2JqZWN0ID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5Q29udGFpbmVyXTsN
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudE1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50TWFjLm1tDQppbmRleCA2MjEzZTc2MTZjOC4uZTFlZmQ3ZjRlMTYgMTAwNjQ0DQotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQ0KKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0N
CkBAIC0xMzc0LDYgKzEzNzQsMTMgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRW
YWx1ZShKU1N0cmluZ1JlZiB2YWx1ZVRleHQpDQogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMN
CiB9DQogDQordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNtaXNzKCkNCit7DQorICAg
IEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUw0KKyAgICBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlQ
ZXJmb3JtQWN0aW9uOkAiQVhEaXNtaXNzQWN0aW9uIl07DQorICAgIEVORF9BWF9PQkpDX0VYQ0VQ
VElPTlMNCit9DQorDQogdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmNyZW1lbnQoKQ0K
IHsNCiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TDQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5jcHANCmluZGV4IDJhMjM3ZDM2OTliLi4zMzBlYjI0MmZlNyAxMDA2NDQNCi0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dC5jcHANCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudC5jcHANCkBAIC03Nyw3ICs3Nyw2IEBAIFJlZlB0cjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpmaWVsZHNldEFuY2VzdG9yRWxl
bWVudCgpDQogYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1NlYXJjaEZpZWxkKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0NCiBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVGV4
dEFyZWEoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQ0KIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4
dE1hcmtlclJhbmdlPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VNYXRj
aGVzVGV4dE5lYXJNYXJrZXJzKEpTU3RyaW5nUmVmLCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcios
IEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKikgeyByZXR1cm4gbnVsbHB0cjsgfQ0KLWJvb2wgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzbWlzcygpIHsgcmV0dXJuIGZhbHNlOyB9DQogSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJp
bmdGb3JFbGVtZW50KCkgeyByZXR1cm4gbnVsbHB0cjsgfQ0KIGJvb2wgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNJblRhYmxlQ2VsbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9DQogI2VuZGlm
DQpAQCAtODgsNiArODcsNyBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6Y2hhcmFjdGVyQXRPZmZzZXQoaW50KSB7IHJldHVybg0KIEpTUmV0YWluUHRy
PEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp3b3JkQXRPZmZzZXQoaW50KSB7
IHJldHVybiBudWxscHRyOyB9DQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmxpbmVBdE9mZnNldChpbnQpIHsgcmV0dXJuIG51bGxwdHI7IH0NCiBKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VudGVuY2VBdE9m
ZnNldChpbnQpIHsgcmV0dXJuIG51bGxwdHI7IH0NCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmRpc21pc3MoKSB7IH0NCiAjZW5kaWYNCiANCiAjaWYgIVBMQVRGT1JNKE1BQykgfHwgIUhB
VkUoQUNDRVNTSUJJTElUWSkNCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oDQppbmRleCA4N2Nl
YjVmNzgwYi4uMTQ5YTlmZjIyMWQgMTAwNjQ0DQotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaA0KKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgNCkBA
IC0xMDMsNyArMTAzLDcgQEAgcHVibGljOg0KICAgICB2b2lkIGRlY3JlbWVudCgpOw0KICAgICB2
b2lkIHNob3dNZW51KCk7DQogICAgIHZvaWQgcHJlc3MoKTsNCi0gICAgYm9vbCBkaXNtaXNzKCk7
DQorICAgIHZvaWQgZGlzbWlzcygpOw0KICNpZiBQTEFURk9STShNQUMpDQogICAgIHZvaWQgc3lu
Y1ByZXNzKCk7DQogICAgIHZvaWQgYXN5bmNJbmNyZW1lbnQoKTsNCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5k
aW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbA0KaW5kZXggZWJlMjRiYmIxOGMuLjdhNGUz
NjFkZWMyIDEwMDY0NA0KLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbA0KKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
LmlkbA0KQEAgLTEyNSw3ICsxMjUsNyBAQA0KICAgICB2b2lkIHByZXNzKCk7DQogICAgIHZvaWQg
c3luY1ByZXNzKCk7DQogICAgIHZvaWQgc2hvd01lbnUoKTsNCi0gICAgYm9vbGVhbiBkaXNtaXNz
KCk7DQorICAgIHZvaWQgZGlzbWlzcygpOw0KIA0KICAgICAvLyBBdHRyaWJ1dGUgaW5mby4NCiAg
ICAgRE9NU3RyaW5nIGFsbEF0dHJpYnV0ZXMoKTsNCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1t
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudElPUy5tbQ0KaW5kZXggZWFkYmU4MzhmMDAuLjRhOTczZmZlMWMzIDEwMDY0NA0K
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudElPUy5tbQ0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQ0KQEAgLTg3Miw5ICs4NzIs
OSBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXNzKCkNCiAgICAgW21fZWxlbWVu
dCBfYWNjZXNzaWJpbGl0eUFjdGl2YXRlXTsNCiB9DQogICAgIA0KLWJvb2wgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6ZGlzbWlzcygpDQordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNt
aXNzKCkNCiB7DQotICAgIHJldHVybiBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlQZXJmb3JtRXNj
YXBlXTsNCisgICAgW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5UGVyZm9ybUVzY2FwZV07DQogfQ0K
IA0KIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGlsZChBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50KiBlbGVtZW50KSBjb25zdA0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMu
bW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50TWFjLm1tDQppbmRleCA2Mzk4ODU1MDYxNi4uMTk2MTZkMTE2OGUgMTAwNjQ0
DQotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50TWFjLm1tDQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tDQpAQCAtMTQzMiw2ICsx
NDMyLDEzIEBAIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRUZXh0UmFu
Z2UodW5zaWduZWQgbG9jYXRpb24sIHVuc2lnbmVkIGxlDQogICAgIHJldHVybiB0cnVlOw0KIH0N
CiANCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc21pc3MoKQ0KK3sNCisgICAgQkVH
SU5fQVhfT0JKQ19FWENFUFRJT05TDQorICAgIFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eVBlcmZv
cm1BY3Rpb246QCJBWERpc21pc3NBY3Rpb24iXTsNCisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9O
Uw0KK30NCisNCiBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkVmlzaWJs
ZVRleHRSYW5nZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKiBtYXJrZXJSYW5nZSkNCiB7
DQogICAgIHNldEF0dHJpYnV0ZVZhbHVlKG1fZWxlbWVudC5nZXQoKSwgTlNBY2Nlc3NpYmlsaXR5
U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGUsIG1hcmtlclJhbmdlLT5wbGF0Zm9ybVRl
eHRNYXJrZXJSYW5nZSgpKTsNCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403402</attachid>
            <date>2020-07-02 15:07:14 -0700</date>
            <delta_ts>2020-07-02 23:51:13 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_213875.txt</filename>
            <type>text/plain</type>
            <size>24504</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggZTBiZDYwZjgxNTUuLjQyYTA2Y2ZkOTY1IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTcg
QEANCisyMDIwLTA3LTAyICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogSW1wbGVtZW50IHVzZXIgYWN0aW9uIHNwZWMgZm9yIEVzY2FwZSBhY3Rp
b24NCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM4
NzUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NTAyMjk4MD4NCisNCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2tleWV2
ZW50cy1wb3N0ZWQtZm9yLWRpc21pc3MtYWN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuDQorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24u
aHRtbDogQWRkZWQuDQorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOg0K
KyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnM6DQorICAg
ICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOg0KKw0KIDIwMjAtMDctMDIgIEVu
cmlxdWUgT2Nhw7FhIEdvbnrDoWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4NCiANCiAgICAgICAg
IFtHVEtdIExheW91dCB0ZXN0IG1lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwgaXMgZmFp
bGluZw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBv
c3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9rZXlldmVudHMtcG9zdGVkLWZvci1kaXNtaXNzLWFjdGlvbi1leHBlY3RlZC50eHQN
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uZTJjMmRhMzk4OTANCi0t
LSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBv
c3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24tZXhwZWN0ZWQudHh0DQpAQCAtMCwwICsxLDExIEBADQor
YWxlcnQNCitUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgZGlzbWlzcyBhY3Rpb24gZ2VuZXJh
dGVzIGFuIGVzY2FwZSBrZXkgZXZlbnQuDQorDQorT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLg0K
Kw0KKw0KK0tleWNvZGUgcmVjZWl2ZWQ6IGNvZGU6IDI3IGtleSBuYW1lOiBFc2NhcGUNCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlDQorDQorVEVTVCBDT01QTEVURQ0KKw0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlz
bWlzcy1hY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBv
c3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24uaHRtbA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4
IDAwMDAwMDAwMDAwLi5hMWQwYTM3MzJmNg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9rZXlldmVudHMtcG9zdGVkLWZvci1kaXNtaXNzLWFjdGlvbi5odG1s
DQpAQCAtMCwwICsxLDMyIEBADQorPGh0bWw+DQorPGh0bWw+DQorPGhlYWQ+DQorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+DQorPC9oZWFkPg0KKzxi
b2R5IGlkPSJib2R5Ij4NCisNCis8ZGl2IGlkPSJhbGVydCI+YWxlcnQ8L2Rpdj4NCisNCis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4NCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCisgICAgIA0K
KzxzY3JpcHQ+DQorICAgIGZ1bmN0aW9uIGhhbmRsZUtleURvd24oZXZlbnQpIHsNCisgICAgICAg
IGRlYnVnKCJLZXljb2RlIHJlY2VpdmVkOiBjb2RlOiAiICsgZXZlbnQua2V5Q29kZSArICIga2V5
IG5hbWU6ICIgKyBldmVudC5rZXkpOw0KKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsN
CisgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOw0KKyAgICAgICAgZmluaXNoSlNUZXN0
KCk7DQorICAgICB9DQorDQorICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIp
IHsNCisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOw0KKyAgICAgICAgZGVzY3JpcHRpb24o
IlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IHRoZSBkaXNtaXNzIGFjdGlvbiBnZW5lcmF0ZXMgYW4g
ZXNjYXBlIGtleSBldmVudC4iKTsNCisNCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJhbGVydCIpLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlEb3duKTsNCisg
ICAgICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiYWxl
cnQiKS5kaXNtaXNzKCk7DQorICAgIH0NCisgPC9zY3JpcHQ+DQorDQorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pg0KKzwvYm9keT4NCis8L2h0bWw+
DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucw0KaW5kZXggMjBlOThj
YzU2NzQuLjk1YjRkNTA2Mjk3IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMNCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zDQpAQCAtNzUwLDYgKzc1MCw3IEBAIEJ1ZyhHVEspIGVkaXRpbmcvc3BlbGxpbmcv
bWFya2Vycy5odG1sIFsgU2tpcCBdDQogd2Via2l0Lm9yZy9iLzg1OTU4IGZhc3QvZm9ybXMvZmls
ZS9maWxlLWlucHV0LWNhcHR1cmUuaHRtbCBbIEZhaWx1cmUgXQ0KIA0KIHdlYmtpdC5vcmcvYi8x
NDY3MjAgbWVkaWEvYWNjZXNzaWJsaXR5LWRlc2NyaWJlcy12aWRlby5odG1sIFsgRmFpbHVyZSBd
DQord2Via2l0Lm9yZy9iLzIxMzg3NCBhY2Nlc3NpYmlsaXR5L2tleWV2ZW50cy1wb3N0ZWQtZm9y
LWRpc21pc3MtYWN0aW9uLmh0bWwgWyBTa2lwIF0NCiANCiB3ZWJraXQub3JnL2IvMTQ2NzI0IGZh
c3QvdGV4dC93b3JkLWJyZWFrLWtlZXAtYWxsLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0NCiAN
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3Rh
dGlvbnMNCmluZGV4IGYxYzUxMTExYWY0Li41MmI3YWYzYWQ3NCAxMDA2NDQNCi0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9ucw0KKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0RXhwZWN0YXRpb25zDQpAQCAtNiw2
ICs2LDcgQEANCiBhY2Nlc3NpYmlsaXR5L2luc2VydC1uZXdsaW5lLmh0bWwgWyBQYXNzIF0NCiBh
Y2Nlc3NpYmlsaXR5L21pc3NwZWxsaW5nLXJhbmdlLmh0bWwgWyBQYXNzIF0NCiBhY2Nlc3NpYmls
aXR5L3VybC10ZXN0Lmh0bWwgWyBQYXNzIF0NCithY2Nlc3NpYmlsaXR5L2tleWV2ZW50cy1wb3N0
ZWQtZm9yLWRpc21pc3MtYWN0aW9uLmh0bWwgWyBQYXNzIF0NCiBjc3MzL2ZvbnQtdmFyaWFudC1z
bWFsbC1jYXBzLXN5bnRoZXNpcy1jb3ZlcmFnZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdDQog
ZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1jbG9zZS10b3Atbm9jbG9zZS5odG1sIFsgRmFp
bHVyZSBdDQogZmFzdC9tdWx0aWNvbC9mbGV4Ym94LXJvd3MuaHRtbCBbIFNraXAgXQ0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMNCmluZGV4IGMxMDY5MjIzMDgyLi4w
Njg4YzcyNDZlNCAxMDA2NDQNCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhw
ZWN0YXRpb25zDQorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9u
cw0KQEAgLTEzODQsNiArMTM4NCw3IEBAIGFjY2Vzc2liaWxpdHkvbXVsdGlzZWxlY3QtbGlzdC1y
ZXBvcnRzLWFjdGl2ZS1vcHRpb24uaHRtbCBbIFNraXAgXQ0KICMgaW5jcmVtZW50L2RlY3JlbWVu
dCBub3QgaW1wbGVtZW50ZWQgaW4gdGVzdCBydW5uZXINCiBhY2Nlc3NpYmlsaXR5L2tleWV2ZW50
cy1mb3ItaW5jcmVtZW50LWFjdGlvbnMtd2l0aC1ub2RlLXJlbW92YWwuaHRtbCBbIFNraXAgXQ0K
IGFjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItaW5jcmVtZW50LWFjdGlvbnMuaHRt
bCBbIFNraXAgXQ0KK2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlzbWlzcy1h
Y3Rpb24uaHRtbCBbIFNraXAgXQ0KIA0KIHdlYmtpdC5vcmcvYi8xNDA3OTYgYWNjZXNzaWJpbGl0
eS9hbHQtdGFnLW9uLWltYWdlLXdpdGgtbm9uaW1hZ2Utcm9sZS5odG1sIFsgU2tpcCBdDQogd2Vi
a2l0Lm9yZy9iLzE0MDc5OCBhY2Nlc3NpYmlsaXR5L2FyaWEtY29udHJvbHMtd2l0aC10YWJzLmh0
bWwgWyBTa2lwIF0NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cNCmluZGV4IDkxNDVmYjhjOTc1Li40MGNjZDMzZWIwMiAxMDA2
NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nDQpAQCAtMSwzICsxLDMxIEBADQorMjAyMC0wNy0wMiAgQ2hyaXMgRmxlaXphY2gg
IDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgQVg6IEltcGxlbWVudCB1c2VyIGFj
dGlvbiBzcGVjIGZvciBFc2NhcGUgYWN0aW9uDQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzODc1DQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjUw
MjI5ODA+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAg
ICAgIEltcGxlbWVudCB0aGUgRXNjYXBlIGFjdGlvbiBmb3IgdGhlIHVzZXIgYWN0aW9uIGV2ZW50
cy4NCisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNHL2FvbS9ibG9iL2doLXBhZ2VzL2V4
cGxhaW5lci5tZCN1c2VyLWFjdGlvbi1ldmVudHMtZnJvbS1hc3Npc3RpdmUtdGVjaG5vbG9neQ0K
Kw0KKyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9rZXlldmVudHMtcG9zdGVkLWZvci1kaXNt
aXNzLWFjdGlvbi5odG1sDQorDQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3QuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0OjpwZXJmb3JtRXNjYXBlKToNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6ZGlzcGF0Y2hTaW11bGF0ZWRLZXlib2FyZFVwRG93bkV2ZW50KToNCisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cG9zdEtleWJvYXJkS2V5c0ZvclZh
bHVlQ2hhbmdlKToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oOg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoN
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6
DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVySU9TLm1tOg0KKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNj
ZXNzaWJpbGl0eVBlcmZvcm1Fc2NhcGVdKToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6QVhJc29s
YXRlZE9iamVjdDo6cGVyZm9ybUVzY2FwZSk6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNv
bGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9t
YWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06DQorICAgICAgICAoLVtXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5UGVyZm9ybUFjdGlvbjpdKToN
CisNCiAyMDIwLTA3LTAxICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5j
b20+DQogDQogICAgICAgICBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRFeHRlbnNpb25zRm9yTUlNRVR5
cGUoKSBuZWVkcyB0byBoYW5kbGUgd2lsZGNhcmQgTUlNRSB0eXBlcw0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAN
CmluZGV4IDI5ZTIyYmIwZDZiLi5hOTU5NTAzMDhkNSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwDQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcA0KQEAg
LTU3LDcgKzU3LDYgQEANCiAjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQuaCINCiAjaW5jbHVk
ZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIg0KICNpbmNsdWRlICJIVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudC5oIg0KLSNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiDQogI2luY2x1ZGUgIkxhYmVs
YWJsZUVsZW1lbnQuaCINCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIg0KICNpbmNsdWRl
ICJNYXRoTUxFbGVtZW50LmgiDQpAQCAtMTA5NSw4ICsxMDk0LDM5IEBAIHZvaWQgQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OmRlY3JlbWVudCgpDQogICAgIGFsdGVyU2xpZGVyVmFsdWUoZmFsc2Up
Ow0KIH0NCiANCitib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwZXJmb3JtRXNjYXBlKCkN
Cit7DQorICAgIC8vIEluIGNhc2UgdGhlIGtleWJvYXJkIGV2ZW50IGNhdXNlcyB0aGlzIGVsZW1l
bnQgdG8gYmUgcmVtb3ZlZC4NCisgICAgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IHByb3RlY3Rl
ZFRoaXMoKnRoaXMpOw0KKyAgICANCisgICAgYXV0byBrZXlJbml0ID0gS2V5Ym9hcmRFdmVudDo6
SW5pdCgpOw0KKyAgICANCisgICAga2V5SW5pdC5rZXkgPSAiRXNjYXBlIl9zOw0KKyAgICBrZXlJ
bml0LmtleUNvZGUgPSAweDFiOw0KKyAgICANCisgICAgcmV0dXJuIGRpc3BhdGNoU2ltdWxhdGVk
S2V5Ym9hcmRVcERvd25FdmVudChrZXlJbml0KTsNCit9DQorDQorYm9vbCBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6ZGlzcGF0Y2hTaW11bGF0ZWRLZXlib2FyZFVwRG93bkV2ZW50KEtleWJvYXJk
RXZlbnQ6OkluaXQmIGtleUluaXQpDQorew0KKyAgICBib29sIGhhbmRsZWQgPSBmYWxzZTsNCisg
ICAgaWYgKGF1dG8qIG5vZGUgPSB0aGlzLT5ub2RlKCkpIHsNCisgICAgICAgIGF1dG8gZXZlbnQg
PSBLZXlib2FyZEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmtleWRvd25FdmVudCwga2V5SW5p
dCk7DQorICAgICAgICBub2RlLT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsNCisgICAgICAgIGhhbmRs
ZWQgfD0gZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCk7DQorICAgIH0NCisgICAgDQorICAgIC8vIEVu
c3VyZSBub2RlIGlzIHN0aWxsIHZhbGlkIGFuZCB3YXNuJ3QgcmVtb3ZlZCBhZnRlciB0aGUga2V5
ZG93bi4NCisgICAgaWYgKGF1dG8qIG5vZGUgPSB0aGlzLT5ub2RlKCkpIHsNCisgICAgICAgIGF1
dG8gZXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmtleXVwRXZlbnQs
IGtleUluaXQpOw0KKyAgICAgICAgbm9kZS0+ZGlzcGF0Y2hFdmVudChldmVudCk7DQorICAgICAg
ICBoYW5kbGVkIHw9IGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpOw0KKyAgICB9DQorICAgIHJldHVy
biBoYW5kbGVkOw0KK30NCisNCiAvLyBGaXJlIGEga2V5Ym9hcmQgZXZlbnQgaWYgd2Ugd2VyZSBu
b3QgYWJsZSB0byBzZXQgdGhpcyB2YWx1ZSBuYXRpdmVseS4NCi12b2lkIEFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0Ojpwb3N0S2V5Ym9hcmRLZXlzRm9yVmFsdWVDaGFuZ2UoYm9vbCBpbmNyZWFzZSkN
Citib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpwb3N0S2V5Ym9hcmRLZXlzRm9yVmFsdWVD
aGFuZ2UoYm9vbCBpbmNyZWFzZSkNCiB7DQogICAgIC8vIEluIGNhc2UgdGhlIGtleWJvYXJkIGV2
ZW50IGNhdXNlcyB0aGlzIGVsZW1lbnQgdG8gYmUgcmVtb3ZlZC4NCiAgICAgUmVmPEFjY2Vzc2li
aWxpdHlPYmplY3Q+IHByb3RlY3RlZFRoaXMoKnRoaXMpOw0KQEAgLTExMDgsMTIgKzExMzgsNyBA
QCB2b2lkIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpwb3N0S2V5Ym9hcmRLZXlzRm9yVmFsdWVD
aGFuZ2UoYm9vbCBpbmNyZWFzZSkNCiAgICAga2V5SW5pdC5rZXkgPSBpbmNyZWFzZSA/IHZlcnRp
Y2FsID8gIkFycm93VXAiX3MgOiBpc0xUUiA/ICJBcnJvd1JpZ2h0Il9zIDogIkFycm93TGVmdCJf
cyA6IHZlcnRpY2FsID8gIkFycm93RG93biJfcyA6IGlzTFRSID8gIkFycm93TGVmdCJfcyA6ICJB
cnJvd1JpZ2h0Il9zOw0KICAgICBrZXlJbml0LmtleUlkZW50aWZpZXIgPSBpbmNyZWFzZSA/IHZl
cnRpY2FsID8gInVwIl9zIDogaXNMVFIgPyAicmlnaHQiX3MgOiAibGVmdCJfcyA6IHZlcnRpY2Fs
ID8gImRvd24iX3MgOiBpc0xUUiA/ICJsZWZ0Il9zIDogInJpZ2h0Il9zOw0KIA0KLSAgICBpZiAo
YXV0byogbm9kZSA9IHRoaXMtPm5vZGUoKSkNCi0gICAgICAgIG5vZGUtPmRpc3BhdGNoRXZlbnQo
S2V5Ym9hcmRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQsIGtleUluaXQp
KTsNCi0NCi0gICAgLy8gRW5zdXJlIG5vZGUgaXMgc3RpbGwgdmFsaWQgYW5kIHdhc24ndCByZW1v
dmVkIGFmdGVyIHRoZSBrZXlkb3duLg0KLSAgICBpZiAoYXV0byogbm9kZSA9IHRoaXMtPm5vZGUo
KSkNCi0gICAgICAgIG5vZGUtPmRpc3BhdGNoRXZlbnQoS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5rZXl1cEV2ZW50LCBrZXlJbml0KSk7DQorICAgIHJldHVybiBkaXNwYXRjaFNp
bXVsYXRlZEtleWJvYXJkVXBEb3duRXZlbnQoa2V5SW5pdCk7DQogfQ0KIA0KIHZvaWQgQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3Q6OnNldE5vZGVWYWx1ZShib29sIGluY3JlYXNlLCBmbG9hdCB2YWx1
ZSkNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmgNCmluZGV4IGNiNWY2MWJjZDlhLi5jMWIyYjU5M2VkNiAxMDA2NDQNCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qu
aA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oDQpAQCAtMjksNiArMjksNyBAQA0KICNwcmFnbWEgb25jZQ0KIA0KICNpbmNsdWRlICJB
Y2Nlc3NpYmlsaXR5T2JqZWN0LmgiDQorI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCINCiAjaW5j
bHVkZSAiTGF5b3V0UmVjdC5oIg0KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPg0KIA0KQEAgLTE4
OSw4ICsxOTAsMTEgQEAgcHJpdmF0ZToNCiAgICAgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlz
SWdub3JlZCgpIGNvbnN0IG92ZXJyaWRlOw0KICAgICBib29sIHVzZXNBbHRUYWdGb3JUZXh0Q29t
cHV0YXRpb24oKSBjb25zdDsNCiAgICAgYm9vbCByb2xlSWdub3Jlc1RpdGxlKCkgY29uc3Q7DQot
ICAgIHZvaWQgcG9zdEtleWJvYXJkS2V5c0ZvclZhbHVlQ2hhbmdlKGJvb2wgaW5jcmVhc2UpOw0K
KyAgICBib29sIHBvc3RLZXlib2FyZEtleXNGb3JWYWx1ZUNoYW5nZShib29sIGluY3JlYXNlKTsN
CiAgICAgdm9pZCBzZXROb2RlVmFsdWUoYm9vbCBpbmNyZWFzZSwgZmxvYXQgdmFsdWUpOw0KKyAg
ICBib29sIHBlcmZvcm1Fc2NhcGUoKSBvdmVycmlkZTsNCisgICAgYm9vbCBkaXNwYXRjaFNpbXVs
YXRlZEtleWJvYXJkVXBEb3duRXZlbnQoS2V5Ym9hcmRFdmVudDo6SW5pdCYpOw0KKyAgICANCiAg
ICAgTm9kZSogbV9ub2RlOw0KIH07DQogDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaA0KaW5kZXggOTUzOGZlNDE1YjMuLjZiODFiMjNj
MzkwIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oDQpAQCAtNDc4LDcgKzQ3OCw4IEBAIHB1YmxpYzoNCiAgICAgQWNjZXNzaWJp
bGl0eU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7DQogICAgIHZvaWQg
aW5jcmVtZW50KCkgb3ZlcnJpZGUgeyB9DQogICAgIHZvaWQgZGVjcmVtZW50KCkgb3ZlcnJpZGUg
eyB9DQotDQorICAgIGJvb2wgcGVyZm9ybUVzY2FwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNl
OyB9DQorICAgIA0KICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZCgpIG92ZXJyaWRlIHsgfQ0KICAg
ICB2b2lkIHRleHRDaGFuZ2VkKCkgb3ZlcnJpZGUgeyB9DQogICAgIHZvaWQgdXBkYXRlQWNjZXNz
aWJpbGl0eVJvbGUoKSBvdmVycmlkZSB7IH0NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oDQppbmRleCBi
ZWE0YTdmZjQ2Yi4uM2VjNzAyY2EzZDAgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaA0KKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgNCkBAIC05
MDcsNyArOTA3LDggQEAgcHVibGljOg0KICAgICB2aXJ0dWFsIHZvaWQgbWFrZVJhbmdlVmlzaWJs
ZShjb25zdCBQbGFpblRleHRSYW5nZSYpID0gMDsNCiAgICAgdmlydHVhbCBib29sIHByZXNzKCkg
PSAwOw0KICAgICB2aXJ0dWFsIGJvb2wgcGVyZm9ybURlZmF1bHRBY3Rpb24oKSA9IDA7DQotDQor
ICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtRXNjYXBlKCkgPSAwOw0KKyAgICANCiAgICAgdmlydHVh
bCBBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb24gb3JpZW50YXRpb24oKSBjb25zdCA9IDA7DQogICAg
IHZpcnR1YWwgdm9pZCBpbmNyZW1lbnQoKSA9IDA7DQogICAgIHZpcnR1YWwgdm9pZCBkZWNyZW1l
bnQoKSA9IDA7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3Mv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQ0KaW5kZXgg
Yjc3NDI1Y2Q0MTAuLmY5NTczNzRhZjQwIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0NCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVySU9TLm1tDQpAQCAtMTgyNyw2ICsxODI3LDEzIEBAIHN0YXRpYyB2b2lkIGFwcGVuZFN0
cmluZ1RvUmVzdWx0KE5TTXV0YWJsZVN0cmluZyAqcmVzdWx0LCBOU1N0cmluZyAqc3RyaW5nKQ0K
ICAgICByZXR1cm4gbmlsOw0KIH0NCiANCistIChCT09MKWFjY2Vzc2liaWxpdHlQZXJmb3JtRXNj
YXBlDQorew0KKyAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQ0KKyAg
ICAgICAgcmV0dXJuIE5POw0KKyAgICByZXR1cm4gc2VsZi5heEJhY2tpbmdPYmplY3QtPnBlcmZv
cm1Fc2NhcGUoKTsNCit9DQorDQogLSAoQk9PTClfYWNjZXNzaWJpbGl0eUFjdGl2YXRlDQogew0K
ICAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQ0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHANCmluZGV4IDA2MWU5YTY4NjBkLi5kZTU0YmU3MjVjNCAxMDA2NDQNCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRP
YmplY3QuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkT2JqZWN0LmNwcA0KQEAgLTYzMCw2ICs2MzAsMTUgQEAgdm9pZCBBWElzb2xh
dGVkT2JqZWN0OjpzZXRJc0V4cGFuZGVkKGJvb2wgdmFsdWUpDQogICAgIH0pOw0KIH0NCiANCiti
b29sIEFYSXNvbGF0ZWRPYmplY3Q6OnBlcmZvcm1Fc2NhcGUoKQ0KK3sNCisgICAgcmV0dXJuIEFj
Y2Vzc2liaWxpdHk6OnJldHJpZXZlVmFsdWVGcm9tTWFpblRocmVhZDxib29sPihbdGhpc10gKCkg
LT4gYm9vbCB7DQorICAgICAgICBpZiAoYXV0byogYXhPYmplY3QgPSBhc3NvY2lhdGVkQVhPYmpl
Y3QoKSkNCisgICAgICAgICAgICByZXR1cm4gYXhPYmplY3QtPnBlcmZvcm1Fc2NhcGUoKTsNCisg
ICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgfSk7DQorfQ0KKw0KIGJvb2wgQVhJc29sYXRlZE9i
amVjdDo6c2V0VmFsdWUoZmxvYXQgdmFsdWUpDQogew0KICAgICByZXR1cm4gQWNjZXNzaWJpbGl0
eTo6cmV0cmlldmVWYWx1ZUZyb21NYWluVGhyZWFkPGJvb2w+KFsmdmFsdWUsIHRoaXNdICgpIC0+
IGJvb2wgew0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
aXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaA0KaW5kZXggMmExOTlmZWE1OWIuLjY4MDJj
MTU2NjE5IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgNCkBAIC03MjEsNiArNzIxLDcgQEAg
cHJpdmF0ZToNCiAgICAgRmxvYXRSZWN0IGNvbnZlcnRGcmFtZVRvU3BhY2UoY29uc3QgRmxvYXRS
ZWN0JiwgQWNjZXNzaWJpbGl0eUNvbnZlcnNpb25TcGFjZSkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gRmxvYXRSZWN0KCk7IH0NCiAgICAgdm9pZCBpbmNyZW1lbnQoKSBvdmVycmlkZSB7IH0NCiAg
ICAgdm9pZCBkZWNyZW1lbnQoKSBvdmVycmlkZSB7IH0NCisgICAgYm9vbCBwZXJmb3JtRXNjYXBl
KCkgb3ZlcnJpZGU7DQogICAgIHZvaWQgc2Nyb2xsVG9NYWtlVmlzaWJsZSgpIGNvbnN0IG92ZXJy
aWRlIHsgfQ0KICAgICB2b2lkIHNjcm9sbFRvTWFrZVZpc2libGVXaXRoU3ViRm9jdXMoY29uc3Qg
SW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlIHsgfQ0KICAgICB2b2lkIHNjcm9sbFRvR2xvYmFsUG9p
bnQoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlkZSB7IH0NCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyTWFjLm1tDQppbmRleCA5Njg2ZDQzNTU2NC4uNTNhNzU4MmFjNDEgMTAw
NjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlck1hYy5tbQ0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0NCkBAIC0zNDcwLDYgKzM0
NzAsOCBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQNCiAgICAgICAgIFtz
ZWxmIGFjY2Vzc2liaWxpdHlQZXJmb3JtRGVjcmVtZW50QWN0aW9uXTsNCiAgICAgZWxzZSBpZiAo
W2FjdGlvbiBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5U2Nyb2xsVG9WaXNpYmxlQWN0
aW9uXSkNCiAgICAgICAgIFtzZWxmIGFjY2Vzc2liaWxpdHlTY3JvbGxUb1Zpc2libGVdOw0KKyAg
ICBlbHNlIGlmIChbYWN0aW9uIGlzRXF1YWxUb1N0cmluZzpAIkFYRGlzbWlzc0FjdGlvbiJdKQ0K
KyAgICAgICAgYmFja2luZ09iamVjdC0+cGVyZm9ybUVzY2FwZSgpOw0KIH0NCiANCiAtIChCT09M
KWFjY2Vzc2liaWxpdHlSZXBsYWNlUmFuZ2U6KE5TUmFuZ2UpcmFuZ2Ugd2l0aFRleHQ6KE5TU3Ry
aW5nICopc3RyaW5nDQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nDQppbmRleCA4MTAwMzU5NTlmYi4uMTc2Y2RjNzVkYjUgMTAwNjQ0DQotLS0gYS9Ub29scy9D
aGFuZ2VMb2cNCisrKyBiL1Rvb2xzL0NoYW5nZUxvZw0KQEAgLTEsMyArMSwyOSBAQA0KKzIwMjAt
MDctMDIgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4NCisNCisgICAgICAg
IEFYOiBJbXBsZW1lbnQgdXNlciBhY3Rpb24gc3BlYyBmb3IgRXNjYXBlIGFjdGlvbg0KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzg3NQ0KKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzY1MDIyOTgwPg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuDQorDQorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuY3BwOg0KKyAgICAgICAgKGRpc21pc3NDYWxsYmFjayk6DQorICAgICAgICAoQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0SlNDbGFzcyk6DQorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaDoNCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
aW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW06DQorICAgICAgICAoQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6ZGlzbWlzcyk6DQorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tOg0KKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmRpc21pc3MpOg0KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwOg0KKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6dGV4dE1hcmtlclJhbmdlTWF0Y2hlc1RleHROZWFyTWFya2Vycyk6DQorICAg
ICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNtaXNzKToNCisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmg6
DQorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudC5pZGw6DQorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW06DQorICAgICAgICAo
V1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNtaXNzKToNCisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5t
bToNCisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc21pc3MpOg0KKw0K
IDIwMjAtMDctMDEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+DQogDQog
ICAgICAgICBGaXggdGhlIFdlYktpdCBidWlsZCBhZnRlciA8cmRhcjovL3Byb2JsZW0vNjQyODgx
OTE+DQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNw
cA0KaW5kZXggMTFmM2E1MTk0ZjkuLjBlNWE1MGY2YjlkIDEwMDY0NA0KLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHANCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwDQpAQCAtNzI3LDYgKzcyNywxMiBA
QCBzdGF0aWMgSlNWYWx1ZVJlZiBwcmVzc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYg0KICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmlu
ZWQoY29udGV4dCk7DQogfQ0KIA0KK3N0YXRpYyBKU1ZhbHVlUmVmIGRpc21pc3NDYWxsYmFjayhK
U0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRo
aXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50
c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pDQorew0KKyAgICB0b0FYRWxlbWVudCh0aGlzT2Jq
ZWN0KS0+ZGlzbWlzcygpOw0KKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4
dCk7DQorfQ0KKw0KIHN0YXRpYyBKU1ZhbHVlUmVmIHNjcm9sbFRvTWFrZVZpc2libGVXaXRoU3Vi
Rm9jdXNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24s
IEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1Zh
bHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pDQogew0KICAgICB1bnNp
Z25lZCB4ID0gMDsNCkBAIC0xOTc4LDYgKzE5ODQsNyBAQCBKU0NsYXNzUmVmIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmdldEpTQ2xhc3MoKQ0KICAgICAgICAgeyAiZGVjcmVtZW50IiwgZGVjcmVt
ZW50Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwNCiAgICAgICAgIHsgInNob3dNZW51Iiwgc2hvd01lbnVDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LA0KICAgICAgICAgeyAicHJlc3MiLCBwcmVzc0NhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
DQorICAgICAgICB7ICJkaXNtaXNzIiwgZGlzbWlzc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sDQogICAgICAg
ICB7ICJkaXNjbG9zZWRSb3dBdEluZGV4IiwgZGlzY2xvc2VkUm93QXRJbmRleENhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVs
ZXRlIH0sDQogICAgICAgICB7ICJhcmlhT3duc0VsZW1lbnRBdEluZGV4IiwgYXJpYU93bnNFbGVt
ZW50QXRJbmRleENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sDQogICAgICAgICB7ICJhcmlhRmxvd1RvRWxlbWVu
dEF0SW5kZXgiLCBhcmlhRmxvd1RvRWxlbWVudEF0SW5kZXhDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LA0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaA0KaW5kZXggZDcy
MTk3ZmVjMGMuLmE1MDI2NWZiNjA5IDEwMDY0NA0KLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oDQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50LmgNCkBAIC05Nyw2ICs5Nyw3IEBAIHB1YmxpYzoNCiAgICAgdm9p
ZCBkZWNyZW1lbnQoKTsNCiAgICAgdm9pZCBzaG93TWVudSgpOw0KICAgICB2b2lkIHByZXNzKCk7
DQorICAgIHZvaWQgZGlzbWlzcygpOw0KIA0KICAgICAvLyBBdHRyaWJ1dGVzIC0gcGxhdGZvcm0t
aW5kZXBlbmRlbnQgaW1wbGVtZW50YXRpb25zDQogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBzdHJpbmdBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpOw0KZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1t
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0N
CmluZGV4IDE2YWM2YTA2MjNjLi5lM2M5MDlkNmRkMiAxMDA2NDQNCi0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tDQorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQ0KQEAgLTkxLDYg
KzkxLDcgQEAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudChp
ZCBlbGVtZW50KQ0KIC0gKE5TU3RyaW5nICopYWNjZXNzaWJpbGl0eVRleHR1YWxDb250ZXh0Ow0K
IC0gKEJPT0wpYWNjZXNzaWJpbGl0eUhhc1BvcHVwOw0KIC0gKE5TU3RyaW5nICopYWNjZXNzaWJp
bGl0eVBvcHVwVmFsdWU7DQorLSAoQk9PTClhY2Nlc3NpYmlsaXR5UGVyZm9ybUVzY2FwZTsNCiAN
CiAvLyBUZXh0TWFya2VyIHJlbGF0ZWQNCiAtIChOU0FycmF5ICopdGV4dE1hcmtlclJhbmdlOw0K
QEAgLTMyOSw2ICszMzAsMTEgQEAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojp0aXRsZVVJRWxlbWVudCgpDQogICAgIHJldHVybiAwOw0KIH0NCiANCit2b2lk
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc21pc3MoKQ0KK3sNCisgICAgW21fZWxlbWVudCBh
Y2Nlc3NpYmlsaXR5UGVyZm9ybUVzY2FwZV07DQorfQ0KKw0KIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGFyZW50RWxlbWVudCgpDQogew0KICAgICBpZCBh
Y2Nlc3NpYmlsaXR5T2JqZWN0ID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5Q29udGFpbmVyXTsN
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudE1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50TWFjLm1tDQppbmRleCA2MjEzZTc2MTZjOC4uZTFlZmQ3ZjRlMTYgMTAwNjQ0DQotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQ0KKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0N
CkBAIC0xMzc0LDYgKzEzNzQsMTMgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRW
YWx1ZShKU1N0cmluZ1JlZiB2YWx1ZVRleHQpDQogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMN
CiB9DQogDQordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNtaXNzKCkNCit7DQorICAg
IEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUw0KKyAgICBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlQ
ZXJmb3JtQWN0aW9uOkAiQVhEaXNtaXNzQWN0aW9uIl07DQorICAgIEVORF9BWF9PQkpDX0VYQ0VQ
VElPTlMNCit9DQorDQogdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmNyZW1lbnQoKQ0K
IHsNCiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TDQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5jcHANCmluZGV4IDJhMjM3ZDM2OTliLi4zYjlkOTBlNzVlMCAxMDA2NDQNCi0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dC5jcHANCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudC5jcHANCkBAIC03Nyw3ICs3Nyw2IEBAIFJlZlB0cjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpmaWVsZHNldEFuY2VzdG9yRWxl
bWVudCgpDQogYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1NlYXJjaEZpZWxkKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0NCiBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVGV4
dEFyZWEoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQ0KIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4
dE1hcmtlclJhbmdlPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VNYXRj
aGVzVGV4dE5lYXJNYXJrZXJzKEpTU3RyaW5nUmVmLCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcios
IEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKikgeyByZXR1cm4gbnVsbHB0cjsgfQ0KLWJvb2wgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzbWlzcygpIHsgcmV0dXJuIGZhbHNlOyB9DQogSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJp
bmdGb3JFbGVtZW50KCkgeyByZXR1cm4gbnVsbHB0cjsgfQ0KIGJvb2wgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNJblRhYmxlQ2VsbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9DQogI2VuZGlm
DQpAQCAtMTEwLDYgKzEwOSw3IEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdl
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZW50ZW5jZVRleHRNYXJrZXJSDQogUmVmUHRyPEFj
Y2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpuZXh0U2VudGVu
Y2VFbmRUZXh0TWFya2VyRm9yVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopIHsg
cmV0dXJuIG51bGxwdHI7IH0NCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnByZXZpb3VzU2VudGVuY2VTdGFydFRleHRNYXJrZXJGb3JUZXh0
TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKikgeyByZXR1cm4gbnVsbHB0cjsgfQ0KIFJl
ZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjptaXNzcGVsbGluZ1RleHRNYXJrZXJSYW5nZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdl
KiwgYm9vbCkgeyByZXR1cm4gbnVsbHB0cjsgfQ0KK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6ZGlzbWlzcygpIHsgfQ0KICNlbmRpZg0KIA0KIH0gLy8gbmFtZXNwYWNlIFdUUg0KZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudC5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50LmgNCmluZGV4IDg3Y2ViNWY3ODBiLi4xNDlhOWZmMjIxZCAxMDA2
NDQNCi0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudC5oDQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaA0KQEAgLTEwMyw3ICsxMDMsNyBAQCBwdWJsaWM6
DQogICAgIHZvaWQgZGVjcmVtZW50KCk7DQogICAgIHZvaWQgc2hvd01lbnUoKTsNCiAgICAgdm9p
ZCBwcmVzcygpOw0KLSAgICBib29sIGRpc21pc3MoKTsNCisgICAgdm9pZCBkaXNtaXNzKCk7DQog
I2lmIFBMQVRGT1JNKE1BQykNCiAgICAgdm9pZCBzeW5jUHJlc3MoKTsNCiAgICAgdm9pZCBhc3lu
Y0luY3JlbWVudCgpOw0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuaWRsDQppbmRleCBlYmUyNGJiYjE4Yy4uN2E0ZTM2MWRlYzIgMTAwNjQ0DQotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuaWRsDQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsDQpAQCAtMTI1LDcgKzEyNSw3IEBA
DQogICAgIHZvaWQgcHJlc3MoKTsNCiAgICAgdm9pZCBzeW5jUHJlc3MoKTsNCiAgICAgdm9pZCBz
aG93TWVudSgpOw0KLSAgICBib29sZWFuIGRpc21pc3MoKTsNCisgICAgdm9pZCBkaXNtaXNzKCk7
DQogDQogICAgIC8vIEF0dHJpYnV0ZSBpbmZvLg0KICAgICBET01TdHJpbmcgYWxsQXR0cmlidXRl
cygpOw0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
aW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tDQppbmRleCBl
YWRiZTgzOGYwMC4uNGE5NzNmZmUxYzMgMTAwNjQ0DQotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tDQorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50SU9TLm1tDQpAQCAtODcyLDkgKzg3Miw5IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6cHJlc3MoKQ0KICAgICBbbV9lbGVtZW50IF9hY2Nlc3NpYmlsaXR5QWN0aXZhdGVd
Ow0KIH0NCiAgICAgDQotYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNtaXNzKCkNCit2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc21pc3MoKQ0KIHsNCi0gICAgcmV0dXJuIFtt
X2VsZW1lbnQgYWNjZXNzaWJpbGl0eVBlcmZvcm1Fc2NhcGVdOw0KKyAgICBbbV9lbGVtZW50IGFj
Y2Vzc2liaWxpdHlQZXJmb3JtRXNjYXBlXTsNCiB9DQogDQogdm9pZCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpzZXRTZWxlY3RlZENoaWxkKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqIGVsZW1lbnQp
IGNvbnN0DQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0NCmluZGV4
IDYzOTg4NTUwNjE2Li4xOTYxNmQxMTY4ZSAxMDA2NDQNCi0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0NCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnRNYWMubW0NCkBAIC0xNDMyLDYgKzE0MzIsMTMgQEAgYm9vbCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZFRleHRSYW5nZSh1bnNpZ25lZCBsb2NhdGlvbiwgdW5z
aWduZWQgbGUNCiAgICAgcmV0dXJuIHRydWU7DQogfQ0KIA0KK3ZvaWQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6ZGlzbWlzcygpDQorew0KKyAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMNCisg
ICAgW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5UGVyZm9ybUFjdGlvbjpAIkFYRGlzbWlzc0FjdGlv
biJdOw0KKyAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TDQorfQ0KKw0KIGJvb2wgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRWaXNpYmxlVGV4dFJhbmdlKEFjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyUmFuZ2UqIG1hcmtlclJhbmdlKQ0KIHsNCiAgICAgc2V0QXR0cmlidXRlVmFsdWUo
bV9lbGVtZW50LmdldCgpLCBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0
dHJpYnV0ZSwgbWFya2VyUmFuZ2UtPnBsYXRmb3JtVGV4dE1hcmtlclJhbmdlKCkpOw0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403442</attachid>
            <date>2020-07-02 23:51:13 -0700</date>
            <delta_ts>2020-07-06 13:04:11 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_213875.txt</filename>
            <type>text/plain</type>
            <size>25071</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggZTBiZDYwZjgxNTUuLjQyYTA2Y2ZkOTY1IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTcg
QEANCisyMDIwLTA3LTAyICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogSW1wbGVtZW50IHVzZXIgYWN0aW9uIHNwZWMgZm9yIEVzY2FwZSBhY3Rp
b24NCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM4
NzUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NTAyMjk4MD4NCisNCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2tleWV2
ZW50cy1wb3N0ZWQtZm9yLWRpc21pc3MtYWN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuDQorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24u
aHRtbDogQWRkZWQuDQorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOg0K
KyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnM6DQorICAg
ICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOg0KKw0KIDIwMjAtMDctMDIgIEVu
cmlxdWUgT2Nhw7FhIEdvbnrDoWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4NCiANCiAgICAgICAg
IFtHVEtdIExheW91dCB0ZXN0IG1lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwgaXMgZmFp
bGluZw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBv
c3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9rZXlldmVudHMtcG9zdGVkLWZvci1kaXNtaXNzLWFjdGlvbi1leHBlY3RlZC50eHQN
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uZTJjMmRhMzk4OTANCi0t
LSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBv
c3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24tZXhwZWN0ZWQudHh0DQpAQCAtMCwwICsxLDExIEBADQor
YWxlcnQNCitUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgZGlzbWlzcyBhY3Rpb24gZ2VuZXJh
dGVzIGFuIGVzY2FwZSBrZXkgZXZlbnQuDQorDQorT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLg0K
Kw0KKw0KK0tleWNvZGUgcmVjZWl2ZWQ6IGNvZGU6IDI3IGtleSBuYW1lOiBFc2NhcGUNCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlDQorDQorVEVTVCBDT01QTEVURQ0KKw0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlz
bWlzcy1hY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBv
c3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24uaHRtbA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4
IDAwMDAwMDAwMDAwLi5hMWQwYTM3MzJmNg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9rZXlldmVudHMtcG9zdGVkLWZvci1kaXNtaXNzLWFjdGlvbi5odG1s
DQpAQCAtMCwwICsxLDMyIEBADQorPGh0bWw+DQorPGh0bWw+DQorPGhlYWQ+DQorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+DQorPC9oZWFkPg0KKzxi
b2R5IGlkPSJib2R5Ij4NCisNCis8ZGl2IGlkPSJhbGVydCI+YWxlcnQ8L2Rpdj4NCisNCis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4NCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCisgICAgIA0K
KzxzY3JpcHQ+DQorICAgIGZ1bmN0aW9uIGhhbmRsZUtleURvd24oZXZlbnQpIHsNCisgICAgICAg
IGRlYnVnKCJLZXljb2RlIHJlY2VpdmVkOiBjb2RlOiAiICsgZXZlbnQua2V5Q29kZSArICIga2V5
IG5hbWU6ICIgKyBldmVudC5rZXkpOw0KKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsN
CisgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOw0KKyAgICAgICAgZmluaXNoSlNUZXN0
KCk7DQorICAgICB9DQorDQorICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIp
IHsNCisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOw0KKyAgICAgICAgZGVzY3JpcHRpb24o
IlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IHRoZSBkaXNtaXNzIGFjdGlvbiBnZW5lcmF0ZXMgYW4g
ZXNjYXBlIGtleSBldmVudC4iKTsNCisNCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJhbGVydCIpLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlEb3duKTsNCisg
ICAgICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiYWxl
cnQiKS5kaXNtaXNzKCk7DQorICAgIH0NCisgPC9zY3JpcHQ+DQorDQorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pg0KKzwvYm9keT4NCis8L2h0bWw+
DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucw0KaW5kZXggMjBlOThj
YzU2NzQuLjk1YjRkNTA2Mjk3IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMNCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zDQpAQCAtNzUwLDYgKzc1MCw3IEBAIEJ1ZyhHVEspIGVkaXRpbmcvc3BlbGxpbmcv
bWFya2Vycy5odG1sIFsgU2tpcCBdDQogd2Via2l0Lm9yZy9iLzg1OTU4IGZhc3QvZm9ybXMvZmls
ZS9maWxlLWlucHV0LWNhcHR1cmUuaHRtbCBbIEZhaWx1cmUgXQ0KIA0KIHdlYmtpdC5vcmcvYi8x
NDY3MjAgbWVkaWEvYWNjZXNzaWJsaXR5LWRlc2NyaWJlcy12aWRlby5odG1sIFsgRmFpbHVyZSBd
DQord2Via2l0Lm9yZy9iLzIxMzg3NCBhY2Nlc3NpYmlsaXR5L2tleWV2ZW50cy1wb3N0ZWQtZm9y
LWRpc21pc3MtYWN0aW9uLmh0bWwgWyBTa2lwIF0NCiANCiB3ZWJraXQub3JnL2IvMTQ2NzI0IGZh
c3QvdGV4dC93b3JkLWJyZWFrLWtlZXAtYWxsLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0NCiAN
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3Rh
dGlvbnMNCmluZGV4IGYxYzUxMTExYWY0Li41MmI3YWYzYWQ3NCAxMDA2NDQNCi0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9ucw0KKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0RXhwZWN0YXRpb25zDQpAQCAtNiw2
ICs2LDcgQEANCiBhY2Nlc3NpYmlsaXR5L2luc2VydC1uZXdsaW5lLmh0bWwgWyBQYXNzIF0NCiBh
Y2Nlc3NpYmlsaXR5L21pc3NwZWxsaW5nLXJhbmdlLmh0bWwgWyBQYXNzIF0NCiBhY2Nlc3NpYmls
aXR5L3VybC10ZXN0Lmh0bWwgWyBQYXNzIF0NCithY2Nlc3NpYmlsaXR5L2tleWV2ZW50cy1wb3N0
ZWQtZm9yLWRpc21pc3MtYWN0aW9uLmh0bWwgWyBQYXNzIF0NCiBjc3MzL2ZvbnQtdmFyaWFudC1z
bWFsbC1jYXBzLXN5bnRoZXNpcy1jb3ZlcmFnZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdDQog
ZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1jbG9zZS10b3Atbm9jbG9zZS5odG1sIFsgRmFp
bHVyZSBdDQogZmFzdC9tdWx0aWNvbC9mbGV4Ym94LXJvd3MuaHRtbCBbIFNraXAgXQ0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMNCmluZGV4IGMxMDY5MjIzMDgyLi4w
Njg4YzcyNDZlNCAxMDA2NDQNCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhw
ZWN0YXRpb25zDQorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9u
cw0KQEAgLTEzODQsNiArMTM4NCw3IEBAIGFjY2Vzc2liaWxpdHkvbXVsdGlzZWxlY3QtbGlzdC1y
ZXBvcnRzLWFjdGl2ZS1vcHRpb24uaHRtbCBbIFNraXAgXQ0KICMgaW5jcmVtZW50L2RlY3JlbWVu
dCBub3QgaW1wbGVtZW50ZWQgaW4gdGVzdCBydW5uZXINCiBhY2Nlc3NpYmlsaXR5L2tleWV2ZW50
cy1mb3ItaW5jcmVtZW50LWFjdGlvbnMtd2l0aC1ub2RlLXJlbW92YWwuaHRtbCBbIFNraXAgXQ0K
IGFjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItaW5jcmVtZW50LWFjdGlvbnMuaHRt
bCBbIFNraXAgXQ0KK2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlzbWlzcy1h
Y3Rpb24uaHRtbCBbIFNraXAgXQ0KIA0KIHdlYmtpdC5vcmcvYi8xNDA3OTYgYWNjZXNzaWJpbGl0
eS9hbHQtdGFnLW9uLWltYWdlLXdpdGgtbm9uaW1hZ2Utcm9sZS5odG1sIFsgU2tpcCBdDQogd2Vi
a2l0Lm9yZy9iLzE0MDc5OCBhY2Nlc3NpYmlsaXR5L2FyaWEtY29udHJvbHMtd2l0aC10YWJzLmh0
bWwgWyBTa2lwIF0NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cNCmluZGV4IDkxNDVmYjhjOTc1Li40MGNjZDMzZWIwMiAxMDA2
NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nDQpAQCAtMSwzICsxLDMxIEBADQorMjAyMC0wNy0wMiAgQ2hyaXMgRmxlaXphY2gg
IDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgQVg6IEltcGxlbWVudCB1c2VyIGFj
dGlvbiBzcGVjIGZvciBFc2NhcGUgYWN0aW9uDQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzODc1DQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjUw
MjI5ODA+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAg
ICAgIEltcGxlbWVudCB0aGUgRXNjYXBlIGFjdGlvbiBmb3IgdGhlIHVzZXIgYWN0aW9uIGV2ZW50
cy4NCisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNHL2FvbS9ibG9iL2doLXBhZ2VzL2V4
cGxhaW5lci5tZCN1c2VyLWFjdGlvbi1ldmVudHMtZnJvbS1hc3Npc3RpdmUtdGVjaG5vbG9neQ0K
Kw0KKyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9rZXlldmVudHMtcG9zdGVkLWZvci1kaXNt
aXNzLWFjdGlvbi5odG1sDQorDQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3QuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0OjpwZXJmb3JtRXNjYXBlKToNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6ZGlzcGF0Y2hTaW11bGF0ZWRLZXlib2FyZFVwRG93bkV2ZW50KToNCisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cG9zdEtleWJvYXJkS2V5c0ZvclZh
bHVlQ2hhbmdlKToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oOg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoN
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6
DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVySU9TLm1tOg0KKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNj
ZXNzaWJpbGl0eVBlcmZvcm1Fc2NhcGVdKToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6QVhJc29s
YXRlZE9iamVjdDo6cGVyZm9ybUVzY2FwZSk6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNv
bGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9t
YWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06DQorICAgICAgICAoLVtXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5UGVyZm9ybUFjdGlvbjpdKToN
CisNCiAyMDIwLTA3LTAxICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5j
b20+DQogDQogICAgICAgICBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRFeHRlbnNpb25zRm9yTUlNRVR5
cGUoKSBuZWVkcyB0byBoYW5kbGUgd2lsZGNhcmQgTUlNRSB0eXBlcw0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAN
CmluZGV4IDI5ZTIyYmIwZDZiLi5hOTU5NTAzMDhkNSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwDQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcA0KQEAg
LTU3LDcgKzU3LDYgQEANCiAjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQuaCINCiAjaW5jbHVk
ZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIg0KICNpbmNsdWRlICJIVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudC5oIg0KLSNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiDQogI2luY2x1ZGUgIkxhYmVs
YWJsZUVsZW1lbnQuaCINCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIg0KICNpbmNsdWRl
ICJNYXRoTUxFbGVtZW50LmgiDQpAQCAtMTA5NSw4ICsxMDk0LDM5IEBAIHZvaWQgQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OmRlY3JlbWVudCgpDQogICAgIGFsdGVyU2xpZGVyVmFsdWUoZmFsc2Up
Ow0KIH0NCiANCitib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwZXJmb3JtRXNjYXBlKCkN
Cit7DQorICAgIC8vIEluIGNhc2UgdGhlIGtleWJvYXJkIGV2ZW50IGNhdXNlcyB0aGlzIGVsZW1l
bnQgdG8gYmUgcmVtb3ZlZC4NCisgICAgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IHByb3RlY3Rl
ZFRoaXMoKnRoaXMpOw0KKyAgICANCisgICAgYXV0byBrZXlJbml0ID0gS2V5Ym9hcmRFdmVudDo6
SW5pdCgpOw0KKyAgICANCisgICAga2V5SW5pdC5rZXkgPSAiRXNjYXBlIl9zOw0KKyAgICBrZXlJ
bml0LmtleUNvZGUgPSAweDFiOw0KKyAgICANCisgICAgcmV0dXJuIGRpc3BhdGNoU2ltdWxhdGVk
S2V5Ym9hcmRVcERvd25FdmVudChrZXlJbml0KTsNCit9DQorDQorYm9vbCBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6ZGlzcGF0Y2hTaW11bGF0ZWRLZXlib2FyZFVwRG93bkV2ZW50KEtleWJvYXJk
RXZlbnQ6OkluaXQmIGtleUluaXQpDQorew0KKyAgICBib29sIGhhbmRsZWQgPSBmYWxzZTsNCisg
ICAgaWYgKGF1dG8qIG5vZGUgPSB0aGlzLT5ub2RlKCkpIHsNCisgICAgICAgIGF1dG8gZXZlbnQg
PSBLZXlib2FyZEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmtleWRvd25FdmVudCwga2V5SW5p
dCk7DQorICAgICAgICBub2RlLT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsNCisgICAgICAgIGhhbmRs
ZWQgfD0gZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCk7DQorICAgIH0NCisgICAgDQorICAgIC8vIEVu
c3VyZSBub2RlIGlzIHN0aWxsIHZhbGlkIGFuZCB3YXNuJ3QgcmVtb3ZlZCBhZnRlciB0aGUga2V5
ZG93bi4NCisgICAgaWYgKGF1dG8qIG5vZGUgPSB0aGlzLT5ub2RlKCkpIHsNCisgICAgICAgIGF1
dG8gZXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmtleXVwRXZlbnQs
IGtleUluaXQpOw0KKyAgICAgICAgbm9kZS0+ZGlzcGF0Y2hFdmVudChldmVudCk7DQorICAgICAg
ICBoYW5kbGVkIHw9IGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpOw0KKyAgICB9DQorICAgIHJldHVy
biBoYW5kbGVkOw0KK30NCisNCiAvLyBGaXJlIGEga2V5Ym9hcmQgZXZlbnQgaWYgd2Ugd2VyZSBu
b3QgYWJsZSB0byBzZXQgdGhpcyB2YWx1ZSBuYXRpdmVseS4NCi12b2lkIEFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0Ojpwb3N0S2V5Ym9hcmRLZXlzRm9yVmFsdWVDaGFuZ2UoYm9vbCBpbmNyZWFzZSkN
Citib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpwb3N0S2V5Ym9hcmRLZXlzRm9yVmFsdWVD
aGFuZ2UoYm9vbCBpbmNyZWFzZSkNCiB7DQogICAgIC8vIEluIGNhc2UgdGhlIGtleWJvYXJkIGV2
ZW50IGNhdXNlcyB0aGlzIGVsZW1lbnQgdG8gYmUgcmVtb3ZlZC4NCiAgICAgUmVmPEFjY2Vzc2li
aWxpdHlPYmplY3Q+IHByb3RlY3RlZFRoaXMoKnRoaXMpOw0KQEAgLTExMDgsMTIgKzExMzgsNyBA
QCB2b2lkIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpwb3N0S2V5Ym9hcmRLZXlzRm9yVmFsdWVD
aGFuZ2UoYm9vbCBpbmNyZWFzZSkNCiAgICAga2V5SW5pdC5rZXkgPSBpbmNyZWFzZSA/IHZlcnRp
Y2FsID8gIkFycm93VXAiX3MgOiBpc0xUUiA/ICJBcnJvd1JpZ2h0Il9zIDogIkFycm93TGVmdCJf
cyA6IHZlcnRpY2FsID8gIkFycm93RG93biJfcyA6IGlzTFRSID8gIkFycm93TGVmdCJfcyA6ICJB
cnJvd1JpZ2h0Il9zOw0KICAgICBrZXlJbml0LmtleUlkZW50aWZpZXIgPSBpbmNyZWFzZSA/IHZl
cnRpY2FsID8gInVwIl9zIDogaXNMVFIgPyAicmlnaHQiX3MgOiAibGVmdCJfcyA6IHZlcnRpY2Fs
ID8gImRvd24iX3MgOiBpc0xUUiA/ICJsZWZ0Il9zIDogInJpZ2h0Il9zOw0KIA0KLSAgICBpZiAo
YXV0byogbm9kZSA9IHRoaXMtPm5vZGUoKSkNCi0gICAgICAgIG5vZGUtPmRpc3BhdGNoRXZlbnQo
S2V5Ym9hcmRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQsIGtleUluaXQp
KTsNCi0NCi0gICAgLy8gRW5zdXJlIG5vZGUgaXMgc3RpbGwgdmFsaWQgYW5kIHdhc24ndCByZW1v
dmVkIGFmdGVyIHRoZSBrZXlkb3duLg0KLSAgICBpZiAoYXV0byogbm9kZSA9IHRoaXMtPm5vZGUo
KSkNCi0gICAgICAgIG5vZGUtPmRpc3BhdGNoRXZlbnQoS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5rZXl1cEV2ZW50LCBrZXlJbml0KSk7DQorICAgIHJldHVybiBkaXNwYXRjaFNp
bXVsYXRlZEtleWJvYXJkVXBEb3duRXZlbnQoa2V5SW5pdCk7DQogfQ0KIA0KIHZvaWQgQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3Q6OnNldE5vZGVWYWx1ZShib29sIGluY3JlYXNlLCBmbG9hdCB2YWx1
ZSkNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmgNCmluZGV4IGNiNWY2MWJjZDlhLi5jMWIyYjU5M2VkNiAxMDA2NDQNCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qu
aA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oDQpAQCAtMjksNiArMjksNyBAQA0KICNwcmFnbWEgb25jZQ0KIA0KICNpbmNsdWRlICJB
Y2Nlc3NpYmlsaXR5T2JqZWN0LmgiDQorI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCINCiAjaW5j
bHVkZSAiTGF5b3V0UmVjdC5oIg0KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPg0KIA0KQEAgLTE4
OSw4ICsxOTAsMTEgQEAgcHJpdmF0ZToNCiAgICAgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlz
SWdub3JlZCgpIGNvbnN0IG92ZXJyaWRlOw0KICAgICBib29sIHVzZXNBbHRUYWdGb3JUZXh0Q29t
cHV0YXRpb24oKSBjb25zdDsNCiAgICAgYm9vbCByb2xlSWdub3Jlc1RpdGxlKCkgY29uc3Q7DQot
ICAgIHZvaWQgcG9zdEtleWJvYXJkS2V5c0ZvclZhbHVlQ2hhbmdlKGJvb2wgaW5jcmVhc2UpOw0K
KyAgICBib29sIHBvc3RLZXlib2FyZEtleXNGb3JWYWx1ZUNoYW5nZShib29sIGluY3JlYXNlKTsN
CiAgICAgdm9pZCBzZXROb2RlVmFsdWUoYm9vbCBpbmNyZWFzZSwgZmxvYXQgdmFsdWUpOw0KKyAg
ICBib29sIHBlcmZvcm1Fc2NhcGUoKSBvdmVycmlkZTsNCisgICAgYm9vbCBkaXNwYXRjaFNpbXVs
YXRlZEtleWJvYXJkVXBEb3duRXZlbnQoS2V5Ym9hcmRFdmVudDo6SW5pdCYpOw0KKyAgICANCiAg
ICAgTm9kZSogbV9ub2RlOw0KIH07DQogDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaA0KaW5kZXggOTUzOGZlNDE1YjMuLjZiODFiMjNj
MzkwIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oDQpAQCAtNDc4LDcgKzQ3OCw4IEBAIHB1YmxpYzoNCiAgICAgQWNjZXNzaWJp
bGl0eU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7DQogICAgIHZvaWQg
aW5jcmVtZW50KCkgb3ZlcnJpZGUgeyB9DQogICAgIHZvaWQgZGVjcmVtZW50KCkgb3ZlcnJpZGUg
eyB9DQotDQorICAgIGJvb2wgcGVyZm9ybUVzY2FwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNl
OyB9DQorICAgIA0KICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZCgpIG92ZXJyaWRlIHsgfQ0KICAg
ICB2b2lkIHRleHRDaGFuZ2VkKCkgb3ZlcnJpZGUgeyB9DQogICAgIHZvaWQgdXBkYXRlQWNjZXNz
aWJpbGl0eVJvbGUoKSBvdmVycmlkZSB7IH0NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oDQppbmRleCBi
ZWE0YTdmZjQ2Yi4uM2VjNzAyY2EzZDAgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaA0KKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgNCkBAIC05
MDcsNyArOTA3LDggQEAgcHVibGljOg0KICAgICB2aXJ0dWFsIHZvaWQgbWFrZVJhbmdlVmlzaWJs
ZShjb25zdCBQbGFpblRleHRSYW5nZSYpID0gMDsNCiAgICAgdmlydHVhbCBib29sIHByZXNzKCkg
PSAwOw0KICAgICB2aXJ0dWFsIGJvb2wgcGVyZm9ybURlZmF1bHRBY3Rpb24oKSA9IDA7DQotDQor
ICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtRXNjYXBlKCkgPSAwOw0KKyAgICANCiAgICAgdmlydHVh
bCBBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb24gb3JpZW50YXRpb24oKSBjb25zdCA9IDA7DQogICAg
IHZpcnR1YWwgdm9pZCBpbmNyZW1lbnQoKSA9IDA7DQogICAgIHZpcnR1YWwgdm9pZCBkZWNyZW1l
bnQoKSA9IDA7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3Mv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQ0KaW5kZXgg
Yjc3NDI1Y2Q0MTAuLmY5NTczNzRhZjQwIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0NCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVySU9TLm1tDQpAQCAtMTgyNyw2ICsxODI3LDEzIEBAIHN0YXRpYyB2b2lkIGFwcGVuZFN0
cmluZ1RvUmVzdWx0KE5TTXV0YWJsZVN0cmluZyAqcmVzdWx0LCBOU1N0cmluZyAqc3RyaW5nKQ0K
ICAgICByZXR1cm4gbmlsOw0KIH0NCiANCistIChCT09MKWFjY2Vzc2liaWxpdHlQZXJmb3JtRXNj
YXBlDQorew0KKyAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQ0KKyAg
ICAgICAgcmV0dXJuIE5POw0KKyAgICByZXR1cm4gc2VsZi5heEJhY2tpbmdPYmplY3QtPnBlcmZv
cm1Fc2NhcGUoKTsNCit9DQorDQogLSAoQk9PTClfYWNjZXNzaWJpbGl0eUFjdGl2YXRlDQogew0K
ICAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQ0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHANCmluZGV4IDA2MWU5YTY4NjBkLi5kZTU0YmU3MjVjNCAxMDA2NDQNCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRP
YmplY3QuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkT2JqZWN0LmNwcA0KQEAgLTYzMCw2ICs2MzAsMTUgQEAgdm9pZCBBWElzb2xh
dGVkT2JqZWN0OjpzZXRJc0V4cGFuZGVkKGJvb2wgdmFsdWUpDQogICAgIH0pOw0KIH0NCiANCiti
b29sIEFYSXNvbGF0ZWRPYmplY3Q6OnBlcmZvcm1Fc2NhcGUoKQ0KK3sNCisgICAgcmV0dXJuIEFj
Y2Vzc2liaWxpdHk6OnJldHJpZXZlVmFsdWVGcm9tTWFpblRocmVhZDxib29sPihbdGhpc10gKCkg
LT4gYm9vbCB7DQorICAgICAgICBpZiAoYXV0byogYXhPYmplY3QgPSBhc3NvY2lhdGVkQVhPYmpl
Y3QoKSkNCisgICAgICAgICAgICByZXR1cm4gYXhPYmplY3QtPnBlcmZvcm1Fc2NhcGUoKTsNCisg
ICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgfSk7DQorfQ0KKw0KIGJvb2wgQVhJc29sYXRlZE9i
amVjdDo6c2V0VmFsdWUoZmxvYXQgdmFsdWUpDQogew0KICAgICByZXR1cm4gQWNjZXNzaWJpbGl0
eTo6cmV0cmlldmVWYWx1ZUZyb21NYWluVGhyZWFkPGJvb2w+KFsmdmFsdWUsIHRoaXNdICgpIC0+
IGJvb2wgew0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
aXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaA0KaW5kZXggMmExOTlmZWE1OWIuLjY4MDJj
MTU2NjE5IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgNCkBAIC03MjEsNiArNzIxLDcgQEAg
cHJpdmF0ZToNCiAgICAgRmxvYXRSZWN0IGNvbnZlcnRGcmFtZVRvU3BhY2UoY29uc3QgRmxvYXRS
ZWN0JiwgQWNjZXNzaWJpbGl0eUNvbnZlcnNpb25TcGFjZSkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gRmxvYXRSZWN0KCk7IH0NCiAgICAgdm9pZCBpbmNyZW1lbnQoKSBvdmVycmlkZSB7IH0NCiAg
ICAgdm9pZCBkZWNyZW1lbnQoKSBvdmVycmlkZSB7IH0NCisgICAgYm9vbCBwZXJmb3JtRXNjYXBl
KCkgb3ZlcnJpZGU7DQogICAgIHZvaWQgc2Nyb2xsVG9NYWtlVmlzaWJsZSgpIGNvbnN0IG92ZXJy
aWRlIHsgfQ0KICAgICB2b2lkIHNjcm9sbFRvTWFrZVZpc2libGVXaXRoU3ViRm9jdXMoY29uc3Qg
SW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlIHsgfQ0KICAgICB2b2lkIHNjcm9sbFRvR2xvYmFsUG9p
bnQoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlkZSB7IH0NCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyTWFjLm1tDQppbmRleCA5Njg2ZDQzNTU2NC4uNTNhNzU4MmFjNDEgMTAw
NjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlck1hYy5tbQ0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0NCkBAIC0zNDcwLDYgKzM0
NzAsOCBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQNCiAgICAgICAgIFtz
ZWxmIGFjY2Vzc2liaWxpdHlQZXJmb3JtRGVjcmVtZW50QWN0aW9uXTsNCiAgICAgZWxzZSBpZiAo
W2FjdGlvbiBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5U2Nyb2xsVG9WaXNpYmxlQWN0
aW9uXSkNCiAgICAgICAgIFtzZWxmIGFjY2Vzc2liaWxpdHlTY3JvbGxUb1Zpc2libGVdOw0KKyAg
ICBlbHNlIGlmIChbYWN0aW9uIGlzRXF1YWxUb1N0cmluZzpAIkFYRGlzbWlzc0FjdGlvbiJdKQ0K
KyAgICAgICAgYmFja2luZ09iamVjdC0+cGVyZm9ybUVzY2FwZSgpOw0KIH0NCiANCiAtIChCT09M
KWFjY2Vzc2liaWxpdHlSZXBsYWNlUmFuZ2U6KE5TUmFuZ2UpcmFuZ2Ugd2l0aFRleHQ6KE5TU3Ry
aW5nICopc3RyaW5nDQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nDQppbmRleCA4MTAwMzU5NTlmYi4uMTc2Y2RjNzVkYjUgMTAwNjQ0DQotLS0gYS9Ub29scy9D
aGFuZ2VMb2cNCisrKyBiL1Rvb2xzL0NoYW5nZUxvZw0KQEAgLTEsMyArMSwyOSBAQA0KKzIwMjAt
MDctMDIgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4NCisNCisgICAgICAg
IEFYOiBJbXBsZW1lbnQgdXNlciBhY3Rpb24gc3BlYyBmb3IgRXNjYXBlIGFjdGlvbg0KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzg3NQ0KKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzY1MDIyOTgwPg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuDQorDQorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuY3BwOg0KKyAgICAgICAgKGRpc21pc3NDYWxsYmFjayk6DQorICAgICAgICAoQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0SlNDbGFzcyk6DQorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaDoNCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
aW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW06DQorICAgICAgICAoQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6ZGlzbWlzcyk6DQorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tOg0KKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmRpc21pc3MpOg0KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwOg0KKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6dGV4dE1hcmtlclJhbmdlTWF0Y2hlc1RleHROZWFyTWFya2Vycyk6DQorICAg
ICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNtaXNzKToNCisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmg6
DQorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudC5pZGw6DQorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW06DQorICAgICAgICAo
V1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNtaXNzKToNCisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5t
bToNCisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc21pc3MpOg0KKw0K
IDIwMjAtMDctMDEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+DQogDQog
ICAgICAgICBGaXggdGhlIFdlYktpdCBidWlsZCBhZnRlciA8cmRhcjovL3Byb2JsZW0vNjQyODgx
OTE+DQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNw
cA0KaW5kZXggMTFmM2E1MTk0ZjkuLjBlNWE1MGY2YjlkIDEwMDY0NA0KLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHANCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwDQpAQCAtNzI3LDYgKzcyNywxMiBA
QCBzdGF0aWMgSlNWYWx1ZVJlZiBwcmVzc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYg0KICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmlu
ZWQoY29udGV4dCk7DQogfQ0KIA0KK3N0YXRpYyBKU1ZhbHVlUmVmIGRpc21pc3NDYWxsYmFjayhK
U0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRo
aXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50
c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pDQorew0KKyAgICB0b0FYRWxlbWVudCh0aGlzT2Jq
ZWN0KS0+ZGlzbWlzcygpOw0KKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4
dCk7DQorfQ0KKw0KIHN0YXRpYyBKU1ZhbHVlUmVmIHNjcm9sbFRvTWFrZVZpc2libGVXaXRoU3Vi
Rm9jdXNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24s
IEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1Zh
bHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pDQogew0KICAgICB1bnNp
Z25lZCB4ID0gMDsNCkBAIC0xOTc4LDYgKzE5ODQsNyBAQCBKU0NsYXNzUmVmIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmdldEpTQ2xhc3MoKQ0KICAgICAgICAgeyAiZGVjcmVtZW50IiwgZGVjcmVt
ZW50Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwNCiAgICAgICAgIHsgInNob3dNZW51Iiwgc2hvd01lbnVDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LA0KICAgICAgICAgeyAicHJlc3MiLCBwcmVzc0NhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
DQorICAgICAgICB7ICJkaXNtaXNzIiwgZGlzbWlzc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sDQogICAgICAg
ICB7ICJkaXNjbG9zZWRSb3dBdEluZGV4IiwgZGlzY2xvc2VkUm93QXRJbmRleENhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVs
ZXRlIH0sDQogICAgICAgICB7ICJhcmlhT3duc0VsZW1lbnRBdEluZGV4IiwgYXJpYU93bnNFbGVt
ZW50QXRJbmRleENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sDQogICAgICAgICB7ICJhcmlhRmxvd1RvRWxlbWVu
dEF0SW5kZXgiLCBhcmlhRmxvd1RvRWxlbWVudEF0SW5kZXhDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LA0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaA0KaW5kZXggZDcy
MTk3ZmVjMGMuLmE1MDI2NWZiNjA5IDEwMDY0NA0KLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oDQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50LmgNCkBAIC05Nyw2ICs5Nyw3IEBAIHB1YmxpYzoNCiAgICAgdm9p
ZCBkZWNyZW1lbnQoKTsNCiAgICAgdm9pZCBzaG93TWVudSgpOw0KICAgICB2b2lkIHByZXNzKCk7
DQorICAgIHZvaWQgZGlzbWlzcygpOw0KIA0KICAgICAvLyBBdHRyaWJ1dGVzIC0gcGxhdGZvcm0t
aW5kZXBlbmRlbnQgaW1wbGVtZW50YXRpb25zDQogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBzdHJpbmdBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpOw0KZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1t
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0N
CmluZGV4IDE2YWM2YTA2MjNjLi5lM2M5MDlkNmRkMiAxMDA2NDQNCi0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tDQorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQ0KQEAgLTkxLDYg
KzkxLDcgQEAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudChp
ZCBlbGVtZW50KQ0KIC0gKE5TU3RyaW5nICopYWNjZXNzaWJpbGl0eVRleHR1YWxDb250ZXh0Ow0K
IC0gKEJPT0wpYWNjZXNzaWJpbGl0eUhhc1BvcHVwOw0KIC0gKE5TU3RyaW5nICopYWNjZXNzaWJp
bGl0eVBvcHVwVmFsdWU7DQorLSAoQk9PTClhY2Nlc3NpYmlsaXR5UGVyZm9ybUVzY2FwZTsNCiAN
CiAvLyBUZXh0TWFya2VyIHJlbGF0ZWQNCiAtIChOU0FycmF5ICopdGV4dE1hcmtlclJhbmdlOw0K
QEAgLTMyOSw2ICszMzAsMTEgQEAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojp0aXRsZVVJRWxlbWVudCgpDQogICAgIHJldHVybiAwOw0KIH0NCiANCit2b2lk
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc21pc3MoKQ0KK3sNCisgICAgW21fZWxlbWVudCBh
Y2Nlc3NpYmlsaXR5UGVyZm9ybUVzY2FwZV07DQorfQ0KKw0KIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGFyZW50RWxlbWVudCgpDQogew0KICAgICBpZCBh
Y2Nlc3NpYmlsaXR5T2JqZWN0ID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5Q29udGFpbmVyXTsN
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudE1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50TWFjLm1tDQppbmRleCA2MjEzZTc2MTZjOC4uZTFlZmQ3ZjRlMTYgMTAwNjQ0DQotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQ0KKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0N
CkBAIC0xMzc0LDYgKzEzNzQsMTMgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRW
YWx1ZShKU1N0cmluZ1JlZiB2YWx1ZVRleHQpDQogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMN
CiB9DQogDQordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNtaXNzKCkNCit7DQorICAg
IEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUw0KKyAgICBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlQ
ZXJmb3JtQWN0aW9uOkAiQVhEaXNtaXNzQWN0aW9uIl07DQorICAgIEVORF9BWF9PQkpDX0VYQ0VQ
VElPTlMNCit9DQorDQogdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmNyZW1lbnQoKQ0K
IHsNCiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TDQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwDQppbmRleCBiNzM4
NDBlZTA1MC4uNGQ5MGFhNmQ4ZTcgMTAwNjQ0DQotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93
aW4vQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdpbi5jcHANCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V2luLmNwcA0KQEAgLTc0OSw2ICs3NDksMTAg
QEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwcmVzcygpDQogICAgIG1fZWxlbWVudC0+
YWNjRG9EZWZhdWx0QWN0aW9uKHNlbGYoKSk7DQogfQ0KIA0KK3ZvaWQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6ZGlzbWlzcygpDQorew0KK30NCisNCiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc2Nsb3NlZFJvd0F0SW5kZXgodW5zaWduZWQgaW5kZXgp
DQogew0KICAgICByZXR1cm4geyBudWxscHRyIH07DQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dC5jcHANCmluZGV4IDJhMjM3ZDM2OTliLi4zYjlkOTBlNzVlMCAxMDA2NDQNCi0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5j
cHANCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudC5jcHANCkBAIC03Nyw3ICs3Nyw2IEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpmaWVsZHNldEFuY2VzdG9yRWxlbWVu
dCgpDQogYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1NlYXJjaEZpZWxkKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0NCiBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVGV4dEFy
ZWEoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQ0KIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1h
cmtlclJhbmdlPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VNYXRjaGVz
VGV4dE5lYXJNYXJrZXJzKEpTU3RyaW5nUmVmLCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciosIEFj
Y2Vzc2liaWxpdHlUZXh0TWFya2VyKikgeyByZXR1cm4gbnVsbHB0cjsgfQ0KLWJvb2wgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6ZGlzbWlzcygpIHsgcmV0dXJuIGZhbHNlOyB9DQogSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJpbmdG
b3JFbGVtZW50KCkgeyByZXR1cm4gbnVsbHB0cjsgfQ0KIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6aXNJblRhYmxlQ2VsbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9DQogI2VuZGlmDQpA
QCAtMTEwLDYgKzEwOSw3IEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZW50ZW5jZVRleHRNYXJrZXJSDQogUmVmUHRyPEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpuZXh0U2VudGVuY2VF
bmRUZXh0TWFya2VyRm9yVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopIHsgcmV0
dXJuIG51bGxwdHI7IH0NCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnByZXZpb3VzU2VudGVuY2VTdGFydFRleHRNYXJrZXJGb3JUZXh0TWFy
a2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKikgeyByZXR1cm4gbnVsbHB0cjsgfQ0KIFJlZlB0
cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpt
aXNzcGVsbGluZ1RleHRNYXJrZXJSYW5nZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKiwg
Ym9vbCkgeyByZXR1cm4gbnVsbHB0cjsgfQ0KK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
ZGlzbWlzcygpIHsgfQ0KICNlbmRpZg0KIA0KIH0gLy8gbmFtZXNwYWNlIFdUUg0KZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmgNCmluZGV4IDg3Y2ViNWY3ODBiLi4xNDlhOWZmMjIxZCAxMDA2NDQN
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudC5oDQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaA0KQEAgLTEwMyw3ICsxMDMsNyBAQCBwdWJsaWM6DQog
ICAgIHZvaWQgZGVjcmVtZW50KCk7DQogICAgIHZvaWQgc2hvd01lbnUoKTsNCiAgICAgdm9pZCBw
cmVzcygpOw0KLSAgICBib29sIGRpc21pc3MoKTsNCisgICAgdm9pZCBkaXNtaXNzKCk7DQogI2lm
IFBMQVRGT1JNKE1BQykNCiAgICAgdm9pZCBzeW5jUHJlc3MoKTsNCiAgICAgdm9pZCBhc3luY0lu
Y3JlbWVudCgpOw0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQu
aWRsDQppbmRleCBlYmUyNGJiYjE4Yy4uN2E0ZTM2MWRlYzIgMTAwNjQ0DQotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQuaWRsDQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsDQpAQCAtMTI1LDcgKzEyNSw3IEBADQog
ICAgIHZvaWQgcHJlc3MoKTsNCiAgICAgdm9pZCBzeW5jUHJlc3MoKTsNCiAgICAgdm9pZCBzaG93
TWVudSgpOw0KLSAgICBib29sZWFuIGRpc21pc3MoKTsNCisgICAgdm9pZCBkaXNtaXNzKCk7DQog
DQogICAgIC8vIEF0dHJpYnV0ZSBpbmZvLg0KICAgICBET01TdHJpbmcgYWxsQXR0cmlidXRlcygp
Ow0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9z
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tDQppbmRleCBlYWRi
ZTgzOGYwMC4uNGE5NzNmZmUxYzMgMTAwNjQ0DQotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tDQorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50SU9TLm1tDQpAQCAtODcyLDkgKzg3Miw5IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6cHJlc3MoKQ0KICAgICBbbV9lbGVtZW50IF9hY2Nlc3NpYmlsaXR5QWN0aXZhdGVdOw0K
IH0NCiAgICAgDQotYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNtaXNzKCkNCit2b2lk
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc21pc3MoKQ0KIHsNCi0gICAgcmV0dXJuIFttX2Vs
ZW1lbnQgYWNjZXNzaWJpbGl0eVBlcmZvcm1Fc2NhcGVdOw0KKyAgICBbbV9lbGVtZW50IGFjY2Vz
c2liaWxpdHlQZXJmb3JtRXNjYXBlXTsNCiB9DQogDQogdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpzZXRTZWxlY3RlZENoaWxkKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqIGVsZW1lbnQpIGNv
bnN0DQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9t
YWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0NCmluZGV4IDYz
OTg4NTUwNjE2Li4xOTYxNmQxMTY4ZSAxMDA2NDQNCi0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0NCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnRNYWMubW0NCkBAIC0xNDMyLDYgKzE0MzIsMTMgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpzZXRTZWxlY3RlZFRleHRSYW5nZSh1bnNpZ25lZCBsb2NhdGlvbiwgdW5zaWdu
ZWQgbGUNCiAgICAgcmV0dXJuIHRydWU7DQogfQ0KIA0KK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6ZGlzbWlzcygpDQorew0KKyAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMNCisgICAg
W21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5UGVyZm9ybUFjdGlvbjpAIkFYRGlzbWlzc0FjdGlvbiJd
Ow0KKyAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TDQorfQ0KKw0KIGJvb2wgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRWaXNpYmxlVGV4dFJhbmdlKEFjY2Vzc2liaWxpdHlUZXh0
TWFya2VyUmFuZ2UqIG1hcmtlclJhbmdlKQ0KIHsNCiAgICAgc2V0QXR0cmlidXRlVmFsdWUobV9l
bGVtZW50LmdldCgpLCBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJp
YnV0ZSwgbWFya2VyUmFuZ2UtPnBsYXRmb3JtVGV4dE1hcmtlclJhbmdlKCkpOw0K
</data>
<flag name="review"
          id="418925"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403609</attachid>
            <date>2020-07-06 13:04:11 -0700</date>
            <delta_ts>2020-07-06 13:05:07 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_213875.txt</filename>
            <type>text/plain</type>
            <size>24839</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggZTBiZDYwZjgxNTUuLjcwMDBiODc2ZGY2IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTcg
QEANCisyMDIwLTA3LTAyICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogSW1wbGVtZW50IHVzZXIgYWN0aW9uIHNwZWMgZm9yIEVzY2FwZSBhY3Rp
b24NCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM4
NzUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NTAyMjk4MD4NCisNCisgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLg0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2tleWV2ZW50
cy1wb3N0ZWQtZm9yLWRpc21pc3MtYWN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuDQorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24uaHRt
bDogQWRkZWQuDQorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOg0KKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnM6DQorICAgICAg
ICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOg0KKw0KIDIwMjAtMDctMDIgIEVucmlx
dWUgT2Nhw7FhIEdvbnrDoWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4NCiANCiAgICAgICAgIFtH
VEtdIExheW91dCB0ZXN0IG1lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwgaXMgZmFpbGlu
Zw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3Rl
ZC1mb3ItZGlzbWlzcy1hY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9rZXlldmVudHMtcG9zdGVkLWZvci1kaXNtaXNzLWFjdGlvbi1leHBlY3RlZC50eHQNCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uZTJjMmRhMzk4OTANCi0tLSAv
ZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3Rl
ZC1mb3ItZGlzbWlzcy1hY3Rpb24tZXhwZWN0ZWQudHh0DQpAQCAtMCwwICsxLDExIEBADQorYWxl
cnQNCitUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgZGlzbWlzcyBhY3Rpb24gZ2VuZXJhdGVz
IGFuIGVzY2FwZSBrZXkgZXZlbnQuDQorDQorT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLg0KKw0K
Kw0KK0tleWNvZGUgcmVjZWl2ZWQ6IGNvZGU6IDI3IGtleSBuYW1lOiBFc2NhcGUNCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlDQorDQorVEVTVCBDT01QTEVURQ0KKw0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlzbWlz
cy1hY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3Rl
ZC1mb3ItZGlzbWlzcy1hY3Rpb24uaHRtbA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAw
MDAwMDAwMDAwLi5hMWQwYTM3MzJmNg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9rZXlldmVudHMtcG9zdGVkLWZvci1kaXNtaXNzLWFjdGlvbi5odG1sDQpA
QCAtMCwwICsxLDMyIEBADQorPGh0bWw+DQorPGh0bWw+DQorPGhlYWQ+DQorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+DQorPC9oZWFkPg0KKzxib2R5
IGlkPSJib2R5Ij4NCisNCis8ZGl2IGlkPSJhbGVydCI+YWxlcnQ8L2Rpdj4NCisNCis8cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4NCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCisgICAgIA0KKzxz
Y3JpcHQ+DQorICAgIGZ1bmN0aW9uIGhhbmRsZUtleURvd24oZXZlbnQpIHsNCisgICAgICAgIGRl
YnVnKCJLZXljb2RlIHJlY2VpdmVkOiBjb2RlOiAiICsgZXZlbnQua2V5Q29kZSArICIga2V5IG5h
bWU6ICIgKyBldmVudC5rZXkpOw0KKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsNCisg
ICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOw0KKyAgICAgICAgZmluaXNoSlNUZXN0KCk7
DQorICAgICB9DQorDQorICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsN
CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOw0KKyAgICAgICAgZGVzY3JpcHRpb24oIlRo
aXMgdGVzdCB2ZXJpZmllcyB0aGF0IHRoZSBkaXNtaXNzIGFjdGlvbiBnZW5lcmF0ZXMgYW4gZXNj
YXBlIGtleSBldmVudC4iKTsNCisNCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJh
bGVydCIpLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlEb3duKTsNCisgICAg
ICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiYWxlcnQi
KS5kaXNtaXNzKCk7DQorICAgIH0NCisgPC9zY3JpcHQ+DQorDQorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pg0KKzwvYm9keT4NCis8L2h0bWw+DQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucw0KaW5kZXggMjBlOThjYzU2
NzQuLjk1YjRkNTA2Mjk3IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMNCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zDQpAQCAtNzUwLDYgKzc1MCw3IEBAIEJ1ZyhHVEspIGVkaXRpbmcvc3BlbGxpbmcvbWFy
a2Vycy5odG1sIFsgU2tpcCBdDQogd2Via2l0Lm9yZy9iLzg1OTU4IGZhc3QvZm9ybXMvZmlsZS9m
aWxlLWlucHV0LWNhcHR1cmUuaHRtbCBbIEZhaWx1cmUgXQ0KIA0KIHdlYmtpdC5vcmcvYi8xNDY3
MjAgbWVkaWEvYWNjZXNzaWJsaXR5LWRlc2NyaWJlcy12aWRlby5odG1sIFsgRmFpbHVyZSBdDQor
d2Via2l0Lm9yZy9iLzIxMzg3NCBhY2Nlc3NpYmlsaXR5L2tleWV2ZW50cy1wb3N0ZWQtZm9yLWRp
c21pc3MtYWN0aW9uLmh0bWwgWyBTa2lwIF0NCiANCiB3ZWJraXQub3JnL2IvMTQ2NzI0IGZhc3Qv
dGV4dC93b3JkLWJyZWFrLWtlZXAtYWxsLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0NCiANCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlv
bnMNCmluZGV4IGYxYzUxMTExYWY0Li41MmI3YWYzYWQ3NCAxMDA2NDQNCi0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9ucw0KKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0RXhwZWN0YXRpb25zDQpAQCAtNiw2ICs2
LDcgQEANCiBhY2Nlc3NpYmlsaXR5L2luc2VydC1uZXdsaW5lLmh0bWwgWyBQYXNzIF0NCiBhY2Nl
c3NpYmlsaXR5L21pc3NwZWxsaW5nLXJhbmdlLmh0bWwgWyBQYXNzIF0NCiBhY2Nlc3NpYmlsaXR5
L3VybC10ZXN0Lmh0bWwgWyBQYXNzIF0NCithY2Nlc3NpYmlsaXR5L2tleWV2ZW50cy1wb3N0ZWQt
Zm9yLWRpc21pc3MtYWN0aW9uLmh0bWwgWyBQYXNzIF0NCiBjc3MzL2ZvbnQtdmFyaWFudC1zbWFs
bC1jYXBzLXN5bnRoZXNpcy1jb3ZlcmFnZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdDQogZmFz
dC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1jbG9zZS10b3Atbm9jbG9zZS5odG1sIFsgRmFpbHVy
ZSBdDQogZmFzdC9tdWx0aWNvbC9mbGV4Ym94LXJvd3MuaHRtbCBbIFNraXAgXQ0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMNCmluZGV4IGMxMDY5MjIzMDgyLi4wNjg4
YzcyNDZlNCAxMDA2NDQNCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0
YXRpb25zDQorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucw0K
QEAgLTEzODQsNiArMTM4NCw3IEBAIGFjY2Vzc2liaWxpdHkvbXVsdGlzZWxlY3QtbGlzdC1yZXBv
cnRzLWFjdGl2ZS1vcHRpb24uaHRtbCBbIFNraXAgXQ0KICMgaW5jcmVtZW50L2RlY3JlbWVudCBu
b3QgaW1wbGVtZW50ZWQgaW4gdGVzdCBydW5uZXINCiBhY2Nlc3NpYmlsaXR5L2tleWV2ZW50cy1m
b3ItaW5jcmVtZW50LWFjdGlvbnMtd2l0aC1ub2RlLXJlbW92YWwuaHRtbCBbIFNraXAgXQ0KIGFj
Y2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItaW5jcmVtZW50LWFjdGlvbnMuaHRtbCBb
IFNraXAgXQ0KK2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlzbWlzcy1hY3Rp
b24uaHRtbCBbIFNraXAgXQ0KIA0KIHdlYmtpdC5vcmcvYi8xNDA3OTYgYWNjZXNzaWJpbGl0eS9h
bHQtdGFnLW9uLWltYWdlLXdpdGgtbm9uaW1hZ2Utcm9sZS5odG1sIFsgU2tpcCBdDQogd2Via2l0
Lm9yZy9iLzE0MDc5OCBhY2Nlc3NpYmlsaXR5L2FyaWEtY29udHJvbHMtd2l0aC10YWJzLmh0bWwg
WyBTa2lwIF0NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cNCmluZGV4IDkxNDVmYjhjOTc1Li5kYWQwNGZhMGIyNiAxMDA2NDQN
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nDQpAQCAtMSwzICsxLDMxIEBADQorMjAyMC0wNy0wMiAgQ2hyaXMgRmxlaXphY2ggIDxj
ZmxlaXphY2hAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgQVg6IEltcGxlbWVudCB1c2VyIGFjdGlv
biBzcGVjIGZvciBFc2NhcGUgYWN0aW9uDQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjEzODc1DQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjUwMjI5
ODA+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4NCisNCisgICAgICAgIElt
cGxlbWVudCB0aGUgRXNjYXBlIGFjdGlvbiBmb3IgdGhlIHVzZXIgYWN0aW9uIGV2ZW50cy4NCisg
ICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNHL2FvbS9ibG9iL2doLXBhZ2VzL2V4cGxhaW5l
ci5tZCN1c2VyLWFjdGlvbi1ldmVudHMtZnJvbS1hc3Npc3RpdmUtdGVjaG5vbG9neQ0KKw0KKyAg
ICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9rZXlldmVudHMtcG9zdGVkLWZvci1kaXNtaXNzLWFj
dGlvbi5odG1sDQorDQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpw
ZXJmb3JtRXNjYXBlKToNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6ZGlzcGF0Y2hTaW11bGF0ZWRLZXlib2FyZFVwRG93bkV2ZW50KToNCisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cG9zdEtleWJvYXJkS2V5c0ZvclZhbHVlQ2hh
bmdlKToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5o
Og0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoNCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6DQorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9T
Lm1tOg0KKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJp
bGl0eVBlcmZvcm1Fc2NhcGVdKToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZE9iamVjdC5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9i
amVjdDo6cGVyZm9ybUVzY2FwZSk6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06DQorICAgICAgICAoLVtXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5UGVyZm9ybUFjdGlvbjpdKToNCisNCiAy
MDIwLTA3LTAxICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+DQog
DQogICAgICAgICBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRFeHRlbnNpb25zRm9yTUlNRVR5cGUoKSBu
ZWVkcyB0byBoYW5kbGUgd2lsZGNhcmQgTUlNRSB0eXBlcw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHANCmluZGV4
IDI5ZTIyYmIwZDZiLi4xY2RjZjEyNWYxNSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwDQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcA0KQEAgLTEwOTUs
MTIgKzEwOTUsMzkgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZGVjcmVtZW50KCkN
CiAgICAgYWx0ZXJTbGlkZXJWYWx1ZShmYWxzZSk7DQogfQ0KIA0KLS8vIEZpcmUgYSBrZXlib2Fy
ZCBldmVudCBpZiB3ZSB3ZXJlIG5vdCBhYmxlIHRvIHNldCB0aGlzIHZhbHVlIG5hdGl2ZWx5Lg0K
LXZvaWQgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBvc3RLZXlib2FyZEtleXNGb3JWYWx1ZUNo
YW5nZShib29sIGluY3JlYXNlKQ0KK3N0YXRpYyBib29sIGRpc3BhdGNoU2ltdWxhdGVkS2V5Ym9h
cmRVcERvd25FdmVudChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIGNvbnN0IEtleWJvYXJk
RXZlbnQ6OkluaXQmIGtleUluaXQpDQogew0KICAgICAvLyBJbiBjYXNlIHRoZSBrZXlib2FyZCBl
dmVudCBjYXVzZXMgdGhpcyBlbGVtZW50IHRvIGJlIHJlbW92ZWQuDQotICAgIFJlZjxBY2Nlc3Np
YmlsaXR5T2JqZWN0PiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsNCisgICAgUmVmPEFjY2Vzc2liaWxp
dHlPYmplY3Q+IHByb3RlY3RlZE9iamVjdCgqb2JqZWN0KTsNCisgICAgDQorICAgIGJvb2wgaGFu
ZGxlZCA9IGZhbHNlOw0KKyAgICBpZiAoYXV0byogbm9kZSA9IG9iamVjdC0+bm9kZSgpKSB7DQor
ICAgICAgICBhdXRvIGV2ZW50ID0gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5r
ZXlkb3duRXZlbnQsIGtleUluaXQpOw0KKyAgICAgICAgbm9kZS0+ZGlzcGF0Y2hFdmVudChldmVu
dCk7DQorICAgICAgICBoYW5kbGVkIHw9IGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpOw0KKyAgICB9
DQorICAgIA0KKyAgICAvLyBFbnN1cmUgbm9kZSBpcyBzdGlsbCB2YWxpZCBhbmQgd2Fzbid0IHJl
bW92ZWQgYWZ0ZXIgdGhlIGtleWRvd24uDQorICAgIGlmIChhdXRvKiBub2RlID0gb2JqZWN0LT5u
b2RlKCkpIHsNCisgICAgICAgIGF1dG8gZXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lcygpLmtleXVwRXZlbnQsIGtleUluaXQpOw0KKyAgICAgICAgbm9kZS0+ZGlzcGF0Y2hF
dmVudChldmVudCk7DQorICAgICAgICBoYW5kbGVkIHw9IGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgp
Ow0KKyAgICB9DQorICAgIHJldHVybiBoYW5kbGVkOw0KK30NCisNCitib29sIEFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0OjpwZXJmb3JtRGlzbWlzc0FjdGlvbigpDQorew0KKyAgICBhdXRvIGtleUlu
aXQgPSBLZXlib2FyZEV2ZW50OjpJbml0KCk7DQorICAgIGtleUluaXQua2V5ID0gIkVzY2FwZSJf
czsNCisgICAga2V5SW5pdC5rZXlDb2RlID0gMHgxYjsNCisgICAgDQorICAgIHJldHVybiBkaXNw
YXRjaFNpbXVsYXRlZEtleWJvYXJkVXBEb3duRXZlbnQodGhpcywga2V5SW5pdCk7DQorfQ0KIA0K
Ky8vIEZpcmUgYSBrZXlib2FyZCBldmVudCBpZiB3ZSB3ZXJlIG5vdCBhYmxlIHRvIHNldCB0aGlz
IHZhbHVlIG5hdGl2ZWx5Lg0KK2Jvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBvc3RLZXli
b2FyZEtleXNGb3JWYWx1ZUNoYW5nZShib29sIGluY3JlYXNlKQ0KK3sNCiAgICAgYXV0byBrZXlJ
bml0ID0gS2V5Ym9hcmRFdmVudDo6SW5pdCgpOw0KICAgICBib29sIHZlcnRpY2FsID0gb3JpZW50
YXRpb24oKSA9PSBBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb246OlZlcnRpY2FsOw0KICAgICBib29s
IGlzTFRSID0gcGFnZSgpLT51c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCkgPT0gVXNlcklu
dGVyZmFjZUxheW91dERpcmVjdGlvbjo6TFRSOw0KQEAgLTExMDgsMTIgKzExMzUsNyBAQCB2b2lk
IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpwb3N0S2V5Ym9hcmRLZXlzRm9yVmFsdWVDaGFuZ2Uo
Ym9vbCBpbmNyZWFzZSkNCiAgICAga2V5SW5pdC5rZXkgPSBpbmNyZWFzZSA/IHZlcnRpY2FsID8g
IkFycm93VXAiX3MgOiBpc0xUUiA/ICJBcnJvd1JpZ2h0Il9zIDogIkFycm93TGVmdCJfcyA6IHZl
cnRpY2FsID8gIkFycm93RG93biJfcyA6IGlzTFRSID8gIkFycm93TGVmdCJfcyA6ICJBcnJvd1Jp
Z2h0Il9zOw0KICAgICBrZXlJbml0LmtleUlkZW50aWZpZXIgPSBpbmNyZWFzZSA/IHZlcnRpY2Fs
ID8gInVwIl9zIDogaXNMVFIgPyAicmlnaHQiX3MgOiAibGVmdCJfcyA6IHZlcnRpY2FsID8gImRv
d24iX3MgOiBpc0xUUiA/ICJsZWZ0Il9zIDogInJpZ2h0Il9zOw0KIA0KLSAgICBpZiAoYXV0byog
bm9kZSA9IHRoaXMtPm5vZGUoKSkNCi0gICAgICAgIG5vZGUtPmRpc3BhdGNoRXZlbnQoS2V5Ym9h
cmRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQsIGtleUluaXQpKTsNCi0N
Ci0gICAgLy8gRW5zdXJlIG5vZGUgaXMgc3RpbGwgdmFsaWQgYW5kIHdhc24ndCByZW1vdmVkIGFm
dGVyIHRoZSBrZXlkb3duLg0KLSAgICBpZiAoYXV0byogbm9kZSA9IHRoaXMtPm5vZGUoKSkNCi0g
ICAgICAgIG5vZGUtPmRpc3BhdGNoRXZlbnQoS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5rZXl1cEV2ZW50LCBrZXlJbml0KSk7DQorICAgIHJldHVybiBkaXNwYXRjaFNpbXVsYXRl
ZEtleWJvYXJkVXBEb3duRXZlbnQodGhpcywga2V5SW5pdCk7DQogfQ0KIA0KIHZvaWQgQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3Q6OnNldE5vZGVWYWx1ZShib29sIGluY3JlYXNlLCBmbG9hdCB2YWx1
ZSkNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmgNCmluZGV4IGNiNWY2MWJjZDlhLi44NDM2OWU2MjhmZSAxMDA2NDQNCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qu
aA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oDQpAQCAtMTg5LDggKzE4OSwxMCBAQCBwcml2YXRlOg0KICAgICBib29sIGNvbXB1dGVB
Y2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Qgb3ZlcnJpZGU7DQogICAgIGJvb2wgdXNlc0Fs
dFRhZ0ZvclRleHRDb21wdXRhdGlvbigpIGNvbnN0Ow0KICAgICBib29sIHJvbGVJZ25vcmVzVGl0
bGUoKSBjb25zdDsNCi0gICAgdm9pZCBwb3N0S2V5Ym9hcmRLZXlzRm9yVmFsdWVDaGFuZ2UoYm9v
bCBpbmNyZWFzZSk7DQorICAgIGJvb2wgcG9zdEtleWJvYXJkS2V5c0ZvclZhbHVlQ2hhbmdlKGJv
b2wgaW5jcmVhc2UpOw0KICAgICB2b2lkIHNldE5vZGVWYWx1ZShib29sIGluY3JlYXNlLCBmbG9h
dCB2YWx1ZSk7DQorICAgIGJvb2wgcGVyZm9ybURpc21pc3NBY3Rpb24oKSBmaW5hbDsNCisgICAg
DQogICAgIE5vZGUqIG1fbm9kZTsNCiB9Ow0KIA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgNCmluZGV4IDk1MzhmZTQxNWIzLi41YmYy
MTAxZTAzNSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuaA0KQEAgLTQ3OCw3ICs0NzgsNyBAQCBwdWJsaWM6DQogICAgIEFjY2Vz
c2liaWxpdHlPcmllbnRhdGlvbiBvcmllbnRhdGlvbigpIGNvbnN0IG92ZXJyaWRlOw0KICAgICB2
b2lkIGluY3JlbWVudCgpIG92ZXJyaWRlIHsgfQ0KICAgICB2b2lkIGRlY3JlbWVudCgpIG92ZXJy
aWRlIHsgfQ0KLQ0KKyAgICANCiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoKSBvdmVycmlkZSB7
IH0NCiAgICAgdm9pZCB0ZXh0Q2hhbmdlZCgpIG92ZXJyaWRlIHsgfQ0KICAgICB2b2lkIHVwZGF0
ZUFjY2Vzc2liaWxpdHlSb2xlKCkgb3ZlcnJpZGUgeyB9DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaA0K
aW5kZXggYmVhNGE3ZmY0NmIuLmQwMjQxZWUzYjZkIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgNCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
DQpAQCAtOTA3LDcgKzkwNyw4IEBAIHB1YmxpYzoNCiAgICAgdmlydHVhbCB2b2lkIG1ha2VSYW5n
ZVZpc2libGUoY29uc3QgUGxhaW5UZXh0UmFuZ2UmKSA9IDA7DQogICAgIHZpcnR1YWwgYm9vbCBw
cmVzcygpID0gMDsNCiAgICAgdmlydHVhbCBib29sIHBlcmZvcm1EZWZhdWx0QWN0aW9uKCkgPSAw
Ow0KLQ0KKyAgICB2aXJ0dWFsIGJvb2wgcGVyZm9ybURpc21pc3NBY3Rpb24oKSB7IHJldHVybiBm
YWxzZTsgfTsNCisgICAgDQogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9uIG9y
aWVudGF0aW9uKCkgY29uc3QgPSAwOw0KICAgICB2aXJ0dWFsIHZvaWQgaW5jcmVtZW50KCkgPSAw
Ow0KICAgICB2aXJ0dWFsIHZvaWQgZGVjcmVtZW50KCkgPSAwOw0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
SU9TLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJJT1MubW0NCmluZGV4IGI3NzQyNWNkNDEwLi5mOTU3Mzc0YWY0MCAxMDA2
NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVySU9TLm1tDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQ0KQEAgLTE4MjcsNiArMTgy
NywxMyBAQCBzdGF0aWMgdm9pZCBhcHBlbmRTdHJpbmdUb1Jlc3VsdChOU011dGFibGVTdHJpbmcg
KnJlc3VsdCwgTlNTdHJpbmcgKnN0cmluZykNCiAgICAgcmV0dXJuIG5pbDsNCiB9DQogDQorLSAo
Qk9PTClhY2Nlc3NpYmlsaXR5UGVyZm9ybUVzY2FwZQ0KK3sNCisgICAgaWYgKCFbc2VsZiBfcHJl
cGFyZUFjY2Vzc2liaWxpdHlDYWxsXSkNCisgICAgICAgIHJldHVybiBOTzsNCisgICAgcmV0dXJu
IHNlbGYuYXhCYWNraW5nT2JqZWN0LT5wZXJmb3JtRXNjYXBlKCk7DQorfQ0KKw0KIC0gKEJPT0wp
X2FjY2Vzc2liaWxpdHlBY3RpdmF0ZQ0KIHsNCiAgICAgaWYgKCFbc2VsZiBfcHJlcGFyZUFjY2Vz
c2liaWxpdHlDYWxsXSkNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwDQppbmRleCAwNjFlOWE2
ODYwZC4uMzllMTdlMDM2YTYgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcA0KKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHANCkBAIC02
MzAsNiArNjMwLDE1IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6c2V0SXNFeHBhbmRlZChib29s
IHZhbHVlKQ0KICAgICB9KTsNCiB9DQogDQorYm9vbCBBWElzb2xhdGVkT2JqZWN0OjpwZXJmb3Jt
RGlzbWlzc0FjdGlvbigpDQorew0KKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6cmV0cmlldmVW
YWx1ZUZyb21NYWluVGhyZWFkPGJvb2w+KFt0aGlzXSAoKSAtPiBib29sIHsNCisgICAgICAgIGlm
IChhdXRvKiBheE9iamVjdCA9IGFzc29jaWF0ZWRBWE9iamVjdCgpKQ0KKyAgICAgICAgICAgIHJl
dHVybiBheE9iamVjdC0+cGVyZm9ybURpc21pc3NBY3Rpb24oKTsNCisgICAgICAgIHJldHVybiBm
YWxzZTsNCisgICAgfSk7DQorfQ0KKw0KIGJvb2wgQVhJc29sYXRlZE9iamVjdDo6c2V0VmFsdWUo
ZmxvYXQgdmFsdWUpDQogew0KICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6cmV0cmlldmVWYWx1
ZUZyb21NYWluVGhyZWFkPGJvb2w+KFsmdmFsdWUsIHRoaXNdICgpIC0+IGJvb2wgew0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRPYmplY3QuaA0KaW5kZXggMmExOTlmZWE1OWIuLmU4NTU3ZWY5YWU0IDEwMDY0NA0K
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZE9iamVjdC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkT2JqZWN0LmgNCkBAIC03MjEsNiArNzIxLDcgQEAgcHJpdmF0ZToNCiAgICAg
RmxvYXRSZWN0IGNvbnZlcnRGcmFtZVRvU3BhY2UoY29uc3QgRmxvYXRSZWN0JiwgQWNjZXNzaWJp
bGl0eUNvbnZlcnNpb25TcGFjZSkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gRmxvYXRSZWN0KCk7
IH0NCiAgICAgdm9pZCBpbmNyZW1lbnQoKSBvdmVycmlkZSB7IH0NCiAgICAgdm9pZCBkZWNyZW1l
bnQoKSBvdmVycmlkZSB7IH0NCisgICAgYm9vbCBwZXJmb3JtRGlzbWlzc0FjdGlvbigpIG92ZXJy
aWRlOw0KICAgICB2b2lkIHNjcm9sbFRvTWFrZVZpc2libGUoKSBjb25zdCBvdmVycmlkZSB7IH0N
CiAgICAgdm9pZCBzY3JvbGxUb01ha2VWaXNpYmxlV2l0aFN1YkZvY3VzKGNvbnN0IEludFJlY3Qm
KSBjb25zdCBvdmVycmlkZSB7IH0NCiAgICAgdm9pZCBzY3JvbGxUb0dsb2JhbFBvaW50KGNvbnN0
IEludFBvaW50JikgY29uc3Qgb3ZlcnJpZGUgeyB9DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlck1hYy5tbQ0KaW5kZXggOTY4NmQ0MzU1NjQuLjYxNTNjZmEyNTYyIDEwMDY0NA0KLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMubW0NCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tDQpAQCAtMzQ3MCw2ICszNDcwLDggQEAg
QUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5EDQogICAgICAgICBbc2VsZiBhY2Nl
c3NpYmlsaXR5UGVyZm9ybURlY3JlbWVudEFjdGlvbl07DQogICAgIGVsc2UgaWYgKFthY3Rpb24g
aXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVNjcm9sbFRvVmlzaWJsZUFjdGlvbl0pDQog
ICAgICAgICBbc2VsZiBhY2Nlc3NpYmlsaXR5U2Nyb2xsVG9WaXNpYmxlXTsNCisgICAgZWxzZSBp
ZiAoW2FjdGlvbiBpc0VxdWFsVG9TdHJpbmc6QCJBWERpc21pc3NBY3Rpb24iXSkNCisgICAgICAg
IGJhY2tpbmdPYmplY3QtPnBlcmZvcm1EaXNtaXNzQWN0aW9uKCk7DQogfQ0KIA0KIC0gKEJPT0wp
YWNjZXNzaWJpbGl0eVJlcGxhY2VSYW5nZTooTlNSYW5nZSlyYW5nZSB3aXRoVGV4dDooTlNTdHJp
bmcgKilzdHJpbmcNCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cNCmluZGV4IDgxMDAzNTk1OWZiLi4zNzA0Y2QyYzIwYyAxMDA2NDQNCi0tLSBhL1Rvb2xzL0No
YW5nZUxvZw0KKysrIGIvVG9vbHMvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDI5IEBADQorMjAyMC0w
Ny0wMiAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0KKyAgICAgICAg
QVg6IEltcGxlbWVudCB1c2VyIGFjdGlvbiBzcGVjIGZvciBFc2NhcGUgYWN0aW9uDQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzODc1DQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNjUwMjI5ODA+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBBZGxlci4NCisNCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5jcHA6DQorICAgICAgICAoZGlzbWlzc0NhbGxiYWNrKToNCisgICAgICAgIChBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpnZXRKU0NsYXNzKToNCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oOg0KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9pb3Mv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbToNCisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpkaXNtaXNzKToNCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnRNYWMubW06DQorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
ZGlzbWlzcyk6DQorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudC5jcHA6DQorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VNYXRjaGVzVGV4dE5lYXJNYXJrZXJzKToNCisgICAgICAg
IChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc21pc3MpOg0KKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaDoNCisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmlkbDoNCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbToNCisgICAgICAgIChXVFI6
OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc21pc3MpOg0KKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tOg0K
KyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzbWlzcyk6DQorDQogMjAy
MC0wNy0wMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4NCiANCiAgICAg
ICAgIEZpeCB0aGUgV2ViS2l0IGJ1aWxkIGFmdGVyIDxyZGFyOi8vcHJvYmxlbS82NDI4ODE5MT4N
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwDQpp
bmRleCAxMWYzYTUxOTRmOS4uMGU1YTUwZjZiOWQgMTAwNjQ0DQotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcA0KKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHANCkBAIC03MjcsNiArNzI3LDEyIEBAIHN0
YXRpYyBKU1ZhbHVlUmVmIHByZXNzQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2Jq
ZWN0UmVmIGZ1bmN0aW9uLCBKU09iDQogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChj
b250ZXh0KTsNCiB9DQogDQorc3RhdGljIEpTVmFsdWVSZWYgZGlzbWlzc0NhbGxiYWNrKEpTQ29u
dGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09i
amVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10s
IEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikNCit7DQorICAgIHRvQVhFbGVtZW50KHRoaXNPYmplY3Qp
LT5kaXNtaXNzKCk7DQorICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsN
Cit9DQorDQogc3RhdGljIEpTVmFsdWVSZWYgc2Nyb2xsVG9NYWtlVmlzaWJsZVdpdGhTdWJGb2N1
c0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNP
YmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVS
ZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikNCiB7DQogICAgIHVuc2lnbmVk
IHggPSAwOw0KQEAgLTE5NzgsNiArMTk4NCw3IEBAIEpTQ2xhc3NSZWYgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6Z2V0SlNDbGFzcygpDQogICAgICAgICB7ICJkZWNyZW1lbnQiLCBkZWNyZW1lbnRD
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LA0KICAgICAgICAgeyAic2hvd01lbnUiLCBzaG93TWVudUNhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sDQogICAgICAgICB7ICJwcmVzcyIsIHByZXNzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwNCisg
ICAgICAgIHsgImRpc21pc3MiLCBkaXNtaXNzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwNCiAgICAgICAgIHsg
ImRpc2Nsb3NlZFJvd0F0SW5kZXgiLCBkaXNjbG9zZWRSb3dBdEluZGV4Q2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwNCiAgICAgICAgIHsgImFyaWFPd25zRWxlbWVudEF0SW5kZXgiLCBhcmlhT3duc0VsZW1lbnRB
dEluZGV4Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwNCiAgICAgICAgIHsgImFyaWFGbG93VG9FbGVtZW50QXRJ
bmRleCIsIGFyaWFGbG93VG9FbGVtZW50QXRJbmRleENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sDQpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oDQppbmRleCBkNzIxOTdm
ZWMwYy4uYTUwMjY1ZmI2MDkgMTAwNjQ0DQotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50LmgNCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnQuaA0KQEAgLTk3LDYgKzk3LDcgQEAgcHVibGljOg0KICAgICB2b2lkIGRl
Y3JlbWVudCgpOw0KICAgICB2b2lkIHNob3dNZW51KCk7DQogICAgIHZvaWQgcHJlc3MoKTsNCisg
ICAgdm9pZCBkaXNtaXNzKCk7DQogDQogICAgIC8vIEF0dHJpYnV0ZXMgLSBwbGF0Zm9ybS1pbmRl
cGVuZGVudCBpbXBsZW1lbnRhdGlvbnMNCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHN0
cmluZ0F0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSk7DQpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0gYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQ0KaW5k
ZXggMTZhYzZhMDYyM2MuLmUzYzkwOWQ2ZGQyIDEwMDY0NA0KLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0NCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tDQpAQCAtOTEsNiArOTEs
NyBAQCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KGlkIGVs
ZW1lbnQpDQogLSAoTlNTdHJpbmcgKilhY2Nlc3NpYmlsaXR5VGV4dHVhbENvbnRleHQ7DQogLSAo
Qk9PTClhY2Nlc3NpYmlsaXR5SGFzUG9wdXA7DQogLSAoTlNTdHJpbmcgKilhY2Nlc3NpYmlsaXR5
UG9wdXBWYWx1ZTsNCistIChCT09MKWFjY2Vzc2liaWxpdHlQZXJmb3JtRXNjYXBlOw0KIA0KIC8v
IFRleHRNYXJrZXIgcmVsYXRlZA0KIC0gKE5TQXJyYXkgKil0ZXh0TWFya2VyUmFuZ2U7DQpAQCAt
MzI5LDYgKzMzMCwxMSBAQCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnRpdGxlVUlFbGVtZW50KCkNCiAgICAgcmV0dXJuIDA7DQogfQ0KIA0KK3ZvaWQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzbWlzcygpDQorew0KKyAgICBbbV9lbGVtZW50IGFjY2Vz
c2liaWxpdHlQZXJmb3JtRXNjYXBlXTsNCit9DQorDQogQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwYXJlbnRFbGVtZW50KCkNCiB7DQogICAgIGlkIGFjY2Vz
c2liaWxpdHlPYmplY3QgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlDb250YWluZXJdOw0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
TWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRN
YWMubW0NCmluZGV4IDYyMTNlNzYxNmM4Li5lMWVmZDdmNGUxNiAxMDA2NDQNCi0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tDQorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQ0KQEAg
LTEzNzQsNiArMTM3NCwxMyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFZhbHVl
KEpTU3RyaW5nUmVmIHZhbHVlVGV4dCkNCiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUw0KIH0N
CiANCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc21pc3MoKQ0KK3sNCisgICAgQkVH
SU5fQVhfT0JKQ19FWENFUFRJT05TDQorICAgIFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eVBlcmZv
cm1BY3Rpb246QCJBWERpc21pc3NBY3Rpb24iXTsNCisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9O
Uw0KK30NCisNCiB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluY3JlbWVudCgpDQogew0K
ICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMNCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdpbi5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdpbi5jcHANCmluZGV4IGI3Mzg0MGVl
MDUwLi40ZDkwYWE2ZDhlNyAxMDA2NDQNCi0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50V2luLmNwcA0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
d2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwDQpAQCAtNzQ5LDYgKzc0OSwxMCBAQCB2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXNzKCkNCiAgICAgbV9lbGVtZW50LT5hY2NE
b0RlZmF1bHRBY3Rpb24oc2VsZigpKTsNCiB9DQogDQordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpkaXNtaXNzKCkNCit7DQorfQ0KKw0KIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6ZGlzY2xvc2VkUm93QXRJbmRleCh1bnNpZ25lZCBpbmRleCkNCiB7
DQogICAgIHJldHVybiB7IG51bGxwdHIgfTsNCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNw
cA0KaW5kZXggMmEyMzdkMzY5OWIuLjNiOWQ5MGU3NWUwIDEwMDY0NA0KLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcA0K
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50LmNwcA0KQEAgLTc3LDcgKzc3LDYgQEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmZpZWxkc2V0QW5jZXN0b3JFbGVtZW50KCkN
CiBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VhcmNoRmllbGQoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQ0KIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNUZXh0QXJlYSgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9DQogUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2Vy
UmFuZ2U+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJSYW5nZU1hdGNoZXNUZXh0
TmVhck1hcmtlcnMoSlNTdHJpbmdSZWYsIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKiwgQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXIqKSB7IHJldHVybiBudWxscHRyOyB9DQotYm9vbCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpkaXNtaXNzKCkgeyByZXR1cm4gZmFsc2U7IH0NCiBKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0cmluZ0ZvckVs
ZW1lbnQoKSB7IHJldHVybiBudWxscHRyOyB9DQogYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojppc0luVGFibGVDZWxsKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0NCiAjZW5kaWYNCkBAIC0x
MTAsNiArMTA5LDcgQEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnNlbnRlbmNlVGV4dE1hcmtlclINCiBSZWZQdHI8QWNjZXNzaWJp
bGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om5leHRTZW50ZW5jZUVuZFRl
eHRNYXJrZXJGb3JUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKikgeyByZXR1cm4g
bnVsbHB0cjsgfQ0KIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6cHJldmlvdXNTZW50ZW5jZVN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXIo
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKSB7IHJldHVybiBudWxscHRyOyB9DQogUmVmUHRyPEFj
Y2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1pc3Nw
ZWxsaW5nVGV4dE1hcmtlclJhbmdlKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqLCBib29s
KSB7IHJldHVybiBudWxscHRyOyB9DQordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNt
aXNzKCkgeyB9DQogI2VuZGlmDQogDQogfSAvLyBuYW1lc3BhY2UgV1RSDQpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnQuaA0KaW5kZXggODdjZWI1Zjc4MGIuLjE0OWE5ZmYyMjFkIDEwMDY0NA0KLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmgNCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudC5oDQpAQCAtMTAzLDcgKzEwMyw3IEBAIHB1YmxpYzoNCiAgICAg
dm9pZCBkZWNyZW1lbnQoKTsNCiAgICAgdm9pZCBzaG93TWVudSgpOw0KICAgICB2b2lkIHByZXNz
KCk7DQotICAgIGJvb2wgZGlzbWlzcygpOw0KKyAgICB2b2lkIGRpc21pc3MoKTsNCiAjaWYgUExB
VEZPUk0oTUFDKQ0KICAgICB2b2lkIHN5bmNQcmVzcygpOw0KICAgICB2b2lkIGFzeW5jSW5jcmVt
ZW50KCk7DQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwN
CmluZGV4IGViZTI0YmJiMThjLi43YTRlMzYxZGVjMiAxMDA2NDQNCi0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dC5pZGwNCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwNCkBAIC0xMjUsNyArMTI1LDcgQEANCiAgICAg
dm9pZCBwcmVzcygpOw0KICAgICB2b2lkIHN5bmNQcmVzcygpOw0KICAgICB2b2lkIHNob3dNZW51
KCk7DQotICAgIGJvb2xlYW4gZGlzbWlzcygpOw0KKyAgICB2b2lkIGRpc21pc3MoKTsNCiANCiAg
ICAgLy8gQXR0cmlidXRlIGluZm8uDQogICAgIERPTVN0cmluZyBhbGxBdHRyaWJ1dGVzKCk7DQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0NCmluZGV4IGVhZGJlODM4
ZjAwLi40YTk3M2ZmZTFjMyAxMDA2NDQNCi0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0NCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRJT1MubW0NCkBAIC04NzIsOSArODcyLDkgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpwcmVzcygpDQogICAgIFttX2VsZW1lbnQgX2FjY2Vzc2liaWxpdHlBY3RpdmF0ZV07DQogfQ0K
ICAgICANCi1ib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc21pc3MoKQ0KK3ZvaWQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzbWlzcygpDQogew0KLSAgICByZXR1cm4gW21fZWxlbWVu
dCBhY2Nlc3NpYmlsaXR5UGVyZm9ybUVzY2FwZV07DQorICAgIFttX2VsZW1lbnQgYWNjZXNzaWJp
bGl0eVBlcmZvcm1Fc2NhcGVdOw0KIH0NCiANCiB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnNldFNlbGVjdGVkQ2hpbGQoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCogZWxlbWVudCkgY29uc3QN
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQ0KaW5kZXggNjM5ODg1
NTA2MTYuLjE5NjE2ZDExNjhlIDEwMDY0NA0KLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQ0KKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudE1hYy5tbQ0KQEAgLTE0MzIsNiArMTQzMiwxMyBAQCBib29sIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnNldFNlbGVjdGVkVGV4dFJhbmdlKHVuc2lnbmVkIGxvY2F0aW9uLCB1bnNpZ25lZCBs
ZQ0KICAgICByZXR1cm4gdHJ1ZTsNCiB9DQogDQordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpkaXNtaXNzKCkNCit7DQorICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUw0KKyAgICBbbV9l
bGVtZW50IGFjY2Vzc2liaWxpdHlQZXJmb3JtQWN0aW9uOkAiQVhEaXNtaXNzQWN0aW9uIl07DQor
ICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMNCit9DQorDQogYm9vbCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpzZXRTZWxlY3RlZFZpc2libGVUZXh0UmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXJSYW5nZSogbWFya2VyUmFuZ2UpDQogew0KICAgICBzZXRBdHRyaWJ1dGVWYWx1ZShtX2VsZW1l
bnQuZ2V0KCksIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRl
LCBtYXJrZXJSYW5nZS0+cGxhdGZvcm1UZXh0TWFya2VyUmFuZ2UoKSk7DQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403610</attachid>
            <date>2020-07-06 13:05:07 -0700</date>
            <delta_ts>2020-07-06 13:23:01 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_213875.txt</filename>
            <type>text/plain</type>
            <size>24264</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggZTBiZDYwZjgxNTUuLjcwMDBiODc2ZGY2IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTcg
QEANCisyMDIwLTA3LTAyICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogSW1wbGVtZW50IHVzZXIgYWN0aW9uIHNwZWMgZm9yIEVzY2FwZSBhY3Rp
b24NCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM4
NzUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NTAyMjk4MD4NCisNCisgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLg0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2tleWV2ZW50
cy1wb3N0ZWQtZm9yLWRpc21pc3MtYWN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuDQorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24uaHRt
bDogQWRkZWQuDQorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOg0KKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnM6DQorICAgICAg
ICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOg0KKw0KIDIwMjAtMDctMDIgIEVucmlx
dWUgT2Nhw7FhIEdvbnrDoWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4NCiANCiAgICAgICAgIFtH
VEtdIExheW91dCB0ZXN0IG1lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwgaXMgZmFpbGlu
Zw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3Rl
ZC1mb3ItZGlzbWlzcy1hY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9rZXlldmVudHMtcG9zdGVkLWZvci1kaXNtaXNzLWFjdGlvbi1leHBlY3RlZC50eHQNCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uZTJjMmRhMzk4OTANCi0tLSAv
ZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3Rl
ZC1mb3ItZGlzbWlzcy1hY3Rpb24tZXhwZWN0ZWQudHh0DQpAQCAtMCwwICsxLDExIEBADQorYWxl
cnQNCitUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgZGlzbWlzcyBhY3Rpb24gZ2VuZXJhdGVz
IGFuIGVzY2FwZSBrZXkgZXZlbnQuDQorDQorT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLg0KKw0K
Kw0KK0tleWNvZGUgcmVjZWl2ZWQ6IGNvZGU6IDI3IGtleSBuYW1lOiBFc2NhcGUNCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlDQorDQorVEVTVCBDT01QTEVURQ0KKw0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlzbWlz
cy1hY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3Rl
ZC1mb3ItZGlzbWlzcy1hY3Rpb24uaHRtbA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAw
MDAwMDAwMDAwLi5hMWQwYTM3MzJmNg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9rZXlldmVudHMtcG9zdGVkLWZvci1kaXNtaXNzLWFjdGlvbi5odG1sDQpA
QCAtMCwwICsxLDMyIEBADQorPGh0bWw+DQorPGh0bWw+DQorPGhlYWQ+DQorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+DQorPC9oZWFkPg0KKzxib2R5
IGlkPSJib2R5Ij4NCisNCis8ZGl2IGlkPSJhbGVydCI+YWxlcnQ8L2Rpdj4NCisNCis8cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4NCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCisgICAgIA0KKzxz
Y3JpcHQ+DQorICAgIGZ1bmN0aW9uIGhhbmRsZUtleURvd24oZXZlbnQpIHsNCisgICAgICAgIGRl
YnVnKCJLZXljb2RlIHJlY2VpdmVkOiBjb2RlOiAiICsgZXZlbnQua2V5Q29kZSArICIga2V5IG5h
bWU6ICIgKyBldmVudC5rZXkpOw0KKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsNCisg
ICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOw0KKyAgICAgICAgZmluaXNoSlNUZXN0KCk7
DQorICAgICB9DQorDQorICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsN
CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOw0KKyAgICAgICAgZGVzY3JpcHRpb24oIlRo
aXMgdGVzdCB2ZXJpZmllcyB0aGF0IHRoZSBkaXNtaXNzIGFjdGlvbiBnZW5lcmF0ZXMgYW4gZXNj
YXBlIGtleSBldmVudC4iKTsNCisNCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJh
bGVydCIpLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlEb3duKTsNCisgICAg
ICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiYWxlcnQi
KS5kaXNtaXNzKCk7DQorICAgIH0NCisgPC9zY3JpcHQ+DQorDQorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pg0KKzwvYm9keT4NCis8L2h0bWw+DQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucw0KaW5kZXggMjBlOThjYzU2
NzQuLjk1YjRkNTA2Mjk3IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMNCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zDQpAQCAtNzUwLDYgKzc1MCw3IEBAIEJ1ZyhHVEspIGVkaXRpbmcvc3BlbGxpbmcvbWFy
a2Vycy5odG1sIFsgU2tpcCBdDQogd2Via2l0Lm9yZy9iLzg1OTU4IGZhc3QvZm9ybXMvZmlsZS9m
aWxlLWlucHV0LWNhcHR1cmUuaHRtbCBbIEZhaWx1cmUgXQ0KIA0KIHdlYmtpdC5vcmcvYi8xNDY3
MjAgbWVkaWEvYWNjZXNzaWJsaXR5LWRlc2NyaWJlcy12aWRlby5odG1sIFsgRmFpbHVyZSBdDQor
d2Via2l0Lm9yZy9iLzIxMzg3NCBhY2Nlc3NpYmlsaXR5L2tleWV2ZW50cy1wb3N0ZWQtZm9yLWRp
c21pc3MtYWN0aW9uLmh0bWwgWyBTa2lwIF0NCiANCiB3ZWJraXQub3JnL2IvMTQ2NzI0IGZhc3Qv
dGV4dC93b3JkLWJyZWFrLWtlZXAtYWxsLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0NCiANCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlv
bnMNCmluZGV4IGYxYzUxMTExYWY0Li41MmI3YWYzYWQ3NCAxMDA2NDQNCi0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9ucw0KKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0RXhwZWN0YXRpb25zDQpAQCAtNiw2ICs2
LDcgQEANCiBhY2Nlc3NpYmlsaXR5L2luc2VydC1uZXdsaW5lLmh0bWwgWyBQYXNzIF0NCiBhY2Nl
c3NpYmlsaXR5L21pc3NwZWxsaW5nLXJhbmdlLmh0bWwgWyBQYXNzIF0NCiBhY2Nlc3NpYmlsaXR5
L3VybC10ZXN0Lmh0bWwgWyBQYXNzIF0NCithY2Nlc3NpYmlsaXR5L2tleWV2ZW50cy1wb3N0ZWQt
Zm9yLWRpc21pc3MtYWN0aW9uLmh0bWwgWyBQYXNzIF0NCiBjc3MzL2ZvbnQtdmFyaWFudC1zbWFs
bC1jYXBzLXN5bnRoZXNpcy1jb3ZlcmFnZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdDQogZmFz
dC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1jbG9zZS10b3Atbm9jbG9zZS5odG1sIFsgRmFpbHVy
ZSBdDQogZmFzdC9tdWx0aWNvbC9mbGV4Ym94LXJvd3MuaHRtbCBbIFNraXAgXQ0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMNCmluZGV4IGMxMDY5MjIzMDgyLi4wNjg4
YzcyNDZlNCAxMDA2NDQNCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0
YXRpb25zDQorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucw0K
QEAgLTEzODQsNiArMTM4NCw3IEBAIGFjY2Vzc2liaWxpdHkvbXVsdGlzZWxlY3QtbGlzdC1yZXBv
cnRzLWFjdGl2ZS1vcHRpb24uaHRtbCBbIFNraXAgXQ0KICMgaW5jcmVtZW50L2RlY3JlbWVudCBu
b3QgaW1wbGVtZW50ZWQgaW4gdGVzdCBydW5uZXINCiBhY2Nlc3NpYmlsaXR5L2tleWV2ZW50cy1m
b3ItaW5jcmVtZW50LWFjdGlvbnMtd2l0aC1ub2RlLXJlbW92YWwuaHRtbCBbIFNraXAgXQ0KIGFj
Y2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItaW5jcmVtZW50LWFjdGlvbnMuaHRtbCBb
IFNraXAgXQ0KK2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlzbWlzcy1hY3Rp
b24uaHRtbCBbIFNraXAgXQ0KIA0KIHdlYmtpdC5vcmcvYi8xNDA3OTYgYWNjZXNzaWJpbGl0eS9h
bHQtdGFnLW9uLWltYWdlLXdpdGgtbm9uaW1hZ2Utcm9sZS5odG1sIFsgU2tpcCBdDQogd2Via2l0
Lm9yZy9iLzE0MDc5OCBhY2Nlc3NpYmlsaXR5L2FyaWEtY29udHJvbHMtd2l0aC10YWJzLmh0bWwg
WyBTa2lwIF0NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cNCmluZGV4IDkxNDVmYjhjOTc1Li5kYWQwNGZhMGIyNiAxMDA2NDQN
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nDQpAQCAtMSwzICsxLDMxIEBADQorMjAyMC0wNy0wMiAgQ2hyaXMgRmxlaXphY2ggIDxj
ZmxlaXphY2hAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgQVg6IEltcGxlbWVudCB1c2VyIGFjdGlv
biBzcGVjIGZvciBFc2NhcGUgYWN0aW9uDQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjEzODc1DQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjUwMjI5
ODA+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4NCisNCisgICAgICAgIElt
cGxlbWVudCB0aGUgRXNjYXBlIGFjdGlvbiBmb3IgdGhlIHVzZXIgYWN0aW9uIGV2ZW50cy4NCisg
ICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNHL2FvbS9ibG9iL2doLXBhZ2VzL2V4cGxhaW5l
ci5tZCN1c2VyLWFjdGlvbi1ldmVudHMtZnJvbS1hc3Npc3RpdmUtdGVjaG5vbG9neQ0KKw0KKyAg
ICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9rZXlldmVudHMtcG9zdGVkLWZvci1kaXNtaXNzLWFj
dGlvbi5odG1sDQorDQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpw
ZXJmb3JtRXNjYXBlKToNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6ZGlzcGF0Y2hTaW11bGF0ZWRLZXlib2FyZFVwRG93bkV2ZW50KToNCisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cG9zdEtleWJvYXJkS2V5c0ZvclZhbHVlQ2hh
bmdlKToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5o
Og0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoNCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6DQorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9T
Lm1tOg0KKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJp
bGl0eVBlcmZvcm1Fc2NhcGVdKToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZE9iamVjdC5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9i
amVjdDo6cGVyZm9ybUVzY2FwZSk6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06DQorICAgICAgICAoLVtXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5UGVyZm9ybUFjdGlvbjpdKToNCisNCiAy
MDIwLTA3LTAxICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+DQog
DQogICAgICAgICBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRFeHRlbnNpb25zRm9yTUlNRVR5cGUoKSBu
ZWVkcyB0byBoYW5kbGUgd2lsZGNhcmQgTUlNRSB0eXBlcw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHANCmluZGV4
IDI5ZTIyYmIwZDZiLi4xY2RjZjEyNWYxNSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwDQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcA0KQEAgLTEwOTUs
MTIgKzEwOTUsMzkgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZGVjcmVtZW50KCkN
CiAgICAgYWx0ZXJTbGlkZXJWYWx1ZShmYWxzZSk7DQogfQ0KIA0KLS8vIEZpcmUgYSBrZXlib2Fy
ZCBldmVudCBpZiB3ZSB3ZXJlIG5vdCBhYmxlIHRvIHNldCB0aGlzIHZhbHVlIG5hdGl2ZWx5Lg0K
LXZvaWQgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBvc3RLZXlib2FyZEtleXNGb3JWYWx1ZUNo
YW5nZShib29sIGluY3JlYXNlKQ0KK3N0YXRpYyBib29sIGRpc3BhdGNoU2ltdWxhdGVkS2V5Ym9h
cmRVcERvd25FdmVudChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIGNvbnN0IEtleWJvYXJk
RXZlbnQ6OkluaXQmIGtleUluaXQpDQogew0KICAgICAvLyBJbiBjYXNlIHRoZSBrZXlib2FyZCBl
dmVudCBjYXVzZXMgdGhpcyBlbGVtZW50IHRvIGJlIHJlbW92ZWQuDQotICAgIFJlZjxBY2Nlc3Np
YmlsaXR5T2JqZWN0PiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsNCisgICAgUmVmPEFjY2Vzc2liaWxp
dHlPYmplY3Q+IHByb3RlY3RlZE9iamVjdCgqb2JqZWN0KTsNCisgICAgDQorICAgIGJvb2wgaGFu
ZGxlZCA9IGZhbHNlOw0KKyAgICBpZiAoYXV0byogbm9kZSA9IG9iamVjdC0+bm9kZSgpKSB7DQor
ICAgICAgICBhdXRvIGV2ZW50ID0gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5r
ZXlkb3duRXZlbnQsIGtleUluaXQpOw0KKyAgICAgICAgbm9kZS0+ZGlzcGF0Y2hFdmVudChldmVu
dCk7DQorICAgICAgICBoYW5kbGVkIHw9IGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpOw0KKyAgICB9
DQorICAgIA0KKyAgICAvLyBFbnN1cmUgbm9kZSBpcyBzdGlsbCB2YWxpZCBhbmQgd2Fzbid0IHJl
bW92ZWQgYWZ0ZXIgdGhlIGtleWRvd24uDQorICAgIGlmIChhdXRvKiBub2RlID0gb2JqZWN0LT5u
b2RlKCkpIHsNCisgICAgICAgIGF1dG8gZXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lcygpLmtleXVwRXZlbnQsIGtleUluaXQpOw0KKyAgICAgICAgbm9kZS0+ZGlzcGF0Y2hF
dmVudChldmVudCk7DQorICAgICAgICBoYW5kbGVkIHw9IGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgp
Ow0KKyAgICB9DQorICAgIHJldHVybiBoYW5kbGVkOw0KK30NCisNCitib29sIEFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0OjpwZXJmb3JtRGlzbWlzc0FjdGlvbigpDQorew0KKyAgICBhdXRvIGtleUlu
aXQgPSBLZXlib2FyZEV2ZW50OjpJbml0KCk7DQorICAgIGtleUluaXQua2V5ID0gIkVzY2FwZSJf
czsNCisgICAga2V5SW5pdC5rZXlDb2RlID0gMHgxYjsNCisgICAgDQorICAgIHJldHVybiBkaXNw
YXRjaFNpbXVsYXRlZEtleWJvYXJkVXBEb3duRXZlbnQodGhpcywga2V5SW5pdCk7DQorfQ0KIA0K
Ky8vIEZpcmUgYSBrZXlib2FyZCBldmVudCBpZiB3ZSB3ZXJlIG5vdCBhYmxlIHRvIHNldCB0aGlz
IHZhbHVlIG5hdGl2ZWx5Lg0KK2Jvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBvc3RLZXli
b2FyZEtleXNGb3JWYWx1ZUNoYW5nZShib29sIGluY3JlYXNlKQ0KK3sNCiAgICAgYXV0byBrZXlJ
bml0ID0gS2V5Ym9hcmRFdmVudDo6SW5pdCgpOw0KICAgICBib29sIHZlcnRpY2FsID0gb3JpZW50
YXRpb24oKSA9PSBBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb246OlZlcnRpY2FsOw0KICAgICBib29s
IGlzTFRSID0gcGFnZSgpLT51c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCkgPT0gVXNlcklu
dGVyZmFjZUxheW91dERpcmVjdGlvbjo6TFRSOw0KQEAgLTExMDgsMTIgKzExMzUsNyBAQCB2b2lk
IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpwb3N0S2V5Ym9hcmRLZXlzRm9yVmFsdWVDaGFuZ2Uo
Ym9vbCBpbmNyZWFzZSkNCiAgICAga2V5SW5pdC5rZXkgPSBpbmNyZWFzZSA/IHZlcnRpY2FsID8g
IkFycm93VXAiX3MgOiBpc0xUUiA/ICJBcnJvd1JpZ2h0Il9zIDogIkFycm93TGVmdCJfcyA6IHZl
cnRpY2FsID8gIkFycm93RG93biJfcyA6IGlzTFRSID8gIkFycm93TGVmdCJfcyA6ICJBcnJvd1Jp
Z2h0Il9zOw0KICAgICBrZXlJbml0LmtleUlkZW50aWZpZXIgPSBpbmNyZWFzZSA/IHZlcnRpY2Fs
ID8gInVwIl9zIDogaXNMVFIgPyAicmlnaHQiX3MgOiAibGVmdCJfcyA6IHZlcnRpY2FsID8gImRv
d24iX3MgOiBpc0xUUiA/ICJsZWZ0Il9zIDogInJpZ2h0Il9zOw0KIA0KLSAgICBpZiAoYXV0byog
bm9kZSA9IHRoaXMtPm5vZGUoKSkNCi0gICAgICAgIG5vZGUtPmRpc3BhdGNoRXZlbnQoS2V5Ym9h
cmRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQsIGtleUluaXQpKTsNCi0N
Ci0gICAgLy8gRW5zdXJlIG5vZGUgaXMgc3RpbGwgdmFsaWQgYW5kIHdhc24ndCByZW1vdmVkIGFm
dGVyIHRoZSBrZXlkb3duLg0KLSAgICBpZiAoYXV0byogbm9kZSA9IHRoaXMtPm5vZGUoKSkNCi0g
ICAgICAgIG5vZGUtPmRpc3BhdGNoRXZlbnQoS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5rZXl1cEV2ZW50LCBrZXlJbml0KSk7DQorICAgIHJldHVybiBkaXNwYXRjaFNpbXVsYXRl
ZEtleWJvYXJkVXBEb3duRXZlbnQodGhpcywga2V5SW5pdCk7DQogfQ0KIA0KIHZvaWQgQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3Q6OnNldE5vZGVWYWx1ZShib29sIGluY3JlYXNlLCBmbG9hdCB2YWx1
ZSkNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmgNCmluZGV4IGNiNWY2MWJjZDlhLi44NDM2OWU2MjhmZSAxMDA2NDQNCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qu
aA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oDQpAQCAtMTg5LDggKzE4OSwxMCBAQCBwcml2YXRlOg0KICAgICBib29sIGNvbXB1dGVB
Y2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Qgb3ZlcnJpZGU7DQogICAgIGJvb2wgdXNlc0Fs
dFRhZ0ZvclRleHRDb21wdXRhdGlvbigpIGNvbnN0Ow0KICAgICBib29sIHJvbGVJZ25vcmVzVGl0
bGUoKSBjb25zdDsNCi0gICAgdm9pZCBwb3N0S2V5Ym9hcmRLZXlzRm9yVmFsdWVDaGFuZ2UoYm9v
bCBpbmNyZWFzZSk7DQorICAgIGJvb2wgcG9zdEtleWJvYXJkS2V5c0ZvclZhbHVlQ2hhbmdlKGJv
b2wgaW5jcmVhc2UpOw0KICAgICB2b2lkIHNldE5vZGVWYWx1ZShib29sIGluY3JlYXNlLCBmbG9h
dCB2YWx1ZSk7DQorICAgIGJvb2wgcGVyZm9ybURpc21pc3NBY3Rpb24oKSBmaW5hbDsNCisgICAg
DQogICAgIE5vZGUqIG1fbm9kZTsNCiB9Ow0KIA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgNCmluZGV4
IGJlYTRhN2ZmNDZiLi5kMDI0MWVlM2I2ZCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oDQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaA0KQEAg
LTkwNyw3ICs5MDcsOCBAQCBwdWJsaWM6DQogICAgIHZpcnR1YWwgdm9pZCBtYWtlUmFuZ2VWaXNp
YmxlKGNvbnN0IFBsYWluVGV4dFJhbmdlJikgPSAwOw0KICAgICB2aXJ0dWFsIGJvb2wgcHJlc3Mo
KSA9IDA7DQogICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtRGVmYXVsdEFjdGlvbigpID0gMDsNCi0N
CisgICAgdmlydHVhbCBib29sIHBlcmZvcm1EaXNtaXNzQWN0aW9uKCkgeyByZXR1cm4gZmFsc2U7
IH07DQorICAgIA0KICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPcmllbnRhdGlvbiBvcmllbnRh
dGlvbigpIGNvbnN0ID0gMDsNCiAgICAgdmlydHVhbCB2b2lkIGluY3JlbWVudCgpID0gMDsNCiAg
ICAgdmlydHVhbCB2b2lkIGRlY3JlbWVudCgpID0gMDsNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5t
bSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVySU9TLm1tDQppbmRleCBiNzc0MjVjZDQxMC4uZjk1NzM3NGFmNDAgMTAwNjQ0DQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlcklPUy5tbQ0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3Mv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0NCkBAIC0xODI3LDYgKzE4MjcsMTMg
QEAgc3RhdGljIHZvaWQgYXBwZW5kU3RyaW5nVG9SZXN1bHQoTlNNdXRhYmxlU3RyaW5nICpyZXN1
bHQsIE5TU3RyaW5nICpzdHJpbmcpDQogICAgIHJldHVybiBuaWw7DQogfQ0KIA0KKy0gKEJPT0wp
YWNjZXNzaWJpbGl0eVBlcmZvcm1Fc2NhcGUNCit7DQorICAgIGlmICghW3NlbGYgX3ByZXBhcmVB
Y2Nlc3NpYmlsaXR5Q2FsbF0pDQorICAgICAgICByZXR1cm4gTk87DQorICAgIHJldHVybiBzZWxm
LmF4QmFja2luZ09iamVjdC0+cGVyZm9ybUVzY2FwZSgpOw0KK30NCisNCiAtIChCT09MKV9hY2Nl
c3NpYmlsaXR5QWN0aXZhdGUNCiB7DQogICAgIGlmICghW3NlbGYgX3ByZXBhcmVBY2Nlc3NpYmls
aXR5Q2FsbF0pDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcA0KaW5kZXggMDYxZTlhNjg2MGQu
LjM5ZTE3ZTAzNmE2IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwDQpAQCAtNjMwLDYg
KzYzMCwxNSBAQCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OnNldElzRXhwYW5kZWQoYm9vbCB2YWx1
ZSkNCiAgICAgfSk7DQogfQ0KIA0KK2Jvb2wgQVhJc29sYXRlZE9iamVjdDo6cGVyZm9ybURpc21p
c3NBY3Rpb24oKQ0KK3sNCisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJldHJpZXZlVmFsdWVG
cm9tTWFpblRocmVhZDxib29sPihbdGhpc10gKCkgLT4gYm9vbCB7DQorICAgICAgICBpZiAoYXV0
byogYXhPYmplY3QgPSBhc3NvY2lhdGVkQVhPYmplY3QoKSkNCisgICAgICAgICAgICByZXR1cm4g
YXhPYmplY3QtPnBlcmZvcm1EaXNtaXNzQWN0aW9uKCk7DQorICAgICAgICByZXR1cm4gZmFsc2U7
DQorICAgIH0pOw0KK30NCisNCiBib29sIEFYSXNvbGF0ZWRPYmplY3Q6OnNldFZhbHVlKGZsb2F0
IHZhbHVlKQ0KIHsNCiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJldHJpZXZlVmFsdWVGcm9t
TWFpblRocmVhZDxib29sPihbJnZhbHVlLCB0aGlzXSAoKSAtPiBib29sIHsNCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkT2JqZWN0LmgNCmluZGV4IDJhMTk5ZmVhNTliLi5lODU1N2VmOWFlNCAxMDA2NDQNCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmpl
Y3QuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZE9iamVjdC5oDQpAQCAtNzIxLDYgKzcyMSw3IEBAIHByaXZhdGU6DQogICAgIEZsb2F0
UmVjdCBjb252ZXJ0RnJhbWVUb1NwYWNlKGNvbnN0IEZsb2F0UmVjdCYsIEFjY2Vzc2liaWxpdHlD
b252ZXJzaW9uU3BhY2UpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9DQog
ICAgIHZvaWQgaW5jcmVtZW50KCkgb3ZlcnJpZGUgeyB9DQogICAgIHZvaWQgZGVjcmVtZW50KCkg
b3ZlcnJpZGUgeyB9DQorICAgIGJvb2wgcGVyZm9ybURpc21pc3NBY3Rpb24oKSBvdmVycmlkZTsN
CiAgICAgdm9pZCBzY3JvbGxUb01ha2VWaXNpYmxlKCkgY29uc3Qgb3ZlcnJpZGUgeyB9DQogICAg
IHZvaWQgc2Nyb2xsVG9NYWtlVmlzaWJsZVdpdGhTdWJGb2N1cyhjb25zdCBJbnRSZWN0JikgY29u
c3Qgb3ZlcnJpZGUgeyB9DQogICAgIHZvaWQgc2Nyb2xsVG9HbG9iYWxQb2ludChjb25zdCBJbnRQ
b2ludCYpIGNvbnN0IG92ZXJyaWRlIHsgfQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJNYWMubW0NCmluZGV4IDk2ODZkNDM1NTY0Li42MTUzY2ZhMjU2MiAxMDA2NDQNCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyTWFjLm1tDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQ0KQEAgLTM0NzAsNiArMzQ3MCw4IEBAIEFMTE9X
X0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORA0KICAgICAgICAgW3NlbGYgYWNjZXNzaWJp
bGl0eVBlcmZvcm1EZWNyZW1lbnRBY3Rpb25dOw0KICAgICBlbHNlIGlmIChbYWN0aW9uIGlzRXF1
YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlTY3JvbGxUb1Zpc2libGVBY3Rpb25dKQ0KICAgICAg
ICAgW3NlbGYgYWNjZXNzaWJpbGl0eVNjcm9sbFRvVmlzaWJsZV07DQorICAgIGVsc2UgaWYgKFth
Y3Rpb24gaXNFcXVhbFRvU3RyaW5nOkAiQVhEaXNtaXNzQWN0aW9uIl0pDQorICAgICAgICBiYWNr
aW5nT2JqZWN0LT5wZXJmb3JtRGlzbWlzc0FjdGlvbigpOw0KIH0NCiANCiAtIChCT09MKWFjY2Vz
c2liaWxpdHlSZXBsYWNlUmFuZ2U6KE5TUmFuZ2UpcmFuZ2Ugd2l0aFRleHQ6KE5TU3RyaW5nICop
c3RyaW5nDQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nDQpp
bmRleCA4MTAwMzU5NTlmYi4uMzcwNGNkMmMyMGMgMTAwNjQ0DQotLS0gYS9Ub29scy9DaGFuZ2VM
b2cNCisrKyBiL1Rvb2xzL0NoYW5nZUxvZw0KQEAgLTEsMyArMSwyOSBAQA0KKzIwMjAtMDctMDIg
IENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4NCisNCisgICAgICAgIEFYOiBJ
bXBsZW1lbnQgdXNlciBhY3Rpb24gc3BlYyBmb3IgRXNjYXBlIGFjdGlvbg0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzg3NQ0KKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzY1MDIyOTgwPg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRs
ZXIuDQorDQorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQu
Y3BwOg0KKyAgICAgICAgKGRpc21pc3NDYWxsYmFjayk6DQorICAgICAgICAoQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6Z2V0SlNDbGFzcyk6DQorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnQuaDoNCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRJT1MubW06DQorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6ZGlzbWlzcyk6DQorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50TWFjLm1tOg0KKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc21p
c3MpOg0KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnQuY3BwOg0KKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6dGV4dE1hcmtlclJhbmdlTWF0Y2hlc1RleHROZWFyTWFya2Vycyk6DQorICAgICAgICAoV1RS
OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNtaXNzKToNCisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmg6DQorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudC5pZGw6DQorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW06DQorICAgICAgICAoV1RSOjpBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpkaXNtaXNzKToNCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbToNCisgICAg
ICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc21pc3MpOg0KKw0KIDIwMjAtMDct
MDEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+DQogDQogICAgICAgICBG
aXggdGhlIFdlYktpdCBidWlsZCBhZnRlciA8cmRhcjovL3Byb2JsZW0vNjQyODgxOTE+DQpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcA0KaW5kZXgg
MTFmM2E1MTk0ZjkuLjBlNWE1MGY2YjlkIDEwMDY0NA0KLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHANCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwDQpAQCAtNzI3LDYgKzcyNywxMiBAQCBzdGF0aWMg
SlNWYWx1ZVJlZiBwcmVzc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJl
ZiBmdW5jdGlvbiwgSlNPYg0KICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4
dCk7DQogfQ0KIA0KK3N0YXRpYyBKU1ZhbHVlUmVmIGRpc21pc3NDYWxsYmFjayhKU0NvbnRleHRS
ZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3Qs
IHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1Zh
bHVlUmVmKiBleGNlcHRpb24pDQorew0KKyAgICB0b0FYRWxlbWVudCh0aGlzT2JqZWN0KS0+ZGlz
bWlzcygpOw0KKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7DQorfQ0K
Kw0KIHN0YXRpYyBKU1ZhbHVlUmVmIHNjcm9sbFRvTWFrZVZpc2libGVXaXRoU3ViRm9jdXNDYWxs
YmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0
UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFy
Z3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pDQogew0KICAgICB1bnNpZ25lZCB4ID0g
MDsNCkBAIC0xOTc4LDYgKzE5ODQsNyBAQCBKU0NsYXNzUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmdldEpTQ2xhc3MoKQ0KICAgICAgICAgeyAiZGVjcmVtZW50IiwgZGVjcmVtZW50Q2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwNCiAgICAgICAgIHsgInNob3dNZW51Iiwgc2hvd01lbnVDYWxsYmFjaywga0pT
UHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0
ZSB9LA0KICAgICAgICAgeyAicHJlc3MiLCBwcmVzc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sDQorICAgICAg
ICB7ICJkaXNtaXNzIiwgZGlzbWlzc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sDQogICAgICAgICB7ICJkaXNj
bG9zZWRSb3dBdEluZGV4IiwgZGlzY2xvc2VkUm93QXRJbmRleENhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sDQog
ICAgICAgICB7ICJhcmlhT3duc0VsZW1lbnRBdEluZGV4IiwgYXJpYU93bnNFbGVtZW50QXRJbmRl
eENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIH0sDQogICAgICAgICB7ICJhcmlhRmxvd1RvRWxlbWVudEF0SW5kZXgi
LCBhcmlhRmxvd1RvRWxlbWVudEF0SW5kZXhDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LA0KZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaA0KaW5kZXggZDcyMTk3ZmVjMGMu
LmE1MDI2NWZiNjA5IDEwMDY0NA0KLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudC5oDQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50LmgNCkBAIC05Nyw2ICs5Nyw3IEBAIHB1YmxpYzoNCiAgICAgdm9pZCBkZWNyZW1l
bnQoKTsNCiAgICAgdm9pZCBzaG93TWVudSgpOw0KICAgICB2b2lkIHByZXNzKCk7DQorICAgIHZv
aWQgZGlzbWlzcygpOw0KIA0KICAgICAvLyBBdHRyaWJ1dGVzIC0gcGxhdGZvcm0taW5kZXBlbmRl
bnQgaW1wbGVtZW50YXRpb25zDQogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBzdHJpbmdB
dHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpOw0KZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0NCmluZGV4IDE2
YWM2YTA2MjNjLi5lM2M5MDlkNmRkMiAxMDA2NDQNCi0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tDQorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQ0KQEAgLTkxLDYgKzkxLDcgQEAg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudChpZCBlbGVtZW50
KQ0KIC0gKE5TU3RyaW5nICopYWNjZXNzaWJpbGl0eVRleHR1YWxDb250ZXh0Ow0KIC0gKEJPT0wp
YWNjZXNzaWJpbGl0eUhhc1BvcHVwOw0KIC0gKE5TU3RyaW5nICopYWNjZXNzaWJpbGl0eVBvcHVw
VmFsdWU7DQorLSAoQk9PTClhY2Nlc3NpYmlsaXR5UGVyZm9ybUVzY2FwZTsNCiANCiAvLyBUZXh0
TWFya2VyIHJlbGF0ZWQNCiAtIChOU0FycmF5ICopdGV4dE1hcmtlclJhbmdlOw0KQEAgLTMyOSw2
ICszMzAsMTEgQEAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojp0aXRsZVVJRWxlbWVudCgpDQogICAgIHJldHVybiAwOw0KIH0NCiANCit2b2lkIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmRpc21pc3MoKQ0KK3sNCisgICAgW21fZWxlbWVudCBhY2Nlc3NpYmls
aXR5UGVyZm9ybUVzY2FwZV07DQorfQ0KKw0KIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6cGFyZW50RWxlbWVudCgpDQogew0KICAgICBpZCBhY2Nlc3NpYmls
aXR5T2JqZWN0ID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5Q29udGFpbmVyXTsNCmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5t
bSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1t
DQppbmRleCA2MjEzZTc2MTZjOC4uZTFlZmQ3ZjRlMTYgMTAwNjQ0DQotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQ0KKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0NCkBAIC0xMzc0
LDYgKzEzNzQsMTMgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRWYWx1ZShKU1N0
cmluZ1JlZiB2YWx1ZVRleHQpDQogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMNCiB9DQogDQor
dm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNtaXNzKCkNCit7DQorICAgIEJFR0lOX0FY
X09CSkNfRVhDRVBUSU9OUw0KKyAgICBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlQZXJmb3JtQWN0
aW9uOkAiQVhEaXNtaXNzQWN0aW9uIl07DQorICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMNCit9
DQorDQogdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmNyZW1lbnQoKQ0KIHsNCiAgICAg
QkVHSU5fQVhfT0JKQ19FWENFUFRJT05TDQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwDQppbmRleCBiNzM4NDBlZTA1MC4u
NGQ5MGFhNmQ4ZTcgMTAwNjQ0DQotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNz
aWJpbGl0eVVJRWxlbWVudFdpbi5jcHANCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50V2luLmNwcA0KQEAgLTc0OSw2ICs3NDksMTAgQEAgdm9pZCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwcmVzcygpDQogICAgIG1fZWxlbWVudC0+YWNjRG9EZWZh
dWx0QWN0aW9uKHNlbGYoKSk7DQogfQ0KIA0KK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
ZGlzbWlzcygpDQorew0KK30NCisNCiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmRpc2Nsb3NlZFJvd0F0SW5kZXgodW5zaWduZWQgaW5kZXgpDQogew0KICAg
ICByZXR1cm4geyBudWxscHRyIH07DQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHANCmlu
ZGV4IDJhMjM3ZDM2OTliLi4zYjlkOTBlNzVlMCAxMDA2NDQNCi0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHANCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5jcHANCkBAIC03Nyw3ICs3Nyw2IEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpmaWVsZHNldEFuY2VzdG9yRWxlbWVudCgpDQogYm9v
bCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1NlYXJjaEZpZWxkKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0NCiBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVGV4dEFyZWEoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQ0KIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdl
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VNYXRjaGVzVGV4dE5lYXJN
YXJrZXJzKEpTU3RyaW5nUmVmLCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciosIEFjY2Vzc2liaWxp
dHlUZXh0TWFya2VyKikgeyByZXR1cm4gbnVsbHB0cjsgfQ0KLWJvb2wgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6ZGlzbWlzcygpIHsgcmV0dXJuIGZhbHNlOyB9DQogSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJpbmdGb3JFbGVtZW50
KCkgeyByZXR1cm4gbnVsbHB0cjsgfQ0KIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNJ
blRhYmxlQ2VsbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9DQogI2VuZGlmDQpAQCAtMTEwLDYg
KzEwOSw3IEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpzZW50ZW5jZVRleHRNYXJrZXJSDQogUmVmUHRyPEFjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpuZXh0U2VudGVuY2VFbmRUZXh0TWFy
a2VyRm9yVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopIHsgcmV0dXJuIG51bGxw
dHI7IH0NCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnByZXZpb3VzU2VudGVuY2VTdGFydFRleHRNYXJrZXJGb3JUZXh0TWFya2VyKEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyKikgeyByZXR1cm4gbnVsbHB0cjsgfQ0KIFJlZlB0cjxBY2Nlc3Np
YmlsaXR5VGV4dE1hcmtlclJhbmdlPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjptaXNzcGVsbGlu
Z1RleHRNYXJrZXJSYW5nZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKiwgYm9vbCkgeyBy
ZXR1cm4gbnVsbHB0cjsgfQ0KK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzbWlzcygp
IHsgfQ0KICNlbmRpZg0KIA0KIH0gLy8gbmFtZXNwYWNlIFdUUg0KZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5o
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmgNCmluZGV4IDg3Y2ViNWY3ODBiLi4xNDlhOWZmMjIxZCAxMDA2NDQNCi0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dC5oDQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnQuaA0KQEAgLTEwMyw3ICsxMDMsNyBAQCBwdWJsaWM6DQogICAgIHZvaWQg
ZGVjcmVtZW50KCk7DQogICAgIHZvaWQgc2hvd01lbnUoKTsNCiAgICAgdm9pZCBwcmVzcygpOw0K
LSAgICBib29sIGRpc21pc3MoKTsNCisgICAgdm9pZCBkaXNtaXNzKCk7DQogI2lmIFBMQVRGT1JN
KE1BQykNCiAgICAgdm9pZCBzeW5jUHJlc3MoKTsNCiAgICAgdm9pZCBhc3luY0luY3JlbWVudCgp
Ow0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsDQppbmRl
eCBlYmUyNGJiYjE4Yy4uN2E0ZTM2MWRlYzIgMTAwNjQ0DQotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRs
DQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsDQpAQCAtMTI1LDcgKzEyNSw3IEBADQogICAgIHZvaWQg
cHJlc3MoKTsNCiAgICAgdm9pZCBzeW5jUHJlc3MoKTsNCiAgICAgdm9pZCBzaG93TWVudSgpOw0K
LSAgICBib29sZWFuIGRpc21pc3MoKTsNCisgICAgdm9pZCBkaXNtaXNzKCk7DQogDQogICAgIC8v
IEF0dHJpYnV0ZSBpbmZvLg0KICAgICBET01TdHJpbmcgYWxsQXR0cmlidXRlcygpOw0KZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnRJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tDQppbmRleCBlYWRiZTgzOGYwMC4u
NGE5NzNmZmUxYzMgMTAwNjQ0DQotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tDQorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9T
Lm1tDQpAQCAtODcyLDkgKzg3Miw5IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cHJl
c3MoKQ0KICAgICBbbV9lbGVtZW50IF9hY2Nlc3NpYmlsaXR5QWN0aXZhdGVdOw0KIH0NCiAgICAg
DQotYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNtaXNzKCkNCit2b2lkIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmRpc21pc3MoKQ0KIHsNCi0gICAgcmV0dXJuIFttX2VsZW1lbnQgYWNj
ZXNzaWJpbGl0eVBlcmZvcm1Fc2NhcGVdOw0KKyAgICBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlQ
ZXJmb3JtRXNjYXBlXTsNCiB9DQogDQogdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRT
ZWxlY3RlZENoaWxkKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqIGVsZW1lbnQpIGNvbnN0DQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudE1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0NCmluZGV4IDYzOTg4NTUwNjE2
Li4xOTYxNmQxMTY4ZSAxMDA2NDQNCi0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0NCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRN
YWMubW0NCkBAIC0xNDMyLDYgKzE0MzIsMTMgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpzZXRTZWxlY3RlZFRleHRSYW5nZSh1bnNpZ25lZCBsb2NhdGlvbiwgdW5zaWduZWQgbGUNCiAg
ICAgcmV0dXJuIHRydWU7DQogfQ0KIA0KK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlz
bWlzcygpDQorew0KKyAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMNCisgICAgW21fZWxlbWVu
dCBhY2Nlc3NpYmlsaXR5UGVyZm9ybUFjdGlvbjpAIkFYRGlzbWlzc0FjdGlvbiJdOw0KKyAgICBF
TkRfQVhfT0JKQ19FWENFUFRJT05TDQorfQ0KKw0KIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6c2V0U2VsZWN0ZWRWaXNpYmxlVGV4dFJhbmdlKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFu
Z2UqIG1hcmtlclJhbmdlKQ0KIHsNCiAgICAgc2V0QXR0cmlidXRlVmFsdWUobV9lbGVtZW50Lmdl
dCgpLCBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZSwgbWFy
a2VyUmFuZ2UtPnBsYXRmb3JtVGV4dE1hcmtlclJhbmdlKCkpOw0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403615</attachid>
            <date>2020-07-06 13:23:01 -0700</date>
            <delta_ts>2020-07-06 14:45:51 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_213875.txt</filename>
            <type>text/plain</type>
            <size>24263</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggZTBiZDYwZjgxNTUuLjcwMDBiODc2ZGY2IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTcg
QEANCisyMDIwLTA3LTAyICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogSW1wbGVtZW50IHVzZXIgYWN0aW9uIHNwZWMgZm9yIEVzY2FwZSBhY3Rp
b24NCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM4
NzUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NTAyMjk4MD4NCisNCisgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLg0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2tleWV2ZW50
cy1wb3N0ZWQtZm9yLWRpc21pc3MtYWN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuDQorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24uaHRt
bDogQWRkZWQuDQorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOg0KKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnM6DQorICAgICAg
ICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOg0KKw0KIDIwMjAtMDctMDIgIEVucmlx
dWUgT2Nhw7FhIEdvbnrDoWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4NCiANCiAgICAgICAgIFtH
VEtdIExheW91dCB0ZXN0IG1lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwgaXMgZmFpbGlu
Zw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3Rl
ZC1mb3ItZGlzbWlzcy1hY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9rZXlldmVudHMtcG9zdGVkLWZvci1kaXNtaXNzLWFjdGlvbi1leHBlY3RlZC50eHQNCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uZTJjMmRhMzk4OTANCi0tLSAv
ZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3Rl
ZC1mb3ItZGlzbWlzcy1hY3Rpb24tZXhwZWN0ZWQudHh0DQpAQCAtMCwwICsxLDExIEBADQorYWxl
cnQNCitUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgZGlzbWlzcyBhY3Rpb24gZ2VuZXJhdGVz
IGFuIGVzY2FwZSBrZXkgZXZlbnQuDQorDQorT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLg0KKw0K
Kw0KK0tleWNvZGUgcmVjZWl2ZWQ6IGNvZGU6IDI3IGtleSBuYW1lOiBFc2NhcGUNCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlDQorDQorVEVTVCBDT01QTEVURQ0KKw0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlzbWlz
cy1hY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3Rl
ZC1mb3ItZGlzbWlzcy1hY3Rpb24uaHRtbA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAw
MDAwMDAwMDAwLi5hMWQwYTM3MzJmNg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9rZXlldmVudHMtcG9zdGVkLWZvci1kaXNtaXNzLWFjdGlvbi5odG1sDQpA
QCAtMCwwICsxLDMyIEBADQorPGh0bWw+DQorPGh0bWw+DQorPGhlYWQ+DQorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+DQorPC9oZWFkPg0KKzxib2R5
IGlkPSJib2R5Ij4NCisNCis8ZGl2IGlkPSJhbGVydCI+YWxlcnQ8L2Rpdj4NCisNCis8cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4NCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCisgICAgIA0KKzxz
Y3JpcHQ+DQorICAgIGZ1bmN0aW9uIGhhbmRsZUtleURvd24oZXZlbnQpIHsNCisgICAgICAgIGRl
YnVnKCJLZXljb2RlIHJlY2VpdmVkOiBjb2RlOiAiICsgZXZlbnQua2V5Q29kZSArICIga2V5IG5h
bWU6ICIgKyBldmVudC5rZXkpOw0KKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsNCisg
ICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOw0KKyAgICAgICAgZmluaXNoSlNUZXN0KCk7
DQorICAgICB9DQorDQorICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsN
CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOw0KKyAgICAgICAgZGVzY3JpcHRpb24oIlRo
aXMgdGVzdCB2ZXJpZmllcyB0aGF0IHRoZSBkaXNtaXNzIGFjdGlvbiBnZW5lcmF0ZXMgYW4gZXNj
YXBlIGtleSBldmVudC4iKTsNCisNCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJh
bGVydCIpLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlEb3duKTsNCisgICAg
ICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiYWxlcnQi
KS5kaXNtaXNzKCk7DQorICAgIH0NCisgPC9zY3JpcHQ+DQorDQorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pg0KKzwvYm9keT4NCis8L2h0bWw+DQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucw0KaW5kZXggMjBlOThjYzU2
NzQuLjk1YjRkNTA2Mjk3IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMNCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zDQpAQCAtNzUwLDYgKzc1MCw3IEBAIEJ1ZyhHVEspIGVkaXRpbmcvc3BlbGxpbmcvbWFy
a2Vycy5odG1sIFsgU2tpcCBdDQogd2Via2l0Lm9yZy9iLzg1OTU4IGZhc3QvZm9ybXMvZmlsZS9m
aWxlLWlucHV0LWNhcHR1cmUuaHRtbCBbIEZhaWx1cmUgXQ0KIA0KIHdlYmtpdC5vcmcvYi8xNDY3
MjAgbWVkaWEvYWNjZXNzaWJsaXR5LWRlc2NyaWJlcy12aWRlby5odG1sIFsgRmFpbHVyZSBdDQor
d2Via2l0Lm9yZy9iLzIxMzg3NCBhY2Nlc3NpYmlsaXR5L2tleWV2ZW50cy1wb3N0ZWQtZm9yLWRp
c21pc3MtYWN0aW9uLmh0bWwgWyBTa2lwIF0NCiANCiB3ZWJraXQub3JnL2IvMTQ2NzI0IGZhc3Qv
dGV4dC93b3JkLWJyZWFrLWtlZXAtYWxsLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0NCiANCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlv
bnMNCmluZGV4IGYxYzUxMTExYWY0Li41MmI3YWYzYWQ3NCAxMDA2NDQNCi0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9ucw0KKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0RXhwZWN0YXRpb25zDQpAQCAtNiw2ICs2
LDcgQEANCiBhY2Nlc3NpYmlsaXR5L2luc2VydC1uZXdsaW5lLmh0bWwgWyBQYXNzIF0NCiBhY2Nl
c3NpYmlsaXR5L21pc3NwZWxsaW5nLXJhbmdlLmh0bWwgWyBQYXNzIF0NCiBhY2Nlc3NpYmlsaXR5
L3VybC10ZXN0Lmh0bWwgWyBQYXNzIF0NCithY2Nlc3NpYmlsaXR5L2tleWV2ZW50cy1wb3N0ZWQt
Zm9yLWRpc21pc3MtYWN0aW9uLmh0bWwgWyBQYXNzIF0NCiBjc3MzL2ZvbnQtdmFyaWFudC1zbWFs
bC1jYXBzLXN5bnRoZXNpcy1jb3ZlcmFnZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdDQogZmFz
dC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1jbG9zZS10b3Atbm9jbG9zZS5odG1sIFsgRmFpbHVy
ZSBdDQogZmFzdC9tdWx0aWNvbC9mbGV4Ym94LXJvd3MuaHRtbCBbIFNraXAgXQ0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMNCmluZGV4IGMxMDY5MjIzMDgyLi4wNjg4
YzcyNDZlNCAxMDA2NDQNCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0
YXRpb25zDQorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucw0K
QEAgLTEzODQsNiArMTM4NCw3IEBAIGFjY2Vzc2liaWxpdHkvbXVsdGlzZWxlY3QtbGlzdC1yZXBv
cnRzLWFjdGl2ZS1vcHRpb24uaHRtbCBbIFNraXAgXQ0KICMgaW5jcmVtZW50L2RlY3JlbWVudCBu
b3QgaW1wbGVtZW50ZWQgaW4gdGVzdCBydW5uZXINCiBhY2Nlc3NpYmlsaXR5L2tleWV2ZW50cy1m
b3ItaW5jcmVtZW50LWFjdGlvbnMtd2l0aC1ub2RlLXJlbW92YWwuaHRtbCBbIFNraXAgXQ0KIGFj
Y2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItaW5jcmVtZW50LWFjdGlvbnMuaHRtbCBb
IFNraXAgXQ0KK2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlzbWlzcy1hY3Rp
b24uaHRtbCBbIFNraXAgXQ0KIA0KIHdlYmtpdC5vcmcvYi8xNDA3OTYgYWNjZXNzaWJpbGl0eS9h
bHQtdGFnLW9uLWltYWdlLXdpdGgtbm9uaW1hZ2Utcm9sZS5odG1sIFsgU2tpcCBdDQogd2Via2l0
Lm9yZy9iLzE0MDc5OCBhY2Nlc3NpYmlsaXR5L2FyaWEtY29udHJvbHMtd2l0aC10YWJzLmh0bWwg
WyBTa2lwIF0NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cNCmluZGV4IDkxNDVmYjhjOTc1Li5kYWQwNGZhMGIyNiAxMDA2NDQN
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nDQpAQCAtMSwzICsxLDMxIEBADQorMjAyMC0wNy0wMiAgQ2hyaXMgRmxlaXphY2ggIDxj
ZmxlaXphY2hAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgQVg6IEltcGxlbWVudCB1c2VyIGFjdGlv
biBzcGVjIGZvciBFc2NhcGUgYWN0aW9uDQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjEzODc1DQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjUwMjI5
ODA+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4NCisNCisgICAgICAgIElt
cGxlbWVudCB0aGUgRXNjYXBlIGFjdGlvbiBmb3IgdGhlIHVzZXIgYWN0aW9uIGV2ZW50cy4NCisg
ICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNHL2FvbS9ibG9iL2doLXBhZ2VzL2V4cGxhaW5l
ci5tZCN1c2VyLWFjdGlvbi1ldmVudHMtZnJvbS1hc3Npc3RpdmUtdGVjaG5vbG9neQ0KKw0KKyAg
ICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9rZXlldmVudHMtcG9zdGVkLWZvci1kaXNtaXNzLWFj
dGlvbi5odG1sDQorDQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpw
ZXJmb3JtRXNjYXBlKToNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6ZGlzcGF0Y2hTaW11bGF0ZWRLZXlib2FyZFVwRG93bkV2ZW50KToNCisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cG9zdEtleWJvYXJkS2V5c0ZvclZhbHVlQ2hh
bmdlKToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5o
Og0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoNCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6DQorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9T
Lm1tOg0KKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJp
bGl0eVBlcmZvcm1Fc2NhcGVdKToNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZE9iamVjdC5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9i
amVjdDo6cGVyZm9ybUVzY2FwZSk6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06DQorICAgICAgICAoLVtXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5UGVyZm9ybUFjdGlvbjpdKToNCisNCiAy
MDIwLTA3LTAxICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+DQog
DQogICAgICAgICBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRFeHRlbnNpb25zRm9yTUlNRVR5cGUoKSBu
ZWVkcyB0byBoYW5kbGUgd2lsZGNhcmQgTUlNRSB0eXBlcw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHANCmluZGV4
IDI5ZTIyYmIwZDZiLi4xY2RjZjEyNWYxNSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwDQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcA0KQEAgLTEwOTUs
MTIgKzEwOTUsMzkgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZGVjcmVtZW50KCkN
CiAgICAgYWx0ZXJTbGlkZXJWYWx1ZShmYWxzZSk7DQogfQ0KIA0KLS8vIEZpcmUgYSBrZXlib2Fy
ZCBldmVudCBpZiB3ZSB3ZXJlIG5vdCBhYmxlIHRvIHNldCB0aGlzIHZhbHVlIG5hdGl2ZWx5Lg0K
LXZvaWQgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBvc3RLZXlib2FyZEtleXNGb3JWYWx1ZUNo
YW5nZShib29sIGluY3JlYXNlKQ0KK3N0YXRpYyBib29sIGRpc3BhdGNoU2ltdWxhdGVkS2V5Ym9h
cmRVcERvd25FdmVudChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIGNvbnN0IEtleWJvYXJk
RXZlbnQ6OkluaXQmIGtleUluaXQpDQogew0KICAgICAvLyBJbiBjYXNlIHRoZSBrZXlib2FyZCBl
dmVudCBjYXVzZXMgdGhpcyBlbGVtZW50IHRvIGJlIHJlbW92ZWQuDQotICAgIFJlZjxBY2Nlc3Np
YmlsaXR5T2JqZWN0PiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsNCisgICAgUmVmPEFjY2Vzc2liaWxp
dHlPYmplY3Q+IHByb3RlY3RlZE9iamVjdCgqb2JqZWN0KTsNCisgICAgDQorICAgIGJvb2wgaGFu
ZGxlZCA9IGZhbHNlOw0KKyAgICBpZiAoYXV0byogbm9kZSA9IG9iamVjdC0+bm9kZSgpKSB7DQor
ICAgICAgICBhdXRvIGV2ZW50ID0gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5r
ZXlkb3duRXZlbnQsIGtleUluaXQpOw0KKyAgICAgICAgbm9kZS0+ZGlzcGF0Y2hFdmVudChldmVu
dCk7DQorICAgICAgICBoYW5kbGVkIHw9IGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpOw0KKyAgICB9
DQorICAgIA0KKyAgICAvLyBFbnN1cmUgbm9kZSBpcyBzdGlsbCB2YWxpZCBhbmQgd2Fzbid0IHJl
bW92ZWQgYWZ0ZXIgdGhlIGtleWRvd24uDQorICAgIGlmIChhdXRvKiBub2RlID0gb2JqZWN0LT5u
b2RlKCkpIHsNCisgICAgICAgIGF1dG8gZXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lcygpLmtleXVwRXZlbnQsIGtleUluaXQpOw0KKyAgICAgICAgbm9kZS0+ZGlzcGF0Y2hF
dmVudChldmVudCk7DQorICAgICAgICBoYW5kbGVkIHw9IGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgp
Ow0KKyAgICB9DQorICAgIHJldHVybiBoYW5kbGVkOw0KK30NCisNCitib29sIEFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0OjpwZXJmb3JtRGlzbWlzc0FjdGlvbigpDQorew0KKyAgICBhdXRvIGtleUlu
aXQgPSBLZXlib2FyZEV2ZW50OjpJbml0KCk7DQorICAgIGtleUluaXQua2V5ID0gIkVzY2FwZSJf
czsNCisgICAga2V5SW5pdC5rZXlDb2RlID0gMHgxYjsNCisgICAgDQorICAgIHJldHVybiBkaXNw
YXRjaFNpbXVsYXRlZEtleWJvYXJkVXBEb3duRXZlbnQodGhpcywga2V5SW5pdCk7DQorfQ0KIA0K
Ky8vIEZpcmUgYSBrZXlib2FyZCBldmVudCBpZiB3ZSB3ZXJlIG5vdCBhYmxlIHRvIHNldCB0aGlz
IHZhbHVlIG5hdGl2ZWx5Lg0KK2Jvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBvc3RLZXli
b2FyZEtleXNGb3JWYWx1ZUNoYW5nZShib29sIGluY3JlYXNlKQ0KK3sNCiAgICAgYXV0byBrZXlJ
bml0ID0gS2V5Ym9hcmRFdmVudDo6SW5pdCgpOw0KICAgICBib29sIHZlcnRpY2FsID0gb3JpZW50
YXRpb24oKSA9PSBBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb246OlZlcnRpY2FsOw0KICAgICBib29s
IGlzTFRSID0gcGFnZSgpLT51c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCkgPT0gVXNlcklu
dGVyZmFjZUxheW91dERpcmVjdGlvbjo6TFRSOw0KQEAgLTExMDgsMTIgKzExMzUsNyBAQCB2b2lk
IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpwb3N0S2V5Ym9hcmRLZXlzRm9yVmFsdWVDaGFuZ2Uo
Ym9vbCBpbmNyZWFzZSkNCiAgICAga2V5SW5pdC5rZXkgPSBpbmNyZWFzZSA/IHZlcnRpY2FsID8g
IkFycm93VXAiX3MgOiBpc0xUUiA/ICJBcnJvd1JpZ2h0Il9zIDogIkFycm93TGVmdCJfcyA6IHZl
cnRpY2FsID8gIkFycm93RG93biJfcyA6IGlzTFRSID8gIkFycm93TGVmdCJfcyA6ICJBcnJvd1Jp
Z2h0Il9zOw0KICAgICBrZXlJbml0LmtleUlkZW50aWZpZXIgPSBpbmNyZWFzZSA/IHZlcnRpY2Fs
ID8gInVwIl9zIDogaXNMVFIgPyAicmlnaHQiX3MgOiAibGVmdCJfcyA6IHZlcnRpY2FsID8gImRv
d24iX3MgOiBpc0xUUiA/ICJsZWZ0Il9zIDogInJpZ2h0Il9zOw0KIA0KLSAgICBpZiAoYXV0byog
bm9kZSA9IHRoaXMtPm5vZGUoKSkNCi0gICAgICAgIG5vZGUtPmRpc3BhdGNoRXZlbnQoS2V5Ym9h
cmRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQsIGtleUluaXQpKTsNCi0N
Ci0gICAgLy8gRW5zdXJlIG5vZGUgaXMgc3RpbGwgdmFsaWQgYW5kIHdhc24ndCByZW1vdmVkIGFm
dGVyIHRoZSBrZXlkb3duLg0KLSAgICBpZiAoYXV0byogbm9kZSA9IHRoaXMtPm5vZGUoKSkNCi0g
ICAgICAgIG5vZGUtPmRpc3BhdGNoRXZlbnQoS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5rZXl1cEV2ZW50LCBrZXlJbml0KSk7DQorICAgIHJldHVybiBkaXNwYXRjaFNpbXVsYXRl
ZEtleWJvYXJkVXBEb3duRXZlbnQodGhpcywga2V5SW5pdCk7DQogfQ0KIA0KIHZvaWQgQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3Q6OnNldE5vZGVWYWx1ZShib29sIGluY3JlYXNlLCBmbG9hdCB2YWx1
ZSkNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmgNCmluZGV4IGNiNWY2MWJjZDlhLi44NDM2OWU2MjhmZSAxMDA2NDQNCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qu
aA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oDQpAQCAtMTg5LDggKzE4OSwxMCBAQCBwcml2YXRlOg0KICAgICBib29sIGNvbXB1dGVB
Y2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Qgb3ZlcnJpZGU7DQogICAgIGJvb2wgdXNlc0Fs
dFRhZ0ZvclRleHRDb21wdXRhdGlvbigpIGNvbnN0Ow0KICAgICBib29sIHJvbGVJZ25vcmVzVGl0
bGUoKSBjb25zdDsNCi0gICAgdm9pZCBwb3N0S2V5Ym9hcmRLZXlzRm9yVmFsdWVDaGFuZ2UoYm9v
bCBpbmNyZWFzZSk7DQorICAgIGJvb2wgcG9zdEtleWJvYXJkS2V5c0ZvclZhbHVlQ2hhbmdlKGJv
b2wgaW5jcmVhc2UpOw0KICAgICB2b2lkIHNldE5vZGVWYWx1ZShib29sIGluY3JlYXNlLCBmbG9h
dCB2YWx1ZSk7DQorICAgIGJvb2wgcGVyZm9ybURpc21pc3NBY3Rpb24oKSBmaW5hbDsNCisgICAg
DQogICAgIE5vZGUqIG1fbm9kZTsNCiB9Ow0KIA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgNCmluZGV4
IGJlYTRhN2ZmNDZiLi4wNWRiODY0OTM4MSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oDQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaA0KQEAg
LTkwNyw3ICs5MDcsOCBAQCBwdWJsaWM6DQogICAgIHZpcnR1YWwgdm9pZCBtYWtlUmFuZ2VWaXNp
YmxlKGNvbnN0IFBsYWluVGV4dFJhbmdlJikgPSAwOw0KICAgICB2aXJ0dWFsIGJvb2wgcHJlc3Mo
KSA9IDA7DQogICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtRGVmYXVsdEFjdGlvbigpID0gMDsNCi0N
CisgICAgdmlydHVhbCBib29sIHBlcmZvcm1EaXNtaXNzQWN0aW9uKCkgeyByZXR1cm4gZmFsc2U7
IH0NCisgICAgDQogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9uIG9yaWVudGF0
aW9uKCkgY29uc3QgPSAwOw0KICAgICB2aXJ0dWFsIHZvaWQgaW5jcmVtZW50KCkgPSAwOw0KICAg
ICB2aXJ0dWFsIHZvaWQgZGVjcmVtZW50KCkgPSAwOw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9TLm1t
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJJT1MubW0NCmluZGV4IGI3NzQyNWNkNDEwLi5mOTU3Mzc0YWY0MCAxMDA2NDQNCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVySU9TLm1tDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9X
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQ0KQEAgLTE4MjcsNiArMTgyNywxMyBA
QCBzdGF0aWMgdm9pZCBhcHBlbmRTdHJpbmdUb1Jlc3VsdChOU011dGFibGVTdHJpbmcgKnJlc3Vs
dCwgTlNTdHJpbmcgKnN0cmluZykNCiAgICAgcmV0dXJuIG5pbDsNCiB9DQogDQorLSAoQk9PTClh
Y2Nlc3NpYmlsaXR5UGVyZm9ybUVzY2FwZQ0KK3sNCisgICAgaWYgKCFbc2VsZiBfcHJlcGFyZUFj
Y2Vzc2liaWxpdHlDYWxsXSkNCisgICAgICAgIHJldHVybiBOTzsNCisgICAgcmV0dXJuIHNlbGYu
YXhCYWNraW5nT2JqZWN0LT5wZXJmb3JtRXNjYXBlKCk7DQorfQ0KKw0KIC0gKEJPT0wpX2FjY2Vz
c2liaWxpdHlBY3RpdmF0ZQ0KIHsNCiAgICAgaWYgKCFbc2VsZiBfcHJlcGFyZUFjY2Vzc2liaWxp
dHlDYWxsXSkNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwDQppbmRleCAwNjFlOWE2ODYwZC4u
MzllMTdlMDM2YTYgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcA0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHANCkBAIC02MzAsNiAr
NjMwLDE1IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6c2V0SXNFeHBhbmRlZChib29sIHZhbHVl
KQ0KICAgICB9KTsNCiB9DQogDQorYm9vbCBBWElzb2xhdGVkT2JqZWN0OjpwZXJmb3JtRGlzbWlz
c0FjdGlvbigpDQorew0KKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6cmV0cmlldmVWYWx1ZUZy
b21NYWluVGhyZWFkPGJvb2w+KFt0aGlzXSAoKSAtPiBib29sIHsNCisgICAgICAgIGlmIChhdXRv
KiBheE9iamVjdCA9IGFzc29jaWF0ZWRBWE9iamVjdCgpKQ0KKyAgICAgICAgICAgIHJldHVybiBh
eE9iamVjdC0+cGVyZm9ybURpc21pc3NBY3Rpb24oKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsN
CisgICAgfSk7DQorfQ0KKw0KIGJvb2wgQVhJc29sYXRlZE9iamVjdDo6c2V0VmFsdWUoZmxvYXQg
dmFsdWUpDQogew0KICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6cmV0cmlldmVWYWx1ZUZyb21N
YWluVGhyZWFkPGJvb2w+KFsmdmFsdWUsIHRoaXNdICgpIC0+IGJvb2wgew0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRPYmplY3QuaA0KaW5kZXggMmExOTlmZWE1OWIuLmU4NTU3ZWY5YWU0IDEwMDY0NA0KLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVj
dC5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkT2JqZWN0LmgNCkBAIC03MjEsNiArNzIxLDcgQEAgcHJpdmF0ZToNCiAgICAgRmxvYXRS
ZWN0IGNvbnZlcnRGcmFtZVRvU3BhY2UoY29uc3QgRmxvYXRSZWN0JiwgQWNjZXNzaWJpbGl0eUNv
bnZlcnNpb25TcGFjZSkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gRmxvYXRSZWN0KCk7IH0NCiAg
ICAgdm9pZCBpbmNyZW1lbnQoKSBvdmVycmlkZSB7IH0NCiAgICAgdm9pZCBkZWNyZW1lbnQoKSBv
dmVycmlkZSB7IH0NCisgICAgYm9vbCBwZXJmb3JtRGlzbWlzc0FjdGlvbigpIG92ZXJyaWRlOw0K
ICAgICB2b2lkIHNjcm9sbFRvTWFrZVZpc2libGUoKSBjb25zdCBvdmVycmlkZSB7IH0NCiAgICAg
dm9pZCBzY3JvbGxUb01ha2VWaXNpYmxlV2l0aFN1YkZvY3VzKGNvbnN0IEludFJlY3QmKSBjb25z
dCBvdmVycmlkZSB7IH0NCiAgICAgdm9pZCBzY3JvbGxUb0dsb2JhbFBvaW50KGNvbnN0IEludFBv
aW50JikgY29uc3Qgb3ZlcnJpZGUgeyB9DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ck1hYy5tbQ0KaW5kZXggOTY4NmQ0MzU1NjQuLjYxNTNjZmEyNTYyIDEwMDY0NA0KLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJNYWMubW0NCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tDQpAQCAtMzQ3MCw2ICszNDcwLDggQEAgQUxMT1df
REVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5EDQogICAgICAgICBbc2VsZiBhY2Nlc3NpYmls
aXR5UGVyZm9ybURlY3JlbWVudEFjdGlvbl07DQogICAgIGVsc2UgaWYgKFthY3Rpb24gaXNFcXVh
bFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVNjcm9sbFRvVmlzaWJsZUFjdGlvbl0pDQogICAgICAg
ICBbc2VsZiBhY2Nlc3NpYmlsaXR5U2Nyb2xsVG9WaXNpYmxlXTsNCisgICAgZWxzZSBpZiAoW2Fj
dGlvbiBpc0VxdWFsVG9TdHJpbmc6QCJBWERpc21pc3NBY3Rpb24iXSkNCisgICAgICAgIGJhY2tp
bmdPYmplY3QtPnBlcmZvcm1EaXNtaXNzQWN0aW9uKCk7DQogfQ0KIA0KIC0gKEJPT0wpYWNjZXNz
aWJpbGl0eVJlcGxhY2VSYW5nZTooTlNSYW5nZSlyYW5nZSB3aXRoVGV4dDooTlNTdHJpbmcgKilz
dHJpbmcNCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cNCmlu
ZGV4IDgxMDAzNTk1OWZiLi4zNzA0Y2QyYzIwYyAxMDA2NDQNCi0tLSBhL1Rvb2xzL0NoYW5nZUxv
Zw0KKysrIGIvVG9vbHMvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDI5IEBADQorMjAyMC0wNy0wMiAg
Q2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgQVg6IElt
cGxlbWVudCB1c2VyIGFjdGlvbiBzcGVjIGZvciBFc2NhcGUgYWN0aW9uDQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzODc1DQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNjUwMjI5ODA+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4NCisNCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5j
cHA6DQorICAgICAgICAoZGlzbWlzc0NhbGxiYWNrKToNCisgICAgICAgIChBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpnZXRKU0NsYXNzKToNCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudC5oOg0KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudElPUy5tbToNCisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpkaXNtaXNzKToNCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnRNYWMubW06DQorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzbWlz
cyk6DQorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudC5jcHA6DQorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojp0ZXh0TWFya2VyUmFuZ2VNYXRjaGVzVGV4dE5lYXJNYXJrZXJzKToNCisgICAgICAgIChXVFI6
OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc21pc3MpOg0KKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaDoNCisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50LmlkbDoNCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbToNCisgICAgICAgIChXVFI6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmRpc21pc3MpOg0KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tOg0KKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzbWlzcyk6DQorDQogMjAyMC0wNy0w
MSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIEZp
eCB0aGUgV2ViS2l0IGJ1aWxkIGFmdGVyIDxyZGFyOi8vcHJvYmxlbS82NDI4ODE5MT4NCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwDQppbmRleCAx
MWYzYTUxOTRmOS4uMGU1YTUwZjZiOWQgMTAwNjQ0DQotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcA0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHANCkBAIC03MjcsNiArNzI3LDEyIEBAIHN0YXRpYyBK
U1ZhbHVlUmVmIHByZXNzQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVm
IGZ1bmN0aW9uLCBKU09iDQogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0
KTsNCiB9DQogDQorc3RhdGljIEpTVmFsdWVSZWYgZGlzbWlzc0NhbGxiYWNrKEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwg
c2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikNCit7DQorICAgIHRvQVhFbGVtZW50KHRoaXNPYmplY3QpLT5kaXNt
aXNzKCk7DQorICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsNCit9DQor
DQogc3RhdGljIEpTVmFsdWVSZWYgc2Nyb2xsVG9NYWtlVmlzaWJsZVdpdGhTdWJGb2N1c0NhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RS
ZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJn
dW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikNCiB7DQogICAgIHVuc2lnbmVkIHggPSAw
Ow0KQEAgLTE5NzgsNiArMTk4NCw3IEBAIEpTQ2xhc3NSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6Z2V0SlNDbGFzcygpDQogICAgICAgICB7ICJkZWNyZW1lbnQiLCBkZWNyZW1lbnRDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LA0KICAgICAgICAgeyAic2hvd01lbnUiLCBzaG93TWVudUNhbGxiYWNrLCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRl
IH0sDQogICAgICAgICB7ICJwcmVzcyIsIHByZXNzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwNCisgICAgICAg
IHsgImRpc21pc3MiLCBkaXNtaXNzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwNCiAgICAgICAgIHsgImRpc2Ns
b3NlZFJvd0F0SW5kZXgiLCBkaXNjbG9zZWRSb3dBdEluZGV4Q2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwNCiAg
ICAgICAgIHsgImFyaWFPd25zRWxlbWVudEF0SW5kZXgiLCBhcmlhT3duc0VsZW1lbnRBdEluZGV4
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwNCiAgICAgICAgIHsgImFyaWFGbG93VG9FbGVtZW50QXRJbmRleCIs
IGFyaWFGbG93VG9FbGVtZW50QXRJbmRleENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sDQpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oDQppbmRleCBkNzIxOTdmZWMwYy4u
YTUwMjY1ZmI2MDkgMTAwNjQ0DQotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmgNCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuaA0KQEAgLTk3LDYgKzk3LDcgQEAgcHVibGljOg0KICAgICB2b2lkIGRlY3JlbWVu
dCgpOw0KICAgICB2b2lkIHNob3dNZW51KCk7DQogICAgIHZvaWQgcHJlc3MoKTsNCisgICAgdm9p
ZCBkaXNtaXNzKCk7DQogDQogICAgIC8vIEF0dHJpYnV0ZXMgLSBwbGF0Zm9ybS1pbmRlcGVuZGVu
dCBpbXBsZW1lbnRhdGlvbnMNCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHN0cmluZ0F0
dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSk7DQpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0gYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQ0KaW5kZXggMTZh
YzZhMDYyM2MuLmUzYzkwOWQ2ZGQyIDEwMDY0NA0KLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
aW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0NCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tDQpAQCAtOTEsNiArOTEsNyBAQCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KGlkIGVsZW1lbnQp
DQogLSAoTlNTdHJpbmcgKilhY2Nlc3NpYmlsaXR5VGV4dHVhbENvbnRleHQ7DQogLSAoQk9PTClh
Y2Nlc3NpYmlsaXR5SGFzUG9wdXA7DQogLSAoTlNTdHJpbmcgKilhY2Nlc3NpYmlsaXR5UG9wdXBW
YWx1ZTsNCistIChCT09MKWFjY2Vzc2liaWxpdHlQZXJmb3JtRXNjYXBlOw0KIA0KIC8vIFRleHRN
YXJrZXIgcmVsYXRlZA0KIC0gKE5TQXJyYXkgKil0ZXh0TWFya2VyUmFuZ2U7DQpAQCAtMzI5LDYg
KzMzMCwxMSBAQCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnRpdGxlVUlFbGVtZW50KCkNCiAgICAgcmV0dXJuIDA7DQogfQ0KIA0KK3ZvaWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6ZGlzbWlzcygpDQorew0KKyAgICBbbV9lbGVtZW50IGFjY2Vzc2liaWxp
dHlQZXJmb3JtRXNjYXBlXTsNCit9DQorDQogQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpwYXJlbnRFbGVtZW50KCkNCiB7DQogICAgIGlkIGFjY2Vzc2liaWxp
dHlPYmplY3QgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlDb250YWluZXJdOw0KZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1t
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0N
CmluZGV4IDYyMTNlNzYxNmM4Li5lMWVmZDdmNGUxNiAxMDA2NDQNCi0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tDQorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQ0KQEAgLTEzNzQs
NiArMTM3NCwxMyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFZhbHVlKEpTU3Ry
aW5nUmVmIHZhbHVlVGV4dCkNCiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUw0KIH0NCiANCit2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc21pc3MoKQ0KK3sNCisgICAgQkVHSU5fQVhf
T0JKQ19FWENFUFRJT05TDQorICAgIFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eVBlcmZvcm1BY3Rp
b246QCJBWERpc21pc3NBY3Rpb24iXTsNCisgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUw0KK30N
CisNCiB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluY3JlbWVudCgpDQogew0KICAgICBC
RUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMNCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS93aW4vQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdpbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS93aW4vQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdpbi5jcHANCmluZGV4IGI3Mzg0MGVlMDUwLi40
ZDkwYWE2ZDhlNyAxMDA2NDQNCi0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50V2luLmNwcA0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwDQpAQCAtNzQ5LDYgKzc0OSwxMCBAQCB2b2lkIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXNzKCkNCiAgICAgbV9lbGVtZW50LT5hY2NEb0RlZmF1
bHRBY3Rpb24oc2VsZigpKTsNCiB9DQogDQordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpk
aXNtaXNzKCkNCit7DQorfQ0KKw0KIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6ZGlzY2xvc2VkUm93QXRJbmRleCh1bnNpZ25lZCBpbmRleCkNCiB7DQogICAg
IHJldHVybiB7IG51bGxwdHIgfTsNCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcA0KaW5k
ZXggMmEyMzdkMzY5OWIuLjNiOWQ5MGU3NWUwIDEwMDY0NA0KLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcA0KKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50LmNwcA0KQEAgLTc3LDcgKzc3LDYgQEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmZpZWxkc2V0QW5jZXN0b3JFbGVtZW50KCkNCiBib29s
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VhcmNoRmllbGQoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQ0KIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNUZXh0QXJlYSgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9DQogUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJSYW5nZU1hdGNoZXNUZXh0TmVhck1h
cmtlcnMoSlNTdHJpbmdSZWYsIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKiwgQWNjZXNzaWJpbGl0
eVRleHRNYXJrZXIqKSB7IHJldHVybiBudWxscHRyOyB9DQotYm9vbCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpkaXNtaXNzKCkgeyByZXR1cm4gZmFsc2U7IH0NCiBKU1JldGFpblB0cjxKU1N0cmlu
Z1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0cmluZ0ZvckVsZW1lbnQo
KSB7IHJldHVybiBudWxscHRyOyB9DQogYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0lu
VGFibGVDZWxsKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0NCiAjZW5kaWYNCkBAIC0xMTAsNiAr
MTA5LDcgQEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnNlbnRlbmNlVGV4dE1hcmtlclINCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om5leHRTZW50ZW5jZUVuZFRleHRNYXJr
ZXJGb3JUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKikgeyByZXR1cm4gbnVsbHB0
cjsgfQ0KIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6cHJldmlvdXNTZW50ZW5jZVN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXIoQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXIqKSB7IHJldHVybiBudWxscHRyOyB9DQogUmVmUHRyPEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1pc3NwZWxsaW5n
VGV4dE1hcmtlclJhbmdlKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqLCBib29sKSB7IHJl
dHVybiBudWxscHRyOyB9DQordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNtaXNzKCkg
eyB9DQogI2VuZGlmDQogDQogfSAvLyBuYW1lc3BhY2UgV1RSDQpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmgg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQuaA0KaW5kZXggODdjZWI1Zjc4MGIuLjE0OWE5ZmYyMjFkIDEwMDY0NA0KLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
LmgNCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudC5oDQpAQCAtMTAzLDcgKzEwMyw3IEBAIHB1YmxpYzoNCiAgICAgdm9pZCBk
ZWNyZW1lbnQoKTsNCiAgICAgdm9pZCBzaG93TWVudSgpOw0KICAgICB2b2lkIHByZXNzKCk7DQot
ICAgIGJvb2wgZGlzbWlzcygpOw0KKyAgICB2b2lkIGRpc21pc3MoKTsNCiAjaWYgUExBVEZPUk0o
TUFDKQ0KICAgICB2b2lkIHN5bmNQcmVzcygpOw0KICAgICB2b2lkIGFzeW5jSW5jcmVtZW50KCk7
DQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5k
aW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwNCmluZGV4
IGViZTI0YmJiMThjLi43YTRlMzYxZGVjMiAxMDA2NDQNCi0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwN
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwNCkBAIC0xMjUsNyArMTI1LDcgQEANCiAgICAgdm9pZCBw
cmVzcygpOw0KICAgICB2b2lkIHN5bmNQcmVzcygpOw0KICAgICB2b2lkIHNob3dNZW51KCk7DQot
ICAgIGJvb2xlYW4gZGlzbWlzcygpOw0KKyAgICB2b2lkIGRpc21pc3MoKTsNCiANCiAgICAgLy8g
QXR0cmlidXRlIGluZm8uDQogICAgIERPTVN0cmluZyBhbGxBdHRyaWJ1dGVzKCk7DQpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudElPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0NCmluZGV4IGVhZGJlODM4ZjAwLi40
YTk3M2ZmZTFjMyAxMDA2NDQNCi0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0NCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1Mu
bW0NCkBAIC04NzIsOSArODcyLDkgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwcmVz
cygpDQogICAgIFttX2VsZW1lbnQgX2FjY2Vzc2liaWxpdHlBY3RpdmF0ZV07DQogfQ0KICAgICAN
Ci1ib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc21pc3MoKQ0KK3ZvaWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6ZGlzbWlzcygpDQogew0KLSAgICByZXR1cm4gW21fZWxlbWVudCBhY2Nl
c3NpYmlsaXR5UGVyZm9ybUVzY2FwZV07DQorICAgIFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eVBl
cmZvcm1Fc2NhcGVdOw0KIH0NCiANCiB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNl
bGVjdGVkQ2hpbGQoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCogZWxlbWVudCkgY29uc3QNCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50TWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQ0KaW5kZXggNjM5ODg1NTA2MTYu
LjE5NjE2ZDExNjhlIDEwMDY0NA0KLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQ0KKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1h
Yy5tbQ0KQEAgLTE0MzIsNiArMTQzMiwxMyBAQCBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnNldFNlbGVjdGVkVGV4dFJhbmdlKHVuc2lnbmVkIGxvY2F0aW9uLCB1bnNpZ25lZCBsZQ0KICAg
ICByZXR1cm4gdHJ1ZTsNCiB9DQogDQordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNt
aXNzKCkNCit7DQorICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUw0KKyAgICBbbV9lbGVtZW50
IGFjY2Vzc2liaWxpdHlQZXJmb3JtQWN0aW9uOkAiQVhEaXNtaXNzQWN0aW9uIl07DQorICAgIEVO
RF9BWF9PQkpDX0VYQ0VQVElPTlMNCit9DQorDQogYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpzZXRTZWxlY3RlZFZpc2libGVUZXh0UmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5n
ZSogbWFya2VyUmFuZ2UpDQogew0KICAgICBzZXRBdHRyaWJ1dGVWYWx1ZShtX2VsZW1lbnQuZ2V0
KCksIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlLCBtYXJr
ZXJSYW5nZS0+cGxhdGZvcm1UZXh0TWFya2VyUmFuZ2UoKSk7DQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403623</attachid>
            <date>2020-07-06 14:45:51 -0700</date>
            <delta_ts>2020-07-06 14:56:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>file_213875.txt</filename>
            <type>text/plain</type>
            <size>314</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">DQojaWZuZGVmIE5ERUJVRw0KLSAoTlNTdHJpbmcgKilpbm5lckhUTUwNCnsNCiAgICBpZiAoYXV0
byogZWxlbWVudCA9IHNlbGYuYXhCYWNraW5nT2JqZWN0LT5lbGVtZW50KCkpDQogICAgICAgIHJl
dHVybiBlbGVtZW50LT5pbm5lckhUTUwoKTsNCiAgICByZXR1cm4gbmlsOw0KfQ0KDQotIChOU1N0
cmluZyAqKW91dGVySFRNTA0Kew0KICAgIGlmIChhdXRvKiBlbGVtZW50ID0gc2VsZi5heEJhY2tp
bmdPYmplY3QtPmVsZW1lbnQoKSkNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQtPm91dGVySFRNTCgp
Ow0KICAgIHJldHVybiBuaWw7DQp9DQojZW5kaWY=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403625</attachid>
            <date>2020-07-06 14:56:55 -0700</date>
            <delta_ts>2020-07-06 17:09:22 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_213875.txt</filename>
            <type>text/plain</type>
            <size>24176</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggZGM0MDliMzMxY2MuLjk1MTJmYTA0ZjFkIDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nDQorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTcg
QEANCisyMDIwLTA3LTA2ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQor
DQorICAgICAgICBBWDogSW1wbGVtZW50IHVzZXIgYWN0aW9uIHNwZWMgZm9yIEVzY2FwZSBhY3Rp
b24NCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM4
NzUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NTAyMjk4MD4NCisNCisgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLg0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2tleWV2ZW50
cy1wb3N0ZWQtZm9yLWRpc21pc3MtYWN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuDQorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24uaHRt
bDogQWRkZWQuDQorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOg0KKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnM6DQorICAgICAg
ICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOg0KKw0KIDIwMjAtMDctMDYgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4NCiANCiAgICAgICAgIFJlc3luYyB3ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MgZnJvbSB1cHN0cmVhbQ0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9rZXlldmVudHMtcG9zdGVk
LWZvci1kaXNtaXNzLWFjdGlvbi1leHBlY3RlZC50eHQNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQpp
bmRleCAwMDAwMDAwMDAwMC4uZTJjMmRhMzk4OTANCi0tLSAvZGV2L251bGwNCisrKyBiL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24t
ZXhwZWN0ZWQudHh0DQpAQCAtMCwwICsxLDExIEBADQorYWxlcnQNCitUaGlzIHRlc3QgdmVyaWZp
ZXMgdGhhdCB0aGUgZGlzbWlzcyBhY3Rpb24gZ2VuZXJhdGVzIGFuIGVzY2FwZSBrZXkgZXZlbnQu
DQorDQorT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLg0KKw0KKw0KK0tleWNvZGUgcmVjZWl2ZWQ6
IGNvZGU6IDI3IGtleSBuYW1lOiBFc2NhcGUNCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlDQorDQorVEVTVCBDT01QTEVURQ0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24uaHRtbCBiL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBvc3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24u
aHRtbA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5hMWQwYTM3MzJm
Ng0KLS0tIC9kZXYvbnVsbA0KKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9rZXlldmVu
dHMtcG9zdGVkLWZvci1kaXNtaXNzLWFjdGlvbi5odG1sDQpAQCAtMCwwICsxLDMyIEBADQorPGh0
bWw+DQorPGh0bWw+DQorPGhlYWQ+DQorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+DQorPC9oZWFkPg0KKzxib2R5IGlkPSJib2R5Ij4NCisNCis8ZGl2
IGlkPSJhbGVydCI+YWxlcnQ8L2Rpdj4NCisNCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4NCis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCisgICAgIA0KKzxzY3JpcHQ+DQorICAgIGZ1bmN0aW9u
IGhhbmRsZUtleURvd24oZXZlbnQpIHsNCisgICAgICAgIGRlYnVnKCJLZXljb2RlIHJlY2VpdmVk
OiBjb2RlOiAiICsgZXZlbnQua2V5Q29kZSArICIga2V5IG5hbWU6ICIgKyBldmVudC5rZXkpOw0K
KyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsNCisgICAgICAgIGV2ZW50LnN0b3BQcm9w
YWdhdGlvbigpOw0KKyAgICAgICAgZmluaXNoSlNUZXN0KCk7DQorICAgICB9DQorDQorICAgIGlm
ICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsNCisgICAgICAgIGpzVGVzdElzQXN5
bmMgPSB0cnVlOw0KKyAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0
IHRoZSBkaXNtaXNzIGFjdGlvbiBnZW5lcmF0ZXMgYW4gZXNjYXBlIGtleSBldmVudC4iKTsNCisN
CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbGVydCIpLmFkZEV2ZW50TGlzdGVu
ZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlEb3duKTsNCisgICAgICAgIGFjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiYWxlcnQiKS5kaXNtaXNzKCk7DQorICAgIH0N
CisgPC9zY3JpcHQ+DQorDQorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0Pg0KKzwvYm9keT4NCis8L2h0bWw+DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9ucw0KaW5kZXggODkyOWRiNTM4YWYuLjdjODllMGViYmFiIDEwMDY0
NA0KLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMNCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zDQpAQCAtNzUwLDYgKzc1
MCw3IEBAIEJ1ZyhHVEspIGVkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy5odG1sIFsgU2tpcCBdDQog
d2Via2l0Lm9yZy9iLzg1OTU4IGZhc3QvZm9ybXMvZmlsZS9maWxlLWlucHV0LWNhcHR1cmUuaHRt
bCBbIEZhaWx1cmUgXQ0KIA0KIHdlYmtpdC5vcmcvYi8xNDY3MjAgbWVkaWEvYWNjZXNzaWJsaXR5
LWRlc2NyaWJlcy12aWRlby5odG1sIFsgRmFpbHVyZSBdDQord2Via2l0Lm9yZy9iLzIxMzg3NCBh
Y2Nlc3NpYmlsaXR5L2tleWV2ZW50cy1wb3N0ZWQtZm9yLWRpc21pc3MtYWN0aW9uLmh0bWwgWyBT
a2lwIF0NCiANCiB3ZWJraXQub3JnL2IvMTQ2NzI0IGZhc3QvdGV4dC93b3JkLWJyZWFrLWtlZXAt
YWxsLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0NCiANCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnMNCmluZGV4IDM4NmNkN2E4YmQz
Li43YThjYmMxNGY5ZiAxMDA2NDQNCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11
bGF0b3IvVGVzdEV4cGVjdGF0aW9ucw0KKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNp
bXVsYXRvci9UZXN0RXhwZWN0YXRpb25zDQpAQCAtNiw2ICs2LDcgQEANCiBhY2Nlc3NpYmlsaXR5
L2luc2VydC1uZXdsaW5lLmh0bWwgWyBQYXNzIF0NCiBhY2Nlc3NpYmlsaXR5L21pc3NwZWxsaW5n
LXJhbmdlLmh0bWwgWyBQYXNzIF0NCiBhY2Nlc3NpYmlsaXR5L3VybC10ZXN0Lmh0bWwgWyBQYXNz
IF0NCithY2Nlc3NpYmlsaXR5L2tleWV2ZW50cy1wb3N0ZWQtZm9yLWRpc21pc3MtYWN0aW9uLmh0
bWwgWyBQYXNzIF0NCiBjc3MzL2ZvbnQtdmFyaWFudC1zbWFsbC1jYXBzLXN5bnRoZXNpcy1jb3Zl
cmFnZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdDQogZmFzdC9tdWx0aWNvbC9mbGV4Ym94LXJv
d3MuaHRtbCBbIFNraXAgXQ0KIHdvcmtlcnMvd2FzbS1tZW0tcG9zdC1tZXNzYWdlLmh0bWwgWyBG
YWlsdXJlIF0NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zDQppbmRl
eCA0OTBhODVlMDM3Ny4uOGNlYTRhMTIxODUgMTAwNjQ0DQotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucw0KKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L1Rlc3RFeHBlY3RhdGlvbnMNCkBAIC0xMzg0LDYgKzEzODQsNyBAQCBhY2Nlc3NpYmlsaXR5L211
bHRpc2VsZWN0LWxpc3QtcmVwb3J0cy1hY3RpdmUtb3B0aW9uLmh0bWwgWyBTa2lwIF0NCiAjIGlu
Y3JlbWVudC9kZWNyZW1lbnQgbm90IGltcGxlbWVudGVkIGluIHRlc3QgcnVubmVyDQogYWNjZXNz
aWJpbGl0eS9rZXlldmVudHMtZm9yLWluY3JlbWVudC1hY3Rpb25zLXdpdGgtbm9kZS1yZW1vdmFs
Lmh0bWwgWyBTa2lwIF0NCiBhY2Nlc3NpYmlsaXR5L2tleWV2ZW50cy1wb3N0ZWQtZm9yLWluY3Jl
bWVudC1hY3Rpb25zLmh0bWwgWyBTa2lwIF0NCithY2Nlc3NpYmlsaXR5L2tleWV2ZW50cy1wb3N0
ZWQtZm9yLWRpc21pc3MtYWN0aW9uLmh0bWwgWyBTa2lwIF0NCiANCiB3ZWJraXQub3JnL2IvMTQw
Nzk2IGFjY2Vzc2liaWxpdHkvYWx0LXRhZy1vbi1pbWFnZS13aXRoLW5vbmltYWdlLXJvbGUuaHRt
bCBbIFNraXAgXQ0KIHdlYmtpdC5vcmcvYi8xNDA3OTggYWNjZXNzaWJpbGl0eS9hcmlhLWNvbnRy
b2xzLXdpdGgtdGFicy5odG1sIFsgU2tpcCBdDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQppbmRleCBkMWEyYmZlZGJjNC4u
Y2UyMGIyOTU2YWYgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KQEAgLTEsMyArMSwzMSBAQA0KKzIwMjAtMDctMDYg
IENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4NCisNCisgICAgICAgIEFYOiBJ
bXBsZW1lbnQgdXNlciBhY3Rpb24gc3BlYyBmb3IgRXNjYXBlIGFjdGlvbg0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzg3NQ0KKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzY1MDIyOTgwPg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRs
ZXIuDQorDQorICAgICAgICBJbXBsZW1lbnQgdGhlIEVzY2FwZSBhY3Rpb24gZm9yIHRoZSB1c2Vy
IGFjdGlvbiBldmVudHMuDQorICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vV0lDRy9hb20vYmxv
Yi9naC1wYWdlcy9leHBsYWluZXIubWQjdXNlci1hY3Rpb24tZXZlbnRzLWZyb20tYXNzaXN0aXZl
LXRlY2hub2xvZ3kNCisNCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkva2V5ZXZlbnRzLXBv
c3RlZC1mb3ItZGlzbWlzcy1hY3Rpb24uaHRtbA0KKw0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdDo6cGVyZm9ybUVzY2FwZSk6DQorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRpc3BhdGNoU2ltdWxhdGVkS2V5Ym9hcmRVcERvd25FdmVu
dCk6DQorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBvc3RLZXli
b2FyZEtleXNGb3JWYWx1ZUNoYW5nZSk6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3QuaDoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0Lmg6DQorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dEludGVyZmFjZS5oOg0KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlcklPUy5tbToNCisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlQZXJmb3JtRXNjYXBlXSk6DQorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwOg0KKyAgICAgICAgKFdl
YkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OnBlcmZvcm1Fc2NhcGUpOg0KKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6DQorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tOg0KKyAg
ICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eVBlcmZv
cm1BY3Rpb246XSk6DQorDQogMjAyMC0wNy0wNiAgQ2xhcmsgV2FuZyAgPGNsYXJrX3dhbmdAYXBw
bGUuY29tPg0KIA0KICAgICAgICAgQWRkZWQgUGFubmVyTm9kZSBjb25zdHJ1Y3RvciBhY2NvcmRp
bmcgdG8gc3BlYw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHANCmluZGV4IGJlMjRiZGVkMzQyLi4xNTllMWY2MzJi
ZCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3QuY3BwDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmNwcA0KQEAgLTEwOTUsMTIgKzEwOTUsMzkgQEAgdm9pZCBBY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdDo6ZGVjcmVtZW50KCkNCiAgICAgYWx0ZXJTbGlkZXJWYWx1ZShm
YWxzZSk7DQogfQ0KIA0KLS8vIEZpcmUgYSBrZXlib2FyZCBldmVudCBpZiB3ZSB3ZXJlIG5vdCBh
YmxlIHRvIHNldCB0aGlzIHZhbHVlIG5hdGl2ZWx5Lg0KLXZvaWQgQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3Q6OnBvc3RLZXlib2FyZEtleXNGb3JWYWx1ZUNoYW5nZShib29sIGluY3JlYXNlKQ0KK3N0
YXRpYyBib29sIGRpc3BhdGNoU2ltdWxhdGVkS2V5Ym9hcmRVcERvd25FdmVudChBY2Nlc3NpYmls
aXR5T2JqZWN0KiBvYmplY3QsIGNvbnN0IEtleWJvYXJkRXZlbnQ6OkluaXQmIGtleUluaXQpDQog
ew0KICAgICAvLyBJbiBjYXNlIHRoZSBrZXlib2FyZCBldmVudCBjYXVzZXMgdGhpcyBlbGVtZW50
IHRvIGJlIHJlbW92ZWQuDQotICAgIFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBwcm90ZWN0ZWRU
aGlzKCp0aGlzKTsNCisgICAgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IHByb3RlY3RlZE9iamVj
dCgqb2JqZWN0KTsNCisgICAgDQorICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNlOw0KKyAgICBpZiAo
YXV0byogbm9kZSA9IG9iamVjdC0+bm9kZSgpKSB7DQorICAgICAgICBhdXRvIGV2ZW50ID0gS2V5
Ym9hcmRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQsIGtleUluaXQpOw0K
KyAgICAgICAgbm9kZS0+ZGlzcGF0Y2hFdmVudChldmVudCk7DQorICAgICAgICBoYW5kbGVkIHw9
IGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpOw0KKyAgICB9DQorICAgIA0KKyAgICAvLyBFbnN1cmUg
bm9kZSBpcyBzdGlsbCB2YWxpZCBhbmQgd2Fzbid0IHJlbW92ZWQgYWZ0ZXIgdGhlIGtleWRvd24u
DQorICAgIGlmIChhdXRvKiBub2RlID0gb2JqZWN0LT5ub2RlKCkpIHsNCisgICAgICAgIGF1dG8g
ZXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmtleXVwRXZlbnQsIGtl
eUluaXQpOw0KKyAgICAgICAgbm9kZS0+ZGlzcGF0Y2hFdmVudChldmVudCk7DQorICAgICAgICBo
YW5kbGVkIHw9IGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpOw0KKyAgICB9DQorICAgIHJldHVybiBo
YW5kbGVkOw0KK30NCisNCitib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwZXJmb3JtRGlz
bWlzc0FjdGlvbigpDQorew0KKyAgICBhdXRvIGtleUluaXQgPSBLZXlib2FyZEV2ZW50OjpJbml0
KCk7DQorICAgIGtleUluaXQua2V5ID0gIkVzY2FwZSJfczsNCisgICAga2V5SW5pdC5rZXlDb2Rl
ID0gMHgxYjsNCisgICAgDQorICAgIHJldHVybiBkaXNwYXRjaFNpbXVsYXRlZEtleWJvYXJkVXBE
b3duRXZlbnQodGhpcywga2V5SW5pdCk7DQorfQ0KIA0KKy8vIEZpcmUgYSBrZXlib2FyZCBldmVu
dCBpZiB3ZSB3ZXJlIG5vdCBhYmxlIHRvIHNldCB0aGlzIHZhbHVlIG5hdGl2ZWx5Lg0KK2Jvb2wg
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBvc3RLZXlib2FyZEtleXNGb3JWYWx1ZUNoYW5nZShi
b29sIGluY3JlYXNlKQ0KK3sNCiAgICAgYXV0byBrZXlJbml0ID0gS2V5Ym9hcmRFdmVudDo6SW5p
dCgpOw0KICAgICBib29sIHZlcnRpY2FsID0gb3JpZW50YXRpb24oKSA9PSBBY2Nlc3NpYmlsaXR5
T3JpZW50YXRpb246OlZlcnRpY2FsOw0KICAgICBib29sIGlzTFRSID0gcGFnZSgpLT51c2VySW50
ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCkgPT0gVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbjo6
TFRSOw0KQEAgLTExMDgsMTIgKzExMzUsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
Ojpwb3N0S2V5Ym9hcmRLZXlzRm9yVmFsdWVDaGFuZ2UoYm9vbCBpbmNyZWFzZSkNCiAgICAga2V5
SW5pdC5rZXkgPSBpbmNyZWFzZSA/IHZlcnRpY2FsID8gIkFycm93VXAiX3MgOiBpc0xUUiA/ICJB
cnJvd1JpZ2h0Il9zIDogIkFycm93TGVmdCJfcyA6IHZlcnRpY2FsID8gIkFycm93RG93biJfcyA6
IGlzTFRSID8gIkFycm93TGVmdCJfcyA6ICJBcnJvd1JpZ2h0Il9zOw0KICAgICBrZXlJbml0Lmtl
eUlkZW50aWZpZXIgPSBpbmNyZWFzZSA/IHZlcnRpY2FsID8gInVwIl9zIDogaXNMVFIgPyAicmln
aHQiX3MgOiAibGVmdCJfcyA6IHZlcnRpY2FsID8gImRvd24iX3MgOiBpc0xUUiA/ICJsZWZ0Il9z
IDogInJpZ2h0Il9zOw0KIA0KLSAgICBpZiAoYXV0byogbm9kZSA9IHRoaXMtPm5vZGUoKSkNCi0g
ICAgICAgIG5vZGUtPmRpc3BhdGNoRXZlbnQoS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5rZXlkb3duRXZlbnQsIGtleUluaXQpKTsNCi0NCi0gICAgLy8gRW5zdXJlIG5vZGUgaXMg
c3RpbGwgdmFsaWQgYW5kIHdhc24ndCByZW1vdmVkIGFmdGVyIHRoZSBrZXlkb3duLg0KLSAgICBp
ZiAoYXV0byogbm9kZSA9IHRoaXMtPm5vZGUoKSkNCi0gICAgICAgIG5vZGUtPmRpc3BhdGNoRXZl
bnQoS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5rZXl1cEV2ZW50LCBrZXlJbml0
KSk7DQorICAgIHJldHVybiBkaXNwYXRjaFNpbXVsYXRlZEtleWJvYXJkVXBEb3duRXZlbnQodGhp
cywga2V5SW5pdCk7DQogfQ0KIA0KIHZvaWQgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnNldE5v
ZGVWYWx1ZShib29sIGluY3JlYXNlLCBmbG9hdCB2YWx1ZSkNCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgNCmluZGV4IGNi
NWY2MWJjZDlhLi44NDM2OWU2MjhmZSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaA0KKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oDQpAQCAtMTg5LDggKzE4OSwx
MCBAQCBwcml2YXRlOg0KICAgICBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkg
Y29uc3Qgb3ZlcnJpZGU7DQogICAgIGJvb2wgdXNlc0FsdFRhZ0ZvclRleHRDb21wdXRhdGlvbigp
IGNvbnN0Ow0KICAgICBib29sIHJvbGVJZ25vcmVzVGl0bGUoKSBjb25zdDsNCi0gICAgdm9pZCBw
b3N0S2V5Ym9hcmRLZXlzRm9yVmFsdWVDaGFuZ2UoYm9vbCBpbmNyZWFzZSk7DQorICAgIGJvb2wg
cG9zdEtleWJvYXJkS2V5c0ZvclZhbHVlQ2hhbmdlKGJvb2wgaW5jcmVhc2UpOw0KICAgICB2b2lk
IHNldE5vZGVWYWx1ZShib29sIGluY3JlYXNlLCBmbG9hdCB2YWx1ZSk7DQorICAgIGJvb2wgcGVy
Zm9ybURpc21pc3NBY3Rpb24oKSBmaW5hbDsNCisgICAgDQogICAgIE5vZGUqIG1fbm9kZTsNCiB9
Ow0KIA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgNCmluZGV4IGJlYTRhN2ZmNDZiLi4wNWRiODY0OTM4
MSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdEludGVyZmFjZS5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaA0KQEAgLTkwNyw3ICs5MDcsOCBAQCBwdWJsaWM6
DQogICAgIHZpcnR1YWwgdm9pZCBtYWtlUmFuZ2VWaXNpYmxlKGNvbnN0IFBsYWluVGV4dFJhbmdl
JikgPSAwOw0KICAgICB2aXJ0dWFsIGJvb2wgcHJlc3MoKSA9IDA7DQogICAgIHZpcnR1YWwgYm9v
bCBwZXJmb3JtRGVmYXVsdEFjdGlvbigpID0gMDsNCi0NCisgICAgdmlydHVhbCBib29sIHBlcmZv
cm1EaXNtaXNzQWN0aW9uKCkgeyByZXR1cm4gZmFsc2U7IH0NCisgICAgDQogICAgIHZpcnR1YWwg
QWNjZXNzaWJpbGl0eU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3QgPSAwOw0KICAgICB2
aXJ0dWFsIHZvaWQgaW5jcmVtZW50KCkgPSAwOw0KICAgICB2aXJ0dWFsIHZvaWQgZGVjcmVtZW50
KCkgPSAwOw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0NCmluZGV4IGI3
NzQyNWNkNDEwLi5kNmFiNzdiYjcwMiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9TLm1tDQorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlcklPUy5tbQ0KQEAgLTE4MjcsNiArMTgyNywxMyBAQCBzdGF0aWMgdm9pZCBhcHBlbmRTdHJp
bmdUb1Jlc3VsdChOU011dGFibGVTdHJpbmcgKnJlc3VsdCwgTlNTdHJpbmcgKnN0cmluZykNCiAg
ICAgcmV0dXJuIG5pbDsNCiB9DQogDQorLSAoQk9PTClhY2Nlc3NpYmlsaXR5UGVyZm9ybUVzY2Fw
ZQ0KK3sNCisgICAgaWYgKCFbc2VsZiBfcHJlcGFyZUFjY2Vzc2liaWxpdHlDYWxsXSkNCisgICAg
ICAgIHJldHVybiBOTzsNCisgICAgcmV0dXJuIHNlbGYuYXhCYWNraW5nT2JqZWN0LT5wZXJmb3Jt
RGlzbWlzc0FjdGlvbigpOw0KK30NCisNCiAtIChCT09MKV9hY2Nlc3NpYmlsaXR5QWN0aXZhdGUN
CiB7DQogICAgIGlmICghW3NlbGYgX3ByZXBhcmVBY2Nlc3NpYmlsaXR5Q2FsbF0pDQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkT2JqZWN0LmNwcA0KaW5kZXggMzYxZGIyZDM2MjkuLmQ3NzVmNzBjMjMyIDEwMDY0
NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwDQpAQCAtNjMwLDYgKzYzMCwxNSBAQCB2b2lkIEFY
SXNvbGF0ZWRPYmplY3Q6OnNldElzRXhwYW5kZWQoYm9vbCB2YWx1ZSkNCiAgICAgfSk7DQogfQ0K
IA0KK2Jvb2wgQVhJc29sYXRlZE9iamVjdDo6cGVyZm9ybURpc21pc3NBY3Rpb24oKQ0KK3sNCisg
ICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJldHJpZXZlVmFsdWVGcm9tTWFpblRocmVhZDxib29s
PihbdGhpc10gKCkgLT4gYm9vbCB7DQorICAgICAgICBpZiAoYXV0byogYXhPYmplY3QgPSBhc3Nv
Y2lhdGVkQVhPYmplY3QoKSkNCisgICAgICAgICAgICByZXR1cm4gYXhPYmplY3QtPnBlcmZvcm1E
aXNtaXNzQWN0aW9uKCk7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgIH0pOw0KK30NCisN
CiBib29sIEFYSXNvbGF0ZWRPYmplY3Q6OnNldFZhbHVlKGZsb2F0IHZhbHVlKQ0KIHsNCiAgICAg
cmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJldHJpZXZlVmFsdWVGcm9tTWFpblRocmVhZDxib29sPihb
JnZhbHVlLCB0aGlzXSAoKSAtPiBib29sIHsNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgNCmluZGV4
IDJhMTk5ZmVhNTliLi5lODU1N2VmOWFlNCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaA0KKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oDQpA
QCAtNzIxLDYgKzcyMSw3IEBAIHByaXZhdGU6DQogICAgIEZsb2F0UmVjdCBjb252ZXJ0RnJhbWVU
b1NwYWNlKGNvbnN0IEZsb2F0UmVjdCYsIEFjY2Vzc2liaWxpdHlDb252ZXJzaW9uU3BhY2UpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9DQogICAgIHZvaWQgaW5jcmVtZW50
KCkgb3ZlcnJpZGUgeyB9DQogICAgIHZvaWQgZGVjcmVtZW50KCkgb3ZlcnJpZGUgeyB9DQorICAg
IGJvb2wgcGVyZm9ybURpc21pc3NBY3Rpb24oKSBvdmVycmlkZTsNCiAgICAgdm9pZCBzY3JvbGxU
b01ha2VWaXNpYmxlKCkgY29uc3Qgb3ZlcnJpZGUgeyB9DQogICAgIHZvaWQgc2Nyb2xsVG9NYWtl
VmlzaWJsZVdpdGhTdWJGb2N1cyhjb25zdCBJbnRSZWN0JikgY29uc3Qgb3ZlcnJpZGUgeyB9DQog
ICAgIHZvaWQgc2Nyb2xsVG9HbG9iYWxQb2ludChjb25zdCBJbnRQb2ludCYpIGNvbnN0IG92ZXJy
aWRlIHsgfQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0NCmluZGV4IDk2
ODZkNDM1NTY0Li42MTUzY2ZhMjU2MiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tDQorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlck1hYy5tbQ0KQEAgLTM0NzAsNiArMzQ3MCw4IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVN
RU5UQVRJT05TX0VORA0KICAgICAgICAgW3NlbGYgYWNjZXNzaWJpbGl0eVBlcmZvcm1EZWNyZW1l
bnRBY3Rpb25dOw0KICAgICBlbHNlIGlmIChbYWN0aW9uIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vz
c2liaWxpdHlTY3JvbGxUb1Zpc2libGVBY3Rpb25dKQ0KICAgICAgICAgW3NlbGYgYWNjZXNzaWJp
bGl0eVNjcm9sbFRvVmlzaWJsZV07DQorICAgIGVsc2UgaWYgKFthY3Rpb24gaXNFcXVhbFRvU3Ry
aW5nOkAiQVhEaXNtaXNzQWN0aW9uIl0pDQorICAgICAgICBiYWNraW5nT2JqZWN0LT5wZXJmb3Jt
RGlzbWlzc0FjdGlvbigpOw0KIH0NCiANCiAtIChCT09MKWFjY2Vzc2liaWxpdHlSZXBsYWNlUmFu
Z2U6KE5TUmFuZ2UpcmFuZ2Ugd2l0aFRleHQ6KE5TU3RyaW5nICopc3RyaW5nDQpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nDQppbmRleCAyMjQ3YTkyYTdjZS4u
MmY2MzA5NjEyMDQgMTAwNjQ0DQotLS0gYS9Ub29scy9DaGFuZ2VMb2cNCisrKyBiL1Rvb2xzL0No
YW5nZUxvZw0KQEAgLTEsMyArMSwyOSBAQA0KKzIwMjAtMDctMDYgIENocmlzIEZsZWl6YWNoICA8
Y2ZsZWl6YWNoQGFwcGxlLmNvbT4NCisNCisgICAgICAgIEFYOiBJbXBsZW1lbnQgdXNlciBhY3Rp
b24gc3BlYyBmb3IgRXNjYXBlIGFjdGlvbg0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMzg3NQ0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY1MDIy
OTgwPg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuDQorDQorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwOg0KKyAgICAgICAgKGRp
c21pc3NDYWxsYmFjayk6DQorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0SlND
bGFzcyk6DQorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQu
aDoNCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJ
T1MubW06DQorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzbWlzcyk6DQorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tOg0K
KyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc21pc3MpOg0KKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3Bw
Og0KKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlclJhbmdl
TWF0Y2hlc1RleHROZWFyTWFya2Vycyk6DQorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpkaXNtaXNzKToNCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmg6DQorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGw6DQor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnRJT1MubW06DQorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpkaXNtaXNzKToNCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9t
YWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbToNCisgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmRpc21pc3MpOg0KKw0KIDIwMjAtMDctMDYgIEpvbmF0aGFuIEJlZGFy
ZCAgPGpiZWRhcmRAYXBwbGUuY29tPg0KIA0KICAgICAgICAgW3Rlc3Qtd2Via2l0cHldIFVzZSBw
bGF0Zm9ybSBhcmNoaXRlY3R1cmUNCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnQuY3BwDQppbmRleCAxMWYzYTUxOTRmOS4uMGU1YTUwZjZiOWQgMTAwNjQ0
DQotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcA0K
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHANCkBA
IC03MjcsNiArNzI3LDEyIEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHByZXNzQ2FsbGJhY2soSlNDb250
ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iDQogICAgIHJldHVybiBK
U1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsNCiB9DQogDQorc3RhdGljIEpTVmFsdWVSZWYg
ZGlzbWlzc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlv
biwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpT
VmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikNCit7DQorICAgIHRv
QVhFbGVtZW50KHRoaXNPYmplY3QpLT5kaXNtaXNzKCk7DQorICAgIHJldHVybiBKU1ZhbHVlTWFr
ZVVuZGVmaW5lZChjb250ZXh0KTsNCit9DQorDQogc3RhdGljIEpTVmFsdWVSZWYgc2Nyb2xsVG9N
YWtlVmlzaWJsZVdpdGhTdWJGb2N1c0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09i
amVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50
Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlv
bikNCiB7DQogICAgIHVuc2lnbmVkIHggPSAwOw0KQEAgLTE5NzgsNiArMTk4NCw3IEBAIEpTQ2xh
c3NSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0SlNDbGFzcygpDQogICAgICAgICB7ICJk
ZWNyZW1lbnQiLCBkZWNyZW1lbnRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25s
eSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LA0KICAgICAgICAgeyAic2hvd01l
bnUiLCBzaG93TWVudUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sDQogICAgICAgICB7ICJwcmVzcyIsIHByZXNz
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwNCisgICAgICAgIHsgImRpc21pc3MiLCBkaXNtaXNzQ2FsbGJhY2ss
IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUgfSwNCiAgICAgICAgIHsgImRpc2Nsb3NlZFJvd0F0SW5kZXgiLCBkaXNjbG9zZWRSb3dB
dEluZGV4Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwNCiAgICAgICAgIHsgImFyaWFPd25zRWxlbWVudEF0SW5k
ZXgiLCBhcmlhT3duc0VsZW1lbnRBdEluZGV4Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwNCiAgICAgICAgIHsg
ImFyaWFGbG93VG9FbGVtZW50QXRJbmRleCIsIGFyaWFGbG93VG9FbGVtZW50QXRJbmRleENhbGxi
YWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVE
b250RGVsZXRlIH0sDQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5oDQppbmRleCBkNzIxOTdmZWMwYy4uYTUwMjY1ZmI2MDkgMTAwNjQ0DQotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgNCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaA0KQEAgLTk3LDYgKzk3LDcgQEAg
cHVibGljOg0KICAgICB2b2lkIGRlY3JlbWVudCgpOw0KICAgICB2b2lkIHNob3dNZW51KCk7DQog
ICAgIHZvaWQgcHJlc3MoKTsNCisgICAgdm9pZCBkaXNtaXNzKCk7DQogDQogICAgIC8vIEF0dHJp
YnV0ZXMgLSBwbGF0Zm9ybS1pbmRlcGVuZGVudCBpbXBsZW1lbnRhdGlvbnMNCiAgICAgSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IHN0cmluZ0F0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJp
YnV0ZSk7DQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnRJT1MubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudElPUy5tbQ0KaW5kZXggMTZhYzZhMDYyM2MuLmUzYzkwOWQ2ZGQyIDEwMDY0NA0K
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1Mu
bW0NCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
SU9TLm1tDQpAQCAtOTEsNiArOTEsNyBAQCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50KGlkIGVsZW1lbnQpDQogLSAoTlNTdHJpbmcgKilhY2Nlc3NpYmlsaXR5
VGV4dHVhbENvbnRleHQ7DQogLSAoQk9PTClhY2Nlc3NpYmlsaXR5SGFzUG9wdXA7DQogLSAoTlNT
dHJpbmcgKilhY2Nlc3NpYmlsaXR5UG9wdXBWYWx1ZTsNCistIChCT09MKWFjY2Vzc2liaWxpdHlQ
ZXJmb3JtRXNjYXBlOw0KIA0KIC8vIFRleHRNYXJrZXIgcmVsYXRlZA0KIC0gKE5TQXJyYXkgKil0
ZXh0TWFya2VyUmFuZ2U7DQpAQCAtMzI5LDYgKzMzMCwxMSBAQCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRpdGxlVUlFbGVtZW50KCkNCiAgICAgcmV0dXJu
IDA7DQogfQ0KIA0KK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzbWlzcygpDQorew0K
KyAgICBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlQZXJmb3JtRXNjYXBlXTsNCit9DQorDQogQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwYXJlbnRFbGVtZW50
KCkNCiB7DQogICAgIGlkIGFjY2Vzc2liaWxpdHlPYmplY3QgPSBbbV9lbGVtZW50IGFjY2Vzc2li
aWxpdHlDb250YWluZXJdOw0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0NCmluZGV4IDYyMTNlNzYxNmM4Li5lMWVmZDdmNGUx
NiAxMDA2NDQNCi0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50TWFjLm1tDQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudE1hYy5tbQ0KQEAgLTEzNzQsNiArMTM3NCwxMyBAQCB2b2lkIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnNldFZhbHVlKEpTU3RyaW5nUmVmIHZhbHVlVGV4dCkNCiAgICAgRU5EX0FY
X09CSkNfRVhDRVBUSU9OUw0KIH0NCiANCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRp
c21pc3MoKQ0KK3sNCisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TDQorICAgIFttX2VsZW1l
bnQgYWNjZXNzaWJpbGl0eVBlcmZvcm1BY3Rpb246QCJBWERpc21pc3NBY3Rpb24iXTsNCisgICAg
RU5EX0FYX09CSkNfRVhDRVBUSU9OUw0KK30NCisNCiB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmluY3JlbWVudCgpDQogew0KICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMNCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdp
bi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdp
bi5jcHANCmluZGV4IGI3Mzg0MGVlMDUwLi40ZDkwYWE2ZDhlNyAxMDA2NDQNCi0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V2luLmNwcA0KKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwDQpA
QCAtNzQ5LDYgKzc0OSwxMCBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXNzKCkN
CiAgICAgbV9lbGVtZW50LT5hY2NEb0RlZmF1bHRBY3Rpb24oc2VsZigpKTsNCiB9DQogDQordm9p
ZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNtaXNzKCkNCit7DQorfQ0KKw0KIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzY2xvc2VkUm93QXRJbmRl
eCh1bnNpZ25lZCBpbmRleCkNCiB7DQogICAgIHJldHVybiB7IG51bGxwdHIgfTsNCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50LmNwcA0KaW5kZXggMmEyMzdkMzY5OWIuLjNiOWQ5MGU3NWUwIDEw
MDY0NA0KLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmNwcA0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcA0KQEAgLTc3LDcgKzc3LDYgQEAgUmVm
UHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmZpZWxk
c2V0QW5jZXN0b3JFbGVtZW50KCkNCiBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2Vh
cmNoRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQ0KIGJvb2wgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNUZXh0QXJlYSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9DQogUmVmUHRyPEFj
Y2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRleHRN
YXJrZXJSYW5nZU1hdGNoZXNUZXh0TmVhck1hcmtlcnMoSlNTdHJpbmdSZWYsIEFjY2Vzc2liaWxp
dHlUZXh0TWFya2VyKiwgQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKSB7IHJldHVybiBudWxscHRy
OyB9DQotYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNtaXNzKCkgeyByZXR1cm4gZmFs
c2U7IH0NCiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
YXR0cmlidXRlZFN0cmluZ0ZvckVsZW1lbnQoKSB7IHJldHVybiBudWxscHRyOyB9DQogYm9vbCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0luVGFibGVDZWxsKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0NCiAjZW5kaWYNCkBAIC0xMTAsNiArMTA5LDcgQEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbnRlbmNlVGV4dE1hcmtl
clINCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6Om5leHRTZW50ZW5jZUVuZFRleHRNYXJrZXJGb3JUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyKikgeyByZXR1cm4gbnVsbHB0cjsgfQ0KIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4
dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cHJldmlvdXNTZW50ZW5jZVN0YXJ0VGV4
dE1hcmtlckZvclRleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKSB7IHJldHVybiBu
dWxscHRyOyB9DQogUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6Om1pc3NwZWxsaW5nVGV4dE1hcmtlclJhbmdlKEFjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyUmFuZ2UqLCBib29sKSB7IHJldHVybiBudWxscHRyOyB9DQordm9pZCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpkaXNtaXNzKCkgeyB9DQogI2VuZGlmDQogDQogfSAvLyBuYW1lc3Bh
Y2UgV1RSDQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaA0KaW5kZXggODdjZWI1Zjc4MGIuLjE0
OWE5ZmYyMjFkIDEwMDY0NA0KLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgNCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oDQpAQCAtMTAzLDcgKzEw
Myw3IEBAIHB1YmxpYzoNCiAgICAgdm9pZCBkZWNyZW1lbnQoKTsNCiAgICAgdm9pZCBzaG93TWVu
dSgpOw0KICAgICB2b2lkIHByZXNzKCk7DQotICAgIGJvb2wgZGlzbWlzcygpOw0KKyAgICB2b2lk
IGRpc21pc3MoKTsNCiAjaWYgUExBVEZPUk0oTUFDKQ0KICAgICB2b2lkIHN5bmNQcmVzcygpOw0K
ICAgICB2b2lkIGFzeW5jSW5jcmVtZW50KCk7DQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmlk
bCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudC5pZGwNCmluZGV4IGViZTI0YmJiMThjLi43YTRlMzYxZGVjMiAxMDA2
NDQNCi0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwNCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwNCkBAIC0x
MjUsNyArMTI1LDcgQEANCiAgICAgdm9pZCBwcmVzcygpOw0KICAgICB2b2lkIHN5bmNQcmVzcygp
Ow0KICAgICB2b2lkIHNob3dNZW51KCk7DQotICAgIGJvb2xlYW4gZGlzbWlzcygpOw0KKyAgICB2
b2lkIGRpc21pc3MoKTsNCiANCiAgICAgLy8gQXR0cmlidXRlIGluZm8uDQogICAgIERPTVN0cmlu
ZyBhbGxBdHRyaWJ1dGVzKCk7DQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbSBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJ
T1MubW0NCmluZGV4IGVhZGJlODM4ZjAwLi40YTk3M2ZmZTFjMyAxMDA2NDQNCi0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRJT1MubW0NCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9z
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0NCkBAIC04NzIsOSArODcyLDkgQEAgdm9pZCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwcmVzcygpDQogICAgIFttX2VsZW1lbnQgX2FjY2Vzc2li
aWxpdHlBY3RpdmF0ZV07DQogfQ0KICAgICANCi1ib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmRpc21pc3MoKQ0KK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzbWlzcygpDQogew0K
LSAgICByZXR1cm4gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5UGVyZm9ybUVzY2FwZV07DQorICAg
IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eVBlcmZvcm1Fc2NhcGVdOw0KIH0NCiANCiB2b2lkIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGQoQWNjZXNzaWJpbGl0eVVJRWxl
bWVudCogZWxlbWVudCkgY29uc3QNCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dE1hYy5tbQ0KaW5kZXggNjM5ODg1NTA2MTYuLjE5NjE2ZDExNjhlIDEwMDY0NA0KLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudE1hYy5tbQ0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9t
YWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQ0KQEAgLTE0MzIsNiArMTQzMiwxMyBAQCBi
b29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkVGV4dFJhbmdlKHVuc2lnbmVk
IGxvY2F0aW9uLCB1bnNpZ25lZCBsZQ0KICAgICByZXR1cm4gdHJ1ZTsNCiB9DQogDQordm9pZCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNtaXNzKCkNCit7DQorICAgIEJFR0lOX0FYX09CSkNf
RVhDRVBUSU9OUw0KKyAgICBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlQZXJmb3JtQWN0aW9uOkAi
QVhEaXNtaXNzQWN0aW9uIl07DQorICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMNCit9DQorDQog
Ym9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZFZpc2libGVUZXh0UmFuZ2Uo
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSogbWFya2VyUmFuZ2UpDQogew0KICAgICBzZXRB
dHRyaWJ1dGVWYWx1ZShtX2VsZW1lbnQuZ2V0KCksIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4
dE1hcmtlclJhbmdlQXR0cmlidXRlLCBtYXJrZXJSYW5nZS0+cGxhdGZvcm1UZXh0TWFya2VyUmFu
Z2UoKSk7DQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>